From 8e7f600baf70c41cd0f457176ecbccd627128093 Mon Sep 17 00:00:00 2001 From: Peter White Date: Tue, 8 Apr 2025 19:58:21 -0600 Subject: [PATCH 01/32] feat(instantiate): spike, instantiate on revive. Doesn't import deployed contract --- snapshots.js | 3 --- src/lib/getContractFromPatron.ts | 2 +- src/services/chain/contract.ts | 29 ++++++++++++++++++------- src/ui/components/instantiate/Step2.tsx | 10 ++++++--- 4 files changed, 29 insertions(+), 15 deletions(-) diff --git a/snapshots.js b/snapshots.js index f31fefea..fdb8a84f 100644 --- a/snapshots.js +++ b/snapshots.js @@ -1,6 +1,3 @@ -// Copyright 2022-2024 use-ink/contracts-ui authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - module.exports = { __version: '13.13.3', 'Storage Types Contract': { diff --git a/src/lib/getContractFromPatron.ts b/src/lib/getContractFromPatron.ts index d5a827dd..607ee6fd 100644 --- a/src/lib/getContractFromPatron.ts +++ b/src/lib/getContractFromPatron.ts @@ -29,7 +29,7 @@ function getFromPatron(field: string, hash: string) { export function getContractFromPatron(codeHash: string): Promise { const metadataPromise = getFromPatron('metadata', codeHash); - const wasmPromise = getFromPatron('wasm', codeHash); + const wasmPromise = getFromPatron('contract_binary', codeHash); return Promise.all([metadataPromise, wasmPromise]).then(([metadataResponse, wasmResponse]) => { const result = Buffer.from(wasmResponse as ArrayBuffer).toString('hex'); diff --git a/src/services/chain/contract.ts b/src/services/chain/contract.ts index 4ab83b6c..4de7a60c 100644 --- a/src/services/chain/contract.ts +++ b/src/services/chain/contract.ts @@ -11,6 +11,7 @@ import { InstantiateData, SubmittableExtrinsic, } from 'types'; +import { stringToU8a, compactAddLength, u8aToU8a } from '@polkadot/util'; export function createInstantiateTx( api: ApiPromise, @@ -25,7 +26,7 @@ export function createInstantiateTx( storageDepositLimit, }: Omit, ): SubmittableExtrinsic<'promise'> { - const wasm = metadata?.info.source.wasm; + const wasm = u8aToU8a(metadata?.json.source.contract_binary); const isValid = codeHash || !!wasm; if (isValid && metadata && isNumber(constructorIndex) && metadata && argValues) { @@ -38,15 +39,27 @@ export function createInstantiateTx( value, }; - const codeOrBlueprint = codeHash - ? new BlueprintPromise(api, metadata, codeHash) - : new CodePromise(api, metadata, wasm && wasm.toU8a()); - + const parsed_wasm = compactAddLength(wasm.slice(0)); + // const codeOrBlueprint = codeHash + // ? new BlueprintPromise(api, metadata, codeHash) + // : new CodePromise(api, metadata, wasm && wasm); const transformed = transformUserInput(api.registry, constructor.args, argValues); - return constructor.args.length > 0 - ? codeOrBlueprint.tx[constructor.method](options, ...transformed) - : codeOrBlueprint.tx[constructor.method](options); + const data = constructor.toU8a(transformed); + + const tx = api.tx.revive.instantiateWithCode( + value!, + gasLimit!, + storageDepositLimit!, + parsed_wasm, + data, + salt, + ); + + return tx; + // return constructor.args.length > 0 + // ? tx[constructor.method](options, ...transformed) + // : tx[constructor.method](options); } else { throw new Error('Error creating instantiate tx'); } diff --git a/src/ui/components/instantiate/Step2.tsx b/src/ui/components/instantiate/Step2.tsx index 679367e9..6404bccd 100644 --- a/src/ui/components/instantiate/Step2.tsx +++ b/src/ui/components/instantiate/Step2.tsx @@ -64,6 +64,8 @@ export function Step2() { const [isUsingSalt, toggleIsUsingSalt] = useToggle(true); + const wasm = metadata?.info.source.wasm; + const params: Parameters = useMemo(() => { return [ accountId, @@ -72,7 +74,9 @@ export function Step2() { : api.registry.createType('Balance', BN_ZERO), getGasLimit(isCustom, refTime.limit, proofSize.limit, api.registry), getStorageDepositLimit(storageDepositLimit.isActive, storageDepositLimit.value, api.registry), - codeHashUrlParam ? { Existing: codeHashUrlParam } : { Upload: metadata?.info.source.wasm }, + codeHashUrlParam + ? { Existing: codeHashUrlParam } + : { Upload: metadata?.json.source.contract_binary }, // TODO: update type inputData ?? '', isUsingSalt ? salt.value : '', ]; @@ -96,7 +100,7 @@ export function Step2() { useEffect((): void => { async function dryRun() { try { - const result = await api.call.contractsApi.instantiate(...params); + const result = await api.call.reviveApi.instantiate(...params); // default is no revert let convertedFlags = api.registry.createType('ContractReturnFlags', 0); @@ -123,7 +127,7 @@ export function Step2() { gasRequired: result.gasRequired, storageDeposit: result.storageDeposit, // debugMessage is Bytes, must convert to Text - debugMessage: api.registry.createType('Text', result.debugMessage.toU8a()), + // debugMessage: api.registry.createType('Text', result.debugMessage.toU8a()), result: instantiateResult, }); From 2a269243aead9701684a7e649d62497b7d06d8d9 Mon Sep 17 00:00:00 2001 From: Peter White Date: Wed, 9 Apr 2025 17:36:09 -0600 Subject: [PATCH 02/32] wip: add contract and calling contracts works. Modifies @polkadot/api-contract --- package.json | 4 +- src/lib/util.ts | 2 +- src/services/chain/contract.ts | 4 +- src/ui/components/contract/Interact.tsx | 17 +- src/ui/hooks/useStoredContract.ts | 2 +- src/ui/pages/AddressLookup.tsx | 9 +- yarn.lock | 6044 ++++++++++------------- 7 files changed, 2763 insertions(+), 3319 deletions(-) diff --git a/package.json b/package.json index 40692501..a469fbd7 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,9 @@ "@headlessui/react": "^1.7.18", "@heroicons/react": "^1.0.6", "@polkadot/api": "15.8.1", - "@polkadot/api-contract": "15.8.1", + "@polkadot/api-contract": "file:/Users/peter/dev/dot-repos/api/packages/api-contract/build", "@polkadot/extension-dapp": "^0.58.6", + "@polkadot/types": "file:/Users/peter/dev/dot-repos/api/packages/types/build", "@polkadot/ui-keyring": "^3.12.2", "@polkadot/ui-shared": "^3.12.2", "big.js": "^6.2.1", @@ -44,6 +45,7 @@ "date-fns": "^2.30.0", "dexie": "^3.2.4", "dexie-react-hooks": "1.1.7", + "ethers": "^6.13.5", "json5": "^2.2.3", "react": "^18.3.1", "react-dom": "^18.3.1", diff --git a/src/lib/util.ts b/src/lib/util.ts index bdc782e5..0eb152a7 100644 --- a/src/lib/util.ts +++ b/src/lib/util.ts @@ -74,7 +74,7 @@ export function isUndefined(value: unknown): value is undefined { export function isValidAddress(address: string | Uint8Array | null | undefined) { try { - encodeAddress(isHex(address) ? hexToU8a(address) : decodeAddress(address)); + // encodeAddress(isHex(address) ? hexToU8a(address) : decodeAddress(address)); return true; } catch (error) { return false; diff --git a/src/services/chain/contract.ts b/src/services/chain/contract.ts index 4de7a60c..fab2abf5 100644 --- a/src/services/chain/contract.ts +++ b/src/services/chain/contract.ts @@ -66,8 +66,8 @@ export function createInstantiateTx( } export async function getContractInfo(api: ApiPromise, address: string) { - if (isValidAddress(address)) { - return (await api.query.contracts.contractInfoOf(address)).unwrapOr(null); + if (isValidAddress(address) || true) { + return (await api.query.revive.contractInfoOf(address.substring(0, 42))).unwrapOr(null); } } diff --git a/src/ui/components/contract/Interact.tsx b/src/ui/components/contract/Interact.tsx index 3202ec00..14064fcf 100644 --- a/src/ui/components/contract/Interact.tsx +++ b/src/ui/components/contract/Interact.tsx @@ -73,10 +73,10 @@ export const InteractTab = ({ setCallResults([]); }, [abi.messages, setArgValues, address]); - const params: Parameters = useMemo(() => { + const params: Parameters = useMemo(() => { return [ accountId, - address, + address.substring(0, 42), message?.isPayable ? api.registry.createType('Balance', value) : api.registry.createType('Balance', BN_ZERO), @@ -101,7 +101,7 @@ export const InteractTab = ({ useEffect((): void => { async function dryRun() { if (!message) return; - const newOutcome = await api.call.contractsApi.call(...params); + const newOutcome = await api.call.reviveApi.call(...params); // auto-generated @polkadot/type-augment data uses a different flag representation: `{"ok":{"flags":{"bits":0},"data":"0x00"}}` let convertedFlags = api.registry.createType('ContractReturnFlags', 0); @@ -117,7 +117,7 @@ export const InteractTab = ({ gasRequired: newOutcome.gasRequired, storageDeposit: newOutcome.storageDeposit, // debugMessage is Bytes, must convert to Text - debugMessage: new Text(api.registry, newOutcome.debugMessage.toUtf8()), + // debugMessage: new Text(api.registry, newOutcome.debugMessage.toUtf8()), result: newOutcome.result.isOk ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } : { Err: newOutcome.result.asErr }, @@ -136,7 +136,7 @@ export const InteractTab = ({ } debouncedDryRun(); - }, [api.call.contractsApi, message, params, nextResultId]); + }, [api.call.reviveApi, message, params, nextResultId]); useEffect(() => { async function processTx() { @@ -185,10 +185,17 @@ export const InteractTab = ({ const isValid = (result: SubmittableResult) => !result.isError && !result.dispatchError; + console.log('message'); + console.log(message); + console.log('tx'); + console.log(tx); + console.log(message.method); + console.log(transformUserInput(registry, message.args, argValues)); const extrinsic = tx[message.method]( options, ...transformUserInput(registry, message.args, argValues), ); + console.log(extrinsic); newId.current = queue({ extrinsic, diff --git a/src/ui/hooks/useStoredContract.ts b/src/ui/hooks/useStoredContract.ts index 67d4286c..58d049cf 100644 --- a/src/ui/hooks/useStoredContract.ts +++ b/src/ui/hooks/useStoredContract.ts @@ -37,7 +37,7 @@ export function useStoredContract(address: string): UIContract | undefined { displayName: document.name, tx: contract.tx, codeHash: document.codeHash, - address: contract.address.toString(), + address: contract.address.toString() + 'e'.repeat(24), date: document.date, id: document.id, type: document.external ? 'added' : 'instantiated', diff --git a/src/ui/pages/AddressLookup.tsx b/src/ui/pages/AddressLookup.tsx index a66916de..b12c9c3f 100644 --- a/src/ui/pages/AddressLookup.tsx +++ b/src/ui/pages/AddressLookup.tsx @@ -59,9 +59,14 @@ export function AddressLookup() { async function validate() { if (address !== searchString) { if (isValidAddress(searchString)) { + console.log(db); + console.log(await db.contracts.count()); + // const isOnChain = true;// await getContractInfo(api, searchString); const isOnChain = await getContractInfo(api, searchString); - if (isOnChain) { - const contract = await db.contracts.get({ address: searchString }); + if (true) { + // const contract = await db.contracts.get({ address: searchString }); + const contract = undefined; + // Contract is already instantiated in current UI if (contract) { navigate(`/contract/${searchString}`); diff --git a/yarn.lock b/yarn.lock index 4b53b8cd..1b4a1b80 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,10 +5,10 @@ __metadata: version: 5 cacheKey: 8 -"@aashutoshrathi/word-wrap@npm:^1.2.3": - version: 1.2.6 - resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" - checksum: ada901b9e7c680d190f1d012c84217ce0063d8f5c5a7725bb91ec3c5ed99bb7572680eb2d2938a531ccbaec39a95422fcd8a6b4a13110c7d98dd75402f66a0cd +"@adraffy/ens-normalize@npm:1.10.1": + version: 1.10.1 + resolution: "@adraffy/ens-normalize@npm:1.10.1" + checksum: 0836f394ea256972ec19a0b5e78cb7f5bcdfd48d8a32c7478afc94dd53ae44c04d1aa2303d7f3077b4f3ac2323b1f557ab9188e8059978748fdcd83e04a80dcc languageName: node linkType: hard @@ -20,16 +20,6 @@ __metadata: linkType: hard "@ampproject/remapping@npm:^2.2.0": - version: 2.2.1 - resolution: "@ampproject/remapping@npm:2.2.1" - dependencies: - "@jridgewell/gen-mapping": ^0.3.0 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079 - languageName: node - linkType: hard - -"@ampproject/remapping@npm:^2.3.0": version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" dependencies: @@ -39,465 +29,209 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/code-frame@npm:7.23.5" - dependencies: - "@babel/highlight": ^7.23.4 - chalk: ^2.4.2 - checksum: d90981fdf56a2824a9b14d19a4c0e8db93633fd488c772624b4e83e0ceac6039a27cd298a247c3214faa952bf803ba23696172ae7e7235f3b97f43ba278c569a - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/code-frame@npm:7.24.7" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.26.2": + version: 7.26.2 + resolution: "@babel/code-frame@npm:7.26.2" dependencies: - "@babel/highlight": ^7.24.7 + "@babel/helper-validator-identifier": ^7.25.9 + js-tokens: ^4.0.0 picocolors: ^1.0.0 - checksum: 830e62cd38775fdf84d612544251ce773d544a8e63df667728cc9e0126eeef14c6ebda79be0f0bc307e8318316b7f58c27ce86702e0a1f5c321d842eb38ffda4 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/compat-data@npm:7.23.5" - checksum: 06ce244cda5763295a0ea924728c09bae57d35713b675175227278896946f922a63edf803c322f855a3878323d48d0255a2a3023409d2a123483c8a69ebb4744 - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.25.2": - version: 7.25.4 - resolution: "@babel/compat-data@npm:7.25.4" - checksum: b12a91d27c3731a4b0bdc9312a50b1911f41f7f728aaf0d4b32486e2257fd2cb2d3ea1a295e98449600c48f2c7883a3196ca77cda1cef7d97a10c2e83d037974 + checksum: db13f5c42d54b76c1480916485e6900748bbcb0014a8aca87f50a091f70ff4e0d0a6db63cade75eb41fcc3d2b6ba0a7f89e343def4f96f00269b41b8ab8dd7b8 languageName: node linkType: hard -"@babel/core@npm:^7.23.9, @babel/core@npm:^7.24.5": - version: 7.25.2 - resolution: "@babel/core@npm:7.25.2" - dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.0 - "@babel/helper-compilation-targets": ^7.25.2 - "@babel/helper-module-transforms": ^7.25.2 - "@babel/helpers": ^7.25.0 - "@babel/parser": ^7.25.0 - "@babel/template": ^7.25.0 - "@babel/traverse": ^7.25.2 - "@babel/types": ^7.25.2 - convert-source-map: ^2.0.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.3 - semver: ^6.3.1 - checksum: 9a1ef604a7eb62195f70f9370cec45472a08114e3934e3eaaedee8fd754edf0730e62347c7b4b5e67d743ce57b5bb8cf3b92459482ca94d06e06246ef021390a +"@babel/compat-data@npm:^7.26.8": + version: 7.26.8 + resolution: "@babel/compat-data@npm:7.26.8" + checksum: 1bb04c6860c8c9555b933cb9c3caf5ef1dac331a37a351efb67956fc679f695d487aea76e792dd43823702c1300f7906f2a298e50b4a8d7ec199ada9c340c365 languageName: node linkType: hard -"@babel/core@npm:^7.7.5": - version: 7.23.9 - resolution: "@babel/core@npm:7.23.9" +"@babel/core@npm:^7.23.9, @babel/core@npm:^7.26.0, @babel/core@npm:^7.7.5": + version: 7.26.10 + resolution: "@babel/core@npm:7.26.10" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.23.5 - "@babel/generator": ^7.23.6 - "@babel/helper-compilation-targets": ^7.23.6 - "@babel/helper-module-transforms": ^7.23.3 - "@babel/helpers": ^7.23.9 - "@babel/parser": ^7.23.9 - "@babel/template": ^7.23.9 - "@babel/traverse": ^7.23.9 - "@babel/types": ^7.23.9 + "@babel/code-frame": ^7.26.2 + "@babel/generator": ^7.26.10 + "@babel/helper-compilation-targets": ^7.26.5 + "@babel/helper-module-transforms": ^7.26.0 + "@babel/helpers": ^7.26.10 + "@babel/parser": ^7.26.10 + "@babel/template": ^7.26.9 + "@babel/traverse": ^7.26.10 + "@babel/types": ^7.26.10 convert-source-map: ^2.0.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.3 semver: ^6.3.1 - checksum: 634a511f74db52a5f5a283c1121f25e2227b006c095b84a02a40a9213842489cd82dc7d61cdc74e10b5bcd9bb0a4e28bab47635b54c7e2256d47ab57356e2a76 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/generator@npm:7.23.6" - dependencies: - "@babel/types": ^7.23.6 - "@jridgewell/gen-mapping": ^0.3.2 - "@jridgewell/trace-mapping": ^0.3.17 - jsesc: ^2.5.1 - checksum: 1a1a1c4eac210f174cd108d479464d053930a812798e09fee069377de39a893422df5b5b146199ead7239ae6d3a04697b45fc9ac6e38e0f6b76374390f91fc6c + checksum: 0217325bd46fb9c828331c14dbe3f015ee13d9aecec423ef5acc0ce8b51a3d2a2d55f2ede252b99d0ab9b2f1a06e2881694a890f92006aeac9ebe5be2914c089 languageName: node linkType: hard -"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.4": - version: 7.25.5 - resolution: "@babel/generator@npm:7.25.5" +"@babel/generator@npm:^7.26.10, @babel/generator@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/generator@npm:7.27.0" dependencies: - "@babel/types": ^7.25.4 + "@babel/parser": ^7.27.0 + "@babel/types": ^7.27.0 "@jridgewell/gen-mapping": ^0.3.5 "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^2.5.1 - checksum: d7713f02536a8144eca810e9b13ae854b05fec462348eaf52e7b50df2c0a312bc43bfff0e8e10d6dd982e8986d61175ac8e67d7358a8b4dad9db4d6733bf0c9c - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.23.6": - version: 7.23.6 - resolution: "@babel/helper-compilation-targets@npm:7.23.6" - dependencies: - "@babel/compat-data": ^7.23.5 - "@babel/helper-validator-option": ^7.23.5 - browserslist: ^4.22.2 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: c630b98d4527ac8fe2c58d9a06e785dfb2b73ec71b7c4f2ddf90f814b5f75b547f3c015f110a010fd31f76e3864daaf09f3adcd2f6acdbfb18a8de3a48717590 + jsesc: ^3.0.2 + checksum: cdb6e3e8441241321192275f7a1265b6d610b44d57ae3bbb6047cb142849fd2ace1e15d5ee0685337e152f5d8760babd3ab898b6e5065e4b344006d2f0da759f languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-compilation-targets@npm:7.25.2" +"@babel/helper-compilation-targets@npm:^7.26.5": + version: 7.27.0 + resolution: "@babel/helper-compilation-targets@npm:7.27.0" dependencies: - "@babel/compat-data": ^7.25.2 - "@babel/helper-validator-option": ^7.24.8 - browserslist: ^4.23.1 + "@babel/compat-data": ^7.26.8 + "@babel/helper-validator-option": ^7.25.9 + browserslist: ^4.24.0 lru-cache: ^5.1.1 semver: ^6.3.1 - checksum: aed33c5496cb9db4b5e2d44e26bf8bc474074cc7f7bb5ebe1d4a20fdeb362cb3ba9e1596ca18c7484bcd6e5c3a155ab975e420d520c0ae60df81f9de04d0fd16 - languageName: node - linkType: hard - -"@babel/helper-environment-visitor@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-environment-visitor@npm:7.22.20" - checksum: d80ee98ff66f41e233f36ca1921774c37e88a803b2f7dca3db7c057a5fea0473804db9fb6729e5dbfd07f4bed722d60f7852035c2c739382e84c335661590b69 - languageName: node - linkType: hard - -"@babel/helper-function-name@npm:^7.23.0": - version: 7.23.0 - resolution: "@babel/helper-function-name@npm:7.23.0" - dependencies: - "@babel/template": ^7.22.15 - "@babel/types": ^7.23.0 - checksum: e44542257b2d4634a1f979244eb2a4ad8e6d75eb6761b4cfceb56b562f7db150d134bc538c8e6adca3783e3bc31be949071527aa8e3aab7867d1ad2d84a26e10 - languageName: node - linkType: hard - -"@babel/helper-hoist-variables@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-hoist-variables@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: 394ca191b4ac908a76e7c50ab52102669efe3a1c277033e49467913c7ed6f7c64d7eacbeabf3bed39ea1f41731e22993f763b1edce0f74ff8563fd1f380d92cc + checksum: ad8b2351cde8d2e5c417f02f0d88af61ba080439e74f6d6ac578af5d63f8e35d0f36619cf18620ab627e9360c5c4b8a23784eecbef32d97944acb4ad2a57223f languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.22.15": - version: 7.22.15 - resolution: "@babel/helper-module-imports@npm:7.22.15" +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: - "@babel/types": ^7.22.15 - checksum: ecd7e457df0a46f889228f943ef9b4a47d485d82e030676767e6a2fdcbdaa63594d8124d4b55fd160b41c201025aec01fc27580352b1c87a37c9c6f33d116702 + "@babel/traverse": ^7.25.9 + "@babel/types": ^7.25.9 + checksum: 1b411ce4ca825422ef7065dffae7d8acef52023e51ad096351e3e2c05837e9bf9fca2af9ca7f28dc26d596a588863d0fedd40711a88e350b736c619a80e704e6 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-module-imports@npm:7.24.7" +"@babel/helper-module-transforms@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: 8ac15d96d262b8940bc469052a048e06430bba1296369be695fabdf6799f201dd0b00151762b56012a218464e706bc033f27c07f6cec20c6f8f5fd6543c67054 - languageName: node - linkType: hard - -"@babel/helper-module-transforms@npm:^7.23.3": - version: 7.23.3 - resolution: "@babel/helper-module-transforms@npm:7.23.3" - dependencies: - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-module-imports": ^7.22.15 - "@babel/helper-simple-access": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/helper-validator-identifier": ^7.22.20 + "@babel/helper-module-imports": ^7.25.9 + "@babel/helper-validator-identifier": ^7.25.9 + "@babel/traverse": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0 - checksum: 5d0895cfba0e16ae16f3aa92fee108517023ad89a855289c4eb1d46f7aef4519adf8e6f971e1d55ac20c5461610e17213f1144097a8f932e768a9132e2278d71 + checksum: 942eee3adf2b387443c247a2c190c17c4fd45ba92a23087abab4c804f40541790d51ad5277e4b5b1ed8d5ba5b62de73857446b7742f835c18ebd350384e63917 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.25.2": - version: 7.25.2 - resolution: "@babel/helper-module-transforms@npm:7.25.2" - dependencies: - "@babel/helper-module-imports": ^7.24.7 - "@babel/helper-simple-access": ^7.24.7 - "@babel/helper-validator-identifier": ^7.24.7 - "@babel/traverse": ^7.25.2 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 282d4e3308df6746289e46e9c39a0870819630af5f84d632559171e4fae6045684d771a65f62df3d569e88ccf81dc2def78b8338a449ae3a94bb421aa14fc367 +"@babel/helper-plugin-utils@npm:^7.25.9": + version: 7.26.5 + resolution: "@babel/helper-plugin-utils@npm:7.26.5" + checksum: 4771fbb1711c624c62d12deabc2ed7435a6e6994b6ce09d5ede1bc1bf19be59c3775461a1e693bdd596af865685e87bb2abc778f62ceadc1b2095a8e2aa74180 languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.24.7": - version: 7.24.8 - resolution: "@babel/helper-plugin-utils@npm:7.24.8" - checksum: 73b1a83ba8bcee21dc94de2eb7323207391715e4369fd55844bb15cf13e3df6f3d13a40786d990e6370bf0f571d94fc31f70dec96c1d1002058258c35ca3767a +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 6435ee0849e101681c1849868278b5aee82686ba2c1e27280e5e8aca6233af6810d39f8e4e693d2f2a44a3728a6ccfd66f72d71826a94105b86b731697cdfa99 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-simple-access@npm:7.22.5" - dependencies: - "@babel/types": ^7.22.5 - checksum: fe9686714caf7d70aedb46c3cce090f8b915b206e09225f1e4dbc416786c2fdbbee40b38b23c268b7ccef749dd2db35f255338fb4f2444429874d900dede5ad2 +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 5b85918cb1a92a7f3f508ea02699e8d2422fe17ea8e82acd445006c0ef7520fbf48e3dbcdaf7b0a1d571fc3a2715a29719e5226636cb6042e15fe6ed2a590944 languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-simple-access@npm:7.24.7" - dependencies: - "@babel/traverse": ^7.24.7 - "@babel/types": ^7.24.7 - checksum: ddbf55f9dea1900213f2a1a8500fabfd21c5a20f44dcfa957e4b0d8638c730f88751c77f678644f754f1a1dc73f4eb8b766c300deb45a9daad000e4247957819 +"@babel/helper-validator-option@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-option@npm:7.25.9" + checksum: 9491b2755948ebbdd68f87da907283698e663b5af2d2b1b02a2765761974b1120d5d8d49e9175b167f16f72748ffceec8c9cf62acfbee73f4904507b246e2b3d languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.22.6": - version: 7.22.6 - resolution: "@babel/helper-split-export-declaration@npm:7.22.6" +"@babel/helpers@npm:^7.26.10": + version: 7.27.0 + resolution: "@babel/helpers@npm:7.27.0" dependencies: - "@babel/types": ^7.22.5 - checksum: e141cace583b19d9195f9c2b8e17a3ae913b7ee9b8120246d0f9ca349ca6f03cb2c001fd5ec57488c544347c0bb584afec66c936511e447fd20a360e591ac921 - languageName: node - linkType: hard - -"@babel/helper-string-parser@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/helper-string-parser@npm:7.23.4" - checksum: c0641144cf1a7e7dc93f3d5f16d5327465b6cf5d036b48be61ecba41e1eece161b48f46b7f960951b67f8c3533ce506b16dece576baef4d8b3b49f8c65410f90 + "@babel/template": ^7.27.0 + "@babel/types": ^7.27.0 + checksum: d11bb8ada0c5c298d2dbd478d69b16a79216b812010e78855143e321807df4e34f60ab65e56332e72315ccfe52a22057f0cf1dcc06e518dcfa3e3141bb8576cd languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-string-parser@npm:7.24.8" - checksum: 39b03c5119216883878655b149148dc4d2e284791e969b19467a9411fccaa33f7a713add98f4db5ed519535f70ad273cdadfd2eb54d47ebbdeac5083351328ce - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-validator-identifier@npm:7.22.20" - checksum: 136412784d9428266bcdd4d91c32bcf9ff0e8d25534a9d94b044f77fe76bc50f941a90319b05aafd1ec04f7d127cd57a179a3716009ff7f3412ef835ada95bdc - languageName: node - linkType: hard - -"@babel/helper-validator-identifier@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/helper-validator-identifier@npm:7.24.7" - checksum: 6799ab117cefc0ecd35cd0b40ead320c621a298ecac88686a14cffceaac89d80cdb3c178f969861bf5fa5e4f766648f9161ea0752ecfe080d8e89e3147270257 - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.23.5": - version: 7.23.5 - resolution: "@babel/helper-validator-option@npm:7.23.5" - checksum: 537cde2330a8aede223552510e8a13e9c1c8798afee3757995a7d4acae564124fe2bf7e7c3d90d62d3657434a74340a274b3b3b1c6f17e9a2be1f48af29cb09e - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.24.8": - version: 7.24.8 - resolution: "@babel/helper-validator-option@npm:7.24.8" - checksum: a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/helpers@npm:7.23.9" - dependencies: - "@babel/template": ^7.23.9 - "@babel/traverse": ^7.23.9 - "@babel/types": ^7.23.9 - checksum: 2678231192c0471dbc2fc403fb19456cc46b1afefcfebf6bc0f48b2e938fdb0fef2e0fe90c8c8ae1f021dae5012b700372e4b5d15867f1d7764616532e4a6324 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/helpers@npm:7.25.0" - dependencies: - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.0 - checksum: 739e3704ff41a30f5eaac469b553f4d3ab02be6ced083f5925851532dfbd9efc5c347728e77b754ed0b262a4e5e384e60932a62c192d338db7e4b7f3adf9f4a7 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.23.4": - version: 7.23.4 - resolution: "@babel/highlight@npm:7.23.4" - dependencies: - "@babel/helper-validator-identifier": ^7.22.20 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - checksum: 643acecdc235f87d925979a979b539a5d7d1f31ae7db8d89047269082694122d11aa85351304c9c978ceeb6d250591ccadb06c366f358ccee08bb9c122476b89 - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/highlight@npm:7.24.7" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/parser@npm:7.27.0" dependencies: - "@babel/helper-validator-identifier": ^7.24.7 - chalk: ^2.4.2 - js-tokens: ^4.0.0 - picocolors: ^1.0.0 - checksum: 5cd3a89f143671c4ac129960024ba678b669e6fc673ce078030f5175002d1d3d52bc10b22c5b916a6faf644b5028e9a4bd2bb264d053d9b05b6a98690f1d46f1 - languageName: node - linkType: hard - -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/parser@npm:7.23.9" + "@babel/types": ^7.27.0 bin: parser: ./bin/babel-parser.js - checksum: e7cd4960ac8671774e13803349da88d512f9292d7baa952173260d3e8f15620a28a3701f14f709d769209022f9e7b79965256b8be204fc550cfe783cdcabe7c7 + checksum: 062a4e6d51553603253990c84e051ed48671a55b9d4e9caf2eff9dc888465070a0cfd288a467dbf0d99507781ea4a835b5606e32ddc0319f1b9273f913676829 languageName: node linkType: hard -"@babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/parser@npm:7.25.4" +"@babel/plugin-transform-react-jsx-self@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.25.9" dependencies: - "@babel/types": ^7.25.4 - bin: - parser: ./bin/babel-parser.js - checksum: fe4f083d4ad34f019dd7fad672cd007003004fb0a3df9b7315a5da9a5e8e56c1fed95acab6862e7d76cfccb2e8e364bcc307e9117718e6bb6dfb2e87ad065abf - languageName: node - linkType: hard - -"@babel/plugin-transform-react-jsx-self@npm:^7.24.5": - version: 7.24.7 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.24.7" - dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2d72c33664e614031b8a03fc2d4cfd185e99efb1d681cbde4b0b4ab379864b31d83ee923509892f6d94b2c5893c309f0217d33bcda3e470ed42297f958138381 + checksum: 41c833cd7f91b1432710f91b1325706e57979b2e8da44e83d86312c78bbe96cd9ef778b4e79e4e17ab25fa32c72b909f2be7f28e876779ede28e27506c41f4ae languageName: node linkType: hard -"@babel/plugin-transform-react-jsx-source@npm:^7.24.1": - version: 7.24.7 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.24.7" +"@babel/plugin-transform-react-jsx-source@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-plugin-utils": ^7.25.9 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c9afcb2259dd124a2de76f8a578589c18bd2f24dbcf78fe02b53c5cbc20c493c4618369604720e4e699b52be10ba0751b97140e1ef8bc8f0de0a935280e9d5b7 - languageName: node - linkType: hard - -"@babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": - version: 7.23.9 - resolution: "@babel/runtime@npm:7.23.9" - dependencies: - regenerator-runtime: ^0.14.0 - checksum: 6bbebe8d27c0c2dd275d1ac197fc1a6c00e18dab68cc7aaff0adc3195b45862bae9c4cc58975629004b0213955b2ed91e99eccb3d9b39cabea246c657323d667 + checksum: a3e0e5672e344e9d01fb20b504fe29a84918eaa70cec512c4d4b1b035f72803261257343d8e93673365b72c371f35cf34bb0d129720bf178a4c87812c8b9c662 languageName: node linkType: hard -"@babel/runtime@npm:^7.21.0": - version: 7.25.4 - resolution: "@babel/runtime@npm:7.25.4" +"@babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": + version: 7.27.0 + resolution: "@babel/runtime@npm:7.27.0" dependencies: regenerator-runtime: ^0.14.0 - checksum: 5c2aab03788e77f1f959d7e6ce714c299adfc9b14fb6295c2a17eb7cad0dd9c2ebfb2d25265f507f68c43d5055c5cd6f71df02feb6502cea44b68432d78bcbbe + checksum: 3e73d9e65f76fad8f99802b5364c941f4a60c693b3eca66147bb0bfa54cf0fbe017232155e16e3fd83c0a049b51b8d7239efbd73626534abe8b54a6dd57dcb1b languageName: node linkType: hard -"@babel/template@npm:^7.22.15, @babel/template@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/template@npm:7.23.9" +"@babel/template@npm:^7.26.9, @babel/template@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/template@npm:7.27.0" dependencies: - "@babel/code-frame": ^7.23.5 - "@babel/parser": ^7.23.9 - "@babel/types": ^7.23.9 - checksum: 6e67414c0f7125d7ecaf20c11fab88085fa98a96c3ef10da0a61e962e04fdf3a18a496a66047005ddd1bb682a7cc7842d556d1db2f3f3f6ccfca97d5e445d342 - languageName: node - linkType: hard - -"@babel/template@npm:^7.25.0": - version: 7.25.0 - resolution: "@babel/template@npm:7.25.0" - dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/parser": ^7.25.0 - "@babel/types": ^7.25.0 - checksum: 3f2db568718756d0daf2a16927b78f00c425046b654cd30b450006f2e84bdccaf0cbe6dc04994aa1f5f6a4398da2f11f3640a4d3ee31722e43539c4c919c817b + "@babel/code-frame": ^7.26.2 + "@babel/parser": ^7.27.0 + "@babel/types": ^7.27.0 + checksum: 46d6db4c204a092f11ad6c3bfb6ec3dc1422e32121186d68ab1b3e633313aa5b7e21f26ca801dbd7da21f256225305a76454429fc500e52dabadb30af35df961 languageName: node linkType: hard -"@babel/traverse@npm:^7.23.9": - version: 7.23.9 - resolution: "@babel/traverse@npm:7.23.9" +"@babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.10": + version: 7.27.0 + resolution: "@babel/traverse@npm:7.27.0" dependencies: - "@babel/code-frame": ^7.23.5 - "@babel/generator": ^7.23.6 - "@babel/helper-environment-visitor": ^7.22.20 - "@babel/helper-function-name": ^7.23.0 - "@babel/helper-hoist-variables": ^7.22.5 - "@babel/helper-split-export-declaration": ^7.22.6 - "@babel/parser": ^7.23.9 - "@babel/types": ^7.23.9 + "@babel/code-frame": ^7.26.2 + "@babel/generator": ^7.27.0 + "@babel/parser": ^7.27.0 + "@babel/template": ^7.27.0 + "@babel/types": ^7.27.0 debug: ^4.3.1 globals: ^11.1.0 - checksum: a932f7aa850e158c00c97aad22f639d48c72805c687290f6a73e30c5c4957c07f5d28310c9bf59648e2980fe6c9d16adeb2ff92a9ca0f97fa75739c1328fc6c3 + checksum: 922d22aa91200e1880cfa782802100aa5b236fab89a44b9c40cfea94163246efd010626f7dc2b9d7769851c1fa2d8e8f8a1e0168ff4a7094e9b737c32760baa1 languageName: node linkType: hard -"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.25.2": - version: 7.25.4 - resolution: "@babel/traverse@npm:7.25.4" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.0": + version: 7.27.0 + resolution: "@babel/types@npm:7.27.0" dependencies: - "@babel/code-frame": ^7.24.7 - "@babel/generator": ^7.25.4 - "@babel/parser": ^7.25.4 - "@babel/template": ^7.25.0 - "@babel/types": ^7.25.4 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: 3b6d879b9d843b119501585269b3599f047011ae21eb7820d00aef62fc3a2bcdaf6f4cdf2679795a2d7c0b6b5d218974916e422f08dea08613dc42188ef21e4b - languageName: node - linkType: hard - -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.8.3": - version: 7.23.9 - resolution: "@babel/types@npm:7.23.9" - dependencies: - "@babel/helper-string-parser": ^7.23.4 - "@babel/helper-validator-identifier": ^7.22.20 - to-fast-properties: ^2.0.0 - checksum: 0a9b008e9bfc89beb8c185e620fa0f8ed6c771f1e1b2e01e1596870969096fec7793898a1d64a035176abf1dd13e2668ee30bf699f2d92c210a8128f4b151e65 - languageName: node - linkType: hard - -"@babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.4": - version: 7.25.4 - resolution: "@babel/types@npm:7.25.4" - dependencies: - "@babel/helper-string-parser": ^7.24.8 - "@babel/helper-validator-identifier": ^7.24.7 - to-fast-properties: ^2.0.0 - checksum: 497f8b583c54a92a59c3ec542144695064cd5c384fcca46ba1aa301d5e5dd6c1d011f312ca024cb0f9c956da07ae82fb4c348c31a30afa31a074c027720d2aa8 + "@babel/helper-string-parser": ^7.25.9 + "@babel/helper-validator-identifier": ^7.25.9 + checksum: 59582019eb8a693d4277015d4dec0233874d884b9019dcd09550332db7f0f2ac9e30eca685bb0ada4bab5a4dc8bbc2a6bcaadb151c69b7e6aa94b5eaf8fc8c51 languageName: node linkType: hard @@ -518,13 +252,13 @@ __metadata: linkType: hard "@cypress/code-coverage@npm:^3.12.20": - version: 3.12.20 - resolution: "@cypress/code-coverage@npm:3.12.20" + version: 3.14.0 + resolution: "@cypress/code-coverage@npm:3.14.0" dependencies: "@cypress/webpack-preprocessor": ^6.0.0 chalk: 4.1.2 - dayjs: 1.11.10 - debug: 4.3.4 + dayjs: 1.11.13 + debug: 4.4.0 execa: 4.1.0 globby: 11.1.0 istanbul-lib-coverage: ^3.0.0 @@ -536,13 +270,13 @@ __metadata: babel-loader: ^8.3 || ^9 cypress: "*" webpack: ^4 || ^5 - checksum: c8674aaa79b039d1b712f8ff426594a061d11e07b8b4078dc9fa3103849643ac582ad694b01303afef8326a26f8a2925e8d6a4a07f14ca7b23e1e482da2da55b + checksum: 6835c21d59d6fa159b5b40645abcc82560d6a71ec02b1d184ae4794eb688a5dabe89b4205f7079b9e699cd4d64720ec3576ac790c07c2c338fa22360547f4504 languageName: node linkType: hard "@cypress/request@npm:^3.0.1": - version: 3.0.1 - resolution: "@cypress/request@npm:3.0.1" + version: 3.0.8 + resolution: "@cypress/request@npm:3.0.8" dependencies: aws-sign2: ~0.7.0 aws4: ^1.8.0 @@ -550,19 +284,19 @@ __metadata: combined-stream: ~1.0.6 extend: ~3.0.2 forever-agent: ~0.6.1 - form-data: ~2.3.2 - http-signature: ~1.3.6 + form-data: ~4.0.0 + http-signature: ~1.4.0 is-typedarray: ~1.0.0 isstream: ~0.1.2 json-stringify-safe: ~5.0.1 mime-types: ~2.1.19 performance-now: ^2.1.0 - qs: 6.10.4 + qs: 6.14.0 safe-buffer: ^5.1.2 - tough-cookie: ^4.1.3 + tough-cookie: ^5.0.0 tunnel-agent: ^0.6.0 uuid: ^8.3.2 - checksum: 7175522ebdbe30e3c37973e204c437c23ce659e58d5939466615bddcd58d778f3a8ea40f087b965ae8b8138ea8d102b729c6eb18c6324f121f3778f4a2e8e727 + checksum: 0a80d5872c6a82b74ed639be773ea68f5047aea63e9e6a10e64eda73ebab9c0ee0a7435df4b11ededc49a7e186884aa7997143effd21ef6321e233489764668b languageName: node linkType: hard @@ -583,18 +317,19 @@ __metadata: linkType: hard "@cypress/webpack-preprocessor@npm:^6.0.0": - version: 6.0.1 - resolution: "@cypress/webpack-preprocessor@npm:6.0.1" + version: 6.0.4 + resolution: "@cypress/webpack-preprocessor@npm:6.0.4" dependencies: bluebird: 3.7.1 debug: ^4.3.4 lodash: ^4.17.20 + semver: ^7.3.2 peerDependencies: - "@babel/core": ^7.0.1 - "@babel/preset-env": ^7.0.0 - babel-loader: ^8.3 || ^9 + "@babel/core": ^7.25.2 + "@babel/preset-env": ^7.25.3 + babel-loader: ^8.3 || ^9 || ^10 webpack: ^4 || ^5 - checksum: 7e7195603423c6147220642829b02a5953c624bfcb618942ac5def545d289c72fb183f2d7b7810e3db39ae9441927fe3bcadcb51bf693e2a4b48251c08a78666 + checksum: 345c9b07f3e090f8e0eb8260c8d8331914ba3cbd2a985843e0a87aa70094b675cc8871c3ca86e23098507427272bb18258f4a8a6bcf70e024c48c7b7ba98a164 languageName: node linkType: hard @@ -608,120 +343,148 @@ __metadata: languageName: node linkType: hard -"@emotion/babel-plugin@npm:^11.11.0": - version: 11.11.0 - resolution: "@emotion/babel-plugin@npm:11.11.0" +"@emnapi/core@npm:^1.4.0": + version: 1.4.0 + resolution: "@emnapi/core@npm:1.4.0" + dependencies: + "@emnapi/wasi-threads": 1.0.1 + tslib: ^2.4.0 + checksum: 6f3ff7ab27e08a465118843e48808f4683ee6e72c409aab553ed2a740a67b8f00771a697c0d1abd46f62dfa65466862d2ff9f886e4f0e4e5342b36d8c350eb36 + languageName: node + linkType: hard + +"@emnapi/runtime@npm:^1.4.0": + version: 1.4.0 + resolution: "@emnapi/runtime@npm:1.4.0" + dependencies: + tslib: ^2.4.0 + checksum: 90cca909ceb842e95cb5e16ab64e4c4d8925c6f4ed5527848e53faad8c4e23885e4a001a6099e26a76d099a67758032a9f208b13252176e2b68c860d19f5c1f9 + languageName: node + linkType: hard + +"@emnapi/wasi-threads@npm:1.0.1": + version: 1.0.1 + resolution: "@emnapi/wasi-threads@npm:1.0.1" + dependencies: + tslib: ^2.4.0 + checksum: e154880440ff9bfe67b417f30134f0ff6fee28913dbf4a22de2e67dda5bf5b51055647c5d1565281df17ef5dfcc89256546bdf9b8ccfd07e07566617e7ce1498 + languageName: node + linkType: hard + +"@emotion/babel-plugin@npm:^11.13.5": + version: 11.13.5 + resolution: "@emotion/babel-plugin@npm:11.13.5" dependencies: "@babel/helper-module-imports": ^7.16.7 "@babel/runtime": ^7.18.3 - "@emotion/hash": ^0.9.1 - "@emotion/memoize": ^0.8.1 - "@emotion/serialize": ^1.1.2 + "@emotion/hash": ^0.9.2 + "@emotion/memoize": ^0.9.0 + "@emotion/serialize": ^1.3.3 babel-plugin-macros: ^3.1.0 convert-source-map: ^1.5.0 escape-string-regexp: ^4.0.0 find-root: ^1.1.0 source-map: ^0.5.7 stylis: 4.2.0 - checksum: 6b363edccc10290f7a23242c06f88e451b5feb2ab94152b18bb8883033db5934fb0e421e2d67d09907c13837c21218a3ac28c51707778a54d6cd3706c0c2f3f9 + checksum: c41df7e6c19520e76d1939f884be878bf88b5ba00bd3de9d05c5b6c5baa5051686ab124d7317a0645de1b017b574d8139ae1d6390ec267fbe8e85a5252afb542 languageName: node linkType: hard -"@emotion/cache@npm:^11.11.0, @emotion/cache@npm:^11.4.0": - version: 11.11.0 - resolution: "@emotion/cache@npm:11.11.0" +"@emotion/cache@npm:^11.14.0, @emotion/cache@npm:^11.4.0": + version: 11.14.0 + resolution: "@emotion/cache@npm:11.14.0" dependencies: - "@emotion/memoize": ^0.8.1 - "@emotion/sheet": ^1.2.2 - "@emotion/utils": ^1.2.1 - "@emotion/weak-memoize": ^0.3.1 + "@emotion/memoize": ^0.9.0 + "@emotion/sheet": ^1.4.0 + "@emotion/utils": ^1.4.2 + "@emotion/weak-memoize": ^0.4.0 stylis: 4.2.0 - checksum: 8eb1dc22beaa20c21a2e04c284d5a2630a018a9d51fb190e52de348c8d27f4e8ca4bbab003d68b4f6cd9cc1c569ca747a997797e0f76d6c734a660dc29decf08 + checksum: 0a81591541ea43bc7851742e6444b7800d72e98006f94e775ae6ea0806662d14e0a86ff940f5f19d33b4bb2c427c882aa65d417e7322a6e0d5f20fe65ed920c9 languageName: node linkType: hard -"@emotion/hash@npm:^0.9.1": - version: 0.9.1 - resolution: "@emotion/hash@npm:0.9.1" - checksum: 716e17e48bf9047bf9383982c071de49f2615310fb4e986738931776f5a823bc1f29c84501abe0d3df91a3803c80122d24e28b57351bca9e01356ebb33d89876 +"@emotion/hash@npm:^0.9.2": + version: 0.9.2 + resolution: "@emotion/hash@npm:0.9.2" + checksum: 379bde2830ccb0328c2617ec009642321c0e009a46aa383dfbe75b679c6aea977ca698c832d225a893901f29d7b3eef0e38cf341f560f6b2b56f1ff23c172387 languageName: node linkType: hard -"@emotion/memoize@npm:^0.8.1": - version: 0.8.1 - resolution: "@emotion/memoize@npm:0.8.1" - checksum: a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0 +"@emotion/memoize@npm:^0.9.0": + version: 0.9.0 + resolution: "@emotion/memoize@npm:0.9.0" + checksum: 038132359397348e378c593a773b1148cd0cf0a2285ffd067a0f63447b945f5278860d9de718f906a74c7c940ba1783ac2ca18f1c06a307b01cc0e3944e783b1 languageName: node linkType: hard "@emotion/react@npm:^11.8.1": - version: 11.11.3 - resolution: "@emotion/react@npm:11.11.3" + version: 11.14.0 + resolution: "@emotion/react@npm:11.14.0" dependencies: "@babel/runtime": ^7.18.3 - "@emotion/babel-plugin": ^11.11.0 - "@emotion/cache": ^11.11.0 - "@emotion/serialize": ^1.1.3 - "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 - "@emotion/utils": ^1.2.1 - "@emotion/weak-memoize": ^0.3.1 + "@emotion/babel-plugin": ^11.13.5 + "@emotion/cache": ^11.14.0 + "@emotion/serialize": ^1.3.3 + "@emotion/use-insertion-effect-with-fallbacks": ^1.2.0 + "@emotion/utils": ^1.4.2 + "@emotion/weak-memoize": ^0.4.0 hoist-non-react-statics: ^3.3.1 peerDependencies: react: ">=16.8.0" peerDependenciesMeta: "@types/react": optional: true - checksum: 2e4b223591569f0a41686d5bd72dc8778629b7be33267e4a09582979e6faee4d7218de84e76294ed827058d4384d75557b5d71724756539c1f235e9a69e62b2e + checksum: 3cf023b11d132b56168713764d6fced8e5a1f0687dfe0caa2782dfd428c8f9e30f9826a919965a311d87b523cd196722aaf75919cd0f6bd0fd57f8a6a0281500 languageName: node linkType: hard -"@emotion/serialize@npm:^1.1.2, @emotion/serialize@npm:^1.1.3": - version: 1.1.3 - resolution: "@emotion/serialize@npm:1.1.3" +"@emotion/serialize@npm:^1.3.3": + version: 1.3.3 + resolution: "@emotion/serialize@npm:1.3.3" dependencies: - "@emotion/hash": ^0.9.1 - "@emotion/memoize": ^0.8.1 - "@emotion/unitless": ^0.8.1 - "@emotion/utils": ^1.2.1 + "@emotion/hash": ^0.9.2 + "@emotion/memoize": ^0.9.0 + "@emotion/unitless": ^0.10.0 + "@emotion/utils": ^1.4.2 csstype: ^3.0.2 - checksum: 5a756ce7e2692322683978d8ed2e84eadd60bd6f629618a82c5018c84d98684b117e57fad0174f68ec2ec0ac089bb2e0bcc8ea8c2798eb904b6d3236aa046063 + checksum: 510331233767ae4e09e925287ca2c7269b320fa1d737ea86db5b3c861a734483ea832394c0c1fe5b21468fe335624a75e72818831d303ba38125f54f44ba02e7 languageName: node linkType: hard -"@emotion/sheet@npm:^1.2.2": - version: 1.2.2 - resolution: "@emotion/sheet@npm:1.2.2" - checksum: d973273c9c15f1c291ca2269728bf044bd3e92a67bca87943fa9ec6c3cd2b034f9a6bfe95ef1b5d983351d128c75b547b43ff196a00a3875f7e1d269793cecfe +"@emotion/sheet@npm:^1.4.0": + version: 1.4.0 + resolution: "@emotion/sheet@npm:1.4.0" + checksum: eeb1212e3289db8e083e72e7e401cd6d1a84deece87e9ce184f7b96b9b5dbd6f070a89057255a6ff14d9865c3ce31f27c39248a053e4cdd875540359042586b4 languageName: node linkType: hard -"@emotion/unitless@npm:^0.8.1": - version: 0.8.1 - resolution: "@emotion/unitless@npm:0.8.1" - checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 +"@emotion/unitless@npm:^0.10.0": + version: 0.10.0 + resolution: "@emotion/unitless@npm:0.10.0" + checksum: d79346df31a933e6d33518e92636afeb603ce043f3857d0a39a2ac78a09ef0be8bedff40130930cb25df1beeee12d96ee38613963886fa377c681a89970b787c languageName: node linkType: hard -"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.1": - version: 1.0.1 - resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.2.0": + version: 1.2.0 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.2.0" peerDependencies: react: ">=16.8.0" - checksum: 700b6e5bbb37a9231f203bb3af11295eed01d73b2293abece0bc2a2237015e944d7b5114d4887ad9a79776504aa51ed2a8b0ddbc117c54495dd01a6b22f93786 + checksum: 8ff6aec7f2924526ff8c8f8f93d4b8236376e2e12c435314a18c9a373016e24dfdf984e82bbc83712b8e90ff4783cd765eb39fc7050d1a43245e5728740ddd71 languageName: node linkType: hard -"@emotion/utils@npm:^1.2.1": - version: 1.2.1 - resolution: "@emotion/utils@npm:1.2.1" - checksum: e0b44be0705b56b079c55faff93952150be69e79b660ae70ddd5b6e09fc40eb1319654315a9f34bb479d7f4ec94be6068c061abbb9e18b9778ae180ad5d97c73 +"@emotion/utils@npm:^1.4.2": + version: 1.4.2 + resolution: "@emotion/utils@npm:1.4.2" + checksum: 04cf76849c6401205c058b82689fd0ec5bf501aed6974880fe9681a1d61543efb97e848f4c38664ac4a9068c7ad2d1cb84f73bde6cf95f1208aa3c28e0190321 languageName: node linkType: hard -"@emotion/weak-memoize@npm:^0.3.1": - version: 0.3.1 - resolution: "@emotion/weak-memoize@npm:0.3.1" - checksum: b2be47caa24a8122622ea18cd2d650dbb4f8ad37b636dc41ed420c2e082f7f1e564ecdea68122b546df7f305b159bf5ab9ffee872abd0f052e687428459af594 +"@emotion/weak-memoize@npm:^0.4.0": + version: 0.4.0 + resolution: "@emotion/weak-memoize@npm:0.4.0" + checksum: db5da0e89bd752c78b6bd65a1e56231f0abebe2f71c0bd8fc47dff96408f7065b02e214080f99924f6a3bfe7ee15afc48dad999d76df86b39b16e513f7a94f52 languageName: node linkType: hard @@ -734,13 +497,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/aix-ppc64@npm:0.19.12" - conditions: os=aix & cpu=ppc64 - languageName: node - linkType: hard - "@esbuild/aix-ppc64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/aix-ppc64@npm:0.21.5" @@ -748,13 +504,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-arm64@npm:0.19.12" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/android-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm64@npm:0.21.5" @@ -762,13 +511,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-arm@npm:0.19.12" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@esbuild/android-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-arm@npm:0.21.5" @@ -776,13 +518,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/android-x64@npm:0.19.12" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - "@esbuild/android-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/android-x64@npm:0.21.5" @@ -790,13 +525,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/darwin-arm64@npm:0.19.12" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/darwin-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-arm64@npm:0.21.5" @@ -804,13 +532,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/darwin-x64@npm:0.19.12" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@esbuild/darwin-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/darwin-x64@npm:0.21.5" @@ -818,13 +539,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/freebsd-arm64@npm:0.19.12" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/freebsd-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-arm64@npm:0.21.5" @@ -832,13 +546,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/freebsd-x64@npm:0.19.12" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/freebsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/freebsd-x64@npm:0.21.5" @@ -846,13 +553,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-arm64@npm:0.19.12" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/linux-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm64@npm:0.21.5" @@ -860,13 +560,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-arm@npm:0.19.12" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - "@esbuild/linux-arm@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-arm@npm:0.21.5" @@ -874,13 +567,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-ia32@npm:0.19.12" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/linux-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ia32@npm:0.21.5" @@ -888,13 +574,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-loong64@npm:0.19.12" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - "@esbuild/linux-loong64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-loong64@npm:0.21.5" @@ -902,13 +581,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-mips64el@npm:0.19.12" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - "@esbuild/linux-mips64el@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-mips64el@npm:0.21.5" @@ -916,13 +588,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-ppc64@npm:0.19.12" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - "@esbuild/linux-ppc64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-ppc64@npm:0.21.5" @@ -930,13 +595,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-riscv64@npm:0.19.12" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - "@esbuild/linux-riscv64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-riscv64@npm:0.21.5" @@ -944,13 +602,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-s390x@npm:0.19.12" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - "@esbuild/linux-s390x@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-s390x@npm:0.21.5" @@ -958,13 +609,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/linux-x64@npm:0.19.12" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - "@esbuild/linux-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/linux-x64@npm:0.21.5" @@ -972,13 +616,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/netbsd-x64@npm:0.19.12" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/netbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/netbsd-x64@npm:0.21.5" @@ -986,13 +623,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/openbsd-x64@npm:0.19.12" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/openbsd-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/openbsd-x64@npm:0.21.5" @@ -1000,13 +630,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/sunos-x64@npm:0.19.12" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - "@esbuild/sunos-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/sunos-x64@npm:0.21.5" @@ -1014,13 +637,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-arm64@npm:0.19.12" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/win32-arm64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-arm64@npm:0.21.5" @@ -1028,13 +644,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-ia32@npm:0.19.12" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/win32-ia32@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-ia32@npm:0.21.5" @@ -1042,13 +651,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.19.12": - version: 0.19.12 - resolution: "@esbuild/win32-x64@npm:0.19.12" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@esbuild/win32-x64@npm:0.21.5": version: 0.21.5 resolution: "@esbuild/win32-x64@npm:0.21.5" @@ -1057,37 +659,62 @@ __metadata: linkType: hard "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" + version: 4.5.1 + resolution: "@eslint-community/eslint-utils@npm:4.5.1" dependencies: - eslint-visitor-keys: ^3.3.0 + eslint-visitor-keys: ^3.4.3 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + checksum: 853e681fd134e96ce88066b0cfb3ce8b7a87afc9ea207139059f51e302eb9e6de4ab73c9eeb3995407bd6c08f836aade9fce47e91124c254a4eea24a5465c2ac languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.11.0": - version: 4.11.0 - resolution: "@eslint-community/regexpp@npm:4.11.0" - checksum: 97d2fe46690b69417a551bd19a3dc53b6d9590d2295c43cc4c4e44e64131af541e2f4a44d5c12e87de990403654d3dae9d33600081f3a2f0386b368abc9111ec +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.12.1": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 languageName: node linkType: hard -"@eslint/config-array@npm:^0.18.0": - version: 0.18.0 - resolution: "@eslint/config-array@npm:0.18.0" +"@eslint/config-array@npm:^0.20.0": + version: 0.20.0 + resolution: "@eslint/config-array@npm:0.20.0" dependencies: - "@eslint/object-schema": ^2.1.4 + "@eslint/object-schema": ^2.1.6 debug: ^4.3.1 minimatch: ^3.1.2 - checksum: 5ff748e1788745bfb3160c3b3151d62a7c054e336e9fe8069e86cfa6106f3abbd59b24f1253122268295f98c66803e9a7b23d7f947a8c00f62d2060cc44bc7fc + checksum: 55824ea31f0502166a6fea97176c9c25089a0354474cdc72a5f739b1cf6925f44f667bf8f4f3a9dabf1112ab0fa671778ca3f96f1499f31ec42caf84cae55005 languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.1.0": - version: 3.1.0 - resolution: "@eslint/eslintrc@npm:3.1.0" +"@eslint/config-helpers@npm:^0.2.0": + version: 0.2.1 + resolution: "@eslint/config-helpers@npm:0.2.1" + checksum: b463805bc319608436a8b19c94fd533d8196b326c03361db54c0f3ec59d7bd6337c9764bc945ef15df94f50443973241dc265f661b07aceed4938f7d1cf2e822 + languageName: node + linkType: hard + +"@eslint/core@npm:^0.12.0": + version: 0.12.0 + resolution: "@eslint/core@npm:0.12.0" + dependencies: + "@types/json-schema": ^7.0.15 + checksum: 3979af324102a3af2742060360563ba6b9525b8e1e524ad3d3e31e65af27db554b61d1cdfeaa42e15fb7d9ce9097c44225fd9e4f8193576accc1772457b88c12 + languageName: node + linkType: hard + +"@eslint/core@npm:^0.13.0": + version: 0.13.0 + resolution: "@eslint/core@npm:0.13.0" + dependencies: + "@types/json-schema": ^7.0.15 + checksum: 4d1a4163ba7f667297ba6e60de82f41d139b01951e2870b1bb609072c3c5df68b0288cc911ce3af0564dfa19bfda23cbf04eebd243ccb4960e0b5f927aa9a723 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^3.3.1": + version: 3.3.1 + resolution: "@eslint/eslintrc@npm:3.3.1" dependencies: ajv: ^6.12.4 debug: ^4.3.2 @@ -1098,64 +725,57 @@ __metadata: js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: b0a9bbd98c8b9e0f4d975b042ff9b874dde722b20834ea2ff46551c3de740d4f10f56c449b790ef34d7f82147cbddfc22b004a43cc885dbc2664bb134766b5e4 + checksum: 8241f998f0857abf5a615072273b90b1244d75c1c45d217c6a8eb444c6e12bbb5506b4879c14fb262eb72b7d8e3d2f0542da2db1a7f414a12496ebb790fb4d62 languageName: node linkType: hard -"@eslint/js@npm:9.9.1": - version: 9.9.1 - resolution: "@eslint/js@npm:9.9.1" - checksum: 24436d7a1023dbc6c63fd199e45afa9eab8537f7bd808872d9d17dd70c5237f599fe3d08f519d55b40e33bfde02a460861df1c96aa07674090c3f98c83b0c178 +"@eslint/js@npm:9.24.0": + version: 9.24.0 + resolution: "@eslint/js@npm:9.24.0" + checksum: 423c09a9a52ae596cd77f38f97491261447e04d31a6d681b49cec7ff25dadb64f9b30e48ee5fcfb0a238a3dc3f6ee7c678fdd6ec2415bf687a73ddebaa8adff4 languageName: node linkType: hard -"@eslint/object-schema@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/object-schema@npm:2.1.4" - checksum: 5a03094115bcdab7991dbbc5d17a9713f394cebb4b44d3eaf990d7487b9b8e1877b817997334ab40be52e299a0384595c6f6ba91b389901e5e1d21efda779271 +"@eslint/object-schema@npm:^2.1.6": + version: 2.1.6 + resolution: "@eslint/object-schema@npm:2.1.6" + checksum: e32e565319f6544d36d3fa69a3e163120722d12d666d1a4525c9a6f02e9b54c29d9b1f03139e25d7e759e08dda8da433590bc23c09db8d511162157ef1b86a4c languageName: node linkType: hard -"@floating-ui/core@npm:^1.6.0": - version: 1.6.0 - resolution: "@floating-ui/core@npm:1.6.0" +"@eslint/plugin-kit@npm:^0.2.7": + version: 0.2.8 + resolution: "@eslint/plugin-kit@npm:0.2.8" dependencies: - "@floating-ui/utils": ^0.2.1 - checksum: 2e25c53b0c124c5c9577972f8ae21d081f2f7895e6695836a53074463e8c65b47722744d6d2b5a993164936da006a268bcfe87fe68fd24dc235b1cb86bed3127 + "@eslint/core": ^0.13.0 + levn: ^0.4.1 + checksum: b5bd769f3f96cb3bdc4051d9ebd973b30d1cd00a02953ded1eeb74fb5b2af73cf38c20cc76acddc8e74828f0dbf92ba9d725414b3026177935fc4b48784a7fba languageName: node linkType: hard -"@floating-ui/dom@npm:^1.0.1": - version: 1.6.1 - resolution: "@floating-ui/dom@npm:1.6.1" +"@floating-ui/core@npm:^1.6.0": + version: 1.6.9 + resolution: "@floating-ui/core@npm:1.6.9" dependencies: - "@floating-ui/core": ^1.6.0 - "@floating-ui/utils": ^0.2.1 - checksum: 5565e4dee612bab62950913c311d75d3f773bd1d9dc437f7e33b46340f32ec565733c995c6185381adaf64e627df3c79901d0a9d555f58c02509d0764bceb57d + "@floating-ui/utils": ^0.2.9 + checksum: 21cbcac72a40172399570dedf0eb96e4f24b0d829980160e8d14edf08c2955ac6feffb7b94e1530c78fb7944635e52669c9257ad08570e0295efead3b5a9af91 languageName: node linkType: hard -"@floating-ui/dom@npm:^1.6.1": - version: 1.6.10 - resolution: "@floating-ui/dom@npm:1.6.10" +"@floating-ui/dom@npm:^1.0.1, @floating-ui/dom@npm:^1.6.1": + version: 1.6.13 + resolution: "@floating-ui/dom@npm:1.6.13" dependencies: "@floating-ui/core": ^1.6.0 - "@floating-ui/utils": ^0.2.7 - checksum: dc86989f1b7dc00f2786e2aa369e7c26c7c63c8c5bad0ba9bede0e45df4b9699c6908b0405c92701bcde69e21a4a582d29dc5d1c924ed8d5fe072dfc777558c7 + "@floating-ui/utils": ^0.2.9 + checksum: eabab9d860d3b5beab1c2d6936287efc4d9ab352de99062380589ef62870d59e8730397489c34a96657e128498001b5672330c4a9da0159fe8b2401ac59fe314 languageName: node linkType: hard -"@floating-ui/utils@npm:^0.2.1": - version: 0.2.1 - resolution: "@floating-ui/utils@npm:0.2.1" - checksum: 9ed4380653c7c217cd6f66ae51f20fdce433730dbc77f95b5abfb5a808f5fdb029c6ae249b4e0490a816f2453aa6e586d9a873cd157fdba4690f65628efc6e06 - languageName: node - linkType: hard - -"@floating-ui/utils@npm:^0.2.7": - version: 0.2.7 - resolution: "@floating-ui/utils@npm:0.2.7" - checksum: 7e6707c4c6d496f86377a97aac0232926953a2da9c2058ed79d8b44031038ef8fcf9743dac7b38c1da7148460194da987814d78af801ec5c278abf9b303adb22 +"@floating-ui/utils@npm:^0.2.9": + version: 0.2.9 + resolution: "@floating-ui/utils@npm:0.2.9" + checksum: d518b80cec5a323e54a069a1dd99a20f8221a4853ed98ac16c75275a0cc22f75de4f8ac5b121b4f8990bd45da7ad1fb015b9a1e4bac27bb1cd62444af84e9784 languageName: node linkType: hard @@ -1181,6 +801,23 @@ __metadata: languageName: node linkType: hard +"@humanfs/core@npm:^0.19.1": + version: 0.19.1 + resolution: "@humanfs/core@npm:0.19.1" + checksum: 611e0545146f55ddfdd5c20239cfb7911f9d0e28258787c4fc1a1f6214250830c9367aaaeace0096ed90b6739bee1e9c52ad5ba8adaf74ab8b449119303babfe + languageName: node + linkType: hard + +"@humanfs/node@npm:^0.16.6": + version: 0.16.6 + resolution: "@humanfs/node@npm:0.16.6" + dependencies: + "@humanfs/core": ^0.19.1 + "@humanwhocodes/retry": ^0.3.0 + checksum: f9cb52bb235f8b9c6fcff43a7e500669a38f8d6ce26593404a9b56365a1644e0ed60c720dc65ff6a696b1f85f3563ab055bb554ec8674f2559085ba840e47710 + languageName: node + linkType: hard + "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -1189,9 +826,16 @@ __metadata: linkType: hard "@humanwhocodes/retry@npm:^0.3.0": - version: 0.3.0 - resolution: "@humanwhocodes/retry@npm:0.3.0" - checksum: 4349cb8b60466a000e945fde8f8551cefb01ebba22ead4a92ac7b145f67f5da6b52e5a1e0c53185d732d0a49958ac29327934a4a5ac1d0bc20efb4429a4f7bf7 + version: 0.3.1 + resolution: "@humanwhocodes/retry@npm:0.3.1" + checksum: 7e5517bb51dbea3e02ab6cacef59a8f4b0ca023fc4b0b8cbc40de0ad29f46edd50b897c6e7fba79366a0217e3f48e2da8975056f6c35cfe19d9cc48f1d03c1dd + languageName: node + linkType: hard + +"@humanwhocodes/retry@npm:^0.4.2": + version: 0.4.2 + resolution: "@humanwhocodes/retry@npm:0.4.2" + checksum: 764127449a9f97d807b9c47f898fce8d7e0e8e8438366116b9ddcaacded99b2c285b8eed2cfdd5fdcb68be47728218db949f9618a58c0d3898d9fd14a6d6671e languageName: node linkType: hard @@ -1209,6 +853,15 @@ __metadata: languageName: node linkType: hard +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: ^7.0.4 + checksum: 5d36d289960e886484362d9eb6a51d1ea28baed5f5d0140bbe62b99bac52eaf06cc01c2bc0d3575977962f84f6b2c4387b043ee632216643d4787b0999465bf2 + languageName: node + linkType: hard + "@istanbuljs/load-nyc-config@npm:^1.0.0, @istanbuljs/load-nyc-config@npm:^1.1.0": version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" @@ -1240,39 +893,21 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.3 - resolution: "@jridgewell/gen-mapping@npm:0.3.3" - dependencies: - "@jridgewell/set-array": ^1.0.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.9 - checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.5": - version: 0.3.5 - resolution: "@jridgewell/gen-mapping@npm:0.3.5" +"@jridgewell/gen-mapping@npm:^0.3.2, @jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.8 + resolution: "@jridgewell/gen-mapping@npm:0.3.8" dependencies: "@jridgewell/set-array": ^1.2.1 "@jridgewell/sourcemap-codec": ^1.4.10 "@jridgewell/trace-mapping": ^0.3.24 - checksum: ff7a1764ebd76a5e129c8890aa3e2f46045109dabde62b0b6c6a250152227647178ff2069ea234753a690d8f3c4ac8b5e7b267bbee272bffb7f3b0a370ab6e52 + checksum: c0687b5227461717aa537fe71a42e356bcd1c43293b3353796a148bf3b0d6f59109def46c22f05b60e29a46f19b2e4676d027959a7c53a6c92b9d5b0d87d0420 languageName: node linkType: hard "@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": - version: 3.1.1 - resolution: "@jridgewell/resolve-uri@npm:3.1.1" - checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 - languageName: node - linkType: hard - -"@jridgewell/set-array@npm:^1.0.1": - version: 1.1.2 - resolution: "@jridgewell/set-array@npm:1.1.2" - checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 languageName: node linkType: hard @@ -1283,14 +918,7 @@ __metadata: languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": - version: 1.4.15 - resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" - checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 - languageName: node - linkType: hard - -"@jridgewell/sourcemap-codec@npm:^1.5.0": +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec @@ -1307,16 +935,6 @@ __metadata: languageName: node linkType: hard -"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.22 - resolution: "@jridgewell/trace-mapping@npm:0.3.22" - dependencies: - "@jridgewell/resolve-uri": ^3.1.0 - "@jridgewell/sourcemap-codec": ^1.4.14 - checksum: ac7dd2cfe0b479aa1b81776d40d789243131cc792dc8b6b6a028c70fcd6171958ae1a71bf67b618ffe3c0c3feead9870c095ee46a5e30319410d92976b28f498 - languageName: node - linkType: hard - "@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" @@ -1327,19 +945,46 @@ __metadata: languageName: node linkType: hard +"@napi-rs/wasm-runtime@npm:^0.2.8": + version: 0.2.8 + resolution: "@napi-rs/wasm-runtime@npm:0.2.8" + dependencies: + "@emnapi/core": ^1.4.0 + "@emnapi/runtime": ^1.4.0 + "@tybys/wasm-util": ^0.9.0 + checksum: c7e7ec1c19e6e0bfb9d1553fb3b25f46d9ffb48f6c54e95b7cf939c294d8cda254da72575319999e77891805b15688da1db4926e6f6f0c31b1a08722e7b92d62 + languageName: node + linkType: hard + +"@noble/curves@npm:1.2.0": + version: 1.2.0 + resolution: "@noble/curves@npm:1.2.0" + dependencies: + "@noble/hashes": 1.3.2 + checksum: bb798d7a66d8e43789e93bc3c2ddff91a1e19fdb79a99b86cd98f1e5eff0ee2024a2672902c2576ef3577b6f282f3b5c778bebd55761ddbb30e36bf275e83dd0 + languageName: node + linkType: hard + "@noble/curves@npm:^1.3.0": - version: 1.3.0 - resolution: "@noble/curves@npm:1.3.0" + version: 1.8.1 + resolution: "@noble/curves@npm:1.8.1" dependencies: - "@noble/hashes": 1.3.3 - checksum: b65342ee66c4a440eee2978524412eabba9a9efdd16d6370e15218c6a7d80bddf35e66bb57ed52c0dfd32cb9a717b439ab3a72db618f1a0066dfebe3fd12a421 + "@noble/hashes": 1.7.1 + checksum: 4143f1248ed57c1ae46dfef5c692a91383e5830420b9c72d3ff1061aa9ebbf8999297da6d2aed8a9716fef8e6b1f5a45737feeab02abf55ca2a4f514bf9339ec languageName: node linkType: hard -"@noble/hashes@npm:1.3.3, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.3": - version: 1.3.3 - resolution: "@noble/hashes@npm:1.3.3" - checksum: 8a6496d1c0c64797339bc694ad06cdfaa0f9e56cd0c3f68ae3666cfb153a791a55deb0af9c653c7ed2db64d537aa3e3054629740d2f2338bb1dcb7ab60cd205b +"@noble/hashes@npm:1.3.2": + version: 1.3.2 + resolution: "@noble/hashes@npm:1.3.2" + checksum: fe23536b436539d13f90e4b9be843cc63b1b17666a07634a2b1259dded6f490be3d050249e6af98076ea8f2ea0d56f578773c2197f2aa0eeaa5fba5bc18ba474 + languageName: node + linkType: hard + +"@noble/hashes@npm:1.7.1, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.3": + version: 1.7.1 + resolution: "@noble/hashes@npm:1.7.1" + checksum: 4f1b56428a10323feef17e4f437c9093556cb18db06f94d254043fadb69c3da8475f96eb3f8322d41e8670117d7486475a8875e68265c2839f60fd03edd6a616 languageName: node linkType: hard @@ -1360,7 +1005,7 @@ __metadata: languageName: node linkType: hard -"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": +"@nodelib/fs.walk@npm:^1.2.3": version: 1.2.8 resolution: "@nodelib/fs.walk@npm:1.2.8" dependencies: @@ -1370,25 +1015,32 @@ __metadata: languageName: node linkType: hard -"@npmcli/agent@npm:^2.0.0": - version: 2.2.1 - resolution: "@npmcli/agent@npm:2.2.1" +"@nolyfill/is-core-module@npm:1.0.39": + version: 1.0.39 + resolution: "@nolyfill/is-core-module@npm:1.0.39" + checksum: 0d6e098b871eca71d875651288e1f0fa770a63478b0b50479c99dc760c64175a56b5b04f58d5581bbcc6b552b8191ab415eada093d8df9597ab3423c8cac1815 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^3.0.0": + version: 3.0.0 + resolution: "@npmcli/agent@npm:3.0.0" dependencies: agent-base: ^7.1.0 http-proxy-agent: ^7.0.0 https-proxy-agent: ^7.0.1 lru-cache: ^10.0.1 - socks-proxy-agent: ^8.0.1 - checksum: c69aca42dbba393f517bc5777ee872d38dc98ea0e5e93c1f6d62b82b8fecdc177a57ea045f07dda1a770c592384b2dd92a5e79e21e2a7cf51c9159466a8f9c9b + socks-proxy-agent: ^8.0.3 + checksum: e8fc25d536250ed3e669813b36e8c6d805628b472353c57afd8c4fde0fcfcf3dda4ffe22f7af8c9070812ec2e7a03fb41d7151547cef3508efe661a5a3add20f languageName: node linkType: hard -"@npmcli/fs@npm:^3.1.0": - version: 3.1.0 - resolution: "@npmcli/fs@npm:3.1.0" +"@npmcli/fs@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/fs@npm:4.0.0" dependencies: semver: ^7.3.5 - checksum: a50a6818de5fc557d0b0e6f50ec780a7a02ab8ad07e5ac8b16bf519e0ad60a144ac64f97d05c443c3367235d337182e1d012bbac0eb8dbae8dc7b40b193efd0e + checksum: 68951c589e9a4328698a35fd82fe71909a257d6f2ede0434d236fa55634f0fbcad9bb8755553ce5849bd25ee6f019f4d435921ac715c853582c4a7f5983c8d4a languageName: node linkType: hard @@ -1481,6 +1133,21 @@ __metadata: languageName: node linkType: hard +"@polkadot/api-augment@npm:15.9.1": + version: 15.9.1 + resolution: "@polkadot/api-augment@npm:15.9.1" + dependencies: + "@polkadot/api-base": 15.9.1 + "@polkadot/rpc-augment": 15.9.1 + "@polkadot/types": 15.9.1 + "@polkadot/types-augment": 15.9.1 + "@polkadot/types-codec": 15.9.1 + "@polkadot/util": ^13.4.3 + tslib: ^2.8.1 + checksum: 77dd47b9b8a65386c84f810460d5bef508ec52a4243b84e869f9b064cbaf5cd4ad0ec253c41ff937333e521fdf5e294bf40be2c8cade3ba3d4b460bcb904ed58 + languageName: node + linkType: hard + "@polkadot/api-base@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/api-base@npm:15.8.1" @@ -1494,20 +1161,33 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-contract@npm:15.8.1": +"@polkadot/api-base@npm:15.9.1": + version: 15.9.1 + resolution: "@polkadot/api-base@npm:15.9.1" + dependencies: + "@polkadot/rpc-core": 15.9.1 + "@polkadot/types": 15.9.1 + "@polkadot/util": ^13.4.3 + rxjs: ^7.8.1 + tslib: ^2.8.1 + checksum: 59153b3c10a1cc151cf9d80bb42064ad52f94e0fc00fa06c856b71fabc50050bd0ca98b5043bbf26a0608724b222312ceaf89c332a46ab60aeb7a3557fe01588 + languageName: node + linkType: hard + +"@polkadot/api-contract@file:/Users/peter/dev/dot-repos/api/packages/api-contract/build::locator=contracts-ui%40workspace%3A.": version: 15.8.1 - resolution: "@polkadot/api-contract@npm:15.8.1" + resolution: "@polkadot/api-contract@file:/Users/peter/dev/dot-repos/api/packages/api-contract/build#/Users/peter/dev/dot-repos/api/packages/api-contract/build::hash=708da4&locator=contracts-ui%40workspace%3A." dependencies: "@polkadot/api": 15.8.1 "@polkadot/api-augment": 15.8.1 - "@polkadot/types": 15.8.1 + "@polkadot/types": ../../types/build "@polkadot/types-codec": 15.8.1 "@polkadot/types-create": 15.8.1 "@polkadot/util": ^13.4.3 "@polkadot/util-crypto": ^13.4.3 rxjs: ^7.8.1 tslib: ^2.8.1 - checksum: df19da214f800660f6fe22cb8f7113ec3b5a5dfbb622a0deb96a911850fe5c9f4b6418f361009ec3cb41e3fd5cce22fa2681ed4c1aeae2a4543ba8adaf51f3aa + checksum: 277ef5a1d6e48355457a4b46e371c409610bdd1b60b0d071678228c6809fbef8434c5d58a03566a44c2ab5967d8c8bc60ec846cb85c703672cde0ae6ef2a9ce4 languageName: node linkType: hard @@ -1529,7 +1209,25 @@ __metadata: languageName: node linkType: hard -"@polkadot/api@npm:15.8.1, @polkadot/api@npm:^15.8.1": +"@polkadot/api-derive@npm:15.9.1": + version: 15.9.1 + resolution: "@polkadot/api-derive@npm:15.9.1" + dependencies: + "@polkadot/api": 15.9.1 + "@polkadot/api-augment": 15.9.1 + "@polkadot/api-base": 15.9.1 + "@polkadot/rpc-core": 15.9.1 + "@polkadot/types": 15.9.1 + "@polkadot/types-codec": 15.9.1 + "@polkadot/util": ^13.4.3 + "@polkadot/util-crypto": ^13.4.3 + rxjs: ^7.8.1 + tslib: ^2.8.1 + checksum: a6390ebf0d3c07a5de6584711f0349d70ec488b4dee6d5f8557257225fc4fbc2b8aa0814d53e39fe5137ce0dd7293a3e0545fc21c7bf66697b0713dac240fa83 + languageName: node + linkType: hard + +"@polkadot/api@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/api@npm:15.8.1" dependencies: @@ -1554,11 +1252,36 @@ __metadata: languageName: node linkType: hard +"@polkadot/api@npm:15.9.1, @polkadot/api@npm:^15.9.1": + version: 15.9.1 + resolution: "@polkadot/api@npm:15.9.1" + dependencies: + "@polkadot/api-augment": 15.9.1 + "@polkadot/api-base": 15.9.1 + "@polkadot/api-derive": 15.9.1 + "@polkadot/keyring": ^13.4.3 + "@polkadot/rpc-augment": 15.9.1 + "@polkadot/rpc-core": 15.9.1 + "@polkadot/rpc-provider": 15.9.1 + "@polkadot/types": 15.9.1 + "@polkadot/types-augment": 15.9.1 + "@polkadot/types-codec": 15.9.1 + "@polkadot/types-create": 15.9.1 + "@polkadot/types-known": 15.9.1 + "@polkadot/util": ^13.4.3 + "@polkadot/util-crypto": ^13.4.3 + eventemitter3: ^5.0.1 + rxjs: ^7.8.1 + tslib: ^2.8.1 + checksum: f0bacda53c72220e951190202a1fa79076eb9fd319f9e74157a29f7bca2fd6bb6b4a57f5ecf8993dbf1773aad34934a9b2a25391f1d8ad2aa8f8fd245f735397 + languageName: node + linkType: hard + "@polkadot/extension-dapp@npm:^0.58.6": - version: 0.58.6 - resolution: "@polkadot/extension-dapp@npm:0.58.6" + version: 0.58.7 + resolution: "@polkadot/extension-dapp@npm:0.58.7" dependencies: - "@polkadot/extension-inject": 0.58.6 + "@polkadot/extension-inject": 0.58.7 "@polkadot/util": ^13.4.3 "@polkadot/util-crypto": ^13.4.3 tslib: ^2.8.1 @@ -1566,17 +1289,17 @@ __metadata: "@polkadot/api": "*" "@polkadot/util": "*" "@polkadot/util-crypto": "*" - checksum: 5f7d20b331ab06af9d269b3f8b9c361088b53664e410ef20d95a67891a31748ada4d3cf8938c9f589c1c3af1f9cbb6948a2b0b138daa1b86c4bbadc50ce0fcbe + checksum: 615e69a5fcd5f3cbf28ce833610654355b2ee3e81926bcc0e7a285eec9a2530ee2a3d4a7df6c15a65e08998eb7be1d8c8269fe5b0f70ff23345a9d19f2bdf763 languageName: node linkType: hard -"@polkadot/extension-inject@npm:0.58.6": - version: 0.58.6 - resolution: "@polkadot/extension-inject@npm:0.58.6" +"@polkadot/extension-inject@npm:0.58.7": + version: 0.58.7 + resolution: "@polkadot/extension-inject@npm:0.58.7" dependencies: - "@polkadot/api": ^15.8.1 - "@polkadot/rpc-provider": ^15.8.1 - "@polkadot/types": ^15.8.1 + "@polkadot/api": ^15.9.1 + "@polkadot/rpc-provider": ^15.9.1 + "@polkadot/types": ^15.9.1 "@polkadot/util": ^13.4.3 "@polkadot/util-crypto": ^13.4.3 "@polkadot/x-global": ^13.4.3 @@ -1584,7 +1307,7 @@ __metadata: peerDependencies: "@polkadot/api": "*" "@polkadot/util": "*" - checksum: 52a526605c75e5c14575cb06452027238f93083512a4a52b59f230329bfdf0cc2d34eb6a0d87b9ed2d1bd312b108799277f6df7ecb8f2bf8ce18cd41eb5805ea + checksum: d570001946972aa28dac6fac6f775cbf221086fa6a704780e9371b6142387b7deb00551ee16b7631502a325c35d5db5114461c1a0e8a5acefa28c5c788f531f8 languageName: node linkType: hard @@ -1626,6 +1349,19 @@ __metadata: languageName: node linkType: hard +"@polkadot/rpc-augment@npm:15.9.1": + version: 15.9.1 + resolution: "@polkadot/rpc-augment@npm:15.9.1" + dependencies: + "@polkadot/rpc-core": 15.9.1 + "@polkadot/types": 15.9.1 + "@polkadot/types-codec": 15.9.1 + "@polkadot/util": ^13.4.3 + tslib: ^2.8.1 + checksum: 418e9b1b741e6c8bf84c23dbe7264a3b4ac08f0199e17de41f7213caaa0e718ae2ddd20837f0064d1de03db7277a4c47c0fbdf8c4eac809f59d5d153c2749cad + languageName: node + linkType: hard + "@polkadot/rpc-core@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/rpc-core@npm:15.8.1" @@ -1640,7 +1376,21 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-provider@npm:15.8.1, @polkadot/rpc-provider@npm:^15.8.1": +"@polkadot/rpc-core@npm:15.9.1": + version: 15.9.1 + resolution: "@polkadot/rpc-core@npm:15.9.1" + dependencies: + "@polkadot/rpc-augment": 15.9.1 + "@polkadot/rpc-provider": 15.9.1 + "@polkadot/types": 15.9.1 + "@polkadot/util": ^13.4.3 + rxjs: ^7.8.1 + tslib: ^2.8.1 + checksum: 5a82afb3ceae513bf0f5dbdbb1771f9d799400da8bce659e4bbb9dd2780b6bcd5495047009b35f2c370e140aa327be8fbdc271725ddd5c78bbe6c21115485c42 + languageName: node + linkType: hard + +"@polkadot/rpc-provider@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/rpc-provider@npm:15.8.1" dependencies: @@ -1664,6 +1414,30 @@ __metadata: languageName: node linkType: hard +"@polkadot/rpc-provider@npm:15.9.1, @polkadot/rpc-provider@npm:^15.9.1": + version: 15.9.1 + resolution: "@polkadot/rpc-provider@npm:15.9.1" + dependencies: + "@polkadot/keyring": ^13.4.3 + "@polkadot/types": 15.9.1 + "@polkadot/types-support": 15.9.1 + "@polkadot/util": ^13.4.3 + "@polkadot/util-crypto": ^13.4.3 + "@polkadot/x-fetch": ^13.4.3 + "@polkadot/x-global": ^13.4.3 + "@polkadot/x-ws": ^13.4.3 + "@substrate/connect": 0.8.11 + eventemitter3: ^5.0.1 + mock-socket: ^9.3.1 + nock: ^13.5.5 + tslib: ^2.8.1 + dependenciesMeta: + "@substrate/connect": + optional: true + checksum: bea70c4bd3546ad89d661486db1b86bc292ffe6c69d26c5d2cf8fa56af258ce95b9fb0e49d02bc03cb61e43bb8fc8b922cf04f26110aca6dd431f2d8fc002bcd + languageName: node + linkType: hard + "@polkadot/types-augment@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/types-augment@npm:15.8.1" @@ -1676,6 +1450,18 @@ __metadata: languageName: node linkType: hard +"@polkadot/types-augment@npm:15.9.1": + version: 15.9.1 + resolution: "@polkadot/types-augment@npm:15.9.1" + dependencies: + "@polkadot/types": 15.9.1 + "@polkadot/types-codec": 15.9.1 + "@polkadot/util": ^13.4.3 + tslib: ^2.8.1 + checksum: 4d404325be09f9ef626956b2494cfb088f19d9e2570b6bdf953fcada31427a3e0033cb1b3a8e02bbb9c73ef15ed4fcaa208b413d908f6405181001eeda1c45b4 + languageName: node + linkType: hard + "@polkadot/types-codec@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/types-codec@npm:15.8.1" @@ -1687,6 +1473,17 @@ __metadata: languageName: node linkType: hard +"@polkadot/types-codec@npm:15.9.1": + version: 15.9.1 + resolution: "@polkadot/types-codec@npm:15.9.1" + dependencies: + "@polkadot/util": ^13.4.3 + "@polkadot/x-bigint": ^13.4.3 + tslib: ^2.8.1 + checksum: aa54fbac1e82f9166c01eb1ef6303d2cd71ee82a5522c16ec8765c0b3bd67a011ca6ac0d9fb14b3de28e708fbc1e6232b6b3f169a88d1896d3f93fec021ab04d + languageName: node + linkType: hard + "@polkadot/types-create@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/types-create@npm:15.8.1" @@ -1698,6 +1495,17 @@ __metadata: languageName: node linkType: hard +"@polkadot/types-create@npm:15.9.1": + version: 15.9.1 + resolution: "@polkadot/types-create@npm:15.9.1" + dependencies: + "@polkadot/types-codec": 15.9.1 + "@polkadot/util": ^13.4.3 + tslib: ^2.8.1 + checksum: bfe4ad657f56bfa1194ebc3a3f6ffa53a0b858cbe5e49d24d61e89960581aad12abe57a57d72897a91f5cec8e36d566e4601d8155bc56d197df5aac827699cd2 + languageName: node + linkType: hard + "@polkadot/types-known@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/types-known@npm:15.8.1" @@ -1712,6 +1520,20 @@ __metadata: languageName: node linkType: hard +"@polkadot/types-known@npm:15.9.1": + version: 15.9.1 + resolution: "@polkadot/types-known@npm:15.9.1" + dependencies: + "@polkadot/networks": ^13.4.3 + "@polkadot/types": 15.9.1 + "@polkadot/types-codec": 15.9.1 + "@polkadot/types-create": 15.9.1 + "@polkadot/util": ^13.4.3 + tslib: ^2.8.1 + checksum: 76cc21337515b014d61f98e07b3d328d05d417d8ef0a107699e539ba0fa2adae66204c765a406e8d265644d8989cc683adcf9bc4ea3b2e1535969ce8605db7b8 + languageName: node + linkType: hard + "@polkadot/types-support@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/types-support@npm:15.8.1" @@ -1722,7 +1544,49 @@ __metadata: languageName: node linkType: hard -"@polkadot/types@npm:15.8.1, @polkadot/types@npm:^15.8.1": +"@polkadot/types-support@npm:15.9.1": + version: 15.9.1 + resolution: "@polkadot/types-support@npm:15.9.1" + dependencies: + "@polkadot/util": ^13.4.3 + tslib: ^2.8.1 + checksum: 8d7fc8e0ec927c1509a87a85f4686a1f8e5b1004371e8e120b512fd00b0e25acfa2826ab7e448d01d96c7ae984b35e056deafb19126c209e74f8d0fc4154e4d3 + languageName: node + linkType: hard + +"@polkadot/types@file:../../types/build::locator=%40polkadot%2Fapi-contract%40file%3A%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%23%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3D708da4%26locator%3Dcontracts-ui%2540workspace%253A.": + version: 15.8.1 + resolution: "@polkadot/types@file:../../types/build#../../types/build::hash=169299&locator=%40polkadot%2Fapi-contract%40file%3A%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%23%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3D708da4%26locator%3Dcontracts-ui%2540workspace%253A." + dependencies: + "@polkadot/keyring": ^13.4.3 + "@polkadot/types-augment": 15.8.1 + "@polkadot/types-codec": 15.8.1 + "@polkadot/types-create": 15.8.1 + "@polkadot/util": ^13.4.3 + "@polkadot/util-crypto": ^13.4.3 + rxjs: ^7.8.1 + tslib: ^2.8.1 + checksum: db963ad20cc3529e5bf146ff72cc72c72115a644aeee0aa038d64c051097bddaee83eb50a4cdc5fb667eb7fa5a05dc1934676ef095d9d9610fa7b27f9ead3565 + languageName: node + linkType: hard + +"@polkadot/types@file:/Users/peter/dev/dot-repos/api/packages/types/build::locator=contracts-ui%40workspace%3A.": + version: 15.8.1 + resolution: "@polkadot/types@file:/Users/peter/dev/dot-repos/api/packages/types/build#/Users/peter/dev/dot-repos/api/packages/types/build::hash=169299&locator=contracts-ui%40workspace%3A." + dependencies: + "@polkadot/keyring": ^13.4.3 + "@polkadot/types-augment": 15.8.1 + "@polkadot/types-codec": 15.8.1 + "@polkadot/types-create": 15.8.1 + "@polkadot/util": ^13.4.3 + "@polkadot/util-crypto": ^13.4.3 + rxjs: ^7.8.1 + tslib: ^2.8.1 + checksum: db963ad20cc3529e5bf146ff72cc72c72115a644aeee0aa038d64c051097bddaee83eb50a4cdc5fb667eb7fa5a05dc1934676ef095d9d9610fa7b27f9ead3565 + languageName: node + linkType: hard + +"@polkadot/types@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/types@npm:15.8.1" dependencies: @@ -1738,6 +1602,22 @@ __metadata: languageName: node linkType: hard +"@polkadot/types@npm:15.9.1, @polkadot/types@npm:^15.9.1": + version: 15.9.1 + resolution: "@polkadot/types@npm:15.9.1" + dependencies: + "@polkadot/keyring": ^13.4.3 + "@polkadot/types-augment": 15.9.1 + "@polkadot/types-codec": 15.9.1 + "@polkadot/types-create": 15.9.1 + "@polkadot/util": ^13.4.3 + "@polkadot/util-crypto": ^13.4.3 + rxjs: ^7.8.1 + tslib: ^2.8.1 + checksum: 60a605d86d4419f6862803cc8bdaf23a5ea43cf027177e7c99e011ba633640f0385bccb4f1f5e5ac715e8c53220f0618bdf450fe52436a45c6fd21a7bdf37769 + languageName: node + linkType: hard + "@polkadot/ui-keyring@npm:^3.12.2": version: 3.12.2 resolution: "@polkadot/ui-keyring@npm:3.12.2" @@ -1976,224 +1856,161 @@ __metadata: languageName: node linkType: hard -"@remix-run/router@npm:1.19.1": - version: 1.19.1 - resolution: "@remix-run/router@npm:1.19.1" - checksum: ebe4474ba0c1046093976b48a4eb4e39bd2f47368aacea21400126d72e133d2cfbfb50254cf1bde0b66dacdf0344452f743049d1595a22e86130668f60112376 - languageName: node - linkType: hard - -"@rollup/rollup-android-arm-eabi@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.21.0" - conditions: os=android & cpu=arm +"@remix-run/router@npm:1.23.0": + version: 1.23.0 + resolution: "@remix-run/router@npm:1.23.0" + checksum: 6a403b7bc740f15185f3b68f90f98d4976fe231e819b44a0f0628783c4f31ca1072e3370c24b98488be3e4f68ecf51b20cb9463f20a5a6cf4c21929fc7721964 languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.9.6" +"@rollup/rollup-android-arm-eabi@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.39.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-android-arm64@npm:4.21.0" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-android-arm64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-android-arm64@npm:4.9.6" +"@rollup/rollup-android-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-android-arm64@npm:4.39.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.21.0" +"@rollup/rollup-darwin-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.39.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-darwin-arm64@npm:4.9.6" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-x64@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.21.0" +"@rollup/rollup-darwin-x64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.39.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-darwin-x64@npm:4.9.6" - conditions: os=darwin & cpu=x64 +"@rollup/rollup-freebsd-arm64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.39.0" + conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.21.0" - conditions: os=linux & cpu=arm +"@rollup/rollup-freebsd-x64@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.39.0" + conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.9.6" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.21.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.39.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.21.0" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-linux-arm64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.9.6" +"@rollup/rollup-linux-arm64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.39.0" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.21.0" +"@rollup/rollup-linux-arm64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.39.0" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.9.6" - conditions: os=linux & cpu=arm64 +"@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0" + conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.21.0" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.21.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.39.0" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.9.6" +"@rollup/rollup-linux-riscv64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.39.0" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.21.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.39.0" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.21.0" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@rollup/rollup-linux-x64-gnu@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.9.6" +"@rollup/rollup-linux-x64-gnu@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.39.0" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.21.0" +"@rollup/rollup-linux-x64-musl@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.39.0" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.9.6" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@rollup/rollup-win32-arm64-msvc@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.21.0" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-win32-arm64-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.9.6" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-win32-ia32-msvc@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.21.0" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@rollup/rollup-win32-ia32-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.9.6" - conditions: os=win32 & cpu=ia32 +"@rollup/rollup-win32-arm64-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.39.0" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.21.0": - version: 4.21.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.21.0" - conditions: os=win32 & cpu=x64 +"@rollup/rollup-win32-ia32-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.39.0" + conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.9.6": - version: 4.9.6 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.9.6" +"@rollup/rollup-win32-x64-msvc@npm:4.39.0": + version: 4.39.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.39.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@scure/base@npm:^1.1.1": - version: 1.1.5 - resolution: "@scure/base@npm:1.1.5" - checksum: 9e9ee6088cb3aa0fb91f5a48497d26682c7829df3019b1251d088d166d7a8c0f941c68aaa8e7b96bbad20c71eb210397cb1099062cde3e29d4bad6b975c18519 +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 languageName: node linkType: hard -"@scure/base@npm:^1.1.7": +"@scure/base@npm:^1.1.1, @scure/base@npm:^1.1.7": version: 1.2.4 resolution: "@scure/base@npm:1.2.4" checksum: db554eb550a1bd17684af9282e1ad751050a13d4add0e83ad61cc496680d7d1c1c1120ca780e72935a293bb59721c20a006a53a5eec6f6b5bdcd702cf27c8cae @@ -2201,16 +2018,16 @@ __metadata: linkType: hard "@substrate/connect-extension-protocol@npm:^2.0.0": - version: 2.0.0 - resolution: "@substrate/connect-extension-protocol@npm:2.0.0" - checksum: a7c6ff3fefc0784f28b1d253514c1d2951684fe3d06392dfd70299fa2184fbe040d2bd6e0f113e30a1920920b649d43668aa4565847778ab3334c7e445e880cf + version: 2.2.2 + resolution: "@substrate/connect-extension-protocol@npm:2.2.2" + checksum: 6baca8b28eb515bf6508517183ce911a61c598aa676a670631da3da52fb83aeab7cad952ce85696a21dc0aa54adc08f211ea0365b06a0486a95c6a895f80a635 languageName: node linkType: hard "@substrate/connect-known-chains@npm:^1.1.5": - version: 1.3.0 - resolution: "@substrate/connect-known-chains@npm:1.3.0" - checksum: 217d8161cfdd67795509425a4dbd41c0a054f6197053abae1232ab95c111a5834f8d158b0bb6224c754e9b0a14c8e5b1a37b14abac320f729266c0ebe050f12e + version: 1.9.3 + resolution: "@substrate/connect-known-chains@npm:1.9.3" + checksum: b04501211b7e0326e9e91b7e851ec7e3668e672c264f87ddef5c82c8213e8f241c34882d4c3757b3def878b66a87fb3a7225fc808ae5a4b6e970b17049f18cc1 languageName: node linkType: hard @@ -2250,92 +2067,92 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-darwin-arm64@npm:1.7.18" +"@swc/core-darwin-arm64@npm:1.11.18": + version: 1.11.18 + resolution: "@swc/core-darwin-arm64@npm:1.11.18" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-darwin-x64@npm:1.7.18" +"@swc/core-darwin-x64@npm:1.11.18": + version: 1.11.18 + resolution: "@swc/core-darwin-x64@npm:1.11.18" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.18" +"@swc/core-linux-arm-gnueabihf@npm:1.11.18": + version: 1.11.18 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.11.18" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-linux-arm64-gnu@npm:1.7.18" +"@swc/core-linux-arm64-gnu@npm:1.11.18": + version: 1.11.18 + resolution: "@swc/core-linux-arm64-gnu@npm:1.11.18" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-linux-arm64-musl@npm:1.7.18" +"@swc/core-linux-arm64-musl@npm:1.11.18": + version: 1.11.18 + resolution: "@swc/core-linux-arm64-musl@npm:1.11.18" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-linux-x64-gnu@npm:1.7.18" +"@swc/core-linux-x64-gnu@npm:1.11.18": + version: 1.11.18 + resolution: "@swc/core-linux-x64-gnu@npm:1.11.18" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-linux-x64-musl@npm:1.7.18" +"@swc/core-linux-x64-musl@npm:1.11.18": + version: 1.11.18 + resolution: "@swc/core-linux-x64-musl@npm:1.11.18" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-win32-arm64-msvc@npm:1.7.18" +"@swc/core-win32-arm64-msvc@npm:1.11.18": + version: 1.11.18 + resolution: "@swc/core-win32-arm64-msvc@npm:1.11.18" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-win32-ia32-msvc@npm:1.7.18" +"@swc/core-win32-ia32-msvc@npm:1.11.18": + version: 1.11.18 + resolution: "@swc/core-win32-ia32-msvc@npm:1.11.18" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.7.18": - version: 1.7.18 - resolution: "@swc/core-win32-x64-msvc@npm:1.7.18" +"@swc/core-win32-x64-msvc@npm:1.11.18": + version: 1.11.18 + resolution: "@swc/core-win32-x64-msvc@npm:1.11.18" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:^1.5.7": - version: 1.7.18 - resolution: "@swc/core@npm:1.7.18" +"@swc/core@npm:^1.11.11": + version: 1.11.18 + resolution: "@swc/core@npm:1.11.18" dependencies: - "@swc/core-darwin-arm64": 1.7.18 - "@swc/core-darwin-x64": 1.7.18 - "@swc/core-linux-arm-gnueabihf": 1.7.18 - "@swc/core-linux-arm64-gnu": 1.7.18 - "@swc/core-linux-arm64-musl": 1.7.18 - "@swc/core-linux-x64-gnu": 1.7.18 - "@swc/core-linux-x64-musl": 1.7.18 - "@swc/core-win32-arm64-msvc": 1.7.18 - "@swc/core-win32-ia32-msvc": 1.7.18 - "@swc/core-win32-x64-msvc": 1.7.18 + "@swc/core-darwin-arm64": 1.11.18 + "@swc/core-darwin-x64": 1.11.18 + "@swc/core-linux-arm-gnueabihf": 1.11.18 + "@swc/core-linux-arm64-gnu": 1.11.18 + "@swc/core-linux-arm64-musl": 1.11.18 + "@swc/core-linux-x64-gnu": 1.11.18 + "@swc/core-linux-x64-musl": 1.11.18 + "@swc/core-win32-arm64-msvc": 1.11.18 + "@swc/core-win32-ia32-msvc": 1.11.18 + "@swc/core-win32-x64-msvc": 1.11.18 "@swc/counter": ^0.1.3 - "@swc/types": ^0.1.12 + "@swc/types": ^0.1.21 peerDependencies: "@swc/helpers": "*" dependenciesMeta: @@ -2362,7 +2179,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 090708fefbfac6b803f7f186579d788d977e39e68007e44415ad64b51386c38f647c4de3657913f8d2f4f908d0e1b51dd10c473a4bfd0234df4caf94144557a1 + checksum: ccf06f3cc553defa2288a99beb35aeb3ca3c450920c5eafd1583136a3ef5963e128c34671f34bdbcc7d4760f60692498c9b145ba8eeb99beff6643bd71637577 languageName: node linkType: hard @@ -2373,49 +2190,49 @@ __metadata: languageName: node linkType: hard -"@swc/types@npm:^0.1.12": - version: 0.1.12 - resolution: "@swc/types@npm:0.1.12" +"@swc/types@npm:^0.1.21": + version: 0.1.21 + resolution: "@swc/types@npm:0.1.21" dependencies: "@swc/counter": ^0.1.3 - checksum: cf7f89e46f859864075d7965582baea9c5f98830f45b1046251568c9bdf1ca484b1bf37f6d3c32b7c82ecf8cd5df89d22f05268c391819c44e49911bb1a8e71a + checksum: 857621e50ec78407bfeaa92663be86fc9ee2c9c103ccffd7f48c55b6f3c67a82e270f6524c7974c2c608a2ed0fcf4f00c20f61c8d1fdfd2aa55b2c42a28223f1 languageName: node linkType: hard "@tailwindcss/forms@npm:^0.5.7": - version: 0.5.7 - resolution: "@tailwindcss/forms@npm:0.5.7" + version: 0.5.10 + resolution: "@tailwindcss/forms@npm:0.5.10" dependencies: mini-svg-data-uri: ^1.2.3 peerDependencies: - tailwindcss: ">=3.0.0 || >= 3.0.0-alpha.1" - checksum: 406fe102a44f89d896c9a945b705a40b926520472ffd8613d9fbfb9e63c23d600629f54096b8ba78316ce1278b79ae6070c166b820328256cf359e80f9d2146f + tailwindcss: ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" + checksum: 4526d02edccc4e44599d9588f83e4ac3e9435d137da5638653de2e74d5b612ade449a8c26d075be21692c1ac00a514aaffdb6723e526e3c8314c9a75a9f45979 languageName: node linkType: hard "@tanstack/react-virtual@npm:^3.0.0-beta.60": - version: 3.10.4 - resolution: "@tanstack/react-virtual@npm:3.10.4" + version: 3.13.6 + resolution: "@tanstack/react-virtual@npm:3.13.6" dependencies: - "@tanstack/virtual-core": 3.10.4 + "@tanstack/virtual-core": 3.13.6 peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 04b6159a09b5f69567849ad4150766ac71ef99243380214b411d0ab77e3a4dc2d16ec4ec231cee4ba8e2096ebe7e4ad26afb34ed21e4203947d787deda66ab53 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: 4500088f7719a5a6241f4fcf24074a2fa8cb54d9c5c50786e909e87aee98af2ac0c1513139984c388e97e8ddb65d108390d39083b0b793fbfd343976f13447c4 languageName: node linkType: hard -"@tanstack/virtual-core@npm:3.10.4": - version: 3.10.4 - resolution: "@tanstack/virtual-core@npm:3.10.4" - checksum: 9e33942a2f9450881c510d31bce18a94c9edbab2e723f04c34535e61234817d2d3197270d341de9850de7bf011339e7724d72276258003bdfaca8a3438905be3 +"@tanstack/virtual-core@npm:3.13.6": + version: 3.13.6 + resolution: "@tanstack/virtual-core@npm:3.13.6" + checksum: ac3dfde6208e4dbe404a4cdb3e0de772af17b8c245d313d1b13fe31910e680dc3f4f6b699ad244b148363700293841d2a2dadf2cc50354da294acac7c4af7c86 languageName: node linkType: hard "@tsconfig/node10@npm:^1.0.7": - version: 1.0.9 - resolution: "@tsconfig/node10@npm:1.0.9" - checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df + version: 1.0.11 + resolution: "@tsconfig/node10@npm:1.0.11" + checksum: 51fe47d55fe1b80ec35e6e5ed30a13665fd3a531945350aa74a14a1e82875fb60b350c2f2a5e72a64831b1b6bc02acb6760c30b3738b54954ec2dea82db7a267 languageName: node linkType: hard @@ -2440,6 +2257,15 @@ __metadata: languageName: node linkType: hard +"@tybys/wasm-util@npm:^0.9.0": + version: 0.9.0 + resolution: "@tybys/wasm-util@npm:0.9.0" + dependencies: + tslib: ^2.4.0 + checksum: 8d44c64e64e39c746e45b5dff7b534716f20e1f6e8fc206f8e4c8ac454ec0eb35b65646e446dd80745bc898db37a4eca549a936766d447c2158c9c43d44e7708 + languageName: node + linkType: hard + "@types/babel__core@npm:^7.20.5": version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" @@ -2454,11 +2280,11 @@ __metadata: linkType: hard "@types/babel__generator@npm:*": - version: 7.6.8 - resolution: "@types/babel__generator@npm:7.6.8" + version: 7.27.0 + resolution: "@types/babel__generator@npm:7.27.0" dependencies: "@babel/types": ^7.0.0 - checksum: 5b332ea336a2efffbdeedb92b6781949b73498606ddd4205462f7d96dafd45ff3618770b41de04c4881e333dd84388bfb8afbdf6f2764cbd98be550d85c6bb48 + checksum: e6739cacfa276c1ad38e1d8a6b4b1f816c2c11564e27f558b68151728489aaf0f4366992107ee4ed7615dfa303f6976dedcdce93df2b247116d1bcd1607ee260 languageName: node linkType: hard @@ -2473,11 +2299,11 @@ __metadata: linkType: hard "@types/babel__traverse@npm:*": - version: 7.20.5 - resolution: "@types/babel__traverse@npm:7.20.5" + version: 7.20.7 + resolution: "@types/babel__traverse@npm:7.20.7" dependencies: "@babel/types": ^7.20.7 - checksum: 608e0ab4fc31cd47011d98942e6241b34d461608c0c0e153377c5fd822c436c475f1ded76a56bfa76a1adf8d9266b727bbf9bfac90c4cb152c97f30dadc5b7e8 + checksum: 2a2e5ad29c34a8b776162b0fe81c9ccb6459b2b46bf230f756ba0276a0258fcae1cbcfdccbb93a1e8b1df44f4939784ee8a1a269f95afe0c78b24b9cb6d50dd1 languageName: node linkType: hard @@ -2522,10 +2348,10 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.5, @types/estree@npm:^1.0.0": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: dd8b5bed28e6213b7acd0fb665a84e693554d850b0df423ac8076cc3ad5823a6bc26b0251d080bdc545af83179ede51dd3f6fa78cad2c46ed1f29624ddf3e41a +"@types/estree@npm:*, @types/estree@npm:1.0.7, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": + version: 1.0.7 + resolution: "@types/estree@npm:1.0.7" + checksum: d9312b7075bdd08f3c9e1bb477102f5458aaa42a8eec31a169481ce314ca99ac716645cff4fca81ea65a2294b0276a0de63159d1baca0f8e7b5050a92de950ad languageName: node linkType: hard @@ -2538,6 +2364,13 @@ __metadata: languageName: node linkType: hard +"@types/json-schema@npm:^7.0.15": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 + languageName: node + linkType: hard + "@types/json5@npm:^0.0.29": version: 0.0.29 resolution: "@types/json5@npm:0.0.29" @@ -2555,27 +2388,27 @@ __metadata: linkType: hard "@types/ms@npm:*": - version: 0.7.34 - resolution: "@types/ms@npm:0.7.34" - checksum: f38d36e7b6edecd9badc9cf50474159e9da5fa6965a75186cceaf883278611b9df6669dc3a3cc122b7938d317b68a9e3d573d316fcb35d1be47ec9e468c6bd8a + version: 2.1.0 + resolution: "@types/ms@npm:2.1.0" + checksum: 532d2ebb91937ccc4a89389715e5b47d4c66e708d15942fe6cc25add6dc37b2be058230a327dd50f43f89b8b6d5d52b74685a9e8f70516edfc9bdd6be910eff4 languageName: node linkType: hard -"@types/node@npm:*": - version: 20.11.16 - resolution: "@types/node@npm:20.11.16" +"@types/node@npm:*, @types/node@npm:^22.5.0": + version: 22.14.0 + resolution: "@types/node@npm:22.14.0" dependencies: - undici-types: ~5.26.4 - checksum: 51f0831c1219bf4698e7430aeb9892237bd851deeb25ce23c5bb0ceefcc77c3b114e48f4e98d9fc26def5a87ba9d8079f0281dd37bee691140a93f133812c152 + undici-types: ~6.21.0 + checksum: 8bfae1d3c428b122d23750690bdc5b8295a53949823563ec60654a24ece98bde4fc0d2b5f06ddc6def6f01a08dfe62cece7c93e60964b74f736145dad5ee1302 languageName: node linkType: hard -"@types/node@npm:^22.5.0": - version: 22.5.0 - resolution: "@types/node@npm:22.5.0" +"@types/node@npm:22.7.5": + version: 22.7.5 + resolution: "@types/node@npm:22.7.5" dependencies: undici-types: ~6.19.2 - checksum: 3710b6f42416796061cf47cff0a37955f2ca0afc63ab281cc23e46b3ec8dffcabc66b970e4ee34fff5e2082617bed47610b4a1122c7b3880f551d3c673c40f84 + checksum: 1a8bbb504efaffcef7b8491074a428e5c0b5425b0c0ffb13e7262cb8462c275e8cc5eaf90a38d8fbf52a1eeda7c01ab3b940673c43fc2414140779c973e40ec6 languageName: node linkType: hard @@ -2586,46 +2419,21 @@ __metadata: languageName: node linkType: hard -"@types/prop-types@npm:*": - version: 15.7.11 - resolution: "@types/prop-types@npm:15.7.11" - checksum: 7519ff11d06fbf6b275029fe03fff9ec377b4cb6e864cac34d87d7146c7f5a7560fd164bdc1d2dbe00b60c43713631251af1fd3d34d46c69cd354602bc0c7c54 - languageName: node - linkType: hard - "@types/react-dom@npm:^18.3.0": - version: 18.3.0 - resolution: "@types/react-dom@npm:18.3.0" - dependencies: - "@types/react": "*" - checksum: a0cd9b1b815a6abd2a367a9eabdd8df8dd8f13f95897b2f9e1359ea3ac6619f957c1432ece004af7d95e2a7caddbba19faa045f831f32d6263483fc5404a7596 + version: 18.3.6 + resolution: "@types/react-dom@npm:18.3.6" + peerDependencies: + "@types/react": ^18.0.0 + checksum: 03434d70eb3213413514303c684fe56672a0e5ac6629be92a34d521f926f9e9eb89dcabf9ff485df485a11244e0f4b47dbb6168f7a6a0b664518c9bafb25711d languageName: node linkType: hard "@types/react-transition-group@npm:^4.4.0": - version: 4.4.10 - resolution: "@types/react-transition-group@npm:4.4.10" - dependencies: + version: 4.4.12 + resolution: "@types/react-transition-group@npm:4.4.12" + peerDependencies: "@types/react": "*" - checksum: fe2ea11f70251e9f79f368e198c18fd469b1d4f1e1d44e4365845b44e15974b0ec925100036f449b023b0ca3480a82725c5f0a73040e282ad32ec7b0def9b57c - languageName: node - linkType: hard - -"@types/react@npm:*": - version: 18.2.55 - resolution: "@types/react@npm:18.2.55" - dependencies: - "@types/prop-types": "*" - "@types/scheduler": "*" - csstype: ^3.0.2 - checksum: a8eb4fa77f73831b9112d4f11a7006217dc0740361649b9b0da3fd441d151a9cd415d5d68b91c0af4e430e063424d301c77489e5edaddc9f711c4e46cf9818a5 - languageName: node - linkType: hard - -"@types/scheduler@npm:*": - version: 0.16.8 - resolution: "@types/scheduler@npm:0.16.8" - checksum: 6c091b096daa490093bf30dd7947cd28e5b2cd612ec93448432b33f724b162587fed9309a0acc104d97b69b1d49a0f3fc755a62282054d62975d53d7fd13472d + checksum: 13d36396cae4d3c316b03d4a0ba299f0d039c59368ba65e04b0c3dc06fd0a16f59d2c669c3e32d6d525a95423f156b84e550d26bff0bdd8df285f305f8f3a0ed languageName: node linkType: hard @@ -2637,9 +2445,9 @@ __metadata: linkType: hard "@types/sizzle@npm:^2.3.2": - version: 2.3.8 - resolution: "@types/sizzle@npm:2.3.8" - checksum: 2ac62443dc917f5f903cbd9afc51c7d6cc1c6569b4e1a15faf04aea5b13b486e7f208650014c3dc4fed34653eded3e00fe5abffe0e6300cbf0e8a01beebf11a6 + version: 2.3.9 + resolution: "@types/sizzle@npm:2.3.9" + checksum: 413811a79e7e9f1d8f47e6047ae0aea1530449d612304cdda1c30018e3d053b8544861ec2c70bdeca75a0a010192e6bb78efc6fb4caaafdd65c4eee90066686a languageName: node linkType: hard @@ -2651,9 +2459,9 @@ __metadata: linkType: hard "@types/unist@npm:^2.0.0": - version: 2.0.10 - resolution: "@types/unist@npm:2.0.10" - checksum: e2924e18dedf45f68a5c6ccd6015cd62f1643b1b43baac1854efa21ae9e70505db94290434a23da1137d9e31eb58e54ca175982005698ac37300a1c889f6c4aa + version: 2.0.11 + resolution: "@types/unist@npm:2.0.11" + checksum: 6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e languageName: node linkType: hard @@ -2667,214 +2475,335 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/eslint-plugin@npm:8.2.0" + version: 8.29.1 + resolution: "@typescript-eslint/eslint-plugin@npm:8.29.1" dependencies: "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 8.2.0 - "@typescript-eslint/type-utils": 8.2.0 - "@typescript-eslint/utils": 8.2.0 - "@typescript-eslint/visitor-keys": 8.2.0 + "@typescript-eslint/scope-manager": 8.29.1 + "@typescript-eslint/type-utils": 8.29.1 + "@typescript-eslint/utils": 8.29.1 + "@typescript-eslint/visitor-keys": 8.29.1 graphemer: ^1.4.0 ignore: ^5.3.1 natural-compare: ^1.4.0 - ts-api-utils: ^1.3.0 + ts-api-utils: ^2.0.1 peerDependencies: "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: f702ea1c72941a225e2461da1dbc538bfc6eca4c81d377a457c6af18e74de11e5b06f1cd555d410bbe37c1c5eaab100d8b00fbb491f309944447103ef6f8c97f + typescript: ">=4.8.4 <5.9.0" + checksum: 7951a5c812af59fcd32f938f4019a02517739f7b4069d3a018378466a0b9a85b27608f76e6ae7c0186502d56cc7c66aa28aac6cc82642309604e461def8abc55 languageName: node linkType: hard "@typescript-eslint/parser@npm:^8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/parser@npm:8.2.0" + version: 8.29.1 + resolution: "@typescript-eslint/parser@npm:8.29.1" dependencies: - "@typescript-eslint/scope-manager": 8.2.0 - "@typescript-eslint/types": 8.2.0 - "@typescript-eslint/typescript-estree": 8.2.0 - "@typescript-eslint/visitor-keys": 8.2.0 + "@typescript-eslint/scope-manager": 8.29.1 + "@typescript-eslint/types": 8.29.1 + "@typescript-eslint/typescript-estree": 8.29.1 + "@typescript-eslint/visitor-keys": 8.29.1 debug: ^4.3.4 peerDependencies: eslint: ^8.57.0 || ^9.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 3121ac888f080bafdb4e57c6bf949222d4756fcce617620af574a1b3fa93dec315098c70309849fcd0fdd70edcbbed33dd1f3b6320bb379016c6407de588b96e + typescript: ">=4.8.4 <5.9.0" + checksum: 0d0f3288b7d2c61c99e30caf1f2fcb85f750eb7aadbbf94ba95bb11ed9abd2e60f52c6433d24b8afa447cfc34ff2af2ef7dde106f51a87df741737b9d4849ecc languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/scope-manager@npm:8.2.0" +"@typescript-eslint/scope-manager@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/scope-manager@npm:8.29.1" dependencies: - "@typescript-eslint/types": 8.2.0 - "@typescript-eslint/visitor-keys": 8.2.0 - checksum: c42fdd44bf06fcf0767ebee33b0d9199365066afa43e8f8fe7243c4b6ecb8d9056126df98d5ce771b4ff9f91132974c0348754ee1862cb6d5ae78e6608530650 + "@typescript-eslint/types": 8.29.1 + "@typescript-eslint/visitor-keys": 8.29.1 + checksum: b560a2bc3d267c78c91fd2d03d2cf689f803132fa94a9e6cf00224803efd23e6d7c6f49c3e7ff990e30f7a8acdfd1a6b71b0ebe61f924dd19f7a48780f59cf03 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/type-utils@npm:8.2.0" +"@typescript-eslint/type-utils@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/type-utils@npm:8.29.1" dependencies: - "@typescript-eslint/typescript-estree": 8.2.0 - "@typescript-eslint/utils": 8.2.0 + "@typescript-eslint/typescript-estree": 8.29.1 + "@typescript-eslint/utils": 8.29.1 debug: ^4.3.4 - ts-api-utils: ^1.3.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 10d85f856204012b56b78710572f5e9bcd4b7483b72e2497b9d7415495e3f0000b5a5197ffd652ed4273f444ab79d1589f12859a5dd7ad6e69e7ac0623942908 + ts-api-utils: ^2.0.1 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: c5b7cf3f7b097d51b505b136ae6e8fe3d9b10882d2c4a2e299234f33a8032459c0a9fd9383405e52a32eb4f92a0417fecd1a67d6a83f99d52b38f9b145bce127 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/types@npm:8.2.0" - checksum: 915fd7667308cb3fe3a50bbeb5b7cfa34ece87732a4e1107e6b4afcde64e6885dc3fcae0a0ccc417e90cd55090e4eeccc1310225be8706a58f522a899be8e626 +"@typescript-eslint/types@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/types@npm:8.29.1" + checksum: 3a48ad30af93388b599b08bf1bee64cac6f4d9dcdb5c3b49309ca674d1a3c4740222af83512528bb5dad7d738e07d9858f198ddce4aac751439bd024a4cb4cde languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/typescript-estree@npm:8.2.0" +"@typescript-eslint/typescript-estree@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/typescript-estree@npm:8.29.1" dependencies: - "@typescript-eslint/types": 8.2.0 - "@typescript-eslint/visitor-keys": 8.2.0 + "@typescript-eslint/types": 8.29.1 + "@typescript-eslint/visitor-keys": 8.29.1 debug: ^4.3.4 - globby: ^11.1.0 + fast-glob: ^3.3.2 is-glob: ^4.0.3 minimatch: ^9.0.4 semver: ^7.6.0 - ts-api-utils: ^1.3.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 9bddd72398d24c5fb1a8c6d0481886928d80e6798ae357778574ac2c8b6c6e18cc32e42865167f0698fede9ad5abbdeced0d0b1b45486cf4eeff7ae30bb5b87d + ts-api-utils: ^2.0.1 + peerDependencies: + typescript: ">=4.8.4 <5.9.0" + checksum: a5b9af38921d75432f5dcbfb2bcd25c58b4d9ecbe749859eeff6335f4b2f1241e2b63cf90532649609227f8ff28f9774f7056f360ca4c7ca26f53b321a357ab5 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/utils@npm:8.2.0" +"@typescript-eslint/utils@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/utils@npm:8.29.1" dependencies: "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 8.2.0 - "@typescript-eslint/types": 8.2.0 - "@typescript-eslint/typescript-estree": 8.2.0 + "@typescript-eslint/scope-manager": 8.29.1 + "@typescript-eslint/types": 8.29.1 + "@typescript-eslint/typescript-estree": 8.29.1 peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: c3b35fc9de40d94c717fd6e0ce77212d78c4a0377dbdc716d82ce1babeb61891e91e566c9108b336fd74095c810f164ce23eb9adc51471975ffec360e332ecff + typescript: ">=4.8.4 <5.9.0" + checksum: 473915d36c0db781126400f70a6184f1daa2943b6ed4fe366a9791e15e301fb1308b92483ef9d96cc7eadf1c8aef995969192c6e15b58d306a2cce6b3f71803c languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.2.0": - version: 8.2.0 - resolution: "@typescript-eslint/visitor-keys@npm:8.2.0" +"@typescript-eslint/visitor-keys@npm:8.29.1": + version: 8.29.1 + resolution: "@typescript-eslint/visitor-keys@npm:8.29.1" dependencies: - "@typescript-eslint/types": 8.2.0 - eslint-visitor-keys: ^3.4.3 - checksum: 2f701efa1b63bc4141bbe3a38f0f0b51cbdcd3df3d8ca87232ac1d5cf16e957682302da74106952edb87e6435f2ab99e3b4f66103b94a21c2b5aa7d030926f06 + "@typescript-eslint/types": 8.29.1 + eslint-visitor-keys: ^4.2.0 + checksum: 82bd4efa0ed982d80bfda85151e11da95c5c79fcf54389f37cdd168ae7a83abc6f72a5b8fb2c90f7a568f02e8bd3d7752cb5671b51faff13a06434a999ea346e languageName: node linkType: hard "@ungap/structured-clone@npm:^1.0.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 4f656b7b4672f2ce6e272f2427d8b0824ed11546a601d8d5412b9d7704e83db38a8d9f402ecdf2b9063fc164af842ad0ec4a55819f621ed7e7ea4d1efcc74524 + version: 1.3.0 + resolution: "@ungap/structured-clone@npm:1.3.0" + checksum: 64ed518f49c2b31f5b50f8570a1e37bde3b62f2460042c50f132430b2d869c4a6586f13aa33a58a4722715b8158c68cae2827389d6752ac54da2893c83e480fc + languageName: node + linkType: hard + +"@unrs/resolver-binding-darwin-arm64@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.4.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-darwin-x64@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-darwin-x64@npm:1.4.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-freebsd-x64@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.4.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.4.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.4.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm64-gnu@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.4.1" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm64-musl@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.4.1" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.4.1" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-s390x-gnu@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.4.1" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-x64-gnu@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.4.1" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-x64-musl@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.4.1" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-wasm32-wasi@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.4.1" + dependencies: + "@napi-rs/wasm-runtime": ^0.2.8 + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@unrs/resolver-binding-win32-arm64-msvc@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.4.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-win32-ia32-msvc@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.4.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@unrs/resolver-binding-win32-x64-msvc@npm:1.4.1": + version: 1.4.1 + resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.4.1" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@vitejs/plugin-react-swc@npm:^3.7.0": - version: 3.7.0 - resolution: "@vitejs/plugin-react-swc@npm:3.7.0" + version: 3.8.1 + resolution: "@vitejs/plugin-react-swc@npm:3.8.1" dependencies: - "@swc/core": ^1.5.7 + "@swc/core": ^1.11.11 peerDependencies: - vite: ^4 || ^5 - checksum: 87ee71cc7d261a0047a1a080c81081cb163edd555e1c8c60ff3372d14b7d76a19a28a7a03334417f622e704abd67e39e89a59d45f4742ec7036ca2988ee6651f + vite: ^4 || ^5 || ^6 + checksum: 3f6e72660df1592d2a667c9eb4158f4a124a0cd66214f21e9601e9c1521630e0eaa275ce4653157edac96544ac7ab5af9987bfa40260d2b7d944505a8aa1fb3c languageName: node linkType: hard "@vitejs/plugin-react@npm:^4.3.1": - version: 4.3.1 - resolution: "@vitejs/plugin-react@npm:4.3.1" + version: 4.3.4 + resolution: "@vitejs/plugin-react@npm:4.3.4" dependencies: - "@babel/core": ^7.24.5 - "@babel/plugin-transform-react-jsx-self": ^7.24.5 - "@babel/plugin-transform-react-jsx-source": ^7.24.1 + "@babel/core": ^7.26.0 + "@babel/plugin-transform-react-jsx-self": ^7.25.9 + "@babel/plugin-transform-react-jsx-source": ^7.25.9 "@types/babel__core": ^7.20.5 react-refresh: ^0.14.2 peerDependencies: - vite: ^4.2.0 || ^5.0.0 - checksum: 57872e0193c7e545c5ef4852cbe1adf17a6b35406a2aba4b3acce06c173a9dabbf6ff4c72701abc11bb3cbe24a056f5054f39018f7034c9aa57133a3a7770237 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 + checksum: d417f40d9259a1d5193152f7d9fee081d5bf41cbeef9662ae1123ccc1e26aa4b6b04bc82ebb8c4fbfde9516a746fb3af7da19fdd449819c30f0631daaa10a44b languageName: node linkType: hard -"@vitest/expect@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/expect@npm:2.0.5" +"@vitest/expect@npm:2.1.9": + version: 2.1.9 + resolution: "@vitest/expect@npm:2.1.9" dependencies: - "@vitest/spy": 2.0.5 - "@vitest/utils": 2.0.5 - chai: ^5.1.1 + "@vitest/spy": 2.1.9 + "@vitest/utils": 2.1.9 + chai: ^5.1.2 tinyrainbow: ^1.2.0 - checksum: 0c65eb24c2fd9ef5735d1e65dc8fee59936e6cab1d6ab24a95e014b8337be5598242fceae4e8ec2974e2ae70a30c1906ad41208bf6de6cdf2043594cdb65e627 + checksum: a234f96dd42c76e20af68b2ad2f00b80a3873501d5daa524bf1405b344e86123716b925f976d8104fd242bfbd0d9cf7084d0eb4a690097e6e5db456d220ed67a languageName: node linkType: hard -"@vitest/pretty-format@npm:2.0.5, @vitest/pretty-format@npm:^2.0.5": - version: 2.0.5 - resolution: "@vitest/pretty-format@npm:2.0.5" +"@vitest/mocker@npm:2.1.9": + version: 2.1.9 + resolution: "@vitest/mocker@npm:2.1.9" + dependencies: + "@vitest/spy": 2.1.9 + estree-walker: ^3.0.3 + magic-string: ^0.30.12 + peerDependencies: + msw: ^2.4.9 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + checksum: 17de391acc4d899f15356b45cde8202e5d5ca4517c32c0c9dcf32ce0660501773fdc29675b4f7d48c1579a560ac41f8f5181ebe41a7daf675f561d611e8e30dc + languageName: node + linkType: hard + +"@vitest/pretty-format@npm:2.1.9, @vitest/pretty-format@npm:^2.1.9": + version: 2.1.9 + resolution: "@vitest/pretty-format@npm:2.1.9" dependencies: tinyrainbow: ^1.2.0 - checksum: d60346001180e5bb3c53be4b4d0b6d9352648b066641d5aba7b97d7c97a8e252dc934204d58818330262a65f07127455fc5f3b5f7e3647c60f6ff302a725733b + checksum: 33f7ff0a9d356ddd6534390a0aea260dc04a3022a94901c87d141bacf71d2b3fff2e3bf08a55dd424c5355fd3b41656cb7871c76372fef45ffac1ea89d0dc508 languageName: node linkType: hard -"@vitest/runner@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/runner@npm:2.0.5" +"@vitest/runner@npm:2.1.9": + version: 2.1.9 + resolution: "@vitest/runner@npm:2.1.9" dependencies: - "@vitest/utils": 2.0.5 + "@vitest/utils": 2.1.9 pathe: ^1.1.2 - checksum: 4d6c23ea77ada83d70cb8cfd20b17cd0b9a375bc70b95466acee822734e203952931319abf167abcdba33dca415affed71d98d3f7212e1812dbf81e540fae4a4 + checksum: d8aaadc98bcbe1ee7c832a7d619d3c77d3c67536f10b80a3106d9d6e03ecc0f5467ef7bd4a65a07fe924cc166fe7415d637b2b08ef71e1a208a250543f9f3545 languageName: node linkType: hard -"@vitest/snapshot@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/snapshot@npm:2.0.5" +"@vitest/snapshot@npm:2.1.9": + version: 2.1.9 + resolution: "@vitest/snapshot@npm:2.1.9" dependencies: - "@vitest/pretty-format": 2.0.5 - magic-string: ^0.30.10 + "@vitest/pretty-format": 2.1.9 + magic-string: ^0.30.12 pathe: ^1.1.2 - checksum: 468d040106aa186a63ff3a86ce6bf333d52de83a2d906dc8c7c5c63406f2ecb46850ac5d69f5838a15764094946963962fa963d64c62a1a8a127ba20496fa3f1 + checksum: fb693dea59709c9df8660e5948c7971d2c3ce74212eafa7d542a578bbb8aed203dc03129dd5e476251e1946b50432e79a4fd59069fd4f950283e188167b9496d languageName: node linkType: hard -"@vitest/spy@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/spy@npm:2.0.5" +"@vitest/spy@npm:2.1.9": + version: 2.1.9 + resolution: "@vitest/spy@npm:2.1.9" dependencies: - tinyspy: ^3.0.0 - checksum: a010dec99146832a2586c639fccf533b194482f6f25ffb2d64367598a4e77d094aedd3d82cdb55fc1a3971649577a039513ccf8dc1571492e5982482c530c7b9 + tinyspy: ^3.0.2 + checksum: f9279488b5d2a27800e33e8fe51cc685b2a0db49d30b80b2b0cc924f8b1736eb520459c6e8bd09fa4457f5bb86ff073e7bdcf60d36452c11a8a8f9cbc8030237 languageName: node linkType: hard -"@vitest/utils@npm:2.0.5": - version: 2.0.5 - resolution: "@vitest/utils@npm:2.0.5" +"@vitest/utils@npm:2.1.9": + version: 2.1.9 + resolution: "@vitest/utils@npm:2.1.9" dependencies: - "@vitest/pretty-format": 2.0.5 - estree-walker: ^3.0.3 - loupe: ^3.1.1 + "@vitest/pretty-format": 2.1.9 + loupe: ^3.1.2 tinyrainbow: ^1.2.0 - checksum: 6867556dd7e376437e454b96c7e596ec16e141fb00b002b6ce435611ab3d9d1e3f38ebf48b1fc49f4c97f9754ed37abb602de8bf122f4ac0de621a4dbe0a314e + checksum: b24fb9c6765801f2e0578ad5c32fadf9541a833301eaed2877a427096cf05214244b361f94eda80be2b9c841f58ae3c67d37dedc5a902b2cb44041979bae4d8f languageName: node linkType: hard @@ -2892,10 +2821,10 @@ __metadata: languageName: node linkType: hard -"abbrev@npm:^2.0.0": - version: 2.0.0 - resolution: "abbrev@npm:2.0.0" - checksum: 0e994ad2aa6575f94670d8a2149afe94465de9cedaaaac364e7fb43a40c3691c980ff74899f682f4ca58fa96b4cbd7421a015d3a6defe43a442117d7821a2f36 +"abbrev@npm:^3.0.0": + version: 3.0.0 + resolution: "abbrev@npm:3.0.0" + checksum: 2500075b5ef85e97c095ab6ab2ea640dcf90bb388f46398f4d347b296f53399f984ec9462c74bee81df6bba56ef5fd9dbc2fb29076b1feb0023e0f52d43eb984 languageName: node linkType: hard @@ -2909,36 +2838,34 @@ __metadata: linkType: hard "acorn-walk@npm:^8.1.1": - version: 8.3.2 - resolution: "acorn-walk@npm:8.3.2" - checksum: 3626b9d26a37b1b427796feaa5261faf712307a8920392c8dce9a5739fb31077667f4ad2ec71c7ac6aaf9f61f04a9d3d67ff56f459587206fc04aa31c27ef392 + version: 8.3.4 + resolution: "acorn-walk@npm:8.3.4" + dependencies: + acorn: ^8.11.0 + checksum: 4ff03f42323e7cf90f1683e08606b0f460e1e6ac263d2730e3df91c7665b6f64e696db6ea27ee4bed18c2599569be61f28a8399fa170c611161a348c402ca19c languageName: node linkType: hard -"acorn@npm:^8.12.0": - version: 8.12.1 - resolution: "acorn@npm:8.12.1" +"acorn@npm:^8.11.0, acorn@npm:^8.14.0, acorn@npm:^8.4.1": + version: 8.14.1 + resolution: "acorn@npm:8.14.1" bin: acorn: bin/acorn - checksum: 677880034aee5bdf7434cc2d25b641d7bedb0b5ef47868a78dadabedccf58e1c5457526d9d8249cd253f2df087e081c3fe7d903b448d8e19e5131a3065b83c07 + checksum: 260d9bb6017a1b6e42d31364687f0258f78eb20210b36ef2baad38fd619d78d4e95ff7dde9b3dbe0d81f137f79a8d651a845363a26e6985997f7b71145dc5e94 languageName: node linkType: hard -"acorn@npm:^8.4.1": - version: 8.11.3 - resolution: "acorn@npm:8.11.3" - bin: - acorn: bin/acorn - checksum: 76d8e7d559512566b43ab4aadc374f11f563f0a9e21626dd59cb2888444e9445923ae9f3699972767f18af61df89cd89f5eaaf772d1327b055b45cb829b4a88c +"aes-js@npm:4.0.0-beta.5": + version: 4.0.0-beta.5 + resolution: "aes-js@npm:4.0.0-beta.5" + checksum: cc2ea969d77df939c32057f7e361b6530aa6cb93cb10617a17a45cd164e6d761002f031ff6330af3e67e58b1f0a3a8fd0b63a720afd591a653b02f649470e15b languageName: node linkType: hard -"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": - version: 7.1.0 - resolution: "agent-base@npm:7.1.0" - dependencies: - debug: ^4.3.4 - checksum: f7828f991470a0cc22cb579c86a18cbae83d8a3cbed39992ab34fc7217c4d126017f1c74d0ab66be87f71455318a8ea3e757d6a37881b8d0f2a2c6aa55e5418f +"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.3 + resolution: "agent-base@npm:7.1.3" + checksum: 87bb7ee54f5ecf0ccbfcba0b07473885c43ecd76cb29a8db17d6137a19d9f9cd443a2a7c5fd8a3f24d58ad8145f9eb49116344a66b107e1aeab82cf2383f4753 languageName: node linkType: hard @@ -3018,9 +2945,9 @@ __metadata: linkType: hard "ansi-regex@npm:^6.0.1": - version: 6.0.1 - resolution: "ansi-regex@npm:6.0.1" - checksum: 1ff8b7667cded1de4fa2c9ae283e979fc87036864317da86a2e546725f96406746411d0d85e87a2d12fa5abd715d90006de7fa4fa0477c92321ad3b4c7d4e169 + version: 6.1.0 + resolution: "ansi-regex@npm:6.1.0" + checksum: 495834a53b0856c02acd40446f7130cb0f8284f4a39afdab20d5dc42b2e198b1196119fe887beed8f9055c4ff2055e3b2f6d4641d0be018cdfb64fedf6fc1aac languageName: node linkType: hard @@ -3031,15 +2958,6 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^3.2.1": - version: 3.2.1 - resolution: "ansi-styles@npm:3.2.1" - dependencies: - color-convert: ^1.9.0 - checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 - languageName: node - linkType: hard - "ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" @@ -3126,30 +3044,17 @@ __metadata: languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "array-buffer-byte-length@npm:1.0.1" - dependencies: - call-bind: ^1.0.5 - is-array-buffer: ^3.0.4 - checksum: 53524e08f40867f6a9f35318fafe467c32e45e9c682ba67b11943e167344d2febc0f6977a17e699b05699e805c3e8f073d876f8bbf1b559ed494ad2cd0fae09e - languageName: node - linkType: hard - -"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7": - version: 3.1.7 - resolution: "array-includes@npm:3.1.7" +"array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "array-buffer-byte-length@npm:1.0.2" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - get-intrinsic: ^1.2.1 - is-string: ^1.0.7 - checksum: 06f9e4598fac12a919f7c59a3f04f010ea07f0b7f0585465ed12ef528a60e45f374e79d1bddbb34cdd4338357d00023ddbd0ac18b0be36964f5e726e8965d7fc + call-bound: ^1.0.3 + is-array-buffer: ^3.0.5 + checksum: 0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63 languageName: node linkType: hard -"array-includes@npm:^3.1.8": +"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8": version: 3.1.8 resolution: "array-includes@npm:3.1.8" dependencies: @@ -3170,19 +3075,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.filter@npm:^1.0.3": - version: 1.0.3 - resolution: "array.prototype.filter@npm:1.0.3" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-array-method-boxes-properly: ^1.0.0 - is-string: ^1.0.7 - checksum: 5443cde6ad64596649e5751252b1b2f5242b41052980c2fb2506ba485e3ffd7607e8f6f2f1aefa0cb1cfb9b8623b2b2be103579cb367a161a3426400619b6e73 - languageName: node - linkType: hard - "array.prototype.findlast@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.findlast@npm:1.2.5" @@ -3197,40 +3089,42 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.3": - version: 1.2.4 - resolution: "array.prototype.findlastindex@npm:1.2.4" +"array.prototype.findlastindex@npm:^1.2.5": + version: 1.2.6 + resolution: "array.prototype.findlastindex@npm:1.2.6" dependencies: - call-bind: ^1.0.5 + call-bind: ^1.0.8 + call-bound: ^1.0.4 define-properties: ^1.2.1 - es-abstract: ^1.22.3 + es-abstract: ^1.23.9 es-errors: ^1.3.0 - es-shim-unscopables: ^1.0.2 - checksum: cc8dce27a06dddf6d9c40a15d4c573f96ac5ca3583f89f8d8cd7d7ffdb96a71d819890a5bdb211f221bda8fafa0d97d1d8cbb5460a5cbec1fff57ae80b8abc31 + es-object-atoms: ^1.1.1 + es-shim-unscopables: ^1.1.0 + checksum: bd2665bd51f674d4e1588ce5d5848a8adb255f414070e8e652585598b801480516df2c6cef2c60b6ea1a9189140411c49157a3f112d52e9eabb4e9fc80936ea6 languageName: node linkType: hard "array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flat@npm:1.3.2" + version: 1.3.3 + resolution: "array.prototype.flat@npm:1.3.3" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 5d5a7829ab2bb271a8d30a1c91e6271cef0ec534593c0fe6d2fb9ebf8bb62c1e5326e2fddcbbcbbe5872ca04f5e6b54a1ecf092e0af704fb538da9b2bfd95b40 languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.3.2": - version: 1.3.2 - resolution: "array.prototype.flatmap@npm:1.3.2" +"array.prototype.flatmap@npm:^1.3.2, array.prototype.flatmap@npm:^1.3.3": + version: 1.3.3 + resolution: "array.prototype.flatmap@npm:1.3.3" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3 + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 11b4de09b1cf008be6031bb507d997ad6f1892e57dc9153583de6ebca0f74ea403fffe0f203461d359de05048d609f3f480d9b46fed4099652d8b62cc972f284 languageName: node linkType: hard @@ -3247,19 +3141,18 @@ __metadata: languageName: node linkType: hard -"arraybuffer.prototype.slice@npm:^1.0.2, arraybuffer.prototype.slice@npm:^1.0.3": - version: 1.0.3 - resolution: "arraybuffer.prototype.slice@npm:1.0.3" +"arraybuffer.prototype.slice@npm:^1.0.4": + version: 1.0.4 + resolution: "arraybuffer.prototype.slice@npm:1.0.4" dependencies: array-buffer-byte-length: ^1.0.1 - call-bind: ^1.0.5 + call-bind: ^1.0.8 define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.2.1 - get-intrinsic: ^1.2.3 + es-abstract: ^1.23.5 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 is-array-buffer: ^3.0.4 - is-shared-array-buffer: ^1.0.2 - checksum: 352259cba534dcdd969c92ab002efd2ba5025b2e3b9bead3973150edbdf0696c629d7f4b3f061c5931511e8207bdc2306da614703c820b45dabce39e3daf7e3e + checksum: b1d1fd20be4e972a3779b1569226f6740170dca10f07aa4421d42cefeec61391e79c557cda8e771f5baefe47d878178cd4438f60916ce831813c08132bced765 languageName: node linkType: hard @@ -3293,10 +3186,17 @@ __metadata: languageName: node linkType: hard +"async-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-function@npm:1.0.0" + checksum: 9102e246d1ed9b37ac36f57f0a6ca55226876553251a31fc80677e71471f463a54c872dc78d5d7f80740c8ba624395cccbe8b60f7b690c4418f487d8e9fd1106 + languageName: node + linkType: hard + "async@npm:^3.2.0": - version: 3.2.5 - resolution: "async@npm:3.2.5" - checksum: 5ec77f1312301dee02d62140a6b1f7ee0edd2a0f983b6fd2b0849b969f245225b990b47b8243e7b9ad16451a53e7f68e753700385b706198ced888beedba3af4 + version: 3.2.6 + resolution: "async@npm:3.2.6" + checksum: ee6eb8cd8a0ab1b58bd2a3ed6c415e93e773573a91d31df9d5ef559baafa9dab37d3b096fa7993e84585cac3697b2af6ddb9086f45d3ac8cae821bb2aab65682 languageName: node linkType: hard @@ -3314,35 +3214,28 @@ __metadata: languageName: node linkType: hard -"attr-accept@npm:^2.2.2": - version: 2.2.2 - resolution: "attr-accept@npm:2.2.2" - checksum: 496f7249354ab53e522510c1dc8f67a1887382187adde4dc205507d2f014836a247073b05e9d9ea51e2e9c7f71b0d2aa21730af80efa9af2d68303e5f0565c4d +"attr-accept@npm:^2.2.4": + version: 2.2.5 + resolution: "attr-accept@npm:2.2.5" + checksum: e6a23183c112f5d313ebfc7e63e454de0600caffe9ab88f86e9df420d2399a48e27e6c46ee8de2fc6f34fee3541ecdb557f2b86e6d8bd7d24fd3a66cc75e6349 languageName: node linkType: hard "autoprefixer@npm:^10.4.20": - version: 10.4.20 - resolution: "autoprefixer@npm:10.4.20" + version: 10.4.21 + resolution: "autoprefixer@npm:10.4.21" dependencies: - browserslist: ^4.23.3 - caniuse-lite: ^1.0.30001646 + browserslist: ^4.24.4 + caniuse-lite: ^1.0.30001702 fraction.js: ^4.3.7 normalize-range: ^0.1.2 - picocolors: ^1.0.1 + picocolors: ^1.1.1 postcss-value-parser: ^4.2.0 peerDependencies: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: 187cec2ec356631932b212f76dc64f4419c117fdb2fb9eeeb40867d38ba5ca5ba734e6ceefc9e3af4eec8258e60accdf5cbf2b7708798598fde35cdc3de562d6 - languageName: node - linkType: hard - -"available-typed-arrays@npm:^1.0.5, available-typed-arrays@npm:^1.0.6": - version: 1.0.6 - resolution: "available-typed-arrays@npm:1.0.6" - checksum: 8295571eb86447138adf64a0df0c08ae61250b17190bba30e1fae8c80a816077a6d028e5506f602c382c0197d3080bae131e92e331139d55460989580eeae659 + checksum: 11770ce635a0520e457eaf2ff89056cd57094796a9f5d6d9375513388a5a016cd947333dcfd213b822fdd8a0b43ce68ae4958e79c6f077c41d87444c8cca0235 languageName: node linkType: hard @@ -3363,9 +3256,9 @@ __metadata: linkType: hard "aws4@npm:^1.8.0": - version: 1.12.0 - resolution: "aws4@npm:1.12.0" - checksum: 68f79708ac7c335992730bf638286a3ee0a645cf12575d557860100767c500c08b30e24726b9f03265d74116417f628af78509e1333575e9f8d52a80edfe8cbc + version: 1.13.2 + resolution: "aws4@npm:1.13.2" + checksum: 9ac924e4a91c088b4928ea86b68d8c4558b0e6289ccabaae0e3e96a611bd75277c2eab6e3965821028768700516f612b929a5ce822f33a8771f74ba2a8cedb9c languageName: node linkType: hard @@ -3411,16 +3304,16 @@ __metadata: linkType: hard "big.js@npm:^6.2.1": - version: 6.2.1 - resolution: "big.js@npm:6.2.1" - checksum: 0b234a2fd56c52bed2798ed2020bcab6fef5e9523b99a05406ad071d1aed6ee97ada9fb8de9576092da74c68825c276e19015743b8d1baea269b60a5c666b0cd + version: 6.2.2 + resolution: "big.js@npm:6.2.2" + checksum: 3659092d155d01338f21a01a46a93aa343d25e83bce55700005a46eec27d90fe56abd3b3edde742f16fbc5fee31b4c572b6821a595c1c180392b60b469fcda54 languageName: node linkType: hard "binary-extensions@npm:^2.0.0": - version: 2.2.0 - resolution: "binary-extensions@npm:2.2.0" - checksum: ccd267956c58d2315f5d3ea6757cf09863c5fc703e50fbeb13a7dc849b812ef76e3cf9ca8f35a0c48498776a7478d7b4a0418e1e2b8cb9cb9731f2922aaad7f8 + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 languageName: node linkType: hard @@ -3471,16 +3364,7 @@ __metadata: languageName: node linkType: hard -"braces@npm:^3.0.2, braces@npm:~3.0.2": - version: 3.0.2 - resolution: "braces@npm:3.0.2" - dependencies: - fill-range: ^7.0.1 - checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 - languageName: node - linkType: hard - -"braces@npm:^3.0.3": +"braces@npm:^3.0.3, braces@npm:~3.0.2": version: 3.0.3 resolution: "braces@npm:3.0.3" dependencies: @@ -3489,31 +3373,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.22.2": - version: 4.22.3 - resolution: "browserslist@npm:4.22.3" - dependencies: - caniuse-lite: ^1.0.30001580 - electron-to-chromium: ^1.4.648 - node-releases: ^2.0.14 - update-browserslist-db: ^1.0.13 - bin: - browserslist: cli.js - checksum: e62b17348e92143fe58181b02a6a97c4a98bd812d1dc9274673a54f73eec53dbed1c855ebf73e318ee00ee039f23c9a6d0e7629d24f3baef08c7a5b469742d57 - languageName: node - linkType: hard - -"browserslist@npm:^4.23.1, browserslist@npm:^4.23.3": - version: 4.23.3 - resolution: "browserslist@npm:4.23.3" +"browserslist@npm:^4.24.0, browserslist@npm:^4.24.4": + version: 4.24.4 + resolution: "browserslist@npm:4.24.4" dependencies: - caniuse-lite: ^1.0.30001646 - electron-to-chromium: ^1.5.4 - node-releases: ^2.0.18 - update-browserslist-db: ^1.1.0 + caniuse-lite: ^1.0.30001688 + electron-to-chromium: ^1.5.73 + node-releases: ^2.0.19 + update-browserslist-db: ^1.1.1 bin: browserslist: cli.js - checksum: 7906064f9970aeb941310b2fcb8b4ace4a1b50aa657c986677c6f1553a8cabcc94ee9c5922f715baffbedaa0e6cf0831b6fed7b059dde6873a4bfadcbe069c7e + checksum: 64074bf6cf0a9ae3094d753270e3eae9cf925149db45d646f0bc67bacc2e46d7ded64a4e835b95f5fdcf0350f63a83c3755b32f80831f643a47f0886deb8a065 languageName: node linkType: hard @@ -3558,11 +3428,11 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^18.0.0": - version: 18.0.2 - resolution: "cacache@npm:18.0.2" +"cacache@npm:^19.0.1": + version: 19.0.1 + resolution: "cacache@npm:19.0.1" dependencies: - "@npmcli/fs": ^3.1.0 + "@npmcli/fs": ^4.0.0 fs-minipass: ^3.0.0 glob: ^10.2.2 lru-cache: ^10.0.1 @@ -3570,11 +3440,11 @@ __metadata: minipass-collect: ^2.0.1 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 - p-map: ^4.0.0 - ssri: ^10.0.0 - tar: ^6.1.11 - unique-filename: ^3.0.0 - checksum: 0250df80e1ad0c828c956744850c5f742c24244e9deb5b7dc81bca90f8c10e011e132ecc58b64497cc1cad9a98968676147fb6575f4f94722f7619757b17a11b + p-map: ^7.0.2 + ssri: ^12.0.0 + tar: ^7.4.3 + unique-filename: ^4.0.0 + checksum: e95684717de6881b4cdaa949fa7574e3171946421cd8291769dd3d2417dbf7abf4aa557d1f968cca83dcbc95bed2a281072b09abfc977c942413146ef7ed4525 languageName: node linkType: hard @@ -3597,28 +3467,35 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2, call-bind@npm:^1.0.5": - version: 1.0.6 - resolution: "call-bind@npm:1.0.6" +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind-apply-helpers@npm:1.0.2" dependencies: es-errors: ^1.3.0 function-bind: ^1.1.2 - get-intrinsic: ^1.2.3 - set-function-length: ^1.2.0 - checksum: 9e75989b60124df0fee40c129b2f8f401efb54e40451e18f112b64654c7d6d0dd7b6195e990edaeb3fdb447911926a19ffe1635858de00d68826ced6eeab24a9 + checksum: b2863d74fcf2a6948221f65d95b91b4b2d90cfe8927650b506141e669f7d5de65cea191bf788838bc40d13846b7886c5bc5c84ab96c3adbcf88ad69a72fcdc6b languageName: node linkType: hard -"call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": - version: 1.0.7 - resolution: "call-bind@npm:1.0.7" +"call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" dependencies: + call-bind-apply-helpers: ^1.0.0 es-define-property: ^1.0.0 - es-errors: ^1.3.0 - function-bind: ^1.1.2 get-intrinsic: ^1.2.4 - set-function-length: ^1.2.1 - checksum: 295c0c62b90dd6522e6db3b0ab1ce26bdf9e7404215bda13cfee25b626b5ff1a7761324d58d38b1ef1607fc65aca2d06e44d2e18d0dfc6c14b465b00d8660029 + set-function-length: ^1.2.2 + checksum: aa2899bce917a5392fd73bd32e71799c37c0b7ab454e0ed13af7f6727549091182aade8bbb7b55f304a5bc436d543241c14090fb8a3137e9875e23f444f4f5a9 + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3, call-bound@npm:^1.0.4": + version: 1.0.4 + resolution: "call-bound@npm:1.0.4" + dependencies: + call-bind-apply-helpers: ^1.0.2 + get-intrinsic: ^1.3.0 + checksum: 2f6399488d1c272f56306ca60ff696575e2b7f31daf23bc11574798c84d9f2759dceb0cb1f471a85b77f28962a7ac6411f51d283ea2e45319009a19b6ccab3b2 languageName: node linkType: hard @@ -3643,17 +3520,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001580": - version: 1.0.30001584 - resolution: "caniuse-lite@npm:1.0.30001584" - checksum: de7018759561795ef31864b0d1584735eef267033d4e9b5f046b976756e06c43e85afd46705c5d63c63e3c36484c26794c259b9748eefffa582750b4ad0822ce - languageName: node - linkType: hard - -"caniuse-lite@npm:^1.0.30001646": - version: 1.0.30001653 - resolution: "caniuse-lite@npm:1.0.30001653" - checksum: 289cf06c26a46f3e6460ccd5feffa788ab0ab35d306898c48120c65cfb11959bfa560e9f739393769b4fd01150c69b0747ad3ad5ec3abf3dfafd66df3c59254e +"caniuse-lite@npm:^1.0.30001688, caniuse-lite@npm:^1.0.30001702": + version: 1.0.30001712 + resolution: "caniuse-lite@npm:1.0.30001712" + checksum: 83760e735d1d7ab9ff7270747d70b71da4341bdc1c90df9fe2008ada382653e13d7501bfd7068e1d835184b03b8ac598b127bfe3e7d53419b9d7827730b4ae1a languageName: node linkType: hard @@ -3671,16 +3541,16 @@ __metadata: languageName: node linkType: hard -"chai@npm:^5.1.1": - version: 5.1.1 - resolution: "chai@npm:5.1.1" +"chai@npm:^5.1.2": + version: 5.2.0 + resolution: "chai@npm:5.2.0" dependencies: assertion-error: ^2.0.1 check-error: ^2.1.1 deep-eql: ^5.0.1 loupe: ^3.1.0 pathval: ^2.0.0 - checksum: 1e0a5e1b5febdfa8ceb97b9aff608286861ecb86533863119b2f39f07c08fb59f3c1791ab554947f009b9d71d509b9e4e734fb12133cb81f231c2c2ee7c1e738 + checksum: 15e4ba12d02df3620fd59b4a6e8efe43b47872ce61f1c0ca77ac1205a2a5898f3b6f1f52408fd1a708b8d07fdfb5e65b97af40bad9fd94a69ed8d4264c7a69f1 languageName: node linkType: hard @@ -3707,21 +3577,10 @@ __metadata: languageName: node linkType: hard -"chalk@npm:^2.4.2": - version: 2.4.2 - resolution: "chalk@npm:2.4.2" - dependencies: - ansi-styles: ^3.2.1 - escape-string-regexp: ^1.0.5 - supports-color: ^5.3.0 - checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 - languageName: node - linkType: hard - -"chalk@npm:~5.3.0": - version: 5.3.0 - resolution: "chalk@npm:5.3.0" - checksum: 623922e077b7d1e9dedaea6f8b9e9352921f8ae3afe739132e0e00c275971bdd331268183b2628cf4ab1727c45ea1f28d7e24ac23ce1db1eb653c414ca8a5a80 +"chalk@npm:^5.4.1": + version: 5.4.1 + resolution: "chalk@npm:5.4.1" + checksum: 0c656f30b782fed4d99198825c0860158901f449a6b12b818b0aabad27ec970389e7e8767d0e00762175b23620c812e70c4fd92c0210e55fc2d993638b74e86e languageName: node linkType: hard @@ -3767,9 +3626,9 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:^3.5.3": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" +"chokidar@npm:^3.6.0": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" dependencies: anymatch: ~3.1.2 braces: ~3.0.2 @@ -3782,14 +3641,14 @@ __metadata: dependenciesMeta: fsevents: optional: true - checksum: b49fcde40176ba007ff361b198a2d35df60d9bb2a5aab228279eb810feae9294a6b4649ab15981304447afe1e6ffbf4788ad5db77235dc770ab777c6e771980c + checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d languageName: node linkType: hard -"chownr@npm:^2.0.0": - version: 2.0.0 - resolution: "chownr@npm:2.0.0" - checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: fd73a4bab48b79e66903fe1cafbdc208956f41ea4f856df883d0c7277b7ab29fd33ee65f93b2ec9192fc0169238f2f8307b7735d27c155821d886b84aa97aa8d languageName: node linkType: hard @@ -3833,15 +3692,15 @@ __metadata: linkType: hard "cli-table3@npm:~0.6.1": - version: 0.6.3 - resolution: "cli-table3@npm:0.6.3" + version: 0.6.5 + resolution: "cli-table3@npm:0.6.5" dependencies: "@colors/colors": 1.5.0 string-width: ^4.2.0 dependenciesMeta: "@colors/colors": optional: true - checksum: 09897f68467973f827c04e7eaadf13b55f8aec49ecd6647cc276386ea660059322e2dd8020a8b6b84d422dbdd619597046fa89cbbbdc95b2cea149a2df7c096c + checksum: ab7afbf4f8597f1c631f3ee6bb3481d0bfeac8a3b81cffb5a578f145df5c88003b6cfff46046a7acae86596fdd03db382bfa67f20973b6b57425505abc47e42c languageName: node linkType: hard @@ -3883,15 +3742,6 @@ __metadata: languageName: node linkType: hard -"color-convert@npm:^1.9.0": - version: 1.9.3 - resolution: "color-convert@npm:1.9.3" - dependencies: - color-name: 1.1.3 - checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 - languageName: node - linkType: hard - "color-convert@npm:^2.0.1": version: 2.0.1 resolution: "color-convert@npm:2.0.1" @@ -3901,13 +3751,6 @@ __metadata: languageName: node linkType: hard -"color-name@npm:1.1.3": - version: 1.1.3 - resolution: "color-name@npm:1.1.3" - checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d - languageName: node - linkType: hard - "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" @@ -3929,7 +3772,7 @@ __metadata: languageName: node linkType: hard -"combined-stream@npm:^1.0.6, combined-stream@npm:~1.0.6": +"combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": version: 1.0.8 resolution: "combined-stream@npm:1.0.8" dependencies: @@ -3945,6 +3788,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^13.1.0": + version: 13.1.0 + resolution: "commander@npm:13.1.0" + checksum: 8ca2fcb33caf2aa06fba3722d7a9440921331d54019dabf906f3603313e7bf334b009b862257b44083ff65d5a3ab19e83ad73af282bd5319f01dc228bdf87ef0 + languageName: node + linkType: hard + "commander@npm:^2.19.0": version: 2.20.3 resolution: "commander@npm:2.20.3" @@ -3966,13 +3816,6 @@ __metadata: languageName: node linkType: hard -"commander@npm:~12.1.0": - version: 12.1.0 - resolution: "commander@npm:12.1.0" - checksum: 68e9818b00fc1ed9cdab9eb16905551c2b768a317ae69a5e3c43924c2b20ac9bb65b27e1cab36aeda7b6496376d4da908996ba2c0b5d79463e0fb1e77935d514 - languageName: node - linkType: hard - "common-tags@npm:^1.8.0": version: 1.8.2 resolution: "common-tags@npm:1.8.2" @@ -4015,8 +3858,9 @@ __metadata: "@heroicons/react": ^1.0.6 "@istanbuljs/nyc-config-typescript": ^1.0.2 "@polkadot/api": 15.8.1 - "@polkadot/api-contract": 15.8.1 + "@polkadot/api-contract": "file:/Users/peter/dev/dot-repos/api/packages/api-contract/build" "@polkadot/extension-dapp": ^0.58.6 + "@polkadot/types": "file:/Users/peter/dev/dot-repos/api/packages/types/build" "@polkadot/ui-keyring": ^3.12.2 "@polkadot/ui-shared": ^3.12.2 "@tailwindcss/forms": ^0.5.7 @@ -4045,6 +3889,7 @@ __metadata: eslint-plugin-import: ^2.29.1 eslint-plugin-react: ^7.35.0 eslint-plugin-react-hooks: ^4.6.2 + ethers: ^6.13.5 husky: ^9.1.5 istanbul-lib-coverage: ^3.2.2 json5: ^2.2.3 @@ -4138,14 +3983,14 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": - version: 7.0.3 - resolution: "cross-spawn@npm:7.0.3" +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.1, cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" dependencies: path-key: ^3.1.0 shebang-command: ^2.0.0 which: ^2.0.1 - checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b languageName: node linkType: hard @@ -4242,36 +4087,36 @@ __metadata: languageName: node linkType: hard -"data-view-buffer@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-buffer@npm:1.0.1" +"data-view-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-buffer@npm:1.0.2" dependencies: - call-bind: ^1.0.6 + call-bound: ^1.0.3 es-errors: ^1.3.0 - is-data-view: ^1.0.1 - checksum: ce24348f3c6231223b216da92e7e6a57a12b4af81a23f27eff8feabdf06acfb16c00639c8b705ca4d167f761cfc756e27e5f065d0a1f840c10b907fdaf8b988c + is-data-view: ^1.0.2 + checksum: 1e1cd509c3037ac0f8ba320da3d1f8bf1a9f09b0be09394b5e40781b8cc15ff9834967ba7c9f843a425b34f9fe14ce44cf055af6662c44263424c1eb8d65659b languageName: node linkType: hard -"data-view-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-byte-length@npm:1.0.1" +"data-view-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-byte-length@npm:1.0.2" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.3 es-errors: ^1.3.0 - is-data-view: ^1.0.1 - checksum: dbb3200edcb7c1ef0d68979834f81d64fd8cab2f7691b3a4c6b97e67f22182f3ec2c8602efd7b76997b55af6ff8bce485829c1feda4fa2165a6b71fb7baa4269 + is-data-view: ^1.0.2 + checksum: 3600c91ced1cfa935f19ef2abae11029e01738de8d229354d3b2a172bf0d7e4ed08ff8f53294b715569fdf72dfeaa96aa7652f479c0f60570878d88e7e8bddf6 languageName: node linkType: hard -"data-view-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "data-view-byte-offset@npm:1.0.0" +"data-view-byte-offset@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-offset@npm:1.0.1" dependencies: - call-bind: ^1.0.6 + call-bound: ^1.0.2 es-errors: ^1.3.0 is-data-view: ^1.0.1 - checksum: 7f0bf8720b7414ca719eedf1846aeec392f2054d7af707c5dc9a753cc77eb8625f067fa901e0b5127e831f9da9056138d894b9c2be79c27a21f6db5824f009c2 + checksum: 8dd492cd51d19970876626b5b5169fbb67ca31ec1d1d3238ee6a71820ca8b80cafb141c485999db1ee1ef02f2cc3b99424c5eda8d59e852d9ebb79ab290eb5ee languageName: node linkType: hard @@ -4284,10 +4129,10 @@ __metadata: languageName: node linkType: hard -"dayjs@npm:1.11.10, dayjs@npm:^1.10.4": - version: 1.11.10 - resolution: "dayjs@npm:1.11.10" - checksum: a6b5a3813b8884f5cd557e2e6b7fa569f4c5d0c97aca9558e38534af4f2d60daafd3ff8c2000fed3435cfcec9e805bcebd99f90130c6d1c5ef524084ced588c4 +"dayjs@npm:1.11.13, dayjs@npm:^1.10.4": + version: 1.11.13 + resolution: "dayjs@npm:1.11.13" + checksum: f388db88a6aa93956c1f6121644e783391c7b738b73dbc54485578736565c8931bdfba4bb94e9b1535c6e509c97d5deb918bbe1ae6b34358d994de735055cca9 languageName: node linkType: hard @@ -4300,15 +4145,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": - version: 4.3.4 - resolution: "debug@npm:4.3.4" +"debug@npm:4, debug@npm:4.4.0, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.7, debug@npm:^4.4.0": + version: 4.4.0 + resolution: "debug@npm:4.4.0" dependencies: - ms: 2.1.2 + ms: ^2.1.3 peerDependenciesMeta: supports-color: optional: true - checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + checksum: fb42df878dd0e22816fc56e1fdca9da73caa85212fbe40c868b1295a6878f9101ae684f4eeef516c13acfc700f5ea07f1136954f43d4cd2d477a811144136479 languageName: node linkType: hard @@ -4330,18 +4175,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^4.3.5, debug@npm:~4.3.6": - version: 4.3.6 - resolution: "debug@npm:4.3.6" - dependencies: - ms: 2.1.2 - peerDependenciesMeta: - supports-color: - optional: true - checksum: 1630b748dea3c581295e02137a9f5cbe2c1d85fea35c1e6597a65ca2b16a6fce68cec61b299d480787ef310ba927dc8c92d3061faba0ad06c6a724672f66be7f - languageName: node - linkType: hard - "decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -4350,11 +4183,11 @@ __metadata: linkType: hard "decode-named-character-reference@npm:^1.0.0": - version: 1.0.2 - resolution: "decode-named-character-reference@npm:1.0.2" + version: 1.1.0 + resolution: "decode-named-character-reference@npm:1.1.0" dependencies: character-entities: ^2.0.0 - checksum: f4c71d3b93105f20076052f9cb1523a22a9c796b8296cd35eef1ca54239c78d182c136a848b83ff8da2071e3ae2b1d300bf29d00650a6d6e675438cc31b11d78 + checksum: 102970fde2d011f307d3789776e68defd75ba4ade1a34951affd1fabb86cd32026fd809f2658c2b600d839a57b6b6a84e2b3a45166d38c8625d66ca11cd702b8 languageName: node linkType: hard @@ -4381,19 +4214,7 @@ __metadata: languageName: node linkType: hard -"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.1": - version: 1.1.2 - resolution: "define-data-property@npm:1.1.2" - dependencies: - es-errors: ^1.3.0 - get-intrinsic: ^1.2.2 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.1 - checksum: a903d932c83ede85d47d7764fff23435e038e8d7c2ed09a5461d59a0279bf590ed7459ac9ab468e550e24d81aa91e4de1714df155ecce4c925e94bc5ea94f9f3 - languageName: node - linkType: hard - -"define-data-property@npm:^1.1.4": +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": version: 1.1.4 resolution: "define-data-property@npm:1.1.4" dependencies: @@ -4404,7 +4225,7 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: @@ -4524,6 +4345,17 @@ __metadata: languageName: node linkType: hard +"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: ^1.0.1 + es-errors: ^1.3.0 + gopd: ^1.2.0 + checksum: 149207e36f07bd4941921b0ca929e3a28f1da7bd6b6ff8ff7f4e2f2e460675af4576eeba359c635723dc189b64cdd4787e0255897d5b135ccc5d15cb8685fc90 + languageName: node + linkType: hard + "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" @@ -4555,24 +4387,17 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.648": - version: 1.4.657 - resolution: "electron-to-chromium@npm:1.4.657" - checksum: 6168b51c1bfa1388d16dde6e501bcaaa3509d44e833f35b410543c421c5136b438b4476ef0fab66bc29d4980152495cf1fe813c9e36748afc5a2a8d107c446cf - languageName: node - linkType: hard - -"electron-to-chromium@npm:^1.5.4": - version: 1.5.13 - resolution: "electron-to-chromium@npm:1.5.13" - checksum: f18ac84dd3bf9a200654a6a9292b9ec4bced0cf9bd26cec9941b775f4470c581c9d043e70b37a124d9752dcc0f47fc96613d52b2defd8e59632852730cb418b9 +"electron-to-chromium@npm:^1.5.73": + version: 1.5.135 + resolution: "electron-to-chromium@npm:1.5.135" + checksum: daba16981a21b37b99be3b5bfd60b0c93c59d53d8f9c5bf80e36a3e6a6c1d61c2b20d9ed610eb1ae57abe32bdc514e9c7fe63b2adce7814c1211f57357ed7349 languageName: node linkType: hard "emoji-regex@npm:^10.3.0": - version: 10.3.0 - resolution: "emoji-regex@npm:10.3.0" - checksum: 5da48edfeb9462fb1ae5495cff2d79129974c696853fb0ce952cbf560f29a2756825433bf51cfd5157ec7b9f93f46f31d712e896d63e3d8ac9c3832bdb45ab73 + version: 10.4.0 + resolution: "emoji-regex@npm:10.4.0" + checksum: a6d9a0e454829a52e664e049847776ee1fff5646617b06cd87de7c03ce1dfcce4102a3b154d5e9c8e90f8125bc120fc1fe114d523dddf60a8a161f26c72658d2 languageName: node linkType: hard @@ -4608,16 +4433,6 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.12.0": - version: 5.15.0 - resolution: "enhanced-resolve@npm:5.15.0" - dependencies: - graceful-fs: ^4.2.4 - tapable: ^2.2.0 - checksum: fbd8cdc9263be71cc737aa8a7d6c57b43d6aa38f6cc75dde6fcd3598a130cc465f979d2f4d01bb3bf475acb43817749c79f8eef9be048683602ca91ab52e4f11 - languageName: node - linkType: hard - "enquirer@npm:^2.3.6": version: 2.4.1 resolution: "enquirer@npm:2.4.1" @@ -4658,200 +4473,148 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3": - version: 1.23.3 - resolution: "es-abstract@npm:1.23.3" +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": + version: 1.23.9 + resolution: "es-abstract@npm:1.23.9" dependencies: - array-buffer-byte-length: ^1.0.1 - arraybuffer.prototype.slice: ^1.0.3 + array-buffer-byte-length: ^1.0.2 + arraybuffer.prototype.slice: ^1.0.4 available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 - data-view-buffer: ^1.0.1 - data-view-byte-length: ^1.0.1 - data-view-byte-offset: ^1.0.0 - es-define-property: ^1.0.0 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + data-view-buffer: ^1.0.2 + data-view-byte-length: ^1.0.2 + data-view-byte-offset: ^1.0.1 + es-define-property: ^1.0.1 es-errors: ^1.3.0 es-object-atoms: ^1.0.0 - es-set-tostringtag: ^2.0.3 - es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.6 - get-intrinsic: ^1.2.4 - get-symbol-description: ^1.0.2 - globalthis: ^1.0.3 - gopd: ^1.0.1 + es-set-tostringtag: ^2.1.0 + es-to-primitive: ^1.3.0 + function.prototype.name: ^1.1.8 + get-intrinsic: ^1.2.7 + get-proto: ^1.0.0 + get-symbol-description: ^1.1.0 + globalthis: ^1.0.4 + gopd: ^1.2.0 has-property-descriptors: ^1.0.2 - has-proto: ^1.0.3 - has-symbols: ^1.0.3 + has-proto: ^1.2.0 + has-symbols: ^1.1.0 hasown: ^2.0.2 - internal-slot: ^1.0.7 - is-array-buffer: ^3.0.4 + internal-slot: ^1.1.0 + is-array-buffer: ^3.0.5 is-callable: ^1.2.7 - is-data-view: ^1.0.1 - is-negative-zero: ^2.0.3 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.3 - is-string: ^1.0.7 - is-typed-array: ^1.1.13 - is-weakref: ^1.0.2 - object-inspect: ^1.13.1 + is-data-view: ^1.0.2 + is-regex: ^1.2.1 + is-shared-array-buffer: ^1.0.4 + is-string: ^1.1.1 + is-typed-array: ^1.1.15 + is-weakref: ^1.1.0 + math-intrinsics: ^1.1.0 + object-inspect: ^1.13.3 object-keys: ^1.1.1 - object.assign: ^4.1.5 - regexp.prototype.flags: ^1.5.2 - safe-array-concat: ^1.1.2 - safe-regex-test: ^1.0.3 - string.prototype.trim: ^1.2.9 - string.prototype.trimend: ^1.0.8 + object.assign: ^4.1.7 + own-keys: ^1.0.1 + regexp.prototype.flags: ^1.5.3 + safe-array-concat: ^1.1.3 + safe-push-apply: ^1.0.0 + safe-regex-test: ^1.1.0 + set-proto: ^1.0.0 + string.prototype.trim: ^1.2.10 + string.prototype.trimend: ^1.0.9 string.prototype.trimstart: ^1.0.8 - typed-array-buffer: ^1.0.2 - typed-array-byte-length: ^1.0.1 - typed-array-byte-offset: ^1.0.2 - typed-array-length: ^1.0.6 - unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.15 - checksum: f840cf161224252512f9527306b57117192696571e07920f777cb893454e32999206198b4f075516112af6459daca282826d1735c450528470356d09eff3a9ae - languageName: node - linkType: hard - -"es-abstract@npm:^1.22.1, es-abstract@npm:^1.22.3": - version: 1.22.3 - resolution: "es-abstract@npm:1.22.3" - dependencies: - array-buffer-byte-length: ^1.0.0 - arraybuffer.prototype.slice: ^1.0.2 - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.5 - es-set-tostringtag: ^2.0.1 - es-to-primitive: ^1.2.1 - function.prototype.name: ^1.1.6 - get-intrinsic: ^1.2.2 - get-symbol-description: ^1.0.0 - globalthis: ^1.0.3 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.0 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - internal-slot: ^1.0.5 - is-array-buffer: ^3.0.2 - is-callable: ^1.2.7 - is-negative-zero: ^2.0.2 - is-regex: ^1.1.4 - is-shared-array-buffer: ^1.0.2 - is-string: ^1.0.7 - is-typed-array: ^1.1.12 - is-weakref: ^1.0.2 - object-inspect: ^1.13.1 - object-keys: ^1.1.1 - object.assign: ^4.1.4 - regexp.prototype.flags: ^1.5.1 - safe-array-concat: ^1.0.1 - safe-regex-test: ^1.0.0 - string.prototype.trim: ^1.2.8 - string.prototype.trimend: ^1.0.7 - string.prototype.trimstart: ^1.0.7 - typed-array-buffer: ^1.0.0 - typed-array-byte-length: ^1.0.0 - typed-array-byte-offset: ^1.0.0 - typed-array-length: ^1.0.4 - unbox-primitive: ^1.0.2 - which-typed-array: ^1.1.13 - checksum: b1bdc962856836f6e72be10b58dc128282bdf33771c7a38ae90419d920fc3b36cc5d2b70a222ad8016e3fc322c367bf4e9e89fc2bc79b7e933c05b218e83d79a - languageName: node - linkType: hard - -"es-array-method-boxes-properly@npm:^1.0.0": - version: 1.0.0 - resolution: "es-array-method-boxes-properly@npm:1.0.0" - checksum: 2537fcd1cecf187083890bc6f5236d3a26bf39237433587e5bf63392e88faae929dbba78ff0120681a3f6f81c23fe3816122982c160d63b38c95c830b633b826 + typed-array-buffer: ^1.0.3 + typed-array-byte-length: ^1.0.3 + typed-array-byte-offset: ^1.0.4 + typed-array-length: ^1.0.7 + unbox-primitive: ^1.1.0 + which-typed-array: ^1.1.18 + checksum: f3ee2614159ca197f97414ab36e3f406ee748ce2f97ffbf09e420726db5a442ce13f1e574601468bff6e6eb81588e6c9ce1ac6c03868a37c7cd48ac679f8485a languageName: node linkType: hard -"es-define-property@npm:^1.0.0": - version: 1.0.0 - resolution: "es-define-property@npm:1.0.0" - dependencies: - get-intrinsic: ^1.2.4 - checksum: f66ece0a887b6dca71848fa71f70461357c0e4e7249696f81bad0a1f347eed7b31262af4a29f5d726dc026426f085483b6b90301855e647aa8e21936f07293c6 +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 0512f4e5d564021c9e3a644437b0155af2679d10d80f21adaf868e64d30efdfbd321631956f20f42d655fedb2e3a027da479fad3fa6048f768eb453a80a5f80a languageName: node linkType: hard -"es-errors@npm:^1.0.0, es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": +"es-errors@npm:^1.3.0": version: 1.3.0 resolution: "es-errors@npm:1.3.0" checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 languageName: node linkType: hard -"es-iterator-helpers@npm:^1.0.19": - version: 1.0.19 - resolution: "es-iterator-helpers@npm:1.0.19" +"es-iterator-helpers@npm:^1.2.1": + version: 1.2.1 + resolution: "es-iterator-helpers@npm:1.2.1" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 - es-abstract: ^1.23.3 + es-abstract: ^1.23.6 es-errors: ^1.3.0 es-set-tostringtag: ^2.0.3 function-bind: ^1.1.2 - get-intrinsic: ^1.2.4 - globalthis: ^1.0.3 + get-intrinsic: ^1.2.6 + globalthis: ^1.0.4 + gopd: ^1.2.0 has-property-descriptors: ^1.0.2 - has-proto: ^1.0.3 - has-symbols: ^1.0.3 - internal-slot: ^1.0.7 - iterator.prototype: ^1.1.2 - safe-array-concat: ^1.1.2 - checksum: 7ae112b88359fbaf4b9d7d1d1358ae57c5138768c57ba3a8fb930393662653b0512bfd7917c15890d1471577fb012fee8b73b4465e59b331739e6ee94f961683 + has-proto: ^1.2.0 + has-symbols: ^1.1.0 + internal-slot: ^1.1.0 + iterator.prototype: ^1.1.4 + safe-array-concat: ^1.1.3 + checksum: 952808dd1df3643d67ec7adf20c30b36e5eecadfbf36354e6f39ed3266c8e0acf3446ce9bc465e38723d613cb1d915c1c07c140df65bdce85da012a6e7bda62b languageName: node linkType: hard -"es-object-atoms@npm:^1.0.0": - version: 1.0.0 - resolution: "es-object-atoms@npm:1.0.0" - dependencies: - es-errors: ^1.3.0 - checksum: 26f0ff78ab93b63394e8403c353842b2272836968de4eafe97656adfb8a7c84b9099bf0fe96ed58f4a4cddc860f6e34c77f91649a58a5daa4a9c40b902744e3c +"es-module-lexer@npm:^1.5.4": + version: 1.6.0 + resolution: "es-module-lexer@npm:1.6.0" + checksum: 4413a9aed9bf581de62b98174f3eea3f23ce2994fb6832df64bdd6504f6977da1a3b5ebd3c10f75e3c2f214dcf1a1d8b54be5e62c71b7110e6ccedbf975d2b7d languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.1": - version: 2.0.2 - resolution: "es-set-tostringtag@npm:2.0.2" +"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" dependencies: - get-intrinsic: ^1.2.2 - has-tostringtag: ^1.0.0 - hasown: ^2.0.0 - checksum: afcec3a4c9890ae14d7ec606204858441c801ff84f312538e1d1ccf1e5493c8b17bd672235df785f803756472cb4f2d49b87bde5237aef33411e74c22f194e07 + es-errors: ^1.3.0 + checksum: 214d3767287b12f36d3d7267ef342bbbe1e89f899cfd67040309fc65032372a8e60201410a99a1645f2f90c1912c8c49c8668066f6bdd954bcd614dda2e3da97 languageName: node linkType: hard -"es-set-tostringtag@npm:^2.0.3": - version: 2.0.3 - resolution: "es-set-tostringtag@npm:2.0.3" +"es-set-tostringtag@npm:^2.0.3, es-set-tostringtag@npm:^2.1.0": + version: 2.1.0 + resolution: "es-set-tostringtag@npm:2.1.0" dependencies: - get-intrinsic: ^1.2.4 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 has-tostringtag: ^1.0.2 - hasown: ^2.0.1 - checksum: 7227fa48a41c0ce83e0377b11130d324ac797390688135b8da5c28994c0165be8b252e15cd1de41e1325e5a5412511586960213e88f9ab4a5e7d028895db5129 + hasown: ^2.0.2 + checksum: 789f35de4be3dc8d11fdcb91bc26af4ae3e6d602caa93299a8c45cf05d36cc5081454ae2a6d3afa09cceca214b76c046e4f8151e092e6fc7feeb5efb9e794fc6 languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": - version: 1.0.2 - resolution: "es-shim-unscopables@npm:1.0.2" +"es-shim-unscopables@npm:^1.0.2, es-shim-unscopables@npm:^1.1.0": + version: 1.1.0 + resolution: "es-shim-unscopables@npm:1.1.0" dependencies: - hasown: ^2.0.0 - checksum: 432bd527c62065da09ed1d37a3f8e623c423683285e6188108286f4a1e8e164a5bcbfbc0051557c7d14633cd2a41ce24c7048e6bbb66a985413fd32f1be72626 + hasown: ^2.0.2 + checksum: 33cfb1ebcb2f869f0bf528be1a8660b4fe8b6cec8fc641f330e508db2284b58ee2980fad6d0828882d22858c759c0806076427a3673b6daa60f753e3b558ee15 languageName: node linkType: hard -"es-to-primitive@npm:^1.2.1": - version: 1.2.1 - resolution: "es-to-primitive@npm:1.2.1" +"es-to-primitive@npm:^1.3.0": + version: 1.3.0 + resolution: "es-to-primitive@npm:1.3.0" dependencies: - is-callable: ^1.1.4 - is-date-object: ^1.0.1 - is-symbol: ^1.0.2 - checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed + is-callable: ^1.2.7 + is-date-object: ^1.0.5 + is-symbol: ^1.0.4 + checksum: 966965880356486cd4d1fe9a523deda2084c81b3702d951212c098f5f2ee93605d1b7c1840062efb48a07d892641c7ed1bc194db563645c0dd2b919cb6d65b93 languageName: node linkType: hard @@ -4862,86 +4625,6 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:^0.19.3": - version: 0.19.12 - resolution: "esbuild@npm:0.19.12" - dependencies: - "@esbuild/aix-ppc64": 0.19.12 - "@esbuild/android-arm": 0.19.12 - "@esbuild/android-arm64": 0.19.12 - "@esbuild/android-x64": 0.19.12 - "@esbuild/darwin-arm64": 0.19.12 - "@esbuild/darwin-x64": 0.19.12 - "@esbuild/freebsd-arm64": 0.19.12 - "@esbuild/freebsd-x64": 0.19.12 - "@esbuild/linux-arm": 0.19.12 - "@esbuild/linux-arm64": 0.19.12 - "@esbuild/linux-ia32": 0.19.12 - "@esbuild/linux-loong64": 0.19.12 - "@esbuild/linux-mips64el": 0.19.12 - "@esbuild/linux-ppc64": 0.19.12 - "@esbuild/linux-riscv64": 0.19.12 - "@esbuild/linux-s390x": 0.19.12 - "@esbuild/linux-x64": 0.19.12 - "@esbuild/netbsd-x64": 0.19.12 - "@esbuild/openbsd-x64": 0.19.12 - "@esbuild/sunos-x64": 0.19.12 - "@esbuild/win32-arm64": 0.19.12 - "@esbuild/win32-ia32": 0.19.12 - "@esbuild/win32-x64": 0.19.12 - dependenciesMeta: - "@esbuild/aix-ppc64": - optional: true - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": - optional: true - "@esbuild/openbsd-x64": - optional: true - "@esbuild/sunos-x64": - optional: true - "@esbuild/win32-arm64": - optional: true - "@esbuild/win32-ia32": - optional: true - "@esbuild/win32-x64": - optional: true - bin: - esbuild: bin/esbuild - checksum: 2936e29107b43e65a775b78b7bc66ddd7d76febd73840ac7e825fb22b65029422ff51038a08d19b05154f543584bd3afe7d1ef1c63900429475b17fbe61cb61f - languageName: node - linkType: hard - "esbuild@npm:^0.21.3": version: 0.21.5 resolution: "esbuild@npm:0.21.5" @@ -5022,10 +4705,10 @@ __metadata: languageName: node linkType: hard -"escalade@npm:^3.1.1, escalade@npm:^3.1.2": - version: 3.1.2 - resolution: "escalade@npm:3.1.2" - checksum: 1ec0977aa2772075493002bdbd549d595ff6e9393b1cb0d7d6fcaf78c750da0c158f180938365486f75cb69fba20294351caddfce1b46552a7b6c3cde52eaa02 +"escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e languageName: node linkType: hard @@ -5073,32 +4756,38 @@ __metadata: linkType: hard "eslint-import-resolver-typescript@npm:^3.6.1": - version: 3.6.1 - resolution: "eslint-import-resolver-typescript@npm:3.6.1" - dependencies: - debug: ^4.3.4 - enhanced-resolve: ^5.12.0 - eslint-module-utils: ^2.7.4 - fast-glob: ^3.3.1 - get-tsconfig: ^4.5.0 - is-core-module: ^2.11.0 - is-glob: ^4.0.3 + version: 3.10.0 + resolution: "eslint-import-resolver-typescript@npm:3.10.0" + dependencies: + "@nolyfill/is-core-module": 1.0.39 + debug: ^4.4.0 + get-tsconfig: ^4.10.0 + is-bun-module: ^2.0.0 + stable-hash: ^0.0.5 + tinyglobby: ^0.2.12 + unrs-resolver: ^1.3.2 peerDependencies: eslint: "*" eslint-plugin-import: "*" - checksum: 454fa0646533050fb57f13d27daf8c71f51b0bb9156d6a461290ccb8576d892209fcc6702a89553f3f5ea8e5b407395ca2e5de169a952c953685f1f7c46b4496 + eslint-plugin-import-x: "*" + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + checksum: 6d7b865346b79fb8174fc024a1f4de1815dc9e9e50ed9eec324ac91518df7f15ce0e690fc61dcaf5a0f28a951a4728c615c29e7c872a49669f3c5e79aeb1e90e languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.4, eslint-module-utils@npm:^2.8.0": - version: 2.8.0 - resolution: "eslint-module-utils@npm:2.8.0" +"eslint-module-utils@npm:^2.12.0": + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" dependencies: debug: ^3.2.7 peerDependenciesMeta: eslint: optional: true - checksum: 74c6dfea7641ebcfe174be61168541a11a14aa8d72e515f5f09af55cd0d0862686104b0524aa4b8e0ce66418a44aa38a94d2588743db5fd07a6b49ffd16921d2 + checksum: be3ac52e0971c6f46daeb1a7e760e45c7c45f820c8cc211799f85f10f04ccbf7afc17039165d56cb2da7f7ca9cec2b3a777013cddf0b976784b37eb9efa24180 languageName: node linkType: hard @@ -5112,29 +4801,31 @@ __metadata: linkType: hard "eslint-plugin-import@npm:^2.29.1": - version: 2.29.1 - resolution: "eslint-plugin-import@npm:2.29.1" + version: 2.31.0 + resolution: "eslint-plugin-import@npm:2.31.0" dependencies: - array-includes: ^3.1.7 - array.prototype.findlastindex: ^1.2.3 + "@rtsao/scc": ^1.1.0 + array-includes: ^3.1.8 + array.prototype.findlastindex: ^1.2.5 array.prototype.flat: ^1.3.2 array.prototype.flatmap: ^1.3.2 debug: ^3.2.7 doctrine: ^2.1.0 eslint-import-resolver-node: ^0.3.9 - eslint-module-utils: ^2.8.0 - hasown: ^2.0.0 - is-core-module: ^2.13.1 + eslint-module-utils: ^2.12.0 + hasown: ^2.0.2 + is-core-module: ^2.15.1 is-glob: ^4.0.3 minimatch: ^3.1.2 - object.fromentries: ^2.0.7 - object.groupby: ^1.0.1 - object.values: ^1.1.7 + object.fromentries: ^2.0.8 + object.groupby: ^1.0.3 + object.values: ^1.2.0 semver: ^6.3.1 + string.prototype.trimend: ^1.0.8 tsconfig-paths: ^3.15.0 peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: e65159aef808136d26d029b71c8c6e4cb5c628e65e5de77f1eb4c13a379315ae55c9c3afa847f43f4ff9df7e54515c77ffc6489c6a6f81f7dd7359267577468c + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: b1d2ac268b3582ff1af2a72a2c476eae4d250c100f2e335b6e102036e4a35efa530b80ec578dfc36761fabb34a635b9bf5ab071abe9d4404a4bb054fdf22d415 languageName: node linkType: hard @@ -5148,77 +4839,82 @@ __metadata: linkType: hard "eslint-plugin-react@npm:^7.35.0": - version: 7.35.0 - resolution: "eslint-plugin-react@npm:7.35.0" + version: 7.37.5 + resolution: "eslint-plugin-react@npm:7.37.5" dependencies: array-includes: ^3.1.8 array.prototype.findlast: ^1.2.5 - array.prototype.flatmap: ^1.3.2 + array.prototype.flatmap: ^1.3.3 array.prototype.tosorted: ^1.1.4 doctrine: ^2.1.0 - es-iterator-helpers: ^1.0.19 + es-iterator-helpers: ^1.2.1 estraverse: ^5.3.0 hasown: ^2.0.2 jsx-ast-utils: ^2.4.1 || ^3.0.0 minimatch: ^3.1.2 - object.entries: ^1.1.8 + object.entries: ^1.1.9 object.fromentries: ^2.0.8 - object.values: ^1.2.0 + object.values: ^1.2.1 prop-types: ^15.8.1 resolve: ^2.0.0-next.5 semver: ^6.3.1 - string.prototype.matchall: ^4.0.11 + string.prototype.matchall: ^4.0.12 string.prototype.repeat: ^1.0.0 peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - checksum: cd4d3c0567e947964643dda5fc80147e058d75f06bac47c3f086ff0cd6156286c669d98e685e3834997c4043f3922b90e6374b6c3658f22abd025dbd41acc23f + checksum: 8675e7558e646e3c2fcb04bb60cfe416000b831ef0b363f0117838f5bfc799156113cb06058ad4d4b39fc730903b7360b05038da11093064ca37caf76b7cf2ca languageName: node linkType: hard -"eslint-scope@npm:^8.0.2": - version: 8.0.2 - resolution: "eslint-scope@npm:8.0.2" +"eslint-scope@npm:^8.3.0": + version: 8.3.0 + resolution: "eslint-scope@npm:8.3.0" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: bd1e7a0597ec605cf3bc9b35c9e13d7ea6c11fee031b0cada9e8993b0ecf16d81d6f40f1dcd463424af439abf53cd62302ea25707c1599689eb2750d6aa29688 + checksum: 57a58b6716533e25d527089826c4add89a047aecf75e4a88fee05f113ef5a72b85392b304a69bf670646cc3e068354aec70361b9718c2453949a05fc4d9bfe73 languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3": +"eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 languageName: node linkType: hard -"eslint-visitor-keys@npm:^4.0.0": - version: 4.0.0 - resolution: "eslint-visitor-keys@npm:4.0.0" - checksum: 5c09f89cf29d87cdbfbac38802a880d3c2e65f8cb61c689888346758f1e24a4c7f6caefeac9474dfa52058a99920623599bdb00516976a30134abeba91275aa2 +"eslint-visitor-keys@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-visitor-keys@npm:4.2.0" + checksum: 779c604672b570bb4da84cef32f6abb085ac78379779c1122d7879eade8bb38ae715645324597cf23232d03cef06032c9844d25c73625bc282a5bfd30247e5b5 languageName: node linkType: hard "eslint@npm:^9.9.1": - version: 9.9.1 - resolution: "eslint@npm:9.9.1" + version: 9.24.0 + resolution: "eslint@npm:9.24.0" dependencies: "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.11.0 - "@eslint/config-array": ^0.18.0 - "@eslint/eslintrc": ^3.1.0 - "@eslint/js": 9.9.1 + "@eslint-community/regexpp": ^4.12.1 + "@eslint/config-array": ^0.20.0 + "@eslint/config-helpers": ^0.2.0 + "@eslint/core": ^0.12.0 + "@eslint/eslintrc": ^3.3.1 + "@eslint/js": 9.24.0 + "@eslint/plugin-kit": ^0.2.7 + "@humanfs/node": ^0.16.6 "@humanwhocodes/module-importer": ^1.0.1 - "@humanwhocodes/retry": ^0.3.0 - "@nodelib/fs.walk": ^1.2.8 + "@humanwhocodes/retry": ^0.4.2 + "@types/estree": ^1.0.6 + "@types/json-schema": ^7.0.15 ajv: ^6.12.4 chalk: ^4.0.0 - cross-spawn: ^7.0.2 + cross-spawn: ^7.0.6 debug: ^4.3.2 escape-string-regexp: ^4.0.0 - eslint-scope: ^8.0.2 - eslint-visitor-keys: ^4.0.0 - espree: ^10.1.0 + eslint-scope: ^8.3.0 + eslint-visitor-keys: ^4.2.0 + espree: ^10.3.0 esquery: ^1.5.0 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 @@ -5228,15 +4924,11 @@ __metadata: ignore: ^5.2.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 - is-path-inside: ^3.0.3 json-stable-stringify-without-jsonify: ^1.0.1 - levn: ^0.4.1 lodash.merge: ^4.6.2 minimatch: ^3.1.2 natural-compare: ^1.4.0 optionator: ^0.9.3 - strip-ansi: ^6.0.1 - text-table: ^0.2.0 peerDependencies: jiti: "*" peerDependenciesMeta: @@ -5244,18 +4936,18 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: a1ff85cd26a6f138e0f52e17668b7794371c81fd0ac66634c4d554dc2d878dcfbe6047a025e63e85168c897c83dfa453501a10395cbefda7debd79fe6ea00eab + checksum: fb4cdca007fe8b66d6c1ae8e682ce504afc116ab9a0ba264a69ff7cd40833ad02d9b86394685563175d202c31dbb57b31de46687cfa10ed890c7ae560f560871 languageName: node linkType: hard -"espree@npm:^10.0.1, espree@npm:^10.1.0": - version: 10.1.0 - resolution: "espree@npm:10.1.0" +"espree@npm:^10.0.1, espree@npm:^10.3.0": + version: 10.3.0 + resolution: "espree@npm:10.3.0" dependencies: - acorn: ^8.12.0 + acorn: ^8.14.0 acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^4.0.0 - checksum: a4708ab987f6c03734b8738b1588e9f31b2e305e869ca4677c60d82294eb05f7099b6687eb39eeb0913bb2d49bdf0bd0f31c511599ea7ee171281f871a9c897e + eslint-visitor-keys: ^4.2.0 + checksum: 63e8030ff5a98cea7f8b3e3a1487c998665e28d674af08b9b3100ed991670eb3cbb0e308c4548c79e03762753838fbe530c783f17309450d6b47a889fee72bef languageName: node linkType: hard @@ -5317,6 +5009,21 @@ __metadata: languageName: node linkType: hard +"ethers@npm:^6.13.5": + version: 6.13.6 + resolution: "ethers@npm:6.13.6" + dependencies: + "@adraffy/ens-normalize": 1.10.1 + "@noble/curves": 1.2.0 + "@noble/hashes": 1.3.2 + "@types/node": 22.7.5 + aes-js: 4.0.0-beta.5 + tslib: 2.7.0 + ws: 8.17.1 + checksum: 9d0eb6d031c11a325dcab34378c70f335d2985c33063e07e82c85d1448135b730d2bfb47fb28c8d618c57f37462793b0fad9e16588ba3b2dffc77c898b580ee5 + languageName: node + linkType: hard + "eventemitter2@npm:6.4.7": version: 6.4.7 resolution: "eventemitter2@npm:6.4.7" @@ -5348,7 +5055,7 @@ __metadata: languageName: node linkType: hard -"execa@npm:^8.0.1, execa@npm:~8.0.1": +"execa@npm:^8.0.1": version: 8.0.1 resolution: "execa@npm:8.0.1" dependencies: @@ -5374,10 +5081,17 @@ __metadata: languageName: node linkType: hard +"expect-type@npm:^1.1.0": + version: 1.2.1 + resolution: "expect-type@npm:1.2.1" + checksum: 4fc41ff0c784cb8984ab7801326251d3178083661f0ad08bbd3e5ca789293e6b66d5082f0cef83ebf9849c85d0280a19df5e4e2c57999a2464db9a01c7e3344f + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 3d21519a4f8207c99f7457287291316306255a328770d320b401114ec8481986e4e467e854cb9914dd965e0a1ca810a23ccb559c642c88f4c7f55c55778a9b48 + version: 3.1.2 + resolution: "exponential-backoff@npm:3.1.2" + checksum: 7e191e3dd6edd8c56c88f2c8037c98fbb8034fe48778be53ed8cb30ccef371a061a4e999a469aab939b92f8f12698f3b426d52f4f76b7a20da5f9f98c3cbc862 languageName: node linkType: hard @@ -5426,16 +5140,16 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.0, fast-glob@npm:^3.3.1": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": + version: 3.3.3 + resolution: "fast-glob@npm:3.3.3" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.2 merge2: ^1.3.0 - micromatch: ^4.0.4 - checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + micromatch: ^4.0.8 + checksum: 0704d7b85c0305fd2cef37777337dfa26230fdd072dce9fb5c82a4b03156f3ffb8ed3e636033e65d45d2a5805a4e475825369a27404c0307f2db0c8eb3366fbd languageName: node linkType: hard @@ -5454,11 +5168,11 @@ __metadata: linkType: hard "fastq@npm:^1.6.0": - version: 1.17.1 - resolution: "fastq@npm:1.17.1" + version: 1.19.1 + resolution: "fastq@npm:1.19.1" dependencies: reusify: ^1.0.4 - checksum: a8c5b26788d5a1763f88bae56a8ddeee579f935a831c5fe7a8268cea5b0a91fbfe705f612209e02d639b881d7b48e461a50da4a10cfaa40da5ca7cc9da098d88 + checksum: 7691d1794fb84ad0ec2a185f10e00f0e1713b894e2c9c4d42f0bc0ba5f8c00e6e655a202074ca0b91b9c3d977aab7c30c41a8dc069fb5368576ac0054870a0e6 languageName: node linkType: hard @@ -5471,6 +5185,18 @@ __metadata: languageName: node linkType: hard +"fdir@npm:^6.4.3": + version: 6.4.3 + resolution: "fdir@npm:6.4.3" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: fa53e13c63e8c14add5b70fd47e28267dd5481ebbba4b47720ec25aae7d10a800ef0f2e33de350faaf63c10b3d7b64138925718832220d593f75e724846c736d + languageName: node + linkType: hard + "fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": version: 3.2.0 resolution: "fetch-blob@npm:3.2.0" @@ -5499,21 +5225,12 @@ __metadata: languageName: node linkType: hard -"file-selector@npm:^0.6.0": - version: 0.6.0 - resolution: "file-selector@npm:0.6.0" - dependencies: - tslib: ^2.4.0 - checksum: 7d051b6e5d793f3c6e2ab287ba5e7c2c6a0971bccc9d56e044c8047ba483e18f60fc0b5771c951dc707c0d15f4f36ccb4f1f1aaf385d21ec8f7700dadf8325ba - languageName: node - linkType: hard - -"fill-range@npm:^7.0.1": - version: 7.0.1 - resolution: "fill-range@npm:7.0.1" +"file-selector@npm:^2.1.0": + version: 2.1.2 + resolution: "file-selector@npm:2.1.2" dependencies: - to-regex-range: ^5.0.1 - checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + tslib: ^2.7.0 + checksum: 0e7c5233ca7d33a05eb99236e8cfc843ea304335589d954393aeb7c5b7595f30be23c79173d28180e728b6eb441cd1dd355d6ad7fbb03b8e4f37d20e3d5c3184 languageName: node linkType: hard @@ -5575,9 +5292,9 @@ __metadata: linkType: hard "flatted@npm:^3.2.9": - version: 3.2.9 - resolution: "flatted@npm:3.2.9" - checksum: f14167fbe26a9d20f6fca8d998e8f1f41df72c8e81f9f2c9d61ed2bea058248f5e1cbd05e7f88c0e5087a6a0b822a1e5e2b446e879f3cfbe0b07ba2d7f80b026 + version: 3.3.3 + resolution: "flatted@npm:3.3.3" + checksum: 8c96c02fbeadcf4e8ffd0fa24983241e27698b0781295622591fc13585e2f226609d95e422bcf2ef044146ffacb6b68b1f20871454eddf75ab3caa6ee5f4a1fe languageName: node linkType: hard @@ -5595,12 +5312,12 @@ __metadata: languageName: node linkType: hard -"for-each@npm:^0.3.3": - version: 0.3.3 - resolution: "for-each@npm:0.3.3" +"for-each@npm:^0.3.3, for-each@npm:^0.3.5": + version: 0.3.5 + resolution: "for-each@npm:0.3.5" dependencies: - is-callable: ^1.1.3 - checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 + is-callable: ^1.2.7 + checksum: 3c986d7e11f4381237cc98baa0a2f87eabe74719eee65ed7bed275163082b940ede19268c61d04c6260e0215983b12f8d885e3c8f9aa8c2113bf07c37051745c languageName: node linkType: hard @@ -5614,13 +5331,13 @@ __metadata: languageName: node linkType: hard -"foreground-child@npm:^3.1.0": - version: 3.1.1 - resolution: "foreground-child@npm:3.1.1" +"foreground-child@npm:^3.1.0, foreground-child@npm:^3.3.0": + version: 3.3.1 + resolution: "foreground-child@npm:3.3.1" dependencies: - cross-spawn: ^7.0.0 + cross-spawn: ^7.0.6 signal-exit: ^4.0.1 - checksum: 139d270bc82dc9e6f8bc045fe2aae4001dc2472157044fdfad376d0a3457f77857fa883c1c8b21b491c6caade9a926a4bed3d3d2e8d3c9202b151a4cbbd0bcd5 + checksum: b2c1a6fc0bf0233d645d9fefdfa999abf37db1b33e5dab172b3cbfb0662b88bfbd2c9e7ab853533d199050ec6b65c03fcf078fc212d26e4990220e98c6930eef languageName: node linkType: hard @@ -5631,14 +5348,15 @@ __metadata: languageName: node linkType: hard -"form-data@npm:~2.3.2": - version: 2.3.3 - resolution: "form-data@npm:2.3.3" +"form-data@npm:~4.0.0": + version: 4.0.2 + resolution: "form-data@npm:4.0.2" dependencies: asynckit: ^0.4.0 - combined-stream: ^1.0.6 + combined-stream: ^1.0.8 + es-set-tostringtag: ^2.1.0 mime-types: ^2.1.12 - checksum: 10c1780fa13dbe1ff3100114c2ce1f9307f8be10b14bf16e103815356ff567b6be39d70fc4a40f8990b9660012dc24b0f5e1dde1b6426166eb23a445ba068ca3 + checksum: e887298b22c13c7c9c5a8ba3716f295a479a13ca78bfd855ef11cbce1bcf22bc0ae2062e94808e21d46e5c667664a1a1a8a7f57d7040193c1fefbfb11af58aab languageName: node linkType: hard @@ -5677,15 +5395,6 @@ __metadata: languageName: node linkType: hard -"fs-minipass@npm:^2.0.0": - version: 2.1.0 - resolution: "fs-minipass@npm:2.1.0" - dependencies: - minipass: ^3.0.0 - checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 - languageName: node - linkType: hard - "fs-minipass@npm:^3.0.0": version: 3.0.3 resolution: "fs-minipass@npm:3.0.3" @@ -5728,15 +5437,17 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.5, function.prototype.name@npm:^1.1.6": - version: 1.1.6 - resolution: "function.prototype.name@npm:1.1.6" +"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8": + version: 1.1.8 + resolution: "function.prototype.name@npm:1.1.8" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 functions-have-names: ^1.2.3 - checksum: 7a3f9bd98adab09a07f6e1f03da03d3f7c26abbdeaeee15223f6c04a9fb5674792bdf5e689dac19b97ac71de6aad2027ba3048a9b883aa1b3173eed6ab07f479 + hasown: ^2.0.2 + is-callable: ^1.2.7 + checksum: 3a366535dc08b25f40a322efefa83b2da3cd0f6da41db7775f2339679120ef63b6c7e967266182609e655b8f0a8f65596ed21c7fd72ad8bd5621c2340edd4010 languageName: node linkType: hard @@ -5762,29 +5473,27 @@ __metadata: linkType: hard "get-east-asian-width@npm:^1.0.0": - version: 1.2.0 - resolution: "get-east-asian-width@npm:1.2.0" - checksum: ea55f4d4a42c4b00d3d9be3111bc17eb0161f60ed23fc257c1390323bb780a592d7a8bdd550260fd4627dabee9a118cdfa3475ae54edca35ebcd3bdae04179e3 - languageName: node - linkType: hard - -"get-func-name@npm:^2.0.1": - version: 2.0.2 - resolution: "get-func-name@npm:2.0.2" - checksum: 3f62f4c23647de9d46e6f76d2b3eafe58933a9b3830c60669e4180d6c601ce1b4aa310ba8366143f55e52b139f992087a9f0647274e8745621fa2af7e0acf13b + version: 1.3.0 + resolution: "get-east-asian-width@npm:1.3.0" + checksum: 757a34c7a46ff385e2775f96f9d3e553f6b6666a8898fb89040d36a1010fba692332772945606a7d4b0f0c6afb84cd394e75d5477c56e1f00f1eb79603b0aecc languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.1, get-intrinsic@npm:^1.2.2, get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": - version: 1.2.4 - resolution: "get-intrinsic@npm:1.2.4" +"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0": + version: 1.3.0 + resolution: "get-intrinsic@npm:1.3.0" 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 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - hasown: ^2.0.0 - checksum: 414e3cdf2c203d1b9d7d33111df746a4512a1aa622770b361dadddf8ed0b5aeb26c560f49ca077e24bfafb0acb55ca908d1f709216ccba33ffc548ec8a79a951 + get-proto: ^1.0.1 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + hasown: ^2.0.2 + math-intrinsics: ^1.1.0 + checksum: 301008e4482bb9a9cb49e132b88fee093bff373b4e6def8ba219b1e96b60158a6084f273ef5cafe832e42cd93462f4accb46a618d35fe59a2b507f2388c5b79d languageName: node linkType: hard @@ -5795,6 +5504,16 @@ __metadata: languageName: node linkType: hard +"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: ^1.0.1 + es-object-atoms: ^1.0.0 + checksum: 4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b + languageName: node + linkType: hard + "get-stream@npm:^5.0.0, get-stream@npm:^5.1.0": version: 5.2.0 resolution: "get-stream@npm:5.2.0" @@ -5811,33 +5530,23 @@ __metadata: languageName: node linkType: hard -"get-symbol-description@npm:^1.0.0": - version: 1.0.1 - resolution: "get-symbol-description@npm:1.0.1" - dependencies: - call-bind: ^1.0.5 - es-errors: ^1.3.0 - checksum: 3feb5130efcade947cbad0304eb2163bab7b80e2c5ce24adcdc242cbdbbbaebbbe0f536807822f333b5d1088288ee19534cb75cd92f18aa76e050ea16e766915 - languageName: node - linkType: hard - -"get-symbol-description@npm:^1.0.2": - version: 1.0.2 - resolution: "get-symbol-description@npm:1.0.2" +"get-symbol-description@npm:^1.1.0": + version: 1.1.0 + resolution: "get-symbol-description@npm:1.1.0" dependencies: - call-bind: ^1.0.5 + call-bound: ^1.0.3 es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - checksum: e1cb53bc211f9dbe9691a4f97a46837a553c4e7caadd0488dc24ac694db8a390b93edd412b48dcdd0b4bbb4c595de1709effc75fc87c0839deedc6968f5bd973 + get-intrinsic: ^1.2.6 + checksum: 655ed04db48ee65ef2ddbe096540d4405e79ba0a7f54225775fef43a7e2afcb93a77d141c5f05fdef0afce2eb93bcbfb3597142189d562ac167ff183582683cd languageName: node linkType: hard -"get-tsconfig@npm:^4.5.0": - version: 4.7.2 - resolution: "get-tsconfig@npm:4.7.2" +"get-tsconfig@npm:^4.10.0": + version: 4.10.0 + resolution: "get-tsconfig@npm:4.10.0" dependencies: resolve-pkg-maps: ^1.0.0 - checksum: 172358903250eff0103943f816e8a4e51d29b8e5449058bdf7266714a908a48239f6884308bd3a6ff28b09f692b9533dbebfd183ab63e4e14f073cda91f1bca9 + checksum: cebf14d38ecaa9a1af25fc3f56317402a4457e7e20f30f52a0ab98b4c85962a259f75065e483824f73a1ce4a8e4926c149ead60f0619842b8cd13b94e15fbdec languageName: node linkType: hard @@ -5878,17 +5587,18 @@ __metadata: linkType: hard "glob@npm:^10.2.2, glob@npm:^10.3.10": - version: 10.3.10 - resolution: "glob@npm:10.3.10" + version: 10.4.5 + resolution: "glob@npm:10.4.5" dependencies: foreground-child: ^3.1.0 - jackspeak: ^2.3.5 - minimatch: ^9.0.1 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - path-scurry: ^1.10.1 + jackspeak: ^3.1.2 + minimatch: ^9.0.4 + minipass: ^7.1.2 + package-json-from-dist: ^1.0.0 + path-scurry: ^1.11.1 bin: glob: dist/esm/bin.mjs - checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 + checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a languageName: node linkType: hard @@ -5929,16 +5639,17 @@ __metadata: languageName: node linkType: hard -"globalthis@npm:^1.0.3": - version: 1.0.3 - resolution: "globalthis@npm:1.0.3" +"globalthis@npm:^1.0.4": + version: 1.0.4 + resolution: "globalthis@npm:1.0.4" dependencies: - define-properties: ^1.1.3 - checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + define-properties: ^1.2.1 + gopd: ^1.0.1 + checksum: 39ad667ad9f01476474633a1834a70842041f70a55571e8dcef5fb957980a92da5022db5430fca8aecc5d47704ae30618c0bc877a579c70710c904e9ef06108a languageName: node linkType: hard -"globby@npm:11.1.0, globby@npm:^11.1.0": +"globby@npm:11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: @@ -5959,16 +5670,14 @@ __metadata: languageName: node linkType: hard -"gopd@npm:^1.0.1": - version: 1.0.1 - resolution: "gopd@npm:1.0.1" - dependencies: - get-intrinsic: ^1.1.3 - checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 +"gopd@npm:^1.0.1, gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: cc6d8e655e360955bdccaca51a12a474268f95bb793fc3e1f2bdadb075f28bfd1fd988dab872daf77a61d78cbaf13744bc8727a17cfb1d150d76047d805375f3 languageName: node linkType: hard -"graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -5991,17 +5700,10 @@ __metadata: languageName: node linkType: hard -"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b - languageName: node - linkType: hard - -"has-flag@npm:^3.0.0": - version: 3.0.0 - resolution: "has-flag@npm:3.0.0" - checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b +"has-bigints@npm:^1.0.2": + version: 1.1.0 + resolution: "has-bigints@npm:1.1.0" + checksum: 79730518ae02c77e4af6a1d1a0b6a2c3e1509785532771f9baf0241e83e36329542c3d7a0e723df8cbc85f74eff4f177828a2265a01ba576adbdc2d40d86538b languageName: node linkType: hard @@ -6012,16 +5714,7 @@ __metadata: languageName: node linkType: hard -"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.1": - version: 1.0.1 - resolution: "has-property-descriptors@npm:1.0.1" - dependencies: - get-intrinsic: ^1.2.2 - checksum: 2bcc6bf6ec6af375add4e4b4ef586e43674850a91ad4d46666d0b28ba8e1fd69e424c7677d24d60f69470ad0afaa2f3197f508b20b0bb7dd99a8ab77ffc4b7c4 - languageName: node - linkType: hard - -"has-property-descriptors@npm:^1.0.2": +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": version: 1.0.2 resolution: "has-property-descriptors@npm:1.0.2" dependencies: @@ -6030,28 +5723,23 @@ __metadata: languageName: node linkType: hard -"has-proto@npm:^1.0.1": - version: 1.0.1 - resolution: "has-proto@npm:1.0.1" - checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e - languageName: node - linkType: hard - -"has-proto@npm:^1.0.3": - version: 1.0.3 - resolution: "has-proto@npm:1.0.3" - checksum: fe7c3d50b33f50f3933a04413ed1f69441d21d2d2944f81036276d30635cad9279f6b43bc8f32036c31ebdfcf6e731150f46c1907ad90c669ffe9b066c3ba5c4 +"has-proto@npm:^1.2.0": + version: 1.2.0 + resolution: "has-proto@npm:1.2.0" + dependencies: + dunder-proto: ^1.0.0 + checksum: f55010cb94caa56308041d77967c72a02ffd71386b23f9afa8447e58bc92d49d15c19bf75173713468e92fe3fb1680b03b115da39c21c32c74886d1d50d3e7ff languageName: node linkType: hard -"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": - version: 1.0.3 - resolution: "has-symbols@npm:1.0.3" - checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: b2316c7302a0e8ba3aaba215f834e96c22c86f192e7310bdf689dd0e6999510c89b00fbc5742571507cebf25764d68c988b3a0da217369a73596191ac0ce694b languageName: node linkType: hard -"has-tostringtag@npm:^1.0.0, has-tostringtag@npm:^1.0.1, has-tostringtag@npm:^1.0.2": +"has-tostringtag@npm:^1.0.2": version: 1.0.2 resolution: "has-tostringtag@npm:1.0.2" dependencies: @@ -6070,16 +5758,7 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.0": - version: 2.0.0 - resolution: "hasown@npm:2.0.0" - dependencies: - function-bind: ^1.1.2 - checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176 - languageName: node - linkType: hard - -"hasown@npm:^2.0.1, hasown@npm:^2.0.2": +"hasown@npm:^2.0.2": version: 2.0.2 resolution: "hasown@npm:2.0.2" dependencies: @@ -6089,8 +5768,8 @@ __metadata: linkType: hard "hast-util-to-jsx-runtime@npm:^2.0.0": - version: 2.3.0 - resolution: "hast-util-to-jsx-runtime@npm:2.3.0" + version: 2.3.6 + resolution: "hast-util-to-jsx-runtime@npm:2.3.6" dependencies: "@types/estree": ^1.0.0 "@types/hast": ^3.0.0 @@ -6102,12 +5781,12 @@ __metadata: mdast-util-mdx-expression: ^2.0.0 mdast-util-mdx-jsx: ^3.0.0 mdast-util-mdxjs-esm: ^2.0.0 - property-information: ^6.0.0 + property-information: ^7.0.0 space-separated-tokens: ^2.0.0 - style-to-object: ^1.0.0 + style-to-js: ^1.0.0 unist-util-position: ^5.0.0 vfile-message: ^4.0.0 - checksum: 599a97c6ec61c1430776813d7fb42e6f96032bf4a04dfcbb8eceef3bc8d1845ecf242387a4426b9d3f52320dbbfa26450643b81124b3d6a0b9bbb0fff4d0ba83 + checksum: 78c25465cf010f1004b22f0bbb3bd47793f458ead3561c779ea2b9204ceb1adc9c048592b0a15025df0c683a12ebe16a8bef008c06d9c0369f51116f64b35a2d languageName: node linkType: hard @@ -6137,9 +5816,9 @@ __metadata: linkType: hard "html-url-attributes@npm:^3.0.0": - version: 3.0.0 - resolution: "html-url-attributes@npm:3.0.0" - checksum: 9f499d33e6ddff6c2d2766fd73d2f22f3c370b4e485a92b0b2938303665b306dc7f36b2724c9466764e8f702351c01f342f5ec933be41a31c1fa40b72087b91d + version: 3.0.1 + resolution: "html-url-attributes@npm:3.0.1" + checksum: 1ecbf9cae0c438d2802386710177b7bbf7e30cc61327e9f125eb32fca7302cd1e3ab45c441859cb1e7646109be322fc1163592ad4dfde9b14d09416d101a6573 languageName: node linkType: hard @@ -6151,33 +5830,33 @@ __metadata: linkType: hard "http-proxy-agent@npm:^7.0.0": - version: 7.0.0 - resolution: "http-proxy-agent@npm:7.0.0" + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" dependencies: agent-base: ^7.1.0 debug: ^4.3.4 - checksum: 48d4fac997917e15f45094852b63b62a46d0c8a4f0b9c6c23ca26d27b8df8d178bed88389e604745e748bd9a01f5023e25093722777f0593c3f052009ff438b6 + checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 languageName: node linkType: hard -"http-signature@npm:~1.3.6": - version: 1.3.6 - resolution: "http-signature@npm:1.3.6" +"http-signature@npm:~1.4.0": + version: 1.4.0 + resolution: "http-signature@npm:1.4.0" dependencies: assert-plus: ^1.0.0 jsprim: ^2.0.2 - sshpk: ^1.14.1 - checksum: 10be2af4764e71fee0281392937050201ee576ac755c543f570d6d87134ce5e858663fe999a7adb3e4e368e1e356d0d7fec6b9542295b875726ff615188e7a0c + sshpk: ^1.18.0 + checksum: f07f4cc0481e4461c68b9b7d1a25bf2ec4cef8e0061812b989c1e64f504b4b11f75f88022102aea05d25d47a87789599f1a310b1f8a56945a50c93e54c7ee076 languageName: node linkType: hard "https-proxy-agent@npm:^7.0.1": - version: 7.0.2 - resolution: "https-proxy-agent@npm:7.0.2" + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" dependencies: - agent-base: ^7.0.2 + agent-base: ^7.1.2 debug: 4 - checksum: 088969a0dd476ea7a0ed0a2cf1283013682b08f874c3bc6696c83fa061d2c157d29ef0ad3eb70a2046010bb7665573b2388d10fdcb3e410a66995e5248444292 + checksum: b882377a120aa0544846172e5db021fa8afbf83fea2a897d397bd2ddd8095ab268c24bc462f40a15f2a8c600bf4aa05ce52927f70038d4014e68aefecfa94e8d languageName: node linkType: hard @@ -6196,11 +5875,11 @@ __metadata: linkType: hard "husky@npm:^9.1.5": - version: 9.1.5 - resolution: "husky@npm:9.1.5" + version: 9.1.7 + resolution: "husky@npm:9.1.7" bin: husky: bin.js - checksum: c240018e852666dc12a93ca84751f1440bdf436468ba872c7b7b3cee54f5f1d7b4222a117988b27ca437093efdeb128778897ab0e409361336676a2c3012c8a7 + checksum: c2412753f15695db369634ba70f50f5c0b7e5cb13b673d0826c411ec1bd9ddef08c1dad89ea154f57da2521d2605bd64308af748749b27d08c5f563bcd89975f languageName: node linkType: hard @@ -6220,14 +5899,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0": - version: 5.3.1 - resolution: "ignore@npm:5.3.1" - checksum: 71d7bb4c1dbe020f915fd881108cbe85a0db3d636a0ea3ba911393c53946711d13a9b1143c7e70db06d571a5822c0a324a6bcde5c9904e7ca5047f01f1bf8cd3 - languageName: node - linkType: hard - -"ignore@npm:^5.3.1": +"ignore@npm:^5.2.0, ignore@npm:^5.3.1": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be @@ -6235,12 +5907,12 @@ __metadata: linkType: hard "import-fresh@npm:^3.2.1": - version: 3.3.0 - resolution: "import-fresh@npm:3.3.0" + version: 3.3.1 + resolution: "import-fresh@npm:3.3.1" dependencies: parent-module: ^1.0.0 resolve-from: ^4.0.0 - checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + checksum: a06b19461b4879cc654d46f8a6244eb55eb053437afd4cbb6613cad6be203811849ed3e4ea038783092879487299fda24af932b86bdfff67c9055ba3612b8c87 languageName: node linkType: hard @@ -6289,28 +5961,31 @@ __metadata: languageName: node linkType: hard -"inline-style-parser@npm:0.2.3": - version: 0.2.3 - resolution: "inline-style-parser@npm:0.2.3" - checksum: ed6454de80759e7faef511f51b5716b33c40a6b05b8a8f5383dc01e8a087c6fd5df877446d05e8e3961ae0751e028e25e180f5cffc192a5ce7822edef6810ade +"inline-style-parser@npm:0.2.4": + version: 0.2.4 + resolution: "inline-style-parser@npm:0.2.4" + checksum: 5df20a21dd8d67104faaae29774bb50dc9690c75bc5c45dac107559670a5530104ead72c4cf54f390026e617e7014c65b3d68fb0bb573a37c4d1f94e9c36e1ca languageName: node linkType: hard -"internal-slot@npm:^1.0.5, internal-slot@npm:^1.0.7": - version: 1.0.7 - resolution: "internal-slot@npm:1.0.7" +"internal-slot@npm:^1.1.0": + version: 1.1.0 + resolution: "internal-slot@npm:1.1.0" dependencies: es-errors: ^1.3.0 - hasown: ^2.0.0 - side-channel: ^1.0.4 - checksum: cadc5eea5d7d9bc2342e93aae9f31f04c196afebb11bde97448327049f492cd7081e18623ae71388aac9cd237b692ca3a105be9c68ac39c1dec679d7409e33eb + hasown: ^2.0.2 + side-channel: ^1.1.0 + checksum: 8e0991c2d048cc08dab0a91f573c99f6a4215075887517ea4fa32203ce8aea60fa03f95b177977fa27eb502e5168366d0f3e02c762b799691411d49900611861 languageName: node linkType: hard -"ip@npm:^2.0.0": - version: 2.0.1 - resolution: "ip@npm:2.0.1" - checksum: d765c9fd212b8a99023a4cde6a558a054c298d640fec1020567494d257afd78ca77e37126b1a3ef0e053646ced79a816bf50621d38d5e768cdde0431fa3b0d35 +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: 1.1.0 + sprintf-js: ^1.1.3 + checksum: aa15f12cfd0ef5e38349744e3654bae649a34c3b10c77a674a167e99925d1549486c5b14730eebce9fea26f6db9d5e42097b00aa4f9f612e68c79121c71652dc languageName: node linkType: hard @@ -6331,13 +6006,14 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.2, is-array-buffer@npm:^3.0.4": - version: 3.0.4 - resolution: "is-array-buffer@npm:3.0.4" +"is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": + version: 3.0.5 + resolution: "is-array-buffer@npm:3.0.5" dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.2.1 - checksum: e4e3e6ef0ff2239e75371d221f74bc3c26a03564a22efb39f6bb02609b598917ddeecef4e8c877df2a25888f247a98198959842a5e73236bc7f22cabdf6351a7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: f137a2a6e77af682cdbffef1e633c140cf596f72321baf8bba0f4ef22685eb4339dde23dfe9e9ca430b5f961dee4d46577dcf12b792b68518c8449b134fb9156 languageName: node linkType: hard @@ -6349,20 +6025,24 @@ __metadata: linkType: hard "is-async-function@npm:^2.0.0": - version: 2.0.0 - resolution: "is-async-function@npm:2.0.0" + version: 2.1.1 + resolution: "is-async-function@npm:2.1.1" dependencies: - has-tostringtag: ^1.0.0 - checksum: e3471d95e6c014bf37cad8a93f2f4b6aac962178e0a5041e8903147166964fdc1c5c1d2ef87e86d77322c370ca18f2ea004fa7420581fa747bcaf7c223069dbd + async-function: ^1.0.0 + call-bound: ^1.0.3 + get-proto: ^1.0.1 + has-tostringtag: ^1.0.2 + safe-regex-test: ^1.1.0 + checksum: 9bece45133da26636488ca127d7686b85ad3ca18927e2850cff1937a650059e90be1c71a48623f8791646bb7a241b0cabf602a0b9252dcfa5ab273f2399000e6 languageName: node linkType: hard -"is-bigint@npm:^1.0.1": - version: 1.0.4 - resolution: "is-bigint@npm:1.0.4" +"is-bigint@npm:^1.1.0": + version: 1.1.0 + resolution: "is-bigint@npm:1.1.0" dependencies: - has-bigints: ^1.0.1 - checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 + has-bigints: ^1.0.2 + checksum: ee1544f0e664f253306786ed1dce494b8cf242ef415d6375d8545b4d8816b0f054bd9f948a8988ae2c6325d1c28260dd02978236b2f7b8fb70dfc4838a6c9fa7 languageName: node linkType: hard @@ -6375,17 +6055,26 @@ __metadata: languageName: node linkType: hard -"is-boolean-object@npm:^1.1.0": - version: 1.1.2 - resolution: "is-boolean-object@npm:1.1.2" +"is-boolean-object@npm:^1.2.1": + version: 1.2.2 + resolution: "is-boolean-object@npm:1.2.2" + dependencies: + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 0415b181e8f1bfd5d3f8a20f8108e64d372a72131674eea9c2923f39d065b6ad08d654765553bdbffbd92c3746f1007986c34087db1bd89a31f71be8359ccdaa + languageName: node + linkType: hard + +"is-bun-module@npm:^2.0.0": + version: 2.0.0 + resolution: "is-bun-module@npm:2.0.0" dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 + semver: ^7.7.1 + checksum: e75bd87cb1aaff7c97cf085509669559a713f741a43b4fd5979cb44c5c0c16c05670ce5f23fc22337d1379211fac118c525c5ed73544076ddaf181c1c21ace35 languageName: node linkType: hard -"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": +"is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac @@ -6403,30 +6092,33 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1": - version: 2.13.1 - resolution: "is-core-module@npm:2.13.1" +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.15.1, is-core-module@npm:^2.16.0": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" dependencies: - hasown: ^2.0.0 - checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c + hasown: ^2.0.2 + checksum: 6ec5b3c42d9cbf1ac23f164b16b8a140c3cec338bf8f884c076ca89950c7cc04c33e78f02b8cae7ff4751f3247e3174b2330f1fe4de194c7210deb8b1ea316a7 languageName: node linkType: hard -"is-data-view@npm:^1.0.1": - version: 1.0.1 - resolution: "is-data-view@npm:1.0.1" +"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": + version: 1.0.2 + resolution: "is-data-view@npm:1.0.2" dependencies: + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 is-typed-array: ^1.1.13 - checksum: 4ba4562ac2b2ec005fefe48269d6bd0152785458cd253c746154ffb8a8ab506a29d0cfb3b74af87513843776a88e4981ae25c89457bf640a33748eab1a7216b5 + checksum: 31600dd19932eae7fd304567e465709ffbfa17fa236427c9c864148e1b54eb2146357fcf3aed9b686dee13c217e1bb5a649cb3b9c479e1004c0648e9febde1b2 languageName: node linkType: hard -"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": - version: 1.0.5 - resolution: "is-date-object@npm:1.0.5" +"is-date-object@npm:^1.0.5, is-date-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-date-object@npm:1.1.0" dependencies: - has-tostringtag: ^1.0.0 - checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: d6c36ab9d20971d65f3fc64cef940d57a4900a2ac85fb488a46d164c2072a33da1cb51eefcc039e3e5c208acbce343d3480b84ab5ff0983f617512da2742562a languageName: node linkType: hard @@ -6444,12 +6136,12 @@ __metadata: languageName: node linkType: hard -"is-finalizationregistry@npm:^1.0.2": - version: 1.0.2 - resolution: "is-finalizationregistry@npm:1.0.2" +"is-finalizationregistry@npm:^1.1.0": + version: 1.1.1 + resolution: "is-finalizationregistry@npm:1.1.1" dependencies: - call-bind: ^1.0.2 - checksum: 4f243a8e06228cd45bdab8608d2cb7abfc20f6f0189c8ac21ea8d603f1f196eabd531ce0bb8e08cbab047e9845ef2c191a3761c9a17ad5cabf8b35499c4ad35d + call-bound: ^1.0.3 + checksum: 38c646c506e64ead41a36c182d91639833311970b6b6c6268634f109eef0a1a9d2f1f2e499ef4cb43c744a13443c4cdd2f0812d5afdcee5e9b65b72b28c48557 languageName: node linkType: hard @@ -6477,11 +6169,14 @@ __metadata: linkType: hard "is-generator-function@npm:^1.0.10": - version: 1.0.10 - resolution: "is-generator-function@npm:1.0.10" + version: 1.1.0 + resolution: "is-generator-function@npm:1.1.0" dependencies: - has-tostringtag: ^1.0.0 - checksum: d54644e7dbaccef15ceb1e5d91d680eb5068c9ee9f9eb0a9e04173eb5542c9b51b5ab52c5537f5703e48d5fddfd376817c1ca07a84a407b7115b769d4bdde72b + call-bound: ^1.0.3 + get-proto: ^1.0.0 + has-tostringtag: ^1.0.2 + safe-regex-test: ^1.1.0 + checksum: f7f7276131bdf7e28169b86ac55a5b080012a597f9d85a0cbef6fe202a7133fa450a3b453e394870e3cb3685c5a764c64a9f12f614684b46969b1e6f297bed6b languageName: node linkType: hard @@ -6511,40 +6206,20 @@ __metadata: languageName: node linkType: hard -"is-lambda@npm:^1.0.1": - version: 1.0.1 - resolution: "is-lambda@npm:1.0.1" - checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 - languageName: node - linkType: hard - -"is-map@npm:^2.0.1": - version: 2.0.2 - resolution: "is-map@npm:2.0.2" - checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728 - languageName: node - linkType: hard - -"is-negative-zero@npm:^2.0.2": - version: 2.0.2 - resolution: "is-negative-zero@npm:2.0.2" - checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a - languageName: node - linkType: hard - -"is-negative-zero@npm:^2.0.3": +"is-map@npm:^2.0.3": version: 2.0.3 - resolution: "is-negative-zero@npm:2.0.3" - checksum: c1e6b23d2070c0539d7b36022d5a94407132411d01aba39ec549af824231f3804b1aea90b5e4e58e807a65d23ceb538ed6e355ce76b267bdd86edb757ffcbdcd + resolution: "is-map@npm:2.0.3" + checksum: e6ce5f6380f32b141b3153e6ba9074892bbbbd655e92e7ba5ff195239777e767a976dcd4e22f864accaf30e53ebf961ab1995424aef91af68788f0591b7396cc languageName: node linkType: hard -"is-number-object@npm:^1.0.4": - version: 1.0.7 - resolution: "is-number-object@npm:1.0.7" +"is-number-object@npm:^1.1.1": + version: 1.1.1 + resolution: "is-number-object@npm:1.1.1" dependencies: - has-tostringtag: ^1.0.0 - checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 6517f0a0e8c4b197a21afb45cd3053dc711e79d45d8878aa3565de38d0102b130ca8732485122c7b336e98c27dacd5236854e3e6526e0eb30cae64956535662f languageName: node linkType: hard @@ -6555,7 +6230,7 @@ __metadata: languageName: node linkType: hard -"is-path-inside@npm:^3.0.2, is-path-inside@npm:^3.0.3": +"is-path-inside@npm:^3.0.2": version: 3.0.3 resolution: "is-path-inside@npm:3.0.3" checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 @@ -6569,38 +6244,31 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.1.4": - version: 1.1.4 - resolution: "is-regex@npm:1.1.4" +"is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" dependencies: - call-bind: ^1.0.2 - has-tostringtag: ^1.0.0 - checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 - languageName: node - linkType: hard - -"is-set@npm:^2.0.1": - version: 2.0.2 - resolution: "is-set@npm:2.0.2" - checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57 + call-bound: ^1.0.2 + gopd: ^1.2.0 + has-tostringtag: ^1.0.2 + hasown: ^2.0.2 + checksum: 99ee0b6d30ef1bb61fa4b22fae7056c6c9b3c693803c0c284ff7a8570f83075a7d38cda53b06b7996d441215c27895ea5d1af62124562e13d91b3dbec41a5e13 languageName: node linkType: hard -"is-shared-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "is-shared-array-buffer@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a +"is-set@npm:^2.0.3": + version: 2.0.3 + resolution: "is-set@npm:2.0.3" + checksum: 36e3f8c44bdbe9496c9689762cc4110f6a6a12b767c5d74c0398176aa2678d4467e3bf07595556f2dba897751bde1422480212b97d973c7b08a343100b0c0dfe languageName: node linkType: hard -"is-shared-array-buffer@npm:^1.0.3": - version: 1.0.3 - resolution: "is-shared-array-buffer@npm:1.0.3" +"is-shared-array-buffer@npm:^1.0.4": + version: 1.0.4 + resolution: "is-shared-array-buffer@npm:1.0.4" dependencies: - call-bind: ^1.0.7 - checksum: a4fff602c309e64ccaa83b859255a43bb011145a42d3f56f67d9268b55bc7e6d98a5981a1d834186ad3105d6739d21547083fe7259c76c0468483fc538e716d8 + call-bound: ^1.0.3 + checksum: 1611fedc175796eebb88f4dfc393dd969a4a8e6c69cadaff424ee9d4464f9f026399a5f84a90f7c62d6d7ee04e3626a912149726de102b0bd6c1ee6a9868fa5a languageName: node linkType: hard @@ -6618,30 +6286,33 @@ __metadata: languageName: node linkType: hard -"is-string@npm:^1.0.5, is-string@npm:^1.0.7": - version: 1.0.7 - resolution: "is-string@npm:1.0.7" +"is-string@npm:^1.0.7, is-string@npm:^1.1.1": + version: 1.1.1 + resolution: "is-string@npm:1.1.1" dependencies: - has-tostringtag: ^1.0.0 - checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 2eeaaff605250f5e836ea3500d33d1a5d3aa98d008641d9d42fb941e929ffd25972326c2ef912987e54c95b6f10416281aaf1b35cdf81992cfb7524c5de8e193 languageName: node linkType: hard -"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": - version: 1.0.4 - resolution: "is-symbol@npm:1.0.4" +"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1": + version: 1.1.1 + resolution: "is-symbol@npm:1.1.1" dependencies: - has-symbols: ^1.0.2 - checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 + call-bound: ^1.0.2 + has-symbols: ^1.1.0 + safe-regex-test: ^1.1.0 + checksum: bfafacf037af6f3c9d68820b74be4ae8a736a658a3344072df9642a090016e281797ba8edbeb1c83425879aae55d1cb1f30b38bf132d703692b2570367358032 languageName: node linkType: hard -"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.12, is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.9": - version: 1.1.13 - resolution: "is-typed-array@npm:1.1.13" +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "is-typed-array@npm:1.1.15" dependencies: - which-typed-array: ^1.1.14 - checksum: 150f9ada183a61554c91e1c4290086d2c100b0dff45f60b028519be72a8db964da403c48760723bf5253979b8dffe7b544246e0e5351dcd05c5fdb1dcc1dc0f0 + which-typed-array: ^1.1.16 + checksum: ea7cfc46c282f805d19a9ab2084fd4542fed99219ee9dbfbc26284728bd713a51eac66daa74eca00ae0a43b61322920ba334793607dc39907465913e921e0892 languageName: node linkType: hard @@ -6659,29 +6330,29 @@ __metadata: languageName: node linkType: hard -"is-weakmap@npm:^2.0.1": - version: 2.0.1 - resolution: "is-weakmap@npm:2.0.1" - checksum: 1222bb7e90c32bdb949226e66d26cb7bce12e1e28e3e1b40bfa6b390ba3e08192a8664a703dff2a00a84825f4e022f9cd58c4599ff9981ab72b1d69479f4f7f6 +"is-weakmap@npm:^2.0.2": + version: 2.0.2 + resolution: "is-weakmap@npm:2.0.2" + checksum: f36aef758b46990e0d3c37269619c0a08c5b29428c0bb11ecba7f75203442d6c7801239c2f31314bc79199217ef08263787f3837d9e22610ad1da62970d6616d languageName: node linkType: hard -"is-weakref@npm:^1.0.2": - version: 1.0.2 - resolution: "is-weakref@npm:1.0.2" +"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.0": + version: 1.1.1 + resolution: "is-weakref@npm:1.1.1" dependencies: - call-bind: ^1.0.2 - checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de + call-bound: ^1.0.3 + checksum: 1769b9aed5d435a3a989ffc18fc4ad1947d2acdaf530eb2bd6af844861b545047ea51102f75901f89043bed0267ed61d914ee21e6e8b9aa734ec201cdfc0726f languageName: node linkType: hard -"is-weakset@npm:^2.0.1": - version: 2.0.2 - resolution: "is-weakset@npm:2.0.2" +"is-weakset@npm:^2.0.3": + version: 2.0.4 + resolution: "is-weakset@npm:2.0.4" dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.1.1 - checksum: 5d8698d1fa599a0635d7ca85be9c26d547b317ed8fd83fc75f03efbe75d50001b5eececb1e9971de85fcde84f69ae6f8346bc92d20d55d46201d328e4c74a367 + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: 5c6c8415a06065d78bdd5e3a771483aa1cd928df19138aa73c4c51333226f203f22117b4325df55cc8b3085a6716870a320c2d757efee92d7a7091a039082041 languageName: node linkType: hard @@ -6798,25 +6469,26 @@ __metadata: linkType: hard "istanbul-reports@npm:^3.0.2": - version: 3.1.6 - resolution: "istanbul-reports@npm:3.1.6" + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" dependencies: html-escaper: ^2.0.0 istanbul-lib-report: ^3.0.0 - checksum: 44c4c0582f287f02341e9720997f9e82c071627e1e862895745d5f52ec72c9b9f38e1d12370015d2a71dcead794f34c7732aaef3fab80a24bc617a21c3d911d6 + checksum: 2072db6e07bfbb4d0eb30e2700250636182398c1af811aea5032acb219d2080f7586923c09fa194029efd6b92361afb3dcbe1ebcc3ee6651d13340f7c6c4ed95 languageName: node linkType: hard -"iterator.prototype@npm:^1.1.2": - version: 1.1.2 - resolution: "iterator.prototype@npm:1.1.2" +"iterator.prototype@npm:^1.1.4": + version: 1.1.5 + resolution: "iterator.prototype@npm:1.1.5" dependencies: - define-properties: ^1.2.1 - get-intrinsic: ^1.2.1 - has-symbols: ^1.0.3 - reflect.getprototypeof: ^1.0.4 - set-function-name: ^2.0.1 - checksum: d8a507e2ccdc2ce762e8a1d3f4438c5669160ac72b88b648e59a688eec6bc4e64b22338e74000518418d9e693faf2a092d2af21b9ec7dbf7763b037a54701168 + define-data-property: ^1.1.4 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.6 + get-proto: ^1.0.0 + has-symbols: ^1.1.0 + set-function-name: ^2.0.2 + checksum: 7db23c42629ba4790e6e15f78b555f41dbd08818c85af306988364bd19d86716a1187cb333444f3a0036bfc078a0e9cb7ec67fef3a61662736d16410d7f77869 languageName: node linkType: hard @@ -6827,25 +6499,25 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^2.3.5": - version: 2.3.6 - resolution: "jackspeak@npm:2.3.6" +"jackspeak@npm:^3.1.2": + version: 3.4.3 + resolution: "jackspeak@npm:3.4.3" dependencies: "@isaacs/cliui": ^8.0.2 "@pkgjs/parseargs": ^0.11.0 dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 + checksum: be31027fc72e7cc726206b9f560395604b82e0fddb46c4cbf9f97d049bcef607491a5afc0699612eaa4213ca5be8fd3e1e7cd187b3040988b65c9489838a7c00 languageName: node linkType: hard -"jiti@npm:^1.21.0": - version: 1.21.6 - resolution: "jiti@npm:1.21.6" +"jiti@npm:^1.21.6": + version: 1.21.7 + resolution: "jiti@npm:1.21.7" bin: jiti: bin/jiti.js - checksum: 9ea4a70a7bb950794824683ed1c632e2ede26949fbd348e2ba5ec8dc5efa54dc42022d85ae229cadaa60d4b95012e80ea07d625797199b688cc22ab0e8891d32 + checksum: 9cd20dabf82e3a4cceecb746a69381da7acda93d34eed0cdb9c9bdff3bce07e4f2f4a016ca89924392c935297d9aedc58ff9f7d3281bc5293319ad244926e0b7 languageName: node linkType: hard @@ -6896,6 +6568,13 @@ __metadata: languageName: node linkType: hard +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 944f924f2bd67ad533b3850eee47603eed0f6ae425fd1ee8c760f477e8c34a05f144c1bd4f5a5dd1963141dc79a2c55f89ccc5ab77d039e7077f3ad196b64965 + languageName: node + linkType: hard + "jsbn@npm:~0.1.0": version: 0.1.1 resolution: "jsbn@npm:0.1.1" @@ -6903,12 +6582,12 @@ __metadata: languageName: node linkType: hard -"jsesc@npm:^2.5.1": - version: 2.5.2 - resolution: "jsesc@npm:2.5.2" +"jsesc@npm:^3.0.2": + version: 3.1.0 + resolution: "jsesc@npm:3.1.0" bin: jsesc: bin/jsesc - checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d + checksum: 19c94095ea026725540c0d29da33ab03144f6bcf2d4159e4833d534976e99e0c09c38cefa9a575279a51fc36b31166f8d6d05c9fe2645d5f15851d690b41f17f languageName: node linkType: hard @@ -7037,24 +6716,10 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:^2.1.0": - version: 2.1.0 - resolution: "lilconfig@npm:2.1.0" - checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 - languageName: node - linkType: hard - -"lilconfig@npm:^3.0.0": - version: 3.0.0 - resolution: "lilconfig@npm:3.0.0" - checksum: a155f1cd24d324ab20dd6974db9ebcf3fb6f2b60175f7c052d917ff8a746b590bc1ee550f6fc3cb1e8716c8b58304e22fe2193febebc0cf16fa86d85e6f896c5 - languageName: node - linkType: hard - -"lilconfig@npm:~3.1.2": - version: 3.1.2 - resolution: "lilconfig@npm:3.1.2" - checksum: 4e8b83ddd1d0ad722600994e6ba5d858ddca14f0587aa6b9c8185e17548149b5e13d4d583d811e9e9323157fa8c6a527e827739794c7502b59243c58e210b8c3 +"lilconfig@npm:^3.0.0, lilconfig@npm:^3.1.3": + version: 3.1.3 + resolution: "lilconfig@npm:3.1.3" + checksum: 644eb10830350f9cdc88610f71a921f510574ed02424b57b0b3abb66ea725d7a082559552524a842f4e0272c196b88dfe1ff7d35ffcc6f45736777185cd67c9a languageName: node linkType: hard @@ -7066,22 +6731,22 @@ __metadata: linkType: hard "lint-staged@npm:^15.2.9": - version: 15.2.9 - resolution: "lint-staged@npm:15.2.9" - dependencies: - chalk: ~5.3.0 - commander: ~12.1.0 - debug: ~4.3.6 - execa: ~8.0.1 - lilconfig: ~3.1.2 - listr2: ~8.2.4 - micromatch: ~4.0.7 - pidtree: ~0.6.0 - string-argv: ~0.3.2 - yaml: ~2.5.0 + version: 15.5.0 + resolution: "lint-staged@npm:15.5.0" + dependencies: + chalk: ^5.4.1 + commander: ^13.1.0 + debug: ^4.4.0 + execa: ^8.0.1 + lilconfig: ^3.1.3 + listr2: ^8.2.5 + micromatch: ^4.0.8 + pidtree: ^0.6.0 + string-argv: ^0.3.2 + yaml: ^2.7.0 bin: lint-staged: bin/lint-staged.js - checksum: 7f804c24d0374b48d26f11a051342141b84c9954f77225bab5ae221b1e4d47a72f722f39b13169267592c28b2614ad39f9722fd86bc4cdfdf93e8601ff66b0e1 + checksum: 9d5854d1bef3b0b604b3c10e56f73ee49026ff700e5f9497522c852356b25a0a43f9897e9e336ed99bf91e6bde978279f6a6d59b9b94716c1dd6d46b6ddad462 languageName: node linkType: hard @@ -7106,9 +6771,9 @@ __metadata: languageName: node linkType: hard -"listr2@npm:~8.2.4": - version: 8.2.4 - resolution: "listr2@npm:8.2.4" +"listr2@npm:^8.2.5": + version: 8.3.1 + resolution: "listr2@npm:8.3.1" dependencies: cli-truncate: ^4.0.0 colorette: ^2.0.20 @@ -7116,7 +6781,7 @@ __metadata: log-update: ^6.1.0 rfdc: ^1.4.1 wrap-ansi: ^9.0.0 - checksum: b1cdcae653ff967a9b28637e346df2d6614165b4ad1e9e36b1403bc972550c51f57ec0e6d307dc3921ceea0601e244e848ab79457c6d570ab1f088b577a63d90 + checksum: fe6fa1d2282daca515a71be3d770cab42192189b32b8c4a2269442ba1063a32f7df87a3c98cf73b58dc21487e49408ec5006e870eb120fda95618a6cb6bb8967 languageName: node linkType: hard @@ -7219,19 +6884,17 @@ __metadata: languageName: node linkType: hard -"loupe@npm:^3.1.0, loupe@npm:^3.1.1": - version: 3.1.1 - resolution: "loupe@npm:3.1.1" - dependencies: - get-func-name: ^2.0.1 - checksum: c7efa6bc6d71f25ca03eb13c9a069e35ed86799e308ca27a7a3eff8cdf9500e7c22d1f2411468d154a8e960e91e5e685e0c6c83e96db748f177c1adf30811153 +"loupe@npm:^3.1.0, loupe@npm:^3.1.2": + version: 3.1.3 + resolution: "loupe@npm:3.1.3" + checksum: 9b2530b1d5a44d2c9fc5241f97ea00296dca257173c535b4832bc31f9516e10387991feb5b3fff23df116c8fcf907ce3980f82b215dcc5d19cde17ce9b9ec3e1 languageName: node linkType: hard -"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.2.0 - resolution: "lru-cache@npm:10.2.0" - checksum: eee7ddda4a7475deac51ac81d7dd78709095c6fa46e8350dc2d22462559a1faa3b81ed931d5464b13d48cbd7e08b46100b6f768c76833912bc444b99c37e25db +"lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a languageName: node linkType: hard @@ -7254,21 +6917,12 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: ^4.0.0 - checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 - languageName: node - linkType: hard - -"magic-string@npm:^0.30.10": - version: 0.30.11 - resolution: "magic-string@npm:0.30.11" +"magic-string@npm:^0.30.12": + version: 0.30.17 + resolution: "magic-string@npm:0.30.17" dependencies: "@jridgewell/sourcemap-codec": ^1.5.0 - checksum: e041649453c9a3f31d2e731fc10e38604d50e20d3585cd48bc7713a6e2e1a3ad3012105929ca15750d59d0a3f1904405e4b95a23b7e69dc256db3c277a73a3ca + checksum: f4b4ed17c5ada64f77fc98491847302ebad64894a905c417c943840c0384662118c9b37f9f68bb86add159fa4749ff6f118c4627d69a470121b46731f8debc6d languageName: node linkType: hard @@ -7297,47 +6951,54 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^13.0.0": - version: 13.0.0 - resolution: "make-fetch-happen@npm:13.0.0" +"make-fetch-happen@npm:^14.0.3": + version: 14.0.3 + resolution: "make-fetch-happen@npm:14.0.3" dependencies: - "@npmcli/agent": ^2.0.0 - cacache: ^18.0.0 + "@npmcli/agent": ^3.0.0 + cacache: ^19.0.1 http-cache-semantics: ^4.1.1 - is-lambda: ^1.0.1 minipass: ^7.0.2 - minipass-fetch: ^3.0.0 + minipass-fetch: ^4.0.0 minipass-flush: ^1.0.5 minipass-pipeline: ^1.2.4 - negotiator: ^0.6.3 + negotiator: ^1.0.0 + proc-log: ^5.0.0 promise-retry: ^2.0.1 - ssri: ^10.0.0 - checksum: 7c7a6d381ce919dd83af398b66459a10e2fe8f4504f340d1d090d3fa3d1b0c93750220e1d898114c64467223504bd258612ba83efbc16f31b075cd56de24b4af + ssri: ^12.0.0 + checksum: 6fb2fee6da3d98f1953b03d315826b5c5a4ea1f908481afc113782d8027e19f080c85ae998454de4e5f27a681d3ec58d57278f0868d4e0b736f51d396b661691 languageName: node linkType: hard "markdown-table@npm:^3.0.0": - version: 3.0.3 - resolution: "markdown-table@npm:3.0.3" - checksum: 8fcd3d9018311120fbb97115987f8b1665a603f3134c93fbecc5d1463380c8036f789e2a62c19432058829e594fff8db9ff81c88f83690b2f8ed6c074f8d9e10 + version: 3.0.4 + resolution: "markdown-table@npm:3.0.4" + checksum: bc24b177cbb3ef170cb38c9f191476aa63f7236ebc8980317c5e91b5bf98c8fb471cf46d8920478c5e770d7f4337326f6b5b3efbf0687c2044fd332d7a64dfcb + languageName: node + linkType: hard + +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 0e513b29d120f478c85a70f49da0b8b19bc638975eca466f2eeae0071f3ad00454c621bf66e16dd435896c208e719fc91ad79bbfba4e400fe0b372e7c1c9c9a2 languageName: node linkType: hard "mdast-util-find-and-replace@npm:^3.0.0": - version: 3.0.1 - resolution: "mdast-util-find-and-replace@npm:3.0.1" + version: 3.0.2 + resolution: "mdast-util-find-and-replace@npm:3.0.2" dependencies: "@types/mdast": ^4.0.0 escape-string-regexp: ^5.0.0 unist-util-is: ^6.0.0 unist-util-visit-parents: ^6.0.0 - checksum: 05d5c4ff02e31db2f8a685a13bcb6c3f44e040bd9dfa54c19a232af8de5268334c8755d79cb456ed4cced1300c4fb83e88444c7ae8ee9ff16869a580f29d08cd + checksum: 00dde8aaf87d065034b911bdae20d17c107f5103c6ba5a3d117598c847ce005c6b03114b5603e0d07cc61fefcbb05bdb9f66100efeaa0278dbd80eda1087595f languageName: node linkType: hard "mdast-util-from-markdown@npm:^2.0.0": - version: 2.0.1 - resolution: "mdast-util-from-markdown@npm:2.0.1" + version: 2.0.2 + resolution: "mdast-util-from-markdown@npm:2.0.2" dependencies: "@types/mdast": ^4.0.0 "@types/unist": ^3.0.0 @@ -7351,7 +7012,7 @@ __metadata: micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 unist-util-stringify-position: ^4.0.0 - checksum: 2e50be71272a1503558c599cd5766cf2743935a021f82e32bc2ae5da44f6c7dcabb9da3a6eee76ede0ec8ad2b122d1192f4fe89890aac90c76463f049f8a835d + checksum: 1ad19f48b30ac6e0cb756070c210c78ad93c26876edfb3f75127783bc6df8b9402016d8f3e9964f3d1d5430503138ec65c145e869438727e1aa7f3cebf228fba languageName: node linkType: hard @@ -7369,15 +7030,15 @@ __metadata: linkType: hard "mdast-util-gfm-footnote@npm:^2.0.0": - version: 2.0.0 - resolution: "mdast-util-gfm-footnote@npm:2.0.0" + version: 2.1.0 + resolution: "mdast-util-gfm-footnote@npm:2.1.0" dependencies: "@types/mdast": ^4.0.0 devlop: ^1.1.0 mdast-util-from-markdown: ^2.0.0 mdast-util-to-markdown: ^2.0.0 micromark-util-normalize-identifier: ^2.0.0 - checksum: 45d26b40e7a093712e023105791129d76e164e2168d5268e113298a22de30c018162683fb7893cdc04ab246dac0087eed708b2a136d1d18ed2b32b3e0cae4a79 + checksum: a23c5531d63b254b46cbcb063b5731f56ccc9d1f038a17fa66d3994255868604a2b963f24e0f5b16dd3374743622afafcfe0c98cf90548d485bdc426ba77c618 languageName: node linkType: hard @@ -7418,8 +7079,8 @@ __metadata: linkType: hard "mdast-util-gfm@npm:^3.0.0": - version: 3.0.0 - resolution: "mdast-util-gfm@npm:3.0.0" + version: 3.1.0 + resolution: "mdast-util-gfm@npm:3.1.0" dependencies: mdast-util-from-markdown: ^2.0.0 mdast-util-gfm-autolink-literal: ^2.0.0 @@ -7428,13 +7089,13 @@ __metadata: mdast-util-gfm-table: ^2.0.0 mdast-util-gfm-task-list-item: ^2.0.0 mdast-util-to-markdown: ^2.0.0 - checksum: 62039d2f682ae3821ea1c999454863d31faf94d67eb9b746589c7e136076d7fb35fabc67e02f025c7c26fd7919331a0ee1aabfae24f565d9a6a9ebab3371c626 + checksum: ecdadc0b46608d03eea53366cfee8c9441ddacc49fe4e12934eff8fea06f9377d2679d9d9e43177295c09c8d7def5f48d739f99b0f6144a0e228a77f5a1c76bc languageName: node linkType: hard "mdast-util-mdx-expression@npm:^2.0.0": - version: 2.0.0 - resolution: "mdast-util-mdx-expression@npm:2.0.0" + version: 2.0.1 + resolution: "mdast-util-mdx-expression@npm:2.0.1" dependencies: "@types/estree-jsx": ^1.0.0 "@types/hast": ^3.0.0 @@ -7442,13 +7103,13 @@ __metadata: devlop: ^1.0.0 mdast-util-from-markdown: ^2.0.0 mdast-util-to-markdown: ^2.0.0 - checksum: 4e1183000e183e07a7264e192889b4fd57372806103031c71b9318967f85fd50a5dd0f92ef14f42c331e77410808f5de3341d7bc8ad4ee91b7fa8f0a30043a8a + checksum: 6af56b06bde3ab971129db9855dcf0d31806c70b3b052d7a90a5499a366b57ffd0c2efca67d281c448c557298ba7e3e61bd07133733b735440840dd339b28e19 languageName: node linkType: hard "mdast-util-mdx-jsx@npm:^3.0.0": - version: 3.1.2 - resolution: "mdast-util-mdx-jsx@npm:3.1.2" + version: 3.2.0 + resolution: "mdast-util-mdx-jsx@npm:3.2.0" dependencies: "@types/estree-jsx": ^1.0.0 "@types/hast": ^3.0.0 @@ -7460,10 +7121,9 @@ __metadata: mdast-util-to-markdown: ^2.0.0 parse-entities: ^4.0.0 stringify-entities: ^4.0.0 - unist-util-remove-position: ^5.0.0 unist-util-stringify-position: ^4.0.0 vfile-message: ^4.0.0 - checksum: 33cb8a657702d5bb8d3f658d158f448c45147664cdb2475501a1c467e3a167d75842546296a06f758f07cce4d2a6ba1add405dbdb6caa145a6980c9782e411e2 + checksum: 224f5f6ad247f0f2622ee36c82ac7a4c6a60c31850de4056bf95f531bd2f7ec8943ef34dfe8a8375851f65c07e4913c4f33045d703df4ff4d11b2de5a088f7f9 languageName: node linkType: hard @@ -7509,18 +7169,19 @@ __metadata: linkType: hard "mdast-util-to-markdown@npm:^2.0.0": - version: 2.1.0 - resolution: "mdast-util-to-markdown@npm:2.1.0" + version: 2.1.2 + resolution: "mdast-util-to-markdown@npm:2.1.2" 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 - checksum: 3a2cf3957e23b34e2e092e6e76ae72ee0b8745955bd811baba6814cf3a3d916c3fd52264b4b58f3bb3d512a428f84a1e998b6fc7e28434e388a9ae8fb6a9c173 + checksum: 288d152bd50c00632e6e01c610bb904a220d1e226c8086c40627877959746f83ab0b872f4150cb7d910198953b1bf756e384ac3fee3e7b0ddb4517f9084c5803 languageName: node linkType: hard @@ -7555,8 +7216,8 @@ __metadata: linkType: hard "micromark-core-commonmark@npm:^2.0.0": - version: 2.0.1 - resolution: "micromark-core-commonmark@npm:2.0.1" + version: 2.0.3 + resolution: "micromark-core-commonmark@npm:2.0.3" dependencies: decode-named-character-reference: ^1.0.0 devlop: ^1.0.0 @@ -7574,7 +7235,7 @@ __metadata: micromark-util-subtokenize: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 6a9891cc883a531e090dc8dab6669945f3df9448e84216a8f2a91f9258281e6abea5ae3940fde2bd77a57dc3e0d67f2add6762aed63a378f37b09eaf7e7426c4 + checksum: cfb0fd9c895f86a4e9344f7f0344fe6bd1018945798222835248146a42430b8c7bc0b2857af574cf4e1b4ce4e5c1a35a1479942421492e37baddde8de85814dc languageName: node linkType: hard @@ -7621,15 +7282,15 @@ __metadata: linkType: hard "micromark-extension-gfm-table@npm:^2.0.0": - version: 2.1.0 - resolution: "micromark-extension-gfm-table@npm:2.1.0" + version: 2.1.1 + resolution: "micromark-extension-gfm-table@npm:2.1.1" dependencies: devlop: ^1.0.0 micromark-factory-space: ^2.0.0 micromark-util-character: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 249d695f5f8bd222a0d8a774ec78ea2a2d624cb50a4d008092a54aa87dad1f9d540e151d29696cf849eb1cee380113c4df722aebb3b425a214832a2de5dea1d7 + checksum: 16a59c8c2381c8418d9cf36c605abb0b66cfebaad07e09c4c9b113298d13e0c517b652885529fcb74d149afec3f6e8ab065fd27a900073d5ec0a1d8f0c51b593 languageName: node linkType: hard @@ -7672,195 +7333,195 @@ __metadata: linkType: hard "micromark-factory-destination@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-factory-destination@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-factory-destination@npm:2.0.1" dependencies: micromark-util-character: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: d36e65ed1c072ff4148b016783148ba7c68a078991154625723e24bda3945160268fb91079fb28618e1613c2b6e70390a8ddc544c45410288aa27b413593071a + checksum: 9c4baa9ca2ed43c061bbf40ddd3d85154c2a0f1f485de9dea41d7dd2ad994ebb02034a003b2c1dbe228ba83a0576d591f0e90e0bf978713f84ee7d7f3aa98320 languageName: node linkType: hard "micromark-factory-label@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-factory-label@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-factory-label@npm:2.0.1" dependencies: devlop: ^1.0.0 micromark-util-character: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: c021dbd0ed367610d35f2bae21209bc804d1a6d1286ffce458fd6a717f4d7fe581a7cba7d5c2d7a63757c44eb927c80d6a571d6ea7969fae1b48ab6461d109c4 + checksum: bd03f5a75f27cdbf03b894ddc5c4480fc0763061fecf9eb927d6429233c930394f223969a99472df142d570c831236134de3dc23245d23d9f046f9d0b623b5c2 languageName: node linkType: hard "micromark-factory-space@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-factory-space@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-factory-space@npm:2.0.1" dependencies: micromark-util-character: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 4ffdcdc2f759887bbb356500cb460b3915ecddcb5d85c3618d7df68ad05d13ed02b1153ee1845677b7d8126df8f388288b84fcf0d943bd9c92bcc71cd7222e37 + checksum: 1bd68a017c1a66f4787506660c1e1c5019169aac3b1cb075d49ac5e360e0b2065e984d4e1d6e9e52a9d44000f2fa1c98e66a743d7aae78b4b05616bf3242ed71 languageName: node linkType: hard "micromark-factory-title@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-factory-title@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-factory-title@npm:2.0.1" 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 - checksum: 39e1ac23af3554e6e652e56065579bc7faf21ade7b8704b29c175871b4152b7109b790bb3cae0f7e088381139c6bac9553b8400772c3d322e4fa635f813a3578 + checksum: b4d2e4850a8ba0dff25ce54e55a3eb0d43dda88a16293f53953153288f9d84bcdfa8ca4606b2cfbb4f132ea79587bbb478a73092a349f893f5264fbcdbce2ee1 languageName: node linkType: hard "micromark-factory-whitespace@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-factory-whitespace@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-factory-whitespace@npm:2.0.1" 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 - checksum: 9587c2546d1a58b4d5472b42adf05463f6212d0449455285662d63cd8eaed89c6b159ac82713fcee5f9dd88628c24307d9533cccd8971a2f3f4d48702f8f850a + checksum: 67b3944d012a42fee9e10e99178254a04d48af762b54c10a50fcab988688799993efb038daf9f5dbc04001a97b9c1b673fc6f00e6a56997877ab25449f0c8650 languageName: node linkType: hard "micromark-util-character@npm:^2.0.0": - version: 2.1.0 - resolution: "micromark-util-character@npm:2.1.0" + version: 2.1.1 + resolution: "micromark-util-character@npm:2.1.1" dependencies: micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 36ee910f84077cf16626fa618cfe46ac25956b3242e3166b8e8e98c5a8c524af7e5bf3d70822264b1fd2d297a36104a7eb7e3462c19c28353eaca7b0d8717594 + checksum: e9e409efe4f2596acd44587e8591b722bfc041c1577e8fe0d9c007a4776fb800f9b3637a22862ad2ba9489f4bdf72bb547fce5767dbbfe0a5e6760e2a21c6495 languageName: node linkType: hard "micromark-util-chunked@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-chunked@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-chunked@npm:2.0.1" dependencies: micromark-util-symbol: ^2.0.0 - checksum: 324f95cccdae061332a8241936eaba6ef0782a1e355bac5c607ad2564fd3744929be7dc81651315a2921535747a33243e6a5606bcb64b7a56d49b6d74ea1a3d4 + checksum: f8cb2a67bcefe4bd2846d838c97b777101f0043b9f1de4f69baf3e26bb1f9885948444e3c3aec66db7595cad8173bd4567a000eb933576c233d54631f6323fe4 languageName: node linkType: hard "micromark-util-classify-character@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-classify-character@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-classify-character@npm:2.0.1" dependencies: micromark-util-character: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 086e52904deffebb793fb1c08c94aabb8901f76958142dfc3a6282890ebaa983b285e69bd602b9d507f1b758ed38e75a994d2ad9fbbefa7de2584f67a16af405 + checksum: 4d8bbe3a6dbf69ac0fc43516866b5bab019fe3f4568edc525d4feaaaf78423fa54e6b6732b5bccbeed924455279a3758ffc9556954aafb903982598a95a02704 languageName: node linkType: hard "micromark-util-combine-extensions@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-combine-extensions@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-combine-extensions@npm:2.0.1" dependencies: micromark-util-chunked: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 107c47700343f365b4ed81551e18bc3458b573c500e56ac052b2490bd548adc475216e41d2271633a8867fac66fc22ba3e0a2d74a31ed79b9870ca947eb4e3ba + checksum: 5d22fb9ee37e8143adfe128a72b50fa09568c2cc553b3c76160486c96dbbb298c5802a177a10a215144a604b381796071b5d35be1f2c2b2ee17995eda92f0c8e languageName: node linkType: hard "micromark-util-decode-numeric-character-reference@npm:^2.0.0": - version: 2.0.1 - resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.1" + version: 2.0.2 + resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.2" dependencies: micromark-util-symbol: ^2.0.0 - checksum: 9512507722efd2033a9f08715eeef787fbfe27e23edf55db21423d46d82ab46f76c89b4f960be3f5e50a2d388d89658afc0647989cf256d051e9ea01277a1adb + checksum: ee11c8bde51e250e302050474c4a2adca094bca05c69f6cdd241af12df285c48c88d19ee6e022b9728281c280be16328904adca994605680c43af56019f4b0b6 languageName: node linkType: hard "micromark-util-decode-string@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-decode-string@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-decode-string@npm:2.0.1" 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 - checksum: a75daf32a4a6b549e9f19b4d833ebfeb09a32a9a1f9ce50f35dec6b6a3e4f9f121f49024ba7f9c91c55ebe792f7c7a332fc9604795181b6a612637df0df5b959 + checksum: e9546ae53f9b5a4f9aa6aaf3e750087100d3429485ca80dbacec99ff2bb15a406fa7d93784a0fc2fe05ad7296b9295e75160ef71faec9e90110b7be2ae66241a languageName: node linkType: hard "micromark-util-encode@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-encode@npm:2.0.0" - checksum: 853a3f33fce72aaf4ffa60b7f2b6fcfca40b270b3466e1b96561b02185d2bd8c01dd7948bc31a24ac014f4cc854e545ca9a8e9cf7ea46262f9d24c9e88551c66 + version: 2.0.1 + resolution: "micromark-util-encode@npm:2.0.1" + checksum: be890b98e78dd0cdd953a313f4148c4692cc2fb05533e56fef5f421287d3c08feee38ca679f318e740530791fc251bfe8c80efa926fcceb4419b269c9343d226 languageName: node linkType: hard "micromark-util-html-tag-name@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-html-tag-name@npm:2.0.0" - checksum: d786d4486f93eb0ac5b628779809ca97c5dc60f3c9fc03eb565809831db181cf8cb7f05f9ac76852f3eb35461af0f89fa407b46f3a03f4f97a96754d8dc540d8 + version: 2.0.1 + resolution: "micromark-util-html-tag-name@npm:2.0.1" + checksum: dea365f5ad28ad74ff29fcb581f7b74fc1f80271c5141b3b2bc91c454cbb6dfca753f28ae03730d657874fcbd89d0494d0e3965dfdca06d9855f467c576afa9d languageName: node linkType: hard "micromark-util-normalize-identifier@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-normalize-identifier@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-normalize-identifier@npm:2.0.1" dependencies: micromark-util-symbol: ^2.0.0 - checksum: b36da2d3fd102053dadd953ce5c558328df12a63a8ac0e5aad13d4dda8e43b6a5d4a661baafe0a1cd8a260bead4b4a8e6e0e74193dd651e8484225bd4f4e68aa + checksum: 1eb9a289d7da067323df9fdc78bfa90ca3207ad8fd893ca02f3133e973adcb3743b233393d23d95c84ccaf5d220ae7f5a28402a644f135dcd4b8cfa60a7b5f84 languageName: node linkType: hard "micromark-util-resolve-all@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-resolve-all@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-resolve-all@npm:2.0.1" dependencies: micromark-util-types: ^2.0.0 - checksum: 31fe703b85572cb3f598ebe32750e59516925c7ff1f66cfe6afaebe0771a395a9eaa770787f2523d3c46082ea80e6c14f83643303740b3d650af7c96ebd30ccc + checksum: 9275f3ddb6c26f254dd2158e66215d050454b279707a7d9ce5a3cd0eba23201021cedcb78ae1a746c1b23227dcc418ee40dd074ade195359506797a5493550cc languageName: node linkType: hard "micromark-util-sanitize-uri@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-sanitize-uri@npm:2.0.0" + version: 2.0.1 + resolution: "micromark-util-sanitize-uri@npm:2.0.1" dependencies: micromark-util-character: ^2.0.0 micromark-util-encode: ^2.0.0 micromark-util-symbol: ^2.0.0 - checksum: ea4c28bbffcf2430e9aff2d18554296789a8b0a1f54ac24020d1dde76624a7f93e8f2a83e88cd5a846b6d2c4287b71b1142d1b89fa7f1b0363a9b33711a141fe + checksum: d01517840c17de67aaa0b0f03bfe05fac8a41d99723cd8ce16c62f6810e99cd3695364a34c335485018e5e2c00e69031744630a1b85c6868aa2f2ca1b36daa2f languageName: node linkType: hard "micromark-util-subtokenize@npm:^2.0.0": - version: 2.0.1 - resolution: "micromark-util-subtokenize@npm:2.0.1" + version: 2.1.0 + resolution: "micromark-util-subtokenize@npm:2.1.0" dependencies: devlop: ^1.0.0 micromark-util-chunked: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: 5d338883ad8889c63f9b262b9cae0c02a42088201981d820ae7af7aa6d38fab6585b89fd4cf2206a46a7c4002e41ee6c70e1a3e0ceb3ad8b7adcffaf166b1511 + checksum: 2e194bc8a5279d256582020500e5072a95c1094571be49043704343032e1fffbe09c862ef9c131cf5c762e296ddb54ff8bc767b3786a798524a68d1db6942934 languageName: node linkType: hard "micromark-util-symbol@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-symbol@npm:2.0.0" - checksum: fa4a05bff575d9fbf0ad96a1013003e3bb6087ed6b34b609a141b6c0d2137b57df594aca409a95f4c5fda199f227b56a7d8b1f82cea0768df161d8a3a3660764 + version: 2.0.1 + resolution: "micromark-util-symbol@npm:2.0.1" + checksum: fb7346950550bc85a55793dda94a8b3cb3abc068dbd7570d1162db7aee803411d06c0a5de4ae59cd945f46143bdeadd4bba02a02248fa0d18cc577babaa00044 languageName: node linkType: hard "micromark-util-types@npm:^2.0.0": - version: 2.0.0 - resolution: "micromark-util-types@npm:2.0.0" - checksum: 819fef3ab5770c37893d2a60381fb2694396c8d22803b6e103c830c3a1bc1490363c2b0470bb2acaaddad776dfbc2fc1fcfde39cb63c4f54d95121611672e3d0 + version: 2.0.2 + resolution: "micromark-util-types@npm:2.0.2" + checksum: 884f7974839e4bc6d2bd662e57c973a9164fd5c0d8fe16cddf07472b86a7e6726747c00674952c0321d17685d700cd3295e9f58a842a53acdf6c6d55ab051aab languageName: node linkType: hard "micromark@npm:^4.0.0": - version: 4.0.0 - resolution: "micromark@npm:4.0.0" + version: 4.0.2 + resolution: "micromark@npm:4.0.2" dependencies: "@types/debug": ^4.0.0 debug: ^4.0.0 @@ -7879,21 +7540,11 @@ __metadata: micromark-util-subtokenize: ^2.0.0 micromark-util-symbol: ^2.0.0 micromark-util-types: ^2.0.0 - checksum: b84ab5ab1a0b28c063c52e9c2c9d7d44b954507235c10c9492d66e0b38f7de24bf298f914a1fbdf109f2a57a88cf0412de217c84cfac5fd60e3e42a74dbac085 - languageName: node - linkType: hard - -"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": - version: 4.0.5 - resolution: "micromatch@npm:4.0.5" - dependencies: - braces: ^3.0.2 - picomatch: ^2.3.1 - checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + checksum: 5306c15dd12f543755bc627fc361d4255dfc430e7af6069a07ac0eacc338fbd761fe8e93f02a8bfab6097bab12ee903192fe31389222459d5029242a5aaba3b8 languageName: node linkType: hard -"micromatch@npm:~4.0.7": +"micromatch@npm:^4.0.8": version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: @@ -7958,15 +7609,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.1": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: ^2.0.1 - checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 - languageName: node - linkType: hard - "minimatch@npm:^9.0.4": version: 9.0.5 resolution: "minimatch@npm:9.0.5" @@ -7992,18 +7634,18 @@ __metadata: languageName: node linkType: hard -"minipass-fetch@npm:^3.0.0": - version: 3.0.4 - resolution: "minipass-fetch@npm:3.0.4" +"minipass-fetch@npm:^4.0.0": + version: 4.0.1 + resolution: "minipass-fetch@npm:4.0.1" dependencies: encoding: ^0.1.13 minipass: ^7.0.3 minipass-sized: ^1.0.3 - minizlib: ^2.1.2 + minizlib: ^3.0.1 dependenciesMeta: encoding: optional: true - checksum: af7aad15d5c128ab1ebe52e043bdf7d62c3c6f0cecb9285b40d7b395e1375b45dcdfd40e63e93d26a0e8249c9efd5c325c65575aceee192883970ff8cb11364a + checksum: 3dfca705ce887ca9ff14d73e8d8593996dea1a1ecd8101fdbb9c10549d1f9670bc8fb66ad0192769ead4c2dc01b4f9ca1cf567ded365adff17827a303b948140 languageName: node linkType: hard @@ -8043,36 +7685,19 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass@npm:5.0.0" - checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea - languageName: node - linkType: hard - -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": - version: 7.0.4 - resolution: "minipass@npm:7.0.4" - checksum: 87585e258b9488caf2e7acea242fd7856bbe9a2c84a7807643513a338d66f368c7d518200ad7b70a508664d408aa000517647b2930c259a8b1f9f0984f344a21 +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 languageName: node linkType: hard -"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": - version: 2.1.2 - resolution: "minizlib@npm:2.1.2" +"minizlib@npm:^3.0.1": + version: 3.0.2 + resolution: "minizlib@npm:3.0.2" dependencies: - minipass: ^3.0.0 - yallist: ^4.0.0 - checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 - languageName: node - linkType: hard - -"mkdirp@npm:^1.0.3": - version: 1.0.4 - resolution: "mkdirp@npm:1.0.4" - bin: - mkdirp: bin/cmd.js - checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + minipass: ^7.1.2 + checksum: 493bed14dcb6118da7f8af356a8947cf1473289c09658e5aabd69a737800a8c3b1736fb7d7931b722268a9c9bc038a6d53c049b6a6af24b34a121823bb709996 languageName: node linkType: hard @@ -8110,14 +7735,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.2": - version: 2.1.2 - resolution: "ms@npm:2.1.2" - checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f - languageName: node - linkType: hard - -"ms@npm:^2.1.1": +"ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d @@ -8135,12 +7753,12 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.3.7": - version: 3.3.7 - resolution: "nanoid@npm:3.3.7" +"nanoid@npm:^3.3.8": + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" bin: nanoid: bin/nanoid.cjs - checksum: d36c427e530713e4ac6567d488b489a36582ef89da1d6d4e3b87eded11eb10d7042a877958c6f104929809b2ab0bafa17652b076cdf84324aa75b30b722204f2 + checksum: 3be20d8866a57a6b6d218e82549711c8352ed969f9ab3c45379da28f405363ad4c9aeb0b39e9abc101a529ca65a72ff9502b00bf74a912c4b64a9d62dfd26c29 languageName: node linkType: hard @@ -8151,10 +7769,10 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:^0.6.3": - version: 0.6.3 - resolution: "negotiator@npm:0.6.3" - checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 20ebfe79b2d2e7cf9cbc8239a72662b584f71164096e6e8896c8325055497c96f6b80cd22c258e8a2f2aa382a787795ec3ee8b37b422a302c7d4381b0d5ecfbb languageName: node linkType: hard @@ -8188,22 +7806,22 @@ __metadata: linkType: hard "node-gyp@npm:latest": - version: 10.0.1 - resolution: "node-gyp@npm:10.0.1" + version: 11.2.0 + resolution: "node-gyp@npm:11.2.0" dependencies: env-paths: ^2.2.0 exponential-backoff: ^3.1.1 - glob: ^10.3.10 graceful-fs: ^4.2.6 - make-fetch-happen: ^13.0.0 - nopt: ^7.0.0 - proc-log: ^3.0.0 + make-fetch-happen: ^14.0.3 + nopt: ^8.0.0 + proc-log: ^5.0.0 semver: ^7.3.5 - tar: ^6.1.2 - which: ^4.0.0 + tar: ^7.4.3 + tinyglobby: ^0.2.12 + which: ^5.0.0 bin: node-gyp: bin/node-gyp.js - checksum: 60a74e66d364903ce02049966303a57f898521d139860ac82744a5fdd9f7b7b3b61f75f284f3bfe6e6add3b8f1871ce305a1d41f775c7482de837b50c792223f + checksum: 2536282ba81f8a94b29482d3622b6ab298611440619e46de4512a6f32396a68b5530357c474b859787069d84a4c537d99e0c71078cce5b9f808bf84eeb78e8fb languageName: node linkType: hard @@ -8216,28 +7834,21 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.14": - version: 2.0.14 - resolution: "node-releases@npm:2.0.14" - checksum: 59443a2f77acac854c42d321bf1b43dea0aef55cd544c6a686e9816a697300458d4e82239e2d794ea05f7bbbc8a94500332e2d3ac3f11f52e4b16cbe638b3c41 +"node-releases@npm:^2.0.19": + version: 2.0.19 + resolution: "node-releases@npm:2.0.19" + checksum: 917dbced519f48c6289a44830a0ca6dc944c3ee9243c468ebd8515a41c97c8b2c256edb7f3f750416bc37952cc9608684e6483c7b6c6f39f6bd8d86c52cfe658 languageName: node linkType: hard -"node-releases@npm:^2.0.18": - version: 2.0.18 - resolution: "node-releases@npm:2.0.18" - checksum: ef55a3d853e1269a6d6279b7692cd6ff3e40bc74947945101138745bfdc9a5edabfe72cb19a31a8e45752e1910c4c65c77d931866af6357f242b172b7283f5b3 - languageName: node - linkType: hard - -"nopt@npm:^7.0.0": - version: 7.2.0 - resolution: "nopt@npm:7.2.0" +"nopt@npm:^8.0.0": + version: 8.1.0 + resolution: "nopt@npm:8.1.0" dependencies: - abbrev: ^2.0.0 + abbrev: ^3.0.0 bin: nopt: bin/nopt.js - checksum: a9c0f57fb8cb9cc82ae47192ca2b7ef00e199b9480eed202482c962d61b59a7fbe7541920b2a5839a97b42ee39e288c0aed770e38057a608d7f579389dfde410 + checksum: 49cfd3eb6f565e292bf61f2ff1373a457238804d5a5a63a8d786c923007498cba89f3648e3b952bc10203e3e7285752abf5b14eaf012edb821e84f24e881a92a languageName: node linkType: hard @@ -8277,11 +7888,11 @@ __metadata: linkType: hard "npm-run-path@npm:^5.1.0": - version: 5.2.0 - resolution: "npm-run-path@npm:5.2.0" + version: 5.3.0 + resolution: "npm-run-path@npm:5.3.0" dependencies: path-key: ^4.0.0 - checksum: c5325e016014e715689c4014f7e0be16cc4cbf529f32a1723e511bc4689b5f823b704d2bca61ac152ce2bda65e0205dc8b3ba0ec0f5e4c3e162d302f6f5b9efb + checksum: ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25 languageName: node linkType: hard @@ -8323,8 +7934,8 @@ __metadata: linkType: hard "nyc@npm:^17.0.0": - version: 17.0.0 - resolution: "nyc@npm:17.0.0" + version: 17.1.0 + resolution: "nyc@npm:17.1.0" dependencies: "@istanbuljs/load-nyc-config": ^1.0.0 "@istanbuljs/schema": ^0.1.2 @@ -8333,7 +7944,7 @@ __metadata: decamelize: ^1.2.0 find-cache-dir: ^3.2.0 find-up: ^4.1.0 - foreground-child: ^2.0.0 + foreground-child: ^3.3.0 get-package-type: ^0.1.0 glob: ^7.1.6 istanbul-lib-coverage: ^3.0.0 @@ -8355,7 +7966,7 @@ __metadata: yargs: ^15.0.2 bin: nyc: bin/nyc.js - checksum: e10fe59393ef569745ed4e9026bc5f5e84fe81cac43c82b348c9faad8a1b71fd3a880fb5f379b4be55269d3a541b7c6c14e7b90adb925973ebc9c9593f60a1af + checksum: 725b396a1e2e35fc7c347090c80b48473e4da038c18bef9890c5c1bc42549de6b8400437c286caf8a0fc439f5e2b25327af7a878f121677084be30bc25bcbbbb languageName: node linkType: hard @@ -8373,10 +7984,10 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.13.1, object-inspect@npm:^1.9.0": - version: 1.13.1 - resolution: "object-inspect@npm:1.13.1" - checksum: 7d9fa9221de3311dcb5c7c307ee5dc011cdd31dc43624b7c184b3840514e118e05ef0002be5388304c416c0eb592feb46e983db12577fc47e47d5752fbbfb61f +"object-inspect@npm:^1.13.3": + version: 1.13.4 + resolution: "object-inspect@npm:1.13.4" + checksum: 582810c6a8d2ef988ea0a39e69e115a138dad8f42dd445383b394877e5816eb4268489f316a6f74ee9c4e0a984b3eab1028e3e79d62b1ed67c726661d55c7a8b languageName: node linkType: hard @@ -8387,37 +7998,29 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.4, object.assign@npm:^4.1.5": - version: 4.1.5 - resolution: "object.assign@npm:4.1.5" +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.7": + version: 4.1.7 + resolution: "object.assign@npm:4.1.7" dependencies: - call-bind: ^1.0.5 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 - has-symbols: ^1.0.3 + es-object-atoms: ^1.0.0 + has-symbols: ^1.1.0 object-keys: ^1.1.1 - checksum: f9aeac0541661370a1fc86e6a8065eb1668d3e771f7dbb33ee54578201336c057b21ee61207a186dd42db0c62201d91aac703d20d12a79fc79c353eed44d4e25 + checksum: 60e07d2651cf4f5528c485f1aa4dbded9b384c47d80e8187cefd11320abb1aebebf78df5483451dfa549059f8281c21f7b4bf7d19e9e5e97d8d617df0df298de languageName: node linkType: hard -"object.entries@npm:^1.1.8": - version: 1.1.8 - resolution: "object.entries@npm:1.1.8" +"object.entries@npm:^1.1.9": + version: 1.1.9 + resolution: "object.entries@npm:1.1.9" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.4 define-properties: ^1.2.1 - es-object-atoms: ^1.0.0 - checksum: 5314877cb637ef3437a30bba61d9bacdb3ce74bf73ac101518be0633c37840c8cc67407edb341f766e8093b3d7516d5c3358f25adfee4a2c697c0ec4c8491907 - languageName: node - linkType: hard - -"object.fromentries@npm:^2.0.7": - version: 2.0.7 - resolution: "object.fromentries@npm:2.0.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 7341ce246e248b39a431b87a9ddd331ff52a454deb79afebc95609f94b1f8238966cf21f52188f2a353f0fdf83294f32f1ebf1f7826aae915ebad21fd0678065 + es-object-atoms: ^1.1.1 + checksum: 0ab2ef331c4d6a53ff600a5d69182948d453107c3a1f7fd91bc29d387538c2aba21d04949a74f57c21907208b1f6fb175567fd1f39f1a7a4046ba1bca762fb41 languageName: node linkType: hard @@ -8433,38 +8036,26 @@ __metadata: languageName: node linkType: hard -"object.groupby@npm:^1.0.1": - version: 1.0.2 - resolution: "object.groupby@npm:1.0.2" +"object.groupby@npm:^1.0.3": + version: 1.0.3 + resolution: "object.groupby@npm:1.0.3" dependencies: - array.prototype.filter: ^1.0.3 - call-bind: ^1.0.5 + call-bind: ^1.0.7 define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.0.0 - checksum: 5f95c2a3a5f60a1a8c05fdd71455110bd3d5e6af0350a20b133d8cd70f9c3385d5c7fceb6a17b940c3c61752d9c202d10d5e2eb5ce73b89002656a87e7bf767a - languageName: node - linkType: hard - -"object.values@npm:^1.1.6, object.values@npm:^1.1.7": - version: 1.1.7 - resolution: "object.values@npm:1.1.7" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: f3e4ae4f21eb1cc7cebb6ce036d4c67b36e1c750428d7b7623c56a0db90edced63d08af8a316d81dfb7c41a3a5fa81b05b7cc9426e98d7da986b1682460f0777 + es-abstract: ^1.23.2 + checksum: 0d30693ca3ace29720bffd20b3130451dca7a56c612e1926c0a1a15e4306061d84410bdb1456be2656c5aca53c81b7a3661eceaa362db1bba6669c2c9b6d1982 languageName: node linkType: hard -"object.values@npm:^1.2.0": - version: 1.2.0 - resolution: "object.values@npm:1.2.0" +"object.values@npm:^1.1.6, object.values@npm:^1.2.0, object.values@npm:^1.2.1": + version: 1.2.1 + resolution: "object.values@npm:1.2.1" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 es-object-atoms: ^1.0.0 - checksum: 51fef456c2a544275cb1766897f34ded968b22adfc13ba13b5e4815fdaf4304a90d42a3aee114b1f1ede048a4890381d47a5594d84296f2767c6a0364b9da8fa + checksum: f9b9a2a125ccf8ded29414d7c056ae0d187b833ee74919821fc60d7e216626db220d9cb3cf33f965c84aaaa96133626ca13b80f3c158b673976dc8cfcfcd26bb languageName: node linkType: hard @@ -8505,16 +8096,16 @@ __metadata: linkType: hard "optionator@npm:^0.9.3": - version: 0.9.3 - resolution: "optionator@npm:0.9.3" + version: 0.9.4 + resolution: "optionator@npm:0.9.4" dependencies: - "@aashutoshrathi/word-wrap": ^1.2.3 deep-is: ^0.1.3 fast-levenshtein: ^2.0.6 levn: ^0.4.1 prelude-ls: ^1.2.1 type-check: ^0.4.0 - checksum: 09281999441f2fe9c33a5eeab76700795365a061563d66b098923eb719251a42bdbe432790d35064d0816ead9296dbeb1ad51a733edf4167c96bd5d0882e428a + word-wrap: ^1.2.5 + checksum: ecbd010e3dc73e05d239976422d9ef54a82a13f37c11ca5911dff41c98a6c7f0f163b27f922c37e7f8340af9d36febd3b6e9cef508f3339d4c393d7276d716bb languageName: node linkType: hard @@ -8549,6 +8140,17 @@ __metadata: languageName: node linkType: hard +"own-keys@npm:^1.0.1": + version: 1.0.1 + resolution: "own-keys@npm:1.0.1" + dependencies: + get-intrinsic: ^1.2.6 + object-keys: ^1.1.1 + safe-push-apply: ^1.0.0 + checksum: cc9dd7d85c4ccfbe8109fce307d581ac7ede7b26de892b537873fbce2dc6a206d89aea0630dbb98e47ce0873517cefeaa7be15fcf94aaf4764a3b34b474a5b61 + languageName: node + linkType: hard + "p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" @@ -8603,6 +8205,13 @@ __metadata: languageName: node linkType: hard +"p-map@npm:^7.0.2": + version: 7.0.3 + resolution: "p-map@npm:7.0.3" + checksum: 8c92d533acf82f0d12f7e196edccff773f384098bbb048acdd55a08778ce4fc8889d8f1bde72969487bd96f9c63212698d79744c20bedfce36c5b00b46d369f8 + languageName: node + linkType: hard + "p-try@npm:^2.0.0": version: 2.2.0 resolution: "p-try@npm:2.2.0" @@ -8622,6 +8231,13 @@ __metadata: languageName: node linkType: hard +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602 + languageName: node + linkType: hard + "parent-module@npm:^1.0.0": version: 1.0.1 resolution: "parent-module@npm:1.0.1" @@ -8632,18 +8248,17 @@ __metadata: linkType: hard "parse-entities@npm:^4.0.0": - version: 4.0.1 - resolution: "parse-entities@npm:4.0.1" + version: 4.0.2 + resolution: "parse-entities@npm:4.0.2" dependencies: "@types/unist": ^2.0.0 - character-entities: ^2.0.0 character-entities-legacy: ^3.0.0 character-reference-invalid: ^2.0.0 decode-named-character-reference: ^1.0.0 is-alphanumerical: ^2.0.0 is-decimal: ^2.0.0 is-hexadecimal: ^2.0.0 - checksum: 32a6ff5b9acb9d2c4d71537308521fd265e685b9215691df73feedd9edfe041bb6da9f89bd0c35c4a2bc7d58e3e76e399bb6078c2fd7d2a343ff1dd46edbf1bd + checksum: db22b46da1a62af00409c929ac49fbd306b5ebf0dbacf4646d2ae2b58616ef90a40eedc282568a3cf740fac2a7928bc97146973a628f6977ca274dedc2ad6edc languageName: node linkType: hard @@ -8694,13 +8309,13 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.10.1": - version: 1.10.1 - resolution: "path-scurry@npm:1.10.1" +"path-scurry@npm:^1.11.1": + version: 1.11.1 + resolution: "path-scurry@npm:1.11.1" dependencies: - lru-cache: ^9.1.1 || ^10.0.0 + lru-cache: ^10.2.0 minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: e2557cff3a8fb8bc07afdd6ab163a92587884f9969b05bbbaf6fe7379348bfb09af9ed292af12ed32398b15fb443e81692047b786d1eeb6d898a51eb17ed7d90 + checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 languageName: node linkType: hard @@ -8739,17 +8354,10 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^1.0.0": - version: 1.0.0 - resolution: "picocolors@npm:1.0.0" - checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 - languageName: node - linkType: hard - -"picocolors@npm:^1.0.1": - version: 1.0.1 - resolution: "picocolors@npm:1.0.1" - checksum: fa68166d1f56009fc02a34cdfd112b0dd3cf1ef57667ac57281f714065558c01828cdf4f18600ad6851cbe0093952ed0660b1e0156bddf2184b6aaf5817553a5 +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 languageName: node linkType: hard @@ -8760,7 +8368,14 @@ __metadata: languageName: node linkType: hard -"pidtree@npm:~0.6.0": +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: a7a5188c954f82c6585720e9143297ccd0e35ad8072231608086ca950bee672d51b0ef676254af0788205e59bd4e4deb4e7708769226bed725bf13370a7d1464 + languageName: node + linkType: hard + +"pidtree@npm:^0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" bin: @@ -8777,9 +8392,9 @@ __metadata: linkType: hard "pirates@npm:^4.0.1": - version: 4.0.6 - resolution: "pirates@npm:4.0.6" - checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 + version: 4.0.7 + resolution: "pirates@npm:4.0.7" + checksum: 3dcbaff13c8b5bc158416feb6dc9e49e3c6be5fddc1ea078a05a73ef6b85d79324bbb1ef59b954cdeff000dbf000c1d39f32dc69310c7b78fbada5171b583e40 languageName: node linkType: hard @@ -8793,9 +8408,9 @@ __metadata: linkType: hard "possible-typed-array-names@npm:^1.0.0": - version: 1.0.0 - resolution: "possible-typed-array-names@npm:1.0.0" - checksum: b32d403ece71e042385cc7856385cecf1cd8e144fa74d2f1de40d1e16035dba097bc189715925e79b67bdd1472796ff168d3a90d296356c9c94d272d5b95f3ae + version: 1.1.0 + resolution: "possible-typed-array-names@npm:1.1.0" + checksum: cfcd4f05264eee8fd184cd4897a17890561d1d473434b43ab66ad3673d9c9128981ec01e0cb1d65a52cd6b1eebfb2eae1e53e39b2e0eca86afc823ede7a4f41b languageName: node linkType: hard @@ -8836,7 +8451,7 @@ __metadata: languageName: node linkType: hard -"postcss-load-config@npm:^4.0.1": +"postcss-load-config@npm:^4.0.2": version: 4.0.2 resolution: "postcss-load-config@npm:4.0.2" dependencies: @@ -8854,24 +8469,24 @@ __metadata: languageName: node linkType: hard -"postcss-nested@npm:^6.0.1": - version: 6.0.1 - resolution: "postcss-nested@npm:6.0.1" +"postcss-nested@npm:^6.2.0": + version: 6.2.0 + resolution: "postcss-nested@npm:6.2.0" dependencies: - postcss-selector-parser: ^6.0.11 + postcss-selector-parser: ^6.1.1 peerDependencies: postcss: ^8.2.14 - checksum: 7ddb0364cd797de01e38f644879189e0caeb7ea3f78628c933d91cc24f327c56d31269384454fc02ecaf503b44bfa8e08870a7c4cc56b23bc15640e1894523fa + checksum: 2c86ecf2d0ce68f27c87c7e24ae22dc6dd5515a89fcaf372b2627906e11f5c1f36e4a09e4c15c20fd4a23d628b3d945c35839f44496fbee9a25866258006671b languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.11": - version: 6.0.15 - resolution: "postcss-selector-parser@npm:6.0.15" +"postcss-selector-parser@npm:^6.1.1, postcss-selector-parser@npm:^6.1.2": + version: 6.1.2 + resolution: "postcss-selector-parser@npm:6.1.2" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: 57decb94152111004f15e27b9c61131eb50ee10a3288e7fcf424cebbb4aba82c2817517ae718f8b5d704ee9e02a638d4a2acff8f47685c295a33ecee4fd31055 + checksum: ce9440fc42a5419d103f4c7c1847cb75488f3ac9cbe81093b408ee9701193a509f664b4d10a2b4d82c694ee7495e022f8f482d254f92b7ffd9ed9dea696c6f84 languageName: node linkType: hard @@ -8882,25 +8497,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.4.23, postcss@npm:^8.4.32": - version: 8.4.34 - resolution: "postcss@npm:8.4.34" - dependencies: - nanoid: ^3.3.7 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: 46c32b51810a23060288c86fdb5195237c497f952c674167fd1cbb3f0c628389a3fd48ae0b289447e5368b4abbc95f81e2d318bfdc5554063b2a7e8192e1a540 - languageName: node - linkType: hard - -"postcss@npm:^8.4.41": - version: 8.4.41 - resolution: "postcss@npm:8.4.41" +"postcss@npm:^8.4.41, postcss@npm:^8.4.43, postcss@npm:^8.4.47": + version: 8.5.3 + resolution: "postcss@npm:8.5.3" dependencies: - nanoid: ^3.3.7 - picocolors: ^1.0.1 - source-map-js: ^1.2.0 - checksum: f865894929eb0f7fc2263811cc853c13b1c75103028b3f4f26df777e27b201f1abe21cb4aa4c2e901c80a04f6fb325ee22979688fe55a70e2ea82b0a517d3b6f + nanoid: ^3.3.8 + picocolors: ^1.1.1 + source-map-js: ^1.2.1 + checksum: da574620eb84ff60e65e1d8fc6bd5ad87a19101a23d0aba113c653434161543918229a0f673d89efb3b6d4906287eb04b957310dbcf4cbebacad9d1312711461 languageName: node linkType: hard @@ -8912,14 +8516,14 @@ __metadata: linkType: hard "prettier-plugin-tailwindcss@npm:^0.6.6": - version: 0.6.6 - resolution: "prettier-plugin-tailwindcss@npm:0.6.6" + version: 0.6.11 + resolution: "prettier-plugin-tailwindcss@npm:0.6.11" peerDependencies: "@ianvs/prettier-plugin-sort-imports": "*" "@prettier/plugin-pug": "*" "@shopify/prettier-plugin-liquid": "*" "@trivago/prettier-plugin-sort-imports": "*" - "@zackad/prettier-plugin-twig-melody": "*" + "@zackad/prettier-plugin-twig": "*" prettier: ^3.0 prettier-plugin-astro: "*" prettier-plugin-css-order: "*" @@ -8941,7 +8545,7 @@ __metadata: optional: true "@trivago/prettier-plugin-sort-imports": optional: true - "@zackad/prettier-plugin-twig-melody": + "@zackad/prettier-plugin-twig": optional: true prettier-plugin-astro: optional: true @@ -8965,16 +8569,16 @@ __metadata: optional: true prettier-plugin-svelte: optional: true - checksum: b78a1a9c47e23f8ff1fb61456f8b0710eabce573f0d644cde6480e103a5d4c2b266ad09e890604a3bb8703669b304efdd2ac3cd1db47beae95792c212b513585 + checksum: b626a09248e94d39b0ac26fe26323503faaf11aeae9a741b8a93ed65ee27ac12eadc00fa8f7113a0c54f88df59aa0136e4efb830d47ab204808a21b16e7d9b84 languageName: node linkType: hard "prettier@npm:^3.3.3": - version: 3.3.3 - resolution: "prettier@npm:3.3.3" + version: 3.5.3 + resolution: "prettier@npm:3.5.3" bin: prettier: bin/prettier.cjs - checksum: bc8604354805acfdde6106852d14b045bb20827ad76a5ffc2455b71a8257f94de93f17f14e463fe844808d2ccc87248364a5691488a3304f1031326e62d9276e + checksum: 61e97bb8e71a95d8f9c71f1fd5229c9aaa9d1e184dedb12399f76aa802fb6fdc8954ecac9df25a7f82ee7311cf8ddbd06baf5507388fc98e5b44036cc6a88a1b languageName: node linkType: hard @@ -8985,19 +8589,19 @@ __metadata: languageName: node linkType: hard -"proc-log@npm:^3.0.0": - version: 3.0.0 - resolution: "proc-log@npm:3.0.0" - checksum: 02b64e1b3919e63df06f836b98d3af002b5cd92655cab18b5746e37374bfb73e03b84fe305454614b34c25b485cc687a9eebdccf0242cda8fda2475dd2c97e02 +"proc-log@npm:^5.0.0": + version: 5.0.0 + resolution: "proc-log@npm:5.0.0" + checksum: c78b26ecef6d5cce4a7489a1e9923d7b4b1679028c8654aef0463b27f4a90b0946cd598f55799da602895c52feb085ec76381d007ab8dcceebd40b89c2f9dfe0 languageName: node linkType: hard "process-on-spawn@npm:^1.0.0": - version: 1.0.0 - resolution: "process-on-spawn@npm:1.0.0" + version: 1.1.0 + resolution: "process-on-spawn@npm:1.1.0" dependencies: fromentries: ^1.2.0 - checksum: 597769e3db6a8e2cb1cd64a952bbc150220588debac31c7cf1a9f620ce981e25583d8d70848d8a14953577608512984a8808c3be77e09af8ebdcdc14ec23a295 + checksum: 3621c774784f561879ff0ae52b1ad06465278e8fcaa7144fe4daab7f481edfa81c51894356d497c29c4026c5efe04540932400209fe53180f32c4743cd572069 languageName: node linkType: hard @@ -9043,10 +8647,10 @@ __metadata: languageName: node linkType: hard -"property-information@npm:^6.0.0": - version: 6.4.1 - resolution: "property-information@npm:6.4.1" - checksum: d9eece5f14b6fea9e6a1fa65fba88554956a58825eb9a5c8327bffee06bcc265117eaeae901871e8e8a5caec8d5e05ce39ab6872d5cef3b49a6f07815b6ef285 +"property-information@npm:^7.0.0": + version: 7.0.0 + resolution: "property-information@npm:7.0.0" + checksum: c12fbaf841d9e7ea2215139ec53a7fe848b1a214d486623b64b7b56de3e4e601ec8211b0fb10dabda86de67ae06aaa328d9bdafe9c6b64e7f23d78f0dbf4bbfc languageName: node linkType: hard @@ -9071,43 +8675,29 @@ __metadata: languageName: node linkType: hard -"psl@npm:^1.1.33": - version: 1.9.0 - resolution: "psl@npm:1.9.0" - checksum: 20c4277f640c93d393130673f392618e9a8044c6c7bf61c53917a0fddb4952790f5f362c6c730a9c32b124813e173733f9895add8d26f566ed0ea0654b2e711d - languageName: node - linkType: hard - "pump@npm:^3.0.0": - version: 3.0.0 - resolution: "pump@npm:3.0.0" + version: 3.0.2 + resolution: "pump@npm:3.0.2" dependencies: end-of-stream: ^1.1.0 once: ^1.3.1 - checksum: e42e9229fba14732593a718b04cb5e1cfef8254544870997e0ecd9732b189a48e1256e4e5478148ecb47c8511dca2b09eae56b4d0aad8009e6fac8072923cfc9 + checksum: e0c4216874b96bd25ddf31a0b61a5613e26cc7afa32379217cf39d3915b0509def3565f5f6968fafdad2894c8bbdbd67d340e84f3634b2a29b950cffb6442d9f languageName: node linkType: hard -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": +"punycode@npm:^2.1.0": version: 2.3.1 resolution: "punycode@npm:2.3.1" checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 languageName: node linkType: hard -"qs@npm:6.10.4": - version: 6.10.4 - resolution: "qs@npm:6.10.4" +"qs@npm:6.14.0": + version: 6.14.0 + resolution: "qs@npm:6.14.0" dependencies: - side-channel: ^1.0.4 - checksum: 31e4fedd759d01eae52dde6692abab175f9af3e639993c5caaa513a2a3607b34d8058d3ae52ceeccf37c3025f22ed5e90e9ddd6c2537e19c0562ddd10dc5b1eb - languageName: node - linkType: hard - -"querystringify@npm:^2.1.1": - version: 2.2.0 - resolution: "querystringify@npm:2.2.0" - checksum: 5641ea231bad7ef6d64d9998faca95611ed4b11c2591a8cae741e178a974f6a8e0ebde008475259abe1621cb15e692404e6b6626e927f7b849d5c09392604b15 + side-channel: ^1.1.0 + checksum: 189b52ad4e9a0da1a16aff4c58b2a554a8dad9bd7e287c7da7446059b49ca2e33a49e570480e8be406b87fccebf134f51c373cbce36c8c83859efa0c9b71d635 languageName: node linkType: hard @@ -9138,15 +8728,15 @@ __metadata: linkType: hard "react-dropzone@npm:^14.2.3": - version: 14.2.3 - resolution: "react-dropzone@npm:14.2.3" + version: 14.3.8 + resolution: "react-dropzone@npm:14.3.8" dependencies: - attr-accept: ^2.2.2 - file-selector: ^0.6.0 + attr-accept: ^2.2.4 + file-selector: ^2.1.0 prop-types: ^15.8.1 peerDependencies: react: ">= 16.8 || 18.0.0" - checksum: 174b744d5ca898cf3d84ec1aeb6cef5211c446697e45dc8ece8287a03d291f8d07253206d5a1247ef156fd385d65e7de666d4d5c2986020b8543b8f2434e8b40 + checksum: c80ef459fe478f79aa48878f41404f43718602b2ade8416ff824914259cdd6ce1eb9ae8f02fa9769215c49ce98b8ab2c89cf6b0a00c0a7937aa3888471d67d98 languageName: node linkType: hard @@ -9158,10 +8748,11 @@ __metadata: linkType: hard "react-markdown@npm:^9.0.1": - version: 9.0.1 - resolution: "react-markdown@npm:9.0.1" + version: 9.1.0 + resolution: "react-markdown@npm:9.1.0" dependencies: "@types/hast": ^3.0.0 + "@types/mdast": ^4.0.0 devlop: ^1.0.0 hast-util-to-jsx-runtime: ^2.0.0 html-url-attributes: ^3.0.0 @@ -9174,7 +8765,7 @@ __metadata: peerDependencies: "@types/react": ">=18" react: ">=18" - checksum: ca1daa650d48b84a5a9771683cdb3f3d2d418247ce0faf73ede3207c65f2a21cdebb9df37afda67f6fc8f0f0a7b9ce00eb239781954a4d6c7ad88ea4df068add + checksum: d78ca3b6bea23a3383d067ad8eb0aec3a22a4500663f32773be45ad38572b5f1b823184fafc85c1a35ff6290bddea42b003dc7bdfc02cf20a9e0163ecd3ea605 languageName: node linkType: hard @@ -9186,32 +8777,32 @@ __metadata: linkType: hard "react-router-dom@npm:^6.26.1": - version: 6.26.1 - resolution: "react-router-dom@npm:6.26.1" + version: 6.30.0 + resolution: "react-router-dom@npm:6.30.0" dependencies: - "@remix-run/router": 1.19.1 - react-router: 6.26.1 + "@remix-run/router": 1.23.0 + react-router: 6.30.0 peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: e393ab62e3239585d44d598e6bc8cc138ac8353f3dc46262680c6ad83dea35773662ada2f1c353921a05c37d1f369c0a2cb097848a6210689e9b6076550c7de0 + checksum: e1172127e52c4585397e7312e59e15f6547004f4d6f73631f1a991417a9ad7e272eb11ba248fcc7a9aeb93e7c425ebb2f959f54c7b01c7b119d13f94192c5e74 languageName: node linkType: hard -"react-router@npm:6.26.1, react-router@npm:^6.26.1": - version: 6.26.1 - resolution: "react-router@npm:6.26.1" +"react-router@npm:6.30.0, react-router@npm:^6.26.1": + version: 6.30.0 + resolution: "react-router@npm:6.30.0" dependencies: - "@remix-run/router": 1.19.1 + "@remix-run/router": 1.23.0 peerDependencies: react: ">=16.8" - checksum: 810949febc1bf2a6f8dd65f4c0532a2413d0532df462b3e78891aec81dca5a088d387b32c9922cde52bd9770f32263590993cab2383c94ddc1cdb50a20fd7adc + checksum: 35fe773f62b1943cf5ae65056e5d1acbfba50a572a908699881889f073639d42e0d839df107af48a7a058254d59505699b5d68831a714fe6d9aafce982403458 languageName: node linkType: hard "react-select@npm:^5.8.0": - version: 5.8.0 - resolution: "react-select@npm:5.8.0" + version: 5.10.1 + resolution: "react-select@npm:5.10.1" dependencies: "@babel/runtime": ^7.12.0 "@emotion/cache": ^11.4.0 @@ -9221,24 +8812,24 @@ __metadata: memoize-one: ^6.0.0 prop-types: ^15.6.0 react-transition-group: ^4.3.0 - use-isomorphic-layout-effect: ^1.1.2 + use-isomorphic-layout-effect: ^1.2.0 peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: c8398cc0aefb5ee5438b6176c86676e2d3fed7457c16b0769f423a0da0ae431a7df25c2cadf13b709700882b8ebd80a58b1e557fec3e22ad3cbf60164ca9e745 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + checksum: b3050e46936416b024a8e76821beeb8b4275c1835db689aaaf1c8c3cae8afdade17a1711b53b63c72109b1c12711d64234285ea1468e95aaf33d5e6b0bb356e3 languageName: node linkType: hard "react-tooltip@npm:^5.28.0": - version: 5.28.0 - resolution: "react-tooltip@npm:5.28.0" + version: 5.28.1 + resolution: "react-tooltip@npm:5.28.1" dependencies: "@floating-ui/dom": ^1.6.1 classnames: ^2.3.0 peerDependencies: react: ">=16.14.0" react-dom: ">=16.14.0" - checksum: 4d1efae0fbd39ec7f1414bb325582cca2f7541a8d464b61bf3a7c5e119821868aa2d47c28509e7ea3cca844a9655feb56fc466def0edaa8db07ce427146ef3b0 + checksum: dce1fb5c144f97b8bcecf81ba65c0737d5ba1d09cdca552b93426784ae5421da09e94e970da6452a1f9fe0487c3d3216d0b66e6371d70e72384be785dbabb210 languageName: node linkType: hard @@ -9284,18 +8875,19 @@ __metadata: languageName: node linkType: hard -"reflect.getprototypeof@npm:^1.0.4": - version: 1.0.5 - resolution: "reflect.getprototypeof@npm:1.0.5" +"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.9": + version: 1.0.10 + resolution: "reflect.getprototypeof@npm:1.0.10" dependencies: - call-bind: ^1.0.5 + call-bind: ^1.0.8 define-properties: ^1.2.1 - es-abstract: ^1.22.3 - es-errors: ^1.0.0 - get-intrinsic: ^1.2.3 - globalthis: ^1.0.3 - which-builtin-type: ^1.1.3 - checksum: c7176be030b89b9e55882f4da3288de5ffd187c528d79870e27d2c8a713a82b3fa058ca2d0c9da25f6d61240e2685c42d7daa32cdf3d431d8207ee1b9ed30993 + es-abstract: ^1.23.9 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.7 + get-proto: ^1.0.1 + which-builtin-type: ^1.2.1 + checksum: ccc5debeb66125e276ae73909cecb27e47c35d9bb79d9cc8d8d055f008c58010ab8cb401299786e505e4aab733a64cba9daf5f312a58e96a43df66adad221870 languageName: node linkType: hard @@ -9306,26 +8898,17 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.1": - version: 1.5.1 - resolution: "regexp.prototype.flags@npm:1.5.1" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - set-function-name: ^2.0.0 - checksum: 869edff00288442f8d7fa4c9327f91d85f3b3acf8cbbef9ea7a220345cf23e9241b6def9263d2c1ebcf3a316b0aa52ad26a43a84aa02baca3381717b3e307f47 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.2": - version: 1.5.2 - resolution: "regexp.prototype.flags@npm:1.5.2" +"regexp.prototype.flags@npm:^1.5.3": + version: 1.5.4 + resolution: "regexp.prototype.flags@npm:1.5.4" dependencies: - call-bind: ^1.0.6 + call-bind: ^1.0.8 define-properties: ^1.2.1 es-errors: ^1.3.0 - set-function-name: ^2.0.1 - checksum: d7f333667d5c564e2d7a97c56c3075d64c722c9bb51b2b4df6822b2e8096d623a5e63088fb4c83df919b6951ef8113841de8b47de7224872fa6838bc5d8a7d64 + get-proto: ^1.0.1 + gopd: ^1.2.0 + set-function-name: ^2.0.2 + checksum: 18cb667e56cb328d2dda569d7f04e3ea78f2683135b866d606538cf7b1d4271f7f749f09608c877527799e6cf350e531368f3c7a20ccd1bb41048a48926bdeeb languageName: node linkType: hard @@ -9339,8 +8922,8 @@ __metadata: linkType: hard "remark-gfm@npm:^4.0.0": - version: 4.0.0 - resolution: "remark-gfm@npm:4.0.0" + version: 4.0.1 + resolution: "remark-gfm@npm:4.0.1" dependencies: "@types/mdast": ^4.0.0 mdast-util-gfm: ^3.0.0 @@ -9348,7 +8931,7 @@ __metadata: remark-parse: ^11.0.0 remark-stringify: ^11.0.0 unified: ^11.0.0 - checksum: 84bea84e388061fbbb697b4b666089f5c328aa04d19dc544c229b607446bc10902e46b67b9594415a1017bbbd7c811c1f0c30d36682c6d1a6718b66a1558261b + checksum: b278f51c4496f15ad868b72bf2eb2066c23a0892b5885544d3a4c233c964d44e51a0efe22d3fb33db4fbac92aefd51bb33453b8e73077b041a12b8269a02c17d languageName: node linkType: hard @@ -9365,15 +8948,15 @@ __metadata: linkType: hard "remark-rehype@npm:^11.0.0": - version: 11.1.0 - resolution: "remark-rehype@npm:11.1.0" + version: 11.1.2 + resolution: "remark-rehype@npm:11.1.2" dependencies: "@types/hast": ^3.0.0 "@types/mdast": ^4.0.0 mdast-util-to-hast: ^13.0.0 unified: ^11.0.0 vfile: ^6.0.0 - checksum: f0c731f0ab92a122e7f9c9bcbd10d6a31fdb99f0ea3595d232ddd9f9d11a308c4ec0aff4d56e1d0d256042dfad7df23b9941e50b5038da29786959a5926814e1 + checksum: 6eab55cb3464ec01d8e002cc9fe02ae57f48162899693fd53b5ba553ac8699dae7b55fce9df7131a5981313b19b495d6fbfa98a9d6bd243e7485591364d9b5b3 languageName: node linkType: hard @@ -9411,13 +8994,6 @@ __metadata: languageName: node linkType: hard -"requires-port@npm:^1.0.0": - version: 1.0.0 - resolution: "requires-port@npm:1.0.0" - checksum: eee0e303adffb69be55d1a214e415cf42b7441ae858c76dfc5353148644f6fd6e698926fc4643f510d5c126d12a705e7c8ed7e38061113bdf37547ab356797ff - languageName: node - linkType: hard - "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -9439,16 +9015,16 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.7, resolve@npm:^1.19.0, resolve@npm:^1.22.2, resolve@npm:^1.22.4": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" +"resolve@npm:^1.1.7, resolve@npm:^1.19.0, resolve@npm:^1.22.4, resolve@npm:^1.22.8": + version: 1.22.10 + resolution: "resolve@npm:1.22.10" dependencies: - is-core-module: ^2.13.0 + is-core-module: ^2.16.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c + checksum: ab7a32ff4046fcd7c6fdd525b24a7527847d03c3650c733b909b01b757f92eb23510afa9cc3e9bf3f26a3e073b48c88c706dfd4c1d2fb4a16a96b73b6328ddcf languageName: node linkType: hard @@ -9465,16 +9041,16 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.22.2#~builtin, resolve@patch:resolve@^1.22.4#~builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=07638b" +"resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.22.8#~builtin": + version: 1.22.10 + resolution: "resolve@patch:resolve@npm%3A1.22.10#~builtin::version=1.22.10&hash=07638b" dependencies: - is-core-module: ^2.13.0 + is-core-module: ^2.16.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847 + checksum: 8aac1e4e4628bd00bf4b94b23de137dd3fe44097a8d528fd66db74484be929936e20c696e1a3edf4488f37e14180b73df6f600992baea3e089e8674291f16c9d languageName: node linkType: hard @@ -9519,20 +9095,13 @@ __metadata: linkType: hard "reusify@npm:^1.0.4": - version: 1.0.4 - resolution: "reusify@npm:1.0.4" - checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc - languageName: node - linkType: hard - -"rfdc@npm:^1.3.0": - version: 1.3.1 - resolution: "rfdc@npm:1.3.1" - checksum: d5d1e930aeac7e0e0a485f97db1356e388bdbeff34906d206fe524dd5ada76e95f186944d2e68307183fdc39a54928d4426bbb6734851692cfe9195efba58b79 + version: 1.1.0 + resolution: "reusify@npm:1.1.0" + checksum: 64cb3142ac5e9ad689aca289585cb41d22521f4571f73e9488af39f6b1bd62f0cbb3d65e2ecc768ec6494052523f473f1eb4b55c3e9014b3590c17fc6a03e22a languageName: node linkType: hard -"rfdc@npm:^1.4.1": +"rfdc@npm:^1.3.0, rfdc@npm:^1.4.1": version: 1.4.1 resolution: "rfdc@npm:1.4.1" checksum: 3b05bd55062c1d78aaabfcea43840cdf7e12099968f368e9a4c3936beb744adb41cbdb315eac6d4d8c6623005d6f87fdf16d8a10e1ff3722e84afea7281c8d13 @@ -9550,24 +9119,31 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.2.0": - version: 4.9.6 - resolution: "rollup@npm:4.9.6" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.9.6 - "@rollup/rollup-android-arm64": 4.9.6 - "@rollup/rollup-darwin-arm64": 4.9.6 - "@rollup/rollup-darwin-x64": 4.9.6 - "@rollup/rollup-linux-arm-gnueabihf": 4.9.6 - "@rollup/rollup-linux-arm64-gnu": 4.9.6 - "@rollup/rollup-linux-arm64-musl": 4.9.6 - "@rollup/rollup-linux-riscv64-gnu": 4.9.6 - "@rollup/rollup-linux-x64-gnu": 4.9.6 - "@rollup/rollup-linux-x64-musl": 4.9.6 - "@rollup/rollup-win32-arm64-msvc": 4.9.6 - "@rollup/rollup-win32-ia32-msvc": 4.9.6 - "@rollup/rollup-win32-x64-msvc": 4.9.6 - "@types/estree": 1.0.5 +"rollup@npm:^4.20.0": + version: 4.39.0 + resolution: "rollup@npm:4.39.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.39.0 + "@rollup/rollup-android-arm64": 4.39.0 + "@rollup/rollup-darwin-arm64": 4.39.0 + "@rollup/rollup-darwin-x64": 4.39.0 + "@rollup/rollup-freebsd-arm64": 4.39.0 + "@rollup/rollup-freebsd-x64": 4.39.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.39.0 + "@rollup/rollup-linux-arm-musleabihf": 4.39.0 + "@rollup/rollup-linux-arm64-gnu": 4.39.0 + "@rollup/rollup-linux-arm64-musl": 4.39.0 + "@rollup/rollup-linux-loongarch64-gnu": 4.39.0 + "@rollup/rollup-linux-powerpc64le-gnu": 4.39.0 + "@rollup/rollup-linux-riscv64-gnu": 4.39.0 + "@rollup/rollup-linux-riscv64-musl": 4.39.0 + "@rollup/rollup-linux-s390x-gnu": 4.39.0 + "@rollup/rollup-linux-x64-gnu": 4.39.0 + "@rollup/rollup-linux-x64-musl": 4.39.0 + "@rollup/rollup-win32-arm64-msvc": 4.39.0 + "@rollup/rollup-win32-ia32-msvc": 4.39.0 + "@rollup/rollup-win32-x64-msvc": 4.39.0 + "@types/estree": 1.0.7 fsevents: ~2.3.2 dependenciesMeta: "@rollup/rollup-android-arm-eabi": @@ -9578,62 +9154,9 @@ __metadata: optional: true "@rollup/rollup-darwin-x64": optional: true - "@rollup/rollup-linux-arm-gnueabihf": - optional: true - "@rollup/rollup-linux-arm64-gnu": - optional: true - "@rollup/rollup-linux-arm64-musl": - optional: true - "@rollup/rollup-linux-riscv64-gnu": - optional: true - "@rollup/rollup-linux-x64-gnu": - optional: true - "@rollup/rollup-linux-x64-musl": - optional: true - "@rollup/rollup-win32-arm64-msvc": - optional: true - "@rollup/rollup-win32-ia32-msvc": - optional: true - "@rollup/rollup-win32-x64-msvc": - optional: true - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: cdc0bdd41ee2d3fe7f01df26f5a85921caf46ffe0ae118b2f3deebdf569e8b1c1800b8eee04960425e67aecbd9ccdd37bcdb92595866adb3968d223a07e9b7e6 - languageName: node - linkType: hard - -"rollup@npm:^4.20.0": - version: 4.21.0 - resolution: "rollup@npm:4.21.0" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.21.0 - "@rollup/rollup-android-arm64": 4.21.0 - "@rollup/rollup-darwin-arm64": 4.21.0 - "@rollup/rollup-darwin-x64": 4.21.0 - "@rollup/rollup-linux-arm-gnueabihf": 4.21.0 - "@rollup/rollup-linux-arm-musleabihf": 4.21.0 - "@rollup/rollup-linux-arm64-gnu": 4.21.0 - "@rollup/rollup-linux-arm64-musl": 4.21.0 - "@rollup/rollup-linux-powerpc64le-gnu": 4.21.0 - "@rollup/rollup-linux-riscv64-gnu": 4.21.0 - "@rollup/rollup-linux-s390x-gnu": 4.21.0 - "@rollup/rollup-linux-x64-gnu": 4.21.0 - "@rollup/rollup-linux-x64-musl": 4.21.0 - "@rollup/rollup-win32-arm64-msvc": 4.21.0 - "@rollup/rollup-win32-ia32-msvc": 4.21.0 - "@rollup/rollup-win32-x64-msvc": 4.21.0 - "@types/estree": 1.0.5 - fsevents: ~2.3.2 - dependenciesMeta: - "@rollup/rollup-android-arm-eabi": - optional: true - "@rollup/rollup-android-arm64": - optional: true - "@rollup/rollup-darwin-arm64": + "@rollup/rollup-freebsd-arm64": optional: true - "@rollup/rollup-darwin-x64": + "@rollup/rollup-freebsd-x64": optional: true "@rollup/rollup-linux-arm-gnueabihf": optional: true @@ -9643,10 +9166,14 @@ __metadata: optional: true "@rollup/rollup-linux-arm64-musl": optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true "@rollup/rollup-linux-powerpc64le-gnu": optional: true "@rollup/rollup-linux-riscv64-gnu": optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true "@rollup/rollup-linux-s390x-gnu": optional: true "@rollup/rollup-linux-x64-gnu": @@ -9663,7 +9190,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 6c3d49345518eb44259c5e4d82357ec6da04e80e7cbd5ec908e006a1d82f220d00b849a19f45cf589a57dbd76a5b4a3f7c1a1215473eb0fdc31bfcaa826e1a06 + checksum: e5205be3107221bc0de467c6f9d2cc4bef18019f5111fa84f24dd640cb1c82c0c46a5f51c052df956fe24bd6a1e34398fb5abe08470f94d29aa7ad08208115e9 languageName: node linkType: hard @@ -9677,35 +9204,24 @@ __metadata: linkType: hard "rxjs@npm:^7.5.1, rxjs@npm:^7.8.1": - version: 7.8.1 - resolution: "rxjs@npm:7.8.1" + version: 7.8.2 + resolution: "rxjs@npm:7.8.2" dependencies: tslib: ^2.1.0 - checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 - languageName: node - linkType: hard - -"safe-array-concat@npm:^1.0.1": - version: 1.1.0 - resolution: "safe-array-concat@npm:1.1.0" - dependencies: - call-bind: ^1.0.5 - get-intrinsic: ^1.2.2 - has-symbols: ^1.0.3 - isarray: ^2.0.5 - checksum: 5c71eaa999168ee7474929f1cd3aae80f486353a651a094d9968936692cf90aa065224929a6486dcda66334a27dce4250a83612f9e0fef6dced1a925d3ac7296 + checksum: 2f233d7c832a6c255dabe0759014d7d9b1c9f1cb2f2f0d59690fd11c883c9826ea35a51740c06ab45b6ade0d9087bde9192f165cba20b6730d344b831ef80744 languageName: node linkType: hard -"safe-array-concat@npm:^1.1.2": - version: 1.1.2 - resolution: "safe-array-concat@npm:1.1.2" +"safe-array-concat@npm:^1.1.3": + version: 1.1.3 + resolution: "safe-array-concat@npm:1.1.3" dependencies: - call-bind: ^1.0.7 - get-intrinsic: ^1.2.4 - has-symbols: ^1.0.3 + call-bind: ^1.0.8 + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 + has-symbols: ^1.1.0 isarray: ^2.0.5 - checksum: a3b259694754ddfb73ae0663829e396977b99ff21cbe8607f35a469655656da8e271753497e59da8a7575baa94d2e684bea3e10ddd74ba046c0c9b4418ffa0c4 + checksum: 00f6a68140e67e813f3ad5e73e6dedcf3e42a9fa01f04d44b0d3f7b1f4b257af876832a9bfc82ac76f307e8a6cc652e3cf95876048a26cbec451847cf6ae3707 languageName: node linkType: hard @@ -9716,25 +9232,24 @@ __metadata: languageName: node linkType: hard -"safe-regex-test@npm:^1.0.0": - version: 1.0.2 - resolution: "safe-regex-test@npm:1.0.2" +"safe-push-apply@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-push-apply@npm:1.0.0" dependencies: - call-bind: ^1.0.5 - get-intrinsic: ^1.2.2 - is-regex: ^1.1.4 - checksum: 4af5ce05a2daa4f6d4bfd5a3c64fc33d6b886f6592122e93c0efad52f7147b9b605e5ffc03c269a1e3d1f8db2a23bc636628a961c9fd65bafdc09503330673fd + es-errors: ^1.3.0 + isarray: ^2.0.5 + checksum: 8c11cbee6dc8ff5cc0f3d95eef7052e43494591384015902e4292aef4ae9e539908288520ed97179cee17d6ffb450fe5f05a46ce7a1749685f7524fd568ab5db languageName: node linkType: hard -"safe-regex-test@npm:^1.0.3": - version: 1.0.3 - resolution: "safe-regex-test@npm:1.0.3" +"safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" dependencies: - call-bind: ^1.0.6 + call-bound: ^1.0.2 es-errors: ^1.3.0 - is-regex: ^1.1.4 - checksum: 6c7d392ff1ae7a3ae85273450ed02d1d131f1d2c76e177d6b03eb88e6df8fa062639070e7d311802c1615f351f18dc58f9454501c58e28d5ffd9b8f502ba6489 + is-regex: ^1.2.1 + checksum: 3c809abeb81977c9ed6c869c83aca6873ea0f3ab0f806b8edbba5582d51713f8a6e9757d24d2b4b088f563801475ea946c8e77e7713e8c65cdd02305b6caedab languageName: node linkType: hard @@ -9746,9 +9261,9 @@ __metadata: linkType: hard "scale-ts@npm:^1.6.0": - version: 1.6.0 - resolution: "scale-ts@npm:1.6.0" - checksum: 2cd6d3e31ea78621fe2e068eedc3beb6a3cfc338c9033f04ec3e355b4b08e134febad655c54a80272a50737136a27436f9d14d6525b126e621a3b77524111056 + version: 1.6.1 + resolution: "scale-ts@npm:1.6.1" + checksum: 0e045e45184194eab4770d823a2d455646eae7fc827f0f6162ca409f4f3387415a152e885f1594ba327da5b62ebc355c16049c5573c9a298038bd5d741a92175 languageName: node linkType: hard @@ -9779,23 +9294,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4": - version: 7.6.0 - resolution: "semver@npm:7.6.0" - dependencies: - lru-cache: ^6.0.0 - bin: - semver: bin/semver.js - checksum: 7427f05b70786c696640edc29fdd4bc33b2acf3bbe1740b955029044f80575fc664e1a512e4113c3af21e767154a94b4aa214bf6cd6e42a1f6dba5914e0b208c - languageName: node - linkType: hard - -"semver@npm:^7.6.0": - version: 7.6.3 - resolution: "semver@npm:7.6.3" +"semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.7.1": + version: 7.7.1 + resolution: "semver@npm:7.7.1" bin: semver: bin/semver.js - checksum: 4110ec5d015c9438f322257b1c51fe30276e5f766a3f64c09edd1d7ea7118ecbc3f379f3b69032bacf13116dc7abc4ad8ce0d7e2bd642e26b0d271b56b61a7d8 + checksum: 586b825d36874007c9382d9e1ad8f93888d8670040add24a28e06a910aeebd673a2eb9e3bf169c6679d9245e66efb9057e0852e70d9daa6c27372aab1dda7104 languageName: node linkType: hard @@ -9806,20 +9310,7 @@ __metadata: languageName: node linkType: hard -"set-function-length@npm:^1.2.0": - version: 1.2.0 - resolution: "set-function-length@npm:1.2.0" - dependencies: - define-data-property: ^1.1.1 - function-bind: ^1.1.2 - get-intrinsic: ^1.2.2 - gopd: ^1.0.1 - has-property-descriptors: ^1.0.1 - checksum: 63e34b45a2ff9abb419f52583481bf8ba597d33c0c85e56999085eb6078a0f7fbb4222051981c287feceeb358aa7789e7803cea2c82ac94c0ab37059596aff79 - languageName: node - linkType: hard - -"set-function-length@npm:^1.2.1": +"set-function-length@npm:^1.2.2": version: 1.2.2 resolution: "set-function-length@npm:1.2.2" dependencies: @@ -9833,17 +9324,6 @@ __metadata: languageName: node linkType: hard -"set-function-name@npm:^2.0.0, set-function-name@npm:^2.0.1": - version: 2.0.1 - resolution: "set-function-name@npm:2.0.1" - dependencies: - define-data-property: ^1.0.1 - functions-have-names: ^1.2.3 - has-property-descriptors: ^1.0.0 - checksum: 4975d17d90c40168eee2c7c9c59d023429f0a1690a89d75656306481ece0c3c1fb1ebcc0150ea546d1913e35fbd037bace91372c69e543e51fc5d1f31a9fa126 - languageName: node - linkType: hard - "set-function-name@npm:^2.0.2": version: 2.0.2 resolution: "set-function-name@npm:2.0.2" @@ -9856,6 +9336,17 @@ __metadata: languageName: node linkType: hard +"set-proto@npm:^1.0.0": + version: 1.0.0 + resolution: "set-proto@npm:1.0.0" + dependencies: + dunder-proto: ^1.0.1 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + checksum: ec27cbbe334598547e99024403e96da32aca3e530583e4dba7f5db1c43cbc4affa9adfbd77c7b2c210b9b8b2e7b2e600bad2a6c44fd62e804d8233f96bbb62f4 + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -9872,26 +9363,51 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.0.4": - version: 1.0.4 - resolution: "side-channel@npm:1.0.4" +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" dependencies: - call-bind: ^1.0.0 - get-intrinsic: ^1.0.2 - object-inspect: ^1.9.0 - checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 + es-errors: ^1.3.0 + object-inspect: ^1.13.3 + checksum: 603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f languageName: node linkType: hard -"side-channel@npm:^1.0.6": - version: 1.0.6 - resolution: "side-channel@npm:1.0.6" +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.2 es-errors: ^1.3.0 - get-intrinsic: ^1.2.4 - object-inspect: ^1.13.1 - checksum: bfc1afc1827d712271453e91b7cd3878ac0efd767495fd4e594c4c2afaa7963b7b510e249572bfd54b0527e66e4a12b61b80c061389e129755f34c493aad9b97 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + checksum: 42501371cdf71f4ccbbc9c9e2eb00aaaab80a4c1c429d5e8da713fd4d39ef3b8d4a4b37ed4f275798a65260a551a7131fd87fe67e922dba4ac18586d6aab8b06 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + side-channel-map: ^1.0.1 + checksum: a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 + languageName: node + linkType: hard + +"side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: ^1.3.0 + object-inspect: ^1.13.3 + side-channel-list: ^1.0.0 + side-channel-map: ^1.0.1 + side-channel-weakmap: ^1.0.2 + checksum: bf73d6d6682034603eb8e99c63b50155017ed78a522d27c2acec0388a792c3ede3238b878b953a08157093b85d05797217d270b7666ba1f111345fbe933380ff languageName: node linkType: hard @@ -10016,38 +9532,31 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^8.0.1": - version: 8.0.2 - resolution: "socks-proxy-agent@npm:8.0.2" +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" dependencies: - agent-base: ^7.0.2 + agent-base: ^7.1.2 debug: ^4.3.4 - socks: ^2.7.1 - checksum: 4fb165df08f1f380881dcd887b3cdfdc1aba3797c76c1e9f51d29048be6e494c5b06d68e7aea2e23df4572428f27a3ec22b3d7c75c570c5346507433899a4b6d + socks: ^2.8.3 + checksum: b4fbcdb7ad2d6eec445926e255a1fb95c975db0020543fbac8dfa6c47aecc6b3b619b7fb9c60a3f82c9b2969912a5e7e174a056ae4d98cb5322f3524d6036e1d languageName: node linkType: hard -"socks@npm:^2.7.1": - version: 2.7.1 - resolution: "socks@npm:2.7.1" +"socks@npm:^2.8.3": + version: 2.8.4 + resolution: "socks@npm:2.8.4" dependencies: - ip: ^2.0.0 + ip-address: ^9.0.5 smart-buffer: ^4.2.0 - checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 - languageName: node - linkType: hard - -"source-map-js@npm:^1.0.2": - version: 1.0.2 - resolution: "source-map-js@npm:1.0.2" - checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c + checksum: cd1edc924475d5dfde534adf66038df7e62c7343e6b8c0113e52dc9bb6a0a10e25b2f136197f379d695f18e8f0f2b7f6e42977bf720ddbee912a851201c396ad languageName: node linkType: hard -"source-map-js@npm:^1.2.0": - version: 1.2.0 - resolution: "source-map-js@npm:1.2.0" - checksum: 791a43306d9223792e84293b00458bf102a8946e7188f3db0e4e22d8d530b5f80a4ce468eb5ec0bf585443ad55ebbd630bf379c98db0b1f317fd902500217f97 +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b languageName: node linkType: hard @@ -10103,6 +9612,13 @@ __metadata: languageName: node linkType: hard +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: a3fdac7b49643875b70864a9d9b469d87a40dfeaf5d34d9d0c5b1cda5fd7d065531fcb43c76357d62254c57184a7b151954156563a4d6a747015cfb41021cad0 + languageName: node + linkType: hard + "sprintf-js@npm:~1.0.2": version: 1.0.3 resolution: "sprintf-js@npm:1.0.3" @@ -10110,7 +9626,7 @@ __metadata: languageName: node linkType: hard -"sshpk@npm:^1.14.1": +"sshpk@npm:^1.18.0": version: 1.18.0 resolution: "sshpk@npm:1.18.0" dependencies: @@ -10131,12 +9647,19 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^10.0.0": - version: 10.0.5 - resolution: "ssri@npm:10.0.5" +"ssri@npm:^12.0.0": + version: 12.0.0 + resolution: "ssri@npm:12.0.0" dependencies: minipass: ^7.0.3 - checksum: 0a31b65f21872dea1ed3f7c200d7bc1c1b91c15e419deca14f282508ba917cbb342c08a6814c7f68ca4ca4116dd1a85da2bbf39227480e50125a1ceffeecb750 + checksum: ef4b6b0ae47b4a69896f5f1c4375f953b9435388c053c36d27998bc3d73e046969ccde61ab659e679142971a0b08e50478a1228f62edb994105b280f17900c98 + languageName: node + linkType: hard + +"stable-hash@npm:^0.0.5": + version: 0.0.5 + resolution: "stable-hash@npm:0.0.5" + checksum: 9222ea2c558e37c4a576cb4e406966b9e6aa05b93f5c4f09ef4aaabe3577439b9b8fbff407b16840b63e2ae83de74290c7b1c2da7360d571e480e46a4aec0a56 languageName: node linkType: hard @@ -10147,10 +9670,10 @@ __metadata: languageName: node linkType: hard -"std-env@npm:^3.7.0": - version: 3.7.0 - resolution: "std-env@npm:3.7.0" - checksum: 4f489d13ff2ab838c9acd4ed6b786b51aa52ecacdfeaefe9275fcb220ff2ac80c6e95674723508fd29850a694569563a8caaaea738eb82ca16429b3a0b50e510 +"std-env@npm:^3.8.0": + version: 3.9.0 + resolution: "std-env@npm:3.9.0" + checksum: d40126e4a650f6e5456711e6c297420352a376ef99a9599e8224d2d8f2ff2b91a954f3264fcef888d94fce5c9ae14992c5569761c95556fc87248ce4602ed212 languageName: node linkType: hard @@ -10161,7 +9684,7 @@ __metadata: languageName: node linkType: hard -"string-argv@npm:~0.3.2": +"string-argv@npm:^0.3.2": version: 0.3.2 resolution: "string-argv@npm:0.3.2" checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f @@ -10191,99 +9714,71 @@ __metadata: linkType: hard "string-width@npm:^7.0.0": - version: 7.1.0 - resolution: "string-width@npm:7.1.0" + version: 7.2.0 + resolution: "string-width@npm:7.2.0" dependencies: emoji-regex: ^10.3.0 get-east-asian-width: ^1.0.0 strip-ansi: ^7.1.0 - checksum: a183573fe7209e0d294f661846d33f8caf72aa86d983e5b48a0ed45ab15bcccb02c6f0344b58b571988871105457137b8207855ea536827dbc4a376a0f31bf8f - languageName: node - linkType: hard - -"string.prototype.matchall@npm:^4.0.11": - version: 4.0.11 - resolution: "string.prototype.matchall@npm:4.0.11" - dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 - get-intrinsic: ^1.2.4 - gopd: ^1.0.1 - has-symbols: ^1.0.3 - internal-slot: ^1.0.7 - regexp.prototype.flags: ^1.5.2 - set-function-name: ^2.0.2 - side-channel: ^1.0.6 - checksum: 6ac6566ed065c0c8489c91156078ca077db8ff64d683fda97ae652d00c52dfa5f39aaab0a710d8243031a857fd2c7c511e38b45524796764d25472d10d7075ae - languageName: node - linkType: hard - -"string.prototype.repeat@npm:^1.0.0": - version: 1.0.0 - resolution: "string.prototype.repeat@npm:1.0.0" - dependencies: - define-properties: ^1.1.3 - es-abstract: ^1.17.5 - checksum: 95dfc514ed7f328d80a066dabbfbbb1615c3e51490351085409db2eb7cbfed7ea29fdadaf277647fbf9f4a1e10e6dd9e95e78c0fd2c4e6bb6723ea6e59401004 - languageName: node - linkType: hard - -"string.prototype.trim@npm:^1.2.8": - version: 1.2.8 - resolution: "string.prototype.trim@npm:1.2.8" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 49eb1a862a53aba73c3fb6c2a53f5463173cb1f4512374b623bcd6b43ad49dd559a06fb5789bdec771a40fc4d2a564411c0a75d35fb27e76bbe738c211ecff07 + checksum: 42f9e82f61314904a81393f6ef75b832c39f39761797250de68c041d8ba4df2ef80db49ab6cd3a292923a6f0f409b8c9980d120f7d32c820b4a8a84a2598a295 languageName: node linkType: hard -"string.prototype.trim@npm:^1.2.9": - version: 1.2.9 - resolution: "string.prototype.trim@npm:1.2.9" +"string.prototype.matchall@npm:^4.0.12": + version: 4.0.12 + resolution: "string.prototype.matchall@npm:4.0.12" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.3 define-properties: ^1.2.1 - es-abstract: ^1.23.0 + es-abstract: ^1.23.6 + es-errors: ^1.3.0 es-object-atoms: ^1.0.0 - checksum: ea2df6ec1e914c9d4e2dc856fa08228e8b1be59b59e50b17578c94a66a176888f417264bb763d4aac638ad3b3dad56e7a03d9317086a178078d131aa293ba193 + get-intrinsic: ^1.2.6 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + internal-slot: ^1.1.0 + regexp.prototype.flags: ^1.5.3 + set-function-name: ^2.0.2 + side-channel: ^1.1.0 + checksum: 98a09d6af91bfc6ee25556f3d7cd6646d02f5f08bda55d45528ed273d266d55a71af7291fe3fc76854deffb9168cc1a917d0b07a7d5a178c7e9537c99e6d2b57 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.7": - version: 1.0.7 - resolution: "string.prototype.trimend@npm:1.0.7" +"string.prototype.repeat@npm:^1.0.0": + version: 1.0.0 + resolution: "string.prototype.repeat@npm:1.0.0" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 2375516272fd1ba75992f4c4aa88a7b5f3c7a9ca308d963bcd5645adf689eba6f8a04ebab80c33e30ec0aefc6554181a3a8416015c38da0aa118e60ec896310c + define-properties: ^1.1.3 + es-abstract: ^1.17.5 + checksum: 95dfc514ed7f328d80a066dabbfbbb1615c3e51490351085409db2eb7cbfed7ea29fdadaf277647fbf9f4a1e10e6dd9e95e78c0fd2c4e6bb6723ea6e59401004 languageName: node linkType: hard -"string.prototype.trimend@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimend@npm:1.0.8" +"string.prototype.trim@npm:^1.2.10": + version: 1.2.10 + resolution: "string.prototype.trim@npm:1.2.10" dependencies: - call-bind: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.2 + define-data-property: ^1.1.4 define-properties: ^1.2.1 + es-abstract: ^1.23.5 es-object-atoms: ^1.0.0 - checksum: cc3bd2de08d8968a28787deba9a3cb3f17ca5f9f770c91e7e8fa3e7d47f079bad70fadce16f05dda9f261788be2c6e84a942f618c3bed31e42abc5c1084f8dfd + has-property-descriptors: ^1.0.2 + checksum: 87659cd8561237b6c69f5376328fda934693aedde17bb7a2c57008e9d9ff992d0c253a391c7d8d50114e0e49ff7daf86a362f7961cf92f7564cd01342ca2e385 languageName: node linkType: hard -"string.prototype.trimstart@npm:^1.0.7": - version: 1.0.7 - resolution: "string.prototype.trimstart@npm:1.0.7" +"string.prototype.trimend@npm:^1.0.8, string.prototype.trimend@npm:^1.0.9": + version: 1.0.9 + resolution: "string.prototype.trimend@npm:1.0.9" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - checksum: 13d0c2cb0d5ff9e926fa0bec559158b062eed2b68cd5be777ffba782c96b2b492944e47057274e064549b94dd27cf81f48b27a31fee8af5b574cff253e7eb613 + call-bind: ^1.0.8 + call-bound: ^1.0.2 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: cb86f639f41d791a43627784be2175daa9ca3259c7cb83e7a207a729909b74f2ea0ec5d85de5761e6835e5f443e9420c6ff3f63a845378e4a61dd793177bc287 languageName: node linkType: hard @@ -10379,12 +9874,21 @@ __metadata: languageName: node linkType: hard -"style-to-object@npm:^1.0.0": - version: 1.0.6 - resolution: "style-to-object@npm:1.0.6" +"style-to-js@npm:^1.0.0": + version: 1.1.16 + resolution: "style-to-js@npm:1.1.16" + dependencies: + style-to-object: 1.0.8 + checksum: 1f424ca17d923090821197f27e077e88bcf92b15274157f20330a18405f52a66395232546dc694c776d1a8f1868dabe15738532e18ce59a0683b046610bb4964 + languageName: node + linkType: hard + +"style-to-object@npm:1.0.8": + version: 1.0.8 + resolution: "style-to-object@npm:1.0.8" dependencies: - inline-style-parser: 0.2.3 - checksum: 5b58295dcc2c21f1da1b9308de1e81b4a987b876a177e677453a76b2e3151a0e21afc630e99c1ea6c82dd8dbec0d01a8b1a51a829422aca055162b03e52572a9 + inline-style-parser: 0.2.4 + checksum: 80ca4773fc728d7919edc552eb46bab11aa8cdd0b426528ee8b817ba6872ea7b9d38fbb97b6443fd2d4895a4c4b02ec32765387466a302d0b4d1b91deab1e1a0 languageName: node linkType: hard @@ -10395,7 +9899,7 @@ __metadata: languageName: node linkType: hard -"sucrase@npm:^3.32.0": +"sucrase@npm:^3.35.0": version: 3.35.0 resolution: "sucrase@npm:3.35.0" dependencies: @@ -10420,15 +9924,6 @@ __metadata: languageName: node linkType: hard -"supports-color@npm:^5.3.0": - version: 5.5.0 - resolution: "supports-color@npm:5.5.0" - dependencies: - has-flag: ^3.0.0 - checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac - languageName: node - linkType: hard - "supports-color@npm:^7.1.0": version: 7.2.0 resolution: "supports-color@npm:7.2.0" @@ -10455,63 +9950,56 @@ __metadata: linkType: hard "tailwind-merge@npm:^2.5.2": - version: 2.5.2 - resolution: "tailwind-merge@npm:2.5.2" - checksum: af745fc16245ac14eb5d3f0b9d076c024321877ad45f43b324465f6aa7f8b5de3816640594fbf6ac8b3500f70ff2687345787888744196ff6f82dfe9a1f99b97 + version: 2.6.0 + resolution: "tailwind-merge@npm:2.6.0" + checksum: 18976c4096920bc6125f1dc837479805de996d86bcc636f98436f65c297003bde89ffe51dfd325b7c97fc71b1dbba8505459dd96010e7b181badd29aea996440 languageName: node linkType: hard "tailwindcss@npm:^3.4.10": - version: 3.4.10 - resolution: "tailwindcss@npm:3.4.10" + version: 3.4.17 + resolution: "tailwindcss@npm:3.4.17" dependencies: "@alloc/quick-lru": ^5.2.0 arg: ^5.0.2 - chokidar: ^3.5.3 + chokidar: ^3.6.0 didyoumean: ^1.2.2 dlv: ^1.1.3 - fast-glob: ^3.3.0 + fast-glob: ^3.3.2 glob-parent: ^6.0.2 is-glob: ^4.0.3 - jiti: ^1.21.0 - lilconfig: ^2.1.0 - micromatch: ^4.0.5 + jiti: ^1.21.6 + lilconfig: ^3.1.3 + micromatch: ^4.0.8 normalize-path: ^3.0.0 object-hash: ^3.0.0 - picocolors: ^1.0.0 - postcss: ^8.4.23 + picocolors: ^1.1.1 + postcss: ^8.4.47 postcss-import: ^15.1.0 postcss-js: ^4.0.1 - postcss-load-config: ^4.0.1 - postcss-nested: ^6.0.1 - postcss-selector-parser: ^6.0.11 - resolve: ^1.22.2 - sucrase: ^3.32.0 + postcss-load-config: ^4.0.2 + postcss-nested: ^6.2.0 + postcss-selector-parser: ^6.1.2 + resolve: ^1.22.8 + sucrase: ^3.35.0 bin: tailwind: lib/cli.js tailwindcss: lib/cli.js - checksum: aa8db3514ec5110b2dee0bf5b35b84ebedf0c23a0dcafc870a5176bc2bad7d581956e0692ed6d888d602c114d2c54d7aa8fdb7028456880bd28b326078c8ba6e - languageName: node - linkType: hard - -"tapable@npm:^2.2.0": - version: 2.2.1 - resolution: "tapable@npm:2.2.1" - checksum: 3b7a1b4d86fa940aad46d9e73d1e8739335efd4c48322cb37d073eb6f80f5281889bf0320c6d8ffcfa1a0dd5bfdbd0f9d037e252ef972aca595330538aac4d51 + checksum: bda962f30e9a2f0567e2ee936ec863d5178958078e577ced13da60b3af779062a53a7e95f2f32b5c558f12a7477dea3ce071441a7362c6d7bf50bc9e166728a4 languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2": - version: 6.2.1 - resolution: "tar@npm:6.2.1" +"tar@npm:^7.4.3": + version: 7.4.3 + resolution: "tar@npm:7.4.3" dependencies: - chownr: ^2.0.0 - fs-minipass: ^2.0.0 - minipass: ^5.0.0 - minizlib: ^2.1.1 - mkdirp: ^1.0.3 - yallist: ^4.0.0 - checksum: f1322768c9741a25356c11373bce918483f40fa9a25c69c59410c8a1247632487edef5fe76c5f12ac51a6356d2f1829e96d2bc34098668a2fc34d76050ac2b6c + "@isaacs/fs-minipass": ^4.0.0 + chownr: ^3.0.0 + minipass: ^7.1.2 + minizlib: ^3.0.1 + mkdirp: ^3.0.1 + yallist: ^5.0.0 + checksum: 8485350c0688331c94493031f417df069b778aadb25598abdad51862e007c39d1dd5310702c7be4a6784731a174799d8885d2fde0484269aea205b724d7b2ffa languageName: node linkType: hard @@ -10526,13 +10014,6 @@ __metadata: languageName: node linkType: hard -"text-table@npm:^0.2.0": - version: 0.2.0 - resolution: "text-table@npm:0.2.0" - checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a - languageName: node - linkType: hard - "thenify-all@npm:^1.0.0": version: 1.6.0 resolution: "thenify-all@npm:1.6.0" @@ -10572,17 +10053,34 @@ __metadata: languageName: node linkType: hard -"tinybench@npm:^2.8.0": +"tinybench@npm:^2.9.0": version: 2.9.0 resolution: "tinybench@npm:2.9.0" checksum: 1ab00d7dfe0d1f127cbf00822bacd9024f7a50a3ecd1f354a8168e0b7d2b53a639a24414e707c27879d1adc0f5153141d51d76ebd7b4d37fe245e742e5d91fe8 languageName: node linkType: hard -"tinypool@npm:^1.0.0": - version: 1.0.1 - resolution: "tinypool@npm:1.0.1" - checksum: 5cd6b8cbccd9b88d461f400c9599e69f66563ddf75a2b8ab6b48250481f1b254d180a68ee735f379fa6eb88f11c3b1814735bb1f3306b1a860bf6d8f08074d6b +"tinyexec@npm:^0.3.1": + version: 0.3.2 + resolution: "tinyexec@npm:0.3.2" + checksum: bd491923020610bdeadb0d8cf5d70e7cbad5a3201620fd01048c9bf3b31ffaa75c33254e1540e13b993ce4e8187852b0b5a93057bb598e7a57afa2ca2048a35c + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.12": + version: 0.2.12 + resolution: "tinyglobby@npm:0.2.12" + dependencies: + fdir: ^6.4.3 + picomatch: ^4.0.2 + checksum: ef9357fa1b2b661afdccd315cb4995f5f36bce948faaace68aae85fe57bdd8f837883045c88efc50d3186bac6586e4ae2f31026b9a3aac061b884217e6092e23 + languageName: node + linkType: hard + +"tinypool@npm:^1.0.1": + version: 1.0.2 + resolution: "tinypool@npm:1.0.2" + checksum: 752f23114d8fc95a9497fc812231d6d0a63728376aa11e6e8499c10423a91112e760e388887ea7854f1b16977c321f07c0eab061ec2f60f6761e58b184aac880 languageName: node linkType: hard @@ -10593,10 +10091,28 @@ __metadata: languageName: node linkType: hard -"tinyspy@npm:^3.0.0": - version: 3.0.0 - resolution: "tinyspy@npm:3.0.0" - checksum: b5b686acff2b88de60ff8ecf89a2042320406aaeee2fba1828a7ea8a925fad3ed9f5e4d7a068154a9134473c472aa03da8ca92ee994bc57a741c5ede5fa7de4d +"tinyspy@npm:^3.0.2": + version: 3.0.2 + resolution: "tinyspy@npm:3.0.2" + checksum: 5db671b2ff5cd309de650c8c4761ca945459d7204afb1776db9a04fb4efa28a75f08517a8620c01ee32a577748802231ad92f7d5b194dc003ee7f987a2a06337 + languageName: node + linkType: hard + +"tldts-core@npm:^6.1.85": + version: 6.1.85 + resolution: "tldts-core@npm:6.1.85" + checksum: 36e283719955d1699d40028d71e62e3509f37de734ca54bc27e58176ec00c96693b852a3b29c03e1291e5b27003ec4829f9423cd13c9f9842f18a3c0c4728014 + languageName: node + linkType: hard + +"tldts@npm:^6.1.32": + version: 6.1.85 + resolution: "tldts@npm:6.1.85" + dependencies: + tldts-core: ^6.1.85 + bin: + tldts: bin/cli.js + checksum: 9f8d5d1f512857aaa8a64f0eb93c84fc14bef5d49b3c1571feb619fd1f80ea28a8f94f4c31acaeb2273e9519923ec4a1e70328280d0efd2b0af6e4594551ae53 languageName: node linkType: hard @@ -10607,13 +10123,6 @@ __metadata: languageName: node linkType: hard -"to-fast-properties@npm:^2.0.0": - version: 2.0.0 - resolution: "to-fast-properties@npm:2.0.0" - checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 - languageName: node - linkType: hard - "to-regex-range@npm:^5.0.1": version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" @@ -10637,15 +10146,12 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.1.3": - version: 4.1.3 - resolution: "tough-cookie@npm:4.1.3" +"tough-cookie@npm:^5.0.0": + version: 5.1.2 + resolution: "tough-cookie@npm:5.1.2" dependencies: - psl: ^1.1.33 - punycode: ^2.1.1 - universalify: ^0.2.0 - url-parse: ^1.5.3 - checksum: c9226afff36492a52118432611af083d1d8493a53ff41ec4ea48e5b583aec744b989e4280bcf476c910ec1525a89a4a0f1cae81c08b18fb2ec3a9b3a72b91dcc + tldts: ^6.1.32 + checksum: 31c626a77ac247b881665851035773afe7eeac283b91ed8da3c297ed55480ea1dd1ba3f5bb1f94b653ac2d5b184f17ce4bf1cf6ca7c58ee7c321b4323c4f8024 languageName: node linkType: hard @@ -10663,12 +10169,12 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.3.0": - version: 1.3.0 - resolution: "ts-api-utils@npm:1.3.0" +"ts-api-utils@npm:^2.0.1": + version: 2.1.0 + resolution: "ts-api-utils@npm:2.1.0" peerDependencies: - typescript: ">=4.2.0" - checksum: c746ddabfdffbf16cb0b0db32bb287236a19e583057f8649ee7c49995bb776e1d3ef384685181c11a1a480369e022ca97512cb08c517b2d2bd82c83754c97012 + typescript: ">=4.8.4" + checksum: 5b1ef89105654d93d67582308bd8dfe4bbf6874fccbcaa729b08fbb00a940fd4c691ca6d0d2b18c3c70878d9a7e503421b7cc473dbc3d0d54258b86401d4b15d languageName: node linkType: hard @@ -10718,8 +10224,8 @@ __metadata: linkType: hard "tsconfck@npm:^3.0.3": - version: 3.1.1 - resolution: "tsconfck@npm:3.1.1" + version: 3.1.5 + resolution: "tsconfck@npm:3.1.5" peerDependencies: typescript: ^5.0.0 peerDependenciesMeta: @@ -10727,7 +10233,7 @@ __metadata: optional: true bin: tsconfck: bin/tsconfck.js - checksum: 92941c76f5a996a96b5d92c88d20f67c644bb04cfeb9e5d4d2fed5a8ecce207fc70334a6257e3c146a117aa88b75adabc0989ee8d80a4935745f2774bf3f50fe + checksum: 9a85b707cf9a99caec4ec312783a903bf9d4bea52036786df40f8c50beb903a49a5895a0a8144f5862175ee202af80d28406dd2d5c4664cbc17260a193c84dba languageName: node linkType: hard @@ -10743,14 +10249,14 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.1.0, tslib@npm:^2.4.0": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad +"tslib@npm:2.7.0": + version: 2.7.0 + resolution: "tslib@npm:2.7.0" + checksum: 1606d5c89f88d466889def78653f3aab0f88692e80bb2066d090ca6112ae250ec1cfa9dbfaab0d17b60da15a4186e8ec4d893801c67896b277c17374e36e1d28 languageName: node linkType: hard -"tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1": +"tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a @@ -10803,102 +10309,56 @@ __metadata: languageName: node linkType: hard -"typed-array-buffer@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-buffer@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - get-intrinsic: ^1.2.1 - is-typed-array: ^1.1.10 - checksum: 3e0281c79b2a40cd97fe715db803884301993f4e8c18e8d79d75fd18f796e8cd203310fec8c7fdb5e6c09bedf0af4f6ab8b75eb3d3a85da69328f28a80456bd3 - languageName: node - linkType: hard - -"typed-array-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-buffer@npm:1.0.2" +"typed-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-buffer@npm:1.0.3" dependencies: - call-bind: ^1.0.7 + call-bound: ^1.0.3 es-errors: ^1.3.0 - is-typed-array: ^1.1.13 - checksum: 02ffc185d29c6df07968272b15d5319a1610817916ec8d4cd670ded5d1efe72901541ff2202fcc622730d8a549c76e198a2f74e312eabbfb712ed907d45cbb0b - languageName: node - linkType: hard - -"typed-array-byte-length@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-byte-length@npm:1.0.0" - dependencies: - call-bind: ^1.0.2 - for-each: ^0.3.3 - has-proto: ^1.0.1 - is-typed-array: ^1.1.10 - checksum: b03db16458322b263d87a702ff25388293f1356326c8a678d7515767ef563ef80e1e67ce648b821ec13178dd628eb2afdc19f97001ceae7a31acf674c849af94 - languageName: node - linkType: hard - -"typed-array-byte-length@npm:^1.0.1": - version: 1.0.1 - resolution: "typed-array-byte-length@npm:1.0.1" - dependencies: - call-bind: ^1.0.7 - for-each: ^0.3.3 - gopd: ^1.0.1 - has-proto: ^1.0.3 - is-typed-array: ^1.1.13 - checksum: f65e5ecd1cf76b1a2d0d6f631f3ea3cdb5e08da106c6703ffe687d583e49954d570cc80434816d3746e18be889ffe53c58bf3e538081ea4077c26a41055b216d - languageName: node - linkType: hard - -"typed-array-byte-offset@npm:^1.0.0": - version: 1.0.0 - resolution: "typed-array-byte-offset@npm:1.0.0" - dependencies: - available-typed-arrays: ^1.0.5 - call-bind: ^1.0.2 - for-each: ^0.3.3 - has-proto: ^1.0.1 - is-typed-array: ^1.1.10 - checksum: 04f6f02d0e9a948a95fbfe0d5a70b002191fae0b8fe0fe3130a9b2336f043daf7a3dda56a31333c35a067a97e13f539949ab261ca0f3692c41603a46a94e960b + is-typed-array: ^1.1.14 + checksum: 3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80 languageName: node linkType: hard -"typed-array-byte-offset@npm:^1.0.2": - version: 1.0.2 - resolution: "typed-array-byte-offset@npm:1.0.2" +"typed-array-byte-length@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-byte-length@npm:1.0.3" dependencies: - available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 + call-bind: ^1.0.8 for-each: ^0.3.3 - gopd: ^1.0.1 - has-proto: ^1.0.3 - is-typed-array: ^1.1.13 - checksum: c8645c8794a621a0adcc142e0e2c57b1823bbfa4d590ad2c76b266aa3823895cf7afb9a893bf6685e18454ab1b0241e1a8d885a2d1340948efa4b56add4b5f67 + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.14 + checksum: cda9352178ebeab073ad6499b03e938ebc30c4efaea63a26839d89c4b1da9d2640b0d937fc2bd1f049eb0a38def6fbe8a061b601292ae62fe079a410ce56e3a6 languageName: node linkType: hard -"typed-array-length@npm:^1.0.4": +"typed-array-byte-offset@npm:^1.0.4": version: 1.0.4 - resolution: "typed-array-length@npm:1.0.4" + resolution: "typed-array-byte-offset@npm:1.0.4" dependencies: - call-bind: ^1.0.2 + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.8 for-each: ^0.3.3 - is-typed-array: ^1.1.9 - checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.15 + reflect.getprototypeof: ^1.0.9 + checksum: 670b7e6bb1d3c2cf6160f27f9f529e60c3f6f9611c67e47ca70ca5cfa24ad95415694c49d1dbfeda016d3372cab7dfc9e38c7b3e1bb8d692cae13a63d3c144d7 languageName: node linkType: hard -"typed-array-length@npm:^1.0.6": - version: 1.0.6 - resolution: "typed-array-length@npm:1.0.6" +"typed-array-length@npm:^1.0.7": + version: 1.0.7 + resolution: "typed-array-length@npm:1.0.7" dependencies: call-bind: ^1.0.7 for-each: ^0.3.3 gopd: ^1.0.1 - has-proto: ^1.0.3 is-typed-array: ^1.1.13 possible-typed-array-names: ^1.0.0 - checksum: f0315e5b8f0168c29d390ff410ad13e4d511c78e6006df4a104576844812ee447fcc32daab1f3a76c9ef4f64eff808e134528b5b2439de335586b392e9750e5c + reflect.getprototypeof: ^1.0.6 + checksum: deb1a4ffdb27cd930b02c7030cb3e8e0993084c643208e52696e18ea6dd3953dfc37b939df06ff78170423d353dc8b10d5bae5796f3711c1b3abe52872b3774c languageName: node linkType: hard @@ -10912,41 +10372,34 @@ __metadata: linkType: hard "typescript@npm:^5.5.4": - version: 5.5.4 - resolution: "typescript@npm:5.5.4" + version: 5.8.3 + resolution: "typescript@npm:5.8.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: b309040f3a1cd91c68a5a58af6b9fdd4e849b8c42d837b2c2e73f9a4f96a98c4f1ed398a9aab576ee0a4748f5690cf594e6b99dbe61de7839da748c41e6d6ca8 + checksum: cb1d081c889a288b962d3c8ae18d337ad6ee88a8e81ae0103fa1fecbe923737f3ba1dbdb3e6d8b776c72bc73bfa6d8d850c0306eed1a51377d2fccdfd75d92c4 languageName: node linkType: hard "typescript@patch:typescript@^5.5.4#~builtin": - version: 5.5.4 - resolution: "typescript@patch:typescript@npm%3A5.5.4#~builtin::version=5.5.4&hash=493e53" + version: 5.8.3 + resolution: "typescript@patch:typescript@npm%3A5.8.3#~builtin::version=5.8.3&hash=493e53" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: fc52962f31a5bcb716d4213bef516885e4f01f30cea797a831205fc9ef12b405a40561c40eae3127ab85ba1548e7df49df2bcdee6b84a94bfbe3a0d7eff16b14 + checksum: 1b503525a88ff0ff5952e95870971c4fb2118c17364d60302c21935dedcd6c37e6a0a692f350892bafcef6f4a16d09073fe461158547978d2f16fbe4cb18581c languageName: node linkType: hard -"unbox-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "unbox-primitive@npm:1.0.2" +"unbox-primitive@npm:^1.1.0": + version: 1.1.0 + resolution: "unbox-primitive@npm:1.1.0" dependencies: - call-bind: ^1.0.2 + call-bound: ^1.0.3 has-bigints: ^1.0.2 - has-symbols: ^1.0.3 - which-boxed-primitive: ^1.0.2 - checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 - languageName: node - linkType: hard - -"undici-types@npm:~5.26.4": - version: 5.26.5 - resolution: "undici-types@npm:5.26.5" - checksum: 3192ef6f3fd5df652f2dc1cd782b49d6ff14dc98e5dced492aa8a8c65425227da5da6aafe22523c67f035a272c599bb89cfe803c1db6311e44bed3042fc25487 + has-symbols: ^1.1.0 + which-boxed-primitive: ^1.1.1 + checksum: 729f13b84a5bfa3fead1d8139cee5c38514e63a8d6a437819a473e241ba87eeb593646568621c7fc7f133db300ef18d65d1a5a60dc9c7beb9000364d93c581df languageName: node linkType: hard @@ -10957,6 +10410,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~6.21.0": + version: 6.21.0 + resolution: "undici-types@npm:6.21.0" + checksum: 46331c7d6016bf85b3e8f20c159d62f5ae471aba1eb3dc52fff35a0259d58dcc7d592d4cc4f00c5f9243fa738a11cfa48bd20203040d4a9e6bc25e807fab7ab3 + languageName: node + linkType: hard + "unified@npm:^11.0.0": version: 11.0.5 resolution: "unified@npm:11.0.5" @@ -10972,21 +10432,21 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^3.0.0": - version: 3.0.0 - resolution: "unique-filename@npm:3.0.0" +"unique-filename@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-filename@npm:4.0.0" dependencies: - unique-slug: ^4.0.0 - checksum: 8e2f59b356cb2e54aab14ff98a51ac6c45781d15ceaab6d4f1c2228b780193dc70fae4463ce9e1df4479cb9d3304d7c2043a3fb905bdeca71cc7e8ce27e063df + unique-slug: ^5.0.0 + checksum: 6a62094fcac286b9ec39edbd1f8f64ff92383baa430af303dfed1ffda5e47a08a6b316408554abfddd9730c78b6106bef4ca4d02c1231a735ddd56ced77573df languageName: node linkType: hard -"unique-slug@npm:^4.0.0": - version: 4.0.0 - resolution: "unique-slug@npm:4.0.0" +"unique-slug@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-slug@npm:5.0.0" dependencies: imurmurhash: ^0.1.4 - checksum: 0884b58365af59f89739e6f71e3feacb5b1b41f2df2d842d0757933620e6de08eff347d27e9d499b43c40476cbaf7988638d3acb2ffbcb9d35fd035591adfd15 + checksum: 222d0322bc7bbf6e45c08967863212398313ef73423f4125e075f893a02405a5ffdbaaf150f7dd1e99f8861348a486dd079186d27c5f2c60e465b7dcbb1d3e5b languageName: node linkType: hard @@ -11008,16 +10468,6 @@ __metadata: languageName: node linkType: hard -"unist-util-remove-position@npm:^5.0.0": - version: 5.0.0 - resolution: "unist-util-remove-position@npm:5.0.0" - dependencies: - "@types/unist": ^3.0.0 - unist-util-visit: ^5.0.0 - checksum: 8aabdb9d0e3e744141bc123d8f87b90835d521209ad3c6c4619d403b324537152f0b8f20dda839b40c3aa0abfbf1828b3635a7a8bb159c3ed469e743023510ee - languageName: node - linkType: hard - "unist-util-stringify-position@npm:^4.0.0": version: 4.0.0 resolution: "unist-util-stringify-position@npm:4.0.0" @@ -11048,13 +10498,6 @@ __metadata: languageName: node linkType: hard -"universalify@npm:^0.2.0": - version: 0.2.0 - resolution: "universalify@npm:0.2.0" - checksum: e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 - languageName: node - linkType: hard - "universalify@npm:^2.0.0": version: 2.0.1 resolution: "universalify@npm:2.0.1" @@ -11062,6 +10505,60 @@ __metadata: languageName: node linkType: hard +"unrs-resolver@npm:^1.3.2": + version: 1.4.1 + resolution: "unrs-resolver@npm:1.4.1" + dependencies: + "@unrs/resolver-binding-darwin-arm64": 1.4.1 + "@unrs/resolver-binding-darwin-x64": 1.4.1 + "@unrs/resolver-binding-freebsd-x64": 1.4.1 + "@unrs/resolver-binding-linux-arm-gnueabihf": 1.4.1 + "@unrs/resolver-binding-linux-arm-musleabihf": 1.4.1 + "@unrs/resolver-binding-linux-arm64-gnu": 1.4.1 + "@unrs/resolver-binding-linux-arm64-musl": 1.4.1 + "@unrs/resolver-binding-linux-ppc64-gnu": 1.4.1 + "@unrs/resolver-binding-linux-s390x-gnu": 1.4.1 + "@unrs/resolver-binding-linux-x64-gnu": 1.4.1 + "@unrs/resolver-binding-linux-x64-musl": 1.4.1 + "@unrs/resolver-binding-wasm32-wasi": 1.4.1 + "@unrs/resolver-binding-win32-arm64-msvc": 1.4.1 + "@unrs/resolver-binding-win32-ia32-msvc": 1.4.1 + "@unrs/resolver-binding-win32-x64-msvc": 1.4.1 + dependenciesMeta: + "@unrs/resolver-binding-darwin-arm64": + optional: true + "@unrs/resolver-binding-darwin-x64": + optional: true + "@unrs/resolver-binding-freebsd-x64": + optional: true + "@unrs/resolver-binding-linux-arm-gnueabihf": + optional: true + "@unrs/resolver-binding-linux-arm-musleabihf": + optional: true + "@unrs/resolver-binding-linux-arm64-gnu": + optional: true + "@unrs/resolver-binding-linux-arm64-musl": + optional: true + "@unrs/resolver-binding-linux-ppc64-gnu": + optional: true + "@unrs/resolver-binding-linux-s390x-gnu": + optional: true + "@unrs/resolver-binding-linux-x64-gnu": + optional: true + "@unrs/resolver-binding-linux-x64-musl": + optional: true + "@unrs/resolver-binding-wasm32-wasi": + optional: true + "@unrs/resolver-binding-win32-arm64-msvc": + optional: true + "@unrs/resolver-binding-win32-ia32-msvc": + optional: true + "@unrs/resolver-binding-win32-x64-msvc": + optional: true + checksum: a8069fceb656375022fb80fa6cccae1c759cd88f1da9507cbc72b86fbb1cff7423ede3d751d7692d3a190b5d1cf34a80133fcf602c7a290deaaa0a27d4d03a3b + languageName: node + linkType: hard + "untildify@npm:^4.0.0": version: 4.0.0 resolution: "untildify@npm:4.0.0" @@ -11069,31 +10566,17 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.13": - version: 1.0.13 - resolution: "update-browserslist-db@npm:1.0.13" - dependencies: - escalade: ^3.1.1 - picocolors: ^1.0.0 - peerDependencies: - browserslist: ">= 4.21.0" - bin: - update-browserslist-db: cli.js - checksum: 1e47d80182ab6e4ad35396ad8b61008ae2a1330221175d0abd37689658bdb61af9b705bfc41057fd16682474d79944fb2d86767c5ed5ae34b6276b9bed353322 - languageName: node - linkType: hard - -"update-browserslist-db@npm:^1.1.0": - version: 1.1.0 - resolution: "update-browserslist-db@npm:1.1.0" +"update-browserslist-db@npm:^1.1.1": + version: 1.1.3 + resolution: "update-browserslist-db@npm:1.1.3" dependencies: - escalade: ^3.1.2 - picocolors: ^1.0.1 + escalade: ^3.2.0 + picocolors: ^1.1.1 peerDependencies: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 7b74694d96f0c360f01b702e72353dc5a49df4fe6663d3ee4e5c628f061576cddf56af35a3a886238c01dd3d8f231b7a86a8ceaa31e7a9220ae31c1c1238e562 + checksum: 7b6d8d08c34af25ee435bccac542bedcb9e57c710f3c42421615631a80aa6dd28b0a81c9d2afbef53799d482fb41453f714b8a7a0a8003e3b4ec8fb1abb819af languageName: node linkType: hard @@ -11106,25 +10589,15 @@ __metadata: languageName: node linkType: hard -"url-parse@npm:^1.5.3": - version: 1.5.10 - resolution: "url-parse@npm:1.5.10" - dependencies: - querystringify: ^2.1.1 - requires-port: ^1.0.0 - checksum: fbdba6b1d83336aca2216bbdc38ba658d9cfb8fc7f665eb8b17852de638ff7d1a162c198a8e4ed66001ddbf6c9888d41e4798912c62b4fd777a31657989f7bdf - languageName: node - linkType: hard - -"use-isomorphic-layout-effect@npm:^1.1.2": - version: 1.1.2 - resolution: "use-isomorphic-layout-effect@npm:1.1.2" +"use-isomorphic-layout-effect@npm:^1.2.0": + version: 1.2.0 + resolution: "use-isomorphic-layout-effect@npm:1.2.0" peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: a6532f7fc9ae222c3725ff0308aaf1f1ddbd3c00d685ef9eee6714fd0684de5cb9741b432fbf51e61a784e2955424864f7ea9f99734a02f237b17ad3e18ea5cb + checksum: 84fc1074b4e3ee2886fde944baef4ec210453fc78861429fe50ae97be8209e492f18c059c6b2ff1a21df231d72d1638707dabca889bd9d7bee36f21c196a0d19 languageName: node linkType: hard @@ -11183,28 +10656,27 @@ __metadata: linkType: hard "vfile@npm:^6.0.0": - version: 6.0.2 - resolution: "vfile@npm:6.0.2" + version: 6.0.3 + resolution: "vfile@npm:6.0.3" dependencies: "@types/unist": ^3.0.0 - unist-util-stringify-position: ^4.0.0 vfile-message: ^4.0.0 - checksum: 2f3f405654aa549f1902dfe0cefa5f0d785f9f65cb90989b9ab543166afabf30f9c5c4bda734d78cf08e169dd7cba08af4cdcae5563f89782caf1d4719c57646 + checksum: 152b6729be1af70df723efb65c1a1170fd483d41086557da3651eea69a1dd1f0c22ea4344834d56d30734b9185bcab63e22edc81d3f0e9bed8aa4660d61080af languageName: node linkType: hard -"vite-node@npm:2.0.5": - version: 2.0.5 - resolution: "vite-node@npm:2.0.5" +"vite-node@npm:2.1.9": + version: 2.1.9 + resolution: "vite-node@npm:2.1.9" dependencies: cac: ^6.7.14 - debug: ^4.3.5 + debug: ^4.3.7 + es-module-lexer: ^1.5.4 pathe: ^1.1.2 - tinyrainbow: ^1.2.0 vite: ^5.0.0 bin: vite-node: vite-node.mjs - checksum: 30071f1cd3d3b78fd52726d66d18d81b63b321dee70d03c259db959a72f46dce2d71f12a85eaf503497f562ce11fea51197a74888d5892d3c7f3ad0ef093ec25 + checksum: 716d37649834ecea547b43121ee89b2e4f9ca65ff6ce26214770ecfefe070b8c7245c9fdd0f92fb232d266e153629d04af9a4dc4fc350abfa521e5e46434b7b2 languageName: node linkType: hard @@ -11225,8 +10697,8 @@ __metadata: linkType: hard "vite-tsconfig-paths@npm:^5.0.1": - version: 5.0.1 - resolution: "vite-tsconfig-paths@npm:5.0.1" + version: 5.1.4 + resolution: "vite-tsconfig-paths@npm:5.1.4" dependencies: debug: ^4.1.1 globrex: ^0.1.2 @@ -11236,57 +10708,17 @@ __metadata: peerDependenciesMeta: vite: optional: true - checksum: b89192ba6926bbc009cdce4640f42797b43ee92e8b1439d98e297748f20db700f38d8ad99b6cbcf9ec671393314ffa23ac765d7e82b0901e84506ffbc1b07a0a - languageName: node - linkType: hard - -"vite@npm:^5.0.0": - version: 5.0.12 - resolution: "vite@npm:5.0.12" - dependencies: - esbuild: ^0.19.3 - fsevents: ~2.3.3 - postcss: ^8.4.32 - rollup: ^4.2.0 - peerDependencies: - "@types/node": ^18.0.0 || >=20.0.0 - less: "*" - lightningcss: ^1.21.0 - sass: "*" - stylus: "*" - sugarss: "*" - terser: ^5.4.0 - dependenciesMeta: - fsevents: - optional: true - peerDependenciesMeta: - "@types/node": - optional: true - less: - optional: true - lightningcss: - optional: true - sass: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - bin: - vite: bin/vite.js - checksum: b97b6f1c204d9091d0973626827a6e9d8e8b1959ebd0877b6f76e7068e1e7adf9ecd3b1cc382cbab9d421e3eeca5e1a95f27f9c1734439b229f5a58ef2052fa4 + checksum: 9d868fcad7ac59049c08ce60f65a0e1b1caebb3d849c60ebe6ed47645255007fd8275c22a42155666fd76ee947bc36481d83c0527b2d9fa45ccafac4dbf99722 languageName: node linkType: hard -"vite@npm:^5.4.2": - version: 5.4.2 - resolution: "vite@npm:5.4.2" +"vite@npm:^5.0.0, vite@npm:^5.4.2": + version: 5.4.17 + resolution: "vite@npm:5.4.17" dependencies: esbuild: ^0.21.3 fsevents: ~2.3.3 - postcss: ^8.4.41 + postcss: ^8.4.43 rollup: ^4.20.0 peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 @@ -11319,38 +10751,39 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 7d25c1b2366ae4d9eb515ba9efc2619c544ec6d806d636977fac93f59cdf63e22ea9b4592c69c496a313cf95c88e374c81870d4bb4b11f401ec003793dfd2830 + checksum: c3921629c49fc58a87678620f5537d88a002abb874254a1d8f9952808bb64669c353a2fe2723262f3af865f42042bc5e0e9ee4740190ad97263681f2c052c922 languageName: node linkType: hard "vitest@npm:^2.0.5": - version: 2.0.5 - resolution: "vitest@npm:2.0.5" - dependencies: - "@ampproject/remapping": ^2.3.0 - "@vitest/expect": 2.0.5 - "@vitest/pretty-format": ^2.0.5 - "@vitest/runner": 2.0.5 - "@vitest/snapshot": 2.0.5 - "@vitest/spy": 2.0.5 - "@vitest/utils": 2.0.5 - chai: ^5.1.1 - debug: ^4.3.5 - execa: ^8.0.1 - magic-string: ^0.30.10 + version: 2.1.9 + resolution: "vitest@npm:2.1.9" + dependencies: + "@vitest/expect": 2.1.9 + "@vitest/mocker": 2.1.9 + "@vitest/pretty-format": ^2.1.9 + "@vitest/runner": 2.1.9 + "@vitest/snapshot": 2.1.9 + "@vitest/spy": 2.1.9 + "@vitest/utils": 2.1.9 + chai: ^5.1.2 + debug: ^4.3.7 + expect-type: ^1.1.0 + magic-string: ^0.30.12 pathe: ^1.1.2 - std-env: ^3.7.0 - tinybench: ^2.8.0 - tinypool: ^1.0.0 + std-env: ^3.8.0 + tinybench: ^2.9.0 + tinyexec: ^0.3.1 + tinypool: ^1.0.1 tinyrainbow: ^1.2.0 vite: ^5.0.0 - vite-node: 2.0.5 + vite-node: 2.1.9 why-is-node-running: ^2.3.0 peerDependencies: "@edge-runtime/vm": "*" "@types/node": ^18.0.0 || >=20.0.0 - "@vitest/browser": 2.0.5 - "@vitest/ui": 2.0.5 + "@vitest/browser": 2.1.9 + "@vitest/ui": 2.1.9 happy-dom: "*" jsdom: "*" peerDependenciesMeta: @@ -11368,59 +10801,60 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 4709e7678d89f957d9bd8e4dd2f99734857df03e22d38d9c3986a75f608205572b73c2faaf059ed41a2dccbc5c65f6717bf66594d6459cf2e57ab175be9aebc1 + checksum: 20db77529f843930ef1626103c898b27528d6d68d6c44753ec823e318f26bbdeb3bc56e6fb80e3f1ecc34382107d32e1f4e709e23198f414fecc9298ab225fa8 languageName: node linkType: hard "web-streams-polyfill@npm:^3.0.3": - version: 3.3.2 - resolution: "web-streams-polyfill@npm:3.3.2" - checksum: 0292f4113c1bda40d8e8ecebee39eb14cc2e2e560a65a6867980e394537a2645130e2c73f5ef6e641fd3697d2f71720ccf659aebaf69a9d5a773f653a0fdf39d + version: 3.3.3 + resolution: "web-streams-polyfill@npm:3.3.3" + checksum: 21ab5ea08a730a2ef8023736afe16713b4f2023ec1c7085c16c8e293ee17ed085dff63a0ad8722da30c99c4ccbd4ccd1b2e79c861829f7ef2963d7de7004c2cb languageName: node linkType: hard -"which-boxed-primitive@npm:^1.0.2": - version: 1.0.2 - resolution: "which-boxed-primitive@npm:1.0.2" +"which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": + version: 1.1.1 + resolution: "which-boxed-primitive@npm:1.1.1" dependencies: - is-bigint: ^1.0.1 - is-boolean-object: ^1.1.0 - is-number-object: ^1.0.4 - is-string: ^1.0.5 - is-symbol: ^1.0.3 - checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e + is-bigint: ^1.1.0 + is-boolean-object: ^1.2.1 + is-number-object: ^1.1.1 + is-string: ^1.1.1 + is-symbol: ^1.1.1 + checksum: ee41d0260e4fd39551ad77700c7047d3d281ec03d356f5e5c8393fe160ba0db53ef446ff547d05f76ffabfd8ad9df7c9a827e12d4cccdbc8fccf9239ff8ac21e languageName: node linkType: hard -"which-builtin-type@npm:^1.1.3": - version: 1.1.3 - resolution: "which-builtin-type@npm:1.1.3" +"which-builtin-type@npm:^1.2.1": + version: 1.2.1 + resolution: "which-builtin-type@npm:1.2.1" dependencies: - function.prototype.name: ^1.1.5 - has-tostringtag: ^1.0.0 + call-bound: ^1.0.2 + function.prototype.name: ^1.1.6 + has-tostringtag: ^1.0.2 is-async-function: ^2.0.0 - is-date-object: ^1.0.5 - is-finalizationregistry: ^1.0.2 + is-date-object: ^1.1.0 + is-finalizationregistry: ^1.1.0 is-generator-function: ^1.0.10 - is-regex: ^1.1.4 + is-regex: ^1.2.1 is-weakref: ^1.0.2 isarray: ^2.0.5 - which-boxed-primitive: ^1.0.2 - which-collection: ^1.0.1 - which-typed-array: ^1.1.9 - checksum: 43730f7d8660ff9e33d1d3f9f9451c4784265ee7bf222babc35e61674a11a08e1c2925019d6c03154fcaaca4541df43abe35d2720843b9b4cbcebdcc31408f36 + which-boxed-primitive: ^1.1.0 + which-collection: ^1.0.2 + which-typed-array: ^1.1.16 + checksum: 7a3617ba0e7cafb795f74db418df889867d12bce39a477f3ee29c6092aa64d396955bf2a64eae3726d8578440e26777695544057b373c45a8bcf5fbe920bf633 languageName: node linkType: hard -"which-collection@npm:^1.0.1": - version: 1.0.1 - resolution: "which-collection@npm:1.0.1" +"which-collection@npm:^1.0.2": + version: 1.0.2 + resolution: "which-collection@npm:1.0.2" dependencies: - is-map: ^2.0.1 - is-set: ^2.0.1 - is-weakmap: ^2.0.1 - is-weakset: ^2.0.1 - checksum: c815bbd163107ef9cb84f135e6f34453eaf4cca994e7ba85ddb0d27cea724c623fae2a473ceccfd5549c53cc65a5d82692de418166df3f858e1e5dc60818581c + is-map: ^2.0.3 + is-set: ^2.0.3 + is-weakmap: ^2.0.2 + is-weakset: ^2.0.3 + checksum: c51821a331624c8197916598a738fc5aeb9a857f1e00d89f5e4c03dc7c60b4032822b8ec5696d28268bb83326456a8b8216344fb84270d18ff1d7628051879d9 languageName: node linkType: hard @@ -11431,29 +10865,18 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.13, which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.9": - version: 1.1.14 - resolution: "which-typed-array@npm:1.1.14" - dependencies: - available-typed-arrays: ^1.0.6 - call-bind: ^1.0.5 - for-each: ^0.3.3 - gopd: ^1.0.1 - has-tostringtag: ^1.0.1 - checksum: efe30c143c58630dde8ab96f9330e20165bacd77ca843c602b510120a415415573bcdef3ccbc30a0e5aaf20f257360cfe24712aea0008f149ce5bb99834c0c0b - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.15": - version: 1.1.15 - resolution: "which-typed-array@npm:1.1.15" +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.18": + version: 1.1.19 + resolution: "which-typed-array@npm:1.1.19" dependencies: available-typed-arrays: ^1.0.7 - call-bind: ^1.0.7 - for-each: ^0.3.3 - gopd: ^1.0.1 + 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 - checksum: 65227dcbfadf5677aacc43ec84356d17b5500cb8b8753059bb4397de5cd0c2de681d24e1a7bd575633f976a95f88233abfd6549c2105ef4ebd58af8aa1807c75 + checksum: 162d2a07f68ea323f88ed9419861487ce5d02cb876f2cf9dd1e428d04a63133f93a54f89308f337b27cabd312ee3d027cae4a79002b2f0a85b79b9ef4c190670 languageName: node linkType: hard @@ -11468,14 +10891,14 @@ __metadata: languageName: node linkType: hard -"which@npm:^4.0.0": - version: 4.0.0 - resolution: "which@npm:4.0.0" +"which@npm:^5.0.0": + version: 5.0.0 + resolution: "which@npm:5.0.0" dependencies: isexe: ^3.1.1 bin: node-which: bin/which.js - checksum: f17e84c042592c21e23c8195108cff18c64050b9efb8459589116999ea9da6dd1509e6a1bac3aeebefd137be00fabbb61b5c2bc0aa0f8526f32b58ee2f545651 + checksum: 6ec99e89ba32c7e748b8a3144e64bfc74aa63e2b2eacbb61a0060ad0b961eb1a632b08fb1de067ed59b002cec3e21de18299216ebf2325ef0f78e0f121e14e90 languageName: node linkType: hard @@ -11491,6 +10914,13 @@ __metadata: languageName: node linkType: hard +"word-wrap@npm:^1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb + languageName: node + linkType: hard + "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0, wrap-ansi@npm:^7.0.0": version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" @@ -11554,9 +10984,9 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.18.0": - version: 8.18.1 - resolution: "ws@npm:8.18.1" +"ws@npm:8.17.1": + version: 8.17.1 + resolution: "ws@npm:8.17.1" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -11565,13 +10995,13 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 4658357185d891bc45cc2d42a84f9e192d047e8476fb5cba25b604f7d75ca87ca0dd54cd0b2cc49aeee57c79045a741cb7d0b14501953ac60c790cd105c42f23 + checksum: 442badcce1f1178ec87a0b5372ae2e9771e07c4929a3180321901f226127f252441e8689d765aa5cfba5f50ac60dd830954afc5aeae81609aefa11d3ddf5cecf languageName: node linkType: hard -"ws@npm:^8.8.1": - version: 8.16.0 - resolution: "ws@npm:8.16.0" +"ws@npm:^8.18.0, ws@npm:^8.8.1": + version: 8.18.1 + resolution: "ws@npm:8.18.1" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -11580,7 +11010,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: feb3eecd2bae82fa8a8beef800290ce437d8b8063bdc69712725f21aef77c49cb2ff45c6e5e7fce622248f9c7abaee506bae0a9064067ffd6935460c7357321b + checksum: 4658357185d891bc45cc2d42a84f9e192d047e8476fb5cba25b604f7d75ca87ca0dd54cd0b2cc49aeee57c79045a741cb7d0b14501953ac60c790cd105c42f23 languageName: node linkType: hard @@ -11612,6 +11042,13 @@ __metadata: languageName: node linkType: hard +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: eba51182400b9f35b017daa7f419f434424410691bbc5de4f4240cc830fdef906b504424992700dc047f16b4d99100a6f8b8b11175c193f38008e9c96322b6a5 + languageName: node + linkType: hard + "yaml@npm:^1.10.0": version: 1.10.2 resolution: "yaml@npm:1.10.2" @@ -11619,19 +11056,12 @@ __metadata: languageName: node linkType: hard -"yaml@npm:^2.3.4": - version: 2.3.4 - resolution: "yaml@npm:2.3.4" - checksum: e6d1dae1c6383bcc8ba11796eef3b8c02d5082911c6723efeeb5ba50fc8e881df18d645e64de68e421b577296000bea9c75d6d9097c2f6699da3ae0406c030d8 - languageName: node - linkType: hard - -"yaml@npm:~2.5.0": - version: 2.5.0 - resolution: "yaml@npm:2.5.0" +"yaml@npm:^2.3.4, yaml@npm:^2.7.0": + version: 2.7.1 + resolution: "yaml@npm:2.7.1" bin: yaml: bin.mjs - checksum: a116dca5c61641d9bf1f1016c6e71daeb1ed4915f5930ed237d45ab7a605aa5d92c332ff64879a6cd088cabede008c778774e3060ffeb4cd617d28088e4b2d83 + checksum: 385f8115ddfafdf8e599813cca8b2bf4e3f6a01b919fff5ae7da277e164df684d7dfe558b4085172094792b5a04786d3c55fa8b74abb0ee029873f031150bb80 languageName: node linkType: hard @@ -11689,14 +11119,14 @@ __metadata: linkType: hard "yup@npm:^1.4.0": - version: 1.4.0 - resolution: "yup@npm:1.4.0" + version: 1.6.1 + resolution: "yup@npm:1.6.1" dependencies: property-expr: ^2.0.5 tiny-case: ^1.0.3 toposort: ^2.0.2 type-fest: ^2.19.0 - checksum: 20a2ee0c1e891979ca16b34805b3a3be9ab4bea6ea3d2f9005b998b4dc992d0e4d7b53e5f4d8d9423420046630fb44fdf0ecf7e83bc34dd83392bca046c5229d + checksum: 4ef0b15eb01d89a4f15c78c112b588468d553420be6f2f519d0e58a270c96a5bbbf1bff7bc8909851ba8b3df5e1fdb8b34d4a3bd4e9269006c592b3e8580568f languageName: node linkType: hard From b49629e462c4e9a39093d9d3bfd117847727cb53 Mon Sep 17 00:00:00 2001 From: Peter White Date: Mon, 14 Apr 2025 22:13:35 -0600 Subject: [PATCH 03/32] feat: contract address calculation --- src/services/chain/contract.ts | 42 ++-- src/ui/components/instantiate/Step3.tsx | 22 ++- src/ui/hooks/useNewContract.ts | 242 +++++++++++++++++++++++- yarn.lock | 38 ++-- 4 files changed, 302 insertions(+), 42 deletions(-) diff --git a/src/services/chain/contract.ts b/src/services/chain/contract.ts index fab2abf5..9a7f8324 100644 --- a/src/services/chain/contract.ts +++ b/src/services/chain/contract.ts @@ -1,7 +1,7 @@ // Copyright 2022-2024 use-ink/contracts-ui authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { BlueprintPromise, CodePromise } from '@polkadot/api-contract'; +import { BlueprintPromise, CodePromise, ContractPromise } from '@polkadot/api-contract'; import { isValidAddress, isValidCodeHash, isNumber } from 'lib/util'; import { transformUserInput } from 'lib/callOptions'; import { @@ -12,6 +12,9 @@ import { SubmittableExtrinsic, } from 'types'; import { stringToU8a, compactAddLength, u8aToU8a } from '@polkadot/util'; +import { ISubmittableResult } from '@polkadot/types/types'; +import { BlueprintSubmittableResult, Contract } from '@polkadot/api-contract/base'; +import { contractsAbi } from '@polkadot/types/interfaces/definitions'; export function createInstantiateTx( api: ApiPromise, @@ -40,26 +43,31 @@ export function createInstantiateTx( }; const parsed_wasm = compactAddLength(wasm.slice(0)); - // const codeOrBlueprint = codeHash - // ? new BlueprintPromise(api, metadata, codeHash) - // : new CodePromise(api, metadata, wasm && wasm); + const codeOrBlueprint = codeHash + ? new BlueprintPromise(api, metadata, codeHash) + : new CodePromise(api, metadata, wasm && wasm); + // const transformed = transformUserInput(api.registry, constructor.args, argValues); + const transformed = transformUserInput(api.registry, constructor.args, argValues); - const data = constructor.toU8a(transformed); + const tmp = constructor.toU8a(transformed); + console.log('constructor.toU8a', tmp); + console.log('constructor.', transformed); + // + // const tx = api.tx.revive.instantiateWithCode( + // value!, + // gasLimit!, + // storageDepositLimit!, + // parsed_wasm, + // data, + // salt, + // ); - const tx = api.tx.revive.instantiateWithCode( - value!, - gasLimit!, - storageDepositLimit!, - parsed_wasm, - data, - salt, - ); + // return tx; - return tx; - // return constructor.args.length > 0 - // ? tx[constructor.method](options, ...transformed) - // : tx[constructor.method](options); + return constructor.args.length > 0 + ? codeOrBlueprint.tx[constructor.method](options, ...transformed) + : codeOrBlueprint.tx[constructor.method](options); } else { throw new Error('Error creating instantiate tx'); } diff --git a/src/ui/components/instantiate/Step3.tsx b/src/ui/components/instantiate/Step3.tsx index 4496883d..09084a1c 100644 --- a/src/ui/components/instantiate/Step3.tsx +++ b/src/ui/components/instantiate/Step3.tsx @@ -10,12 +10,16 @@ import { createInstantiateTx } from 'services/chain'; import { SubmittableResult } from 'types'; import { useApi, useInstantiate, useTransactions } from 'ui/contexts'; import { useNewContract } from 'ui/hooks'; +import { stringToU8a } from '@polkadot/util'; +import { transformUserInput } from 'lib/callOptions'; export function Step3() { const { codeHash: codeHashUrlParam } = useParams<{ codeHash: string }>(); const { data, step, setStep } = useInstantiate(); const { api } = useApi(); - const { accountId, value, metadata, gasLimit, name, constructorIndex } = data; + const { accountId, value, metadata, gasLimit, name, constructorIndex, salt } = data; + + // const transformed = transformUserInput(api.registry, data.constructor.args, argValues); const { queue, process, txs, dismiss } = useTransactions(); const [txId, setTxId] = useState(0); const onSuccess = useNewContract(); @@ -29,10 +33,24 @@ export function Step3() { const tx = createInstantiateTx(api, data); if (!txId) { + const constructor = metadata.findConstructor(constructorIndex); + const transformed = transformUserInput(api.registry, constructor.args, data.argValues); + const inputData = constructor.toU8a(transformed).slice(1); // exclude the first byte (the length byte) + const newId = queue({ extrinsic: tx, accountId: data.accountId, - onSuccess, + onSuccess: result => { + // Pass the contract data and extrinsic to onSuccess + return onSuccess({ + ...result, + contractData: { + salt: salt, // Using codeHash as salt for demonstration + data: inputData, // The contract initialization data + code: metadata?.json.source.contract_binary, + }, + }); + }, isValid, }); setTxId(newId); diff --git a/src/ui/hooks/useNewContract.ts b/src/ui/hooks/useNewContract.ts index 6d8e8295..4d40d51d 100644 --- a/src/ui/hooks/useNewContract.ts +++ b/src/ui/hooks/useNewContract.ts @@ -3,24 +3,258 @@ import { useNavigate } from 'react-router'; import type { BlueprintSubmittableResult } from 'types'; -import { useDatabase, useInstantiate } from 'ui/contexts'; +import { useApi, useDatabase, useInstantiate } from 'ui/contexts'; +import { ethers } from 'ethers'; +import { ApiTypes } from '@polkadot/api/types'; +import { stringToU8a } from '@polkadot/util'; +import { keccak256 } from 'ethers'; +import { decodeAddress, encodeAddress } from '@polkadot/keyring'; + +interface ExtendedBlueprintSubmittableResult + extends BlueprintSubmittableResult { + contractData?: { + salt: Uint8Array; + data: string; + code: Uint8Array; + originIsCaller?: boolean; + }; +} + +/** + * TypeScript equivalent of H160 (20-byte Ethereum address) + */ +type Address = string; + +/** + * Determine the address of a contract using CREATE semantics. + * @param deployer The address of the deployer + * @param nonce The nonce value + * @returns The contract address + */ +export function create1(deployer: Address, nonce: bigint | number): Address { + // Normalize the deployer address + const deployerAddress = ethers.getAddress(deployer); + + // Create RLP encoding of the deployer address and nonce + const encodedData = ethers.encodeRlp([deployerAddress, ethers.toBeHex(nonce)]); + + // Calculate keccak256 hash of the RLP encoded data + const hash = ethers.keccak256(encodedData); + + // Take the last 20 bytes (40 hex chars + 0x prefix) + return ethers.getAddress('0x' + hash.substring(26)); +} + +// /** +// * Determine the address of a contract using the CREATE2 semantics. +// * @param deployer The address of the deployer +// * @param code The initialization code +// * @param inputData Additional input data +// * @param salt A 32-byte salt value +// * @returns The contract address +// */ +// export function create2( +// deployer: Address, +// code: Uint8Array | string, +// inputData: Uint8Array | string, +// salt: string +// ): Address { +// console.log("info"); +// console.log(code); +// console.log("data"); +// console.log(inputData); +// console.log("salt"); +// console.log(salt); +// +// // Normalize inputs to Uint8Array +// const codeBytes = typeof code === 'string' +// ? stringToU8a(code) +// : code; +// +// const inputDataBytes = typeof inputData === 'string' +// ? stringToU8a(inputData) +// : inputData; +// +// const normalizedSalt = stringToU8a(salt.substring(2)); +// +// // Concatenate code and input data +// const initCode = new Uint8Array(codeBytes.length + inputDataBytes.length); +// initCode.set(codeBytes); +// initCode.set(inputDataBytes, codeBytes.length); +// +// // Calculate init code hash +// const initCodeHash = ethers.keccak256(initCode); +// +// // Build the input buffer: 0xff + deployer + salt + initCodeHash +// const buffer = ethers.concat([ +// new Uint8Array([0xff]), +// ethers.getBytes(deployer), +// ethers.getBytes(normalizedSalt), +// ethers.getBytes(initCodeHash) +// ]); +// +// // Calculate keccak256 hash of the buffer +// const hash = ethers.keccak256(buffer); +// +// // Take the last 20 bytes (40 hex chars + 0x prefix) +// return ethers.getAddress("0x" + hash.substring(26)); +// } + +// function create2(deployer: Address, code: Uint8Array, input_data: Uint8Array, salt: Uint8Array): Address { +// const init_code = Uint8Array.from([...code, ...input_data]); +// const init_code_hash = keccak256(init_code); +// const bytes = new Uint8Array(85); +// bytes[0] = 0xff; +// bytes.set(stringToU8a(deployer.toString()), 1); +// console.log(salt); +// console.log(salt.length); +// bytes.set(salt.slice(0, 32), 21); +// console.log(init_code_hash.length); +// bytes.set(stringToU8a(init_code_hash.substring(2)), 53); +// const hash = stringToU8a(keccak256(bytes).substring(2)); +// const addressBytes = hash.slice(12); +// // const address = new (addressBytes); +// console.log("addressBytes"); +// console.log(addressBytes); +// console.log(addressBytes.toString()); +// return addressBytes.toString(); +// } + +export function create2( + deployer: string, + code: Uint8Array, + inputData: Uint8Array, + salt: Uint8Array, +): string { + // if (salt.length !== 32) { + // throw new Error('Salt must be 32 bytes'); + // } + + const initCode = new Uint8Array([...code, ...inputData]); + const initCodeHash = stringToU8a(keccak256(initCode)); + + const parts = new Uint8Array(1 + (20 + 32 + 32) * 2); // 0xff + deployer + salt + initCodeHash + parts[0] = 0xff; + parts.set(stringToU8a(deployer.slice(2)), 1); + console.log('HERE'); + console.log(initCodeHash); + parts.set(salt.slice(2), 21); + parts.set(initCodeHash.slice(2), 53); + + const hash = keccak256(parts); + + // Return last 20 bytes as 0x-prefixed hex string + // return '0x' + Buffer.from(hash.slice(12, 42)).toString('hex'); + console.log(hash); + console.log(hash.toString()); + return ethers.getAddress('0x' + hash.substring(26)); +} + +/** + * Converts an account ID to an Ethereum address (H160) + * @param accountId The account ID bytes + * @returns The Ethereum address + */ +export function toEthAddress(accountId: Uint8Array | string): string { + // Convert string input to Uint8Array if needed + const accountBytes = typeof accountId === 'string' ? stringToU8a(accountId) : accountId; + + // Create a 32-byte buffer and copy account bytes into it + const accountBuffer = new Uint8Array(32); + accountBuffer.set(accountBytes.slice(0, 32)); + + if (isEthDerived(accountBytes)) { + // This was originally an eth address + // We just strip the 0xEE suffix to get the original address + return '0x' + Buffer.from(accountBuffer.slice(0, 20)).toString('hex'); + } else { + // This is an (ed|sr)25519 derived address + // Avoid truncating the public key by hashing it first + const accountHash = ethers.keccak256(accountBuffer); + return ethers.getAddress('0x' + accountHash.slice(2 + 24, 2 + 24 + 40)); // Skip '0x' prefix, then skip 12 bytes, take 20 bytes + } +} + +/** + * Determines if an account ID is derived from an Ethereum address + * @param accountId The account ID bytes + * @returns True if the account is derived from an Ethereum address + */ +function isEthDerived(accountId: Uint8Array): boolean { + if (accountId.length >= 32) { + return accountId[20] === 0xee && accountId[21] === 0xee; + } + return false; +} export function useNewContract() { const { db } = useDatabase(); const navigate = useNavigate(); + const instantiate = useInstantiate(); + const { api } = useApi(); + + console.log('Instantiate', instantiate); + const { data: { accountId, name }, - } = useInstantiate(); + } = instantiate; + + async function getNonce() { + try { + const nonce = await api.call.accountNonceApi.accountNonce(accountId); + return nonce.toNumber(); + } catch (error) { + console.error('Error fetching nonce:', error); + return null; + } + } + + return async function ({ + contract, + contractData, + }: ExtendedBlueprintSubmittableResult<'promise'>): Promise { + console.log('Processing contract submission'); + console.log(contract); + console.log(contractData); + console.log(contractData?.code.toString()); - return async function ({ contract }: BlueprintSubmittableResult<'promise'>): Promise { if (accountId && contract?.abi.json) { + // Calculate the expected contract address based on the Rust logic + let calculatedAddress; + + if (contractData) { + const { salt, code, data, originIsCaller = false } = contractData; + const mappedAccount = toEthAddress(decodeAddress(accountId)); + console.log('Mapped account address:', mappedAccount); + console.log(mappedAccount); + + if (salt) { + // Use CREATE2 if salt is provided + calculatedAddress = create2(mappedAccount, code, data, salt); + console.log('CREATE2 calculated address:', calculatedAddress); + } else { + // Use CREATE1 if no salt is provided + const nonce = await getNonce(); + + if (nonce !== null) { + const adjustedNonce = originIsCaller ? Math.max(0, nonce - 1) : nonce; + calculatedAddress = create1(mappedAccount, BigInt(adjustedNonce)); + console.log('CREATE1 calculated address with nonce:', adjustedNonce); + console.log('Calculated address:', calculatedAddress); + } + } + } + const codeHash = contract.abi.info.source.wasmHash.toHex(); + const document = { abi: contract.abi.json, - address: contract.address.toString(), + address: calculatedAddress, codeHash, date: new Date().toISOString(), name, + // Store the calculated address + calculatedAddress: calculatedAddress || undefined, }; await Promise.all([ diff --git a/yarn.lock b/yarn.lock index 1b4a1b80..18135f13 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1176,7 +1176,7 @@ __metadata: "@polkadot/api-contract@file:/Users/peter/dev/dot-repos/api/packages/api-contract/build::locator=contracts-ui%40workspace%3A.": version: 15.8.1 - resolution: "@polkadot/api-contract@file:/Users/peter/dev/dot-repos/api/packages/api-contract/build#/Users/peter/dev/dot-repos/api/packages/api-contract/build::hash=708da4&locator=contracts-ui%40workspace%3A." + resolution: "@polkadot/api-contract@file:/Users/peter/dev/dot-repos/api/packages/api-contract/build#/Users/peter/dev/dot-repos/api/packages/api-contract/build::hash=dc3fb3&locator=contracts-ui%40workspace%3A." dependencies: "@polkadot/api": 15.8.1 "@polkadot/api-augment": 15.8.1 @@ -1187,7 +1187,7 @@ __metadata: "@polkadot/util-crypto": ^13.4.3 rxjs: ^7.8.1 tslib: ^2.8.1 - checksum: 277ef5a1d6e48355457a4b46e371c409610bdd1b60b0d071678228c6809fbef8434c5d58a03566a44c2ab5967d8c8bc60ec846cb85c703672cde0ae6ef2a9ce4 + checksum: 50ec11a1ba781b05bce38040923733eddf5e87af7466e74a0fca8cf834d6aaf77438b4de7b92d7fa88e6e7cd52fca53497fb059d2ddea6e54738def97a0f18f2 languageName: node linkType: hard @@ -1554,9 +1554,9 @@ __metadata: languageName: node linkType: hard -"@polkadot/types@file:../../types/build::locator=%40polkadot%2Fapi-contract%40file%3A%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%23%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3D708da4%26locator%3Dcontracts-ui%2540workspace%253A.": +"@polkadot/types@file:../../types/build::locator=%40polkadot%2Fapi-contract%40file%3A%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%23%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3Ddc3fb3%26locator%3Dcontracts-ui%2540workspace%253A.": version: 15.8.1 - resolution: "@polkadot/types@file:../../types/build#../../types/build::hash=169299&locator=%40polkadot%2Fapi-contract%40file%3A%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%23%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3D708da4%26locator%3Dcontracts-ui%2540workspace%253A." + resolution: "@polkadot/types@file:../../types/build#../../types/build::hash=169299&locator=%40polkadot%2Fapi-contract%40file%3A%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%23%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3Ddc3fb3%26locator%3Dcontracts-ui%2540workspace%253A." dependencies: "@polkadot/keyring": ^13.4.3 "@polkadot/types-augment": 15.8.1 @@ -2822,9 +2822,9 @@ __metadata: linkType: hard "abbrev@npm:^3.0.0": - version: 3.0.0 - resolution: "abbrev@npm:3.0.0" - checksum: 2500075b5ef85e97c095ab6ab2ea640dcf90bb388f46398f4d347b296f53399f984ec9462c74bee81df6bba56ef5fd9dbc2fb29076b1feb0023e0f52d43eb984 + version: 3.0.1 + resolution: "abbrev@npm:3.0.1" + checksum: e70b209f5f408dd3a3bbd0eec4b10a2ffd64704a4a3821d0969d84928cc490a8eb60f85b78a95622c1841113edac10161c62e52f5e7d0027aa26786a8136e02e languageName: node linkType: hard @@ -3521,9 +3521,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001688, caniuse-lite@npm:^1.0.30001702": - version: 1.0.30001712 - resolution: "caniuse-lite@npm:1.0.30001712" - checksum: 83760e735d1d7ab9ff7270747d70b71da4341bdc1c90df9fe2008ada382653e13d7501bfd7068e1d835184b03b8ac598b127bfe3e7d53419b9d7827730b4ae1a + version: 1.0.30001713 + resolution: "caniuse-lite@npm:1.0.30001713" + checksum: 45fd9ae77965a694818d495671ba3e9a87e4eed063824b2244c0b83b1ab0ba2d8e71dcd45441f638caadf8f0c99e154a4326bbef5c291327090cdc38feeda6fd languageName: node linkType: hard @@ -4388,9 +4388,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.5.73": - version: 1.5.135 - resolution: "electron-to-chromium@npm:1.5.135" - checksum: daba16981a21b37b99be3b5bfd60b0c93c59d53d8f9c5bf80e36a3e6a6c1d61c2b20d9ed610eb1ae57abe32bdc514e9c7fe63b2adce7814c1211f57357ed7349 + version: 1.5.136 + resolution: "electron-to-chromium@npm:1.5.136" + checksum: 848e40a5f5b1de9dfbd82f3c29a696afa9a3d5372e6a83aef14ee5779e05f5cc055f7381f4bea46be5a991626683543c28fa1844e10e6d313bbe5d4680deef76 languageName: node linkType: hard @@ -6772,8 +6772,8 @@ __metadata: linkType: hard "listr2@npm:^8.2.5": - version: 8.3.1 - resolution: "listr2@npm:8.3.1" + version: 8.3.2 + resolution: "listr2@npm:8.3.2" dependencies: cli-truncate: ^4.0.0 colorette: ^2.0.20 @@ -6781,7 +6781,7 @@ __metadata: log-update: ^6.1.0 rfdc: ^1.4.1 wrap-ansi: ^9.0.0 - checksum: fe6fa1d2282daca515a71be3d770cab42192189b32b8c4a2269442ba1063a32f7df87a3c98cf73b58dc21487e49408ec5006e870eb120fda95618a6cb6bb8967 + checksum: f820250d081efd8ccc9f7751623650d184b82bea16c12e254815681f19c75836ee6494d0ea27088e250f49fd328fbc33120dadb8d55ee45fe5abca1de8e6da09 languageName: node linkType: hard @@ -10713,8 +10713,8 @@ __metadata: linkType: hard "vite@npm:^5.0.0, vite@npm:^5.4.2": - version: 5.4.17 - resolution: "vite@npm:5.4.17" + version: 5.4.18 + resolution: "vite@npm:5.4.18" dependencies: esbuild: ^0.21.3 fsevents: ~2.3.3 @@ -10751,7 +10751,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: c3921629c49fc58a87678620f5537d88a002abb874254a1d8f9952808bb64669c353a2fe2723262f3af865f42042bc5e0e9ee4740190ad97263681f2c052c922 + checksum: b61bab8c74b7a1a626e26ae2802734d666818b2a1856217b330ea7522e24a619f3d7f690f0466ea844d96549da44409075289cbc0fa8cb0245d40017c8455f74 languageName: node linkType: hard From 426b6fddbd1fd2f409f2937f2ef8e3cab0e1c921 Mon Sep 17 00:00:00 2001 From: Peter White Date: Wed, 16 Apr 2025 16:23:09 -0600 Subject: [PATCH 04/32] feat: create1 address calc works and autorecognize contract --- src/services/chain/contract.ts | 23 +-- src/services/db/index.ts | 1 + src/types/ui/hooks.ts | 1 + src/ui/components/common/HeaderButtons.tsx | 4 +- src/ui/components/contract/ContractRow.tsx | 5 +- src/ui/components/contract/Interact.tsx | 11 +- src/ui/components/instantiate/Step2.tsx | 23 ++- src/ui/components/instantiate/Step3.tsx | 13 +- src/ui/hooks/useNewContract.ts | 170 +++++++-------------- src/ui/hooks/useStoredContract.ts | 3 +- src/ui/layout/sidebar/QuickLinks.tsx | 2 +- src/ui/pages/AddressLookup.tsx | 8 +- src/ui/pages/ContractHeader.tsx | 14 +- 13 files changed, 100 insertions(+), 178 deletions(-) diff --git a/src/services/chain/contract.ts b/src/services/chain/contract.ts index 9a7f8324..648c0666 100644 --- a/src/services/chain/contract.ts +++ b/src/services/chain/contract.ts @@ -11,10 +11,11 @@ import { InstantiateData, SubmittableExtrinsic, } from 'types'; -import { stringToU8a, compactAddLength, u8aToU8a } from '@polkadot/util'; +import { stringToU8a, compactAddLength, u8aToU8a, hexToU8a } from '@polkadot/util'; import { ISubmittableResult } from '@polkadot/types/types'; import { BlueprintSubmittableResult, Contract } from '@polkadot/api-contract/base'; import { contractsAbi } from '@polkadot/types/interfaces/definitions'; +import { fromEthAddress, isEthDerived, toEthAddress } from 'ui/hooks'; export function createInstantiateTx( api: ApiPromise, @@ -42,29 +43,12 @@ export function createInstantiateTx( value, }; - const parsed_wasm = compactAddLength(wasm.slice(0)); const codeOrBlueprint = codeHash ? new BlueprintPromise(api, metadata, codeHash) : new CodePromise(api, metadata, wasm && wasm); - // const transformed = transformUserInput(api.registry, constructor.args, argValues); const transformed = transformUserInput(api.registry, constructor.args, argValues); - const tmp = constructor.toU8a(transformed); - console.log('constructor.toU8a', tmp); - console.log('constructor.', transformed); - // - // const tx = api.tx.revive.instantiateWithCode( - // value!, - // gasLimit!, - // storageDepositLimit!, - // parsed_wasm, - // data, - // salt, - // ); - - // return tx; - return constructor.args.length > 0 ? codeOrBlueprint.tx[constructor.method](options, ...transformed) : codeOrBlueprint.tx[constructor.method](options); @@ -74,8 +58,9 @@ export function createInstantiateTx( } export async function getContractInfo(api: ApiPromise, address: string) { + // TODO: fix isValidAddress if (isValidAddress(address) || true) { - return (await api.query.revive.contractInfoOf(address.substring(0, 42))).unwrapOr(null); + return (await api.query.revive.contractInfoOf(address)).unwrapOr(null); } } diff --git a/src/services/db/index.ts b/src/services/db/index.ts index 9056bc48..a38e17a0 100644 --- a/src/services/db/index.ts +++ b/src/services/db/index.ts @@ -14,6 +14,7 @@ export interface CodeBundleDocument { export interface ContractDocument extends CodeBundleDocument { abi: Record; address: string; + dotAddress: string; external?: boolean; } diff --git a/src/types/ui/hooks.ts b/src/types/ui/hooks.ts index 8a4b3643..3224917d 100644 --- a/src/types/ui/hooks.ts +++ b/src/types/ui/hooks.ts @@ -49,4 +49,5 @@ export interface UIContract extends Pick { type: 'added' | 'instantiated'; codeHash: string; address: string; + dotAddress: string; } diff --git a/src/ui/components/common/HeaderButtons.tsx b/src/ui/components/common/HeaderButtons.tsx index 1fdfa76f..a3896702 100644 --- a/src/ui/components/common/HeaderButtons.tsx +++ b/src/ui/components/common/HeaderButtons.tsx @@ -14,7 +14,7 @@ interface Props { contract: UIContract; } -export function HeaderButtons({ contract: { address, codeHash } }: Props) { +export function HeaderButtons({ contract: { address, dotAddress, codeHash } }: Props) { const { api } = useApi(); const { db } = useDatabase(); const [isOnChain, setIsOnChain] = useState(true); @@ -61,7 +61,7 @@ export function HeaderButtons({ contract: { address, codeHash } }: Props) { }} title="Forget contract" > - + diff --git a/src/ui/components/contract/ContractRow.tsx b/src/ui/components/contract/ContractRow.tsx index 1089d6b9..c5789ee3 100644 --- a/src/ui/components/contract/ContractRow.tsx +++ b/src/ui/components/contract/ContractRow.tsx @@ -9,12 +9,13 @@ import { ContractDocument } from 'types'; import { useApi } from 'ui/contexts'; import { displayDate, truncate } from 'lib/util'; import { getContractInfo } from 'services/chain'; +import { fromEthAddress, toEthAddress } from 'ui/hooks'; interface Props { contract: ContractDocument; } -export function ContractRow({ contract: { address, name, date } }: Props) { +export function ContractRow({ contract: { address, dotAddress, name, date } }: Props) { const { api } = useApi(); const [isOnChain, setIsOnChain] = useState(true); @@ -46,7 +47,7 @@ export function ContractRow({ contract: { address, name, date } }: Props) {
{displayDate(date)}
- +
); diff --git a/src/ui/components/contract/Interact.tsx b/src/ui/components/contract/Interact.tsx index 14064fcf..0612da65 100644 --- a/src/ui/components/contract/Interact.tsx +++ b/src/ui/components/contract/Interact.tsx @@ -41,6 +41,7 @@ export const InteractTab = ({ abi: { registry }, tx, address, + dotAddress, }, }: Props) => { const { accounts, api } = useApi(); @@ -76,7 +77,7 @@ export const InteractTab = ({ const params: Parameters = useMemo(() => { return [ accountId, - address.substring(0, 42), + address, message?.isPayable ? api.registry.createType('Balance', value) : api.registry.createType('Balance', BN_ZERO), @@ -87,6 +88,7 @@ export const InteractTab = ({ }, [ accountId, address, + dotAddress, api.registry, inputData, isCustom, @@ -185,17 +187,10 @@ export const InteractTab = ({ const isValid = (result: SubmittableResult) => !result.isError && !result.dispatchError; - console.log('message'); - console.log(message); - console.log('tx'); - console.log(tx); - console.log(message.method); - console.log(transformUserInput(registry, message.args, argValues)); const extrinsic = tx[message.method]( options, ...transformUserInput(registry, message.args, argValues), ); - console.log(extrinsic); newId.current = queue({ extrinsic, diff --git a/src/ui/components/instantiate/Step2.tsx b/src/ui/components/instantiate/Step2.tsx index 6404bccd..786bd892 100644 --- a/src/ui/components/instantiate/Step2.tsx +++ b/src/ui/components/instantiate/Step2.tsx @@ -22,11 +22,21 @@ import { useToggle, useStorageDepositLimit, useBalance, + create2, + toEthAddress, + create1, } from 'ui/hooks'; import { AbiMessage, Balance, OrFalsy } from 'types'; -import { decodeStorageDeposit, getGasLimit, getStorageDepositLimit } from 'lib/callOptions'; +import { + decodeStorageDeposit, + getGasLimit, + getStorageDepositLimit, + transformUserInput, +} from 'lib/callOptions'; import { BN_ZERO } from 'lib/bn'; import { hasRevertFlag } from 'lib/hasRevertFlag'; +import { hexToU8a, stringToU8a } from '@polkadot/util'; +import { decodeAddress } from '@polkadot/keyring'; function validateSalt(value: OrFalsy) { if (!!value && value.length === 66) { @@ -63,10 +73,9 @@ export function Step2() { }, [metadata, setConstructorIndex]); const [isUsingSalt, toggleIsUsingSalt] = useToggle(true); + const code = metadata?.json.source.contract_binary; - const wasm = metadata?.info.source.wasm; - - const params: Parameters = useMemo(() => { + const params: Parameters = useMemo(() => { return [ accountId, deployConstructor?.isPayable @@ -74,9 +83,7 @@ export function Step2() { : api.registry.createType('Balance', BN_ZERO), getGasLimit(isCustom, refTime.limit, proofSize.limit, api.registry), getStorageDepositLimit(storageDepositLimit.isActive, storageDepositLimit.value, api.registry), - codeHashUrlParam - ? { Existing: codeHashUrlParam } - : { Upload: metadata?.json.source.contract_binary }, // TODO: update type + codeHashUrlParam ? { Existing: codeHashUrlParam } : { Upload: code }, // TODO: update type inputData ?? '', isUsingSalt ? salt.value : '', ]; @@ -91,7 +98,7 @@ export function Step2() { storageDepositLimit.isActive, storageDepositLimit.value, codeHashUrlParam, - metadata?.info.source.wasm, + metadata?.json.source.contract_binary, inputData, isUsingSalt, salt.value, diff --git a/src/ui/components/instantiate/Step3.tsx b/src/ui/components/instantiate/Step3.tsx index 09084a1c..bc72cb1e 100644 --- a/src/ui/components/instantiate/Step3.tsx +++ b/src/ui/components/instantiate/Step3.tsx @@ -9,9 +9,10 @@ import { printBN } from 'lib/bn'; import { createInstantiateTx } from 'services/chain'; import { SubmittableResult } from 'types'; import { useApi, useInstantiate, useTransactions } from 'ui/contexts'; -import { useNewContract } from 'ui/hooks'; -import { stringToU8a } from '@polkadot/util'; +import { create2, toEthAddress, useNewContract } from 'ui/hooks'; +import { hexToU8a, stringToU8a } from '@polkadot/util'; import { transformUserInput } from 'lib/callOptions'; +import { decodeAddress } from '@polkadot/keyring'; export function Step3() { const { codeHash: codeHashUrlParam } = useParams<{ codeHash: string }>(); @@ -30,13 +31,13 @@ export function Step3() { const isValid = (result: SubmittableResult) => !result.isError && !result.dispatchError; if (data.accountId) { + const constructor = metadata.findConstructor(constructorIndex); + const transformed = transformUserInput(api.registry, constructor.args, data.argValues); + const inputData = constructor.toU8a(transformed).slice(1); // exclude the first byte (the length byte) + const tx = createInstantiateTx(api, data); if (!txId) { - const constructor = metadata.findConstructor(constructorIndex); - const transformed = transformUserInput(api.registry, constructor.args, data.argValues); - const inputData = constructor.toU8a(transformed).slice(1); // exclude the first byte (the length byte) - const newId = queue({ extrinsic: tx, accountId: data.accountId, diff --git a/src/ui/hooks/useNewContract.ts b/src/ui/hooks/useNewContract.ts index 4d40d51d..351a034b 100644 --- a/src/ui/hooks/useNewContract.ts +++ b/src/ui/hooks/useNewContract.ts @@ -4,18 +4,18 @@ import { useNavigate } from 'react-router'; import type { BlueprintSubmittableResult } from 'types'; import { useApi, useDatabase, useInstantiate } from 'ui/contexts'; -import { ethers } from 'ethers'; +import { BigNumberish, ethers, RlpStructuredDataish, toBeHex, toUtf8String } from 'ethers'; import { ApiTypes } from '@polkadot/api/types'; -import { stringToU8a } from '@polkadot/util'; +import { hexToU8a, stringToU8a, u8aToHex } from '@polkadot/util'; import { keccak256 } from 'ethers'; import { decodeAddress, encodeAddress } from '@polkadot/keyring'; interface ExtendedBlueprintSubmittableResult extends BlueprintSubmittableResult { contractData?: { - salt: Uint8Array; - data: string; - code: Uint8Array; + salt: string; + data: Uint8Array; + code: string; originIsCaller?: boolean; }; } @@ -31,12 +31,15 @@ type Address = string; * @param nonce The nonce value * @returns The contract address */ -export function create1(deployer: Address, nonce: bigint | number): Address { - // Normalize the deployer address - const deployerAddress = ethers.getAddress(deployer); +export function create1(deployer: string, nonce: number): Address { + // Convert deployer to bytes (remove 0x prefix if present) + const deployerBytes = ethers.hexlify(deployer); + ethers.toBeHex(nonce as BigNumberish); + // Convert nonce to hex (minimal encoding) + const nonceBytes = ethers.toBeHex(nonce as BigNumberish); - // Create RLP encoding of the deployer address and nonce - const encodedData = ethers.encodeRlp([deployerAddress, ethers.toBeHex(nonce)]); + // RLP encode [deployer, nonce] + const encodedData = ethers.encodeRlp([deployerBytes, nonceBytes]); // Calculate keccak256 hash of the RLP encoded data const hash = ethers.keccak256(encodedData); @@ -45,108 +48,24 @@ export function create1(deployer: Address, nonce: bigint | number): Address { return ethers.getAddress('0x' + hash.substring(26)); } -// /** -// * Determine the address of a contract using the CREATE2 semantics. -// * @param deployer The address of the deployer -// * @param code The initialization code -// * @param inputData Additional input data -// * @param salt A 32-byte salt value -// * @returns The contract address -// */ -// export function create2( -// deployer: Address, -// code: Uint8Array | string, -// inputData: Uint8Array | string, -// salt: string -// ): Address { -// console.log("info"); -// console.log(code); -// console.log("data"); -// console.log(inputData); -// console.log("salt"); -// console.log(salt); -// -// // Normalize inputs to Uint8Array -// const codeBytes = typeof code === 'string' -// ? stringToU8a(code) -// : code; -// -// const inputDataBytes = typeof inputData === 'string' -// ? stringToU8a(inputData) -// : inputData; -// -// const normalizedSalt = stringToU8a(salt.substring(2)); -// -// // Concatenate code and input data -// const initCode = new Uint8Array(codeBytes.length + inputDataBytes.length); -// initCode.set(codeBytes); -// initCode.set(inputDataBytes, codeBytes.length); -// -// // Calculate init code hash -// const initCodeHash = ethers.keccak256(initCode); -// -// // Build the input buffer: 0xff + deployer + salt + initCodeHash -// const buffer = ethers.concat([ -// new Uint8Array([0xff]), -// ethers.getBytes(deployer), -// ethers.getBytes(normalizedSalt), -// ethers.getBytes(initCodeHash) -// ]); -// -// // Calculate keccak256 hash of the buffer -// const hash = ethers.keccak256(buffer); -// -// // Take the last 20 bytes (40 hex chars + 0x prefix) -// return ethers.getAddress("0x" + hash.substring(26)); -// } - -// function create2(deployer: Address, code: Uint8Array, input_data: Uint8Array, salt: Uint8Array): Address { -// const init_code = Uint8Array.from([...code, ...input_data]); -// const init_code_hash = keccak256(init_code); -// const bytes = new Uint8Array(85); -// bytes[0] = 0xff; -// bytes.set(stringToU8a(deployer.toString()), 1); -// console.log(salt); -// console.log(salt.length); -// bytes.set(salt.slice(0, 32), 21); -// console.log(init_code_hash.length); -// bytes.set(stringToU8a(init_code_hash.substring(2)), 53); -// const hash = stringToU8a(keccak256(bytes).substring(2)); -// const addressBytes = hash.slice(12); -// // const address = new (addressBytes); -// console.log("addressBytes"); -// console.log(addressBytes); -// console.log(addressBytes.toString()); -// return addressBytes.toString(); -// } - export function create2( deployer: string, code: Uint8Array, inputData: Uint8Array, - salt: Uint8Array, + salt: string, ): string { - // if (salt.length !== 32) { - // throw new Error('Salt must be 32 bytes'); - // } - const initCode = new Uint8Array([...code, ...inputData]); - const initCodeHash = stringToU8a(keccak256(initCode)); + const initCodeHash = hexToU8a(keccak256(initCode)); - const parts = new Uint8Array(1 + (20 + 32 + 32) * 2); // 0xff + deployer + salt + initCodeHash + const parts = new Uint8Array(1 + 20 + 32 + 32); // 0xff + deployer + salt + initCodeHash parts[0] = 0xff; - parts.set(stringToU8a(deployer.slice(2)), 1); - console.log('HERE'); - console.log(initCodeHash); - parts.set(salt.slice(2), 21); - parts.set(initCodeHash.slice(2), 53); + parts.set(hexToU8a(deployer), 1); + parts.set(hexToU8a(salt), 21); + parts.set(initCodeHash, 53); const hash = keccak256(parts); // Return last 20 bytes as 0x-prefixed hex string - // return '0x' + Buffer.from(hash.slice(12, 42)).toString('hex'); - console.log(hash); - console.log(hash.toString()); return ethers.getAddress('0x' + hash.substring(26)); } @@ -175,12 +94,38 @@ export function toEthAddress(accountId: Uint8Array | string): string { } } +export function fromEthAddress(ethAddress: string): string { + // Remove '0x' prefix if it exists + const cleanAddress = ethAddress.startsWith('0x') ? ethAddress.slice(2) : ethAddress; + + // Convert the hex string to bytes + const addressBytes = Buffer.from(cleanAddress, 'hex'); + + // Check if the address is the expected length (20 bytes) + if (addressBytes.length !== 20) { + throw new Error('Invalid Ethereum address: must be 20 bytes'); + } + + // Create a 32-byte buffer + const result = new Uint8Array(32); + + // Set the first 20 bytes to the Ethereum address + result.set(addressBytes, 0); + + // Fill the remaining 12 bytes with 0xEE + for (let i = 20; i < 32; i++) { + result[i] = 0xee; + } + + return u8aToHex(result); +} + /** * Determines if an account ID is derived from an Ethereum address * @param accountId The account ID bytes * @returns True if the account is derived from an Ethereum address */ -function isEthDerived(accountId: Uint8Array): boolean { +export function isEthDerived(accountId: Uint8Array): boolean { if (accountId.length >= 32) { return accountId[20] === 0xee && accountId[21] === 0xee; } @@ -193,8 +138,6 @@ export function useNewContract() { const instantiate = useInstantiate(); const { api } = useApi(); - console.log('Instantiate', instantiate); - const { data: { accountId, name }, } = instantiate; @@ -213,11 +156,6 @@ export function useNewContract() { contract, contractData, }: ExtendedBlueprintSubmittableResult<'promise'>): Promise { - console.log('Processing contract submission'); - console.log(contract); - console.log(contractData); - console.log(contractData?.code.toString()); - if (accountId && contract?.abi.json) { // Calculate the expected contract address based on the Rust logic let calculatedAddress; @@ -225,22 +163,17 @@ export function useNewContract() { if (contractData) { const { salt, code, data, originIsCaller = false } = contractData; const mappedAccount = toEthAddress(decodeAddress(accountId)); - console.log('Mapped account address:', mappedAccount); - console.log(mappedAccount); if (salt) { // Use CREATE2 if salt is provided - calculatedAddress = create2(mappedAccount, code, data, salt); - console.log('CREATE2 calculated address:', calculatedAddress); + calculatedAddress = create2(mappedAccount, hexToU8a(code), data, salt); } else { // Use CREATE1 if no salt is provided const nonce = await getNonce(); if (nonce !== null) { const adjustedNonce = originIsCaller ? Math.max(0, nonce - 1) : nonce; - calculatedAddress = create1(mappedAccount, BigInt(adjustedNonce)); - console.log('CREATE1 calculated address with nonce:', adjustedNonce); - console.log('Calculated address:', calculatedAddress); + calculatedAddress = create1(mappedAccount, adjustedNonce - 2); } } } @@ -249,12 +182,11 @@ export function useNewContract() { const document = { abi: contract.abi.json, - address: calculatedAddress, + address: calculatedAddress!, + dotAddress: fromEthAddress(calculatedAddress!), codeHash, date: new Date().toISOString(), name, - // Store the calculated address - calculatedAddress: calculatedAddress || undefined, }; await Promise.all([ @@ -266,7 +198,7 @@ export function useNewContract() { }), ]); - navigate(`/contract/${contract.address}`); + navigate(`/contract/${document.address}`); } }; } diff --git a/src/ui/hooks/useStoredContract.ts b/src/ui/hooks/useStoredContract.ts index 58d049cf..6c9234c0 100644 --- a/src/ui/hooks/useStoredContract.ts +++ b/src/ui/hooks/useStoredContract.ts @@ -37,7 +37,8 @@ export function useStoredContract(address: string): UIContract | undefined { displayName: document.name, tx: contract.tx, codeHash: document.codeHash, - address: contract.address.toString() + 'e'.repeat(24), + address: contract.address, + dotAddress: document.dotAddress, date: document.date, id: document.id, type: document.external ? 'added' : 'instantiated', diff --git a/src/ui/layout/sidebar/QuickLinks.tsx b/src/ui/layout/sidebar/QuickLinks.tsx index 5f3c3d51..4d7d1951 100644 --- a/src/ui/layout/sidebar/QuickLinks.tsx +++ b/src/ui/layout/sidebar/QuickLinks.tsx @@ -16,7 +16,7 @@ export function QuickLinks() {
Your Contracts
{contracts && contracts.length > 0 ? ( - contracts.map(({ name, address }) => { + contracts.map(({ name, address, dotAddress }) => { return ( {name} diff --git a/src/ui/pages/AddressLookup.tsx b/src/ui/pages/AddressLookup.tsx index b12c9c3f..7d114da6 100644 --- a/src/ui/pages/AddressLookup.tsx +++ b/src/ui/pages/AddressLookup.tsx @@ -59,13 +59,9 @@ export function AddressLookup() { async function validate() { if (address !== searchString) { if (isValidAddress(searchString)) { - console.log(db); - console.log(await db.contracts.count()); - // const isOnChain = true;// await getContractInfo(api, searchString); const isOnChain = await getContractInfo(api, searchString); - if (true) { - // const contract = await db.contracts.get({ address: searchString }); - const contract = undefined; + if (isOnChain) { + const contract = await db.contracts.get({ address: searchString }); // Contract is already instantiated in current UI if (contract) { diff --git a/src/ui/pages/ContractHeader.tsx b/src/ui/pages/ContractHeader.tsx index c2fbde3f..3ea5a8f8 100644 --- a/src/ui/pages/ContractHeader.tsx +++ b/src/ui/pages/ContractHeader.tsx @@ -11,21 +11,23 @@ interface Props { document: UIContract; } -export function ContractHeader({ document: { name, type, address, date, codeHash } }: Props) { +export function ContractHeader({ + document: { name, type, address, dotAddress, date, codeHash }, +}: Props) { switch (type) { case 'added': return (
You added this contract from{' '}
- - {truncate(address, 4)} + + {truncate(address.toString(), 4)}
{' '} on {displayDate(date)} and holds a value of{' '} - +
); @@ -38,7 +40,7 @@ export function ContractHeader({ document: { name, type, address, date, codeHash className="relative inline-block rounded bg-blue-500 bg-opacity-20 px-1.5 py-1 font-mono text-xs text-blue-400" title={address} > - {truncate(address, 4)} + {truncate(address.toString(), 4)}
{' '} @@ -52,7 +54,7 @@ export function ContractHeader({ document: { name, type, address, date, codeHash {' '} on {displayDate(date)} and holds a value of{' '} - + ); From 0a210bf15612bf41070a23a3668c60ab7bdbeb3b Mon Sep 17 00:00:00 2001 From: Peter White Date: Wed, 16 Apr 2025 17:50:40 -0600 Subject: [PATCH 05/32] fix: build errors and add warning banner --- package.json | 3 ++- src/lib/util.ts | 5 ++--- src/services/chain/contract.ts | 9 +++------ src/ui/components/common/HeaderButtons.tsx | 2 +- src/ui/components/contract/ContractRow.tsx | 1 - src/ui/components/contract/Interact.tsx | 3 +-- src/ui/components/contract/OutcomeItem.tsx | 6 +++--- src/ui/components/form/InputBn.tsx | 2 +- src/ui/components/instantiate/Step2.tsx | 18 +++++------------- src/ui/components/instantiate/Step3.tsx | 16 ++++++++-------- src/ui/contexts/DatabaseContext.tsx | 2 +- src/ui/hooks/useNewContract.ts | 4 ++-- src/ui/hooks/useStoredContract.ts | 2 +- src/ui/layout/RootLayout.tsx | 7 +++++++ src/ui/layout/sidebar/NavLink.tsx | 2 +- src/ui/layout/sidebar/QuickLinks.tsx | 2 +- src/ui/pages/AddressLookup.tsx | 2 ++ yarn.lock | 22 ++++++++++++++++------ 18 files changed, 57 insertions(+), 51 deletions(-) diff --git a/package.json b/package.json index a469fbd7..1fd03b43 100644 --- a/package.json +++ b/package.json @@ -68,7 +68,8 @@ "@types/bcryptjs": "^2.4.6", "@types/big.js": "^6.2.2", "@types/node": "^22.5.0", - "@types/react-dom": "^18.3.0", + "@types/react": "^19.1.2", + "@types/react-dom": "^19.1.2", "@typescript-eslint/eslint-plugin": "^8.2.0", "@typescript-eslint/parser": "^8.2.0", "@vitejs/plugin-react": "^4.3.1", diff --git a/src/lib/util.ts b/src/lib/util.ts index 0eb152a7..9452002f 100644 --- a/src/lib/util.ts +++ b/src/lib/util.ts @@ -1,8 +1,6 @@ // Copyright 2022-2024 use-ink/contracts-ui authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { decodeAddress, encodeAddress } from '@polkadot/keyring'; -import { hexToU8a, isHex } from '@polkadot/util'; import { keyring } from '@polkadot/ui-keyring'; import format from 'date-fns/format'; import parseISO from 'date-fns/parseISO'; @@ -74,7 +72,8 @@ export function isUndefined(value: unknown): value is undefined { export function isValidAddress(address: string | Uint8Array | null | undefined) { try { - // encodeAddress(isHex(address) ? hexToU8a(address) : decodeAddress(address)); + // TODO: check isValidAddress + console.log(address); return true; } catch (error) { return false; diff --git a/src/services/chain/contract.ts b/src/services/chain/contract.ts index 648c0666..4673ed93 100644 --- a/src/services/chain/contract.ts +++ b/src/services/chain/contract.ts @@ -1,7 +1,7 @@ // Copyright 2022-2024 use-ink/contracts-ui authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { BlueprintPromise, CodePromise, ContractPromise } from '@polkadot/api-contract'; +import { BlueprintPromise, CodePromise } from '@polkadot/api-contract'; import { isValidAddress, isValidCodeHash, isNumber } from 'lib/util'; import { transformUserInput } from 'lib/callOptions'; import { @@ -11,11 +11,7 @@ import { InstantiateData, SubmittableExtrinsic, } from 'types'; -import { stringToU8a, compactAddLength, u8aToU8a, hexToU8a } from '@polkadot/util'; -import { ISubmittableResult } from '@polkadot/types/types'; -import { BlueprintSubmittableResult, Contract } from '@polkadot/api-contract/base'; -import { contractsAbi } from '@polkadot/types/interfaces/definitions'; -import { fromEthAddress, isEthDerived, toEthAddress } from 'ui/hooks'; +import { u8aToU8a } from '@polkadot/util'; export function createInstantiateTx( api: ApiPromise, @@ -30,6 +26,7 @@ export function createInstantiateTx( storageDepositLimit, }: Omit, ): SubmittableExtrinsic<'promise'> { + //@ts-ignore TODO: need to update type in @polkadot/api-contracts const wasm = u8aToU8a(metadata?.json.source.contract_binary); const isValid = codeHash || !!wasm; diff --git a/src/ui/components/common/HeaderButtons.tsx b/src/ui/components/common/HeaderButtons.tsx index a3896702..0699b838 100644 --- a/src/ui/components/common/HeaderButtons.tsx +++ b/src/ui/components/common/HeaderButtons.tsx @@ -14,7 +14,7 @@ interface Props { contract: UIContract; } -export function HeaderButtons({ contract: { address, dotAddress, codeHash } }: Props) { +export function HeaderButtons({ contract: { address, codeHash } }: Props) { const { api } = useApi(); const { db } = useDatabase(); const [isOnChain, setIsOnChain] = useState(true); diff --git a/src/ui/components/contract/ContractRow.tsx b/src/ui/components/contract/ContractRow.tsx index c5789ee3..a6635e55 100644 --- a/src/ui/components/contract/ContractRow.tsx +++ b/src/ui/components/contract/ContractRow.tsx @@ -9,7 +9,6 @@ import { ContractDocument } from 'types'; import { useApi } from 'ui/contexts'; import { displayDate, truncate } from 'lib/util'; import { getContractInfo } from 'services/chain'; -import { fromEthAddress, toEthAddress } from 'ui/hooks'; interface Props { contract: ContractDocument; diff --git a/src/ui/components/contract/Interact.tsx b/src/ui/components/contract/Interact.tsx index 0612da65..18959f44 100644 --- a/src/ui/components/contract/Interact.tsx +++ b/src/ui/components/contract/Interact.tsx @@ -21,7 +21,6 @@ import { SubmittableResult, UIContract, } from 'types'; -import { Text } from '@polkadot/types'; import { AccountSelect } from 'ui/components/account'; import { Button, Buttons, Dropdown } from 'ui/components/common'; import { ArgumentForm, Form, FormField, OptionsForm } from 'ui/components/form'; @@ -166,7 +165,7 @@ export const InteractTab = ({ setNextResultId(nextResultId + 1); }; - const newId = useRef(); + const newId = useRef(0); const call = () => { if (!outcome || !message || !accountId) throw new Error('Unable to call contract.'); diff --git a/src/ui/components/contract/OutcomeItem.tsx b/src/ui/components/contract/OutcomeItem.tsx index c40bff89..28195342 100644 --- a/src/ui/components/contract/OutcomeItem.tsx +++ b/src/ui/components/contract/OutcomeItem.tsx @@ -13,12 +13,12 @@ export function OutcomeItem({ displayValue: string; copyValue?: string; id?: string; -}): JSX.Element { +}): React.ReactElement { return (
{title}
@@ -26,7 +26,7 @@ export function OutcomeItem({
         
diff --git a/src/ui/components/form/InputBn.tsx b/src/ui/components/form/InputBn.tsx index 099dfcf8..acf44624 100644 --- a/src/ui/components/form/InputBn.tsx +++ b/src/ui/components/form/InputBn.tsx @@ -35,7 +35,7 @@ function getMinMax(type: string): [bigint, bigint] { } } -export function InputBn({ onChange, typeDef: { type } }: Props): JSX.Element { +export function InputBn({ onChange, typeDef: { type } }: Props): React.ReactElement { const [displayValue, setDisplayValue] = useState('0'); const [min, max] = getMinMax(type); diff --git a/src/ui/components/instantiate/Step2.tsx b/src/ui/components/instantiate/Step2.tsx index 786bd892..69761e15 100644 --- a/src/ui/components/instantiate/Step2.tsx +++ b/src/ui/components/instantiate/Step2.tsx @@ -22,21 +22,11 @@ import { useToggle, useStorageDepositLimit, useBalance, - create2, - toEthAddress, - create1, } from 'ui/hooks'; import { AbiMessage, Balance, OrFalsy } from 'types'; -import { - decodeStorageDeposit, - getGasLimit, - getStorageDepositLimit, - transformUserInput, -} from 'lib/callOptions'; +import { decodeStorageDeposit, getGasLimit, getStorageDepositLimit } from 'lib/callOptions'; import { BN_ZERO } from 'lib/bn'; import { hasRevertFlag } from 'lib/hasRevertFlag'; -import { hexToU8a, stringToU8a } from '@polkadot/util'; -import { decodeAddress } from '@polkadot/keyring'; function validateSalt(value: OrFalsy) { if (!!value && value.length === 66) { @@ -73,6 +63,7 @@ export function Step2() { }, [metadata, setConstructorIndex]); const [isUsingSalt, toggleIsUsingSalt] = useToggle(true); + //@ts-ignore TODO: need to update type in @polkadot/api-contracts const code = metadata?.json.source.contract_binary; const params: Parameters = useMemo(() => { @@ -98,6 +89,7 @@ export function Step2() { storageDepositLimit.isActive, storageDepositLimit.value, codeHashUrlParam, + //@ts-ignore TODO: need to update type in @polkadot/api-contracts metadata?.json.source.contract_binary, inputData, isUsingSalt, @@ -122,7 +114,6 @@ export function Step2() { instantiateResult = { Ok: { result: { flags: convertedFlags, data: okResult.result.data }, - accountId: okResult.accountId, }, }; } else { @@ -159,7 +150,8 @@ export function Step2() { setData({ ...data, constructorIndex, - salt: params[6] || null, + // salt: params[6] || null, + salt: (params[6] as string | Uint8Array | null) || null, value: deployConstructor?.isPayable ? (params[1] as Balance) : undefined, argValues, storageDepositLimit: getStorageDepositLimit( diff --git a/src/ui/components/instantiate/Step3.tsx b/src/ui/components/instantiate/Step3.tsx index bc72cb1e..ff8479e8 100644 --- a/src/ui/components/instantiate/Step3.tsx +++ b/src/ui/components/instantiate/Step3.tsx @@ -9,10 +9,8 @@ import { printBN } from 'lib/bn'; import { createInstantiateTx } from 'services/chain'; import { SubmittableResult } from 'types'; import { useApi, useInstantiate, useTransactions } from 'ui/contexts'; -import { create2, toEthAddress, useNewContract } from 'ui/hooks'; -import { hexToU8a, stringToU8a } from '@polkadot/util'; +import { useNewContract } from 'ui/hooks'; import { transformUserInput } from 'lib/callOptions'; -import { decodeAddress } from '@polkadot/keyring'; export function Step3() { const { codeHash: codeHashUrlParam } = useParams<{ codeHash: string }>(); @@ -31,9 +29,9 @@ export function Step3() { const isValid = (result: SubmittableResult) => !result.isError && !result.dispatchError; if (data.accountId) { - const constructor = metadata.findConstructor(constructorIndex); - const transformed = transformUserInput(api.registry, constructor.args, data.argValues); - const inputData = constructor.toU8a(transformed).slice(1); // exclude the first byte (the length byte) + const constructor = metadata?.findConstructor(constructorIndex); + const transformed = transformUserInput(api.registry, constructor?.args || [], data.argValues); + const inputData = constructor?.toU8a(transformed).slice(1); // exclude the first byte (the length byte) const tx = createInstantiateTx(api, data); @@ -43,11 +41,13 @@ export function Step3() { accountId: data.accountId, onSuccess: result => { // Pass the contract data and extrinsic to onSuccess + // @ts-ignore: TODO: solve type issue return onSuccess({ ...result, contractData: { - salt: salt, // Using codeHash as salt for demonstration - data: inputData, // The contract initialization data + salt: salt?.toString() || '', // Using codeHash as salt for demonstration + data: inputData || new Uint8Array(), + // @ts-ignore TODO code: metadata?.json.source.contract_binary, }, }); diff --git a/src/ui/contexts/DatabaseContext.tsx b/src/ui/contexts/DatabaseContext.tsx index cefaf4b5..470f5140 100644 --- a/src/ui/contexts/DatabaseContext.tsx +++ b/src/ui/contexts/DatabaseContext.tsx @@ -14,7 +14,7 @@ const INITIAL = {} as unknown as DbState; export function DatabaseContextProvider({ children, -}: React.HTMLAttributes): JSX.Element | null { +}: React.HTMLAttributes): React.ReactElement | null { const { genesisHash } = useApi(); const [state, setState] = useState(INITIAL); diff --git a/src/ui/hooks/useNewContract.ts b/src/ui/hooks/useNewContract.ts index 351a034b..e7e77ff2 100644 --- a/src/ui/hooks/useNewContract.ts +++ b/src/ui/hooks/useNewContract.ts @@ -4,11 +4,11 @@ import { useNavigate } from 'react-router'; import type { BlueprintSubmittableResult } from 'types'; import { useApi, useDatabase, useInstantiate } from 'ui/contexts'; -import { BigNumberish, ethers, RlpStructuredDataish, toBeHex, toUtf8String } from 'ethers'; +import { BigNumberish, ethers } from 'ethers'; import { ApiTypes } from '@polkadot/api/types'; import { hexToU8a, stringToU8a, u8aToHex } from '@polkadot/util'; import { keccak256 } from 'ethers'; -import { decodeAddress, encodeAddress } from '@polkadot/keyring'; +import { decodeAddress } from '@polkadot/keyring'; interface ExtendedBlueprintSubmittableResult extends BlueprintSubmittableResult { diff --git a/src/ui/hooks/useStoredContract.ts b/src/ui/hooks/useStoredContract.ts index 6c9234c0..2b90a187 100644 --- a/src/ui/hooks/useStoredContract.ts +++ b/src/ui/hooks/useStoredContract.ts @@ -37,7 +37,7 @@ export function useStoredContract(address: string): UIContract | undefined { displayName: document.name, tx: contract.tx, codeHash: document.codeHash, - address: contract.address, + address: contract.address.toString(), dotAddress: document.dotAddress, date: document.date, id: document.id, diff --git a/src/ui/layout/RootLayout.tsx b/src/ui/layout/RootLayout.tsx index 5545696a..0f3dc6dc 100644 --- a/src/ui/layout/RootLayout.tsx +++ b/src/ui/layout/RootLayout.tsx @@ -12,6 +12,13 @@ export function RootLayout({ accessory, heading, help, children, aside }: PagePr aside && 'grid grid-cols-[1fr_400px] gap-10', )} > +
+ NOTE: This is an ALPHA version for the ink! v6 Alpha release. If you run into issues, please + open an issue at{' '} + + https://github.com/use-ink/contracts-ui + +
{accessory &&
{accessory}
} diff --git a/src/ui/layout/sidebar/NavLink.tsx b/src/ui/layout/sidebar/NavLink.tsx index a1e91a0b..b0065b4f 100644 --- a/src/ui/layout/sidebar/NavLink.tsx +++ b/src/ui/layout/sidebar/NavLink.tsx @@ -4,7 +4,7 @@ import { NavLink as NavLinkBase, NavLinkProps } from 'react-router-dom'; interface Props extends NavLinkProps { - icon: (_: React.ComponentProps<'svg'>) => JSX.Element; + icon: (_: React.ComponentProps<'svg'>) => React.ReactElement; } export function NavLink({ children, icon: Icon, ...props }: Props): React.ReactElement { diff --git a/src/ui/layout/sidebar/QuickLinks.tsx b/src/ui/layout/sidebar/QuickLinks.tsx index 4d7d1951..5f3c3d51 100644 --- a/src/ui/layout/sidebar/QuickLinks.tsx +++ b/src/ui/layout/sidebar/QuickLinks.tsx @@ -16,7 +16,7 @@ export function QuickLinks() {
Your Contracts
{contracts && contracts.length > 0 ? ( - contracts.map(({ name, address, dotAddress }) => { + contracts.map(({ name, address }) => { return ( {name} diff --git a/src/ui/pages/AddressLookup.tsx b/src/ui/pages/AddressLookup.tsx index 7d114da6..58f9fb31 100644 --- a/src/ui/pages/AddressLookup.tsx +++ b/src/ui/pages/AddressLookup.tsx @@ -21,6 +21,7 @@ import { useApi, useDatabase } from 'ui/contexts'; import { useNonEmptyString } from 'ui/hooks/useNonEmptyString'; import { useStoredMetadata } from 'ui/hooks/useStoredMetadata'; import { RootLayout } from 'ui/layout'; +import { fromEthAddress } from 'ui/hooks'; export function AddressLookup() { const [searchString, setSearchString] = useState(''); @@ -192,6 +193,7 @@ export function AddressLookup() { const document = { abi: metadata.json, address, + dotAddress: fromEthAddress(address), codeHash: metadata.info.source.wasmHash.toHex(), date: new Date().toISOString(), name, diff --git a/yarn.lock b/yarn.lock index 18135f13..b2d26b76 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2419,12 +2419,12 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.3.0": - version: 18.3.6 - resolution: "@types/react-dom@npm:18.3.6" +"@types/react-dom@npm:^19.1.2": + version: 19.1.2 + resolution: "@types/react-dom@npm:19.1.2" peerDependencies: - "@types/react": ^18.0.0 - checksum: 03434d70eb3213413514303c684fe56672a0e5ac6629be92a34d521f926f9e9eb89dcabf9ff485df485a11244e0f4b47dbb6168f7a6a0b664518c9bafb25711d + "@types/react": ^19.0.0 + checksum: 62a5c398e87b5a42f34497152c67367db70d5e348a05fc4bd78c119fc8d4367c02833c022b2f5dba4df33ae65b7ff76409847722ce6b8f9ea5d31983832688da languageName: node linkType: hard @@ -2437,6 +2437,15 @@ __metadata: languageName: node linkType: hard +"@types/react@npm:^19.1.2": + version: 19.1.2 + resolution: "@types/react@npm:19.1.2" + dependencies: + csstype: ^3.0.2 + checksum: 5a911a2c84be0c9451bb8a7c75c907af1f52afbb4d51b0d62e7516a9b0b1e63c3c1cdc35b79bfc6e66176c76cfff9d43023a781cd3dc59e2744715ced7d7e7c4 + languageName: node + linkType: hard + "@types/sinonjs__fake-timers@npm:8.1.1": version: 8.1.1 resolution: "@types/sinonjs__fake-timers@npm:8.1.1" @@ -3867,7 +3876,8 @@ __metadata: "@types/bcryptjs": ^2.4.6 "@types/big.js": ^6.2.2 "@types/node": ^22.5.0 - "@types/react-dom": ^18.3.0 + "@types/react": ^19.1.2 + "@types/react-dom": ^19.1.2 "@typescript-eslint/eslint-plugin": ^8.2.0 "@typescript-eslint/parser": ^8.2.0 "@vitejs/plugin-react": ^4.3.1 From a82cf94c7e0a38b9e913d9a8710faeb004031f6c Mon Sep 17 00:00:00 2001 From: Peter White Date: Wed, 16 Apr 2025 21:44:18 -0600 Subject: [PATCH 06/32] build: script to install forked polkadot-js --- .gitignore | 1 + package.json | 4 +- scripts/build-polkadot-api.cjs | 42 ++ yarn.lock | 1060 ++++++++++++++++---------------- 4 files changed, 564 insertions(+), 543 deletions(-) create mode 100644 scripts/build-polkadot-api.cjs diff --git a/.gitignore b/.gitignore index ec70f75c..92f33b3b 100644 --- a/.gitignore +++ b/.gitignore @@ -41,6 +41,7 @@ build/Release # Dependency directories node_modules/ jspm_packages/ +.polkadot-js-api # Snowpack dependency directory (https://snowpack.dev/) web_modules/ diff --git a/package.json b/package.json index 1fd03b43..4b074ba6 100644 --- a/package.json +++ b/package.json @@ -34,9 +34,9 @@ "@headlessui/react": "^1.7.18", "@heroicons/react": "^1.0.6", "@polkadot/api": "15.8.1", - "@polkadot/api-contract": "file:/Users/peter/dev/dot-repos/api/packages/api-contract/build", + "@polkadot/api-contract": "file:./.polkadot-js-api/packages/api-contract/build", "@polkadot/extension-dapp": "^0.58.6", - "@polkadot/types": "file:/Users/peter/dev/dot-repos/api/packages/types/build", + "@polkadot/types": "15.8.1", "@polkadot/ui-keyring": "^3.12.2", "@polkadot/ui-shared": "^3.12.2", "big.js": "^6.2.1", diff --git a/scripts/build-polkadot-api.cjs b/scripts/build-polkadot-api.cjs new file mode 100644 index 00000000..3a8c55e9 --- /dev/null +++ b/scripts/build-polkadot-api.cjs @@ -0,0 +1,42 @@ +const { execSync } = require('child_process'); +const fs = require('fs'); +const path = require('path'); + +// Define paths +const repoUrl = 'https://github.com/use-ink/polkadot-js-api.git'; +const cloneDir = path.resolve(__dirname, '../.polkadot-js-api'); // Clone to a local folder in project +const packageBuildDir = path.resolve(cloneDir, 'packages/api-contract/build'); + +// Function to run shell commands +function runCommand(command, cwd) { + try { + execSync(command, { cwd, stdio: 'inherit' }); + } catch (error) { + console.error(`Error executing command: ${command}`); + process.exit(1); + } +} + +// Check if the repo is already cloned +if (!fs.existsSync(cloneDir)) { + console.log(`Cloning repository from ${repoUrl}...`); + runCommand(`git clone --branch peter/api-revive ${repoUrl} "${cloneDir}"`, __dirname); +} else { + console.log(`Repository already cloned at ${cloneDir}. Pulling latest changes...`); + runCommand('git pull', cloneDir); +} + +// Install dependencies and build +console.log('Installing dependencies...'); +runCommand('yarn install', cloneDir); + +console.log('Building @polkadot/api-contract...'); +runCommand('yarn build', cloneDir); + +// Verify build output +if (!fs.existsSync(packageBuildDir)) { + console.error(`Build failed: ${packageBuildDir} does not exist.`); + process.exit(1); +} + +console.log(`Build completed successfully. Built files are in ${packageBuildDir}.`); diff --git a/yarn.lock b/yarn.lock index b2d26b76..cb1d7a2c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -47,7 +47,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.23.9, @babel/core@npm:^7.26.0, @babel/core@npm:^7.7.5": +"@babel/core@npm:^7.23.9, @babel/core@npm:^7.26.10, @babel/core@npm:^7.7.5": version: 7.26.10 resolution: "@babel/core@npm:7.26.10" dependencies: @@ -344,30 +344,30 @@ __metadata: linkType: hard "@emnapi/core@npm:^1.4.0": - version: 1.4.0 - resolution: "@emnapi/core@npm:1.4.0" + version: 1.4.3 + resolution: "@emnapi/core@npm:1.4.3" dependencies: - "@emnapi/wasi-threads": 1.0.1 + "@emnapi/wasi-threads": 1.0.2 tslib: ^2.4.0 - checksum: 6f3ff7ab27e08a465118843e48808f4683ee6e72c409aab553ed2a740a67b8f00771a697c0d1abd46f62dfa65466862d2ff9f886e4f0e4e5342b36d8c350eb36 + checksum: 1c757d380b3cecec637a2eccfb31b770b995060f695d1e15b29a86e2038909a24152947ef6e4b6586759e6716148ff17f40e51367d1b79c9a3e1b6812537bdf4 languageName: node linkType: hard "@emnapi/runtime@npm:^1.4.0": - version: 1.4.0 - resolution: "@emnapi/runtime@npm:1.4.0" + version: 1.4.3 + resolution: "@emnapi/runtime@npm:1.4.3" dependencies: tslib: ^2.4.0 - checksum: 90cca909ceb842e95cb5e16ab64e4c4d8925c6f4ed5527848e53faad8c4e23885e4a001a6099e26a76d099a67758032a9f208b13252176e2b68c860d19f5c1f9 + checksum: ff2074809638ed878e476ece370c6eae7e6257bf029a581bb7a290488d8f2a08c420a65988c7f03bfc6bb689218f0cd995d2f935bd182150b357fc2341142f4f languageName: node linkType: hard -"@emnapi/wasi-threads@npm:1.0.1": - version: 1.0.1 - resolution: "@emnapi/wasi-threads@npm:1.0.1" +"@emnapi/wasi-threads@npm:1.0.2": + version: 1.0.2 + resolution: "@emnapi/wasi-threads@npm:1.0.2" dependencies: tslib: ^2.4.0 - checksum: e154880440ff9bfe67b417f30134f0ff6fee28913dbf4a22de2e67dda5bf5b51055647c5d1565281df17ef5dfcc89256546bdf9b8ccfd07e07566617e7ce1498 + checksum: c289cd3d0e26f11de23429a4abc7f99927917c0871d5a22637cbb75170f2b58d3a42e80d76dea89d054e529f79e35cdc953324819a7f990305d0db2897fa5fab languageName: node linkType: hard @@ -659,13 +659,13 @@ __metadata: linkType: hard "@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.5.1 - resolution: "@eslint-community/eslint-utils@npm:4.5.1" + version: 4.6.1 + resolution: "@eslint-community/eslint-utils@npm:4.6.1" dependencies: eslint-visitor-keys: ^3.4.3 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 853e681fd134e96ce88066b0cfb3ce8b7a87afc9ea207139059f51e302eb9e6de4ab73c9eeb3995407bd6c08f836aade9fce47e91124c254a4eea24a5465c2ac + checksum: 924f38a069cc281dacd231f1293f5969dff98d4ad867f044ee384f1ad35937c27d12222a45a7da0b294253ffbaccc0a6f7878aed3eea8f4f9345f195ae24dea2 languageName: node linkType: hard @@ -946,13 +946,13 @@ __metadata: linkType: hard "@napi-rs/wasm-runtime@npm:^0.2.8": - version: 0.2.8 - resolution: "@napi-rs/wasm-runtime@npm:0.2.8" + version: 0.2.9 + resolution: "@napi-rs/wasm-runtime@npm:0.2.9" dependencies: "@emnapi/core": ^1.4.0 "@emnapi/runtime": ^1.4.0 "@tybys/wasm-util": ^0.9.0 - checksum: c7e7ec1c19e6e0bfb9d1553fb3b25f46d9ffb48f6c54e95b7cf939c294d8cda254da72575319999e77891805b15688da1db4926e6f6f0c31b1a08722e7b92d62 + checksum: bffa375d960ebe5f0e98583f46a14bf4aaa086c2cce45582229b36eb0f5987d9dae1c184ebc218df504ffdd92a7169f73ac60697e6e2a2fc064277e3150a3764 languageName: node linkType: hard @@ -966,11 +966,11 @@ __metadata: linkType: hard "@noble/curves@npm:^1.3.0": - version: 1.8.1 - resolution: "@noble/curves@npm:1.8.1" + version: 1.8.2 + resolution: "@noble/curves@npm:1.8.2" dependencies: - "@noble/hashes": 1.7.1 - checksum: 4143f1248ed57c1ae46dfef5c692a91383e5830420b9c72d3ff1061aa9ebbf8999297da6d2aed8a9716fef8e6b1f5a45737feeab02abf55ca2a4f514bf9339ec + "@noble/hashes": 1.7.2 + checksum: f26fd77b4d78fe26dba2754cbcaddee5da23a711a0c9778ee57764eb0084282d97659d9b0a760718f42493adf68665dbffdca9d6213950f03f079d09c465c096 languageName: node linkType: hard @@ -981,10 +981,10 @@ __metadata: languageName: node linkType: hard -"@noble/hashes@npm:1.7.1, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.3": - version: 1.7.1 - resolution: "@noble/hashes@npm:1.7.1" - checksum: 4f1b56428a10323feef17e4f437c9093556cb18db06f94d254043fadb69c3da8475f96eb3f8322d41e8670117d7486475a8875e68265c2839f60fd03edd6a616 +"@noble/hashes@npm:1.7.2, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.3": + version: 1.7.2 + resolution: "@noble/hashes@npm:1.7.2" + checksum: f9e3c2e62c2850073f8d6ac30cc33b03a25cae859eb2209b33ae90ed3d1e003cb2a1ddacd2aacd6b7c98a5ad70795a234ccce04b0526657cd8020ce4ffdb491f languageName: node linkType: hard @@ -1133,18 +1133,18 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-augment@npm:15.9.1": - version: 15.9.1 - resolution: "@polkadot/api-augment@npm:15.9.1" +"@polkadot/api-augment@npm:15.9.2": + version: 15.9.2 + resolution: "@polkadot/api-augment@npm:15.9.2" dependencies: - "@polkadot/api-base": 15.9.1 - "@polkadot/rpc-augment": 15.9.1 - "@polkadot/types": 15.9.1 - "@polkadot/types-augment": 15.9.1 - "@polkadot/types-codec": 15.9.1 - "@polkadot/util": ^13.4.3 + "@polkadot/api-base": 15.9.2 + "@polkadot/rpc-augment": 15.9.2 + "@polkadot/types": 15.9.2 + "@polkadot/types-augment": 15.9.2 + "@polkadot/types-codec": 15.9.2 + "@polkadot/util": ^13.4.4 tslib: ^2.8.1 - checksum: 77dd47b9b8a65386c84f810460d5bef508ec52a4243b84e869f9b064cbaf5cd4ad0ec253c41ff937333e521fdf5e294bf40be2c8cade3ba3d4b460bcb904ed58 + checksum: 86c59ea1f4bd0d86d19cd3e4a2b2fc4ab24be551de739ddea1c6e172913f1f0eb905c5753ba145495f4aa3a05e998795123340b876cb6ce97f2ccb92c44dbcd7 languageName: node linkType: hard @@ -1161,33 +1161,33 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-base@npm:15.9.1": - version: 15.9.1 - resolution: "@polkadot/api-base@npm:15.9.1" +"@polkadot/api-base@npm:15.9.2": + version: 15.9.2 + resolution: "@polkadot/api-base@npm:15.9.2" dependencies: - "@polkadot/rpc-core": 15.9.1 - "@polkadot/types": 15.9.1 - "@polkadot/util": ^13.4.3 + "@polkadot/rpc-core": 15.9.2 + "@polkadot/types": 15.9.2 + "@polkadot/util": ^13.4.4 rxjs: ^7.8.1 tslib: ^2.8.1 - checksum: 59153b3c10a1cc151cf9d80bb42064ad52f94e0fc00fa06c856b71fabc50050bd0ca98b5043bbf26a0608724b222312ceaf89c332a46ab60aeb7a3557fe01588 + checksum: fc81cf0d3af373c653bffc5b3cf8ecd4539e7bcb18d9f592e7cbbf17341fd5c15b92e45a0fe1c30a83f80e954df3d3b45dc635fe59c640fabbefb2030c09b4c7 languageName: node linkType: hard -"@polkadot/api-contract@file:/Users/peter/dev/dot-repos/api/packages/api-contract/build::locator=contracts-ui%40workspace%3A.": +"@polkadot/api-contract@file:./.polkadot-js-api/packages/api-contract/build::locator=contracts-ui%40workspace%3A.": version: 15.8.1 - resolution: "@polkadot/api-contract@file:/Users/peter/dev/dot-repos/api/packages/api-contract/build#/Users/peter/dev/dot-repos/api/packages/api-contract/build::hash=dc3fb3&locator=contracts-ui%40workspace%3A." + resolution: "@polkadot/api-contract@file:./.polkadot-js-api/packages/api-contract/build#./.polkadot-js-api/packages/api-contract/build::hash=fab177&locator=contracts-ui%40workspace%3A." dependencies: "@polkadot/api": 15.8.1 "@polkadot/api-augment": 15.8.1 - "@polkadot/types": ../../types/build + "@polkadot/types": 15.8.1 "@polkadot/types-codec": 15.8.1 "@polkadot/types-create": 15.8.1 "@polkadot/util": ^13.4.3 "@polkadot/util-crypto": ^13.4.3 rxjs: ^7.8.1 tslib: ^2.8.1 - checksum: 50ec11a1ba781b05bce38040923733eddf5e87af7466e74a0fca8cf834d6aaf77438b4de7b92d7fa88e6e7cd52fca53497fb059d2ddea6e54738def97a0f18f2 + checksum: 95c6d54f1efbda6c166a4cb8050b47e2b5721dd4813438f4d936d44e8f57477befa2e2ec1c89eac557f8a27f1d11647094234d55902118b91c529de490126588 languageName: node linkType: hard @@ -1209,21 +1209,21 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-derive@npm:15.9.1": - version: 15.9.1 - resolution: "@polkadot/api-derive@npm:15.9.1" +"@polkadot/api-derive@npm:15.9.2": + version: 15.9.2 + resolution: "@polkadot/api-derive@npm:15.9.2" dependencies: - "@polkadot/api": 15.9.1 - "@polkadot/api-augment": 15.9.1 - "@polkadot/api-base": 15.9.1 - "@polkadot/rpc-core": 15.9.1 - "@polkadot/types": 15.9.1 - "@polkadot/types-codec": 15.9.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 + "@polkadot/api": 15.9.2 + "@polkadot/api-augment": 15.9.2 + "@polkadot/api-base": 15.9.2 + "@polkadot/rpc-core": 15.9.2 + "@polkadot/types": 15.9.2 + "@polkadot/types-codec": 15.9.2 + "@polkadot/util": ^13.4.4 + "@polkadot/util-crypto": ^13.4.4 rxjs: ^7.8.1 tslib: ^2.8.1 - checksum: a6390ebf0d3c07a5de6584711f0349d70ec488b4dee6d5f8557257225fc4fbc2b8aa0814d53e39fe5137ce0dd7293a3e0545fc21c7bf66697b0713dac240fa83 + checksum: d547219b48a0cb77b15d96df1ae6d555e533576749a23840b0fdf8e4e88c00e086fd0fb95349952fc92266cc531d5f3607634bce4a4ccf28f4d35b9a32982f76 languageName: node linkType: hard @@ -1252,28 +1252,28 @@ __metadata: languageName: node linkType: hard -"@polkadot/api@npm:15.9.1, @polkadot/api@npm:^15.9.1": - version: 15.9.1 - resolution: "@polkadot/api@npm:15.9.1" - dependencies: - "@polkadot/api-augment": 15.9.1 - "@polkadot/api-base": 15.9.1 - "@polkadot/api-derive": 15.9.1 - "@polkadot/keyring": ^13.4.3 - "@polkadot/rpc-augment": 15.9.1 - "@polkadot/rpc-core": 15.9.1 - "@polkadot/rpc-provider": 15.9.1 - "@polkadot/types": 15.9.1 - "@polkadot/types-augment": 15.9.1 - "@polkadot/types-codec": 15.9.1 - "@polkadot/types-create": 15.9.1 - "@polkadot/types-known": 15.9.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 +"@polkadot/api@npm:15.9.2, @polkadot/api@npm:^15.9.1": + version: 15.9.2 + resolution: "@polkadot/api@npm:15.9.2" + dependencies: + "@polkadot/api-augment": 15.9.2 + "@polkadot/api-base": 15.9.2 + "@polkadot/api-derive": 15.9.2 + "@polkadot/keyring": ^13.4.4 + "@polkadot/rpc-augment": 15.9.2 + "@polkadot/rpc-core": 15.9.2 + "@polkadot/rpc-provider": 15.9.2 + "@polkadot/types": 15.9.2 + "@polkadot/types-augment": 15.9.2 + "@polkadot/types-codec": 15.9.2 + "@polkadot/types-create": 15.9.2 + "@polkadot/types-known": 15.9.2 + "@polkadot/util": ^13.4.4 + "@polkadot/util-crypto": ^13.4.4 eventemitter3: ^5.0.1 rxjs: ^7.8.1 tslib: ^2.8.1 - checksum: f0bacda53c72220e951190202a1fa79076eb9fd319f9e74157a29f7bca2fd6bb6b4a57f5ecf8993dbf1773aad34934a9b2a25391f1d8ad2aa8f8fd245f735397 + checksum: ed25d0382b35f1da134576a4d3b05204a2bd1980e12638c7ac68e2848ac2bac929da5a07b052e5308908b047586b7cde9a54dfe8ad5aebf1f7fe36a714bc05d1 languageName: node linkType: hard @@ -1311,28 +1311,28 @@ __metadata: languageName: node linkType: hard -"@polkadot/keyring@npm:^13.4.3": - version: 13.4.3 - resolution: "@polkadot/keyring@npm:13.4.3" +"@polkadot/keyring@npm:^13.4.3, @polkadot/keyring@npm:^13.4.4": + version: 13.4.4 + resolution: "@polkadot/keyring@npm:13.4.4" dependencies: - "@polkadot/util": 13.4.3 - "@polkadot/util-crypto": 13.4.3 + "@polkadot/util": 13.4.4 + "@polkadot/util-crypto": 13.4.4 tslib: ^2.8.0 peerDependencies: - "@polkadot/util": 13.4.3 - "@polkadot/util-crypto": 13.4.3 - checksum: 4ce70ea4ced3bafc5284c6e645a61380415d80f8dd42efd1073fed1c1944ef311e2ef805261009ecafe760fb097165ae7110b76a1ae7c44c3ac511a7a7368898 + "@polkadot/util": 13.4.4 + "@polkadot/util-crypto": 13.4.4 + checksum: 44e819f962caed6d679820cec3195b9a8acf8f8d19132199bb2d9bf0011a49aa46b40c6526cac0949c2b71d8aba5bd960cf54d2c782f663cce869b3b65296b6a languageName: node linkType: hard -"@polkadot/networks@npm:13.4.3, @polkadot/networks@npm:^13.4.3": - version: 13.4.3 - resolution: "@polkadot/networks@npm:13.4.3" +"@polkadot/networks@npm:13.4.4, @polkadot/networks@npm:^13.4.3, @polkadot/networks@npm:^13.4.4": + version: 13.4.4 + resolution: "@polkadot/networks@npm:13.4.4" dependencies: - "@polkadot/util": 13.4.3 + "@polkadot/util": 13.4.4 "@substrate/ss58-registry": ^1.51.0 tslib: ^2.8.0 - checksum: bd9736a745d8b1cc40b6f9c8708afc40b1817d2d30c77f3377de5cab62e18ddb4102740dfde4b2ab08db9d9753c304595989b4ee3c1c6564aee94913ff5215e8 + checksum: 4842ba3576a1c2a222f27bccd41cf632735dd3d048c28e00ab67169568177e0f67305792244bd147a689a5d65a1e2ea1fa918eacdd0e75b80818ac17ded32342 languageName: node linkType: hard @@ -1349,16 +1349,16 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-augment@npm:15.9.1": - version: 15.9.1 - resolution: "@polkadot/rpc-augment@npm:15.9.1" +"@polkadot/rpc-augment@npm:15.9.2": + version: 15.9.2 + resolution: "@polkadot/rpc-augment@npm:15.9.2" dependencies: - "@polkadot/rpc-core": 15.9.1 - "@polkadot/types": 15.9.1 - "@polkadot/types-codec": 15.9.1 - "@polkadot/util": ^13.4.3 + "@polkadot/rpc-core": 15.9.2 + "@polkadot/types": 15.9.2 + "@polkadot/types-codec": 15.9.2 + "@polkadot/util": ^13.4.4 tslib: ^2.8.1 - checksum: 418e9b1b741e6c8bf84c23dbe7264a3b4ac08f0199e17de41f7213caaa0e718ae2ddd20837f0064d1de03db7277a4c47c0fbdf8c4eac809f59d5d153c2749cad + checksum: d0a63e9095a52bb555a7f32f0f0d5a5b0c0b0bf5c58da2ec85ea88702e70ebda69b4a504189ca3ebbf79407f30ef3a384a393b75bb2aa78ac6b8f9c274035207 languageName: node linkType: hard @@ -1376,17 +1376,17 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-core@npm:15.9.1": - version: 15.9.1 - resolution: "@polkadot/rpc-core@npm:15.9.1" +"@polkadot/rpc-core@npm:15.9.2": + version: 15.9.2 + resolution: "@polkadot/rpc-core@npm:15.9.2" dependencies: - "@polkadot/rpc-augment": 15.9.1 - "@polkadot/rpc-provider": 15.9.1 - "@polkadot/types": 15.9.1 - "@polkadot/util": ^13.4.3 + "@polkadot/rpc-augment": 15.9.2 + "@polkadot/rpc-provider": 15.9.2 + "@polkadot/types": 15.9.2 + "@polkadot/util": ^13.4.4 rxjs: ^7.8.1 tslib: ^2.8.1 - checksum: 5a82afb3ceae513bf0f5dbdbb1771f9d799400da8bce659e4bbb9dd2780b6bcd5495047009b35f2c370e140aa327be8fbdc271725ddd5c78bbe6c21115485c42 + checksum: 7581189cc474f0a9a931dc3f53bee16288c117096f3ad2462e866d0f31017410d03203beb8dd92b57add609d0732ca30376d75dadd22c1e15f1ac0051a81c4a1 languageName: node linkType: hard @@ -1414,18 +1414,18 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-provider@npm:15.9.1, @polkadot/rpc-provider@npm:^15.9.1": - version: 15.9.1 - resolution: "@polkadot/rpc-provider@npm:15.9.1" +"@polkadot/rpc-provider@npm:15.9.2, @polkadot/rpc-provider@npm:^15.9.1": + version: 15.9.2 + resolution: "@polkadot/rpc-provider@npm:15.9.2" dependencies: - "@polkadot/keyring": ^13.4.3 - "@polkadot/types": 15.9.1 - "@polkadot/types-support": 15.9.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 - "@polkadot/x-fetch": ^13.4.3 - "@polkadot/x-global": ^13.4.3 - "@polkadot/x-ws": ^13.4.3 + "@polkadot/keyring": ^13.4.4 + "@polkadot/types": 15.9.2 + "@polkadot/types-support": 15.9.2 + "@polkadot/util": ^13.4.4 + "@polkadot/util-crypto": ^13.4.4 + "@polkadot/x-fetch": ^13.4.4 + "@polkadot/x-global": ^13.4.4 + "@polkadot/x-ws": ^13.4.4 "@substrate/connect": 0.8.11 eventemitter3: ^5.0.1 mock-socket: ^9.3.1 @@ -1434,7 +1434,7 @@ __metadata: dependenciesMeta: "@substrate/connect": optional: true - checksum: bea70c4bd3546ad89d661486db1b86bc292ffe6c69d26c5d2cf8fa56af258ce95b9fb0e49d02bc03cb61e43bb8fc8b922cf04f26110aca6dd431f2d8fc002bcd + checksum: 7c5cef2ce4364842d41f05a9bc0221aeebbf5bc3476105255a956fc3b29e5af80b78b67bc88440b71a2d969ca5c8b15f7ded7e34d5c5a0ed6867f0fbe0f7fa03 languageName: node linkType: hard @@ -1450,15 +1450,15 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-augment@npm:15.9.1": - version: 15.9.1 - resolution: "@polkadot/types-augment@npm:15.9.1" +"@polkadot/types-augment@npm:15.9.2": + version: 15.9.2 + resolution: "@polkadot/types-augment@npm:15.9.2" dependencies: - "@polkadot/types": 15.9.1 - "@polkadot/types-codec": 15.9.1 - "@polkadot/util": ^13.4.3 + "@polkadot/types": 15.9.2 + "@polkadot/types-codec": 15.9.2 + "@polkadot/util": ^13.4.4 tslib: ^2.8.1 - checksum: 4d404325be09f9ef626956b2494cfb088f19d9e2570b6bdf953fcada31427a3e0033cb1b3a8e02bbb9c73ef15ed4fcaa208b413d908f6405181001eeda1c45b4 + checksum: 3907ff2b3db8df0db10dca991ac419548f2aa5994324ab741622176b841d207ce47888f6e4cfd789e9b5e1c83b738844b8556c35b538f17421512b97b7a3ed34 languageName: node linkType: hard @@ -1473,14 +1473,14 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-codec@npm:15.9.1": - version: 15.9.1 - resolution: "@polkadot/types-codec@npm:15.9.1" +"@polkadot/types-codec@npm:15.9.2": + version: 15.9.2 + resolution: "@polkadot/types-codec@npm:15.9.2" dependencies: - "@polkadot/util": ^13.4.3 - "@polkadot/x-bigint": ^13.4.3 + "@polkadot/util": ^13.4.4 + "@polkadot/x-bigint": ^13.4.4 tslib: ^2.8.1 - checksum: aa54fbac1e82f9166c01eb1ef6303d2cd71ee82a5522c16ec8765c0b3bd67a011ca6ac0d9fb14b3de28e708fbc1e6232b6b3f169a88d1896d3f93fec021ab04d + checksum: f4c45f44c03d35c24fa6c1037d02492ac3720b0f29ff407885113f09eb5d9b07db8b09b1435d5ee925f14d408bd93c7c1278863bb295fbbc00b14e7057eff6ff languageName: node linkType: hard @@ -1495,14 +1495,14 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-create@npm:15.9.1": - version: 15.9.1 - resolution: "@polkadot/types-create@npm:15.9.1" +"@polkadot/types-create@npm:15.9.2": + version: 15.9.2 + resolution: "@polkadot/types-create@npm:15.9.2" dependencies: - "@polkadot/types-codec": 15.9.1 - "@polkadot/util": ^13.4.3 + "@polkadot/types-codec": 15.9.2 + "@polkadot/util": ^13.4.4 tslib: ^2.8.1 - checksum: bfe4ad657f56bfa1194ebc3a3f6ffa53a0b858cbe5e49d24d61e89960581aad12abe57a57d72897a91f5cec8e36d566e4601d8155bc56d197df5aac827699cd2 + checksum: 222cd0c9ce5ecdef5bc1fa5519de065a26f125849d52d014d73ef54d9bfc21ca19717745b5e83d890b5213cdb78384bfe25f0496de005011a6d4bc1d866116db languageName: node linkType: hard @@ -1520,17 +1520,17 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-known@npm:15.9.1": - version: 15.9.1 - resolution: "@polkadot/types-known@npm:15.9.1" +"@polkadot/types-known@npm:15.9.2": + version: 15.9.2 + resolution: "@polkadot/types-known@npm:15.9.2" dependencies: - "@polkadot/networks": ^13.4.3 - "@polkadot/types": 15.9.1 - "@polkadot/types-codec": 15.9.1 - "@polkadot/types-create": 15.9.1 - "@polkadot/util": ^13.4.3 + "@polkadot/networks": ^13.4.4 + "@polkadot/types": 15.9.2 + "@polkadot/types-codec": 15.9.2 + "@polkadot/types-create": 15.9.2 + "@polkadot/util": ^13.4.4 tslib: ^2.8.1 - checksum: 76cc21337515b014d61f98e07b3d328d05d417d8ef0a107699e539ba0fa2adae66204c765a406e8d265644d8989cc683adcf9bc4ea3b2e1535969ce8605db7b8 + checksum: e81265d547e277d1ab2bf14539f91b6394ed643f16008575198527b6fb0095750d3579a0314ea5185c15dd887245198275a251ef12c7519169514099bd4d37e8 languageName: node linkType: hard @@ -1544,45 +1544,13 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-support@npm:15.9.1": - version: 15.9.1 - resolution: "@polkadot/types-support@npm:15.9.1" +"@polkadot/types-support@npm:15.9.2": + version: 15.9.2 + resolution: "@polkadot/types-support@npm:15.9.2" dependencies: - "@polkadot/util": ^13.4.3 + "@polkadot/util": ^13.4.4 tslib: ^2.8.1 - checksum: 8d7fc8e0ec927c1509a87a85f4686a1f8e5b1004371e8e120b512fd00b0e25acfa2826ab7e448d01d96c7ae984b35e056deafb19126c209e74f8d0fc4154e4d3 - languageName: node - linkType: hard - -"@polkadot/types@file:../../types/build::locator=%40polkadot%2Fapi-contract%40file%3A%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%23%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3Ddc3fb3%26locator%3Dcontracts-ui%2540workspace%253A.": - version: 15.8.1 - resolution: "@polkadot/types@file:../../types/build#../../types/build::hash=169299&locator=%40polkadot%2Fapi-contract%40file%3A%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%23%2FUsers%2Fpeter%2Fdev%2Fdot-repos%2Fapi%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3Ddc3fb3%26locator%3Dcontracts-ui%2540workspace%253A." - dependencies: - "@polkadot/keyring": ^13.4.3 - "@polkadot/types-augment": 15.8.1 - "@polkadot/types-codec": 15.8.1 - "@polkadot/types-create": 15.8.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: db963ad20cc3529e5bf146ff72cc72c72115a644aeee0aa038d64c051097bddaee83eb50a4cdc5fb667eb7fa5a05dc1934676ef095d9d9610fa7b27f9ead3565 - languageName: node - linkType: hard - -"@polkadot/types@file:/Users/peter/dev/dot-repos/api/packages/types/build::locator=contracts-ui%40workspace%3A.": - version: 15.8.1 - resolution: "@polkadot/types@file:/Users/peter/dev/dot-repos/api/packages/types/build#/Users/peter/dev/dot-repos/api/packages/types/build::hash=169299&locator=contracts-ui%40workspace%3A." - dependencies: - "@polkadot/keyring": ^13.4.3 - "@polkadot/types-augment": 15.8.1 - "@polkadot/types-codec": 15.8.1 - "@polkadot/types-create": 15.8.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: db963ad20cc3529e5bf146ff72cc72c72115a644aeee0aa038d64c051097bddaee83eb50a4cdc5fb667eb7fa5a05dc1934676ef095d9d9610fa7b27f9ead3565 + checksum: 31cf062103c39b98bea0c9acb49aa5d576a756b0c96a3a4fb0c8ce092ebdc63d5ea12c6ceafd96643a84df96a49bac49b72781501b4b5708bad8197c7efc3f6d languageName: node linkType: hard @@ -1602,30 +1570,30 @@ __metadata: languageName: node linkType: hard -"@polkadot/types@npm:15.9.1, @polkadot/types@npm:^15.9.1": - version: 15.9.1 - resolution: "@polkadot/types@npm:15.9.1" +"@polkadot/types@npm:15.9.2, @polkadot/types@npm:^15.9.1": + version: 15.9.2 + resolution: "@polkadot/types@npm:15.9.2" dependencies: - "@polkadot/keyring": ^13.4.3 - "@polkadot/types-augment": 15.9.1 - "@polkadot/types-codec": 15.9.1 - "@polkadot/types-create": 15.9.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 + "@polkadot/keyring": ^13.4.4 + "@polkadot/types-augment": 15.9.2 + "@polkadot/types-codec": 15.9.2 + "@polkadot/types-create": 15.9.2 + "@polkadot/util": ^13.4.4 + "@polkadot/util-crypto": ^13.4.4 rxjs: ^7.8.1 tslib: ^2.8.1 - checksum: 60a605d86d4419f6862803cc8bdaf23a5ea43cf027177e7c99e011ba633640f0385bccb4f1f5e5ac715e8c53220f0618bdf450fe52436a45c6fd21a7bdf37769 + checksum: 344d4de44325e289fa1143287c73cb42f147c3cb8839a33ec2c2d669034b27ba84ecce7ff0d8daaf385a8dce744ba098ecba571037044d6869acd7e3aee18f86 languageName: node linkType: hard "@polkadot/ui-keyring@npm:^3.12.2": - version: 3.12.2 - resolution: "@polkadot/ui-keyring@npm:3.12.2" + version: 3.13.1 + resolution: "@polkadot/ui-keyring@npm:3.13.1" dependencies: - "@polkadot/keyring": ^13.4.3 - "@polkadot/ui-settings": 3.12.2 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 + "@polkadot/keyring": ^13.4.4 + "@polkadot/ui-settings": 3.13.1 + "@polkadot/util": ^13.4.4 + "@polkadot/util-crypto": ^13.4.4 mkdirp: ^3.0.1 rxjs: ^7.8.1 store: ^2.0.12 @@ -1634,71 +1602,71 @@ __metadata: "@polkadot/keyring": "*" "@polkadot/ui-settings": "*" "@polkadot/util": "*" - checksum: 78bec0f27a69f919875eb33daf71ab668eb68067d715ff785de6d07deabfaabf714406e556efc6f707f9f75a9724330cface7341327403eb930e9cd0dbc44324 + checksum: e0082ee43412e1db2c194b9e052329e022de3e41681b0874b8452f454a678c644cb9ca67e1d8b99d16df15f8d711d181fa515ec339ecd41bf7f5c1a72460c051 languageName: node linkType: hard -"@polkadot/ui-settings@npm:3.12.2": - version: 3.12.2 - resolution: "@polkadot/ui-settings@npm:3.12.2" +"@polkadot/ui-settings@npm:3.13.1": + version: 3.13.1 + resolution: "@polkadot/ui-settings@npm:3.13.1" dependencies: - "@polkadot/networks": ^13.4.3 - "@polkadot/util": ^13.4.3 + "@polkadot/networks": ^13.4.4 + "@polkadot/util": ^13.4.4 eventemitter3: ^5.0.1 store: ^2.0.12 tslib: ^2.8.1 peerDependencies: "@polkadot/networks": "*" "@polkadot/util": "*" - checksum: 812b235117182cc2748cf39ca37ee5efcc889758d714c4bc0c383045fdcc2c927ed25847a549c89f296dcfc8cb77c5a2bef85ce30cea6fab8c6baf4d7928b043 + checksum: 2231c17252d83230e967c686e37efac81c291279d9090d14b1267ce86f387b46c2213a1e2789cc7021b23717c42337b679a89397604435ad43cd63b892cd69ba languageName: node linkType: hard "@polkadot/ui-shared@npm:^3.12.2": - version: 3.12.2 - resolution: "@polkadot/ui-shared@npm:3.12.2" + version: 3.13.1 + resolution: "@polkadot/ui-shared@npm:3.13.1" dependencies: colord: ^2.9.3 tslib: ^2.8.1 peerDependencies: "@polkadot/util": "*" "@polkadot/util-crypto": "*" - checksum: 75d771d8ad94daa2be8e913201ba6a6e4f4b53fd47d89a0b3a8470a3ae36b47b308bfa5b7d70c41beca7108a48157bf33ce6752d4c63e5fe6108df3bd6e0b430 + checksum: 21e6c2f2d2d05b483fa0270d352a7ecefe2a5e0a502bcca8feb7996478ddeba257a65a1f0282897342531500e9ba9c156be0afb489a2e467731712ab2b16659a languageName: node linkType: hard -"@polkadot/util-crypto@npm:13.4.3, @polkadot/util-crypto@npm:^13.4.3": - version: 13.4.3 - resolution: "@polkadot/util-crypto@npm:13.4.3" +"@polkadot/util-crypto@npm:13.4.4, @polkadot/util-crypto@npm:^13.4.3, @polkadot/util-crypto@npm:^13.4.4": + version: 13.4.4 + resolution: "@polkadot/util-crypto@npm:13.4.4" dependencies: "@noble/curves": ^1.3.0 "@noble/hashes": ^1.3.3 - "@polkadot/networks": 13.4.3 - "@polkadot/util": 13.4.3 + "@polkadot/networks": 13.4.4 + "@polkadot/util": 13.4.4 "@polkadot/wasm-crypto": ^7.4.1 "@polkadot/wasm-util": ^7.4.1 - "@polkadot/x-bigint": 13.4.3 - "@polkadot/x-randomvalues": 13.4.3 + "@polkadot/x-bigint": 13.4.4 + "@polkadot/x-randomvalues": 13.4.4 "@scure/base": ^1.1.7 tslib: ^2.8.0 peerDependencies: - "@polkadot/util": 13.4.3 - checksum: eeddf313e80c898570a0ee0b999d0c560b489f8749188c678a1be2219e57a15a5123e50ab21e4bbb6bfaab380facdde3b75dba1b2fe16021415b62ee62abdfdb + "@polkadot/util": 13.4.4 + checksum: a97eb0b3096ea2bb6deefd6b14d5d3ecd1cbf6ad95a857b3123b6db8ce57c1fbf212d3b19bd4c736cc2bb6c0dec41550f2fc470fdc3913d5de9e5cdd5052cf42 languageName: node linkType: hard -"@polkadot/util@npm:13.4.3, @polkadot/util@npm:^13.4.3": - version: 13.4.3 - resolution: "@polkadot/util@npm:13.4.3" +"@polkadot/util@npm:13.4.4, @polkadot/util@npm:^13.4.3, @polkadot/util@npm:^13.4.4": + version: 13.4.4 + resolution: "@polkadot/util@npm:13.4.4" dependencies: - "@polkadot/x-bigint": 13.4.3 - "@polkadot/x-global": 13.4.3 - "@polkadot/x-textdecoder": 13.4.3 - "@polkadot/x-textencoder": 13.4.3 + "@polkadot/x-bigint": 13.4.4 + "@polkadot/x-global": 13.4.4 + "@polkadot/x-textdecoder": 13.4.4 + "@polkadot/x-textencoder": 13.4.4 "@types/bn.js": ^5.1.6 bn.js: ^5.2.1 tslib: ^2.8.0 - checksum: 64f643d427fa3664f996a9004ef970d25e676dd598a3edb5d04e134a62edfae896a84082398435deca9066bab6e8c80f1cd945bb5b02c0bd8a331464db35966a + checksum: e81f964f02c8c8ababa54c1dbd62eb4189692ac9a607836b8edfd0d2bb139172d1ea88cebd1c44b15484a61c1fbb6d01f9b444ecfa9eb5c0cec13f7c684ea2f9 languageName: node linkType: hard @@ -1782,77 +1750,77 @@ __metadata: languageName: node linkType: hard -"@polkadot/x-bigint@npm:13.4.3, @polkadot/x-bigint@npm:^13.4.3": - version: 13.4.3 - resolution: "@polkadot/x-bigint@npm:13.4.3" +"@polkadot/x-bigint@npm:13.4.4, @polkadot/x-bigint@npm:^13.4.3, @polkadot/x-bigint@npm:^13.4.4": + version: 13.4.4 + resolution: "@polkadot/x-bigint@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.3 + "@polkadot/x-global": 13.4.4 tslib: ^2.8.0 - checksum: 7d6e43bfead093b4af6421e4bec8f305ae7eba6059e145e1830f6e874173701639f2273c36b37fe63ec89d18a0992e24b246ee583a44c7656920f039e590018a + checksum: 8c18c9164e6d744d708aa66dd2edcdbecf2c8d83813444bcd9772002433718fc06900a0e4628c0725efe12fab85e66dc947337d06df114c2bfcb47d430061a0d languageName: node linkType: hard -"@polkadot/x-fetch@npm:^13.4.3": - version: 13.4.3 - resolution: "@polkadot/x-fetch@npm:13.4.3" +"@polkadot/x-fetch@npm:^13.4.3, @polkadot/x-fetch@npm:^13.4.4": + version: 13.4.4 + resolution: "@polkadot/x-fetch@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.3 + "@polkadot/x-global": 13.4.4 node-fetch: ^3.3.2 tslib: ^2.8.0 - checksum: e587ddb73a2aa5244f2597467cc6e02685a1b161fb47f8c585570920883e5368d5dff1aca88824f70180534169fb3cab109f531d4e298280043dc103261b5e2d + checksum: f37d127ebfcd4f622c006134b5a7269978077808a4c82d7e90dd5b6057a552d53068c00761119777ad357dd92c3994e6cf8637267904441be4188847e7e593d7 languageName: node linkType: hard -"@polkadot/x-global@npm:13.4.3, @polkadot/x-global@npm:^13.4.3": - version: 13.4.3 - resolution: "@polkadot/x-global@npm:13.4.3" +"@polkadot/x-global@npm:13.4.4, @polkadot/x-global@npm:^13.4.3, @polkadot/x-global@npm:^13.4.4": + version: 13.4.4 + resolution: "@polkadot/x-global@npm:13.4.4" dependencies: tslib: ^2.8.0 - checksum: 731750a234437e6d8b41757631644bca8f3c58df8e705392e3eafc040b82c562c6bc1f90aacc39abc39c712a3caa6c5e9ecd60efd4e36b1914b950507bc703df + checksum: 690539a3e1ff54193fcbf8f650d7a7068616a3fa8845ebe98a0a601d2e87cb52b054fbab85856a4c7758acd280c5d0b3cefae01d159389f0aae4fdea79549d5e languageName: node linkType: hard -"@polkadot/x-randomvalues@npm:13.4.3": - version: 13.4.3 - resolution: "@polkadot/x-randomvalues@npm:13.4.3" +"@polkadot/x-randomvalues@npm:13.4.4": + version: 13.4.4 + resolution: "@polkadot/x-randomvalues@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.3 + "@polkadot/x-global": 13.4.4 tslib: ^2.8.0 peerDependencies: - "@polkadot/util": 13.4.3 + "@polkadot/util": 13.4.4 "@polkadot/wasm-util": "*" - checksum: 4fb06d2ecbbe6ffe70b596064f8ac0d3df772a551337547fa5979698726e7f2dee323d35bf577e50f7f84a50ba3b7bdc620ccb9c246b6eb32ce43608f22b77a9 + checksum: b750df4f83ea866820b562c4d4bb0c3774af4734883542adb6bc16227b845b84a56a1c3089e57b865db104b0dafec6c18079a268aef57e9e5c851b309a6afe08 languageName: node linkType: hard -"@polkadot/x-textdecoder@npm:13.4.3": - version: 13.4.3 - resolution: "@polkadot/x-textdecoder@npm:13.4.3" +"@polkadot/x-textdecoder@npm:13.4.4": + version: 13.4.4 + resolution: "@polkadot/x-textdecoder@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.3 + "@polkadot/x-global": 13.4.4 tslib: ^2.8.0 - checksum: f47f0721bb61804e193e8d0219e367c1c5e7a2d46d07a0a60a1878b12ee1403792e5c0c74fc2a3c7fab231bac9b1140cb39008d1cf0e13694817ec8a97b48ed8 + checksum: 44a09304c1013345518e9bf05e0ca506845447515ab018f857c5d7428c048e9ca8623be0b659ed1b9a1e9cf6d702775eef850b6ceab10f6ceea7da959e623892 languageName: node linkType: hard -"@polkadot/x-textencoder@npm:13.4.3": - version: 13.4.3 - resolution: "@polkadot/x-textencoder@npm:13.4.3" +"@polkadot/x-textencoder@npm:13.4.4": + version: 13.4.4 + resolution: "@polkadot/x-textencoder@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.3 + "@polkadot/x-global": 13.4.4 tslib: ^2.8.0 - checksum: bee2d2b0458214858ae8a48b50333b155f1b315f38e42a0ea72287ee621d00dbb06022ac831a70f331297df30b5ff7c3120b1a6cde35137addcb81ac9281cd43 + checksum: 2534f585115d6bdd192ca76422789b897a3f50b7530014b71211f32fd201c1b0e4b1c3e2608599f09df1fcd0951b5c4c8ac04800584aa1b8521d1e8464179b88 languageName: node linkType: hard -"@polkadot/x-ws@npm:^13.4.3": - version: 13.4.3 - resolution: "@polkadot/x-ws@npm:13.4.3" +"@polkadot/x-ws@npm:^13.4.3, @polkadot/x-ws@npm:^13.4.4": + version: 13.4.4 + resolution: "@polkadot/x-ws@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.3 + "@polkadot/x-global": 13.4.4 tslib: ^2.8.0 ws: ^8.18.0 - checksum: 6e1dc064527576cd88798a04cd7f8d296ea45dba769cba6972127a563ac18de59642c997f50d5b99b55d9f67aec46c27f4315f7dedbb516cdcab5676f0b17ff8 + checksum: 4729fcce9f09584d5cdccfa7e25f2c00f1654c11f1f3e804e41f696714b721eb22082532887ebf1c2bf4af2315544900747ab21dff38e01a80cdae166e3597f4 languageName: node linkType: hard @@ -1863,142 +1831,142 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.39.0" +"@rollup/rollup-android-arm-eabi@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.40.0" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-android-arm64@npm:4.39.0" +"@rollup/rollup-android-arm64@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-android-arm64@npm:4.40.0" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.39.0" +"@rollup/rollup-darwin-arm64@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.40.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.39.0" +"@rollup/rollup-darwin-x64@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.40.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.39.0" +"@rollup/rollup-freebsd-arm64@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.40.0" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-freebsd-x64@npm:4.39.0" +"@rollup/rollup-freebsd-x64@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.40.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.39.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.40.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.39.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.40.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.39.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.40.0" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.39.0" +"@rollup/rollup-linux-arm64-musl@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.40.0" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.39.0" +"@rollup/rollup-linux-loongarch64-gnu@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.40.0" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.39.0" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.40.0" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.39.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.40.0" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-musl@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.39.0" +"@rollup/rollup-linux-riscv64-musl@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.40.0" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.39.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.40.0" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.39.0" +"@rollup/rollup-linux-x64-gnu@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.40.0" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.39.0" +"@rollup/rollup-linux-x64-musl@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.40.0" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.39.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.40.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.39.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.40.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.39.0": - version: 4.39.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.39.0" +"@rollup/rollup-win32-x64-msvc@npm:4.40.0": + version: 4.40.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.40.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -2025,9 +1993,9 @@ __metadata: linkType: hard "@substrate/connect-known-chains@npm:^1.1.5": - version: 1.9.3 - resolution: "@substrate/connect-known-chains@npm:1.9.3" - checksum: b04501211b7e0326e9e91b7e851ec7e3668e672c264f87ddef5c82c8213e8f241c34882d4c3757b3def878b66a87fb3a7225fc808ae5a4b6e970b17049f18cc1 + version: 1.10.0 + resolution: "@substrate/connect-known-chains@npm:1.10.0" + checksum: 077259b89402f25a4482137c8588588096e0e1c952513bccc3adf4e402bb6f8e5fc2fac69d84544e9f1edf0118aa63193e15901ef6d5cd7aee7b768b3cc602e0 languageName: node linkType: hard @@ -2067,94 +2035,94 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.11.18": - version: 1.11.18 - resolution: "@swc/core-darwin-arm64@npm:1.11.18" +"@swc/core-darwin-arm64@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-darwin-arm64@npm:1.11.21" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.11.18": - version: 1.11.18 - resolution: "@swc/core-darwin-x64@npm:1.11.18" +"@swc/core-darwin-x64@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-darwin-x64@npm:1.11.21" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.11.18": - version: 1.11.18 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.11.18" +"@swc/core-linux-arm-gnueabihf@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.11.21" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.11.18": - version: 1.11.18 - resolution: "@swc/core-linux-arm64-gnu@npm:1.11.18" +"@swc/core-linux-arm64-gnu@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-linux-arm64-gnu@npm:1.11.21" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.11.18": - version: 1.11.18 - resolution: "@swc/core-linux-arm64-musl@npm:1.11.18" +"@swc/core-linux-arm64-musl@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-linux-arm64-musl@npm:1.11.21" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.11.18": - version: 1.11.18 - resolution: "@swc/core-linux-x64-gnu@npm:1.11.18" +"@swc/core-linux-x64-gnu@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-linux-x64-gnu@npm:1.11.21" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.11.18": - version: 1.11.18 - resolution: "@swc/core-linux-x64-musl@npm:1.11.18" +"@swc/core-linux-x64-musl@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-linux-x64-musl@npm:1.11.21" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.11.18": - version: 1.11.18 - resolution: "@swc/core-win32-arm64-msvc@npm:1.11.18" +"@swc/core-win32-arm64-msvc@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-win32-arm64-msvc@npm:1.11.21" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.11.18": - version: 1.11.18 - resolution: "@swc/core-win32-ia32-msvc@npm:1.11.18" +"@swc/core-win32-ia32-msvc@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-win32-ia32-msvc@npm:1.11.21" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.11.18": - version: 1.11.18 - resolution: "@swc/core-win32-x64-msvc@npm:1.11.18" +"@swc/core-win32-x64-msvc@npm:1.11.21": + version: 1.11.21 + resolution: "@swc/core-win32-x64-msvc@npm:1.11.21" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:^1.11.11": - version: 1.11.18 - resolution: "@swc/core@npm:1.11.18" +"@swc/core@npm:^1.11.21": + version: 1.11.21 + resolution: "@swc/core@npm:1.11.21" dependencies: - "@swc/core-darwin-arm64": 1.11.18 - "@swc/core-darwin-x64": 1.11.18 - "@swc/core-linux-arm-gnueabihf": 1.11.18 - "@swc/core-linux-arm64-gnu": 1.11.18 - "@swc/core-linux-arm64-musl": 1.11.18 - "@swc/core-linux-x64-gnu": 1.11.18 - "@swc/core-linux-x64-musl": 1.11.18 - "@swc/core-win32-arm64-msvc": 1.11.18 - "@swc/core-win32-ia32-msvc": 1.11.18 - "@swc/core-win32-x64-msvc": 1.11.18 + "@swc/core-darwin-arm64": 1.11.21 + "@swc/core-darwin-x64": 1.11.21 + "@swc/core-linux-arm-gnueabihf": 1.11.21 + "@swc/core-linux-arm64-gnu": 1.11.21 + "@swc/core-linux-arm64-musl": 1.11.21 + "@swc/core-linux-x64-gnu": 1.11.21 + "@swc/core-linux-x64-musl": 1.11.21 + "@swc/core-win32-arm64-msvc": 1.11.21 + "@swc/core-win32-ia32-msvc": 1.11.21 + "@swc/core-win32-x64-msvc": 1.11.21 "@swc/counter": ^0.1.3 "@swc/types": ^0.1.21 peerDependencies: - "@swc/helpers": "*" + "@swc/helpers": ">=0.5.17" dependenciesMeta: "@swc/core-darwin-arm64": optional: true @@ -2179,7 +2147,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: ccf06f3cc553defa2288a99beb35aeb3ca3c450920c5eafd1583136a3ef5963e128c34671f34bdbcc7d4760f60692498c9b145ba8eeb99beff6643bd71637577 + checksum: 11f1e54ba42af019ed123ab0019ff43fd67c35a7b6efe0d3c83afddb244b2b0f65832e56c213ea9ed630925f62101a8155bc8aa18a033e4474d0cf52e9c273a7 languageName: node linkType: hard @@ -2395,11 +2363,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^22.5.0": - version: 22.14.0 - resolution: "@types/node@npm:22.14.0" + version: 22.14.1 + resolution: "@types/node@npm:22.14.1" dependencies: undici-types: ~6.21.0 - checksum: 8bfae1d3c428b122d23750690bdc5b8295a53949823563ec60654a24ece98bde4fc0d2b5f06ddc6def6f01a08dfe62cece7c93e60964b74f736145dad5ee1302 + checksum: e22363f40ac8290da2bb5261c2b348241fd93b000908cefd3c56575df9d4f6b8d102fc8631275eac7ec4a9e0ac4f38f01c9d8104ebbda76c936aef96fd1e55f3 languageName: node linkType: hard @@ -2484,14 +2452,14 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^8.2.0": - version: 8.29.1 - resolution: "@typescript-eslint/eslint-plugin@npm:8.29.1" + version: 8.30.1 + resolution: "@typescript-eslint/eslint-plugin@npm:8.30.1" dependencies: "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 8.29.1 - "@typescript-eslint/type-utils": 8.29.1 - "@typescript-eslint/utils": 8.29.1 - "@typescript-eslint/visitor-keys": 8.29.1 + "@typescript-eslint/scope-manager": 8.30.1 + "@typescript-eslint/type-utils": 8.30.1 + "@typescript-eslint/utils": 8.30.1 + "@typescript-eslint/visitor-keys": 8.30.1 graphemer: ^1.4.0 ignore: ^5.3.1 natural-compare: ^1.4.0 @@ -2500,64 +2468,64 @@ __metadata: "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 7951a5c812af59fcd32f938f4019a02517739f7b4069d3a018378466a0b9a85b27608f76e6ae7c0186502d56cc7c66aa28aac6cc82642309604e461def8abc55 + checksum: dbdc516ad95ac46d6ce4591356207e179def1b332883a635a3319fe8e2bcdb9de788f3df7a9afae80b7fa803a347be0ca90b45da06d33bc43ff67ec9182f3dbe languageName: node linkType: hard "@typescript-eslint/parser@npm:^8.2.0": - version: 8.29.1 - resolution: "@typescript-eslint/parser@npm:8.29.1" + version: 8.30.1 + resolution: "@typescript-eslint/parser@npm:8.30.1" dependencies: - "@typescript-eslint/scope-manager": 8.29.1 - "@typescript-eslint/types": 8.29.1 - "@typescript-eslint/typescript-estree": 8.29.1 - "@typescript-eslint/visitor-keys": 8.29.1 + "@typescript-eslint/scope-manager": 8.30.1 + "@typescript-eslint/types": 8.30.1 + "@typescript-eslint/typescript-estree": 8.30.1 + "@typescript-eslint/visitor-keys": 8.30.1 debug: ^4.3.4 peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 0d0f3288b7d2c61c99e30caf1f2fcb85f750eb7aadbbf94ba95bb11ed9abd2e60f52c6433d24b8afa447cfc34ff2af2ef7dde106f51a87df741737b9d4849ecc + checksum: cac3cfe1c1e85e6639a05b9fedf3bdc56034eba063c1d637282c278cf6d4d6bd039f31513e9591056e8da4dd6c433d4f9ac841e8bee52a19e5b8709599a9168a languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.29.1": - version: 8.29.1 - resolution: "@typescript-eslint/scope-manager@npm:8.29.1" +"@typescript-eslint/scope-manager@npm:8.30.1": + version: 8.30.1 + resolution: "@typescript-eslint/scope-manager@npm:8.30.1" dependencies: - "@typescript-eslint/types": 8.29.1 - "@typescript-eslint/visitor-keys": 8.29.1 - checksum: b560a2bc3d267c78c91fd2d03d2cf689f803132fa94a9e6cf00224803efd23e6d7c6f49c3e7ff990e30f7a8acdfd1a6b71b0ebe61f924dd19f7a48780f59cf03 + "@typescript-eslint/types": 8.30.1 + "@typescript-eslint/visitor-keys": 8.30.1 + checksum: cef9e700167fa1345edf26f60b384f04d05c386d2a255f6b89d602306165b6d7cf2a6e5d51f683571af6ebf1eebf89c07aed7f3253f399d632ecbb2ef1cbbaf1 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.29.1": - version: 8.29.1 - resolution: "@typescript-eslint/type-utils@npm:8.29.1" +"@typescript-eslint/type-utils@npm:8.30.1": + version: 8.30.1 + resolution: "@typescript-eslint/type-utils@npm:8.30.1" dependencies: - "@typescript-eslint/typescript-estree": 8.29.1 - "@typescript-eslint/utils": 8.29.1 + "@typescript-eslint/typescript-estree": 8.30.1 + "@typescript-eslint/utils": 8.30.1 debug: ^4.3.4 ts-api-utils: ^2.0.1 peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: c5b7cf3f7b097d51b505b136ae6e8fe3d9b10882d2c4a2e299234f33a8032459c0a9fd9383405e52a32eb4f92a0417fecd1a67d6a83f99d52b38f9b145bce127 + checksum: 6283d4b4d0edd371e9ad8172030ba51e9b69ed6f19a1ad6ad8ea98a00d07e77dd2a2618cd12a0827762ccd3c058b746b1d77b975dc5e81aad6e1b19abee650a7 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.29.1": - version: 8.29.1 - resolution: "@typescript-eslint/types@npm:8.29.1" - checksum: 3a48ad30af93388b599b08bf1bee64cac6f4d9dcdb5c3b49309ca674d1a3c4740222af83512528bb5dad7d738e07d9858f198ddce4aac751439bd024a4cb4cde +"@typescript-eslint/types@npm:8.30.1": + version: 8.30.1 + resolution: "@typescript-eslint/types@npm:8.30.1" + checksum: 264c4d8e1bef5b9e79509e2322a3978716768f03ef3af9ed62a7490bec04d3aaa1535b71221fe95f0d113227dfbade3664f5d5687d7859585c6bce536f138927 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.29.1": - version: 8.29.1 - resolution: "@typescript-eslint/typescript-estree@npm:8.29.1" +"@typescript-eslint/typescript-estree@npm:8.30.1": + version: 8.30.1 + resolution: "@typescript-eslint/typescript-estree@npm:8.30.1" dependencies: - "@typescript-eslint/types": 8.29.1 - "@typescript-eslint/visitor-keys": 8.29.1 + "@typescript-eslint/types": 8.30.1 + "@typescript-eslint/visitor-keys": 8.30.1 debug: ^4.3.4 fast-glob: ^3.3.2 is-glob: ^4.0.3 @@ -2566,32 +2534,32 @@ __metadata: ts-api-utils: ^2.0.1 peerDependencies: typescript: ">=4.8.4 <5.9.0" - checksum: a5b9af38921d75432f5dcbfb2bcd25c58b4d9ecbe749859eeff6335f4b2f1241e2b63cf90532649609227f8ff28f9774f7056f360ca4c7ca26f53b321a357ab5 + checksum: f57a34e36de92aad859081bd64004fa8cbc5c00836145230bf6ed555bcd63a360e34086619aa77bbf17b97167a17be75b8a472c7951eee7a423760c482852b62 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.29.1": - version: 8.29.1 - resolution: "@typescript-eslint/utils@npm:8.29.1" +"@typescript-eslint/utils@npm:8.30.1": + version: 8.30.1 + resolution: "@typescript-eslint/utils@npm:8.30.1" dependencies: "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 8.29.1 - "@typescript-eslint/types": 8.29.1 - "@typescript-eslint/typescript-estree": 8.29.1 + "@typescript-eslint/scope-manager": 8.30.1 + "@typescript-eslint/types": 8.30.1 + "@typescript-eslint/typescript-estree": 8.30.1 peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 473915d36c0db781126400f70a6184f1daa2943b6ed4fe366a9791e15e301fb1308b92483ef9d96cc7eadf1c8aef995969192c6e15b58d306a2cce6b3f71803c + checksum: 637b3b8b3dd6115122d1008572a86c356708682c28bfc40d916d8453caaefa9ac90cac2bf91b1a434e57ae5a84c81003c52389efff4371c71ee78ca91bb5b940 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.29.1": - version: 8.29.1 - resolution: "@typescript-eslint/visitor-keys@npm:8.29.1" +"@typescript-eslint/visitor-keys@npm:8.30.1": + version: 8.30.1 + resolution: "@typescript-eslint/visitor-keys@npm:8.30.1" dependencies: - "@typescript-eslint/types": 8.29.1 + "@typescript-eslint/types": 8.30.1 eslint-visitor-keys: ^4.2.0 - checksum: 82bd4efa0ed982d80bfda85151e11da95c5c79fcf54389f37cdd168ae7a83abc6f72a5b8fb2c90f7a568f02e8bd3d7752cb5671b51faff13a06434a999ea346e + checksum: 7878f1e3e2d497596e007c96ee5fd7993e79009c7de88fa10a431983be16de5292b73ccbb5ebab4dc2ab88d4864250a6b0f3c3e3acde775bb915fa6e34fc878d languageName: node linkType: hard @@ -2602,136 +2570,143 @@ __metadata: languageName: node linkType: hard -"@unrs/resolver-binding-darwin-arm64@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.4.1" +"@unrs/resolver-binding-darwin-arm64@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.5.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-darwin-x64@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-darwin-x64@npm:1.4.1" +"@unrs/resolver-binding-darwin-x64@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-darwin-x64@npm:1.5.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-freebsd-x64@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.4.1" +"@unrs/resolver-binding-freebsd-x64@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.5.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.4.1" +"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.5.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.4.1" +"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.5.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-gnu@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.4.1" +"@unrs/resolver-binding-linux-arm64-gnu@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.5.0" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-musl@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.4.1" +"@unrs/resolver-binding-linux-arm64-musl@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.5.0" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.4.1" +"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.5.0" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-s390x-gnu@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.4.1" +"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.5.0" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-s390x-gnu@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.5.0" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-gnu@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.4.1" +"@unrs/resolver-binding-linux-x64-gnu@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.5.0" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-musl@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.4.1" +"@unrs/resolver-binding-linux-x64-musl@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.5.0" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-wasm32-wasi@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.4.1" +"@unrs/resolver-binding-wasm32-wasi@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.5.0" dependencies: "@napi-rs/wasm-runtime": ^0.2.8 conditions: cpu=wasm32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-arm64-msvc@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.4.1" +"@unrs/resolver-binding-win32-arm64-msvc@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.5.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-win32-ia32-msvc@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.4.1" +"@unrs/resolver-binding-win32-ia32-msvc@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.5.0" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-x64-msvc@npm:1.4.1": - version: 1.4.1 - resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.4.1" +"@unrs/resolver-binding-win32-x64-msvc@npm:1.5.0": + version: 1.5.0 + resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.5.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@vitejs/plugin-react-swc@npm:^3.7.0": - version: 3.8.1 - resolution: "@vitejs/plugin-react-swc@npm:3.8.1" + version: 3.9.0 + resolution: "@vitejs/plugin-react-swc@npm:3.9.0" dependencies: - "@swc/core": ^1.11.11 + "@swc/core": ^1.11.21 peerDependencies: vite: ^4 || ^5 || ^6 - checksum: 3f6e72660df1592d2a667c9eb4158f4a124a0cd66214f21e9601e9c1521630e0eaa275ce4653157edac96544ac7ab5af9987bfa40260d2b7d944505a8aa1fb3c + checksum: 3c69ce56649742c1f1c5d4a5130263135825ea09a79935c9b307d83e0d29d1764c8ac063b1454df2f8cdf00d67fc6195fc94286e94f10a04d9e4da35e504df30 languageName: node linkType: hard "@vitejs/plugin-react@npm:^4.3.1": - version: 4.3.4 - resolution: "@vitejs/plugin-react@npm:4.3.4" + version: 4.4.0 + resolution: "@vitejs/plugin-react@npm:4.4.0" dependencies: - "@babel/core": ^7.26.0 + "@babel/core": ^7.26.10 "@babel/plugin-transform-react-jsx-self": ^7.25.9 "@babel/plugin-transform-react-jsx-source": ^7.25.9 "@types/babel__core": ^7.20.5 - react-refresh: ^0.14.2 + react-refresh: ^0.17.0 peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - checksum: d417f40d9259a1d5193152f7d9fee081d5bf41cbeef9662ae1123ccc1e26aa4b6b04bc82ebb8c4fbfde9516a746fb3af7da19fdd449819c30f0631daaa10a44b + checksum: d15226cdbddea5dc9b5eedcb89ec68cf008cfde326a43d94819ef52944231ae702c6a26e5979c0584554fe6443222c552b7e6bc226229968eab031016bf00a7d languageName: node linkType: hard @@ -3530,9 +3505,9 @@ __metadata: linkType: hard "caniuse-lite@npm:^1.0.30001688, caniuse-lite@npm:^1.0.30001702": - version: 1.0.30001713 - resolution: "caniuse-lite@npm:1.0.30001713" - checksum: 45fd9ae77965a694818d495671ba3e9a87e4eed063824b2244c0b83b1ab0ba2d8e71dcd45441f638caadf8f0c99e154a4326bbef5c291327090cdc38feeda6fd + version: 1.0.30001714 + resolution: "caniuse-lite@npm:1.0.30001714" + checksum: e68fbee9a115f842f0d907e033f14e8d476f965473556fb993c8870854a2608573eebf4dbc2aa5b03caa9c6224ff4afe63ea8c702566fbbcb78c369fba72395b languageName: node linkType: hard @@ -3867,9 +3842,9 @@ __metadata: "@heroicons/react": ^1.0.6 "@istanbuljs/nyc-config-typescript": ^1.0.2 "@polkadot/api": 15.8.1 - "@polkadot/api-contract": "file:/Users/peter/dev/dot-repos/api/packages/api-contract/build" + "@polkadot/api-contract": "file:./.polkadot-js-api/packages/api-contract/build" "@polkadot/extension-dapp": ^0.58.6 - "@polkadot/types": "file:/Users/peter/dev/dot-repos/api/packages/types/build" + "@polkadot/types": 15.8.1 "@polkadot/ui-keyring": ^3.12.2 "@polkadot/ui-shared": ^3.12.2 "@tailwindcss/forms": ^0.5.7 @@ -4398,9 +4373,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.5.73": - version: 1.5.136 - resolution: "electron-to-chromium@npm:1.5.136" - checksum: 848e40a5f5b1de9dfbd82f3c29a696afa9a3d5372e6a83aef14ee5779e05f5cc055f7381f4bea46be5a991626683543c28fa1844e10e6d313bbe5d4680deef76 + version: 1.5.137 + resolution: "electron-to-chromium@npm:1.5.137" + checksum: 000803b46f87a52fda756ffcb92b7e8baa1ccd5c2545fde46f35b8f10f9d7e1d0d8681532f8ef2e9ee2e0367c63772554f04966abd8576b3403204fdf684a2b5 languageName: node linkType: hard @@ -6741,8 +6716,8 @@ __metadata: linkType: hard "lint-staged@npm:^15.2.9": - version: 15.5.0 - resolution: "lint-staged@npm:15.5.0" + version: 15.5.1 + resolution: "lint-staged@npm:15.5.1" dependencies: chalk: ^5.4.1 commander: ^13.1.0 @@ -6756,7 +6731,7 @@ __metadata: yaml: ^2.7.0 bin: lint-staged: bin/lint-staged.js - checksum: 9d5854d1bef3b0b604b3c10e56f73ee49026ff700e5f9497522c852356b25a0a43f9897e9e336ed99bf91e6bde978279f6a6d59b9b94716c1dd6d46b6ddad462 + checksum: aa285bf6c55459030254536661e2cf4a69d8084ff945a088b1a60a94b96e3593c866b2804e7a5b6168f65ea675b785657e70ade9248e9c6f3023d3bd35b497b5 languageName: node linkType: hard @@ -8779,10 +8754,10 @@ __metadata: languageName: node linkType: hard -"react-refresh@npm:^0.14.2": - version: 0.14.2 - resolution: "react-refresh@npm:0.14.2" - checksum: d80db4bd40a36dab79010dc8aa317a5b931f960c0d83c4f3b81f0552cbcf7f29e115b84bb7908ec6a1eb67720fff7023084eff73ece8a7ddc694882478464382 +"react-refresh@npm:^0.17.0": + version: 0.17.0 + resolution: "react-refresh@npm:0.17.0" + checksum: e9d23a70543edde879263976d7909cd30c6f698fa372a1240142cf7c8bf99e0396378b9c07c2d39c3a10261d7ba07dc49f990cd8f1ac7b88952e99040a0be5e9 languageName: node linkType: hard @@ -9130,29 +9105,29 @@ __metadata: linkType: hard "rollup@npm:^4.20.0": - version: 4.39.0 - resolution: "rollup@npm:4.39.0" - dependencies: - "@rollup/rollup-android-arm-eabi": 4.39.0 - "@rollup/rollup-android-arm64": 4.39.0 - "@rollup/rollup-darwin-arm64": 4.39.0 - "@rollup/rollup-darwin-x64": 4.39.0 - "@rollup/rollup-freebsd-arm64": 4.39.0 - "@rollup/rollup-freebsd-x64": 4.39.0 - "@rollup/rollup-linux-arm-gnueabihf": 4.39.0 - "@rollup/rollup-linux-arm-musleabihf": 4.39.0 - "@rollup/rollup-linux-arm64-gnu": 4.39.0 - "@rollup/rollup-linux-arm64-musl": 4.39.0 - "@rollup/rollup-linux-loongarch64-gnu": 4.39.0 - "@rollup/rollup-linux-powerpc64le-gnu": 4.39.0 - "@rollup/rollup-linux-riscv64-gnu": 4.39.0 - "@rollup/rollup-linux-riscv64-musl": 4.39.0 - "@rollup/rollup-linux-s390x-gnu": 4.39.0 - "@rollup/rollup-linux-x64-gnu": 4.39.0 - "@rollup/rollup-linux-x64-musl": 4.39.0 - "@rollup/rollup-win32-arm64-msvc": 4.39.0 - "@rollup/rollup-win32-ia32-msvc": 4.39.0 - "@rollup/rollup-win32-x64-msvc": 4.39.0 + version: 4.40.0 + resolution: "rollup@npm:4.40.0" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.40.0 + "@rollup/rollup-android-arm64": 4.40.0 + "@rollup/rollup-darwin-arm64": 4.40.0 + "@rollup/rollup-darwin-x64": 4.40.0 + "@rollup/rollup-freebsd-arm64": 4.40.0 + "@rollup/rollup-freebsd-x64": 4.40.0 + "@rollup/rollup-linux-arm-gnueabihf": 4.40.0 + "@rollup/rollup-linux-arm-musleabihf": 4.40.0 + "@rollup/rollup-linux-arm64-gnu": 4.40.0 + "@rollup/rollup-linux-arm64-musl": 4.40.0 + "@rollup/rollup-linux-loongarch64-gnu": 4.40.0 + "@rollup/rollup-linux-powerpc64le-gnu": 4.40.0 + "@rollup/rollup-linux-riscv64-gnu": 4.40.0 + "@rollup/rollup-linux-riscv64-musl": 4.40.0 + "@rollup/rollup-linux-s390x-gnu": 4.40.0 + "@rollup/rollup-linux-x64-gnu": 4.40.0 + "@rollup/rollup-linux-x64-musl": 4.40.0 + "@rollup/rollup-win32-arm64-msvc": 4.40.0 + "@rollup/rollup-win32-ia32-msvc": 4.40.0 + "@rollup/rollup-win32-x64-msvc": 4.40.0 "@types/estree": 1.0.7 fsevents: ~2.3.2 dependenciesMeta: @@ -9200,7 +9175,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: e5205be3107221bc0de467c6f9d2cc4bef18019f5111fa84f24dd640cb1c82c0c46a5f51c052df956fe24bd6a1e34398fb5abe08470f94d29aa7ad08208115e9 + checksum: 4826d7bbb48147403023133b6d8a67f792efe3463def637713bed392b5d7fc9903b4b86de44c58420304beca9e8d108268036e9081fff675af6c01822ef6b2b9 languageName: node linkType: hard @@ -10108,21 +10083,21 @@ __metadata: languageName: node linkType: hard -"tldts-core@npm:^6.1.85": - version: 6.1.85 - resolution: "tldts-core@npm:6.1.85" - checksum: 36e283719955d1699d40028d71e62e3509f37de734ca54bc27e58176ec00c96693b852a3b29c03e1291e5b27003ec4829f9423cd13c9f9842f18a3c0c4728014 +"tldts-core@npm:^6.1.86": + version: 6.1.86 + resolution: "tldts-core@npm:6.1.86" + checksum: 0a715457e03101deff9b34cf45dcd91b81985ef32d35b8e9c4764dcf76369bf75394304997584080bb7b8897e94e20f35f3e8240a1ec87d6faba3cc34dc5a954 languageName: node linkType: hard "tldts@npm:^6.1.32": - version: 6.1.85 - resolution: "tldts@npm:6.1.85" + version: 6.1.86 + resolution: "tldts@npm:6.1.86" dependencies: - tldts-core: ^6.1.85 + tldts-core: ^6.1.86 bin: tldts: bin/cli.js - checksum: 9f8d5d1f512857aaa8a64f0eb93c84fc14bef5d49b3c1571feb619fd1f80ea28a8f94f4c31acaeb2273e9519923ec4a1e70328280d0efd2b0af6e4594551ae53 + checksum: e5c57664f73663c6c8f7770db02c0c03d6f877fe837854c72037be8092826f95b8e568962358441ef18431b80b7e40ed88391c70873ee7ec0d4344999a12e3de languageName: node linkType: hard @@ -10516,24 +10491,25 @@ __metadata: linkType: hard "unrs-resolver@npm:^1.3.2": - version: 1.4.1 - resolution: "unrs-resolver@npm:1.4.1" - dependencies: - "@unrs/resolver-binding-darwin-arm64": 1.4.1 - "@unrs/resolver-binding-darwin-x64": 1.4.1 - "@unrs/resolver-binding-freebsd-x64": 1.4.1 - "@unrs/resolver-binding-linux-arm-gnueabihf": 1.4.1 - "@unrs/resolver-binding-linux-arm-musleabihf": 1.4.1 - "@unrs/resolver-binding-linux-arm64-gnu": 1.4.1 - "@unrs/resolver-binding-linux-arm64-musl": 1.4.1 - "@unrs/resolver-binding-linux-ppc64-gnu": 1.4.1 - "@unrs/resolver-binding-linux-s390x-gnu": 1.4.1 - "@unrs/resolver-binding-linux-x64-gnu": 1.4.1 - "@unrs/resolver-binding-linux-x64-musl": 1.4.1 - "@unrs/resolver-binding-wasm32-wasi": 1.4.1 - "@unrs/resolver-binding-win32-arm64-msvc": 1.4.1 - "@unrs/resolver-binding-win32-ia32-msvc": 1.4.1 - "@unrs/resolver-binding-win32-x64-msvc": 1.4.1 + version: 1.5.0 + resolution: "unrs-resolver@npm:1.5.0" + dependencies: + "@unrs/resolver-binding-darwin-arm64": 1.5.0 + "@unrs/resolver-binding-darwin-x64": 1.5.0 + "@unrs/resolver-binding-freebsd-x64": 1.5.0 + "@unrs/resolver-binding-linux-arm-gnueabihf": 1.5.0 + "@unrs/resolver-binding-linux-arm-musleabihf": 1.5.0 + "@unrs/resolver-binding-linux-arm64-gnu": 1.5.0 + "@unrs/resolver-binding-linux-arm64-musl": 1.5.0 + "@unrs/resolver-binding-linux-ppc64-gnu": 1.5.0 + "@unrs/resolver-binding-linux-riscv64-gnu": 1.5.0 + "@unrs/resolver-binding-linux-s390x-gnu": 1.5.0 + "@unrs/resolver-binding-linux-x64-gnu": 1.5.0 + "@unrs/resolver-binding-linux-x64-musl": 1.5.0 + "@unrs/resolver-binding-wasm32-wasi": 1.5.0 + "@unrs/resolver-binding-win32-arm64-msvc": 1.5.0 + "@unrs/resolver-binding-win32-ia32-msvc": 1.5.0 + "@unrs/resolver-binding-win32-x64-msvc": 1.5.0 dependenciesMeta: "@unrs/resolver-binding-darwin-arm64": optional: true @@ -10551,6 +10527,8 @@ __metadata: optional: true "@unrs/resolver-binding-linux-ppc64-gnu": optional: true + "@unrs/resolver-binding-linux-riscv64-gnu": + optional: true "@unrs/resolver-binding-linux-s390x-gnu": optional: true "@unrs/resolver-binding-linux-x64-gnu": @@ -10565,7 +10543,7 @@ __metadata: optional: true "@unrs/resolver-binding-win32-x64-msvc": optional: true - checksum: a8069fceb656375022fb80fa6cccae1c759cd88f1da9507cbc72b86fbb1cff7423ede3d751d7692d3a190b5d1cf34a80133fcf602c7a290deaaa0a27d4d03a3b + checksum: 76e0c0626f36fb5204efe099c5dad81a0a70b39c235cf7a5c808e3d7fefe21c205d2d94a99027ae6e2ed9d6b8a9f0b1296ab28222cd018a2690f2cf5f3b0e3c0 languageName: node linkType: hard From 93857f78222bb2fad40cf4bc516c851189637e04 Mon Sep 17 00:00:00 2001 From: Peter White Date: Wed, 16 Apr 2025 22:18:24 -0600 Subject: [PATCH 07/32] build: add prebuilt api-contract --- .api-contract/README.md | 3 + .api-contract/build-deno/Abi/index.ts | 483 +++ .../build-deno/Abi/toLatestCompatible.ts | 53 + .api-contract/build-deno/Abi/toV1.ts | 37 + .api-contract/build-deno/Abi/toV2.ts | 67 + .api-contract/build-deno/Abi/toV3.ts | 21 + .api-contract/build-deno/Abi/toV4.ts | 24 + .api-contract/build-deno/README.md | 3 + .api-contract/build-deno/augment.ts | 1 + .api-contract/build-deno/base/Base.ts | 49 + .api-contract/build-deno/base/Blueprint.ts | 113 + .api-contract/build-deno/base/Code.ts | 137 + .api-contract/build-deno/base/Contract.ts | 264 ++ .api-contract/build-deno/base/index.ts | 3 + .api-contract/build-deno/base/mock.ts | 28 + .api-contract/build-deno/base/types.ts | 50 + .api-contract/build-deno/base/util.ts | 74 + .api-contract/build-deno/bundle.ts | 5 + .api-contract/build-deno/checkTypes.manual.ts | 42 + .api-contract/build-deno/index.ts | 3 + .api-contract/build-deno/mod.ts | 1 + .api-contract/build-deno/packageDetect.ts | 7 + .api-contract/build-deno/packageInfo.ts | 6 + .api-contract/build-deno/promise/index.ts | 39 + .api-contract/build-deno/promise/types.ts | 7 + .api-contract/build-deno/rx/index.ts | 35 + .api-contract/build-deno/rx/types.ts | 7 + .../build-deno/test/contracts/index.ts | 13 + .../build-deno/test/contracts/ink/index.ts | 9 + .../test/contracts/ink/v0/accumulator.wasm | Bin 0 -> 8826 bytes .../test/contracts/ink/v0/adder.wasm | Bin 0 -> 11995 bytes .../test/contracts/ink/v0/delegator.wasm | Bin 0 -> 30472 bytes .../build-deno/test/contracts/ink/v0/dns.wasm | Bin 0 -> 47980 bytes .../test/contracts/ink/v0/erc20.wasm | Bin 0 -> 56449 bytes .../test/contracts/ink/v0/erc721.wasm | Bin 0 -> 74793 bytes .../test/contracts/ink/v0/flipper.wasm | Bin 0 -> 19085 bytes .../test/contracts/ink/v0/incrementer.wasm | Bin 0 -> 19056 bytes .../build-deno/test/contracts/ink/v0/index.ts | 8 + .../test/contracts/ink/v0/multisig_plain.wasm | Bin 0 -> 93026 bytes .../test/contracts/ink/v0/subber.wasm | Bin 0 -> 12005 bytes .../test/contracts/ink/v0/trait-flipper.wasm | Bin 0 -> 19050 bytes .../build-deno/test/contracts/ink/v1/index.ts | 2 + .../build-deno/test/contracts/ink/v2/index.ts | 2 + .../build-deno/test/contracts/ink/v3/index.ts | 2 + .../test/contracts/ink/v4/erc20.wasm | Bin 0 -> 21078 bytes .../test/contracts/ink/v4/flipper.wasm | Bin 0 -> 12526 bytes .../build-deno/test/contracts/ink/v4/index.ts | 4 + .../test/contracts/ink/v5/erc20.wasm | Bin 0 -> 19416 bytes .../test/contracts/ink/v5/flipper.wasm | Bin 0 -> 10450 bytes .../build-deno/test/contracts/ink/v5/index.ts | 5 + .../build-deno/test/contracts/solang/index.ts | 4 + .../test/contracts/solang/v0/index.ts | 1 + .../test/contracts/solang/v0/ints256.sol | 13 + .../test/contracts/solang/v0/ints256.wasm | Bin 0 -> 1782 bytes .../build-deno/test/contracts/user/index.ts | 6 + .../test/contracts/user/v0/assetTransfer.wasm | Bin 0 -> 11151 bytes .../test/contracts/user/v0/enumExample.wasm | Bin 0 -> 5473 bytes .../test/contracts/user/v0/index.ts | 4 + .../test/contracts/user/v3/index.ts | 1 + .../test/contracts/user/v4/index.ts | 1 + .../build-deno/test/contracts/util.ts | 13 + .api-contract/build-deno/types.ts | 100 + .api-contract/build-deno/util.ts | 20 + .api-contract/build-tsc-cjs/Abi/index.js | 348 +++ .../build-tsc-cjs/Abi/toLatestCompatible.js | 37 + .api-contract/build-tsc-cjs/Abi/toV1.js | 27 + .api-contract/build-tsc-cjs/Abi/toV2.js | 36 + .api-contract/build-tsc-cjs/Abi/toV3.js | 20 + .api-contract/build-tsc-cjs/Abi/toV4.js | 20 + .api-contract/build-tsc-cjs/augment.js | 3 + .api-contract/build-tsc-cjs/base/Base.js | 41 + .api-contract/build-tsc-cjs/base/Blueprint.js | 83 + .api-contract/build-tsc-cjs/base/Code.js | 94 + .api-contract/build-tsc-cjs/base/Contract.js | 164 + .api-contract/build-tsc-cjs/base/index.js | 62 + .api-contract/build-tsc-cjs/base/mock.js | 25 + .api-contract/build-tsc-cjs/base/types.js | 2 + .api-contract/build-tsc-cjs/base/util.js | 42 + .api-contract/build-tsc-cjs/bundle.js | 20 + .api-contract/build-tsc-cjs/index.js | 5 + .api-contract/build-tsc-cjs/packageDetect.js | 10 + .api-contract/build-tsc-cjs/packageInfo.js | 9 + .api-contract/build-tsc-cjs/promise/index.js | 23 + .api-contract/build-tsc-cjs/promise/types.js | 2 + .api-contract/build-tsc-cjs/rx/index.js | 23 + .api-contract/build-tsc-cjs/rx/types.js | 2 + .api-contract/build-tsc-cjs/types.js | 2 + .api-contract/build-tsc-cjs/util.js | 12 + .api-contract/build-tsc-esm/Abi/index.js | 351 +++ .../build-tsc-esm/Abi/toLatestCompatible.js | 26 + .api-contract/build-tsc-esm/Abi/toV1.js | 24 + .api-contract/build-tsc-esm/Abi/toV2.js | 33 + .api-contract/build-tsc-esm/Abi/toV3.js | 14 + .api-contract/build-tsc-esm/Abi/toV4.js | 17 + .api-contract/build-tsc-esm/augment.js | 1 + .api-contract/build-tsc-esm/base/Base.js | 34 + .api-contract/build-tsc-esm/base/Blueprint.js | 75 + .api-contract/build-tsc-esm/base/Code.js | 79 + .api-contract/build-tsc-esm/base/Contract.js | 154 + .api-contract/build-tsc-esm/base/index.js | 3 + .api-contract/build-tsc-esm/base/mock.js | 22 + .api-contract/build-tsc-esm/base/types.js | 1 + .api-contract/build-tsc-esm/base/util.js | 33 + .api-contract/build-tsc-esm/bundle.js | 4 + .api-contract/build-tsc-esm/index.js | 2 + .api-contract/build-tsc-esm/packageDetect.js | 5 + .api-contract/build-tsc-esm/packageInfo.js | 12 + .api-contract/build-tsc-esm/promise/index.js | 17 + .api-contract/build-tsc-esm/promise/types.js | 1 + .api-contract/build-tsc-esm/rx/index.js | 17 + .api-contract/build-tsc-esm/rx/types.js | 1 + .api-contract/build-tsc-esm/types.js | 1 + .api-contract/build-tsc-esm/util.js | 9 + .api-contract/build-tsc/Abi/index.d.ts | 42 + .../build-tsc/Abi/toLatestCompatible.d.ts | 32 + .api-contract/build-tsc/Abi/toV1.d.ts | 3 + .api-contract/build-tsc/Abi/toV2.d.ts | 3 + .api-contract/build-tsc/Abi/toV3.d.ts | 3 + .api-contract/build-tsc/Abi/toV4.d.ts | 3 + .api-contract/build-tsc/augment.d.ts | 1 + .api-contract/build-tsc/base/Base.d.ts | 16 + .api-contract/build-tsc/base/Blueprint.d.ts | 38 + .api-contract/build-tsc/base/Code.d.ts | 38 + .api-contract/build-tsc/base/Contract.d.ts | 37 + .api-contract/build-tsc/base/index.d.ts | 3 + .api-contract/build-tsc/base/mock.d.ts | 2 + .api-contract/build-tsc/base/types.d.ts | 40 + .api-contract/build-tsc/base/util.d.ts | 31 + .api-contract/build-tsc/bundle.d.ts | 4 + .api-contract/build-tsc/index.d.ts | 2 + .api-contract/build-tsc/packageDetect.d.ts | 1 + .api-contract/build-tsc/packageInfo.d.ts | 6 + .api-contract/build-tsc/promise/index.d.ts | 25 + .api-contract/build-tsc/promise/types.d.ts | 6 + .api-contract/build-tsc/rx/index.d.ts | 17 + .api-contract/build-tsc/rx/types.d.ts | 6 + .api-contract/build-tsc/types.d.ts | 85 + .api-contract/build-tsc/util.d.ts | 9 + .api-contract/build/Abi/index.d.ts | 42 + .api-contract/build/Abi/index.js | 351 +++ .../build/Abi/toLatestCompatible.d.ts | 32 + .api-contract/build/Abi/toLatestCompatible.js | 26 + .api-contract/build/Abi/toV1.d.ts | 3 + .api-contract/build/Abi/toV1.js | 24 + .api-contract/build/Abi/toV2.d.ts | 3 + .api-contract/build/Abi/toV2.js | 33 + .api-contract/build/Abi/toV3.d.ts | 3 + .api-contract/build/Abi/toV3.js | 14 + .api-contract/build/Abi/toV4.d.ts | 3 + .api-contract/build/Abi/toV4.js | 17 + .api-contract/build/LICENSE | 201 ++ .api-contract/build/README.md | 3 + .api-contract/build/augment.d.ts | 1 + .api-contract/build/augment.js | 1 + .api-contract/build/base/Base.d.ts | 16 + .api-contract/build/base/Base.js | 34 + .api-contract/build/base/Blueprint.d.ts | 38 + .api-contract/build/base/Blueprint.js | 75 + .api-contract/build/base/Code.d.ts | 38 + .api-contract/build/base/Code.js | 79 + .api-contract/build/base/Contract.d.ts | 37 + .api-contract/build/base/Contract.js | 154 + .api-contract/build/base/index.d.ts | 3 + .api-contract/build/base/index.js | 3 + .api-contract/build/base/mock.d.ts | 2 + .api-contract/build/base/mock.js | 22 + .api-contract/build/base/types.d.ts | 40 + .api-contract/build/base/types.js | 1 + .api-contract/build/base/util.d.ts | 31 + .api-contract/build/base/util.js | 33 + .../build/bundle-polkadot-api-contract.js | 1433 +++++++++ .api-contract/build/bundle.d.ts | 4 + .api-contract/build/bundle.js | 4 + .api-contract/build/cjs/Abi/index.d.ts | 42 + .api-contract/build/cjs/Abi/index.js | 348 +++ .../build/cjs/Abi/toLatestCompatible.d.ts | 32 + .../build/cjs/Abi/toLatestCompatible.js | 37 + .api-contract/build/cjs/Abi/toV1.d.ts | 3 + .api-contract/build/cjs/Abi/toV1.js | 27 + .api-contract/build/cjs/Abi/toV2.d.ts | 3 + .api-contract/build/cjs/Abi/toV2.js | 36 + .api-contract/build/cjs/Abi/toV3.d.ts | 3 + .api-contract/build/cjs/Abi/toV3.js | 20 + .api-contract/build/cjs/Abi/toV4.d.ts | 3 + .api-contract/build/cjs/Abi/toV4.js | 20 + .api-contract/build/cjs/augment.d.ts | 1 + .api-contract/build/cjs/augment.js | 3 + .api-contract/build/cjs/base/Base.d.ts | 16 + .api-contract/build/cjs/base/Base.js | 41 + .api-contract/build/cjs/base/Blueprint.d.ts | 38 + .api-contract/build/cjs/base/Blueprint.js | 83 + .api-contract/build/cjs/base/Code.d.ts | 38 + .api-contract/build/cjs/base/Code.js | 94 + .api-contract/build/cjs/base/Contract.d.ts | 37 + .api-contract/build/cjs/base/Contract.js | 164 + .api-contract/build/cjs/base/index.d.ts | 3 + .api-contract/build/cjs/base/index.js | 62 + .api-contract/build/cjs/base/mock.d.ts | 2 + .api-contract/build/cjs/base/mock.js | 25 + .api-contract/build/cjs/base/types.d.ts | 40 + .api-contract/build/cjs/base/types.js | 2 + .api-contract/build/cjs/base/util.d.ts | 31 + .api-contract/build/cjs/base/util.js | 42 + .api-contract/build/cjs/bundle.d.ts | 4 + .api-contract/build/cjs/bundle.js | 20 + .api-contract/build/cjs/index.d.ts | 2 + .api-contract/build/cjs/index.js | 5 + .api-contract/build/cjs/package.json | 3 + .api-contract/build/cjs/packageDetect.d.ts | 1 + .api-contract/build/cjs/packageDetect.js | 10 + .api-contract/build/cjs/packageInfo.d.ts | 6 + .api-contract/build/cjs/packageInfo.js | 9 + .api-contract/build/cjs/promise/index.d.ts | 25 + .api-contract/build/cjs/promise/index.js | 23 + .api-contract/build/cjs/promise/types.d.ts | 6 + .api-contract/build/cjs/promise/types.js | 2 + .api-contract/build/cjs/rx/index.d.ts | 17 + .api-contract/build/cjs/rx/index.js | 23 + .api-contract/build/cjs/rx/types.d.ts | 6 + .api-contract/build/cjs/rx/types.js | 2 + .api-contract/build/cjs/types.d.ts | 85 + .api-contract/build/cjs/types.js | 2 + .api-contract/build/cjs/util.d.ts | 9 + .api-contract/build/cjs/util.js | 12 + .api-contract/build/index.d.ts | 2 + .api-contract/build/index.js | 2 + .api-contract/build/package.json | 408 +++ .api-contract/build/packageDetect.d.ts | 1 + .api-contract/build/packageDetect.js | 5 + .api-contract/build/packageInfo.d.ts | 6 + .api-contract/build/packageInfo.js | 12 + .api-contract/build/promise/index.d.ts | 25 + .api-contract/build/promise/index.js | 17 + .api-contract/build/promise/types.d.ts | 6 + .api-contract/build/promise/types.js | 1 + .api-contract/build/rx/index.d.ts | 17 + .api-contract/build/rx/index.js | 17 + .api-contract/build/rx/types.d.ts | 6 + .api-contract/build/rx/types.js | 1 + .api-contract/build/types.d.ts | 85 + .api-contract/build/types.js | 1 + .api-contract/build/util.d.ts | 9 + .api-contract/build/util.js | 9 + .api-contract/package.json | 39 + .api-contract/src/Abi/Abi.spec.ts | 224 ++ .api-contract/src/Abi/index.ts | 486 +++ .../src/Abi/toLatestCompatible.spec.ts | 210 ++ .api-contract/src/Abi/toLatestCompatible.ts | 56 + .api-contract/src/Abi/toV1.ts | 37 + .api-contract/src/Abi/toV2.ts | 70 + .api-contract/src/Abi/toV3.ts | 21 + .api-contract/src/Abi/toV4.ts | 24 + .api-contract/src/augment.ts | 4 + .api-contract/src/base/Base.ts | 52 + .api-contract/src/base/Blueprint.ts | 117 + .api-contract/src/base/Code.spec.ts | 40 + .api-contract/src/base/Code.ts | 147 + .api-contract/src/base/Contract.ts | 261 ++ .api-contract/src/base/index.ts | 6 + .api-contract/src/base/mock.ts | 31 + .api-contract/src/base/types.ts | 53 + .api-contract/src/base/util.ts | 77 + .api-contract/src/bundle.ts | 10 + .api-contract/src/checkTypes.manual.ts | 44 + .api-contract/src/index.ts | 6 + .api-contract/src/mod.ts | 4 + .api-contract/src/packageDetect.ts | 13 + .api-contract/src/packageInfo.ts | 11 + .api-contract/src/promise/index.ts | 40 + .api-contract/src/promise/types.ts | 10 + .api-contract/src/rx/index.ts | 36 + .api-contract/src/rx/types.ts | 10 + .../test/compare/ink_v0_delegator.test.json | 47 + .../src/test/compare/ink_v0_dns.test.json | 232 ++ .../src/test/compare/ink_v0_erc20.test.json | 253 ++ .../src/test/compare/ink_v0_erc721.test.json | 415 +++ .../src/test/compare/ink_v0_flipper.test.json | 9 + .../compare/ink_v0_flipperBundle.test.json | 9 + .../test/compare/ink_v0_incrementer.test.json | 9 + .../compare/ink_v0_multisigPlain.test.json | 562 ++++ .../src/test/compare/ink_v1_flipper.test.json | 9 + .../src/test/compare/ink_v1_psp22.test.json | 531 ++++ .../src/test/compare/ink_v2_erc20.test.json | 205 ++ .../src/test/compare/ink_v2_flipper.test.json | 9 + .../src/test/compare/ink_v3_flipper.test.json | 9 + .../test/compare/ink_v3_traitErc20.test.json | 205 ++ .../compare/ink_v4_erc20Contract.test.json | 253 ++ .../compare/ink_v4_erc20Metadata.test.json | 253 ++ .../compare/ink_v4_flipperContract.test.json | 155 + .../compare/ink_v4_flipperMetadata.test.json | 155 + .../src/test/compare/ink_v5_erc20.test.json | 370 +++ ...5_erc20AnonymousTransferMetadata.test.json | 370 +++ .../compare/ink_v5_erc20Contract.test.json | 370 +++ .../compare/ink_v5_erc20Metadata.test.json | 370 +++ .../compare/ink_v5_flipperContract.test.json | 174 ++ .../compare/ink_v5_flipperMetadata.test.json | 174 ++ .../test/compare/solang_v0_ints256.test.json | 9 + .../compare/user_v0_assetTransfer.test.json | 54 + .../compare/user_v0_enumExample.test.json | 303 ++ .../test/compare/user_v0_recursive.test.json | 27 + .../test/compare/user_v0_withString.test.json | 260 ++ .../src/test/compare/user_v3_ask.test.json | 71 + .../src/test/compare/user_v4_events.test.json | 1328 ++++++++ .api-contract/src/test/contracts/index.ts | 16 + .api-contract/src/test/contracts/ink/index.ts | 12 + .../test/contracts/ink/v0/accumulator.wasm | Bin 0 -> 8826 bytes .../src/test/contracts/ink/v0/adder.wasm | Bin 0 -> 11995 bytes .../src/test/contracts/ink/v0/delegator.json | 214 ++ .../src/test/contracts/ink/v0/delegator.wasm | Bin 0 -> 30472 bytes .../src/test/contracts/ink/v0/dns.json | 600 ++++ .../src/test/contracts/ink/v0/dns.wasm | Bin 0 -> 47980 bytes .../src/test/contracts/ink/v0/erc20.json | 600 ++++ .../src/test/contracts/ink/v0/erc20.wasm | Bin 0 -> 56449 bytes .../src/test/contracts/ink/v0/erc721.json | 1007 ++++++ .../src/test/contracts/ink/v0/erc721.wasm | Bin 0 -> 74793 bytes .../contracts/ink/v0/flipper.contract.json | 85 + .../src/test/contracts/ink/v0/flipper.json | 84 + .../src/test/contracts/ink/v0/flipper.wasm | Bin 0 -> 19085 bytes .../test/contracts/ink/v0/incrementer.json | 92 + .../test/contracts/ink/v0/incrementer.wasm | Bin 0 -> 19056 bytes .../src/test/contracts/ink/v0/index.ts | 11 + .../test/contracts/ink/v0/multisig_plain.json | 1259 ++++++++ .../test/contracts/ink/v0/multisig_plain.wasm | Bin 0 -> 93026 bytes .../src/test/contracts/ink/v0/subber.wasm | Bin 0 -> 12005 bytes .../test/contracts/ink/v0/trait-flipper.json | 84 + .../test/contracts/ink/v0/trait-flipper.wasm | Bin 0 -> 19050 bytes .../contracts/ink/v1/flipper.contract.json | 89 + .../src/test/contracts/ink/v1/index.ts | 6 + .../ink/v1/psp22_minter_pauser.contract.json | 1487 +++++++++ .../test/contracts/ink/v2/erc20.contract.json | 548 ++++ .../contracts/ink/v2/flipper.contract.json | 89 + .../src/test/contracts/ink/v2/index.ts | 5 + .../contracts/ink/v3/flipper.contract.json | 91 + .../src/test/contracts/ink/v3/index.ts | 6 + .../ink/v3/trait_erc20.contract.json | 549 ++++ .../test/contracts/ink/v4/erc20.contract.json | 377 +++ .../src/test/contracts/ink/v4/erc20.json | 714 +++++ .../src/test/contracts/ink/v4/erc20.wasm | Bin 0 -> 21078 bytes .../contracts/ink/v4/flipper.contract.json | 157 + .../src/test/contracts/ink/v4/flipper.json | 338 +++ .../src/test/contracts/ink/v4/flipper.wasm | Bin 0 -> 12526 bytes .../src/test/contracts/ink/v4/index.ts | 7 + .../test/contracts/ink/v5/erc20.contract.json | 480 +++ .../src/test/contracts/ink/v5/erc20.json | 881 ++++++ .../src/test/contracts/ink/v5/erc20.wasm | Bin 0 -> 19416 bytes .../ink/v5/erc20_anonymous_transfer.json | 881 ++++++ .../contracts/ink/v5/flipper.contract.json | 177 ++ .../src/test/contracts/ink/v5/flipper.json | 358 +++ .../src/test/contracts/ink/v5/flipper.wasm | Bin 0 -> 10450 bytes .../src/test/contracts/ink/v5/index.ts | 8 + .../src/test/contracts/solang/index.ts | 7 + .../src/test/contracts/solang/v0/index.ts | 4 + .../src/test/contracts/solang/v0/ints256.json | 93 + .../src/test/contracts/solang/v0/ints256.sol | 13 + .../src/test/contracts/solang/v0/ints256.wasm | Bin 0 -> 1782 bytes .../src/test/contracts/user/index.ts | 9 + .../test/contracts/user/v0/assetTransfer.json | 245 ++ .../test/contracts/user/v0/assetTransfer.wasm | Bin 0 -> 11151 bytes .../test/contracts/user/v0/enumExample.json | 496 +++ .../test/contracts/user/v0/enumExample.wasm | Bin 0 -> 5473 bytes .../src/test/contracts/user/v0/index.ts | 7 + .../contracts/user/v0/recursive.contract.json | 70 + .../test/contracts/user/v0/withString.json | 661 ++++ .../src/test/contracts/user/v3/ask.json | 458 +++ .../src/test/contracts/user/v3/index.ts | 4 + .../contracts/user/v4/events.contract.json | 2696 +++++++++++++++++ .../src/test/contracts/user/v4/index.ts | 4 + .api-contract/src/test/contracts/util.ts | 16 + .api-contract/src/types.ts | 104 + .api-contract/src/util.ts | 23 + .api-contract/tsconfig.build.json | 16 + .api-contract/tsconfig.spec.json | 26 + package.json | 2 +- scripts/build-polkadot-api.cjs | 42 - yarn.lock | 6 +- 375 files changed, 34880 insertions(+), 46 deletions(-) create mode 100644 .api-contract/README.md create mode 100644 .api-contract/build-deno/Abi/index.ts create mode 100644 .api-contract/build-deno/Abi/toLatestCompatible.ts create mode 100644 .api-contract/build-deno/Abi/toV1.ts create mode 100644 .api-contract/build-deno/Abi/toV2.ts create mode 100644 .api-contract/build-deno/Abi/toV3.ts create mode 100644 .api-contract/build-deno/Abi/toV4.ts create mode 100644 .api-contract/build-deno/README.md create mode 100644 .api-contract/build-deno/augment.ts create mode 100644 .api-contract/build-deno/base/Base.ts create mode 100644 .api-contract/build-deno/base/Blueprint.ts create mode 100644 .api-contract/build-deno/base/Code.ts create mode 100644 .api-contract/build-deno/base/Contract.ts create mode 100644 .api-contract/build-deno/base/index.ts create mode 100644 .api-contract/build-deno/base/mock.ts create mode 100644 .api-contract/build-deno/base/types.ts create mode 100644 .api-contract/build-deno/base/util.ts create mode 100644 .api-contract/build-deno/bundle.ts create mode 100644 .api-contract/build-deno/checkTypes.manual.ts create mode 100644 .api-contract/build-deno/index.ts create mode 100644 .api-contract/build-deno/mod.ts create mode 100644 .api-contract/build-deno/packageDetect.ts create mode 100644 .api-contract/build-deno/packageInfo.ts create mode 100644 .api-contract/build-deno/promise/index.ts create mode 100644 .api-contract/build-deno/promise/types.ts create mode 100644 .api-contract/build-deno/rx/index.ts create mode 100644 .api-contract/build-deno/rx/types.ts create mode 100644 .api-contract/build-deno/test/contracts/index.ts create mode 100644 .api-contract/build-deno/test/contracts/ink/index.ts create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/accumulator.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/adder.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/delegator.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/dns.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/erc20.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/erc721.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/flipper.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/incrementer.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/index.ts create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/multisig_plain.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/subber.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v0/trait-flipper.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v1/index.ts create mode 100644 .api-contract/build-deno/test/contracts/ink/v2/index.ts create mode 100644 .api-contract/build-deno/test/contracts/ink/v3/index.ts create mode 100644 .api-contract/build-deno/test/contracts/ink/v4/erc20.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v4/flipper.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v4/index.ts create mode 100644 .api-contract/build-deno/test/contracts/ink/v5/erc20.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v5/flipper.wasm create mode 100644 .api-contract/build-deno/test/contracts/ink/v5/index.ts create mode 100644 .api-contract/build-deno/test/contracts/solang/index.ts create mode 100644 .api-contract/build-deno/test/contracts/solang/v0/index.ts create mode 100644 .api-contract/build-deno/test/contracts/solang/v0/ints256.sol create mode 100644 .api-contract/build-deno/test/contracts/solang/v0/ints256.wasm create mode 100644 .api-contract/build-deno/test/contracts/user/index.ts create mode 100644 .api-contract/build-deno/test/contracts/user/v0/assetTransfer.wasm create mode 100644 .api-contract/build-deno/test/contracts/user/v0/enumExample.wasm create mode 100644 .api-contract/build-deno/test/contracts/user/v0/index.ts create mode 100644 .api-contract/build-deno/test/contracts/user/v3/index.ts create mode 100644 .api-contract/build-deno/test/contracts/user/v4/index.ts create mode 100644 .api-contract/build-deno/test/contracts/util.ts create mode 100644 .api-contract/build-deno/types.ts create mode 100644 .api-contract/build-deno/util.ts create mode 100644 .api-contract/build-tsc-cjs/Abi/index.js create mode 100644 .api-contract/build-tsc-cjs/Abi/toLatestCompatible.js create mode 100644 .api-contract/build-tsc-cjs/Abi/toV1.js create mode 100644 .api-contract/build-tsc-cjs/Abi/toV2.js create mode 100644 .api-contract/build-tsc-cjs/Abi/toV3.js create mode 100644 .api-contract/build-tsc-cjs/Abi/toV4.js create mode 100644 .api-contract/build-tsc-cjs/augment.js create mode 100644 .api-contract/build-tsc-cjs/base/Base.js create mode 100644 .api-contract/build-tsc-cjs/base/Blueprint.js create mode 100644 .api-contract/build-tsc-cjs/base/Code.js create mode 100644 .api-contract/build-tsc-cjs/base/Contract.js create mode 100644 .api-contract/build-tsc-cjs/base/index.js create mode 100644 .api-contract/build-tsc-cjs/base/mock.js create mode 100644 .api-contract/build-tsc-cjs/base/types.js create mode 100644 .api-contract/build-tsc-cjs/base/util.js create mode 100644 .api-contract/build-tsc-cjs/bundle.js create mode 100644 .api-contract/build-tsc-cjs/index.js create mode 100644 .api-contract/build-tsc-cjs/packageDetect.js create mode 100644 .api-contract/build-tsc-cjs/packageInfo.js create mode 100644 .api-contract/build-tsc-cjs/promise/index.js create mode 100644 .api-contract/build-tsc-cjs/promise/types.js create mode 100644 .api-contract/build-tsc-cjs/rx/index.js create mode 100644 .api-contract/build-tsc-cjs/rx/types.js create mode 100644 .api-contract/build-tsc-cjs/types.js create mode 100644 .api-contract/build-tsc-cjs/util.js create mode 100644 .api-contract/build-tsc-esm/Abi/index.js create mode 100644 .api-contract/build-tsc-esm/Abi/toLatestCompatible.js create mode 100644 .api-contract/build-tsc-esm/Abi/toV1.js create mode 100644 .api-contract/build-tsc-esm/Abi/toV2.js create mode 100644 .api-contract/build-tsc-esm/Abi/toV3.js create mode 100644 .api-contract/build-tsc-esm/Abi/toV4.js create mode 100644 .api-contract/build-tsc-esm/augment.js create mode 100644 .api-contract/build-tsc-esm/base/Base.js create mode 100644 .api-contract/build-tsc-esm/base/Blueprint.js create mode 100644 .api-contract/build-tsc-esm/base/Code.js create mode 100644 .api-contract/build-tsc-esm/base/Contract.js create mode 100644 .api-contract/build-tsc-esm/base/index.js create mode 100644 .api-contract/build-tsc-esm/base/mock.js create mode 100644 .api-contract/build-tsc-esm/base/types.js create mode 100644 .api-contract/build-tsc-esm/base/util.js create mode 100644 .api-contract/build-tsc-esm/bundle.js create mode 100644 .api-contract/build-tsc-esm/index.js create mode 100644 .api-contract/build-tsc-esm/packageDetect.js create mode 100644 .api-contract/build-tsc-esm/packageInfo.js create mode 100644 .api-contract/build-tsc-esm/promise/index.js create mode 100644 .api-contract/build-tsc-esm/promise/types.js create mode 100644 .api-contract/build-tsc-esm/rx/index.js create mode 100644 .api-contract/build-tsc-esm/rx/types.js create mode 100644 .api-contract/build-tsc-esm/types.js create mode 100644 .api-contract/build-tsc-esm/util.js create mode 100644 .api-contract/build-tsc/Abi/index.d.ts create mode 100644 .api-contract/build-tsc/Abi/toLatestCompatible.d.ts create mode 100644 .api-contract/build-tsc/Abi/toV1.d.ts create mode 100644 .api-contract/build-tsc/Abi/toV2.d.ts create mode 100644 .api-contract/build-tsc/Abi/toV3.d.ts create mode 100644 .api-contract/build-tsc/Abi/toV4.d.ts create mode 100644 .api-contract/build-tsc/augment.d.ts create mode 100644 .api-contract/build-tsc/base/Base.d.ts create mode 100644 .api-contract/build-tsc/base/Blueprint.d.ts create mode 100644 .api-contract/build-tsc/base/Code.d.ts create mode 100644 .api-contract/build-tsc/base/Contract.d.ts create mode 100644 .api-contract/build-tsc/base/index.d.ts create mode 100644 .api-contract/build-tsc/base/mock.d.ts create mode 100644 .api-contract/build-tsc/base/types.d.ts create mode 100644 .api-contract/build-tsc/base/util.d.ts create mode 100644 .api-contract/build-tsc/bundle.d.ts create mode 100644 .api-contract/build-tsc/index.d.ts create mode 100644 .api-contract/build-tsc/packageDetect.d.ts create mode 100644 .api-contract/build-tsc/packageInfo.d.ts create mode 100644 .api-contract/build-tsc/promise/index.d.ts create mode 100644 .api-contract/build-tsc/promise/types.d.ts create mode 100644 .api-contract/build-tsc/rx/index.d.ts create mode 100644 .api-contract/build-tsc/rx/types.d.ts create mode 100644 .api-contract/build-tsc/types.d.ts create mode 100644 .api-contract/build-tsc/util.d.ts create mode 100644 .api-contract/build/Abi/index.d.ts create mode 100644 .api-contract/build/Abi/index.js create mode 100644 .api-contract/build/Abi/toLatestCompatible.d.ts create mode 100644 .api-contract/build/Abi/toLatestCompatible.js create mode 100644 .api-contract/build/Abi/toV1.d.ts create mode 100644 .api-contract/build/Abi/toV1.js create mode 100644 .api-contract/build/Abi/toV2.d.ts create mode 100644 .api-contract/build/Abi/toV2.js create mode 100644 .api-contract/build/Abi/toV3.d.ts create mode 100644 .api-contract/build/Abi/toV3.js create mode 100644 .api-contract/build/Abi/toV4.d.ts create mode 100644 .api-contract/build/Abi/toV4.js create mode 100644 .api-contract/build/LICENSE create mode 100644 .api-contract/build/README.md create mode 100644 .api-contract/build/augment.d.ts create mode 100644 .api-contract/build/augment.js create mode 100644 .api-contract/build/base/Base.d.ts create mode 100644 .api-contract/build/base/Base.js create mode 100644 .api-contract/build/base/Blueprint.d.ts create mode 100644 .api-contract/build/base/Blueprint.js create mode 100644 .api-contract/build/base/Code.d.ts create mode 100644 .api-contract/build/base/Code.js create mode 100644 .api-contract/build/base/Contract.d.ts create mode 100644 .api-contract/build/base/Contract.js create mode 100644 .api-contract/build/base/index.d.ts create mode 100644 .api-contract/build/base/index.js create mode 100644 .api-contract/build/base/mock.d.ts create mode 100644 .api-contract/build/base/mock.js create mode 100644 .api-contract/build/base/types.d.ts create mode 100644 .api-contract/build/base/types.js create mode 100644 .api-contract/build/base/util.d.ts create mode 100644 .api-contract/build/base/util.js create mode 100644 .api-contract/build/bundle-polkadot-api-contract.js create mode 100644 .api-contract/build/bundle.d.ts create mode 100644 .api-contract/build/bundle.js create mode 100644 .api-contract/build/cjs/Abi/index.d.ts create mode 100644 .api-contract/build/cjs/Abi/index.js create mode 100644 .api-contract/build/cjs/Abi/toLatestCompatible.d.ts create mode 100644 .api-contract/build/cjs/Abi/toLatestCompatible.js create mode 100644 .api-contract/build/cjs/Abi/toV1.d.ts create mode 100644 .api-contract/build/cjs/Abi/toV1.js create mode 100644 .api-contract/build/cjs/Abi/toV2.d.ts create mode 100644 .api-contract/build/cjs/Abi/toV2.js create mode 100644 .api-contract/build/cjs/Abi/toV3.d.ts create mode 100644 .api-contract/build/cjs/Abi/toV3.js create mode 100644 .api-contract/build/cjs/Abi/toV4.d.ts create mode 100644 .api-contract/build/cjs/Abi/toV4.js create mode 100644 .api-contract/build/cjs/augment.d.ts create mode 100644 .api-contract/build/cjs/augment.js create mode 100644 .api-contract/build/cjs/base/Base.d.ts create mode 100644 .api-contract/build/cjs/base/Base.js create mode 100644 .api-contract/build/cjs/base/Blueprint.d.ts create mode 100644 .api-contract/build/cjs/base/Blueprint.js create mode 100644 .api-contract/build/cjs/base/Code.d.ts create mode 100644 .api-contract/build/cjs/base/Code.js create mode 100644 .api-contract/build/cjs/base/Contract.d.ts create mode 100644 .api-contract/build/cjs/base/Contract.js create mode 100644 .api-contract/build/cjs/base/index.d.ts create mode 100644 .api-contract/build/cjs/base/index.js create mode 100644 .api-contract/build/cjs/base/mock.d.ts create mode 100644 .api-contract/build/cjs/base/mock.js create mode 100644 .api-contract/build/cjs/base/types.d.ts create mode 100644 .api-contract/build/cjs/base/types.js create mode 100644 .api-contract/build/cjs/base/util.d.ts create mode 100644 .api-contract/build/cjs/base/util.js create mode 100644 .api-contract/build/cjs/bundle.d.ts create mode 100644 .api-contract/build/cjs/bundle.js create mode 100644 .api-contract/build/cjs/index.d.ts create mode 100644 .api-contract/build/cjs/index.js create mode 100644 .api-contract/build/cjs/package.json create mode 100644 .api-contract/build/cjs/packageDetect.d.ts create mode 100644 .api-contract/build/cjs/packageDetect.js create mode 100644 .api-contract/build/cjs/packageInfo.d.ts create mode 100644 .api-contract/build/cjs/packageInfo.js create mode 100644 .api-contract/build/cjs/promise/index.d.ts create mode 100644 .api-contract/build/cjs/promise/index.js create mode 100644 .api-contract/build/cjs/promise/types.d.ts create mode 100644 .api-contract/build/cjs/promise/types.js create mode 100644 .api-contract/build/cjs/rx/index.d.ts create mode 100644 .api-contract/build/cjs/rx/index.js create mode 100644 .api-contract/build/cjs/rx/types.d.ts create mode 100644 .api-contract/build/cjs/rx/types.js create mode 100644 .api-contract/build/cjs/types.d.ts create mode 100644 .api-contract/build/cjs/types.js create mode 100644 .api-contract/build/cjs/util.d.ts create mode 100644 .api-contract/build/cjs/util.js create mode 100644 .api-contract/build/index.d.ts create mode 100644 .api-contract/build/index.js create mode 100644 .api-contract/build/package.json create mode 100644 .api-contract/build/packageDetect.d.ts create mode 100644 .api-contract/build/packageDetect.js create mode 100644 .api-contract/build/packageInfo.d.ts create mode 100644 .api-contract/build/packageInfo.js create mode 100644 .api-contract/build/promise/index.d.ts create mode 100644 .api-contract/build/promise/index.js create mode 100644 .api-contract/build/promise/types.d.ts create mode 100644 .api-contract/build/promise/types.js create mode 100644 .api-contract/build/rx/index.d.ts create mode 100644 .api-contract/build/rx/index.js create mode 100644 .api-contract/build/rx/types.d.ts create mode 100644 .api-contract/build/rx/types.js create mode 100644 .api-contract/build/types.d.ts create mode 100644 .api-contract/build/types.js create mode 100644 .api-contract/build/util.d.ts create mode 100644 .api-contract/build/util.js create mode 100644 .api-contract/package.json create mode 100644 .api-contract/src/Abi/Abi.spec.ts create mode 100644 .api-contract/src/Abi/index.ts create mode 100644 .api-contract/src/Abi/toLatestCompatible.spec.ts create mode 100644 .api-contract/src/Abi/toLatestCompatible.ts create mode 100644 .api-contract/src/Abi/toV1.ts create mode 100644 .api-contract/src/Abi/toV2.ts create mode 100644 .api-contract/src/Abi/toV3.ts create mode 100644 .api-contract/src/Abi/toV4.ts create mode 100644 .api-contract/src/augment.ts create mode 100644 .api-contract/src/base/Base.ts create mode 100644 .api-contract/src/base/Blueprint.ts create mode 100644 .api-contract/src/base/Code.spec.ts create mode 100644 .api-contract/src/base/Code.ts create mode 100644 .api-contract/src/base/Contract.ts create mode 100644 .api-contract/src/base/index.ts create mode 100644 .api-contract/src/base/mock.ts create mode 100644 .api-contract/src/base/types.ts create mode 100644 .api-contract/src/base/util.ts create mode 100644 .api-contract/src/bundle.ts create mode 100644 .api-contract/src/checkTypes.manual.ts create mode 100644 .api-contract/src/index.ts create mode 100644 .api-contract/src/mod.ts create mode 100644 .api-contract/src/packageDetect.ts create mode 100644 .api-contract/src/packageInfo.ts create mode 100644 .api-contract/src/promise/index.ts create mode 100644 .api-contract/src/promise/types.ts create mode 100644 .api-contract/src/rx/index.ts create mode 100644 .api-contract/src/rx/types.ts create mode 100644 .api-contract/src/test/compare/ink_v0_delegator.test.json create mode 100644 .api-contract/src/test/compare/ink_v0_dns.test.json create mode 100644 .api-contract/src/test/compare/ink_v0_erc20.test.json create mode 100644 .api-contract/src/test/compare/ink_v0_erc721.test.json create mode 100644 .api-contract/src/test/compare/ink_v0_flipper.test.json create mode 100644 .api-contract/src/test/compare/ink_v0_flipperBundle.test.json create mode 100644 .api-contract/src/test/compare/ink_v0_incrementer.test.json create mode 100644 .api-contract/src/test/compare/ink_v0_multisigPlain.test.json create mode 100644 .api-contract/src/test/compare/ink_v1_flipper.test.json create mode 100644 .api-contract/src/test/compare/ink_v1_psp22.test.json create mode 100644 .api-contract/src/test/compare/ink_v2_erc20.test.json create mode 100644 .api-contract/src/test/compare/ink_v2_flipper.test.json create mode 100644 .api-contract/src/test/compare/ink_v3_flipper.test.json create mode 100644 .api-contract/src/test/compare/ink_v3_traitErc20.test.json create mode 100644 .api-contract/src/test/compare/ink_v4_erc20Contract.test.json create mode 100644 .api-contract/src/test/compare/ink_v4_erc20Metadata.test.json create mode 100644 .api-contract/src/test/compare/ink_v4_flipperContract.test.json create mode 100644 .api-contract/src/test/compare/ink_v4_flipperMetadata.test.json create mode 100644 .api-contract/src/test/compare/ink_v5_erc20.test.json create mode 100644 .api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json create mode 100644 .api-contract/src/test/compare/ink_v5_erc20Contract.test.json create mode 100644 .api-contract/src/test/compare/ink_v5_erc20Metadata.test.json create mode 100644 .api-contract/src/test/compare/ink_v5_flipperContract.test.json create mode 100644 .api-contract/src/test/compare/ink_v5_flipperMetadata.test.json create mode 100644 .api-contract/src/test/compare/solang_v0_ints256.test.json create mode 100644 .api-contract/src/test/compare/user_v0_assetTransfer.test.json create mode 100644 .api-contract/src/test/compare/user_v0_enumExample.test.json create mode 100644 .api-contract/src/test/compare/user_v0_recursive.test.json create mode 100644 .api-contract/src/test/compare/user_v0_withString.test.json create mode 100644 .api-contract/src/test/compare/user_v3_ask.test.json create mode 100644 .api-contract/src/test/compare/user_v4_events.test.json create mode 100644 .api-contract/src/test/contracts/index.ts create mode 100644 .api-contract/src/test/contracts/ink/index.ts create mode 100644 .api-contract/src/test/contracts/ink/v0/accumulator.wasm create mode 100644 .api-contract/src/test/contracts/ink/v0/adder.wasm create mode 100644 .api-contract/src/test/contracts/ink/v0/delegator.json create mode 100644 .api-contract/src/test/contracts/ink/v0/delegator.wasm create mode 100644 .api-contract/src/test/contracts/ink/v0/dns.json create mode 100644 .api-contract/src/test/contracts/ink/v0/dns.wasm create mode 100644 .api-contract/src/test/contracts/ink/v0/erc20.json create mode 100644 .api-contract/src/test/contracts/ink/v0/erc20.wasm create mode 100644 .api-contract/src/test/contracts/ink/v0/erc721.json create mode 100644 .api-contract/src/test/contracts/ink/v0/erc721.wasm create mode 100644 .api-contract/src/test/contracts/ink/v0/flipper.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v0/flipper.json create mode 100644 .api-contract/src/test/contracts/ink/v0/flipper.wasm create mode 100644 .api-contract/src/test/contracts/ink/v0/incrementer.json create mode 100644 .api-contract/src/test/contracts/ink/v0/incrementer.wasm create mode 100644 .api-contract/src/test/contracts/ink/v0/index.ts create mode 100644 .api-contract/src/test/contracts/ink/v0/multisig_plain.json create mode 100644 .api-contract/src/test/contracts/ink/v0/multisig_plain.wasm create mode 100644 .api-contract/src/test/contracts/ink/v0/subber.wasm create mode 100644 .api-contract/src/test/contracts/ink/v0/trait-flipper.json create mode 100644 .api-contract/src/test/contracts/ink/v0/trait-flipper.wasm create mode 100644 .api-contract/src/test/contracts/ink/v1/flipper.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v1/index.ts create mode 100644 .api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v2/erc20.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v2/flipper.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v2/index.ts create mode 100644 .api-contract/src/test/contracts/ink/v3/flipper.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v3/index.ts create mode 100644 .api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v4/erc20.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v4/erc20.json create mode 100644 .api-contract/src/test/contracts/ink/v4/erc20.wasm create mode 100644 .api-contract/src/test/contracts/ink/v4/flipper.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v4/flipper.json create mode 100644 .api-contract/src/test/contracts/ink/v4/flipper.wasm create mode 100644 .api-contract/src/test/contracts/ink/v4/index.ts create mode 100644 .api-contract/src/test/contracts/ink/v5/erc20.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v5/erc20.json create mode 100644 .api-contract/src/test/contracts/ink/v5/erc20.wasm create mode 100644 .api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json create mode 100644 .api-contract/src/test/contracts/ink/v5/flipper.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v5/flipper.json create mode 100644 .api-contract/src/test/contracts/ink/v5/flipper.wasm create mode 100644 .api-contract/src/test/contracts/ink/v5/index.ts create mode 100644 .api-contract/src/test/contracts/solang/index.ts create mode 100644 .api-contract/src/test/contracts/solang/v0/index.ts create mode 100644 .api-contract/src/test/contracts/solang/v0/ints256.json create mode 100644 .api-contract/src/test/contracts/solang/v0/ints256.sol create mode 100644 .api-contract/src/test/contracts/solang/v0/ints256.wasm create mode 100644 .api-contract/src/test/contracts/user/index.ts create mode 100644 .api-contract/src/test/contracts/user/v0/assetTransfer.json create mode 100644 .api-contract/src/test/contracts/user/v0/assetTransfer.wasm create mode 100644 .api-contract/src/test/contracts/user/v0/enumExample.json create mode 100644 .api-contract/src/test/contracts/user/v0/enumExample.wasm create mode 100644 .api-contract/src/test/contracts/user/v0/index.ts create mode 100644 .api-contract/src/test/contracts/user/v0/recursive.contract.json create mode 100644 .api-contract/src/test/contracts/user/v0/withString.json create mode 100644 .api-contract/src/test/contracts/user/v3/ask.json create mode 100644 .api-contract/src/test/contracts/user/v3/index.ts create mode 100644 .api-contract/src/test/contracts/user/v4/events.contract.json create mode 100644 .api-contract/src/test/contracts/user/v4/index.ts create mode 100644 .api-contract/src/test/contracts/util.ts create mode 100644 .api-contract/src/types.ts create mode 100644 .api-contract/src/util.ts create mode 100644 .api-contract/tsconfig.build.json create mode 100644 .api-contract/tsconfig.spec.json delete mode 100644 scripts/build-polkadot-api.cjs diff --git a/.api-contract/README.md b/.api-contract/README.md new file mode 100644 index 00000000..f50beb5f --- /dev/null +++ b/.api-contract/README.md @@ -0,0 +1,3 @@ +# @polkadot/api-contract + +Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-contract/build-deno/Abi/index.ts b/.api-contract/build-deno/Abi/index.ts new file mode 100644 index 00000000..06975e05 --- /dev/null +++ b/.api-contract/build-deno/Abi/index.ts @@ -0,0 +1,483 @@ +import type { Bytes, Vec } from 'https://deno.land/x/polkadot/types/mod.ts'; +import type { + ChainProperties, + ContractConstructorSpecLatest, + ContractEventParamSpecLatest, + ContractMessageParamSpecLatest, + ContractMessageSpecLatest, + ContractMetadata, + ContractMetadataV4, + ContractMetadataV5, + ContractProjectInfo, + ContractTypeSpec, + EventRecord, +} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { Codec, Registry, TypeDef } from 'https://deno.land/x/polkadot/types/types/index.ts'; +import type { + AbiConstructor, + AbiEvent, + AbiEventParam, + AbiMessage, + AbiMessageParam, + AbiParam, + DecodedEvent, + DecodedMessage, +} from '../types.ts'; + +import { Option, TypeRegistry } from 'https://deno.land/x/polkadot/types/mod.ts'; +import { TypeDefInfo } from 'https://deno.land/x/polkadot/types-create/mod.ts'; +import { + assertReturn, + compactAddLength, + compactStripLength, + isBn, + isNumber, + isObject, + isString, + isUndefined, + logger, + stringCamelCase, + stringify, + u8aConcat, + u8aToHex, +} from 'https://deno.land/x/polkadot/util/mod.ts'; + +import { convertVersions, enumVersions } from './toLatestCompatible.ts'; + +interface AbiJson { + version?: string; + + [key: string]: unknown; +} + +type EventOf = M extends { spec: { events: Vec } } ? E : never; +export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5; +type ContractEventSupported = EventOf; + +const l = logger('Abi'); + +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; + +function findMessage(list: T[], messageOrId: T | string | number): T { + const message = isNumber(messageOrId) + ? list[messageOrId] + : isString(messageOrId) + ? list.find(({ identifier }) => + [identifier, stringCamelCase(identifier)].includes(messageOrId.toString()), + ) + : messageOrId; + + return assertReturn( + message, + () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`, + ); +} + +function getMetadata(registry: Registry, json: AbiJson): ContractMetadataSupported { + // this is for V1, V2, V3 + const vx = enumVersions.find(v => isObject(json[v])); + + // this was added in V4 + const jsonVersion = json.version; + + if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { + throw new Error(`Unable to handle version ${jsonVersion}`); + } + + const metadata = registry.createType( + 'ContractMetadata', + vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, + ); + + const converter = convertVersions.find(([v]) => metadata[`is${v}`]); + + if (!converter) { + throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); + } + + const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + + return upgradedMetadata; +} + +function parseJson( + json: Record, + chainProperties?: ChainProperties, +): [Record, Registry, ContractMetadataSupported, ContractProjectInfo] { + const registry = new TypeRegistry(); + const info = registry.createType('ContractProjectInfo', json) as unknown as ContractProjectInfo; + const metadata = getMetadata(registry, json as unknown as AbiJson); + const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); + + // attach the lookup to the registry - now the types are known + registry.setLookup(lookup); + + if (chainProperties) { + registry.setChainProperties(chainProperties); + } + + // warm-up the actual type, pre-use + lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + + return [json, registry, metadata, info]; +} + +/** + * @internal + * Determines if the given input value is a ContractTypeSpec + */ +function isTypeSpec(value: Codec): value is ContractTypeSpec { + return ( + !!value && + value instanceof Map && + !isUndefined((value as ContractTypeSpec).type) && + !isUndefined((value as ContractTypeSpec).displayName) + ); +} + +/** + * @internal + * Determines if the given input value is an Option + */ +function isOption(value: Codec): value is Option { + return !!value && value instanceof Option; +} + +export class Abi { + readonly events: AbiEvent[]; + readonly constructors: AbiConstructor[]; + readonly info: ContractProjectInfo; + readonly json: Record; + readonly messages: AbiMessage[]; + readonly metadata: ContractMetadataSupported; + readonly registry: Registry; + readonly environment = new Map(); + + constructor(abiJson: Record | string, chainProperties?: ChainProperties) { + [this.json, this.registry, this.metadata, this.info] = parseJson( + isString(abiJson) ? (JSON.parse(abiJson) as Record) : abiJson, + chainProperties, + ); + this.constructors = this.metadata.spec.constructors.map( + (spec: ContractConstructorSpecLatest, index) => + this.#createMessage(spec, index, { + isConstructor: true, + isDefault: spec.default.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + this.events = this.metadata.spec.events.map((_: ContractEventSupported, index: number) => + this.#createEvent(index), + ); + this.messages = this.metadata.spec.messages.map( + (spec: ContractMessageSpecLatest, index): AbiMessage => + this.#createMessage(spec, index, { + isDefault: spec.default.isTrue, + isMutating: spec.mutates.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + + // NOTE See the rationale for having Option<...> values in the actual + // ContractEnvironmentV4 structure definition in interfaces/contractsAbi + // (Due to conversions, the fields may not exist) + for (const [key, opt] of this.metadata.spec.environment.entries()) { + if (isOption(opt)) { + if (opt.isSome) { + const value = opt.unwrap(); + + if (isBn(value)) { + this.environment.set(key, value); + } else if (isTypeSpec(value)) { + this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); + } else { + throw new Error( + `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, + ); + } + } + } else { + throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); + } + } + } + + /** + * Warning: Unstable API, bound to change + */ + public decodeEvent(record: EventRecord): DecodedEvent { + switch (this.metadata.version.toString()) { + // earlier version are hoisted to v4 + case '4': + return this.#decodeEventV4(record); + // Latest + default: + return this.#decodeEventV5(record); + } + } + + #decodeEventV5 = (record: EventRecord): DecodedEvent => { + // Find event by first topic, which potentially is the signature_topic + const signatureTopic = record.topics[0]; + const data = record.event.data[1] as Bytes; + + if (signatureTopic) { + const event = this.events.find( + e => + e.signatureTopic !== undefined && + e.signatureTopic !== null && + e.signatureTopic === signatureTopic.toHex(), + ); + + // Early return if event found by signature topic + if (event) { + return event.fromU8a(data); + } + } + + // If no event returned yet, it might be anonymous + const amountOfTopics = record.topics.length; + const potentialEvents = this.events.filter(e => { + // event can't have a signature topic + if (e.signatureTopic !== null && e.signatureTopic !== undefined) { + return false; + } + + // event should have same amount of indexed fields as emitted topics + const amountIndexed = e.args.filter(a => a.indexed).length; + + if (amountIndexed !== amountOfTopics) { + return false; + } + + // If all conditions met, it's a potential event + return true; + }); + + if (potentialEvents.length === 1) { + return potentialEvents[0].fromU8a(data); + } + + throw new Error('Unable to determine event'); + }; + + #decodeEventV4 = (record: EventRecord): DecodedEvent => { + const data = record.event.data[1] as Bytes; + const index = data[0]; + const event = this.events[index]; + + if (!event) { + throw new Error(`Unable to find event with index ${index}`); + } + + return event.fromU8a(data.subarray(1)); + }; + + /** + * Warning: Unstable API, bound to change + */ + public decodeConstructor(data: Uint8Array): DecodedMessage { + return this.#decodeMessage('message', this.constructors, data); + } + + /** + * Warning: Unstable API, bound to change + */ + public decodeMessage(data: Uint8Array): DecodedMessage { + return this.#decodeMessage('message', this.messages, data); + } + + public findConstructor(constructorOrId: AbiConstructor | string | number): AbiConstructor { + return findMessage(this.constructors, constructorOrId); + } + + public findMessage(messageOrId: AbiMessage | string | number): AbiMessage { + return findMessage(this.messages, messageOrId); + } + + #createArgs = ( + args: ContractMessageParamSpecLatest[] | ContractEventParamSpecLatest[], + spec: unknown, + ): AbiParam[] => { + return args.map(({ label, type }, index): AbiParam => { + try { + if (!isObject(type)) { + throw new Error('Invalid type definition found'); + } + + const displayName = type.displayName.length + ? type.displayName[type.displayName.length - 1].toString() + : undefined; + const camelName = stringCamelCase(label); + + if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { + return { + name: camelName, + type: { + info: TypeDefInfo.Plain, + type: displayName, + }, + }; + } + + const typeDef = this.registry.lookup.getTypeDef(type.type); + + return { + name: camelName, + type: + displayName && !typeDef.type.startsWith(displayName) + ? { displayName, ...typeDef } + : typeDef, + }; + } catch (error) { + l.error(`Error expanding argument ${index} in ${stringify(spec)}`); + + throw error; + } + }); + }; + + #createMessageParams = ( + args: ContractMessageParamSpecLatest[], + spec: unknown, + ): AbiMessageParam[] => { + return this.#createArgs(args, spec); + }; + + #createEventParams = (args: ContractEventParamSpecLatest[], spec: unknown): AbiEventParam[] => { + const params = this.#createArgs(args, spec); + + return params.map( + (p, index): AbiEventParam => ({ ...p, indexed: args[index].indexed.toPrimitive() }), + ); + }; + + #createEvent = (index: number): AbiEvent => { + // TODO TypeScript would narrow this type to the correct version, + // but version is `Text` so I need to call `toString()` here, + // which breaks the type inference. + switch (this.metadata.version.toString()) { + case '4': + return this.#createEventV4((this.metadata as ContractMetadataV4).spec.events[index], index); + default: + return this.#createEventV5((this.metadata as ContractMetadataV5).spec.events[index], index); + } + }; + + #createEventV5 = (spec: EventOf, index: number): AbiEvent => { + const args = this.#createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: (data: Uint8Array): DecodedEvent => ({ + args: this.#decodeArgs(args, data), + event, + }), + identifier: [spec.module_path, spec.label].join('::'), + index, + signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, + }; + + return event; + }; + + #createEventV4 = (spec: EventOf, index: number): AbiEvent => { + const args = this.#createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: (data: Uint8Array): DecodedEvent => ({ + args: this.#decodeArgs(args, data), + event, + }), + identifier: spec.label.toString(), + index, + }; + + return event; + }; + + #createMessage = ( + spec: ContractMessageSpecLatest | ContractConstructorSpecLatest, + index: number, + add: Partial = {}, + ): AbiMessage => { + const args = this.#createMessageParams(spec.args, spec); + const identifier = spec.label.toString(); + const message = { + ...add, + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: (data: Uint8Array): DecodedMessage => ({ + args: this.#decodeArgs(args, data), + message, + }), + identifier, + index, + isDefault: spec.default.isTrue, + method: stringCamelCase(identifier), + path: identifier.split('::').map(s => stringCamelCase(s)), + selector: spec.selector, + toU8a: (params: unknown[]) => this.#encodeMessageArgs(spec, args, params), + }; + + return message; + }; + + #decodeArgs = (args: AbiParam[], data: Uint8Array): Codec[] => { + // for decoding we expect the input to be just the arg data, no selectors + // no length added (this allows use with events as well) + let offset = 0; + + return args.map(({ type: { lookupName, type } }): Codec => { + const value = this.registry.createType(lookupName || type, data.subarray(offset)); + + offset += value.encodedLength; + + return value; + }); + }; + + #decodeMessage = ( + type: 'constructor' | 'message', + list: AbiMessage[], + data: Uint8Array, + ): DecodedMessage => { + const [, trimmed] = compactStripLength(data); + const selector = trimmed.subarray(0, 4); + const message = list.find(m => m.selector.eq(selector)); + + if (!message) { + throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`); + } + + return message.fromU8a(trimmed.subarray(4)); + }; + + #encodeMessageArgs = ( + { label, selector }: ContractMessageSpecLatest | ContractConstructorSpecLatest, + args: AbiMessageParam[], + data: unknown[], + ): Uint8Array => { + if (data.length !== args.length) { + throw new Error( + `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, + ); + } + + return compactAddLength( + u8aConcat( + this.registry.createType('ContractSelector', selector).toU8a(), + ...args.map(({ type: { lookupName, type } }, index) => + this.registry.createType(lookupName || type, data[index]).toU8a(), + ), + ), + ); + }; +} diff --git a/.api-contract/build-deno/Abi/toLatestCompatible.ts b/.api-contract/build-deno/Abi/toLatestCompatible.ts new file mode 100644 index 00000000..71096fcb --- /dev/null +++ b/.api-contract/build-deno/Abi/toLatestCompatible.ts @@ -0,0 +1,53 @@ +import type { + ContractMetadataV4, + ContractMetadataV5, +} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; +import type { ContractMetadataSupported } from './index.ts'; + +import { v0ToV1 } from './toV1.ts'; +import { v1ToV2 } from './toV2.ts'; +import { v2ToV3 } from './toV3.ts'; +import { v3ToV4 } from './toV4.ts'; + +export const enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1'] as const; + +type Versions = (typeof enumVersions)[number] | 'V0'; + +type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; + +function createConverter( + next: (registry: Registry, input: O) => ContractMetadataSupported, + step: (registry: Registry, input: I) => O, +): (registry: Registry, input: I) => ContractMetadataSupported { + return (registry: Registry, input: I): ContractMetadataSupported => + next(registry, step(registry, input)); +} + +export function v5ToLatestCompatible( + _registry: Registry, + v5: ContractMetadataV5, +): ContractMetadataV5 { + return v5; +} + +export function v4ToLatestCompatible( + _registry: Registry, + v4: ContractMetadataV4, +): ContractMetadataV4 { + return v4; +} + +export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4); +export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3); +export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); +export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); + +export const convertVersions: [Versions, Converter][] = [ + ['V5', v5ToLatestCompatible], + ['V4', v4ToLatestCompatible], + ['V3', v3ToLatestCompatible], + ['V2', v2ToLatestCompatible], + ['V1', v1ToLatestCompatible], + ['V0', v0ToLatestCompatible], +]; diff --git a/.api-contract/build-deno/Abi/toV1.ts b/.api-contract/build-deno/Abi/toV1.ts new file mode 100644 index 00000000..c3e2d595 --- /dev/null +++ b/.api-contract/build-deno/Abi/toV1.ts @@ -0,0 +1,37 @@ +import type { + ContractMetadataV0, + ContractMetadataV1, +} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; + +import { convertSiV0toV1 } from 'https://deno.land/x/polkadot/types/mod.ts'; +import { objectSpread } from 'https://deno.land/x/polkadot/util/mod.ts'; + +interface Named { + name: unknown; +} + +function v0ToV1Names(all: Named[]): unknown[] { + return all.map(e => + objectSpread({}, e, { + name: Array.isArray(e.name) ? e.name : [e.name], + }), + ); +} + +export function v0ToV1(registry: Registry, v0: ContractMetadataV0): ContractMetadataV1 { + if (!v0.metadataVersion.length) { + throw new Error('Invalid format for V0 (detected) contract metadata'); + } + + return registry.createType( + 'ContractMetadataV1', + objectSpread({}, v0, { + spec: objectSpread({}, v0.spec, { + constructors: v0ToV1Names(v0.spec.constructors), + messages: v0ToV1Names(v0.spec.messages), + }), + types: convertSiV0toV1(registry, v0.types), + }), + ); +} diff --git a/.api-contract/build-deno/Abi/toV2.ts b/.api-contract/build-deno/Abi/toV2.ts new file mode 100644 index 00000000..6f2832fe --- /dev/null +++ b/.api-contract/build-deno/Abi/toV2.ts @@ -0,0 +1,67 @@ +import type { Text } from 'https://deno.land/x/polkadot/types/mod.ts'; +import type { + ContractConstructorSpecV0, + ContractEventSpecV0, + ContractMessageSpecV0, + ContractMetadataV1, + ContractMetadataV2, +} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; + +import { objectSpread } from 'https://deno.land/x/polkadot/util/mod.ts'; + +type WithArgs = keyof typeof ARG_TYPES; + +interface NamedEntry { + name: Text | Text[]; +} + +type GetArgsType = T extends 'ContractConstructorSpec' + ? ContractConstructorSpecV0 + : T extends ContractEventSpecV0 + ? ContractEventSpecV0 + : ContractMessageSpecV0; + +interface ArgsEntry extends NamedEntry { + args: GetArgsType['args'][0][]; +} + +const ARG_TYPES = { + ContractConstructorSpec: 'ContractMessageParamSpecV2', + ContractEventSpec: 'ContractEventParamSpecV2', + ContractMessageSpec: 'ContractMessageParamSpecV2', +} as const; + +function v1ToV2Label(entry: NamedEntry): { label: Text } { + return objectSpread({}, entry, { + label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, + }); +} + +function v1ToV2Labels( + registry: Registry, + outType: T, + all: ArgsEntry[], +): unknown[] { + return all.map(e => + registry.createType( + `${outType}V2`, + objectSpread(v1ToV2Label(e), { + args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), + }), + ), + ); +} + +export function v1ToV2(registry: Registry, v1: ContractMetadataV1): ContractMetadataV2 { + return registry.createType( + 'ContractMetadataV2', + objectSpread({}, v1, { + spec: objectSpread({}, v1.spec, { + constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), + events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), + messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), + }), + }), + ); +} diff --git a/.api-contract/build-deno/Abi/toV3.ts b/.api-contract/build-deno/Abi/toV3.ts new file mode 100644 index 00000000..bfb04542 --- /dev/null +++ b/.api-contract/build-deno/Abi/toV3.ts @@ -0,0 +1,21 @@ +import type { + ContractMetadataV2, + ContractMetadataV3, +} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; + +import { objectSpread } from 'https://deno.land/x/polkadot/util/mod.ts'; + +export function v2ToV3(registry: Registry, v2: ContractMetadataV2): ContractMetadataV3 { + return registry.createType( + 'ContractMetadataV3', + objectSpread({}, v2, { + spec: objectSpread({}, v2.spec, { + constructors: v2.spec.constructors.map(c => + // V3 introduces the payable flag on constructors, for + registry.createType('ContractConstructorSpecV4', objectSpread({}, c)), + ), + messages: v3.spec.messages.map(m => + registry.createType('ContractMessageSpecV3', objectSpread({}, m)), + ), + }), + version: registry.createType('Text', '4'), + }), + ); +} diff --git a/.api-contract/build-deno/README.md b/.api-contract/build-deno/README.md new file mode 100644 index 00000000..f50beb5f --- /dev/null +++ b/.api-contract/build-deno/README.md @@ -0,0 +1,3 @@ +# @polkadot/api-contract + +Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-contract/build-deno/augment.ts b/.api-contract/build-deno/augment.ts new file mode 100644 index 00000000..3db96e01 --- /dev/null +++ b/.api-contract/build-deno/augment.ts @@ -0,0 +1 @@ +import 'https://deno.land/x/polkadot/api-augment/mod.ts'; diff --git a/.api-contract/build-deno/base/Base.ts b/.api-contract/build-deno/base/Base.ts new file mode 100644 index 00000000..29e11941 --- /dev/null +++ b/.api-contract/build-deno/base/Base.ts @@ -0,0 +1,49 @@ +import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; +import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; +import type { WeightV2 } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; + +import { isFunction } from 'https://deno.land/x/polkadot/util/mod.ts'; + +import { Abi } from '../Abi/index.ts'; + +export abstract class Base { + readonly abi: Abi; + readonly api: ApiBase; + + protected readonly _decorateMethod: DecorateMethod; + protected readonly _isWeightV1: boolean; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + decorateMethod: DecorateMethod, + ) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.revive || + !isFunction(api.tx.revive.instantiateWithCode) || + api.tx.revive.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.reviveApi || !isFunction(api.call.reviveApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', + ); + } + + this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + + public get registry(): Registry { + return this.api.registry; + } +} diff --git a/.api-contract/build-deno/base/Blueprint.ts b/.api-contract/build-deno/base/Blueprint.ts new file mode 100644 index 00000000..86824dc9 --- /dev/null +++ b/.api-contract/build-deno/base/Blueprint.ts @@ -0,0 +1,113 @@ +import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; +import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; +import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; +import type { Hash } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; +import type { Abi } from '../Abi/index.ts'; +import type { AbiConstructor, BlueprintOptions } from '../types.ts'; +import type { MapConstructorExec } from './types.ts'; + +import { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; +import { BN_ZERO, isUndefined } from 'https://deno.land/x/polkadot/util/mod.ts'; + +import { Base } from './Base.ts'; +import { Contract } from './Contract.ts'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts'; + +export type BlueprintConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, +) => Blueprint; + +export class BlueprintSubmittableResult extends SubmittableResult { + readonly contract?: Contract | undefined; + + constructor(result: ISubmittableResult, contract?: Contract) { + super(result); + + this.contract = contract; + } +} + +export class Blueprint extends Base { + /** + * @description The on-chain code hash for this blueprint + */ + readonly codeHash: Hash; + + readonly #tx: MapConstructorExec = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.codeHash = this.registry.createType('Hash', codeHash); + + this.abi.constructors.forEach((c): void => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p)); + } + }); + } + + public get tx(): MapConstructorExec { + return this.#tx; + } + + #deploy = ( + constructorOrId: AbiConstructor | string | number, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, + params: unknown[], + ): SubmittableExtrinsic> => { + return this.api.tx.revive + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + (result: ISubmittableResult) => + new BlueprintSubmittableResult( + result, + (() => { + if (result.status.isInBlock || result.status.isFinalized) { + return new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ); + } + return undefined; + })(), + ), + ); + }; +} + +export function extendBlueprint( + type: ApiType, + decorateMethod: DecorateMethod, +): BlueprintConstructor { + return class extends Blueprint { + static __BlueprintType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + ) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-contract/build-deno/base/Code.ts b/.api-contract/build-deno/base/Code.ts new file mode 100644 index 00000000..7889a33c --- /dev/null +++ b/.api-contract/build-deno/base/Code.ts @@ -0,0 +1,137 @@ +import { Buffer } from 'node:buffer'; + +import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; +import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; +import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; +import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; +import type { Codec } from 'https://deno.land/x/polkadot/types-codec/types/index.ts'; +import type { Abi } from '../Abi/index.ts'; +import type { AbiConstructor, BlueprintOptions } from '../types.ts'; +import type { MapConstructorExec } from './types.ts'; + +import { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; +import { + BN_ZERO, + compactAddLength, + isRiscV, + isUndefined, + isWasm, + u8aToU8a, +} from 'https://deno.land/x/polkadot/util/mod.ts'; + +import { Base } from './Base.ts'; +import { Blueprint } from './Blueprint.ts'; +import { Contract } from './Contract.ts'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts'; + +export type CodeConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, +) => Code; + +export class CodeSubmittableResult extends SubmittableResult { + readonly blueprint?: Blueprint | undefined; + readonly contract?: Contract | undefined; + + constructor( + result: ISubmittableResult, + blueprint?: Blueprint | undefined, + contract?: Contract | undefined, + ) { + super(result); + + this.blueprint = blueprint; + this.contract = contract; + } +} + +function isValidCode(code: Uint8Array): boolean { + return isWasm(code) || isRiscV(code); +} + +export class Code extends Base { + readonly code: Uint8Array; + + readonly #tx: MapConstructorExec = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); + + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + + this.abi.constructors.forEach((c): void => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p)); + } + }); + } + + public get tx(): MapConstructorExec { + return this.#tx; + } + + #instantiate = ( + constructorOrId: AbiConstructor | string | number, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, + params: unknown[], + ): SubmittableExtrinsic> => { + console.log('in instantiate'); + console.log(this.abi.info.source.wasmHash); + return this.api.tx.revive + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + (result: ISubmittableResult) => + new CodeSubmittableResult( + result, + new Blueprint( + this.api, + this.abi, + this.abi.info.source.wasmHash, + this._decorateMethod, + ), + new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ), + ), + ); + }; +} + +export function extendCode( + type: ApiType, + decorateMethod: DecorateMethod, +): CodeConstructor { + return class extends Code { + static __CodeType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-contract/build-deno/base/Contract.ts b/.api-contract/build-deno/base/Contract.ts new file mode 100644 index 00000000..9f68caa5 --- /dev/null +++ b/.api-contract/build-deno/base/Contract.ts @@ -0,0 +1,264 @@ +import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; +import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; +import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; +import type { + AccountId, + AccountId20, + ContractExecResult, + EventRecord, + Weight, + WeightV2, +} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; +import type { Abi } from '../Abi/index.ts'; +import type { + AbiMessage, + ContractCallOutcome, + ContractOptions, + DecodedEvent, + WeightAll, +} from '../types.ts'; +import type { + ContractCallResult, + ContractCallSend, + ContractQuery, + ContractTx, + MapMessageQuery, + MapMessageTx, +} from './types.ts'; + +import { map } from 'https://esm.sh/rxjs@7.8.1'; + +import { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; +import { + BN, + BN_HUNDRED, + BN_ONE, + BN_ZERO, + isUndefined, + logger, +} from 'https://deno.land/x/polkadot/util/mod.ts'; + +import { applyOnEvent } from '../util.ts'; +import { Base } from './Base.ts'; +import { convertWeight, withMeta } from './util.ts'; + +export type ContractConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, +) => Contract; + +const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); + +const l = logger('Contract'); + +function createQuery( + meta: AbiMessage, + fn: ( + origin: string | AccountId | Uint8Array, + options: ContractOptions, + params: unknown[], + ) => ContractCallResult, +): ContractQuery { + return withMeta( + meta, + ( + origin: string | AccountId | Uint8Array, + options: ContractOptions, + ...params: unknown[] + ): ContractCallResult => fn(origin, options, params), + ); +} + +function createTx( + meta: AbiMessage, + fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic, +): ContractTx { + return withMeta( + meta, + (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic => + fn(options, params), + ); +} + +export class ContractSubmittableResult extends SubmittableResult { + readonly contractEvents?: DecodedEvent[] | undefined; + + constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]) { + super(result); + + this.contractEvents = contractEvents; + } +} + +export class Contract extends Base { + /** + * @description The on-chain address for this contract + */ + readonly address: AccountId20; + + readonly #query: MapMessageQuery = {}; + readonly #tx: MapMessageTx = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId20, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.address = this.registry.createType('AccountId20', address); + + this.abi.messages.forEach((m): void => { + if (isUndefined(this.#tx[m.method])) { + this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p)); + } + + if (isUndefined(this.#query[m.method])) { + this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f)); + } + }); + } + + public get query(): MapMessageQuery { + return this.#query; + } + + public get tx(): MapMessageTx { + return this.#tx; + } + + #getGas = (_gasLimit: bigint | BN | string | number | WeightV2, isCall = false): WeightAll => { + const weight = convertWeight(_gasLimit); + + if (weight.v1Weight.gt(BN_ZERO)) { + return weight; + } + + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? (this.api.consts.system.blockWeights as unknown as { maxBlock: WeightV2 }).maxBlock + : (this.api.consts.system['maximumBlockWeight'] as Weight), + ) + .v1Weight.muln(64) + .div(BN_HUNDRED), + ); + }; + + #exec = ( + messageOrId: AbiMessage | string | number, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, + params: unknown[], + ): SubmittableExtrinsic => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + (result: ISubmittableResult) => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + applyOnEvent( + result, + ['ContractEmitted', 'ContractExecution'], + (records: EventRecord[]) => + records + .map((record): DecodedEvent | null => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${(error as Error).message}`); + + return null; + } + }) + .filter((decoded): decoded is DecodedEvent => !!decoded), + ), + ), + ); + }; + + #read = ( + messageOrId: AbiMessage | string | number, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, + params: unknown[], + ): ContractCallSend => { + const message = this.abi.findMessage(messageOrId); + + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod((origin: string | AccountId | Uint8Array) => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.#getGas(gasLimit, true).v1Weight + : this.#getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + map( + ({ + debugMessage, + gasConsumed, + gasRequired, + result, + storageDeposit, + }): ContractCallOutcome => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + }), + ), + ), + ), + }; + }; +} + +export function extendContract( + type: ApiType, + decorateMethod: DecorateMethod, +): ContractConstructor { + return class extends Contract { + static __ContractType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, + ) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-contract/build-deno/base/index.ts b/.api-contract/build-deno/base/index.ts new file mode 100644 index 00000000..b4134289 --- /dev/null +++ b/.api-contract/build-deno/base/index.ts @@ -0,0 +1,3 @@ +export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.ts'; +export { Code, CodeSubmittableResult, extendCode } from './Code.ts'; +export { Contract, extendContract } from './Contract.ts'; diff --git a/.api-contract/build-deno/base/mock.ts b/.api-contract/build-deno/base/mock.ts new file mode 100644 index 00000000..dff856bf --- /dev/null +++ b/.api-contract/build-deno/base/mock.ts @@ -0,0 +1,28 @@ +import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; + +import { TypeRegistry } from 'https://deno.land/x/polkadot/types/mod.ts'; + +const registry = new TypeRegistry(); + +const instantiateWithCode = (): never => { + throw new Error('mock'); +}; + +instantiateWithCode.meta = { args: new Array(6) }; + +export const mockApi = { + call: { + contractsApi: { + call: (): never => { + throw new Error('mock'); + }, + }, + }, + isConnected: true, + registry, + tx: { + contracts: { + instantiateWithCode, + }, + }, +} as unknown as ApiBase<'promise'>; diff --git a/.api-contract/build-deno/base/types.ts b/.api-contract/build-deno/base/types.ts new file mode 100644 index 00000000..921d3f01 --- /dev/null +++ b/.api-contract/build-deno/base/types.ts @@ -0,0 +1,50 @@ +import type { Observable } from 'https://esm.sh/rxjs@7.8.1'; +import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; +import type { ApiTypes, ObsInnerType } from 'https://deno.land/x/polkadot/api/types/index.ts'; +import type { AccountId } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { + AbiMessage, + BlueprintOptions, + ContractCallOutcome, + ContractOptions, +} from '../types.ts'; + +export interface MessageMeta { + readonly meta: AbiMessage; +} + +export interface BlueprintDeploy extends MessageMeta { + (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; +} + +export interface ContractQuery extends MessageMeta { + ( + origin: AccountId | string | Uint8Array, + options: ContractOptions, + ...params: unknown[] + ): ContractCallResult; +} + +export interface ContractTx extends MessageMeta { + (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; +} + +export type ContractGeneric = ( + messageOrId: AbiMessage | string | number, + options: O, + ...params: unknown[] +) => T; + +export type ContractCallResult = ApiType extends 'rxjs' + ? Observable + : Promise>>; + +export interface ContractCallSend { + send(account: string | AccountId | Uint8Array): ContractCallResult; +} + +export type MapConstructorExec = Record>; + +export type MapMessageTx = Record>; + +export type MapMessageQuery = Record>; diff --git a/.api-contract/build-deno/base/util.ts b/.api-contract/build-deno/base/util.ts new file mode 100644 index 00000000..edea08de --- /dev/null +++ b/.api-contract/build-deno/base/util.ts @@ -0,0 +1,74 @@ +import type { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; +import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; +import type { ApiTypes } from 'https://deno.land/x/polkadot/api/types/index.ts'; +import type { WeightV1, WeightV2 } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { BN } from 'https://deno.land/x/polkadot/util/mod.ts'; +import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.ts'; +import type { BlueprintDeploy, ContractGeneric } from './types.ts'; + +import { Bytes } from 'https://deno.land/x/polkadot/types/mod.ts'; +import { bnToBn, compactAddLength, u8aToU8a } from 'https://deno.land/x/polkadot/util/mod.ts'; +import { randomAsU8a } from 'https://deno.land/x/polkadot/util-crypto/mod.ts'; + +export const EMPTY_SALT = new Uint8Array(); + +export function withMeta( + meta: AbiMessage, + creator: Omit, +): T { + (creator as T).meta = meta; + + return creator as T; +} + +export function createBluePrintTx( + meta: AbiMessage, + fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic, +): BlueprintDeploy { + return withMeta( + meta, + (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic => + fn(options, params), + ); +} + +export function createBluePrintWithId( + fn: ( + constructorOrId: AbiConstructor | string | number, + options: BlueprintOptions, + params: unknown[], + ) => T, +): ContractGeneric { + return ( + constructorOrId: AbiConstructor | string | number, + options: BlueprintOptions, + ...params: unknown[] + ): T => fn(constructorOrId, options, params); +} + +export function encodeSalt(salt: Uint8Array | string | null = randomAsU8a()): Uint8Array { + return salt instanceof Bytes + ? salt + : salt?.length + ? compactAddLength(u8aToU8a(salt)) + : EMPTY_SALT; +} + +export function convertWeight( + weight: WeightV1 | WeightV2 | bigint | string | number | BN, +): WeightAll { + const [refTime, proofSize] = isWeightV2(weight) + ? [weight.refTime.toBn(), weight.proofSize.toBn()] + : [bnToBn(weight), undefined]; + + return { + v1Weight: refTime, + v2Weight: { proofSize, refTime }, + }; +} + +export function isWeightV2( + weight: WeightV1 | WeightV2 | bigint | string | number | BN, +): weight is WeightV2 { + return !!(weight as WeightV2).proofSize; +} diff --git a/.api-contract/build-deno/bundle.ts b/.api-contract/build-deno/bundle.ts new file mode 100644 index 00000000..00f652cf --- /dev/null +++ b/.api-contract/build-deno/bundle.ts @@ -0,0 +1,5 @@ +export { Abi } from './Abi/index.ts'; +export { packageInfo } from './packageInfo.ts'; + +export * from './promise/index.ts'; +export * from './rx/index.ts'; diff --git a/.api-contract/build-deno/checkTypes.manual.ts b/.api-contract/build-deno/checkTypes.manual.ts new file mode 100644 index 00000000..4f0b0c8e --- /dev/null +++ b/.api-contract/build-deno/checkTypes.manual.ts @@ -0,0 +1,42 @@ +import 'https://deno.land/x/polkadot/api-augment/mod.ts'; + +import type { TestKeyringMapSubstrate } from 'https://deno.land/x/polkadot/keyring/testingPairs.ts'; + +import { ApiPromise } from 'https://deno.land/x/polkadot/api/mod.ts'; +import { + BlueprintPromise, + ContractPromise, +} from 'https://deno.land/x/polkadot/api-contract/mod.ts'; +import { createTestPairs } from 'https://deno.land/x/polkadot/keyring/testingPairs.ts'; + +import abiIncrementer from './test/contracts/ink/v0/incrementer.json' assert { type: 'json' }; + +async function checkBlueprint(api: ApiPromise, pairs: TestKeyringMapSubstrate): Promise { + const blueprint = new BlueprintPromise(api, abiIncrementer as Record, '0x1234'); + + await blueprint.tx['new']({ gasLimit: 456, salt: '0x1234', value: 123 }, 42).signAndSend( + pairs.bob, + ); + await blueprint.tx['new']({ gasLimit: 456, value: 123 }, 42).signAndSend(pairs.bob); +} + +async function checkContract(api: ApiPromise, pairs: TestKeyringMapSubstrate): Promise { + const contract = new ContractPromise(api, abiIncrementer as Record, '0x1234'); + + // queries + await contract.query['get'](pairs.alice.address, {}); + + // execute + await contract.tx['inc']({ gasLimit: 1234 }, 123).signAndSend(pairs.eve); +} + +async function main(): Promise { + const api = await ApiPromise.create({ + hasher: (data: Uint8Array): Uint8Array => data, + }); + const pairs = createTestPairs(); + + await Promise.all([checkBlueprint(api, pairs), checkContract(api, pairs)]); +} + +main().catch(console.error); diff --git a/.api-contract/build-deno/index.ts b/.api-contract/build-deno/index.ts new file mode 100644 index 00000000..0171e125 --- /dev/null +++ b/.api-contract/build-deno/index.ts @@ -0,0 +1,3 @@ +import './packageDetect.ts'; + +export * from './bundle.ts'; diff --git a/.api-contract/build-deno/mod.ts b/.api-contract/build-deno/mod.ts new file mode 100644 index 00000000..85fbe785 --- /dev/null +++ b/.api-contract/build-deno/mod.ts @@ -0,0 +1 @@ +export * from './index.ts'; diff --git a/.api-contract/build-deno/packageDetect.ts b/.api-contract/build-deno/packageDetect.ts new file mode 100644 index 00000000..971ca8bd --- /dev/null +++ b/.api-contract/build-deno/packageDetect.ts @@ -0,0 +1,7 @@ +import { packageInfo as apiInfo } from 'https://deno.land/x/polkadot/api/packageInfo.ts'; +import { packageInfo as typesInfo } from 'https://deno.land/x/polkadot/types/packageInfo.ts'; +import { detectPackage } from 'https://deno.land/x/polkadot/util/mod.ts'; + +import { packageInfo } from './packageInfo.ts'; + +detectPackage(packageInfo, null, [apiInfo, typesInfo]); diff --git a/.api-contract/build-deno/packageInfo.ts b/.api-contract/build-deno/packageInfo.ts new file mode 100644 index 00000000..0ca48fa7 --- /dev/null +++ b/.api-contract/build-deno/packageInfo.ts @@ -0,0 +1,6 @@ +export const packageInfo = { + name: '@polkadot/api-contract', + path: new URL(import.meta.url).pathname, + type: 'deno', + version: '15.8.1', +}; diff --git a/.api-contract/build-deno/promise/index.ts b/.api-contract/build-deno/promise/index.ts new file mode 100644 index 00000000..aeaa6289 --- /dev/null +++ b/.api-contract/build-deno/promise/index.ts @@ -0,0 +1,39 @@ +import { Buffer } from 'node:buffer'; + +import type { ApiPromise } from 'https://deno.land/x/polkadot/api/mod.ts'; +import type { AccountId20, Hash } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { Abi } from '../Abi/index.ts'; + +import { toPromiseMethod } from 'https://deno.land/x/polkadot/api/mod.ts'; + +import { Blueprint, Code, Contract } from '../base/index.ts'; + +export class BlueprintPromise extends Blueprint<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ) { + super(api, abi, codeHash, toPromiseMethod); + } +} + +export class CodePromise extends Code<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, toPromiseMethod); + } +} + +export class ContractPromise extends Contract<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId20, + ) { + super(api, abi, address, toPromiseMethod); + } +} diff --git a/.api-contract/build-deno/promise/types.ts b/.api-contract/build-deno/promise/types.ts new file mode 100644 index 00000000..5ec4c7c7 --- /dev/null +++ b/.api-contract/build-deno/promise/types.ts @@ -0,0 +1,7 @@ +import type { + BlueprintSubmittableResult as BaseBlueprintSubmittableResult, + CodeSubmittableResult as BaseCodeSubmittableResult, +} from '../base/index.ts'; + +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build-deno/rx/index.ts b/.api-contract/build-deno/rx/index.ts new file mode 100644 index 00000000..77330f69 --- /dev/null +++ b/.api-contract/build-deno/rx/index.ts @@ -0,0 +1,35 @@ +import { Buffer } from 'node:buffer'; + +import type { ApiRx } from 'https://deno.land/x/polkadot/api/mod.ts'; +import type { AccountId, Hash } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { Abi } from '../Abi/index.ts'; + +import { toRxMethod } from 'https://deno.land/x/polkadot/api/mod.ts'; + +import { Blueprint, Code, Contract } from '../base/index.ts'; + +export class BlueprintRx extends Blueprint<'rxjs'> { + constructor(api: ApiRx, abi: string | Record | Abi, codeHash: string | Hash) { + super(api, abi, codeHash, toRxMethod); + } +} + +export class CodeRx extends Code<'rxjs'> { + constructor( + api: ApiRx, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, toRxMethod); + } +} + +export class ContractRx extends Contract<'rxjs'> { + constructor( + api: ApiRx, + abi: string | Record | Abi, + address: string | AccountId, + ) { + super(api, abi, address, toRxMethod); + } +} diff --git a/.api-contract/build-deno/rx/types.ts b/.api-contract/build-deno/rx/types.ts new file mode 100644 index 00000000..5ec4c7c7 --- /dev/null +++ b/.api-contract/build-deno/rx/types.ts @@ -0,0 +1,7 @@ +import type { + BlueprintSubmittableResult as BaseBlueprintSubmittableResult, + CodeSubmittableResult as BaseCodeSubmittableResult, +} from '../base/index.ts'; + +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build-deno/test/contracts/index.ts b/.api-contract/build-deno/test/contracts/index.ts new file mode 100644 index 00000000..3010de57 --- /dev/null +++ b/.api-contract/build-deno/test/contracts/index.ts @@ -0,0 +1,13 @@ +import ink from './ink/index.ts'; +import solang from './solang/index.ts'; +import user from './user/index.ts'; + +const all: Record> = {}; + +Object.entries({ ink, solang, user }).forEach(([type, abis]) => + Object.entries(abis).forEach(([name, abi]): void => { + all[`${type}_${name}`] = abi; + }), +); + +export default all; diff --git a/.api-contract/build-deno/test/contracts/ink/index.ts b/.api-contract/build-deno/test/contracts/ink/index.ts new file mode 100644 index 00000000..4f790318 --- /dev/null +++ b/.api-contract/build-deno/test/contracts/ink/index.ts @@ -0,0 +1,9 @@ +import { createVersionedExport } from '../util.ts'; +import * as v0 from './v0/index.ts'; +import * as v1 from './v1/index.ts'; +import * as v2 from './v2/index.ts'; +import * as v3 from './v3/index.ts'; +import * as v4 from './v4/index.ts'; +import * as v5 from './v5/index.ts'; + +export default createVersionedExport({ v0, v1, v2, v3, v4, v5 }); diff --git a/.api-contract/build-deno/test/contracts/ink/v0/accumulator.wasm b/.api-contract/build-deno/test/contracts/ink/v0/accumulator.wasm new file mode 100644 index 0000000000000000000000000000000000000000..33197e6b15c310ddd583da65fcd85315b1ae652c GIT binary patch literal 8826 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 literal 0 HcmV?d00001 diff --git a/.api-contract/build-deno/test/contracts/ink/v0/dns.wasm b/.api-contract/build-deno/test/contracts/ink/v0/dns.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5a173a896218c942c811eb86d54d4c76d1b54c09 GIT binary patch literal 47980 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 literal 0 HcmV?d00001 diff --git a/.api-contract/build-deno/test/contracts/ink/v0/flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v0/flipper.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5b43da17109189ac854e0b5c48bbe11ee28e8f80 GIT binary patch literal 19085 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 literal 0 HcmV?d00001 diff --git a/.api-contract/build-deno/test/contracts/ink/v0/trait-flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v0/trait-flipper.wasm new file mode 100644 index 0000000000000000000000000000000000000000..53720c421777c8584ad57470718630166737078a GIT binary patch literal 19050 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 F|1WbE1VjJ; literal 0 HcmV?d00001 diff --git a/.api-contract/build-deno/test/contracts/ink/v4/flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v4/flipper.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3f77edb2319aa3b738fe331fba6b4273ee519a6d GIT binary patch literal 12526 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 literal 0 HcmV?d00001 diff --git a/.api-contract/build-deno/test/contracts/ink/v4/index.ts b/.api-contract/build-deno/test/contracts/ink/v4/index.ts new file mode 100644 index 00000000..33a79fff --- /dev/null +++ b/.api-contract/build-deno/test/contracts/ink/v4/index.ts @@ -0,0 +1,4 @@ +export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; +export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; +export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/ink/v5/erc20.wasm b/.api-contract/build-deno/test/contracts/ink/v5/erc20.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f6800bb8784e46279835e91f4da1d71d2907faca GIT binary patch literal 19416 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 literal 0 HcmV?d00001 diff --git a/.api-contract/build-deno/test/contracts/ink/v5/flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v5/flipper.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c359b6db59b8732092edc076026daf73f1e3bf77 GIT binary patch literal 10450 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 literal 0 HcmV?d00001 diff --git a/.api-contract/build-deno/test/contracts/ink/v5/index.ts b/.api-contract/build-deno/test/contracts/ink/v5/index.ts new file mode 100644 index 00000000..7e042a48 --- /dev/null +++ b/.api-contract/build-deno/test/contracts/ink/v5/index.ts @@ -0,0 +1,5 @@ +export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; +export { default as erc20AnonymousTransferMetadata } from './erc20_anonymous_transfer.json' assert { type: 'json' }; +export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; +export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/solang/index.ts b/.api-contract/build-deno/test/contracts/solang/index.ts new file mode 100644 index 00000000..dbf46e5f --- /dev/null +++ b/.api-contract/build-deno/test/contracts/solang/index.ts @@ -0,0 +1,4 @@ +import { createVersionedExport } from '../util.ts'; +import * as v0 from './v0/index.ts'; + +export default createVersionedExport({ v0 }); diff --git a/.api-contract/build-deno/test/contracts/solang/v0/index.ts b/.api-contract/build-deno/test/contracts/solang/v0/index.ts new file mode 100644 index 00000000..1853c756 --- /dev/null +++ b/.api-contract/build-deno/test/contracts/solang/v0/index.ts @@ -0,0 +1 @@ +export { default as ints256 } from './ints256.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/solang/v0/ints256.sol b/.api-contract/build-deno/test/contracts/solang/v0/ints256.sol new file mode 100644 index 00000000..1225a6b9 --- /dev/null +++ b/.api-contract/build-deno/test/contracts/solang/v0/ints256.sol @@ -0,0 +1,13 @@ +/// @title Test 256 bits types +/// @author Sean Young +contract ints256 { + /// Multiply two 256 bit values + function multiply(uint256 a, uint256 b) public pure returns (uint256) { + return a * b; + } + + /// Add two 256 bit values + function add(uint256 a, uint256 b) public pure returns (uint256) { + return a + b; + } +} diff --git a/.api-contract/build-deno/test/contracts/solang/v0/ints256.wasm b/.api-contract/build-deno/test/contracts/solang/v0/ints256.wasm new file mode 100644 index 0000000000000000000000000000000000000000..1973316be540b38ba3e463b1d11c950650335872 GIT binary patch literal 1782 zcmbtUOK%)S5UzgA!!tW}N3xKmaHwv4u%!s)ka#bMxUGa39Ky@u8n4JAF@D5e+Yu4V zt`C;A2hRKiq)1puoO1Mm13!Qtz>y;-IKo#mcCa8mF{AC8s;>IFzN+e_-u|{CA{EjN zq75}x;|)8;LlC18gqCk37X7JB_WQl9n}w{8zS!A4JfL$^*_a0XgTuiNC9T_QjqPb~ z>#+amV9?vy|GYmK^dFNo{hg=jc7OZH;F(s=nLHzEr(H){|$H z+s}GiTQpVt+{xagh<8cDrTsX*`1nRX?of0G@%O*Js+aTxDBme%$AagTUN*~mnbm^s zR3st~n(2c|m!eQm6_t^^ii9n%OZZ|xW_A2>FPP1s`PGqNV8jW@3E&j!P^^%bdUWth@KZ>l z;QXPl^fKHNy!mR#>M#vn1*Z?|pw=ov)C`y2b(GYh!&MD7LSza7sHG@L<23CvK+dcj z;c-Jo6eqV)9*bo(435k7>%g+nN_Zl9CG3338F++@)q4$RIl_0)szR{Yy$uMr!V{i3 zhVL|Dim2*Pu(>b(OsOhdje_3@6U4@A_!JK#nOf8uD9P>oZ1Low|E5O?c<_%z%G5bo5oxzMB9che9 zbTM}rr)D~X%vsY0ist?5-0Z|mn7NZ5etP~j*hacnVaO!NDGc{NUrmJA{z$YP=c6|$ z{z{tx%$eq8(_I{?<(SKFq($RonLA#gk1M(|M`Ue582L5lE@&5ws;xGQtJ zXx{RLh+F7B#SL84d70`nT&TI4E!qW*8zpZPPP*np^ds$>Rfw#MsZ>1GH8&xOu33O6 zyM|kkCKyZZ62Q+PQ7Ciuq9FkjY}YDIluPEkHRCQ;$)!%5)5X_$uJCEbSn zY|HvV%kyqa{#A74uc#Pu%H0&DN`I>}-%Su|BVe!YMBcCCWv4kP(_E#f(x+z7qWZ GLH-TS;|;|C literal 0 HcmV?d00001 diff --git a/.api-contract/build-deno/test/contracts/user/index.ts b/.api-contract/build-deno/test/contracts/user/index.ts new file mode 100644 index 00000000..ba05c9ed --- /dev/null +++ b/.api-contract/build-deno/test/contracts/user/index.ts @@ -0,0 +1,6 @@ +import { createVersionedExport } from '../util.ts'; +import * as v0 from './v0/index.ts'; +import * as v3 from './v3/index.ts'; +import * as v4 from './v4/index.ts'; + +export default createVersionedExport({ v0, v3, v4 }); diff --git a/.api-contract/build-deno/test/contracts/user/v0/assetTransfer.wasm b/.api-contract/build-deno/test/contracts/user/v0/assetTransfer.wasm new file mode 100644 index 0000000000000000000000000000000000000000..516f769852f09caee63d135d1cb7aec437f9c351 GIT binary patch literal 11151 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 L;hP%mXRZGN@&7$3 literal 0 HcmV?d00001 diff --git a/.api-contract/build-deno/test/contracts/user/v0/enumExample.wasm b/.api-contract/build-deno/test/contracts/user/v0/enumExample.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5cbe4bf9bc714e8f8711ffb62a84ee708f537653 GIT binary patch literal 5473 zcmcIoON?7r8UD|?4`0u?Ar63ltN=9@j_2e~= zL_|VyP)AXaD$xZCgg}ZQA`3K979hcnWp|xc1(jWZ4a+WB5x(y~*B(2K+M$9O+4tOY z{`dP>7S}Er5iv*V7wm8-7m^{r&Cm?-B^LxwZsC#P!83sAp}A@Am^@osTD&;#_! z-SNE`zxM&w@zxtfD1x+%?LGbvGR45<;gMOH%?dF#Ny}=lZMYk1=b8zr9FzHATBcDe z?T}O^F)g&K&}t1+_D!o6k85Si5P7rjZ~NNDf*c7JH1a3Y7_t6D8VP8O80PInrOy-m z87rlfA#FiqRjiec7TIW#L&A`KEW`-ZKq&}+T)u>7ve|!R-tc*tTi^7VzVzMg4WGtk zaeHIqgq;U(U9hxG$*HE1(i?i$EhKa5d3?DXe-uwxq|hW|(-$NA;|Nfb}Uub0Cj!7R_Fh+2VDD__?i2Qmc80F)7` z3WPeWXa}GWoz2%|`Zb+?%_d$O^)ieQ8$}rq=j;z(N+wjn!7_=DF z>7Zlbf>UX4Oc*h#wwNKth%>{ZT9-_}5w{&u0>+alvEShr)T^ohWC)K8lo2VKJ$NC}VFU^$dfQPNR$YijI z-fIk;ZILOA)^Phn{Yf3g_Pos2wUcCdtw5s8pjtCWw0TtZKO|bhSuGjj86F6>91lcI z4G*}yU?q)i@uoaFEgkEraRN#8Cv0Jd2}~4HlmqPtEgJ;>B&*n!P%2hvMvf^EmYqraBzOk{*^fyBj;GTxc_sKl6Z$feU5Ciz3qQSpUk4Yu>O{WbI&5Ku`ur0Z7{9~ zYG!Lyg3OG7>lH9E1y~m7H7*h?axPLVlyWwroMV9)RA5>?mSTAd?D3bdYI zheqeXI9zXA*o)?YPKECqsHKs;#nqM>xaS}~M!+qU{|DgPVz55I{+@Pzzip9j&6>~q zkNEfe8|}RB@7%}aoA>AN%b%oLwd&XxCRrz7ty+J$?Vl0vtK^+3@1B+< zsJ+roXLE}`F{nT$ygf$K`@~CXDSGA%JZNx%sRY#1-uN_7`*3t5o}M0!r+Q5b#k#kv zr1O>F)>m5@CV({R^v`LI-zQc^$k&zQ!|CG-El=8@uWyG z!XXn`egl_03YWF$KA&kArDe;~57DJN%Sg5n&By+a{;fIKzxAu1y!rd=o6Xuj9HG5w zD!*+8ysjg0J%$H=mG6IO^iJ73GG>jNH7$PQC$dlpAQ1^zH!RmhsxjL#7i! z_!L?~57ak#7xnEfR^ao28FWOta^GwhNfa zqemyI{WVWW;4W&oLf{Dq8k5X_jf;eqUd$)hrje$$6K@83r?l`{V1;0FiIvbvI`?-ieDB)yo(8lDaHxE7>JTeS`<+w$>;M`M9L7)Qz zNeo2SN`jPVjQBle5i2vEIn0d3HP`^CvJ!z+ZOIF0?tv_C1ywEo=~A zdrZs;=47zIU1-7L8Qb@f@jXBXSEZ&t0v%Wfmm84Q@(wNIs9ApGQh>XI?SV&idx)2U z!?J7oQV{PUh>J1vu0*t#(OWU%bGkB)6HZ}qn literal 0 HcmV?d00001 diff --git a/.api-contract/build-deno/test/contracts/user/v0/index.ts b/.api-contract/build-deno/test/contracts/user/v0/index.ts new file mode 100644 index 00000000..69d14c69 --- /dev/null +++ b/.api-contract/build-deno/test/contracts/user/v0/index.ts @@ -0,0 +1,4 @@ +export { default as assetTransfer } from './assetTransfer.json' assert { type: 'json' }; +export { default as enumExample } from './enumExample.json' assert { type: 'json' }; +export { default as recursive } from './recursive.contract.json' assert { type: 'json' }; +export { default as withString } from './withString.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/user/v3/index.ts b/.api-contract/build-deno/test/contracts/user/v3/index.ts new file mode 100644 index 00000000..eb0d3a9e --- /dev/null +++ b/.api-contract/build-deno/test/contracts/user/v3/index.ts @@ -0,0 +1 @@ +export { default as ask } from './ask.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/user/v4/index.ts b/.api-contract/build-deno/test/contracts/user/v4/index.ts new file mode 100644 index 00000000..42e21964 --- /dev/null +++ b/.api-contract/build-deno/test/contracts/user/v4/index.ts @@ -0,0 +1 @@ +export { default as events } from './events.contract.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/util.ts b/.api-contract/build-deno/test/contracts/util.ts new file mode 100644 index 00000000..ef411429 --- /dev/null +++ b/.api-contract/build-deno/test/contracts/util.ts @@ -0,0 +1,13 @@ +export function createVersionedExport( + versioned: Record>, +): Record> { + const result: Record> = {}; + + Object.entries(versioned).forEach(([version, contracts]) => + Object.entries(contracts).forEach(([name, contract]): void => { + result[`${version}_${name}`] = contract as Record; + }), + ); + + return result; +} diff --git a/.api-contract/build-deno/types.ts b/.api-contract/build-deno/types.ts new file mode 100644 index 00000000..9c1eb729 --- /dev/null +++ b/.api-contract/build-deno/types.ts @@ -0,0 +1,100 @@ +import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; +import type { ApiTypes } from 'https://deno.land/x/polkadot/api/types/index.ts'; +import type { Text } from 'https://deno.land/x/polkadot/types/mod.ts'; +import type { + ContractExecResultResult, + ContractSelector, + StorageDeposit, + Weight, + WeightV2, +} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { Codec, TypeDef } from 'https://deno.land/x/polkadot/types/types/index.ts'; +import type { BN } from 'https://deno.land/x/polkadot/util/mod.ts'; +import type { HexString } from 'https://deno.land/x/polkadot/util/types.ts'; +import type { Abi } from './index.ts'; + +export interface ContractBase { + readonly abi: Abi; + readonly api: ApiBase; + + getMessage: (name: string) => AbiMessage; + messages: AbiMessage[]; +} + +export interface AbiParam { + name: string; + type: TypeDef; +} + +export type AbiMessageParam = AbiParam; + +export interface AbiEventParam extends AbiParam { + indexed: boolean; +} + +export interface AbiEvent { + args: AbiEventParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedEvent; + identifier: string; + index: number; + signatureTopic?: HexString | null; +} + +export interface AbiMessage { + args: AbiMessageParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedMessage; + identifier: string; + index: number; + isConstructor?: boolean; + isDefault?: boolean; + isMutating?: boolean; + isPayable?: boolean; + method: string; + path: string[]; + returnType?: TypeDef | null; + selector: ContractSelector; + toU8a: (params: unknown[]) => Uint8Array; +} + +export type AbiConstructor = AbiMessage; + +export type InterfaceContractCalls = Record; + +export interface ContractCallOutcome { + debugMessage: Text; + gasConsumed: Weight; + gasRequired: Weight; + output: Codec | null; + result: ContractExecResultResult; + storageDeposit: StorageDeposit; +} + +export interface DecodedEvent { + args: Codec[]; + event: AbiEvent; +} + +export interface DecodedMessage { + args: Codec[]; + message: AbiMessage; +} + +export interface ContractOptions { + gasLimit?: bigint | string | number | BN | WeightV2; + storageDepositLimit?: bigint | string | number | BN | null; + value?: bigint | BN | string | number; +} + +export interface BlueprintOptions extends ContractOptions { + salt?: Uint8Array | string | null; +} + +export interface WeightAll { + v1Weight: BN; + v2Weight: { + refTime: BN; + proofSize?: BN | undefined; + }; +} diff --git a/.api-contract/build-deno/util.ts b/.api-contract/build-deno/util.ts new file mode 100644 index 00000000..3f104371 --- /dev/null +++ b/.api-contract/build-deno/util.ts @@ -0,0 +1,20 @@ +import type { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; +import type { EventRecord } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; + +type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; + +export function applyOnEvent( + result: SubmittableResult, + types: ContractEvents[], + fn: (records: EventRecord[]) => T, +): T | undefined { + if (result.isInBlock || result.isFinalized) { + const records = result.filterRecords('contracts', types); + + if (records.length) { + return fn(records); + } + } + + return undefined; +} diff --git a/.api-contract/build-tsc-cjs/Abi/index.js b/.api-contract/build-tsc-cjs/Abi/index.js new file mode 100644 index 00000000..fa496ef2 --- /dev/null +++ b/.api-contract/build-tsc-cjs/Abi/index.js @@ -0,0 +1,348 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Abi = void 0; +const types_1 = require('@polkadot/types'); +const types_create_1 = require('@polkadot/types-create'); +const util_1 = require('@polkadot/util'); +const toLatestCompatible_js_1 = require('./toLatestCompatible.js'); +const l = (0, util_1.logger)('Abi'); +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; +function findMessage(list, messageOrId) { + const message = (0, util_1.isNumber)(messageOrId) + ? list[messageOrId] + : (0, util_1.isString)(messageOrId) + ? list.find(({ identifier }) => + [identifier, (0, util_1.stringCamelCase)(identifier)].includes(messageOrId.toString()), + ) + : messageOrId; + return (0, util_1.assertReturn)( + message, + () => `Attempted to call an invalid contract interface, ${(0, util_1.stringify)(messageOrId)}`, + ); +} +function getMetadata(registry, json) { + // this is for V1, V2, V3 + const vx = toLatestCompatible_js_1.enumVersions.find(v => (0, util_1.isObject)(json[v])); + // this was added in V4 + const jsonVersion = json.version; + if ( + !vx && + jsonVersion && + !toLatestCompatible_js_1.enumVersions.find(v => v === `V${jsonVersion}`) + ) { + throw new Error(`Unable to handle version ${jsonVersion}`); + } + const metadata = registry.createType( + 'ContractMetadata', + vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, + ); + const converter = toLatestCompatible_js_1.convertVersions.find(([v]) => metadata[`is${v}`]); + if (!converter) { + throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); + } + const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + return upgradedMetadata; +} +function parseJson(json, chainProperties) { + const registry = new types_1.TypeRegistry(); + const info = registry.createType('ContractProjectInfo', json); + const metadata = getMetadata(registry, json); + const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); + // attach the lookup to the registry - now the types are known + registry.setLookup(lookup); + if (chainProperties) { + registry.setChainProperties(chainProperties); + } + // warm-up the actual type, pre-use + lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + return [json, registry, metadata, info]; +} +/** + * @internal + * Determines if the given input value is a ContractTypeSpec + */ +function isTypeSpec(value) { + return ( + !!value && + value instanceof Map && + !(0, util_1.isUndefined)(value.type) && + !(0, util_1.isUndefined)(value.displayName) + ); +} +/** + * @internal + * Determines if the given input value is an Option + */ +function isOption(value) { + return !!value && value instanceof types_1.Option; +} +class Abi { + events; + constructors; + info; + json; + messages; + metadata; + registry; + environment = new Map(); + constructor(abiJson, chainProperties) { + [this.json, this.registry, this.metadata, this.info] = parseJson( + (0, util_1.isString)(abiJson) ? JSON.parse(abiJson) : abiJson, + chainProperties, + ); + this.constructors = this.metadata.spec.constructors.map((spec, index) => + this.__internal__createMessage(spec, index, { + isConstructor: true, + isDefault: spec.default.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); + this.messages = this.metadata.spec.messages.map((spec, index) => + this.__internal__createMessage(spec, index, { + isDefault: spec.default.isTrue, + isMutating: spec.mutates.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + // NOTE See the rationale for having Option<...> values in the actual + // ContractEnvironmentV4 structure definition in interfaces/contractsAbi + // (Due to conversions, the fields may not exist) + for (const [key, opt] of this.metadata.spec.environment.entries()) { + if (isOption(opt)) { + if (opt.isSome) { + const value = opt.unwrap(); + if ((0, util_1.isBn)(value)) { + this.environment.set(key, value); + } else if (isTypeSpec(value)) { + this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); + } else { + throw new Error( + `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, + ); + } + } + } else { + throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); + } + } + } + /** + * Warning: Unstable API, bound to change + */ + decodeEvent(record) { + switch (this.metadata.version.toString()) { + // earlier version are hoisted to v4 + case '4': + return this.__internal__decodeEventV4(record); + // Latest + default: + return this.__internal__decodeEventV5(record); + } + } + __internal__decodeEventV5 = record => { + // Find event by first topic, which potentially is the signature_topic + const signatureTopic = record.topics[0]; + const data = record.event.data[1]; + if (signatureTopic) { + const event = this.events.find( + e => + e.signatureTopic !== undefined && + e.signatureTopic !== null && + e.signatureTopic === signatureTopic.toHex(), + ); + // Early return if event found by signature topic + if (event) { + return event.fromU8a(data); + } + } + // If no event returned yet, it might be anonymous + const amountOfTopics = record.topics.length; + const potentialEvents = this.events.filter(e => { + // event can't have a signature topic + if (e.signatureTopic !== null && e.signatureTopic !== undefined) { + return false; + } + // event should have same amount of indexed fields as emitted topics + const amountIndexed = e.args.filter(a => a.indexed).length; + if (amountIndexed !== amountOfTopics) { + return false; + } + // If all conditions met, it's a potential event + return true; + }); + if (potentialEvents.length === 1) { + return potentialEvents[0].fromU8a(data); + } + throw new Error('Unable to determine event'); + }; + __internal__decodeEventV4 = record => { + const data = record.event.data[1]; + const index = data[0]; + const event = this.events[index]; + if (!event) { + throw new Error(`Unable to find event with index ${index}`); + } + return event.fromU8a(data.subarray(1)); + }; + /** + * Warning: Unstable API, bound to change + */ + decodeConstructor(data) { + return this.__internal__decodeMessage('message', this.constructors, data); + } + /** + * Warning: Unstable API, bound to change + */ + decodeMessage(data) { + return this.__internal__decodeMessage('message', this.messages, data); + } + findConstructor(constructorOrId) { + return findMessage(this.constructors, constructorOrId); + } + findMessage(messageOrId) { + return findMessage(this.messages, messageOrId); + } + __internal__createArgs = (args, spec) => { + return args.map(({ label, type }, index) => { + try { + if (!(0, util_1.isObject)(type)) { + throw new Error('Invalid type definition found'); + } + const displayName = type.displayName.length + ? type.displayName[type.displayName.length - 1].toString() + : undefined; + const camelName = (0, util_1.stringCamelCase)(label); + if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { + return { + name: camelName, + type: { + info: types_create_1.TypeDefInfo.Plain, + type: displayName, + }, + }; + } + const typeDef = this.registry.lookup.getTypeDef(type.type); + return { + name: camelName, + type: + displayName && !typeDef.type.startsWith(displayName) + ? { displayName, ...typeDef } + : typeDef, + }; + } catch (error) { + l.error(`Error expanding argument ${index} in ${(0, util_1.stringify)(spec)}`); + throw error; + } + }); + }; + __internal__createMessageParams = (args, spec) => { + return this.__internal__createArgs(args, spec); + }; + __internal__createEventParams = (args, spec) => { + const params = this.__internal__createArgs(args, spec); + return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); + }; + __internal__createEvent = index => { + // TODO TypeScript would narrow this type to the correct version, + // but version is `Text` so I need to call `toString()` here, + // which breaks the type inference. + switch (this.metadata.version.toString()) { + case '4': + return this.__internal__createEventV4(this.metadata.spec.events[index], index); + default: + return this.__internal__createEventV5(this.metadata.spec.events[index], index); + } + }; + __internal__createEventV5 = (spec, index) => { + const args = this.__internal__createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + event, + }), + identifier: [spec.module_path, spec.label].join('::'), + index, + signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, + }; + return event; + }; + __internal__createEventV4 = (spec, index) => { + const args = this.__internal__createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + event, + }), + identifier: spec.label.toString(), + index, + }; + return event; + }; + __internal__createMessage = (spec, index, add = {}) => { + const args = this.__internal__createMessageParams(spec.args, spec); + const identifier = spec.label.toString(); + const message = { + ...add, + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + message, + }), + identifier, + index, + isDefault: spec.default.isTrue, + method: (0, util_1.stringCamelCase)(identifier), + path: identifier.split('::').map(s => (0, util_1.stringCamelCase)(s)), + selector: spec.selector, + toU8a: params => this.__internal__encodeMessageArgs(spec, args, params), + }; + return message; + }; + __internal__decodeArgs = (args, data) => { + // for decoding we expect the input to be just the arg data, no selectors + // no length added (this allows use with events as well) + let offset = 0; + return args.map(({ type: { lookupName, type } }) => { + const value = this.registry.createType(lookupName || type, data.subarray(offset)); + offset += value.encodedLength; + return value; + }); + }; + __internal__decodeMessage = (type, list, data) => { + const [, trimmed] = (0, util_1.compactStripLength)(data); + const selector = trimmed.subarray(0, 4); + const message = list.find(m => m.selector.eq(selector)); + if (!message) { + throw new Error(`Unable to find ${type} with selector ${(0, util_1.u8aToHex)(selector)}`); + } + return message.fromU8a(trimmed.subarray(4)); + }; + __internal__encodeMessageArgs = ({ label, selector }, args, data) => { + if (data.length !== args.length) { + throw new Error( + `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, + ); + } + return (0, util_1.compactAddLength)( + (0, util_1.u8aConcat)( + this.registry.createType('ContractSelector', selector).toU8a(), + ...args.map(({ type: { lookupName, type } }, index) => + this.registry.createType(lookupName || type, data[index]).toU8a(), + ), + ), + ); + }; +} +exports.Abi = Abi; diff --git a/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js b/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js new file mode 100644 index 00000000..4c9ce0d7 --- /dev/null +++ b/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js @@ -0,0 +1,37 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.convertVersions = + exports.v0ToLatestCompatible = + exports.v1ToLatestCompatible = + exports.v2ToLatestCompatible = + exports.v3ToLatestCompatible = + exports.enumVersions = + void 0; +exports.v5ToLatestCompatible = v5ToLatestCompatible; +exports.v4ToLatestCompatible = v4ToLatestCompatible; +const toV1_js_1 = require('./toV1.js'); +const toV2_js_1 = require('./toV2.js'); +const toV3_js_1 = require('./toV3.js'); +const toV4_js_1 = require('./toV4.js'); +exports.enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1']; +function createConverter(next, step) { + return (registry, input) => next(registry, step(registry, input)); +} +function v5ToLatestCompatible(_registry, v5) { + return v5; +} +function v4ToLatestCompatible(_registry, v4) { + return v4; +} +exports.v3ToLatestCompatible = createConverter(v4ToLatestCompatible, toV4_js_1.v3ToV4); +exports.v2ToLatestCompatible = createConverter(exports.v3ToLatestCompatible, toV3_js_1.v2ToV3); +exports.v1ToLatestCompatible = createConverter(exports.v2ToLatestCompatible, toV2_js_1.v1ToV2); +exports.v0ToLatestCompatible = createConverter(exports.v1ToLatestCompatible, toV1_js_1.v0ToV1); +exports.convertVersions = [ + ['V5', v5ToLatestCompatible], + ['V4', v4ToLatestCompatible], + ['V3', exports.v3ToLatestCompatible], + ['V2', exports.v2ToLatestCompatible], + ['V1', exports.v1ToLatestCompatible], + ['V0', exports.v0ToLatestCompatible], +]; diff --git a/.api-contract/build-tsc-cjs/Abi/toV1.js b/.api-contract/build-tsc-cjs/Abi/toV1.js new file mode 100644 index 00000000..3d0f5ec1 --- /dev/null +++ b/.api-contract/build-tsc-cjs/Abi/toV1.js @@ -0,0 +1,27 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.v0ToV1 = v0ToV1; +const types_1 = require('@polkadot/types'); +const util_1 = require('@polkadot/util'); +function v0ToV1Names(all) { + return all.map(e => + (0, util_1.objectSpread)({}, e, { + name: Array.isArray(e.name) ? e.name : [e.name], + }), + ); +} +function v0ToV1(registry, v0) { + if (!v0.metadataVersion.length) { + throw new Error('Invalid format for V0 (detected) contract metadata'); + } + return registry.createType( + 'ContractMetadataV1', + (0, util_1.objectSpread)({}, v0, { + spec: (0, util_1.objectSpread)({}, v0.spec, { + constructors: v0ToV1Names(v0.spec.constructors), + messages: v0ToV1Names(v0.spec.messages), + }), + types: (0, types_1.convertSiV0toV1)(registry, v0.types), + }), + ); +} diff --git a/.api-contract/build-tsc-cjs/Abi/toV2.js b/.api-contract/build-tsc-cjs/Abi/toV2.js new file mode 100644 index 00000000..f1457e9d --- /dev/null +++ b/.api-contract/build-tsc-cjs/Abi/toV2.js @@ -0,0 +1,36 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.v1ToV2 = v1ToV2; +const util_1 = require('@polkadot/util'); +const ARG_TYPES = { + ContractConstructorSpec: 'ContractMessageParamSpecV2', + ContractEventSpec: 'ContractEventParamSpecV2', + ContractMessageSpec: 'ContractMessageParamSpecV2', +}; +function v1ToV2Label(entry) { + return (0, util_1.objectSpread)({}, entry, { + label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, + }); +} +function v1ToV2Labels(registry, outType, all) { + return all.map(e => + registry.createType( + `${outType}V2`, + (0, util_1.objectSpread)(v1ToV2Label(e), { + args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), + }), + ), + ); +} +function v1ToV2(registry, v1) { + return registry.createType( + 'ContractMetadataV2', + (0, util_1.objectSpread)({}, v1, { + spec: (0, util_1.objectSpread)({}, v1.spec, { + constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), + events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), + messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), + }), + }), + ); +} diff --git a/.api-contract/build-tsc-cjs/Abi/toV3.js b/.api-contract/build-tsc-cjs/Abi/toV3.js new file mode 100644 index 00000000..dfb56428 --- /dev/null +++ b/.api-contract/build-tsc-cjs/Abi/toV3.js @@ -0,0 +1,20 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.v2ToV3 = v2ToV3; +const util_1 = require('@polkadot/util'); +function v2ToV3(registry, v2) { + return registry.createType( + 'ContractMetadataV3', + (0, util_1.objectSpread)({}, v2, { + spec: (0, util_1.objectSpread)({}, v2.spec, { + constructors: v2.spec.constructors.map(c => + // V3 introduces the payable flag on constructors, for + registry.createType('ContractConstructorSpecV4', (0, util_1.objectSpread)({}, c)), + ), + messages: v3.spec.messages.map(m => + registry.createType('ContractMessageSpecV3', (0, util_1.objectSpread)({}, m)), + ), + }), + version: registry.createType('Text', '4'), + }), + ); +} diff --git a/.api-contract/build-tsc-cjs/augment.js b/.api-contract/build-tsc-cjs/augment.js new file mode 100644 index 00000000..6464d66c --- /dev/null +++ b/.api-contract/build-tsc-cjs/augment.js @@ -0,0 +1,3 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +require('@polkadot/api-augment'); diff --git a/.api-contract/build-tsc-cjs/base/Base.js b/.api-contract/build-tsc-cjs/base/Base.js new file mode 100644 index 00000000..c077097f --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/Base.js @@ -0,0 +1,41 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Base = void 0; +const util_1 = require('@polkadot/util'); +const index_js_1 = require('../Abi/index.js'); +class Base { + abi; + api; + _decorateMethod; + _isWeightV1; + constructor(api, abi, decorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.revive || + !(0, util_1.isFunction)(api.tx.revive.instantiateWithCode) || + api.tx.revive.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.reviveApi || !(0, util_1.isFunction)(api.call.reviveApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', + ); + } + this.abi = + abi instanceof index_js_1.Abi + ? abi + : new index_js_1.Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + get registry() { + return this.api.registry; + } +} +exports.Base = Base; diff --git a/.api-contract/build-tsc-cjs/base/Blueprint.js b/.api-contract/build-tsc-cjs/base/Blueprint.js new file mode 100644 index 00000000..55bdffaa --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/Blueprint.js @@ -0,0 +1,83 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Blueprint = exports.BlueprintSubmittableResult = void 0; +exports.extendBlueprint = extendBlueprint; +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const Base_js_1 = require('./Base.js'); +const Contract_js_1 = require('./Contract.js'); +const util_js_1 = require('./util.js'); +class BlueprintSubmittableResult extends api_1.SubmittableResult { + contract; + constructor(result, contract) { + super(result); + this.contract = contract; + } +} +exports.BlueprintSubmittableResult = BlueprintSubmittableResult; +class Blueprint extends Base_js_1.Base { + /** + * @description The on-chain code hash for this blueprint + */ + codeHash; + __internal__tx = {}; + constructor(api, abi, codeHash, decorateMethod) { + super(api, abi, decorateMethod); + this.codeHash = this.registry.createType('Hash', codeHash); + this.abi.constructors.forEach(c => { + if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = (0, util_js_1.createBluePrintTx)(c, (o, p) => + this.__internal__deploy(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__deploy = ( + constructorOrId, + { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_1.convertWeight)(gasLimit).v1Weight + : (0, util_js_1.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + (0, util_js_1.encodeSalt)(salt), + ) + .withResultTransform( + result => + new BlueprintSubmittableResult( + result, + (() => { + if (result.status.isInBlock || result.status.isFinalized) { + return new Contract_js_1.Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ); + } + return undefined; + })(), + ), + ); + }; +} +exports.Blueprint = Blueprint; +function extendBlueprint(type, decorateMethod) { + return class extends Blueprint { + static __BlueprintType = type; + constructor(api, abi, codeHash) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-contract/build-tsc-cjs/base/Code.js b/.api-contract/build-tsc-cjs/base/Code.js new file mode 100644 index 00000000..3a6f60a6 --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/Code.js @@ -0,0 +1,94 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Code = exports.CodeSubmittableResult = void 0; +exports.extendCode = extendCode; +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const Base_js_1 = require('./Base.js'); +const Blueprint_js_1 = require('./Blueprint.js'); +const Contract_js_1 = require('./Contract.js'); +const util_js_1 = require('./util.js'); +class CodeSubmittableResult extends api_1.SubmittableResult { + blueprint; + contract; + constructor(result, blueprint, contract) { + super(result); + this.blueprint = blueprint; + this.contract = contract; + } +} +exports.CodeSubmittableResult = CodeSubmittableResult; +function isValidCode(code) { + return (0, util_1.isWasm)(code) || (0, util_1.isRiscV)(code); +} +class Code extends Base_js_1.Base { + code; + __internal__tx = {}; + constructor(api, abi, wasm, decorateMethod) { + super(api, abi, decorateMethod); + this.code = isValidCode(this.abi.info.source.wasm) + ? this.abi.info.source.wasm + : (0, util_1.u8aToU8a)(wasm); + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + this.abi.constructors.forEach(c => { + if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = (0, util_js_1.createBluePrintTx)(c, (o, p) => + this.__internal__instantiate(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__instantiate = ( + constructorOrId, + { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + console.log('in instantiate'); + console.log(this.abi.info.source.wasmHash); + return this.api.tx.revive + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_1.convertWeight)(gasLimit).v1Weight + : (0, util_js_1.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + (0, util_1.compactAddLength)(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + (0, util_js_1.encodeSalt)(salt), + ) + .withResultTransform( + result => + new CodeSubmittableResult( + result, + new Blueprint_js_1.Blueprint( + this.api, + this.abi, + this.abi.info.source.wasmHash, + this._decorateMethod, + ), + new Contract_js_1.Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ), + ), + ); + }; +} +exports.Code = Code; +function extendCode(type, decorateMethod) { + return class extends Code { + static __CodeType = type; + constructor(api, abi, wasm) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-contract/build-tsc-cjs/base/Contract.js b/.api-contract/build-tsc-cjs/base/Contract.js new file mode 100644 index 00000000..b3f5b9f5 --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/Contract.js @@ -0,0 +1,164 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Contract = exports.ContractSubmittableResult = void 0; +exports.extendContract = extendContract; +const rxjs_1 = require('rxjs'); +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const util_js_1 = require('../util.js'); +const Base_js_1 = require('./Base.js'); +const util_js_2 = require('./util.js'); +const MAX_CALL_GAS = new util_1.BN(5_000_000_000_000).isub(util_1.BN_ONE); +const l = (0, util_1.logger)('Contract'); +function createQuery(meta, fn) { + return (0, util_js_2.withMeta)(meta, (origin, options, ...params) => fn(origin, options, params)); +} +function createTx(meta, fn) { + return (0, util_js_2.withMeta)(meta, (options, ...params) => fn(options, params)); +} +class ContractSubmittableResult extends api_1.SubmittableResult { + contractEvents; + constructor(result, contractEvents) { + super(result); + this.contractEvents = contractEvents; + } +} +exports.ContractSubmittableResult = ContractSubmittableResult; +class Contract extends Base_js_1.Base { + /** + * @description The on-chain address for this contract + */ + address; + __internal__query = {}; + __internal__tx = {}; + constructor(api, abi, address, decorateMethod) { + super(api, abi, decorateMethod); + this.address = this.registry.createType('AccountId20', address); + this.abi.messages.forEach(m => { + if ((0, util_1.isUndefined)(this.__internal__tx[m.method])) { + this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); + } + if ((0, util_1.isUndefined)(this.__internal__query[m.method])) { + this.__internal__query[m.method] = createQuery(m, (f, o, p) => + this.__internal__read(m, o, p).send(f), + ); + } + }); + } + get query() { + return this.__internal__query; + } + get tx() { + return this.__internal__tx; + } + __internal__getGas = (_gasLimit, isCall = false) => { + const weight = (0, util_js_2.convertWeight)(_gasLimit); + if (weight.v1Weight.gt(util_1.BN_ZERO)) { + return weight; + } + return (0, util_js_2.convertWeight)( + isCall + ? MAX_CALL_GAS + : (0, util_js_2.convertWeight)( + this.api.consts.system.blockWeights + ? this.api.consts.system.blockWeights.maxBlock + : this.api.consts.system['maximumBlockWeight'], + ) + .v1Weight.muln(64) + .div(util_1.BN_HUNDRED), + ); + }; + __internal__exec = ( + messageOrId, + { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_2.convertWeight)(gasLimit).v1Weight + : (0, util_js_2.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + result => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + (0, util_js_1.applyOnEvent)(result, ['ContractEmitted', 'ContractExecution'], records => + records + .map(record => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${error.message}`); + return null; + } + }) + .filter(decoded => !!decoded), + ), + ), + ); + }; + __internal__read = ( + messageOrId, + { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + const message = this.abi.findMessage(messageOrId); + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod(origin => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.__internal__getGas(gasLimit, true).v1Weight + : this.__internal__getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + (0, rxjs_1.map)( + ({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !(0, util_js_2.convertWeight)(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + }), + ), + ), + ), + }; + }; +} +exports.Contract = Contract; +function extendContract(type, decorateMethod) { + return class extends Contract { + static __ContractType = type; + constructor(api, abi, address) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-contract/build-tsc-cjs/base/index.js b/.api-contract/build-tsc-cjs/base/index.js new file mode 100644 index 00000000..742b6bbc --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/index.js @@ -0,0 +1,62 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.extendContract = + exports.Contract = + exports.extendCode = + exports.CodeSubmittableResult = + exports.Code = + exports.extendBlueprint = + exports.BlueprintSubmittableResult = + exports.Blueprint = + void 0; +var Blueprint_js_1 = require('./Blueprint.js'); +Object.defineProperty(exports, 'Blueprint', { + enumerable: true, + get: function () { + return Blueprint_js_1.Blueprint; + }, +}); +Object.defineProperty(exports, 'BlueprintSubmittableResult', { + enumerable: true, + get: function () { + return Blueprint_js_1.BlueprintSubmittableResult; + }, +}); +Object.defineProperty(exports, 'extendBlueprint', { + enumerable: true, + get: function () { + return Blueprint_js_1.extendBlueprint; + }, +}); +var Code_js_1 = require('./Code.js'); +Object.defineProperty(exports, 'Code', { + enumerable: true, + get: function () { + return Code_js_1.Code; + }, +}); +Object.defineProperty(exports, 'CodeSubmittableResult', { + enumerable: true, + get: function () { + return Code_js_1.CodeSubmittableResult; + }, +}); +Object.defineProperty(exports, 'extendCode', { + enumerable: true, + get: function () { + return Code_js_1.extendCode; + }, +}); +var Contract_js_1 = require('./Contract.js'); +Object.defineProperty(exports, 'Contract', { + enumerable: true, + get: function () { + return Contract_js_1.Contract; + }, +}); +Object.defineProperty(exports, 'extendContract', { + enumerable: true, + get: function () { + return Contract_js_1.extendContract; + }, +}); diff --git a/.api-contract/build-tsc-cjs/base/mock.js b/.api-contract/build-tsc-cjs/base/mock.js new file mode 100644 index 00000000..59ffb46e --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/mock.js @@ -0,0 +1,25 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.mockApi = void 0; +const types_1 = require('@polkadot/types'); +const registry = new types_1.TypeRegistry(); +const instantiateWithCode = () => { + throw new Error('mock'); +}; +instantiateWithCode.meta = { args: new Array(6) }; +exports.mockApi = { + call: { + contractsApi: { + call: () => { + throw new Error('mock'); + }, + }, + }, + isConnected: true, + registry, + tx: { + contracts: { + instantiateWithCode, + }, + }, +}; diff --git a/.api-contract/build-tsc-cjs/base/types.js b/.api-contract/build-tsc-cjs/base/types.js new file mode 100644 index 00000000..db8b17d5 --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/types.js @@ -0,0 +1,2 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build-tsc-cjs/base/util.js b/.api-contract/build-tsc-cjs/base/util.js new file mode 100644 index 00000000..1a1a14f5 --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/util.js @@ -0,0 +1,42 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.EMPTY_SALT = void 0; +exports.withMeta = withMeta; +exports.createBluePrintTx = createBluePrintTx; +exports.createBluePrintWithId = createBluePrintWithId; +exports.encodeSalt = encodeSalt; +exports.convertWeight = convertWeight; +exports.isWeightV2 = isWeightV2; +const types_1 = require('@polkadot/types'); +const util_1 = require('@polkadot/util'); +const util_crypto_1 = require('@polkadot/util-crypto'); +exports.EMPTY_SALT = new Uint8Array(); +function withMeta(meta, creator) { + creator.meta = meta; + return creator; +} +function createBluePrintTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); +} +function createBluePrintWithId(fn) { + return (constructorOrId, options, ...params) => fn(constructorOrId, options, params); +} +function encodeSalt(salt = (0, util_crypto_1.randomAsU8a)()) { + return salt instanceof types_1.Bytes + ? salt + : salt?.length + ? (0, util_1.compactAddLength)((0, util_1.u8aToU8a)(salt)) + : exports.EMPTY_SALT; +} +function convertWeight(weight) { + const [refTime, proofSize] = isWeightV2(weight) + ? [weight.refTime.toBn(), weight.proofSize.toBn()] + : [(0, util_1.bnToBn)(weight), undefined]; + return { + v1Weight: refTime, + v2Weight: { proofSize, refTime }, + }; +} +function isWeightV2(weight) { + return !!weight.proofSize; +} diff --git a/.api-contract/build-tsc-cjs/bundle.js b/.api-contract/build-tsc-cjs/bundle.js new file mode 100644 index 00000000..0f1f8f06 --- /dev/null +++ b/.api-contract/build-tsc-cjs/bundle.js @@ -0,0 +1,20 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.packageInfo = exports.Abi = void 0; +const tslib_1 = require('tslib'); +var index_js_1 = require('./Abi/index.js'); +Object.defineProperty(exports, 'Abi', { + enumerable: true, + get: function () { + return index_js_1.Abi; + }, +}); +var packageInfo_js_1 = require('./packageInfo.js'); +Object.defineProperty(exports, 'packageInfo', { + enumerable: true, + get: function () { + return packageInfo_js_1.packageInfo; + }, +}); +tslib_1.__exportStar(require('./promise/index.js'), exports); +tslib_1.__exportStar(require('./rx/index.js'), exports); diff --git a/.api-contract/build-tsc-cjs/index.js b/.api-contract/build-tsc-cjs/index.js new file mode 100644 index 00000000..509038d7 --- /dev/null +++ b/.api-contract/build-tsc-cjs/index.js @@ -0,0 +1,5 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +const tslib_1 = require('tslib'); +require('./packageDetect.js'); +tslib_1.__exportStar(require('./bundle.js'), exports); diff --git a/.api-contract/build-tsc-cjs/packageDetect.js b/.api-contract/build-tsc-cjs/packageDetect.js new file mode 100644 index 00000000..a9aed994 --- /dev/null +++ b/.api-contract/build-tsc-cjs/packageDetect.js @@ -0,0 +1,10 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +const packageInfo_1 = require('@polkadot/api/packageInfo'); +const packageInfo_2 = require('@polkadot/types/packageInfo'); +const util_1 = require('@polkadot/util'); +const packageInfo_js_1 = require('./packageInfo.js'); +(0, util_1.detectPackage)(packageInfo_js_1.packageInfo, null, [ + packageInfo_1.packageInfo, + packageInfo_2.packageInfo, +]); diff --git a/.api-contract/build-tsc-cjs/packageInfo.js b/.api-contract/build-tsc-cjs/packageInfo.js new file mode 100644 index 00000000..39a18613 --- /dev/null +++ b/.api-contract/build-tsc-cjs/packageInfo.js @@ -0,0 +1,9 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.packageInfo = void 0; +exports.packageInfo = { + name: '@polkadot/api-contract', + path: typeof __dirname === 'string' ? __dirname : 'auto', + type: 'cjs', + version: '15.8.1', +}; diff --git a/.api-contract/build-tsc-cjs/promise/index.js b/.api-contract/build-tsc-cjs/promise/index.js new file mode 100644 index 00000000..d77ad7db --- /dev/null +++ b/.api-contract/build-tsc-cjs/promise/index.js @@ -0,0 +1,23 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.ContractPromise = exports.CodePromise = exports.BlueprintPromise = void 0; +const api_1 = require('@polkadot/api'); +const index_js_1 = require('../base/index.js'); +class BlueprintPromise extends index_js_1.Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, api_1.toPromiseMethod); + } +} +exports.BlueprintPromise = BlueprintPromise; +class CodePromise extends index_js_1.Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, api_1.toPromiseMethod); + } +} +exports.CodePromise = CodePromise; +class ContractPromise extends index_js_1.Contract { + constructor(api, abi, address) { + super(api, abi, address, api_1.toPromiseMethod); + } +} +exports.ContractPromise = ContractPromise; diff --git a/.api-contract/build-tsc-cjs/promise/types.js b/.api-contract/build-tsc-cjs/promise/types.js new file mode 100644 index 00000000..db8b17d5 --- /dev/null +++ b/.api-contract/build-tsc-cjs/promise/types.js @@ -0,0 +1,2 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build-tsc-cjs/rx/index.js b/.api-contract/build-tsc-cjs/rx/index.js new file mode 100644 index 00000000..6846d72a --- /dev/null +++ b/.api-contract/build-tsc-cjs/rx/index.js @@ -0,0 +1,23 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.ContractRx = exports.CodeRx = exports.BlueprintRx = void 0; +const api_1 = require('@polkadot/api'); +const index_js_1 = require('../base/index.js'); +class BlueprintRx extends index_js_1.Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, api_1.toRxMethod); + } +} +exports.BlueprintRx = BlueprintRx; +class CodeRx extends index_js_1.Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, api_1.toRxMethod); + } +} +exports.CodeRx = CodeRx; +class ContractRx extends index_js_1.Contract { + constructor(api, abi, address) { + super(api, abi, address, api_1.toRxMethod); + } +} +exports.ContractRx = ContractRx; diff --git a/.api-contract/build-tsc-cjs/rx/types.js b/.api-contract/build-tsc-cjs/rx/types.js new file mode 100644 index 00000000..db8b17d5 --- /dev/null +++ b/.api-contract/build-tsc-cjs/rx/types.js @@ -0,0 +1,2 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build-tsc-cjs/types.js b/.api-contract/build-tsc-cjs/types.js new file mode 100644 index 00000000..db8b17d5 --- /dev/null +++ b/.api-contract/build-tsc-cjs/types.js @@ -0,0 +1,2 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build-tsc-cjs/util.js b/.api-contract/build-tsc-cjs/util.js new file mode 100644 index 00000000..ae77e3ce --- /dev/null +++ b/.api-contract/build-tsc-cjs/util.js @@ -0,0 +1,12 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.applyOnEvent = applyOnEvent; +function applyOnEvent(result, types, fn) { + if (result.isInBlock || result.isFinalized) { + const records = result.filterRecords('contracts', types); + if (records.length) { + return fn(records); + } + } + return undefined; +} diff --git a/.api-contract/build-tsc-esm/Abi/index.js b/.api-contract/build-tsc-esm/Abi/index.js new file mode 100644 index 00000000..b7b819be --- /dev/null +++ b/.api-contract/build-tsc-esm/Abi/index.js @@ -0,0 +1,351 @@ +import { Option, TypeRegistry } from '@polkadot/types'; +import { TypeDefInfo } from '@polkadot/types-create'; +import { + assertReturn, + compactAddLength, + compactStripLength, + isBn, + isNumber, + isObject, + isString, + isUndefined, + logger, + stringCamelCase, + stringify, + u8aConcat, + u8aToHex, +} from '@polkadot/util'; +import { convertVersions, enumVersions } from './toLatestCompatible.js'; +const l = logger('Abi'); +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; +function findMessage(list, messageOrId) { + const message = isNumber(messageOrId) + ? list[messageOrId] + : isString(messageOrId) + ? list.find(({ identifier }) => + [identifier, stringCamelCase(identifier)].includes(messageOrId.toString()), + ) + : messageOrId; + return assertReturn( + message, + () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`, + ); +} +function getMetadata(registry, json) { + // this is for V1, V2, V3 + const vx = enumVersions.find(v => isObject(json[v])); + // this was added in V4 + const jsonVersion = json.version; + if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { + throw new Error(`Unable to handle version ${jsonVersion}`); + } + const metadata = registry.createType( + 'ContractMetadata', + vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, + ); + const converter = convertVersions.find(([v]) => metadata[`is${v}`]); + if (!converter) { + throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); + } + const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + return upgradedMetadata; +} +function parseJson(json, chainProperties) { + const registry = new TypeRegistry(); + const info = registry.createType('ContractProjectInfo', json); + const metadata = getMetadata(registry, json); + const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); + // attach the lookup to the registry - now the types are known + registry.setLookup(lookup); + if (chainProperties) { + registry.setChainProperties(chainProperties); + } + // warm-up the actual type, pre-use + lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + return [json, registry, metadata, info]; +} +/** + * @internal + * Determines if the given input value is a ContractTypeSpec + */ +function isTypeSpec(value) { + return ( + !!value && value instanceof Map && !isUndefined(value.type) && !isUndefined(value.displayName) + ); +} +/** + * @internal + * Determines if the given input value is an Option + */ +function isOption(value) { + return !!value && value instanceof Option; +} +export class Abi { + events; + constructors; + info; + json; + messages; + metadata; + registry; + environment = new Map(); + constructor(abiJson, chainProperties) { + [this.json, this.registry, this.metadata, this.info] = parseJson( + isString(abiJson) ? JSON.parse(abiJson) : abiJson, + chainProperties, + ); + this.constructors = this.metadata.spec.constructors.map((spec, index) => + this.__internal__createMessage(spec, index, { + isConstructor: true, + isDefault: spec.default.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); + this.messages = this.metadata.spec.messages.map((spec, index) => + this.__internal__createMessage(spec, index, { + isDefault: spec.default.isTrue, + isMutating: spec.mutates.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + // NOTE See the rationale for having Option<...> values in the actual + // ContractEnvironmentV4 structure definition in interfaces/contractsAbi + // (Due to conversions, the fields may not exist) + for (const [key, opt] of this.metadata.spec.environment.entries()) { + if (isOption(opt)) { + if (opt.isSome) { + const value = opt.unwrap(); + if (isBn(value)) { + this.environment.set(key, value); + } else if (isTypeSpec(value)) { + this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); + } else { + throw new Error( + `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, + ); + } + } + } else { + throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); + } + } + } + /** + * Warning: Unstable API, bound to change + */ + decodeEvent(record) { + switch (this.metadata.version.toString()) { + // earlier version are hoisted to v4 + case '4': + return this.__internal__decodeEventV4(record); + // Latest + default: + return this.__internal__decodeEventV5(record); + } + } + __internal__decodeEventV5 = record => { + // Find event by first topic, which potentially is the signature_topic + const signatureTopic = record.topics[0]; + const data = record.event.data[1]; + if (signatureTopic) { + const event = this.events.find( + e => + e.signatureTopic !== undefined && + e.signatureTopic !== null && + e.signatureTopic === signatureTopic.toHex(), + ); + // Early return if event found by signature topic + if (event) { + return event.fromU8a(data); + } + } + // If no event returned yet, it might be anonymous + const amountOfTopics = record.topics.length; + const potentialEvents = this.events.filter(e => { + // event can't have a signature topic + if (e.signatureTopic !== null && e.signatureTopic !== undefined) { + return false; + } + // event should have same amount of indexed fields as emitted topics + const amountIndexed = e.args.filter(a => a.indexed).length; + if (amountIndexed !== amountOfTopics) { + return false; + } + // If all conditions met, it's a potential event + return true; + }); + if (potentialEvents.length === 1) { + return potentialEvents[0].fromU8a(data); + } + throw new Error('Unable to determine event'); + }; + __internal__decodeEventV4 = record => { + const data = record.event.data[1]; + const index = data[0]; + const event = this.events[index]; + if (!event) { + throw new Error(`Unable to find event with index ${index}`); + } + return event.fromU8a(data.subarray(1)); + }; + /** + * Warning: Unstable API, bound to change + */ + decodeConstructor(data) { + return this.__internal__decodeMessage('message', this.constructors, data); + } + /** + * Warning: Unstable API, bound to change + */ + decodeMessage(data) { + return this.__internal__decodeMessage('message', this.messages, data); + } + findConstructor(constructorOrId) { + return findMessage(this.constructors, constructorOrId); + } + findMessage(messageOrId) { + return findMessage(this.messages, messageOrId); + } + __internal__createArgs = (args, spec) => { + return args.map(({ label, type }, index) => { + try { + if (!isObject(type)) { + throw new Error('Invalid type definition found'); + } + const displayName = type.displayName.length + ? type.displayName[type.displayName.length - 1].toString() + : undefined; + const camelName = stringCamelCase(label); + if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { + return { + name: camelName, + type: { + info: TypeDefInfo.Plain, + type: displayName, + }, + }; + } + const typeDef = this.registry.lookup.getTypeDef(type.type); + return { + name: camelName, + type: + displayName && !typeDef.type.startsWith(displayName) + ? { displayName, ...typeDef } + : typeDef, + }; + } catch (error) { + l.error(`Error expanding argument ${index} in ${stringify(spec)}`); + throw error; + } + }); + }; + __internal__createMessageParams = (args, spec) => { + return this.__internal__createArgs(args, spec); + }; + __internal__createEventParams = (args, spec) => { + const params = this.__internal__createArgs(args, spec); + return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); + }; + __internal__createEvent = index => { + // TODO TypeScript would narrow this type to the correct version, + // but version is `Text` so I need to call `toString()` here, + // which breaks the type inference. + switch (this.metadata.version.toString()) { + case '4': + return this.__internal__createEventV4(this.metadata.spec.events[index], index); + default: + return this.__internal__createEventV5(this.metadata.spec.events[index], index); + } + }; + __internal__createEventV5 = (spec, index) => { + const args = this.__internal__createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + event, + }), + identifier: [spec.module_path, spec.label].join('::'), + index, + signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, + }; + return event; + }; + __internal__createEventV4 = (spec, index) => { + const args = this.__internal__createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + event, + }), + identifier: spec.label.toString(), + index, + }; + return event; + }; + __internal__createMessage = (spec, index, add = {}) => { + const args = this.__internal__createMessageParams(spec.args, spec); + const identifier = spec.label.toString(); + const message = { + ...add, + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + message, + }), + identifier, + index, + isDefault: spec.default.isTrue, + method: stringCamelCase(identifier), + path: identifier.split('::').map(s => stringCamelCase(s)), + selector: spec.selector, + toU8a: params => this.__internal__encodeMessageArgs(spec, args, params), + }; + return message; + }; + __internal__decodeArgs = (args, data) => { + // for decoding we expect the input to be just the arg data, no selectors + // no length added (this allows use with events as well) + let offset = 0; + return args.map(({ type: { lookupName, type } }) => { + const value = this.registry.createType(lookupName || type, data.subarray(offset)); + offset += value.encodedLength; + return value; + }); + }; + __internal__decodeMessage = (type, list, data) => { + const [, trimmed] = compactStripLength(data); + const selector = trimmed.subarray(0, 4); + const message = list.find(m => m.selector.eq(selector)); + if (!message) { + throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`); + } + return message.fromU8a(trimmed.subarray(4)); + }; + __internal__encodeMessageArgs = ({ label, selector }, args, data) => { + if (data.length !== args.length) { + throw new Error( + `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, + ); + } + return compactAddLength( + u8aConcat( + this.registry.createType('ContractSelector', selector).toU8a(), + ...args.map(({ type: { lookupName, type } }, index) => + this.registry.createType(lookupName || type, data[index]).toU8a(), + ), + ), + ); + }; +} diff --git a/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js b/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js new file mode 100644 index 00000000..4cec9dab --- /dev/null +++ b/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js @@ -0,0 +1,26 @@ +import { v0ToV1 } from './toV1.js'; +import { v1ToV2 } from './toV2.js'; +import { v2ToV3 } from './toV3.js'; +import { v3ToV4 } from './toV4.js'; +export const enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1']; +function createConverter(next, step) { + return (registry, input) => next(registry, step(registry, input)); +} +export function v5ToLatestCompatible(_registry, v5) { + return v5; +} +export function v4ToLatestCompatible(_registry, v4) { + return v4; +} +export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4); +export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3); +export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); +export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); +export const convertVersions = [ + ['V5', v5ToLatestCompatible], + ['V4', v4ToLatestCompatible], + ['V3', v3ToLatestCompatible], + ['V2', v2ToLatestCompatible], + ['V1', v1ToLatestCompatible], + ['V0', v0ToLatestCompatible], +]; diff --git a/.api-contract/build-tsc-esm/Abi/toV1.js b/.api-contract/build-tsc-esm/Abi/toV1.js new file mode 100644 index 00000000..06c9c5fe --- /dev/null +++ b/.api-contract/build-tsc-esm/Abi/toV1.js @@ -0,0 +1,24 @@ +import { convertSiV0toV1 } from '@polkadot/types'; +import { objectSpread } from '@polkadot/util'; +function v0ToV1Names(all) { + return all.map(e => + objectSpread({}, e, { + name: Array.isArray(e.name) ? e.name : [e.name], + }), + ); +} +export function v0ToV1(registry, v0) { + if (!v0.metadataVersion.length) { + throw new Error('Invalid format for V0 (detected) contract metadata'); + } + return registry.createType( + 'ContractMetadataV1', + objectSpread({}, v0, { + spec: objectSpread({}, v0.spec, { + constructors: v0ToV1Names(v0.spec.constructors), + messages: v0ToV1Names(v0.spec.messages), + }), + types: convertSiV0toV1(registry, v0.types), + }), + ); +} diff --git a/.api-contract/build-tsc-esm/Abi/toV2.js b/.api-contract/build-tsc-esm/Abi/toV2.js new file mode 100644 index 00000000..9214a3bf --- /dev/null +++ b/.api-contract/build-tsc-esm/Abi/toV2.js @@ -0,0 +1,33 @@ +import { objectSpread } from '@polkadot/util'; +const ARG_TYPES = { + ContractConstructorSpec: 'ContractMessageParamSpecV2', + ContractEventSpec: 'ContractEventParamSpecV2', + ContractMessageSpec: 'ContractMessageParamSpecV2', +}; +function v1ToV2Label(entry) { + return objectSpread({}, entry, { + label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, + }); +} +function v1ToV2Labels(registry, outType, all) { + return all.map(e => + registry.createType( + `${outType}V2`, + objectSpread(v1ToV2Label(e), { + args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), + }), + ), + ); +} +export function v1ToV2(registry, v1) { + return registry.createType( + 'ContractMetadataV2', + objectSpread({}, v1, { + spec: objectSpread({}, v1.spec, { + constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), + events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), + messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), + }), + }), + ); +} diff --git a/.api-contract/build-tsc-esm/Abi/toV3.js b/.api-contract/build-tsc-esm/Abi/toV3.js new file mode 100644 index 00000000..212c2297 --- /dev/null +++ b/.api-contract/build-tsc-esm/Abi/toV3.js @@ -0,0 +1,14 @@ +import { objectSpread } from '@polkadot/util'; +export function v2ToV3(registry, v2) { + return registry.createType( + 'ContractMetadataV3', + objectSpread({}, v2, { + spec: objectSpread({}, v2.spec, { + constructors: v2.spec.constructors.map(c => + // V3 introduces the payable flag on constructors, for + registry.createType('ContractConstructorSpecV4', objectSpread({}, c)), + ), + messages: v3.spec.messages.map(m => + registry.createType('ContractMessageSpecV3', objectSpread({}, m)), + ), + }), + version: registry.createType('Text', '4'), + }), + ); +} diff --git a/.api-contract/build-tsc-esm/augment.js b/.api-contract/build-tsc-esm/augment.js new file mode 100644 index 00000000..40e6ced0 --- /dev/null +++ b/.api-contract/build-tsc-esm/augment.js @@ -0,0 +1 @@ +import '@polkadot/api-augment'; diff --git a/.api-contract/build-tsc-esm/base/Base.js b/.api-contract/build-tsc-esm/base/Base.js new file mode 100644 index 00000000..48f9863b --- /dev/null +++ b/.api-contract/build-tsc-esm/base/Base.js @@ -0,0 +1,34 @@ +import { isFunction } from '@polkadot/util'; +import { Abi } from '../Abi/index.js'; +export class Base { + abi; + api; + _decorateMethod; + _isWeightV1; + constructor(api, abi, decorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.revive || + !isFunction(api.tx.revive.instantiateWithCode) || + api.tx.revive.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.reviveApi || !isFunction(api.call.reviveApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', + ); + } + this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + get registry() { + return this.api.registry; + } +} diff --git a/.api-contract/build-tsc-esm/base/Blueprint.js b/.api-contract/build-tsc-esm/base/Blueprint.js new file mode 100644 index 00000000..f0f4f8c3 --- /dev/null +++ b/.api-contract/build-tsc-esm/base/Blueprint.js @@ -0,0 +1,75 @@ +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, isUndefined } from '@polkadot/util'; +import { Base } from './Base.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; +export class BlueprintSubmittableResult extends SubmittableResult { + contract; + constructor(result, contract) { + super(result); + this.contract = contract; + } +} +export class Blueprint extends Base { + /** + * @description The on-chain code hash for this blueprint + */ + codeHash; + __internal__tx = {}; + constructor(api, abi, codeHash, decorateMethod) { + super(api, abi, decorateMethod); + this.codeHash = this.registry.createType('Hash', codeHash); + this.abi.constructors.forEach(c => { + if (isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__deploy(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__deploy = ( + constructorOrId, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new BlueprintSubmittableResult( + result, + (() => { + if (result.status.isInBlock || result.status.isFinalized) { + return new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ); + } + return undefined; + })(), + ), + ); + }; +} +export function extendBlueprint(type, decorateMethod) { + return class extends Blueprint { + static __BlueprintType = type; + constructor(api, abi, codeHash) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-contract/build-tsc-esm/base/Code.js b/.api-contract/build-tsc-esm/base/Code.js new file mode 100644 index 00000000..c4e069e5 --- /dev/null +++ b/.api-contract/build-tsc-esm/base/Code.js @@ -0,0 +1,79 @@ +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; +import { Base } from './Base.js'; +import { Blueprint } from './Blueprint.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; +export class CodeSubmittableResult extends SubmittableResult { + blueprint; + contract; + constructor(result, blueprint, contract) { + super(result); + this.blueprint = blueprint; + this.contract = contract; + } +} +function isValidCode(code) { + return isWasm(code) || isRiscV(code); +} +export class Code extends Base { + code; + __internal__tx = {}; + constructor(api, abi, wasm, decorateMethod) { + super(api, abi, decorateMethod); + this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + this.abi.constructors.forEach(c => { + if (isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__instantiate(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__instantiate = ( + constructorOrId, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + console.log('in instantiate'); + console.log(this.abi.info.source.wasmHash); + return this.api.tx.revive + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new CodeSubmittableResult( + result, + new Blueprint(this.api, this.abi, this.abi.info.source.wasmHash, this._decorateMethod), + new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ), + ), + ); + }; +} +export function extendCode(type, decorateMethod) { + return class extends Code { + static __CodeType = type; + constructor(api, abi, wasm) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-contract/build-tsc-esm/base/Contract.js b/.api-contract/build-tsc-esm/base/Contract.js new file mode 100644 index 00000000..81ec5787 --- /dev/null +++ b/.api-contract/build-tsc-esm/base/Contract.js @@ -0,0 +1,154 @@ +import { map } from 'rxjs'; +import { SubmittableResult } from '@polkadot/api'; +import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { convertWeight, withMeta } from './util.js'; +const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); +const l = logger('Contract'); +function createQuery(meta, fn) { + return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); +} +function createTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); +} +export class ContractSubmittableResult extends SubmittableResult { + contractEvents; + constructor(result, contractEvents) { + super(result); + this.contractEvents = contractEvents; + } +} +export class Contract extends Base { + /** + * @description The on-chain address for this contract + */ + address; + __internal__query = {}; + __internal__tx = {}; + constructor(api, abi, address, decorateMethod) { + super(api, abi, decorateMethod); + this.address = this.registry.createType('AccountId20', address); + this.abi.messages.forEach(m => { + if (isUndefined(this.__internal__tx[m.method])) { + this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); + } + if (isUndefined(this.__internal__query[m.method])) { + this.__internal__query[m.method] = createQuery(m, (f, o, p) => + this.__internal__read(m, o, p).send(f), + ); + } + }); + } + get query() { + return this.__internal__query; + } + get tx() { + return this.__internal__tx; + } + __internal__getGas = (_gasLimit, isCall = false) => { + const weight = convertWeight(_gasLimit); + if (weight.v1Weight.gt(BN_ZERO)) { + return weight; + } + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? this.api.consts.system.blockWeights.maxBlock + : this.api.consts.system['maximumBlockWeight'], + ) + .v1Weight.muln(64) + .div(BN_HUNDRED), + ); + }; + __internal__exec = ( + messageOrId, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + result => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => + records + .map(record => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${error.message}`); + return null; + } + }) + .filter(decoded => !!decoded), + ), + ), + ); + }; + __internal__read = ( + messageOrId, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + const message = this.abi.findMessage(messageOrId); + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod(origin => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.__internal__getGas(gasLimit, true).v1Weight + : this.__internal__getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + })), + ), + ), + }; + }; +} +export function extendContract(type, decorateMethod) { + return class extends Contract { + static __ContractType = type; + constructor(api, abi, address) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-contract/build-tsc-esm/base/index.js b/.api-contract/build-tsc-esm/base/index.js new file mode 100644 index 00000000..905b4515 --- /dev/null +++ b/.api-contract/build-tsc-esm/base/index.js @@ -0,0 +1,3 @@ +export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { Contract, extendContract } from './Contract.js'; diff --git a/.api-contract/build-tsc-esm/base/mock.js b/.api-contract/build-tsc-esm/base/mock.js new file mode 100644 index 00000000..55a4f489 --- /dev/null +++ b/.api-contract/build-tsc-esm/base/mock.js @@ -0,0 +1,22 @@ +import { TypeRegistry } from '@polkadot/types'; +const registry = new TypeRegistry(); +const instantiateWithCode = () => { + throw new Error('mock'); +}; +instantiateWithCode.meta = { args: new Array(6) }; +export const mockApi = { + call: { + contractsApi: { + call: () => { + throw new Error('mock'); + }, + }, + }, + isConnected: true, + registry, + tx: { + contracts: { + instantiateWithCode, + }, + }, +}; diff --git a/.api-contract/build-tsc-esm/base/types.js b/.api-contract/build-tsc-esm/base/types.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/.api-contract/build-tsc-esm/base/types.js @@ -0,0 +1 @@ +export {}; diff --git a/.api-contract/build-tsc-esm/base/util.js b/.api-contract/build-tsc-esm/base/util.js new file mode 100644 index 00000000..551dad16 --- /dev/null +++ b/.api-contract/build-tsc-esm/base/util.js @@ -0,0 +1,33 @@ +import { Bytes } from '@polkadot/types'; +import { bnToBn, compactAddLength, u8aToU8a } from '@polkadot/util'; +import { randomAsU8a } from '@polkadot/util-crypto'; +export const EMPTY_SALT = new Uint8Array(); +export function withMeta(meta, creator) { + creator.meta = meta; + return creator; +} +export function createBluePrintTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); +} +export function createBluePrintWithId(fn) { + return (constructorOrId, options, ...params) => fn(constructorOrId, options, params); +} +export function encodeSalt(salt = randomAsU8a()) { + return salt instanceof Bytes + ? salt + : salt?.length + ? compactAddLength(u8aToU8a(salt)) + : EMPTY_SALT; +} +export function convertWeight(weight) { + const [refTime, proofSize] = isWeightV2(weight) + ? [weight.refTime.toBn(), weight.proofSize.toBn()] + : [bnToBn(weight), undefined]; + return { + v1Weight: refTime, + v2Weight: { proofSize, refTime }, + }; +} +export function isWeightV2(weight) { + return !!weight.proofSize; +} diff --git a/.api-contract/build-tsc-esm/bundle.js b/.api-contract/build-tsc-esm/bundle.js new file mode 100644 index 00000000..d087e9db --- /dev/null +++ b/.api-contract/build-tsc-esm/bundle.js @@ -0,0 +1,4 @@ +export { Abi } from './Abi/index.js'; +export { packageInfo } from './packageInfo.js'; +export * from './promise/index.js'; +export * from './rx/index.js'; diff --git a/.api-contract/build-tsc-esm/index.js b/.api-contract/build-tsc-esm/index.js new file mode 100644 index 00000000..ca3f403b --- /dev/null +++ b/.api-contract/build-tsc-esm/index.js @@ -0,0 +1,2 @@ +import './packageDetect.js'; +export * from './bundle.js'; diff --git a/.api-contract/build-tsc-esm/packageDetect.js b/.api-contract/build-tsc-esm/packageDetect.js new file mode 100644 index 00000000..71d2439c --- /dev/null +++ b/.api-contract/build-tsc-esm/packageDetect.js @@ -0,0 +1,5 @@ +import { packageInfo as apiInfo } from '@polkadot/api/packageInfo'; +import { packageInfo as typesInfo } from '@polkadot/types/packageInfo'; +import { detectPackage } from '@polkadot/util'; +import { packageInfo } from './packageInfo.js'; +detectPackage(packageInfo, null, [apiInfo, typesInfo]); diff --git a/.api-contract/build-tsc-esm/packageInfo.js b/.api-contract/build-tsc-esm/packageInfo.js new file mode 100644 index 00000000..0d90c7dc --- /dev/null +++ b/.api-contract/build-tsc-esm/packageInfo.js @@ -0,0 +1,12 @@ +export const packageInfo = { + name: '@polkadot/api-contract', + path: + import.meta && import.meta.url + ? new URL(import.meta.url).pathname.substring( + 0, + new URL(import.meta.url).pathname.lastIndexOf('/') + 1, + ) + : 'auto', + type: 'esm', + version: '15.8.1', +}; diff --git a/.api-contract/build-tsc-esm/promise/index.js b/.api-contract/build-tsc-esm/promise/index.js new file mode 100644 index 00000000..f938509e --- /dev/null +++ b/.api-contract/build-tsc-esm/promise/index.js @@ -0,0 +1,17 @@ +import { toPromiseMethod } from '@polkadot/api'; +import { Blueprint, Code, Contract } from '../base/index.js'; +export class BlueprintPromise extends Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, toPromiseMethod); + } +} +export class CodePromise extends Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, toPromiseMethod); + } +} +export class ContractPromise extends Contract { + constructor(api, abi, address) { + super(api, abi, address, toPromiseMethod); + } +} diff --git a/.api-contract/build-tsc-esm/promise/types.js b/.api-contract/build-tsc-esm/promise/types.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/.api-contract/build-tsc-esm/promise/types.js @@ -0,0 +1 @@ +export {}; diff --git a/.api-contract/build-tsc-esm/rx/index.js b/.api-contract/build-tsc-esm/rx/index.js new file mode 100644 index 00000000..3ff57ea8 --- /dev/null +++ b/.api-contract/build-tsc-esm/rx/index.js @@ -0,0 +1,17 @@ +import { toRxMethod } from '@polkadot/api'; +import { Blueprint, Code, Contract } from '../base/index.js'; +export class BlueprintRx extends Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, toRxMethod); + } +} +export class CodeRx extends Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, toRxMethod); + } +} +export class ContractRx extends Contract { + constructor(api, abi, address) { + super(api, abi, address, toRxMethod); + } +} diff --git a/.api-contract/build-tsc-esm/rx/types.js b/.api-contract/build-tsc-esm/rx/types.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/.api-contract/build-tsc-esm/rx/types.js @@ -0,0 +1 @@ +export {}; diff --git a/.api-contract/build-tsc-esm/types.js b/.api-contract/build-tsc-esm/types.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/.api-contract/build-tsc-esm/types.js @@ -0,0 +1 @@ +export {}; diff --git a/.api-contract/build-tsc-esm/util.js b/.api-contract/build-tsc-esm/util.js new file mode 100644 index 00000000..0faa5cff --- /dev/null +++ b/.api-contract/build-tsc-esm/util.js @@ -0,0 +1,9 @@ +export function applyOnEvent(result, types, fn) { + if (result.isInBlock || result.isFinalized) { + const records = result.filterRecords('contracts', types); + if (records.length) { + return fn(records); + } + } + return undefined; +} diff --git a/.api-contract/build-tsc/Abi/index.d.ts b/.api-contract/build-tsc/Abi/index.d.ts new file mode 100644 index 00000000..814995b0 --- /dev/null +++ b/.api-contract/build-tsc/Abi/index.d.ts @@ -0,0 +1,42 @@ +import type { + ChainProperties, + ContractMetadataV4, + ContractMetadataV5, + ContractProjectInfo, + EventRecord, +} from '@polkadot/types/interfaces'; +import type { Codec, Registry, TypeDef } from '@polkadot/types/types'; +import type { + AbiConstructor, + AbiEvent, + AbiMessage, + DecodedEvent, + DecodedMessage, +} from '../types.js'; +export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5; +export declare class Abi { + #private; + readonly events: AbiEvent[]; + readonly constructors: AbiConstructor[]; + readonly info: ContractProjectInfo; + readonly json: Record; + readonly messages: AbiMessage[]; + readonly metadata: ContractMetadataSupported; + readonly registry: Registry; + readonly environment: Map; + constructor(abiJson: Record | string, chainProperties?: ChainProperties); + /** + * Warning: Unstable API, bound to change + */ + decodeEvent(record: EventRecord): DecodedEvent; + /** + * Warning: Unstable API, bound to change + */ + decodeConstructor(data: Uint8Array): DecodedMessage; + /** + * Warning: Unstable API, bound to change + */ + decodeMessage(data: Uint8Array): DecodedMessage; + findConstructor(constructorOrId: AbiConstructor | string | number): AbiConstructor; + findMessage(messageOrId: AbiMessage | string | number): AbiMessage; +} diff --git a/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts b/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts new file mode 100644 index 00000000..c3c505b2 --- /dev/null +++ b/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts @@ -0,0 +1,32 @@ +import type { ContractMetadataV4, ContractMetadataV5 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +import type { ContractMetadataSupported } from './index.js'; +export declare const enumVersions: readonly ['V5', 'V4', 'V3', 'V2', 'V1']; +type Versions = (typeof enumVersions)[number] | 'V0'; +type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; +export declare function v5ToLatestCompatible( + _registry: Registry, + v5: ContractMetadataV5, +): ContractMetadataV5; +export declare function v4ToLatestCompatible( + _registry: Registry, + v4: ContractMetadataV4, +): ContractMetadataV4; +export declare const v3ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV3, +) => ContractMetadataSupported; +export declare const v2ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV2, +) => ContractMetadataSupported; +export declare const v1ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV1, +) => ContractMetadataSupported; +export declare const v0ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV0, +) => ContractMetadataSupported; +export declare const convertVersions: [Versions, Converter][]; +export {}; diff --git a/.api-contract/build-tsc/Abi/toV1.d.ts b/.api-contract/build-tsc/Abi/toV1.d.ts new file mode 100644 index 00000000..dc41ae43 --- /dev/null +++ b/.api-contract/build-tsc/Abi/toV1.d.ts @@ -0,0 +1,3 @@ +import type { ContractMetadataV0, ContractMetadataV1 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +export declare function v0ToV1(registry: Registry, v0: ContractMetadataV0): ContractMetadataV1; diff --git a/.api-contract/build-tsc/Abi/toV2.d.ts b/.api-contract/build-tsc/Abi/toV2.d.ts new file mode 100644 index 00000000..3de0aa9b --- /dev/null +++ b/.api-contract/build-tsc/Abi/toV2.d.ts @@ -0,0 +1,3 @@ +import type { ContractMetadataV1, ContractMetadataV2 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +export declare function v1ToV2(registry: Registry, v1: ContractMetadataV1): ContractMetadataV2; diff --git a/.api-contract/build-tsc/Abi/toV3.d.ts b/.api-contract/build-tsc/Abi/toV3.d.ts new file mode 100644 index 00000000..10cc0d67 --- /dev/null +++ b/.api-contract/build-tsc/Abi/toV3.d.ts @@ -0,0 +1,3 @@ +import type { ContractMetadataV2, ContractMetadataV3 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +export declare function v2ToV3(registry: Registry, v2: ContractMetadataV2): ContractMetadataV3; diff --git a/.api-contract/build-tsc/Abi/toV4.d.ts b/.api-contract/build-tsc/Abi/toV4.d.ts new file mode 100644 index 00000000..c532e46e --- /dev/null +++ b/.api-contract/build-tsc/Abi/toV4.d.ts @@ -0,0 +1,3 @@ +import type { ContractMetadataV3, ContractMetadataV4 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +export declare function v3ToV4(registry: Registry, v3: ContractMetadataV3): ContractMetadataV4; diff --git a/.api-contract/build-tsc/augment.d.ts b/.api-contract/build-tsc/augment.d.ts new file mode 100644 index 00000000..40e6ced0 --- /dev/null +++ b/.api-contract/build-tsc/augment.d.ts @@ -0,0 +1 @@ +import '@polkadot/api-augment'; diff --git a/.api-contract/build-tsc/base/Base.d.ts b/.api-contract/build-tsc/base/Base.d.ts new file mode 100644 index 00000000..0c05a333 --- /dev/null +++ b/.api-contract/build-tsc/base/Base.d.ts @@ -0,0 +1,16 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Registry } from '@polkadot/types/types'; +import { Abi } from '../Abi/index.js'; +export declare abstract class Base { + readonly abi: Abi; + readonly api: ApiBase; + protected readonly _decorateMethod: DecorateMethod; + protected readonly _isWeightV1: boolean; + constructor( + api: ApiBase, + abi: string | Record | Abi, + decorateMethod: DecorateMethod, + ); + get registry(): Registry; +} diff --git a/.api-contract/build-tsc/base/Blueprint.d.ts b/.api-contract/build-tsc/base/Blueprint.d.ts new file mode 100644 index 00000000..ce3a70cd --- /dev/null +++ b/.api-contract/build-tsc/base/Blueprint.d.ts @@ -0,0 +1,38 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Hash } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { Base } from './Base.js'; +import { Contract } from './Contract.js'; +export type BlueprintConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, +) => Blueprint; +export declare class BlueprintSubmittableResult< + ApiType extends ApiTypes, +> extends SubmittableResult { + readonly contract?: Contract | undefined; + constructor(result: ISubmittableResult, contract?: Contract); +} +export declare class Blueprint extends Base { + #private; + /** + * @description The on-chain code hash for this blueprint + */ + readonly codeHash: Hash; + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendBlueprint( + type: ApiType, + decorateMethod: DecorateMethod, +): BlueprintConstructor; diff --git a/.api-contract/build-tsc/base/Code.d.ts b/.api-contract/build-tsc/base/Code.d.ts new file mode 100644 index 00000000..ab612cef --- /dev/null +++ b/.api-contract/build-tsc/base/Code.d.ts @@ -0,0 +1,38 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { Base } from './Base.js'; +import { Blueprint } from './Blueprint.js'; +import { Contract } from './Contract.js'; +export type CodeConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, +) => Code; +export declare class CodeSubmittableResult extends SubmittableResult { + readonly blueprint?: Blueprint | undefined; + readonly contract?: Contract | undefined; + constructor( + result: ISubmittableResult, + blueprint?: Blueprint | undefined, + contract?: Contract | undefined, + ); +} +export declare class Code extends Base { + #private; + readonly code: Uint8Array; + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendCode( + type: ApiType, + decorateMethod: DecorateMethod, +): CodeConstructor; diff --git a/.api-contract/build-tsc/base/Contract.d.ts b/.api-contract/build-tsc/base/Contract.d.ts new file mode 100644 index 00000000..e60d7540 --- /dev/null +++ b/.api-contract/build-tsc/base/Contract.d.ts @@ -0,0 +1,37 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { DecodedEvent } from '../types.js'; +import type { MapMessageQuery, MapMessageTx } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { Base } from './Base.js'; +export type ContractConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, +) => Contract; +export declare class ContractSubmittableResult extends SubmittableResult { + readonly contractEvents?: DecodedEvent[] | undefined; + constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); +} +export declare class Contract extends Base { + #private; + /** + * @description The on-chain address for this contract + */ + readonly address: AccountId20; + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId20, + decorateMethod: DecorateMethod, + ); + get query(): MapMessageQuery; + get tx(): MapMessageTx; +} +export declare function extendContract( + type: ApiType, + decorateMethod: DecorateMethod, +): ContractConstructor; diff --git a/.api-contract/build-tsc/base/index.d.ts b/.api-contract/build-tsc/base/index.d.ts new file mode 100644 index 00000000..905b4515 --- /dev/null +++ b/.api-contract/build-tsc/base/index.d.ts @@ -0,0 +1,3 @@ +export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { Contract, extendContract } from './Contract.js'; diff --git a/.api-contract/build-tsc/base/mock.d.ts b/.api-contract/build-tsc/base/mock.d.ts new file mode 100644 index 00000000..51f21099 --- /dev/null +++ b/.api-contract/build-tsc/base/mock.d.ts @@ -0,0 +1,2 @@ +import type { ApiBase } from '@polkadot/api/base'; +export declare const mockApi: ApiBase<'promise'>; diff --git a/.api-contract/build-tsc/base/types.d.ts b/.api-contract/build-tsc/base/types.d.ts new file mode 100644 index 00000000..1841c9b7 --- /dev/null +++ b/.api-contract/build-tsc/base/types.d.ts @@ -0,0 +1,40 @@ +import type { Observable } from 'rxjs'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes, ObsInnerType } from '@polkadot/api/types'; +import type { AccountId } from '@polkadot/types/interfaces'; +import type { + AbiMessage, + BlueprintOptions, + ContractCallOutcome, + ContractOptions, +} from '../types.js'; +export interface MessageMeta { + readonly meta: AbiMessage; +} +export interface BlueprintDeploy extends MessageMeta { + (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; +} +export interface ContractQuery extends MessageMeta { + ( + origin: AccountId | string | Uint8Array, + options: ContractOptions, + ...params: unknown[] + ): ContractCallResult; +} +export interface ContractTx extends MessageMeta { + (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; +} +export type ContractGeneric = ( + messageOrId: AbiMessage | string | number, + options: O, + ...params: unknown[] +) => T; +export type ContractCallResult = ApiType extends 'rxjs' + ? Observable + : Promise>>; +export interface ContractCallSend { + send(account: string | AccountId | Uint8Array): ContractCallResult; +} +export type MapConstructorExec = Record>; +export type MapMessageTx = Record>; +export type MapMessageQuery = Record>; diff --git a/.api-contract/build-tsc/base/util.d.ts b/.api-contract/build-tsc/base/util.d.ts new file mode 100644 index 00000000..27d26904 --- /dev/null +++ b/.api-contract/build-tsc/base/util.d.ts @@ -0,0 +1,31 @@ +import type { SubmittableResult } from '@polkadot/api'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes } from '@polkadot/api/types'; +import type { WeightV1, WeightV2 } from '@polkadot/types/interfaces'; +import type { BN } from '@polkadot/util'; +import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.js'; +import type { BlueprintDeploy, ContractGeneric } from './types.js'; +export declare const EMPTY_SALT: Uint8Array; +export declare function withMeta< + T extends { + meta: AbiMessage; + }, +>(meta: AbiMessage, creator: Omit): T; +export declare function createBluePrintTx( + meta: AbiMessage, + fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic, +): BlueprintDeploy; +export declare function createBluePrintWithId( + fn: ( + constructorOrId: AbiConstructor | string | number, + options: BlueprintOptions, + params: unknown[], + ) => T, +): ContractGeneric; +export declare function encodeSalt(salt?: Uint8Array | string | null): Uint8Array; +export declare function convertWeight( + weight: WeightV1 | WeightV2 | bigint | string | number | BN, +): WeightAll; +export declare function isWeightV2( + weight: WeightV1 | WeightV2 | bigint | string | number | BN, +): weight is WeightV2; diff --git a/.api-contract/build-tsc/bundle.d.ts b/.api-contract/build-tsc/bundle.d.ts new file mode 100644 index 00000000..d087e9db --- /dev/null +++ b/.api-contract/build-tsc/bundle.d.ts @@ -0,0 +1,4 @@ +export { Abi } from './Abi/index.js'; +export { packageInfo } from './packageInfo.js'; +export * from './promise/index.js'; +export * from './rx/index.js'; diff --git a/.api-contract/build-tsc/index.d.ts b/.api-contract/build-tsc/index.d.ts new file mode 100644 index 00000000..ca3f403b --- /dev/null +++ b/.api-contract/build-tsc/index.d.ts @@ -0,0 +1,2 @@ +import './packageDetect.js'; +export * from './bundle.js'; diff --git a/.api-contract/build-tsc/packageDetect.d.ts b/.api-contract/build-tsc/packageDetect.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/.api-contract/build-tsc/packageDetect.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/.api-contract/build-tsc/packageInfo.d.ts b/.api-contract/build-tsc/packageInfo.d.ts new file mode 100644 index 00000000..1b6c408b --- /dev/null +++ b/.api-contract/build-tsc/packageInfo.d.ts @@ -0,0 +1,6 @@ +export declare const packageInfo: { + name: string; + path: string; + type: string; + version: string; +}; diff --git a/.api-contract/build-tsc/promise/index.d.ts b/.api-contract/build-tsc/promise/index.d.ts new file mode 100644 index 00000000..43b9620a --- /dev/null +++ b/.api-contract/build-tsc/promise/index.d.ts @@ -0,0 +1,25 @@ +import type { ApiPromise } from '@polkadot/api'; +import type { AccountId20, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import { Blueprint, Code, Contract } from '../base/index.js'; +export declare class BlueprintPromise extends Blueprint<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ); +} +export declare class CodePromise extends Code<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractPromise extends Contract<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId20, + ); +} diff --git a/.api-contract/build-tsc/promise/types.d.ts b/.api-contract/build-tsc/promise/types.d.ts new file mode 100644 index 00000000..7784ef2c --- /dev/null +++ b/.api-contract/build-tsc/promise/types.d.ts @@ -0,0 +1,6 @@ +import type { + BlueprintSubmittableResult as BaseBlueprintSubmittableResult, + CodeSubmittableResult as BaseCodeSubmittableResult, +} from '../base/index.js'; +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build-tsc/rx/index.d.ts b/.api-contract/build-tsc/rx/index.d.ts new file mode 100644 index 00000000..1357b476 --- /dev/null +++ b/.api-contract/build-tsc/rx/index.d.ts @@ -0,0 +1,17 @@ +import type { ApiRx } from '@polkadot/api'; +import type { AccountId, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import { Blueprint, Code, Contract } from '../base/index.js'; +export declare class BlueprintRx extends Blueprint<'rxjs'> { + constructor(api: ApiRx, abi: string | Record | Abi, codeHash: string | Hash); +} +export declare class CodeRx extends Code<'rxjs'> { + constructor( + api: ApiRx, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractRx extends Contract<'rxjs'> { + constructor(api: ApiRx, abi: string | Record | Abi, address: string | AccountId); +} diff --git a/.api-contract/build-tsc/rx/types.d.ts b/.api-contract/build-tsc/rx/types.d.ts new file mode 100644 index 00000000..7784ef2c --- /dev/null +++ b/.api-contract/build-tsc/rx/types.d.ts @@ -0,0 +1,6 @@ +import type { + BlueprintSubmittableResult as BaseBlueprintSubmittableResult, + CodeSubmittableResult as BaseCodeSubmittableResult, +} from '../base/index.js'; +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build-tsc/types.d.ts b/.api-contract/build-tsc/types.d.ts new file mode 100644 index 00000000..b535e85a --- /dev/null +++ b/.api-contract/build-tsc/types.d.ts @@ -0,0 +1,85 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes } from '@polkadot/api/types'; +import type { Text } from '@polkadot/types'; +import type { + ContractExecResultResult, + ContractSelector, + StorageDeposit, + Weight, + WeightV2, +} from '@polkadot/types/interfaces'; +import type { Codec, TypeDef } from '@polkadot/types/types'; +import type { BN } from '@polkadot/util'; +import type { HexString } from '@polkadot/util/types'; +import type { Abi } from './index.js'; +export interface ContractBase { + readonly abi: Abi; + readonly api: ApiBase; + getMessage: (name: string) => AbiMessage; + messages: AbiMessage[]; +} +export interface AbiParam { + name: string; + type: TypeDef; +} +export type AbiMessageParam = AbiParam; +export interface AbiEventParam extends AbiParam { + indexed: boolean; +} +export interface AbiEvent { + args: AbiEventParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedEvent; + identifier: string; + index: number; + signatureTopic?: HexString | null; +} +export interface AbiMessage { + args: AbiMessageParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedMessage; + identifier: string; + index: number; + isConstructor?: boolean; + isDefault?: boolean; + isMutating?: boolean; + isPayable?: boolean; + method: string; + path: string[]; + returnType?: TypeDef | null; + selector: ContractSelector; + toU8a: (params: unknown[]) => Uint8Array; +} +export type AbiConstructor = AbiMessage; +export type InterfaceContractCalls = Record; +export interface ContractCallOutcome { + debugMessage: Text; + gasConsumed: Weight; + gasRequired: Weight; + output: Codec | null; + result: ContractExecResultResult; + storageDeposit: StorageDeposit; +} +export interface DecodedEvent { + args: Codec[]; + event: AbiEvent; +} +export interface DecodedMessage { + args: Codec[]; + message: AbiMessage; +} +export interface ContractOptions { + gasLimit?: bigint | string | number | BN | WeightV2; + storageDepositLimit?: bigint | string | number | BN | null; + value?: bigint | BN | string | number; +} +export interface BlueprintOptions extends ContractOptions { + salt?: Uint8Array | string | null; +} +export interface WeightAll { + v1Weight: BN; + v2Weight: { + refTime: BN; + proofSize?: BN | undefined; + }; +} diff --git a/.api-contract/build-tsc/util.d.ts b/.api-contract/build-tsc/util.d.ts new file mode 100644 index 00000000..60682eff --- /dev/null +++ b/.api-contract/build-tsc/util.d.ts @@ -0,0 +1,9 @@ +import type { SubmittableResult } from '@polkadot/api'; +import type { EventRecord } from '@polkadot/types/interfaces'; +type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; +export declare function applyOnEvent( + result: SubmittableResult, + types: ContractEvents[], + fn: (records: EventRecord[]) => T, +): T | undefined; +export {}; diff --git a/.api-contract/build/Abi/index.d.ts b/.api-contract/build/Abi/index.d.ts new file mode 100644 index 00000000..814995b0 --- /dev/null +++ b/.api-contract/build/Abi/index.d.ts @@ -0,0 +1,42 @@ +import type { + ChainProperties, + ContractMetadataV4, + ContractMetadataV5, + ContractProjectInfo, + EventRecord, +} from '@polkadot/types/interfaces'; +import type { Codec, Registry, TypeDef } from '@polkadot/types/types'; +import type { + AbiConstructor, + AbiEvent, + AbiMessage, + DecodedEvent, + DecodedMessage, +} from '../types.js'; +export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5; +export declare class Abi { + #private; + readonly events: AbiEvent[]; + readonly constructors: AbiConstructor[]; + readonly info: ContractProjectInfo; + readonly json: Record; + readonly messages: AbiMessage[]; + readonly metadata: ContractMetadataSupported; + readonly registry: Registry; + readonly environment: Map; + constructor(abiJson: Record | string, chainProperties?: ChainProperties); + /** + * Warning: Unstable API, bound to change + */ + decodeEvent(record: EventRecord): DecodedEvent; + /** + * Warning: Unstable API, bound to change + */ + decodeConstructor(data: Uint8Array): DecodedMessage; + /** + * Warning: Unstable API, bound to change + */ + decodeMessage(data: Uint8Array): DecodedMessage; + findConstructor(constructorOrId: AbiConstructor | string | number): AbiConstructor; + findMessage(messageOrId: AbiMessage | string | number): AbiMessage; +} diff --git a/.api-contract/build/Abi/index.js b/.api-contract/build/Abi/index.js new file mode 100644 index 00000000..b7b819be --- /dev/null +++ b/.api-contract/build/Abi/index.js @@ -0,0 +1,351 @@ +import { Option, TypeRegistry } from '@polkadot/types'; +import { TypeDefInfo } from '@polkadot/types-create'; +import { + assertReturn, + compactAddLength, + compactStripLength, + isBn, + isNumber, + isObject, + isString, + isUndefined, + logger, + stringCamelCase, + stringify, + u8aConcat, + u8aToHex, +} from '@polkadot/util'; +import { convertVersions, enumVersions } from './toLatestCompatible.js'; +const l = logger('Abi'); +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; +function findMessage(list, messageOrId) { + const message = isNumber(messageOrId) + ? list[messageOrId] + : isString(messageOrId) + ? list.find(({ identifier }) => + [identifier, stringCamelCase(identifier)].includes(messageOrId.toString()), + ) + : messageOrId; + return assertReturn( + message, + () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`, + ); +} +function getMetadata(registry, json) { + // this is for V1, V2, V3 + const vx = enumVersions.find(v => isObject(json[v])); + // this was added in V4 + const jsonVersion = json.version; + if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { + throw new Error(`Unable to handle version ${jsonVersion}`); + } + const metadata = registry.createType( + 'ContractMetadata', + vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, + ); + const converter = convertVersions.find(([v]) => metadata[`is${v}`]); + if (!converter) { + throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); + } + const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + return upgradedMetadata; +} +function parseJson(json, chainProperties) { + const registry = new TypeRegistry(); + const info = registry.createType('ContractProjectInfo', json); + const metadata = getMetadata(registry, json); + const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); + // attach the lookup to the registry - now the types are known + registry.setLookup(lookup); + if (chainProperties) { + registry.setChainProperties(chainProperties); + } + // warm-up the actual type, pre-use + lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + return [json, registry, metadata, info]; +} +/** + * @internal + * Determines if the given input value is a ContractTypeSpec + */ +function isTypeSpec(value) { + return ( + !!value && value instanceof Map && !isUndefined(value.type) && !isUndefined(value.displayName) + ); +} +/** + * @internal + * Determines if the given input value is an Option + */ +function isOption(value) { + return !!value && value instanceof Option; +} +export class Abi { + events; + constructors; + info; + json; + messages; + metadata; + registry; + environment = new Map(); + constructor(abiJson, chainProperties) { + [this.json, this.registry, this.metadata, this.info] = parseJson( + isString(abiJson) ? JSON.parse(abiJson) : abiJson, + chainProperties, + ); + this.constructors = this.metadata.spec.constructors.map((spec, index) => + this.__internal__createMessage(spec, index, { + isConstructor: true, + isDefault: spec.default.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); + this.messages = this.metadata.spec.messages.map((spec, index) => + this.__internal__createMessage(spec, index, { + isDefault: spec.default.isTrue, + isMutating: spec.mutates.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + // NOTE See the rationale for having Option<...> values in the actual + // ContractEnvironmentV4 structure definition in interfaces/contractsAbi + // (Due to conversions, the fields may not exist) + for (const [key, opt] of this.metadata.spec.environment.entries()) { + if (isOption(opt)) { + if (opt.isSome) { + const value = opt.unwrap(); + if (isBn(value)) { + this.environment.set(key, value); + } else if (isTypeSpec(value)) { + this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); + } else { + throw new Error( + `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, + ); + } + } + } else { + throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); + } + } + } + /** + * Warning: Unstable API, bound to change + */ + decodeEvent(record) { + switch (this.metadata.version.toString()) { + // earlier version are hoisted to v4 + case '4': + return this.__internal__decodeEventV4(record); + // Latest + default: + return this.__internal__decodeEventV5(record); + } + } + __internal__decodeEventV5 = record => { + // Find event by first topic, which potentially is the signature_topic + const signatureTopic = record.topics[0]; + const data = record.event.data[1]; + if (signatureTopic) { + const event = this.events.find( + e => + e.signatureTopic !== undefined && + e.signatureTopic !== null && + e.signatureTopic === signatureTopic.toHex(), + ); + // Early return if event found by signature topic + if (event) { + return event.fromU8a(data); + } + } + // If no event returned yet, it might be anonymous + const amountOfTopics = record.topics.length; + const potentialEvents = this.events.filter(e => { + // event can't have a signature topic + if (e.signatureTopic !== null && e.signatureTopic !== undefined) { + return false; + } + // event should have same amount of indexed fields as emitted topics + const amountIndexed = e.args.filter(a => a.indexed).length; + if (amountIndexed !== amountOfTopics) { + return false; + } + // If all conditions met, it's a potential event + return true; + }); + if (potentialEvents.length === 1) { + return potentialEvents[0].fromU8a(data); + } + throw new Error('Unable to determine event'); + }; + __internal__decodeEventV4 = record => { + const data = record.event.data[1]; + const index = data[0]; + const event = this.events[index]; + if (!event) { + throw new Error(`Unable to find event with index ${index}`); + } + return event.fromU8a(data.subarray(1)); + }; + /** + * Warning: Unstable API, bound to change + */ + decodeConstructor(data) { + return this.__internal__decodeMessage('message', this.constructors, data); + } + /** + * Warning: Unstable API, bound to change + */ + decodeMessage(data) { + return this.__internal__decodeMessage('message', this.messages, data); + } + findConstructor(constructorOrId) { + return findMessage(this.constructors, constructorOrId); + } + findMessage(messageOrId) { + return findMessage(this.messages, messageOrId); + } + __internal__createArgs = (args, spec) => { + return args.map(({ label, type }, index) => { + try { + if (!isObject(type)) { + throw new Error('Invalid type definition found'); + } + const displayName = type.displayName.length + ? type.displayName[type.displayName.length - 1].toString() + : undefined; + const camelName = stringCamelCase(label); + if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { + return { + name: camelName, + type: { + info: TypeDefInfo.Plain, + type: displayName, + }, + }; + } + const typeDef = this.registry.lookup.getTypeDef(type.type); + return { + name: camelName, + type: + displayName && !typeDef.type.startsWith(displayName) + ? { displayName, ...typeDef } + : typeDef, + }; + } catch (error) { + l.error(`Error expanding argument ${index} in ${stringify(spec)}`); + throw error; + } + }); + }; + __internal__createMessageParams = (args, spec) => { + return this.__internal__createArgs(args, spec); + }; + __internal__createEventParams = (args, spec) => { + const params = this.__internal__createArgs(args, spec); + return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); + }; + __internal__createEvent = index => { + // TODO TypeScript would narrow this type to the correct version, + // but version is `Text` so I need to call `toString()` here, + // which breaks the type inference. + switch (this.metadata.version.toString()) { + case '4': + return this.__internal__createEventV4(this.metadata.spec.events[index], index); + default: + return this.__internal__createEventV5(this.metadata.spec.events[index], index); + } + }; + __internal__createEventV5 = (spec, index) => { + const args = this.__internal__createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + event, + }), + identifier: [spec.module_path, spec.label].join('::'), + index, + signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, + }; + return event; + }; + __internal__createEventV4 = (spec, index) => { + const args = this.__internal__createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + event, + }), + identifier: spec.label.toString(), + index, + }; + return event; + }; + __internal__createMessage = (spec, index, add = {}) => { + const args = this.__internal__createMessageParams(spec.args, spec); + const identifier = spec.label.toString(); + const message = { + ...add, + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + message, + }), + identifier, + index, + isDefault: spec.default.isTrue, + method: stringCamelCase(identifier), + path: identifier.split('::').map(s => stringCamelCase(s)), + selector: spec.selector, + toU8a: params => this.__internal__encodeMessageArgs(spec, args, params), + }; + return message; + }; + __internal__decodeArgs = (args, data) => { + // for decoding we expect the input to be just the arg data, no selectors + // no length added (this allows use with events as well) + let offset = 0; + return args.map(({ type: { lookupName, type } }) => { + const value = this.registry.createType(lookupName || type, data.subarray(offset)); + offset += value.encodedLength; + return value; + }); + }; + __internal__decodeMessage = (type, list, data) => { + const [, trimmed] = compactStripLength(data); + const selector = trimmed.subarray(0, 4); + const message = list.find(m => m.selector.eq(selector)); + if (!message) { + throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`); + } + return message.fromU8a(trimmed.subarray(4)); + }; + __internal__encodeMessageArgs = ({ label, selector }, args, data) => { + if (data.length !== args.length) { + throw new Error( + `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, + ); + } + return compactAddLength( + u8aConcat( + this.registry.createType('ContractSelector', selector).toU8a(), + ...args.map(({ type: { lookupName, type } }, index) => + this.registry.createType(lookupName || type, data[index]).toU8a(), + ), + ), + ); + }; +} diff --git a/.api-contract/build/Abi/toLatestCompatible.d.ts b/.api-contract/build/Abi/toLatestCompatible.d.ts new file mode 100644 index 00000000..c3c505b2 --- /dev/null +++ b/.api-contract/build/Abi/toLatestCompatible.d.ts @@ -0,0 +1,32 @@ +import type { ContractMetadataV4, ContractMetadataV5 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +import type { ContractMetadataSupported } from './index.js'; +export declare const enumVersions: readonly ['V5', 'V4', 'V3', 'V2', 'V1']; +type Versions = (typeof enumVersions)[number] | 'V0'; +type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; +export declare function v5ToLatestCompatible( + _registry: Registry, + v5: ContractMetadataV5, +): ContractMetadataV5; +export declare function v4ToLatestCompatible( + _registry: Registry, + v4: ContractMetadataV4, +): ContractMetadataV4; +export declare const v3ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV3, +) => ContractMetadataSupported; +export declare const v2ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV2, +) => ContractMetadataSupported; +export declare const v1ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV1, +) => ContractMetadataSupported; +export declare const v0ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV0, +) => ContractMetadataSupported; +export declare const convertVersions: [Versions, Converter][]; +export {}; diff --git a/.api-contract/build/Abi/toLatestCompatible.js b/.api-contract/build/Abi/toLatestCompatible.js new file mode 100644 index 00000000..4cec9dab --- /dev/null +++ b/.api-contract/build/Abi/toLatestCompatible.js @@ -0,0 +1,26 @@ +import { v0ToV1 } from './toV1.js'; +import { v1ToV2 } from './toV2.js'; +import { v2ToV3 } from './toV3.js'; +import { v3ToV4 } from './toV4.js'; +export const enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1']; +function createConverter(next, step) { + return (registry, input) => next(registry, step(registry, input)); +} +export function v5ToLatestCompatible(_registry, v5) { + return v5; +} +export function v4ToLatestCompatible(_registry, v4) { + return v4; +} +export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4); +export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3); +export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); +export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); +export const convertVersions = [ + ['V5', v5ToLatestCompatible], + ['V4', v4ToLatestCompatible], + ['V3', v3ToLatestCompatible], + ['V2', v2ToLatestCompatible], + ['V1', v1ToLatestCompatible], + ['V0', v0ToLatestCompatible], +]; diff --git a/.api-contract/build/Abi/toV1.d.ts b/.api-contract/build/Abi/toV1.d.ts new file mode 100644 index 00000000..dc41ae43 --- /dev/null +++ b/.api-contract/build/Abi/toV1.d.ts @@ -0,0 +1,3 @@ +import type { ContractMetadataV0, ContractMetadataV1 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +export declare function v0ToV1(registry: Registry, v0: ContractMetadataV0): ContractMetadataV1; diff --git a/.api-contract/build/Abi/toV1.js b/.api-contract/build/Abi/toV1.js new file mode 100644 index 00000000..06c9c5fe --- /dev/null +++ b/.api-contract/build/Abi/toV1.js @@ -0,0 +1,24 @@ +import { convertSiV0toV1 } from '@polkadot/types'; +import { objectSpread } from '@polkadot/util'; +function v0ToV1Names(all) { + return all.map(e => + objectSpread({}, e, { + name: Array.isArray(e.name) ? e.name : [e.name], + }), + ); +} +export function v0ToV1(registry, v0) { + if (!v0.metadataVersion.length) { + throw new Error('Invalid format for V0 (detected) contract metadata'); + } + return registry.createType( + 'ContractMetadataV1', + objectSpread({}, v0, { + spec: objectSpread({}, v0.spec, { + constructors: v0ToV1Names(v0.spec.constructors), + messages: v0ToV1Names(v0.spec.messages), + }), + types: convertSiV0toV1(registry, v0.types), + }), + ); +} diff --git a/.api-contract/build/Abi/toV2.d.ts b/.api-contract/build/Abi/toV2.d.ts new file mode 100644 index 00000000..3de0aa9b --- /dev/null +++ b/.api-contract/build/Abi/toV2.d.ts @@ -0,0 +1,3 @@ +import type { ContractMetadataV1, ContractMetadataV2 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +export declare function v1ToV2(registry: Registry, v1: ContractMetadataV1): ContractMetadataV2; diff --git a/.api-contract/build/Abi/toV2.js b/.api-contract/build/Abi/toV2.js new file mode 100644 index 00000000..9214a3bf --- /dev/null +++ b/.api-contract/build/Abi/toV2.js @@ -0,0 +1,33 @@ +import { objectSpread } from '@polkadot/util'; +const ARG_TYPES = { + ContractConstructorSpec: 'ContractMessageParamSpecV2', + ContractEventSpec: 'ContractEventParamSpecV2', + ContractMessageSpec: 'ContractMessageParamSpecV2', +}; +function v1ToV2Label(entry) { + return objectSpread({}, entry, { + label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, + }); +} +function v1ToV2Labels(registry, outType, all) { + return all.map(e => + registry.createType( + `${outType}V2`, + objectSpread(v1ToV2Label(e), { + args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), + }), + ), + ); +} +export function v1ToV2(registry, v1) { + return registry.createType( + 'ContractMetadataV2', + objectSpread({}, v1, { + spec: objectSpread({}, v1.spec, { + constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), + events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), + messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), + }), + }), + ); +} diff --git a/.api-contract/build/Abi/toV3.d.ts b/.api-contract/build/Abi/toV3.d.ts new file mode 100644 index 00000000..10cc0d67 --- /dev/null +++ b/.api-contract/build/Abi/toV3.d.ts @@ -0,0 +1,3 @@ +import type { ContractMetadataV2, ContractMetadataV3 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +export declare function v2ToV3(registry: Registry, v2: ContractMetadataV2): ContractMetadataV3; diff --git a/.api-contract/build/Abi/toV3.js b/.api-contract/build/Abi/toV3.js new file mode 100644 index 00000000..212c2297 --- /dev/null +++ b/.api-contract/build/Abi/toV3.js @@ -0,0 +1,14 @@ +import { objectSpread } from '@polkadot/util'; +export function v2ToV3(registry, v2) { + return registry.createType( + 'ContractMetadataV3', + objectSpread({}, v2, { + spec: objectSpread({}, v2.spec, { + constructors: v2.spec.constructors.map(c => + // V3 introduces the payable flag on constructors, for + registry.createType('ContractConstructorSpecV4', objectSpread({}, c)), + ), + messages: v3.spec.messages.map(m => + registry.createType('ContractMessageSpecV3', objectSpread({}, m)), + ), + }), + version: registry.createType('Text', '4'), + }), + ); +} diff --git a/.api-contract/build/LICENSE b/.api-contract/build/LICENSE new file mode 100644 index 00000000..0d381b2e --- /dev/null +++ b/.api-contract/build/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/.api-contract/build/README.md b/.api-contract/build/README.md new file mode 100644 index 00000000..f50beb5f --- /dev/null +++ b/.api-contract/build/README.md @@ -0,0 +1,3 @@ +# @polkadot/api-contract + +Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-contract/build/augment.d.ts b/.api-contract/build/augment.d.ts new file mode 100644 index 00000000..40e6ced0 --- /dev/null +++ b/.api-contract/build/augment.d.ts @@ -0,0 +1 @@ +import '@polkadot/api-augment'; diff --git a/.api-contract/build/augment.js b/.api-contract/build/augment.js new file mode 100644 index 00000000..40e6ced0 --- /dev/null +++ b/.api-contract/build/augment.js @@ -0,0 +1 @@ +import '@polkadot/api-augment'; diff --git a/.api-contract/build/base/Base.d.ts b/.api-contract/build/base/Base.d.ts new file mode 100644 index 00000000..0c05a333 --- /dev/null +++ b/.api-contract/build/base/Base.d.ts @@ -0,0 +1,16 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Registry } from '@polkadot/types/types'; +import { Abi } from '../Abi/index.js'; +export declare abstract class Base { + readonly abi: Abi; + readonly api: ApiBase; + protected readonly _decorateMethod: DecorateMethod; + protected readonly _isWeightV1: boolean; + constructor( + api: ApiBase, + abi: string | Record | Abi, + decorateMethod: DecorateMethod, + ); + get registry(): Registry; +} diff --git a/.api-contract/build/base/Base.js b/.api-contract/build/base/Base.js new file mode 100644 index 00000000..48f9863b --- /dev/null +++ b/.api-contract/build/base/Base.js @@ -0,0 +1,34 @@ +import { isFunction } from '@polkadot/util'; +import { Abi } from '../Abi/index.js'; +export class Base { + abi; + api; + _decorateMethod; + _isWeightV1; + constructor(api, abi, decorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.revive || + !isFunction(api.tx.revive.instantiateWithCode) || + api.tx.revive.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.reviveApi || !isFunction(api.call.reviveApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', + ); + } + this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + get registry() { + return this.api.registry; + } +} diff --git a/.api-contract/build/base/Blueprint.d.ts b/.api-contract/build/base/Blueprint.d.ts new file mode 100644 index 00000000..ce3a70cd --- /dev/null +++ b/.api-contract/build/base/Blueprint.d.ts @@ -0,0 +1,38 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Hash } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { Base } from './Base.js'; +import { Contract } from './Contract.js'; +export type BlueprintConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, +) => Blueprint; +export declare class BlueprintSubmittableResult< + ApiType extends ApiTypes, +> extends SubmittableResult { + readonly contract?: Contract | undefined; + constructor(result: ISubmittableResult, contract?: Contract); +} +export declare class Blueprint extends Base { + #private; + /** + * @description The on-chain code hash for this blueprint + */ + readonly codeHash: Hash; + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendBlueprint( + type: ApiType, + decorateMethod: DecorateMethod, +): BlueprintConstructor; diff --git a/.api-contract/build/base/Blueprint.js b/.api-contract/build/base/Blueprint.js new file mode 100644 index 00000000..f0f4f8c3 --- /dev/null +++ b/.api-contract/build/base/Blueprint.js @@ -0,0 +1,75 @@ +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, isUndefined } from '@polkadot/util'; +import { Base } from './Base.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; +export class BlueprintSubmittableResult extends SubmittableResult { + contract; + constructor(result, contract) { + super(result); + this.contract = contract; + } +} +export class Blueprint extends Base { + /** + * @description The on-chain code hash for this blueprint + */ + codeHash; + __internal__tx = {}; + constructor(api, abi, codeHash, decorateMethod) { + super(api, abi, decorateMethod); + this.codeHash = this.registry.createType('Hash', codeHash); + this.abi.constructors.forEach(c => { + if (isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__deploy(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__deploy = ( + constructorOrId, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new BlueprintSubmittableResult( + result, + (() => { + if (result.status.isInBlock || result.status.isFinalized) { + return new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ); + } + return undefined; + })(), + ), + ); + }; +} +export function extendBlueprint(type, decorateMethod) { + return class extends Blueprint { + static __BlueprintType = type; + constructor(api, abi, codeHash) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-contract/build/base/Code.d.ts b/.api-contract/build/base/Code.d.ts new file mode 100644 index 00000000..ab612cef --- /dev/null +++ b/.api-contract/build/base/Code.d.ts @@ -0,0 +1,38 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { Base } from './Base.js'; +import { Blueprint } from './Blueprint.js'; +import { Contract } from './Contract.js'; +export type CodeConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, +) => Code; +export declare class CodeSubmittableResult extends SubmittableResult { + readonly blueprint?: Blueprint | undefined; + readonly contract?: Contract | undefined; + constructor( + result: ISubmittableResult, + blueprint?: Blueprint | undefined, + contract?: Contract | undefined, + ); +} +export declare class Code extends Base { + #private; + readonly code: Uint8Array; + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendCode( + type: ApiType, + decorateMethod: DecorateMethod, +): CodeConstructor; diff --git a/.api-contract/build/base/Code.js b/.api-contract/build/base/Code.js new file mode 100644 index 00000000..c4e069e5 --- /dev/null +++ b/.api-contract/build/base/Code.js @@ -0,0 +1,79 @@ +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; +import { Base } from './Base.js'; +import { Blueprint } from './Blueprint.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; +export class CodeSubmittableResult extends SubmittableResult { + blueprint; + contract; + constructor(result, blueprint, contract) { + super(result); + this.blueprint = blueprint; + this.contract = contract; + } +} +function isValidCode(code) { + return isWasm(code) || isRiscV(code); +} +export class Code extends Base { + code; + __internal__tx = {}; + constructor(api, abi, wasm, decorateMethod) { + super(api, abi, decorateMethod); + this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + this.abi.constructors.forEach(c => { + if (isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__instantiate(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__instantiate = ( + constructorOrId, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + console.log('in instantiate'); + console.log(this.abi.info.source.wasmHash); + return this.api.tx.revive + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new CodeSubmittableResult( + result, + new Blueprint(this.api, this.abi, this.abi.info.source.wasmHash, this._decorateMethod), + new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ), + ), + ); + }; +} +export function extendCode(type, decorateMethod) { + return class extends Code { + static __CodeType = type; + constructor(api, abi, wasm) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-contract/build/base/Contract.d.ts b/.api-contract/build/base/Contract.d.ts new file mode 100644 index 00000000..e60d7540 --- /dev/null +++ b/.api-contract/build/base/Contract.d.ts @@ -0,0 +1,37 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { DecodedEvent } from '../types.js'; +import type { MapMessageQuery, MapMessageTx } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { Base } from './Base.js'; +export type ContractConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, +) => Contract; +export declare class ContractSubmittableResult extends SubmittableResult { + readonly contractEvents?: DecodedEvent[] | undefined; + constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); +} +export declare class Contract extends Base { + #private; + /** + * @description The on-chain address for this contract + */ + readonly address: AccountId20; + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId20, + decorateMethod: DecorateMethod, + ); + get query(): MapMessageQuery; + get tx(): MapMessageTx; +} +export declare function extendContract( + type: ApiType, + decorateMethod: DecorateMethod, +): ContractConstructor; diff --git a/.api-contract/build/base/Contract.js b/.api-contract/build/base/Contract.js new file mode 100644 index 00000000..81ec5787 --- /dev/null +++ b/.api-contract/build/base/Contract.js @@ -0,0 +1,154 @@ +import { map } from 'rxjs'; +import { SubmittableResult } from '@polkadot/api'; +import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { convertWeight, withMeta } from './util.js'; +const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); +const l = logger('Contract'); +function createQuery(meta, fn) { + return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); +} +function createTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); +} +export class ContractSubmittableResult extends SubmittableResult { + contractEvents; + constructor(result, contractEvents) { + super(result); + this.contractEvents = contractEvents; + } +} +export class Contract extends Base { + /** + * @description The on-chain address for this contract + */ + address; + __internal__query = {}; + __internal__tx = {}; + constructor(api, abi, address, decorateMethod) { + super(api, abi, decorateMethod); + this.address = this.registry.createType('AccountId20', address); + this.abi.messages.forEach(m => { + if (isUndefined(this.__internal__tx[m.method])) { + this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); + } + if (isUndefined(this.__internal__query[m.method])) { + this.__internal__query[m.method] = createQuery(m, (f, o, p) => + this.__internal__read(m, o, p).send(f), + ); + } + }); + } + get query() { + return this.__internal__query; + } + get tx() { + return this.__internal__tx; + } + __internal__getGas = (_gasLimit, isCall = false) => { + const weight = convertWeight(_gasLimit); + if (weight.v1Weight.gt(BN_ZERO)) { + return weight; + } + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? this.api.consts.system.blockWeights.maxBlock + : this.api.consts.system['maximumBlockWeight'], + ) + .v1Weight.muln(64) + .div(BN_HUNDRED), + ); + }; + __internal__exec = ( + messageOrId, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + result => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => + records + .map(record => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${error.message}`); + return null; + } + }) + .filter(decoded => !!decoded), + ), + ), + ); + }; + __internal__read = ( + messageOrId, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + const message = this.abi.findMessage(messageOrId); + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod(origin => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.__internal__getGas(gasLimit, true).v1Weight + : this.__internal__getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + })), + ), + ), + }; + }; +} +export function extendContract(type, decorateMethod) { + return class extends Contract { + static __ContractType = type; + constructor(api, abi, address) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-contract/build/base/index.d.ts b/.api-contract/build/base/index.d.ts new file mode 100644 index 00000000..905b4515 --- /dev/null +++ b/.api-contract/build/base/index.d.ts @@ -0,0 +1,3 @@ +export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { Contract, extendContract } from './Contract.js'; diff --git a/.api-contract/build/base/index.js b/.api-contract/build/base/index.js new file mode 100644 index 00000000..905b4515 --- /dev/null +++ b/.api-contract/build/base/index.js @@ -0,0 +1,3 @@ +export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { Contract, extendContract } from './Contract.js'; diff --git a/.api-contract/build/base/mock.d.ts b/.api-contract/build/base/mock.d.ts new file mode 100644 index 00000000..51f21099 --- /dev/null +++ b/.api-contract/build/base/mock.d.ts @@ -0,0 +1,2 @@ +import type { ApiBase } from '@polkadot/api/base'; +export declare const mockApi: ApiBase<'promise'>; diff --git a/.api-contract/build/base/mock.js b/.api-contract/build/base/mock.js new file mode 100644 index 00000000..55a4f489 --- /dev/null +++ b/.api-contract/build/base/mock.js @@ -0,0 +1,22 @@ +import { TypeRegistry } from '@polkadot/types'; +const registry = new TypeRegistry(); +const instantiateWithCode = () => { + throw new Error('mock'); +}; +instantiateWithCode.meta = { args: new Array(6) }; +export const mockApi = { + call: { + contractsApi: { + call: () => { + throw new Error('mock'); + }, + }, + }, + isConnected: true, + registry, + tx: { + contracts: { + instantiateWithCode, + }, + }, +}; diff --git a/.api-contract/build/base/types.d.ts b/.api-contract/build/base/types.d.ts new file mode 100644 index 00000000..1841c9b7 --- /dev/null +++ b/.api-contract/build/base/types.d.ts @@ -0,0 +1,40 @@ +import type { Observable } from 'rxjs'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes, ObsInnerType } from '@polkadot/api/types'; +import type { AccountId } from '@polkadot/types/interfaces'; +import type { + AbiMessage, + BlueprintOptions, + ContractCallOutcome, + ContractOptions, +} from '../types.js'; +export interface MessageMeta { + readonly meta: AbiMessage; +} +export interface BlueprintDeploy extends MessageMeta { + (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; +} +export interface ContractQuery extends MessageMeta { + ( + origin: AccountId | string | Uint8Array, + options: ContractOptions, + ...params: unknown[] + ): ContractCallResult; +} +export interface ContractTx extends MessageMeta { + (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; +} +export type ContractGeneric = ( + messageOrId: AbiMessage | string | number, + options: O, + ...params: unknown[] +) => T; +export type ContractCallResult = ApiType extends 'rxjs' + ? Observable + : Promise>>; +export interface ContractCallSend { + send(account: string | AccountId | Uint8Array): ContractCallResult; +} +export type MapConstructorExec = Record>; +export type MapMessageTx = Record>; +export type MapMessageQuery = Record>; diff --git a/.api-contract/build/base/types.js b/.api-contract/build/base/types.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/.api-contract/build/base/types.js @@ -0,0 +1 @@ +export {}; diff --git a/.api-contract/build/base/util.d.ts b/.api-contract/build/base/util.d.ts new file mode 100644 index 00000000..27d26904 --- /dev/null +++ b/.api-contract/build/base/util.d.ts @@ -0,0 +1,31 @@ +import type { SubmittableResult } from '@polkadot/api'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes } from '@polkadot/api/types'; +import type { WeightV1, WeightV2 } from '@polkadot/types/interfaces'; +import type { BN } from '@polkadot/util'; +import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.js'; +import type { BlueprintDeploy, ContractGeneric } from './types.js'; +export declare const EMPTY_SALT: Uint8Array; +export declare function withMeta< + T extends { + meta: AbiMessage; + }, +>(meta: AbiMessage, creator: Omit): T; +export declare function createBluePrintTx( + meta: AbiMessage, + fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic, +): BlueprintDeploy; +export declare function createBluePrintWithId( + fn: ( + constructorOrId: AbiConstructor | string | number, + options: BlueprintOptions, + params: unknown[], + ) => T, +): ContractGeneric; +export declare function encodeSalt(salt?: Uint8Array | string | null): Uint8Array; +export declare function convertWeight( + weight: WeightV1 | WeightV2 | bigint | string | number | BN, +): WeightAll; +export declare function isWeightV2( + weight: WeightV1 | WeightV2 | bigint | string | number | BN, +): weight is WeightV2; diff --git a/.api-contract/build/base/util.js b/.api-contract/build/base/util.js new file mode 100644 index 00000000..551dad16 --- /dev/null +++ b/.api-contract/build/base/util.js @@ -0,0 +1,33 @@ +import { Bytes } from '@polkadot/types'; +import { bnToBn, compactAddLength, u8aToU8a } from '@polkadot/util'; +import { randomAsU8a } from '@polkadot/util-crypto'; +export const EMPTY_SALT = new Uint8Array(); +export function withMeta(meta, creator) { + creator.meta = meta; + return creator; +} +export function createBluePrintTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); +} +export function createBluePrintWithId(fn) { + return (constructorOrId, options, ...params) => fn(constructorOrId, options, params); +} +export function encodeSalt(salt = randomAsU8a()) { + return salt instanceof Bytes + ? salt + : salt?.length + ? compactAddLength(u8aToU8a(salt)) + : EMPTY_SALT; +} +export function convertWeight(weight) { + const [refTime, proofSize] = isWeightV2(weight) + ? [weight.refTime.toBn(), weight.proofSize.toBn()] + : [bnToBn(weight), undefined]; + return { + v1Weight: refTime, + v2Weight: { proofSize, refTime }, + }; +} +export function isWeightV2(weight) { + return !!weight.proofSize; +} diff --git a/.api-contract/build/bundle-polkadot-api-contract.js b/.api-contract/build/bundle-polkadot-api-contract.js new file mode 100644 index 00000000..ea71636a --- /dev/null +++ b/.api-contract/build/bundle-polkadot-api-contract.js @@ -0,0 +1,1433 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' + ? factory( + exports, + require('@polkadot/types'), + require('@polkadot/util'), + require('@polkadot/api'), + require('@polkadot/util-crypto'), + ) + : typeof define === 'function' && define.amd + ? define( + [ + 'exports', + '@polkadot/types', + '@polkadot/util', + '@polkadot/api', + '@polkadot/util-crypto', + ], + factory, + ) + : ((global = typeof globalThis !== 'undefined' ? globalThis : global || self), + factory( + (global.polkadotApiContract = {}), + global.polkadotTypes, + global.polkadotUtil, + global.polkadotApi, + global.polkadotUtilCrypto, + )); +})(this, function (exports, types, util, api, utilCrypto) { + 'use strict'; + + const global = + typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : window; + + var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null; + var TypeDefInfo; + (function (TypeDefInfo) { + TypeDefInfo[(TypeDefInfo['BTreeMap'] = 0)] = 'BTreeMap'; + TypeDefInfo[(TypeDefInfo['BTreeSet'] = 1)] = 'BTreeSet'; + TypeDefInfo[(TypeDefInfo['Compact'] = 2)] = 'Compact'; + TypeDefInfo[(TypeDefInfo['DoNotConstruct'] = 3)] = 'DoNotConstruct'; + TypeDefInfo[(TypeDefInfo['Enum'] = 4)] = 'Enum'; + TypeDefInfo[(TypeDefInfo['HashMap'] = 5)] = 'HashMap'; + TypeDefInfo[(TypeDefInfo['Int'] = 6)] = 'Int'; + TypeDefInfo[(TypeDefInfo['Linkage'] = 7)] = 'Linkage'; + TypeDefInfo[(TypeDefInfo['Null'] = 8)] = 'Null'; + TypeDefInfo[(TypeDefInfo['Option'] = 9)] = 'Option'; + TypeDefInfo[(TypeDefInfo['Plain'] = 10)] = 'Plain'; + TypeDefInfo[(TypeDefInfo['Range'] = 11)] = 'Range'; + TypeDefInfo[(TypeDefInfo['RangeInclusive'] = 12)] = 'RangeInclusive'; + TypeDefInfo[(TypeDefInfo['Result'] = 13)] = 'Result'; + TypeDefInfo[(TypeDefInfo['Set'] = 14)] = 'Set'; + TypeDefInfo[(TypeDefInfo['Si'] = 15)] = 'Si'; + TypeDefInfo[(TypeDefInfo['Struct'] = 16)] = 'Struct'; + TypeDefInfo[(TypeDefInfo['Tuple'] = 17)] = 'Tuple'; + TypeDefInfo[(TypeDefInfo['UInt'] = 18)] = 'UInt'; + TypeDefInfo[(TypeDefInfo['Vec'] = 19)] = 'Vec'; + TypeDefInfo[(TypeDefInfo['VecFixed'] = 20)] = 'VecFixed'; + TypeDefInfo[(TypeDefInfo['WrapperKeepOpaque'] = 21)] = 'WrapperKeepOpaque'; + TypeDefInfo[(TypeDefInfo['WrapperOpaque'] = 22)] = 'WrapperOpaque'; + })(TypeDefInfo || (TypeDefInfo = {})); + + function v0ToV1Names(all) { + return all.map(e => + util.objectSpread({}, e, { + name: Array.isArray(e.name) ? e.name : [e.name], + }), + ); + } + function v0ToV1(registry, v0) { + if (!v0.metadataVersion.length) { + throw new Error('Invalid format for V0 (detected) contract metadata'); + } + return registry.createType( + 'ContractMetadataV1', + util.objectSpread({}, v0, { + spec: util.objectSpread({}, v0.spec, { + constructors: v0ToV1Names(v0.spec.constructors), + messages: v0ToV1Names(v0.spec.messages), + }), + types: types.convertSiV0toV1(registry, v0.types), + }), + ); + } + + const ARG_TYPES = { + ContractConstructorSpec: 'ContractMessageParamSpecV2', + ContractEventSpec: 'ContractEventParamSpecV2', + ContractMessageSpec: 'ContractMessageParamSpecV2', + }; + function v1ToV2Label(entry) { + return util.objectSpread({}, entry, { + label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, + }); + } + function v1ToV2Labels(registry, outType, all) { + return all.map(e => + registry.createType( + `${outType}V2`, + util.objectSpread(v1ToV2Label(e), { + args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), + }), + ), + ); + } + function v1ToV2(registry, v1) { + return registry.createType( + 'ContractMetadataV2', + util.objectSpread({}, v1, { + spec: util.objectSpread({}, v1.spec, { + constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), + events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), + messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), + }), + }), + ); + } + + function v2ToV3(registry, v2) { + return registry.createType( + 'ContractMetadataV3', + util.objectSpread({}, v2, { + spec: util.objectSpread({}, v2.spec, { + constructors: v2.spec.constructors.map(c => + registry.createType( + 'ContractConstructorSpecV3', + util.objectSpread({}, c, { payable: true }), + ), + ), + }), + }), + ); + } + + function v3ToV4(registry, v3) { + return registry.createType( + 'ContractMetadataV4', + util.objectSpread({}, v3, { + spec: util.objectSpread({}, v3.spec, { + constructors: v3.spec.constructors.map(c => + registry.createType('ContractConstructorSpecV4', util.objectSpread({}, c)), + ), + messages: v3.spec.messages.map(m => + registry.createType('ContractMessageSpecV3', util.objectSpread({}, m)), + ), + }), + version: registry.createType('Text', '4'), + }), + ); + } + + const enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1']; + function createConverter(next, step) { + return (registry, input) => next(registry, step(registry, input)); + } + function v5ToLatestCompatible(_registry, v5) { + return v5; + } + function v4ToLatestCompatible(_registry, v4) { + return v4; + } + const v3ToLatestCompatible = createConverter(v4ToLatestCompatible, v3ToV4); + const v2ToLatestCompatible = createConverter(v3ToLatestCompatible, v2ToV3); + const v1ToLatestCompatible = createConverter(v2ToLatestCompatible, v1ToV2); + const v0ToLatestCompatible = createConverter(v1ToLatestCompatible, v0ToV1); + const convertVersions = [ + ['V5', v5ToLatestCompatible], + ['V4', v4ToLatestCompatible], + ['V3', v3ToLatestCompatible], + ['V2', v2ToLatestCompatible], + ['V1', v1ToLatestCompatible], + ['V0', v0ToLatestCompatible], + ]; + + const l$1 = util.logger('Abi'); + const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; + function findMessage(list, messageOrId) { + const message = util.isNumber(messageOrId) + ? list[messageOrId] + : util.isString(messageOrId) + ? list.find(({ identifier }) => + [identifier, util.stringCamelCase(identifier)].includes(messageOrId.toString()), + ) + : messageOrId; + return util.assertReturn( + message, + () => `Attempted to call an invalid contract interface, ${util.stringify(messageOrId)}`, + ); + } + function getMetadata(registry, json) { + const vx = enumVersions.find(v => util.isObject(json[v])); + const jsonVersion = json.version; + if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { + throw new Error(`Unable to handle version ${jsonVersion}`); + } + const metadata = registry.createType( + 'ContractMetadata', + vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, + ); + const converter = convertVersions.find(([v]) => metadata[`is${v}`]); + if (!converter) { + throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); + } + const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + return upgradedMetadata; + } + function parseJson(json, chainProperties) { + const registry = new types.TypeRegistry(); + const info = registry.createType('ContractProjectInfo', json); + const metadata = getMetadata(registry, json); + const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); + registry.setLookup(lookup); + if (chainProperties) { + registry.setChainProperties(chainProperties); + } + lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + return [json, registry, metadata, info]; + } + function isTypeSpec(value) { + return ( + !!value && + value instanceof Map && + !util.isUndefined(value.type) && + !util.isUndefined(value.displayName) + ); + } + function isOption(value) { + return !!value && value instanceof types.Option; + } + class Abi { + events; + constructors; + info; + json; + messages; + metadata; + registry; + environment = new Map(); + constructor(abiJson, chainProperties) { + [this.json, this.registry, this.metadata, this.info] = parseJson( + util.isString(abiJson) ? JSON.parse(abiJson) : abiJson, + chainProperties, + ); + this.constructors = this.metadata.spec.constructors.map((spec, index) => + this.__internal__createMessage(spec, index, { + isConstructor: true, + isDefault: spec.default.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + this.events = this.metadata.spec.events.map((_, index) => + this.__internal__createEvent(index), + ); + this.messages = this.metadata.spec.messages.map((spec, index) => + this.__internal__createMessage(spec, index, { + isDefault: spec.default.isTrue, + isMutating: spec.mutates.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + for (const [key, opt] of this.metadata.spec.environment.entries()) { + if (isOption(opt)) { + if (opt.isSome) { + const value = opt.unwrap(); + if (util.isBn(value)) { + this.environment.set(key, value); + } else if (isTypeSpec(value)) { + this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); + } else { + throw new Error( + `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, + ); + } + } + } else { + throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); + } + } + } + decodeEvent(record) { + switch (this.metadata.version.toString()) { + case '4': + return this.__internal__decodeEventV4(record); + default: + return this.__internal__decodeEventV5(record); + } + } + __internal__decodeEventV5 = record => { + const signatureTopic = record.topics[0]; + const data = record.event.data[1]; + if (signatureTopic) { + const event = this.events.find( + e => + e.signatureTopic !== undefined && + e.signatureTopic !== null && + e.signatureTopic === signatureTopic.toHex(), + ); + if (event) { + return event.fromU8a(data); + } + } + const amountOfTopics = record.topics.length; + const potentialEvents = this.events.filter(e => { + if (e.signatureTopic !== null && e.signatureTopic !== undefined) { + return false; + } + const amountIndexed = e.args.filter(a => a.indexed).length; + if (amountIndexed !== amountOfTopics) { + return false; + } + return true; + }); + if (potentialEvents.length === 1) { + return potentialEvents[0].fromU8a(data); + } + throw new Error('Unable to determine event'); + }; + __internal__decodeEventV4 = record => { + const data = record.event.data[1]; + const index = data[0]; + const event = this.events[index]; + if (!event) { + throw new Error(`Unable to find event with index ${index}`); + } + return event.fromU8a(data.subarray(1)); + }; + decodeConstructor(data) { + return this.__internal__decodeMessage('message', this.constructors, data); + } + decodeMessage(data) { + return this.__internal__decodeMessage('message', this.messages, data); + } + findConstructor(constructorOrId) { + return findMessage(this.constructors, constructorOrId); + } + findMessage(messageOrId) { + return findMessage(this.messages, messageOrId); + } + __internal__createArgs = (args, spec) => { + return args.map(({ label, type }, index) => { + try { + if (!util.isObject(type)) { + throw new Error('Invalid type definition found'); + } + const displayName = type.displayName.length + ? type.displayName[type.displayName.length - 1].toString() + : undefined; + const camelName = util.stringCamelCase(label); + if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { + return { + name: camelName, + type: { + info: TypeDefInfo.Plain, + type: displayName, + }, + }; + } + const typeDef = this.registry.lookup.getTypeDef(type.type); + return { + name: camelName, + type: + displayName && !typeDef.type.startsWith(displayName) + ? { displayName, ...typeDef } + : typeDef, + }; + } catch (error) { + l$1.error(`Error expanding argument ${index} in ${util.stringify(spec)}`); + throw error; + } + }); + }; + __internal__createMessageParams = (args, spec) => { + return this.__internal__createArgs(args, spec); + }; + __internal__createEventParams = (args, spec) => { + const params = this.__internal__createArgs(args, spec); + return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); + }; + __internal__createEvent = index => { + switch (this.metadata.version.toString()) { + case '4': + return this.__internal__createEventV4(this.metadata.spec.events[index], index); + default: + return this.__internal__createEventV5(this.metadata.spec.events[index], index); + } + }; + __internal__createEventV5 = (spec, index) => { + const args = this.__internal__createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + event, + }), + identifier: [spec.module_path, spec.label].join('::'), + index, + signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, + }; + return event; + }; + __internal__createEventV4 = (spec, index) => { + const args = this.__internal__createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + event, + }), + identifier: spec.label.toString(), + index, + }; + return event; + }; + __internal__createMessage = (spec, index, add = {}) => { + const args = this.__internal__createMessageParams(spec.args, spec); + const identifier = spec.label.toString(); + const message = { + ...add, + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + message, + }), + identifier, + index, + isDefault: spec.default.isTrue, + method: util.stringCamelCase(identifier), + path: identifier.split('::').map(s => util.stringCamelCase(s)), + selector: spec.selector, + toU8a: params => this.__internal__encodeMessageArgs(spec, args, params), + }; + return message; + }; + __internal__decodeArgs = (args, data) => { + let offset = 0; + return args.map(({ type: { lookupName, type } }) => { + const value = this.registry.createType(lookupName || type, data.subarray(offset)); + offset += value.encodedLength; + return value; + }); + }; + __internal__decodeMessage = (type, list, data) => { + const [, trimmed] = util.compactStripLength(data); + const selector = trimmed.subarray(0, 4); + const message = list.find(m => m.selector.eq(selector)); + if (!message) { + throw new Error(`Unable to find ${type} with selector ${util.u8aToHex(selector)}`); + } + return message.fromU8a(trimmed.subarray(4)); + }; + __internal__encodeMessageArgs = ({ label, selector }, args, data) => { + if (data.length !== args.length) { + throw new Error( + `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, + ); + } + return util.compactAddLength( + util.u8aConcat( + this.registry.createType('ContractSelector', selector).toU8a(), + ...args.map(({ type: { lookupName, type } }, index) => + this.registry.createType(lookupName || type, data[index]).toU8a(), + ), + ), + ); + }; + } + + const packageInfo = { + name: '@polkadot/api-contract', + path: + { + url: + typeof document === 'undefined' && typeof location === 'undefined' + ? require('u' + 'rl').pathToFileURL(__filename).href + : typeof document === 'undefined' + ? location.href + : (_documentCurrentScript && _documentCurrentScript.src) || + new URL('bundle-polkadot-api-contract.js', document.baseURI).href, + } && + (typeof document === 'undefined' && typeof location === 'undefined' + ? require('u' + 'rl').pathToFileURL(__filename).href + : typeof document === 'undefined' + ? location.href + : (_documentCurrentScript && _documentCurrentScript.src) || + new URL('bundle-polkadot-api-contract.js', document.baseURI).href) + ? new URL( + typeof document === 'undefined' && typeof location === 'undefined' + ? require('u' + 'rl').pathToFileURL(__filename).href + : typeof document === 'undefined' + ? location.href + : (_documentCurrentScript && _documentCurrentScript.src) || + new URL('bundle-polkadot-api-contract.js', document.baseURI).href, + ).pathname.substring( + 0, + new URL( + typeof document === 'undefined' && typeof location === 'undefined' + ? require('u' + 'rl').pathToFileURL(__filename).href + : typeof document === 'undefined' + ? location.href + : (_documentCurrentScript && _documentCurrentScript.src) || + new URL('bundle-polkadot-api-contract.js', document.baseURI).href, + ).pathname.lastIndexOf('/') + 1, + ) + : 'auto', + type: 'esm', + version: '15.8.1', + }; + + class Base { + abi; + api; + _decorateMethod; + _isWeightV1; + constructor(api, abi, decorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.revive || + !util.isFunction(api.tx.revive.instantiateWithCode) || + api.tx.revive.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.reviveApi || !util.isFunction(api.call.reviveApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', + ); + } + this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + get registry() { + return this.api.registry; + } + } + + var extendStatics = function (d, b) { + extendStatics = + Object.setPrototypeOf || + ({ __proto__: [] } instanceof Array && + function (d, b) { + d.__proto__ = b; + }) || + function (d, b) { + for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; + }; + return extendStatics(d, b); + }; + function __extends(d, b) { + if (typeof b !== 'function' && b !== null) + throw new TypeError('Class extends value ' + String(b) + ' is not a constructor or null'); + extendStatics(d, b); + function __() { + this.constructor = d; + } + d.prototype = b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()); + } + function __values(o) { + var s = typeof Symbol === 'function' && Symbol.iterator, + m = s && o[s], + i = 0; + if (m) return m.call(o); + if (o && typeof o.length === 'number') + return { + next: function () { + if (o && i >= o.length) o = void 0; + return { value: o && o[i++], done: !o }; + }, + }; + throw new TypeError(s ? 'Object is not iterable.' : 'Symbol.iterator is not defined.'); + } + function __read(o, n) { + var m = typeof Symbol === 'function' && o[Symbol.iterator]; + if (!m) return o; + var i = m.call(o), + r, + ar = [], + e; + try { + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + } catch (error) { + e = { error: error }; + } finally { + try { + if (r && !r.done && (m = i['return'])) m.call(i); + } finally { + if (e) throw e.error; + } + } + return ar; + } + function __spreadArray(to, from, pack) { + if (pack || arguments.length === 2) + for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } + } + return to.concat(ar || Array.prototype.slice.call(from)); + } + typeof SuppressedError === 'function' + ? SuppressedError + : function (error, suppressed, message) { + var e = new Error(message); + return (e.name = 'SuppressedError'), (e.error = error), (e.suppressed = suppressed), e; + }; + + function isFunction(value) { + return typeof value === 'function'; + } + + function createErrorClass(createImpl) { + var _super = function (instance) { + Error.call(instance); + instance.stack = new Error().stack; + }; + var ctorFunc = createImpl(_super); + ctorFunc.prototype = Object.create(Error.prototype); + ctorFunc.prototype.constructor = ctorFunc; + return ctorFunc; + } + + var UnsubscriptionError = createErrorClass(function (_super) { + return function UnsubscriptionErrorImpl(errors) { + _super(this); + this.message = errors + ? errors.length + + ' errors occurred during unsubscription:\n' + + errors + .map(function (err, i) { + return i + 1 + ') ' + err.toString(); + }) + .join('\n ') + : ''; + this.name = 'UnsubscriptionError'; + this.errors = errors; + }; + }); + + function arrRemove(arr, item) { + if (arr) { + var index = arr.indexOf(item); + 0 <= index && arr.splice(index, 1); + } + } + + var Subscription = (function () { + function Subscription(initialTeardown) { + this.initialTeardown = initialTeardown; + this.closed = false; + this._parentage = null; + this._finalizers = null; + } + Subscription.prototype.unsubscribe = function () { + var e_1, _a, e_2, _b; + var errors; + if (!this.closed) { + this.closed = true; + var _parentage = this._parentage; + if (_parentage) { + this._parentage = null; + if (Array.isArray(_parentage)) { + try { + for ( + var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); + !_parentage_1_1.done; + _parentage_1_1 = _parentage_1.next() + ) { + var parent_1 = _parentage_1_1.value; + parent_1.remove(this); + } + } catch (e_1_1) { + e_1 = { error: e_1_1 }; + } finally { + try { + if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) + _a.call(_parentage_1); + } finally { + if (e_1) throw e_1.error; + } + } + } else { + _parentage.remove(this); + } + } + var initialFinalizer = this.initialTeardown; + if (isFunction(initialFinalizer)) { + try { + initialFinalizer(); + } catch (e) { + errors = e instanceof UnsubscriptionError ? e.errors : [e]; + } + } + var _finalizers = this._finalizers; + if (_finalizers) { + this._finalizers = null; + try { + for ( + var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); + !_finalizers_1_1.done; + _finalizers_1_1 = _finalizers_1.next() + ) { + var finalizer = _finalizers_1_1.value; + try { + execFinalizer(finalizer); + } catch (err) { + errors = errors !== null && errors !== void 0 ? errors : []; + if (err instanceof UnsubscriptionError) { + errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)); + } else { + errors.push(err); + } + } + } + } catch (e_2_1) { + e_2 = { error: e_2_1 }; + } finally { + try { + if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) + _b.call(_finalizers_1); + } finally { + if (e_2) throw e_2.error; + } + } + } + if (errors) { + throw new UnsubscriptionError(errors); + } + } + }; + Subscription.prototype.add = function (teardown) { + var _a; + if (teardown && teardown !== this) { + if (this.closed) { + execFinalizer(teardown); + } else { + if (teardown instanceof Subscription) { + if (teardown.closed || teardown._hasParent(this)) { + return; + } + teardown._addParent(this); + } + (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push( + teardown, + ); + } + } + }; + Subscription.prototype._hasParent = function (parent) { + var _parentage = this._parentage; + return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent)); + }; + Subscription.prototype._addParent = function (parent) { + var _parentage = this._parentage; + this._parentage = Array.isArray(_parentage) + ? (_parentage.push(parent), _parentage) + : _parentage + ? [_parentage, parent] + : parent; + }; + Subscription.prototype._removeParent = function (parent) { + var _parentage = this._parentage; + if (_parentage === parent) { + this._parentage = null; + } else if (Array.isArray(_parentage)) { + arrRemove(_parentage, parent); + } + }; + Subscription.prototype.remove = function (teardown) { + var _finalizers = this._finalizers; + _finalizers && arrRemove(_finalizers, teardown); + if (teardown instanceof Subscription) { + teardown._removeParent(this); + } + }; + Subscription.EMPTY = (function () { + var empty = new Subscription(); + empty.closed = true; + return empty; + })(); + return Subscription; + })(); + Subscription.EMPTY; + function isSubscription(value) { + return ( + value instanceof Subscription || + (value && + 'closed' in value && + isFunction(value.remove) && + isFunction(value.add) && + isFunction(value.unsubscribe)) + ); + } + function execFinalizer(finalizer) { + if (isFunction(finalizer)) { + finalizer(); + } else { + finalizer.unsubscribe(); + } + } + + var config = { + onUnhandledError: null, + onStoppedNotification: null, + Promise: undefined, + useDeprecatedSynchronousErrorHandling: false, + useDeprecatedNextContext: false, + }; + + var timeoutProvider = { + setTimeout: function (handler, timeout) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args))); + }, + clearTimeout: function (handle) { + var delegate = timeoutProvider.delegate; + return ( + (delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout + )(handle); + }, + delegate: undefined, + }; + + function reportUnhandledError(err) { + timeoutProvider.setTimeout(function () { + { + throw err; + } + }); + } + + function noop() {} + + var Subscriber = (function (_super) { + __extends(Subscriber, _super); + function Subscriber(destination) { + var _this = _super.call(this) || this; + _this.isStopped = false; + if (destination) { + _this.destination = destination; + if (isSubscription(destination)) { + destination.add(_this); + } + } else { + _this.destination = EMPTY_OBSERVER; + } + return _this; + } + Subscriber.create = function (next, error, complete) { + return new SafeSubscriber(next, error, complete); + }; + Subscriber.prototype.next = function (value) { + if (this.isStopped); + else { + this._next(value); + } + }; + Subscriber.prototype.error = function (err) { + if (this.isStopped); + else { + this.isStopped = true; + this._error(err); + } + }; + Subscriber.prototype.complete = function () { + if (this.isStopped); + else { + this.isStopped = true; + this._complete(); + } + }; + Subscriber.prototype.unsubscribe = function () { + if (!this.closed) { + this.isStopped = true; + _super.prototype.unsubscribe.call(this); + this.destination = null; + } + }; + Subscriber.prototype._next = function (value) { + this.destination.next(value); + }; + Subscriber.prototype._error = function (err) { + try { + this.destination.error(err); + } finally { + this.unsubscribe(); + } + }; + Subscriber.prototype._complete = function () { + try { + this.destination.complete(); + } finally { + this.unsubscribe(); + } + }; + return Subscriber; + })(Subscription); + var _bind = Function.prototype.bind; + function bind(fn, thisArg) { + return _bind.call(fn, thisArg); + } + var ConsumerObserver = (function () { + function ConsumerObserver(partialObserver) { + this.partialObserver = partialObserver; + } + ConsumerObserver.prototype.next = function (value) { + var partialObserver = this.partialObserver; + if (partialObserver.next) { + try { + partialObserver.next(value); + } catch (error) { + handleUnhandledError(error); + } + } + }; + ConsumerObserver.prototype.error = function (err) { + var partialObserver = this.partialObserver; + if (partialObserver.error) { + try { + partialObserver.error(err); + } catch (error) { + handleUnhandledError(error); + } + } else { + handleUnhandledError(err); + } + }; + ConsumerObserver.prototype.complete = function () { + var partialObserver = this.partialObserver; + if (partialObserver.complete) { + try { + partialObserver.complete(); + } catch (error) { + handleUnhandledError(error); + } + } + }; + return ConsumerObserver; + })(); + var SafeSubscriber = (function (_super) { + __extends(SafeSubscriber, _super); + function SafeSubscriber(observerOrNext, error, complete) { + var _this = _super.call(this) || this; + var partialObserver; + if (isFunction(observerOrNext) || !observerOrNext) { + partialObserver = { + next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined, + error: error !== null && error !== void 0 ? error : undefined, + complete: complete !== null && complete !== void 0 ? complete : undefined, + }; + } else { + var context_1; + if (_this && config.useDeprecatedNextContext) { + context_1 = Object.create(observerOrNext); + context_1.unsubscribe = function () { + return _this.unsubscribe(); + }; + partialObserver = { + next: observerOrNext.next && bind(observerOrNext.next, context_1), + error: observerOrNext.error && bind(observerOrNext.error, context_1), + complete: observerOrNext.complete && bind(observerOrNext.complete, context_1), + }; + } else { + partialObserver = observerOrNext; + } + } + _this.destination = new ConsumerObserver(partialObserver); + return _this; + } + return SafeSubscriber; + })(Subscriber); + function handleUnhandledError(error) { + { + reportUnhandledError(error); + } + } + function defaultErrorHandler(err) { + throw err; + } + var EMPTY_OBSERVER = { + closed: true, + next: noop, + error: defaultErrorHandler, + complete: noop, + }; + + function hasLift(source) { + return isFunction(source === null || source === void 0 ? void 0 : source.lift); + } + function operate(init) { + return function (source) { + if (hasLift(source)) { + return source.lift(function (liftedSource) { + try { + return init(liftedSource, this); + } catch (err) { + this.error(err); + } + }); + } + throw new TypeError('Unable to lift unknown Observable type'); + }; + } + + function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { + return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); + } + var OperatorSubscriber = (function (_super) { + __extends(OperatorSubscriber, _super); + function OperatorSubscriber( + destination, + onNext, + onComplete, + onError, + onFinalize, + shouldUnsubscribe, + ) { + var _this = _super.call(this, destination) || this; + _this.onFinalize = onFinalize; + _this.shouldUnsubscribe = shouldUnsubscribe; + _this._next = onNext + ? function (value) { + try { + onNext(value); + } catch (err) { + destination.error(err); + } + } + : _super.prototype._next; + _this._error = onError + ? function (err) { + try { + onError(err); + } catch (err) { + destination.error(err); + } finally { + this.unsubscribe(); + } + } + : _super.prototype._error; + _this._complete = onComplete + ? function () { + try { + onComplete(); + } catch (err) { + destination.error(err); + } finally { + this.unsubscribe(); + } + } + : _super.prototype._complete; + return _this; + } + OperatorSubscriber.prototype.unsubscribe = function () { + var _a; + if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { + var closed_1 = this.closed; + _super.prototype.unsubscribe.call(this); + !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); + } + }; + return OperatorSubscriber; + })(Subscriber); + + function map(project, thisArg) { + return operate(function (source, subscriber) { + var index = 0; + source.subscribe( + createOperatorSubscriber(subscriber, function (value) { + subscriber.next(project.call(thisArg, value, index++)); + }), + ); + }); + } + + function applyOnEvent(result, types, fn) { + if (result.isInBlock || result.isFinalized) { + const records = result.filterRecords('contracts', types); + if (records.length) { + return fn(records); + } + } + return undefined; + } + + const EMPTY_SALT = new Uint8Array(); + function withMeta(meta, creator) { + creator.meta = meta; + return creator; + } + function createBluePrintTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); + } + function encodeSalt(salt = utilCrypto.randomAsU8a()) { + return salt instanceof types.Bytes + ? salt + : salt?.length + ? util.compactAddLength(util.u8aToU8a(salt)) + : EMPTY_SALT; + } + function convertWeight(weight) { + const [refTime, proofSize] = isWeightV2(weight) + ? [weight.refTime.toBn(), weight.proofSize.toBn()] + : [util.bnToBn(weight), undefined]; + return { + v1Weight: refTime, + v2Weight: { proofSize, refTime }, + }; + } + function isWeightV2(weight) { + return !!weight.proofSize; + } + + const MAX_CALL_GAS = new util.BN(5_000_000_000_000).isub(util.BN_ONE); + const l = util.logger('Contract'); + function createQuery(meta, fn) { + return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); + } + function createTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); + } + class ContractSubmittableResult extends api.SubmittableResult { + contractEvents; + constructor(result, contractEvents) { + super(result); + this.contractEvents = contractEvents; + } + } + class Contract extends Base { + address; + __internal__query = {}; + __internal__tx = {}; + constructor(api, abi, address, decorateMethod) { + super(api, abi, decorateMethod); + this.address = this.registry.createType('AccountId20', address); + this.abi.messages.forEach(m => { + if (util.isUndefined(this.__internal__tx[m.method])) { + this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); + } + if (util.isUndefined(this.__internal__query[m.method])) { + this.__internal__query[m.method] = createQuery(m, (f, o, p) => + this.__internal__read(m, o, p).send(f), + ); + } + }); + } + get query() { + return this.__internal__query; + } + get tx() { + return this.__internal__tx; + } + __internal__getGas = (_gasLimit, isCall = false) => { + const weight = convertWeight(_gasLimit); + if (weight.v1Weight.gt(util.BN_ZERO)) { + return weight; + } + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? this.api.consts.system.blockWeights.maxBlock + : this.api.consts.system['maximumBlockWeight'], + ) + .v1Weight.muln(64) + .div(util.BN_HUNDRED), + ); + }; + __internal__exec = ( + messageOrId, + { gasLimit = util.BN_ZERO, storageDepositLimit = null, value = util.BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .call( + this.address, + value, + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + result => + new ContractSubmittableResult( + result, + applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => + records + .map(record => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${error.message}`); + return null; + } + }) + .filter(decoded => !!decoded), + ), + ), + ); + }; + __internal__read = ( + messageOrId, + { gasLimit = util.BN_ZERO, storageDepositLimit = null, value = util.BN_ZERO }, + params, + ) => { + const message = this.abi.findMessage(messageOrId); + return { + send: this._decorateMethod(origin => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + this._isWeightV1 + ? this.__internal__getGas(gasLimit, true).v1Weight + : this.__internal__getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + })), + ), + ), + }; + }; + } + + class BlueprintSubmittableResult extends api.SubmittableResult { + contract; + constructor(result, contract) { + super(result); + this.contract = contract; + } + } + class Blueprint extends Base { + codeHash; + __internal__tx = {}; + constructor(api, abi, codeHash, decorateMethod) { + super(api, abi, decorateMethod); + this.codeHash = this.registry.createType('Hash', codeHash); + this.abi.constructors.forEach(c => { + if (util.isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__deploy(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__deploy = ( + constructorOrId, + { gasLimit = util.BN_ZERO, salt, storageDepositLimit = null, value = util.BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .instantiate( + value, + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new BlueprintSubmittableResult( + result, + (() => { + if (result.status.isInBlock || result.status.isFinalized) { + return new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ); + } + return undefined; + })(), + ), + ); + }; + } + + class CodeSubmittableResult extends api.SubmittableResult { + blueprint; + contract; + constructor(result, blueprint, contract) { + super(result); + this.blueprint = blueprint; + this.contract = contract; + } + } + function isValidCode(code) { + return util.isWasm(code) || util.isRiscV(code); + } + class Code extends Base { + code; + __internal__tx = {}; + constructor(api, abi, wasm, decorateMethod) { + super(api, abi, decorateMethod); + this.code = isValidCode(this.abi.info.source.wasm) + ? this.abi.info.source.wasm + : util.u8aToU8a(wasm); + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + this.abi.constructors.forEach(c => { + if (util.isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__instantiate(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__instantiate = ( + constructorOrId, + { gasLimit = util.BN_ZERO, salt, storageDepositLimit = null, value = util.BN_ZERO }, + params, + ) => { + console.log('in instantiate'); + console.log(this.abi.info.source.wasmHash); + return this.api.tx.revive + .instantiateWithCode( + value, + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + util.compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new CodeSubmittableResult( + result, + new Blueprint( + this.api, + this.abi, + this.abi.info.source.wasmHash, + this._decorateMethod, + ), + new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ), + ), + ); + }; + } + + class BlueprintPromise extends Blueprint { + constructor(api$1, abi, codeHash) { + super(api$1, abi, codeHash, api.toPromiseMethod); + } + } + class CodePromise extends Code { + constructor(api$1, abi, wasm) { + super(api$1, abi, wasm, api.toPromiseMethod); + } + } + class ContractPromise extends Contract { + constructor(api$1, abi, address) { + super(api$1, abi, address, api.toPromiseMethod); + } + } + + class BlueprintRx extends Blueprint { + constructor(api$1, abi, codeHash) { + super(api$1, abi, codeHash, api.toRxMethod); + } + } + class CodeRx extends Code { + constructor(api$1, abi, wasm) { + super(api$1, abi, wasm, api.toRxMethod); + } + } + class ContractRx extends Contract { + constructor(api$1, abi, address) { + super(api$1, abi, address, api.toRxMethod); + } + } + + exports.Abi = Abi; + exports.BlueprintPromise = BlueprintPromise; + exports.BlueprintRx = BlueprintRx; + exports.CodePromise = CodePromise; + exports.CodeRx = CodeRx; + exports.ContractPromise = ContractPromise; + exports.ContractRx = ContractRx; + exports.packageInfo = packageInfo; +}); diff --git a/.api-contract/build/bundle.d.ts b/.api-contract/build/bundle.d.ts new file mode 100644 index 00000000..d087e9db --- /dev/null +++ b/.api-contract/build/bundle.d.ts @@ -0,0 +1,4 @@ +export { Abi } from './Abi/index.js'; +export { packageInfo } from './packageInfo.js'; +export * from './promise/index.js'; +export * from './rx/index.js'; diff --git a/.api-contract/build/bundle.js b/.api-contract/build/bundle.js new file mode 100644 index 00000000..d087e9db --- /dev/null +++ b/.api-contract/build/bundle.js @@ -0,0 +1,4 @@ +export { Abi } from './Abi/index.js'; +export { packageInfo } from './packageInfo.js'; +export * from './promise/index.js'; +export * from './rx/index.js'; diff --git a/.api-contract/build/cjs/Abi/index.d.ts b/.api-contract/build/cjs/Abi/index.d.ts new file mode 100644 index 00000000..814995b0 --- /dev/null +++ b/.api-contract/build/cjs/Abi/index.d.ts @@ -0,0 +1,42 @@ +import type { + ChainProperties, + ContractMetadataV4, + ContractMetadataV5, + ContractProjectInfo, + EventRecord, +} from '@polkadot/types/interfaces'; +import type { Codec, Registry, TypeDef } from '@polkadot/types/types'; +import type { + AbiConstructor, + AbiEvent, + AbiMessage, + DecodedEvent, + DecodedMessage, +} from '../types.js'; +export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5; +export declare class Abi { + #private; + readonly events: AbiEvent[]; + readonly constructors: AbiConstructor[]; + readonly info: ContractProjectInfo; + readonly json: Record; + readonly messages: AbiMessage[]; + readonly metadata: ContractMetadataSupported; + readonly registry: Registry; + readonly environment: Map; + constructor(abiJson: Record | string, chainProperties?: ChainProperties); + /** + * Warning: Unstable API, bound to change + */ + decodeEvent(record: EventRecord): DecodedEvent; + /** + * Warning: Unstable API, bound to change + */ + decodeConstructor(data: Uint8Array): DecodedMessage; + /** + * Warning: Unstable API, bound to change + */ + decodeMessage(data: Uint8Array): DecodedMessage; + findConstructor(constructorOrId: AbiConstructor | string | number): AbiConstructor; + findMessage(messageOrId: AbiMessage | string | number): AbiMessage; +} diff --git a/.api-contract/build/cjs/Abi/index.js b/.api-contract/build/cjs/Abi/index.js new file mode 100644 index 00000000..fa496ef2 --- /dev/null +++ b/.api-contract/build/cjs/Abi/index.js @@ -0,0 +1,348 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Abi = void 0; +const types_1 = require('@polkadot/types'); +const types_create_1 = require('@polkadot/types-create'); +const util_1 = require('@polkadot/util'); +const toLatestCompatible_js_1 = require('./toLatestCompatible.js'); +const l = (0, util_1.logger)('Abi'); +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; +function findMessage(list, messageOrId) { + const message = (0, util_1.isNumber)(messageOrId) + ? list[messageOrId] + : (0, util_1.isString)(messageOrId) + ? list.find(({ identifier }) => + [identifier, (0, util_1.stringCamelCase)(identifier)].includes(messageOrId.toString()), + ) + : messageOrId; + return (0, util_1.assertReturn)( + message, + () => `Attempted to call an invalid contract interface, ${(0, util_1.stringify)(messageOrId)}`, + ); +} +function getMetadata(registry, json) { + // this is for V1, V2, V3 + const vx = toLatestCompatible_js_1.enumVersions.find(v => (0, util_1.isObject)(json[v])); + // this was added in V4 + const jsonVersion = json.version; + if ( + !vx && + jsonVersion && + !toLatestCompatible_js_1.enumVersions.find(v => v === `V${jsonVersion}`) + ) { + throw new Error(`Unable to handle version ${jsonVersion}`); + } + const metadata = registry.createType( + 'ContractMetadata', + vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, + ); + const converter = toLatestCompatible_js_1.convertVersions.find(([v]) => metadata[`is${v}`]); + if (!converter) { + throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); + } + const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + return upgradedMetadata; +} +function parseJson(json, chainProperties) { + const registry = new types_1.TypeRegistry(); + const info = registry.createType('ContractProjectInfo', json); + const metadata = getMetadata(registry, json); + const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); + // attach the lookup to the registry - now the types are known + registry.setLookup(lookup); + if (chainProperties) { + registry.setChainProperties(chainProperties); + } + // warm-up the actual type, pre-use + lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + return [json, registry, metadata, info]; +} +/** + * @internal + * Determines if the given input value is a ContractTypeSpec + */ +function isTypeSpec(value) { + return ( + !!value && + value instanceof Map && + !(0, util_1.isUndefined)(value.type) && + !(0, util_1.isUndefined)(value.displayName) + ); +} +/** + * @internal + * Determines if the given input value is an Option + */ +function isOption(value) { + return !!value && value instanceof types_1.Option; +} +class Abi { + events; + constructors; + info; + json; + messages; + metadata; + registry; + environment = new Map(); + constructor(abiJson, chainProperties) { + [this.json, this.registry, this.metadata, this.info] = parseJson( + (0, util_1.isString)(abiJson) ? JSON.parse(abiJson) : abiJson, + chainProperties, + ); + this.constructors = this.metadata.spec.constructors.map((spec, index) => + this.__internal__createMessage(spec, index, { + isConstructor: true, + isDefault: spec.default.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); + this.messages = this.metadata.spec.messages.map((spec, index) => + this.__internal__createMessage(spec, index, { + isDefault: spec.default.isTrue, + isMutating: spec.mutates.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + // NOTE See the rationale for having Option<...> values in the actual + // ContractEnvironmentV4 structure definition in interfaces/contractsAbi + // (Due to conversions, the fields may not exist) + for (const [key, opt] of this.metadata.spec.environment.entries()) { + if (isOption(opt)) { + if (opt.isSome) { + const value = opt.unwrap(); + if ((0, util_1.isBn)(value)) { + this.environment.set(key, value); + } else if (isTypeSpec(value)) { + this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); + } else { + throw new Error( + `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, + ); + } + } + } else { + throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); + } + } + } + /** + * Warning: Unstable API, bound to change + */ + decodeEvent(record) { + switch (this.metadata.version.toString()) { + // earlier version are hoisted to v4 + case '4': + return this.__internal__decodeEventV4(record); + // Latest + default: + return this.__internal__decodeEventV5(record); + } + } + __internal__decodeEventV5 = record => { + // Find event by first topic, which potentially is the signature_topic + const signatureTopic = record.topics[0]; + const data = record.event.data[1]; + if (signatureTopic) { + const event = this.events.find( + e => + e.signatureTopic !== undefined && + e.signatureTopic !== null && + e.signatureTopic === signatureTopic.toHex(), + ); + // Early return if event found by signature topic + if (event) { + return event.fromU8a(data); + } + } + // If no event returned yet, it might be anonymous + const amountOfTopics = record.topics.length; + const potentialEvents = this.events.filter(e => { + // event can't have a signature topic + if (e.signatureTopic !== null && e.signatureTopic !== undefined) { + return false; + } + // event should have same amount of indexed fields as emitted topics + const amountIndexed = e.args.filter(a => a.indexed).length; + if (amountIndexed !== amountOfTopics) { + return false; + } + // If all conditions met, it's a potential event + return true; + }); + if (potentialEvents.length === 1) { + return potentialEvents[0].fromU8a(data); + } + throw new Error('Unable to determine event'); + }; + __internal__decodeEventV4 = record => { + const data = record.event.data[1]; + const index = data[0]; + const event = this.events[index]; + if (!event) { + throw new Error(`Unable to find event with index ${index}`); + } + return event.fromU8a(data.subarray(1)); + }; + /** + * Warning: Unstable API, bound to change + */ + decodeConstructor(data) { + return this.__internal__decodeMessage('message', this.constructors, data); + } + /** + * Warning: Unstable API, bound to change + */ + decodeMessage(data) { + return this.__internal__decodeMessage('message', this.messages, data); + } + findConstructor(constructorOrId) { + return findMessage(this.constructors, constructorOrId); + } + findMessage(messageOrId) { + return findMessage(this.messages, messageOrId); + } + __internal__createArgs = (args, spec) => { + return args.map(({ label, type }, index) => { + try { + if (!(0, util_1.isObject)(type)) { + throw new Error('Invalid type definition found'); + } + const displayName = type.displayName.length + ? type.displayName[type.displayName.length - 1].toString() + : undefined; + const camelName = (0, util_1.stringCamelCase)(label); + if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { + return { + name: camelName, + type: { + info: types_create_1.TypeDefInfo.Plain, + type: displayName, + }, + }; + } + const typeDef = this.registry.lookup.getTypeDef(type.type); + return { + name: camelName, + type: + displayName && !typeDef.type.startsWith(displayName) + ? { displayName, ...typeDef } + : typeDef, + }; + } catch (error) { + l.error(`Error expanding argument ${index} in ${(0, util_1.stringify)(spec)}`); + throw error; + } + }); + }; + __internal__createMessageParams = (args, spec) => { + return this.__internal__createArgs(args, spec); + }; + __internal__createEventParams = (args, spec) => { + const params = this.__internal__createArgs(args, spec); + return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); + }; + __internal__createEvent = index => { + // TODO TypeScript would narrow this type to the correct version, + // but version is `Text` so I need to call `toString()` here, + // which breaks the type inference. + switch (this.metadata.version.toString()) { + case '4': + return this.__internal__createEventV4(this.metadata.spec.events[index], index); + default: + return this.__internal__createEventV5(this.metadata.spec.events[index], index); + } + }; + __internal__createEventV5 = (spec, index) => { + const args = this.__internal__createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + event, + }), + identifier: [spec.module_path, spec.label].join('::'), + index, + signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, + }; + return event; + }; + __internal__createEventV4 = (spec, index) => { + const args = this.__internal__createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + event, + }), + identifier: spec.label.toString(), + index, + }; + return event; + }; + __internal__createMessage = (spec, index, add = {}) => { + const args = this.__internal__createMessageParams(spec.args, spec); + const identifier = spec.label.toString(); + const message = { + ...add, + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.__internal__decodeArgs(args, data), + message, + }), + identifier, + index, + isDefault: spec.default.isTrue, + method: (0, util_1.stringCamelCase)(identifier), + path: identifier.split('::').map(s => (0, util_1.stringCamelCase)(s)), + selector: spec.selector, + toU8a: params => this.__internal__encodeMessageArgs(spec, args, params), + }; + return message; + }; + __internal__decodeArgs = (args, data) => { + // for decoding we expect the input to be just the arg data, no selectors + // no length added (this allows use with events as well) + let offset = 0; + return args.map(({ type: { lookupName, type } }) => { + const value = this.registry.createType(lookupName || type, data.subarray(offset)); + offset += value.encodedLength; + return value; + }); + }; + __internal__decodeMessage = (type, list, data) => { + const [, trimmed] = (0, util_1.compactStripLength)(data); + const selector = trimmed.subarray(0, 4); + const message = list.find(m => m.selector.eq(selector)); + if (!message) { + throw new Error(`Unable to find ${type} with selector ${(0, util_1.u8aToHex)(selector)}`); + } + return message.fromU8a(trimmed.subarray(4)); + }; + __internal__encodeMessageArgs = ({ label, selector }, args, data) => { + if (data.length !== args.length) { + throw new Error( + `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, + ); + } + return (0, util_1.compactAddLength)( + (0, util_1.u8aConcat)( + this.registry.createType('ContractSelector', selector).toU8a(), + ...args.map(({ type: { lookupName, type } }, index) => + this.registry.createType(lookupName || type, data[index]).toU8a(), + ), + ), + ); + }; +} +exports.Abi = Abi; diff --git a/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts b/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts new file mode 100644 index 00000000..c3c505b2 --- /dev/null +++ b/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts @@ -0,0 +1,32 @@ +import type { ContractMetadataV4, ContractMetadataV5 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +import type { ContractMetadataSupported } from './index.js'; +export declare const enumVersions: readonly ['V5', 'V4', 'V3', 'V2', 'V1']; +type Versions = (typeof enumVersions)[number] | 'V0'; +type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; +export declare function v5ToLatestCompatible( + _registry: Registry, + v5: ContractMetadataV5, +): ContractMetadataV5; +export declare function v4ToLatestCompatible( + _registry: Registry, + v4: ContractMetadataV4, +): ContractMetadataV4; +export declare const v3ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV3, +) => ContractMetadataSupported; +export declare const v2ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV2, +) => ContractMetadataSupported; +export declare const v1ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV1, +) => ContractMetadataSupported; +export declare const v0ToLatestCompatible: ( + registry: Registry, + input: import('@polkadot/types/interfaces').ContractMetadataV0, +) => ContractMetadataSupported; +export declare const convertVersions: [Versions, Converter][]; +export {}; diff --git a/.api-contract/build/cjs/Abi/toLatestCompatible.js b/.api-contract/build/cjs/Abi/toLatestCompatible.js new file mode 100644 index 00000000..4c9ce0d7 --- /dev/null +++ b/.api-contract/build/cjs/Abi/toLatestCompatible.js @@ -0,0 +1,37 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.convertVersions = + exports.v0ToLatestCompatible = + exports.v1ToLatestCompatible = + exports.v2ToLatestCompatible = + exports.v3ToLatestCompatible = + exports.enumVersions = + void 0; +exports.v5ToLatestCompatible = v5ToLatestCompatible; +exports.v4ToLatestCompatible = v4ToLatestCompatible; +const toV1_js_1 = require('./toV1.js'); +const toV2_js_1 = require('./toV2.js'); +const toV3_js_1 = require('./toV3.js'); +const toV4_js_1 = require('./toV4.js'); +exports.enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1']; +function createConverter(next, step) { + return (registry, input) => next(registry, step(registry, input)); +} +function v5ToLatestCompatible(_registry, v5) { + return v5; +} +function v4ToLatestCompatible(_registry, v4) { + return v4; +} +exports.v3ToLatestCompatible = createConverter(v4ToLatestCompatible, toV4_js_1.v3ToV4); +exports.v2ToLatestCompatible = createConverter(exports.v3ToLatestCompatible, toV3_js_1.v2ToV3); +exports.v1ToLatestCompatible = createConverter(exports.v2ToLatestCompatible, toV2_js_1.v1ToV2); +exports.v0ToLatestCompatible = createConverter(exports.v1ToLatestCompatible, toV1_js_1.v0ToV1); +exports.convertVersions = [ + ['V5', v5ToLatestCompatible], + ['V4', v4ToLatestCompatible], + ['V3', exports.v3ToLatestCompatible], + ['V2', exports.v2ToLatestCompatible], + ['V1', exports.v1ToLatestCompatible], + ['V0', exports.v0ToLatestCompatible], +]; diff --git a/.api-contract/build/cjs/Abi/toV1.d.ts b/.api-contract/build/cjs/Abi/toV1.d.ts new file mode 100644 index 00000000..dc41ae43 --- /dev/null +++ b/.api-contract/build/cjs/Abi/toV1.d.ts @@ -0,0 +1,3 @@ +import type { ContractMetadataV0, ContractMetadataV1 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +export declare function v0ToV1(registry: Registry, v0: ContractMetadataV0): ContractMetadataV1; diff --git a/.api-contract/build/cjs/Abi/toV1.js b/.api-contract/build/cjs/Abi/toV1.js new file mode 100644 index 00000000..3d0f5ec1 --- /dev/null +++ b/.api-contract/build/cjs/Abi/toV1.js @@ -0,0 +1,27 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.v0ToV1 = v0ToV1; +const types_1 = require('@polkadot/types'); +const util_1 = require('@polkadot/util'); +function v0ToV1Names(all) { + return all.map(e => + (0, util_1.objectSpread)({}, e, { + name: Array.isArray(e.name) ? e.name : [e.name], + }), + ); +} +function v0ToV1(registry, v0) { + if (!v0.metadataVersion.length) { + throw new Error('Invalid format for V0 (detected) contract metadata'); + } + return registry.createType( + 'ContractMetadataV1', + (0, util_1.objectSpread)({}, v0, { + spec: (0, util_1.objectSpread)({}, v0.spec, { + constructors: v0ToV1Names(v0.spec.constructors), + messages: v0ToV1Names(v0.spec.messages), + }), + types: (0, types_1.convertSiV0toV1)(registry, v0.types), + }), + ); +} diff --git a/.api-contract/build/cjs/Abi/toV2.d.ts b/.api-contract/build/cjs/Abi/toV2.d.ts new file mode 100644 index 00000000..3de0aa9b --- /dev/null +++ b/.api-contract/build/cjs/Abi/toV2.d.ts @@ -0,0 +1,3 @@ +import type { ContractMetadataV1, ContractMetadataV2 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +export declare function v1ToV2(registry: Registry, v1: ContractMetadataV1): ContractMetadataV2; diff --git a/.api-contract/build/cjs/Abi/toV2.js b/.api-contract/build/cjs/Abi/toV2.js new file mode 100644 index 00000000..f1457e9d --- /dev/null +++ b/.api-contract/build/cjs/Abi/toV2.js @@ -0,0 +1,36 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.v1ToV2 = v1ToV2; +const util_1 = require('@polkadot/util'); +const ARG_TYPES = { + ContractConstructorSpec: 'ContractMessageParamSpecV2', + ContractEventSpec: 'ContractEventParamSpecV2', + ContractMessageSpec: 'ContractMessageParamSpecV2', +}; +function v1ToV2Label(entry) { + return (0, util_1.objectSpread)({}, entry, { + label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, + }); +} +function v1ToV2Labels(registry, outType, all) { + return all.map(e => + registry.createType( + `${outType}V2`, + (0, util_1.objectSpread)(v1ToV2Label(e), { + args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), + }), + ), + ); +} +function v1ToV2(registry, v1) { + return registry.createType( + 'ContractMetadataV2', + (0, util_1.objectSpread)({}, v1, { + spec: (0, util_1.objectSpread)({}, v1.spec, { + constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), + events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), + messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), + }), + }), + ); +} diff --git a/.api-contract/build/cjs/Abi/toV3.d.ts b/.api-contract/build/cjs/Abi/toV3.d.ts new file mode 100644 index 00000000..10cc0d67 --- /dev/null +++ b/.api-contract/build/cjs/Abi/toV3.d.ts @@ -0,0 +1,3 @@ +import type { ContractMetadataV2, ContractMetadataV3 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +export declare function v2ToV3(registry: Registry, v2: ContractMetadataV2): ContractMetadataV3; diff --git a/.api-contract/build/cjs/Abi/toV3.js b/.api-contract/build/cjs/Abi/toV3.js new file mode 100644 index 00000000..dfb56428 --- /dev/null +++ b/.api-contract/build/cjs/Abi/toV3.js @@ -0,0 +1,20 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.v2ToV3 = v2ToV3; +const util_1 = require('@polkadot/util'); +function v2ToV3(registry, v2) { + return registry.createType( + 'ContractMetadataV3', + (0, util_1.objectSpread)({}, v2, { + spec: (0, util_1.objectSpread)({}, v2.spec, { + constructors: v2.spec.constructors.map(c => + // V3 introduces the payable flag on constructors, for + registry.createType('ContractConstructorSpecV4', (0, util_1.objectSpread)({}, c)), + ), + messages: v3.spec.messages.map(m => + registry.createType('ContractMessageSpecV3', (0, util_1.objectSpread)({}, m)), + ), + }), + version: registry.createType('Text', '4'), + }), + ); +} diff --git a/.api-contract/build/cjs/augment.d.ts b/.api-contract/build/cjs/augment.d.ts new file mode 100644 index 00000000..40e6ced0 --- /dev/null +++ b/.api-contract/build/cjs/augment.d.ts @@ -0,0 +1 @@ +import '@polkadot/api-augment'; diff --git a/.api-contract/build/cjs/augment.js b/.api-contract/build/cjs/augment.js new file mode 100644 index 00000000..6464d66c --- /dev/null +++ b/.api-contract/build/cjs/augment.js @@ -0,0 +1,3 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +require('@polkadot/api-augment'); diff --git a/.api-contract/build/cjs/base/Base.d.ts b/.api-contract/build/cjs/base/Base.d.ts new file mode 100644 index 00000000..0c05a333 --- /dev/null +++ b/.api-contract/build/cjs/base/Base.d.ts @@ -0,0 +1,16 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Registry } from '@polkadot/types/types'; +import { Abi } from '../Abi/index.js'; +export declare abstract class Base { + readonly abi: Abi; + readonly api: ApiBase; + protected readonly _decorateMethod: DecorateMethod; + protected readonly _isWeightV1: boolean; + constructor( + api: ApiBase, + abi: string | Record | Abi, + decorateMethod: DecorateMethod, + ); + get registry(): Registry; +} diff --git a/.api-contract/build/cjs/base/Base.js b/.api-contract/build/cjs/base/Base.js new file mode 100644 index 00000000..c077097f --- /dev/null +++ b/.api-contract/build/cjs/base/Base.js @@ -0,0 +1,41 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Base = void 0; +const util_1 = require('@polkadot/util'); +const index_js_1 = require('../Abi/index.js'); +class Base { + abi; + api; + _decorateMethod; + _isWeightV1; + constructor(api, abi, decorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.revive || + !(0, util_1.isFunction)(api.tx.revive.instantiateWithCode) || + api.tx.revive.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.reviveApi || !(0, util_1.isFunction)(api.call.reviveApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', + ); + } + this.abi = + abi instanceof index_js_1.Abi + ? abi + : new index_js_1.Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + get registry() { + return this.api.registry; + } +} +exports.Base = Base; diff --git a/.api-contract/build/cjs/base/Blueprint.d.ts b/.api-contract/build/cjs/base/Blueprint.d.ts new file mode 100644 index 00000000..ce3a70cd --- /dev/null +++ b/.api-contract/build/cjs/base/Blueprint.d.ts @@ -0,0 +1,38 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Hash } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { Base } from './Base.js'; +import { Contract } from './Contract.js'; +export type BlueprintConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, +) => Blueprint; +export declare class BlueprintSubmittableResult< + ApiType extends ApiTypes, +> extends SubmittableResult { + readonly contract?: Contract | undefined; + constructor(result: ISubmittableResult, contract?: Contract); +} +export declare class Blueprint extends Base { + #private; + /** + * @description The on-chain code hash for this blueprint + */ + readonly codeHash: Hash; + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendBlueprint( + type: ApiType, + decorateMethod: DecorateMethod, +): BlueprintConstructor; diff --git a/.api-contract/build/cjs/base/Blueprint.js b/.api-contract/build/cjs/base/Blueprint.js new file mode 100644 index 00000000..55bdffaa --- /dev/null +++ b/.api-contract/build/cjs/base/Blueprint.js @@ -0,0 +1,83 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Blueprint = exports.BlueprintSubmittableResult = void 0; +exports.extendBlueprint = extendBlueprint; +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const Base_js_1 = require('./Base.js'); +const Contract_js_1 = require('./Contract.js'); +const util_js_1 = require('./util.js'); +class BlueprintSubmittableResult extends api_1.SubmittableResult { + contract; + constructor(result, contract) { + super(result); + this.contract = contract; + } +} +exports.BlueprintSubmittableResult = BlueprintSubmittableResult; +class Blueprint extends Base_js_1.Base { + /** + * @description The on-chain code hash for this blueprint + */ + codeHash; + __internal__tx = {}; + constructor(api, abi, codeHash, decorateMethod) { + super(api, abi, decorateMethod); + this.codeHash = this.registry.createType('Hash', codeHash); + this.abi.constructors.forEach(c => { + if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = (0, util_js_1.createBluePrintTx)(c, (o, p) => + this.__internal__deploy(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__deploy = ( + constructorOrId, + { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_1.convertWeight)(gasLimit).v1Weight + : (0, util_js_1.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + (0, util_js_1.encodeSalt)(salt), + ) + .withResultTransform( + result => + new BlueprintSubmittableResult( + result, + (() => { + if (result.status.isInBlock || result.status.isFinalized) { + return new Contract_js_1.Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ); + } + return undefined; + })(), + ), + ); + }; +} +exports.Blueprint = Blueprint; +function extendBlueprint(type, decorateMethod) { + return class extends Blueprint { + static __BlueprintType = type; + constructor(api, abi, codeHash) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-contract/build/cjs/base/Code.d.ts b/.api-contract/build/cjs/base/Code.d.ts new file mode 100644 index 00000000..ab612cef --- /dev/null +++ b/.api-contract/build/cjs/base/Code.d.ts @@ -0,0 +1,38 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { Base } from './Base.js'; +import { Blueprint } from './Blueprint.js'; +import { Contract } from './Contract.js'; +export type CodeConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, +) => Code; +export declare class CodeSubmittableResult extends SubmittableResult { + readonly blueprint?: Blueprint | undefined; + readonly contract?: Contract | undefined; + constructor( + result: ISubmittableResult, + blueprint?: Blueprint | undefined, + contract?: Contract | undefined, + ); +} +export declare class Code extends Base { + #private; + readonly code: Uint8Array; + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendCode( + type: ApiType, + decorateMethod: DecorateMethod, +): CodeConstructor; diff --git a/.api-contract/build/cjs/base/Code.js b/.api-contract/build/cjs/base/Code.js new file mode 100644 index 00000000..3a6f60a6 --- /dev/null +++ b/.api-contract/build/cjs/base/Code.js @@ -0,0 +1,94 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Code = exports.CodeSubmittableResult = void 0; +exports.extendCode = extendCode; +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const Base_js_1 = require('./Base.js'); +const Blueprint_js_1 = require('./Blueprint.js'); +const Contract_js_1 = require('./Contract.js'); +const util_js_1 = require('./util.js'); +class CodeSubmittableResult extends api_1.SubmittableResult { + blueprint; + contract; + constructor(result, blueprint, contract) { + super(result); + this.blueprint = blueprint; + this.contract = contract; + } +} +exports.CodeSubmittableResult = CodeSubmittableResult; +function isValidCode(code) { + return (0, util_1.isWasm)(code) || (0, util_1.isRiscV)(code); +} +class Code extends Base_js_1.Base { + code; + __internal__tx = {}; + constructor(api, abi, wasm, decorateMethod) { + super(api, abi, decorateMethod); + this.code = isValidCode(this.abi.info.source.wasm) + ? this.abi.info.source.wasm + : (0, util_1.u8aToU8a)(wasm); + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + this.abi.constructors.forEach(c => { + if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = (0, util_js_1.createBluePrintTx)(c, (o, p) => + this.__internal__instantiate(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__instantiate = ( + constructorOrId, + { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + console.log('in instantiate'); + console.log(this.abi.info.source.wasmHash); + return this.api.tx.revive + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_1.convertWeight)(gasLimit).v1Weight + : (0, util_js_1.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + (0, util_1.compactAddLength)(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + (0, util_js_1.encodeSalt)(salt), + ) + .withResultTransform( + result => + new CodeSubmittableResult( + result, + new Blueprint_js_1.Blueprint( + this.api, + this.abi, + this.abi.info.source.wasmHash, + this._decorateMethod, + ), + new Contract_js_1.Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ), + ), + ); + }; +} +exports.Code = Code; +function extendCode(type, decorateMethod) { + return class extends Code { + static __CodeType = type; + constructor(api, abi, wasm) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-contract/build/cjs/base/Contract.d.ts b/.api-contract/build/cjs/base/Contract.d.ts new file mode 100644 index 00000000..e60d7540 --- /dev/null +++ b/.api-contract/build/cjs/base/Contract.d.ts @@ -0,0 +1,37 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { DecodedEvent } from '../types.js'; +import type { MapMessageQuery, MapMessageTx } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { Base } from './Base.js'; +export type ContractConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, +) => Contract; +export declare class ContractSubmittableResult extends SubmittableResult { + readonly contractEvents?: DecodedEvent[] | undefined; + constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); +} +export declare class Contract extends Base { + #private; + /** + * @description The on-chain address for this contract + */ + readonly address: AccountId20; + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId20, + decorateMethod: DecorateMethod, + ); + get query(): MapMessageQuery; + get tx(): MapMessageTx; +} +export declare function extendContract( + type: ApiType, + decorateMethod: DecorateMethod, +): ContractConstructor; diff --git a/.api-contract/build/cjs/base/Contract.js b/.api-contract/build/cjs/base/Contract.js new file mode 100644 index 00000000..b3f5b9f5 --- /dev/null +++ b/.api-contract/build/cjs/base/Contract.js @@ -0,0 +1,164 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Contract = exports.ContractSubmittableResult = void 0; +exports.extendContract = extendContract; +const rxjs_1 = require('rxjs'); +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const util_js_1 = require('../util.js'); +const Base_js_1 = require('./Base.js'); +const util_js_2 = require('./util.js'); +const MAX_CALL_GAS = new util_1.BN(5_000_000_000_000).isub(util_1.BN_ONE); +const l = (0, util_1.logger)('Contract'); +function createQuery(meta, fn) { + return (0, util_js_2.withMeta)(meta, (origin, options, ...params) => fn(origin, options, params)); +} +function createTx(meta, fn) { + return (0, util_js_2.withMeta)(meta, (options, ...params) => fn(options, params)); +} +class ContractSubmittableResult extends api_1.SubmittableResult { + contractEvents; + constructor(result, contractEvents) { + super(result); + this.contractEvents = contractEvents; + } +} +exports.ContractSubmittableResult = ContractSubmittableResult; +class Contract extends Base_js_1.Base { + /** + * @description The on-chain address for this contract + */ + address; + __internal__query = {}; + __internal__tx = {}; + constructor(api, abi, address, decorateMethod) { + super(api, abi, decorateMethod); + this.address = this.registry.createType('AccountId20', address); + this.abi.messages.forEach(m => { + if ((0, util_1.isUndefined)(this.__internal__tx[m.method])) { + this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); + } + if ((0, util_1.isUndefined)(this.__internal__query[m.method])) { + this.__internal__query[m.method] = createQuery(m, (f, o, p) => + this.__internal__read(m, o, p).send(f), + ); + } + }); + } + get query() { + return this.__internal__query; + } + get tx() { + return this.__internal__tx; + } + __internal__getGas = (_gasLimit, isCall = false) => { + const weight = (0, util_js_2.convertWeight)(_gasLimit); + if (weight.v1Weight.gt(util_1.BN_ZERO)) { + return weight; + } + return (0, util_js_2.convertWeight)( + isCall + ? MAX_CALL_GAS + : (0, util_js_2.convertWeight)( + this.api.consts.system.blockWeights + ? this.api.consts.system.blockWeights.maxBlock + : this.api.consts.system['maximumBlockWeight'], + ) + .v1Weight.muln(64) + .div(util_1.BN_HUNDRED), + ); + }; + __internal__exec = ( + messageOrId, + { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_2.convertWeight)(gasLimit).v1Weight + : (0, util_js_2.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + result => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + (0, util_js_1.applyOnEvent)(result, ['ContractEmitted', 'ContractExecution'], records => + records + .map(record => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${error.message}`); + return null; + } + }) + .filter(decoded => !!decoded), + ), + ), + ); + }; + __internal__read = ( + messageOrId, + { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + const message = this.abi.findMessage(messageOrId); + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod(origin => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.__internal__getGas(gasLimit, true).v1Weight + : this.__internal__getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + (0, rxjs_1.map)( + ({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !(0, util_js_2.convertWeight)(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + }), + ), + ), + ), + }; + }; +} +exports.Contract = Contract; +function extendContract(type, decorateMethod) { + return class extends Contract { + static __ContractType = type; + constructor(api, abi, address) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-contract/build/cjs/base/index.d.ts b/.api-contract/build/cjs/base/index.d.ts new file mode 100644 index 00000000..905b4515 --- /dev/null +++ b/.api-contract/build/cjs/base/index.d.ts @@ -0,0 +1,3 @@ +export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { Contract, extendContract } from './Contract.js'; diff --git a/.api-contract/build/cjs/base/index.js b/.api-contract/build/cjs/base/index.js new file mode 100644 index 00000000..742b6bbc --- /dev/null +++ b/.api-contract/build/cjs/base/index.js @@ -0,0 +1,62 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.extendContract = + exports.Contract = + exports.extendCode = + exports.CodeSubmittableResult = + exports.Code = + exports.extendBlueprint = + exports.BlueprintSubmittableResult = + exports.Blueprint = + void 0; +var Blueprint_js_1 = require('./Blueprint.js'); +Object.defineProperty(exports, 'Blueprint', { + enumerable: true, + get: function () { + return Blueprint_js_1.Blueprint; + }, +}); +Object.defineProperty(exports, 'BlueprintSubmittableResult', { + enumerable: true, + get: function () { + return Blueprint_js_1.BlueprintSubmittableResult; + }, +}); +Object.defineProperty(exports, 'extendBlueprint', { + enumerable: true, + get: function () { + return Blueprint_js_1.extendBlueprint; + }, +}); +var Code_js_1 = require('./Code.js'); +Object.defineProperty(exports, 'Code', { + enumerable: true, + get: function () { + return Code_js_1.Code; + }, +}); +Object.defineProperty(exports, 'CodeSubmittableResult', { + enumerable: true, + get: function () { + return Code_js_1.CodeSubmittableResult; + }, +}); +Object.defineProperty(exports, 'extendCode', { + enumerable: true, + get: function () { + return Code_js_1.extendCode; + }, +}); +var Contract_js_1 = require('./Contract.js'); +Object.defineProperty(exports, 'Contract', { + enumerable: true, + get: function () { + return Contract_js_1.Contract; + }, +}); +Object.defineProperty(exports, 'extendContract', { + enumerable: true, + get: function () { + return Contract_js_1.extendContract; + }, +}); diff --git a/.api-contract/build/cjs/base/mock.d.ts b/.api-contract/build/cjs/base/mock.d.ts new file mode 100644 index 00000000..51f21099 --- /dev/null +++ b/.api-contract/build/cjs/base/mock.d.ts @@ -0,0 +1,2 @@ +import type { ApiBase } from '@polkadot/api/base'; +export declare const mockApi: ApiBase<'promise'>; diff --git a/.api-contract/build/cjs/base/mock.js b/.api-contract/build/cjs/base/mock.js new file mode 100644 index 00000000..59ffb46e --- /dev/null +++ b/.api-contract/build/cjs/base/mock.js @@ -0,0 +1,25 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.mockApi = void 0; +const types_1 = require('@polkadot/types'); +const registry = new types_1.TypeRegistry(); +const instantiateWithCode = () => { + throw new Error('mock'); +}; +instantiateWithCode.meta = { args: new Array(6) }; +exports.mockApi = { + call: { + contractsApi: { + call: () => { + throw new Error('mock'); + }, + }, + }, + isConnected: true, + registry, + tx: { + contracts: { + instantiateWithCode, + }, + }, +}; diff --git a/.api-contract/build/cjs/base/types.d.ts b/.api-contract/build/cjs/base/types.d.ts new file mode 100644 index 00000000..1841c9b7 --- /dev/null +++ b/.api-contract/build/cjs/base/types.d.ts @@ -0,0 +1,40 @@ +import type { Observable } from 'rxjs'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes, ObsInnerType } from '@polkadot/api/types'; +import type { AccountId } from '@polkadot/types/interfaces'; +import type { + AbiMessage, + BlueprintOptions, + ContractCallOutcome, + ContractOptions, +} from '../types.js'; +export interface MessageMeta { + readonly meta: AbiMessage; +} +export interface BlueprintDeploy extends MessageMeta { + (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; +} +export interface ContractQuery extends MessageMeta { + ( + origin: AccountId | string | Uint8Array, + options: ContractOptions, + ...params: unknown[] + ): ContractCallResult; +} +export interface ContractTx extends MessageMeta { + (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; +} +export type ContractGeneric = ( + messageOrId: AbiMessage | string | number, + options: O, + ...params: unknown[] +) => T; +export type ContractCallResult = ApiType extends 'rxjs' + ? Observable + : Promise>>; +export interface ContractCallSend { + send(account: string | AccountId | Uint8Array): ContractCallResult; +} +export type MapConstructorExec = Record>; +export type MapMessageTx = Record>; +export type MapMessageQuery = Record>; diff --git a/.api-contract/build/cjs/base/types.js b/.api-contract/build/cjs/base/types.js new file mode 100644 index 00000000..db8b17d5 --- /dev/null +++ b/.api-contract/build/cjs/base/types.js @@ -0,0 +1,2 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build/cjs/base/util.d.ts b/.api-contract/build/cjs/base/util.d.ts new file mode 100644 index 00000000..27d26904 --- /dev/null +++ b/.api-contract/build/cjs/base/util.d.ts @@ -0,0 +1,31 @@ +import type { SubmittableResult } from '@polkadot/api'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes } from '@polkadot/api/types'; +import type { WeightV1, WeightV2 } from '@polkadot/types/interfaces'; +import type { BN } from '@polkadot/util'; +import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.js'; +import type { BlueprintDeploy, ContractGeneric } from './types.js'; +export declare const EMPTY_SALT: Uint8Array; +export declare function withMeta< + T extends { + meta: AbiMessage; + }, +>(meta: AbiMessage, creator: Omit): T; +export declare function createBluePrintTx( + meta: AbiMessage, + fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic, +): BlueprintDeploy; +export declare function createBluePrintWithId( + fn: ( + constructorOrId: AbiConstructor | string | number, + options: BlueprintOptions, + params: unknown[], + ) => T, +): ContractGeneric; +export declare function encodeSalt(salt?: Uint8Array | string | null): Uint8Array; +export declare function convertWeight( + weight: WeightV1 | WeightV2 | bigint | string | number | BN, +): WeightAll; +export declare function isWeightV2( + weight: WeightV1 | WeightV2 | bigint | string | number | BN, +): weight is WeightV2; diff --git a/.api-contract/build/cjs/base/util.js b/.api-contract/build/cjs/base/util.js new file mode 100644 index 00000000..1a1a14f5 --- /dev/null +++ b/.api-contract/build/cjs/base/util.js @@ -0,0 +1,42 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.EMPTY_SALT = void 0; +exports.withMeta = withMeta; +exports.createBluePrintTx = createBluePrintTx; +exports.createBluePrintWithId = createBluePrintWithId; +exports.encodeSalt = encodeSalt; +exports.convertWeight = convertWeight; +exports.isWeightV2 = isWeightV2; +const types_1 = require('@polkadot/types'); +const util_1 = require('@polkadot/util'); +const util_crypto_1 = require('@polkadot/util-crypto'); +exports.EMPTY_SALT = new Uint8Array(); +function withMeta(meta, creator) { + creator.meta = meta; + return creator; +} +function createBluePrintTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); +} +function createBluePrintWithId(fn) { + return (constructorOrId, options, ...params) => fn(constructorOrId, options, params); +} +function encodeSalt(salt = (0, util_crypto_1.randomAsU8a)()) { + return salt instanceof types_1.Bytes + ? salt + : salt?.length + ? (0, util_1.compactAddLength)((0, util_1.u8aToU8a)(salt)) + : exports.EMPTY_SALT; +} +function convertWeight(weight) { + const [refTime, proofSize] = isWeightV2(weight) + ? [weight.refTime.toBn(), weight.proofSize.toBn()] + : [(0, util_1.bnToBn)(weight), undefined]; + return { + v1Weight: refTime, + v2Weight: { proofSize, refTime }, + }; +} +function isWeightV2(weight) { + return !!weight.proofSize; +} diff --git a/.api-contract/build/cjs/bundle.d.ts b/.api-contract/build/cjs/bundle.d.ts new file mode 100644 index 00000000..d087e9db --- /dev/null +++ b/.api-contract/build/cjs/bundle.d.ts @@ -0,0 +1,4 @@ +export { Abi } from './Abi/index.js'; +export { packageInfo } from './packageInfo.js'; +export * from './promise/index.js'; +export * from './rx/index.js'; diff --git a/.api-contract/build/cjs/bundle.js b/.api-contract/build/cjs/bundle.js new file mode 100644 index 00000000..0f1f8f06 --- /dev/null +++ b/.api-contract/build/cjs/bundle.js @@ -0,0 +1,20 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.packageInfo = exports.Abi = void 0; +const tslib_1 = require('tslib'); +var index_js_1 = require('./Abi/index.js'); +Object.defineProperty(exports, 'Abi', { + enumerable: true, + get: function () { + return index_js_1.Abi; + }, +}); +var packageInfo_js_1 = require('./packageInfo.js'); +Object.defineProperty(exports, 'packageInfo', { + enumerable: true, + get: function () { + return packageInfo_js_1.packageInfo; + }, +}); +tslib_1.__exportStar(require('./promise/index.js'), exports); +tslib_1.__exportStar(require('./rx/index.js'), exports); diff --git a/.api-contract/build/cjs/index.d.ts b/.api-contract/build/cjs/index.d.ts new file mode 100644 index 00000000..ca3f403b --- /dev/null +++ b/.api-contract/build/cjs/index.d.ts @@ -0,0 +1,2 @@ +import './packageDetect.js'; +export * from './bundle.js'; diff --git a/.api-contract/build/cjs/index.js b/.api-contract/build/cjs/index.js new file mode 100644 index 00000000..509038d7 --- /dev/null +++ b/.api-contract/build/cjs/index.js @@ -0,0 +1,5 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +const tslib_1 = require('tslib'); +require('./packageDetect.js'); +tslib_1.__exportStar(require('./bundle.js'), exports); diff --git a/.api-contract/build/cjs/package.json b/.api-contract/build/cjs/package.json new file mode 100644 index 00000000..5bbefffb --- /dev/null +++ b/.api-contract/build/cjs/package.json @@ -0,0 +1,3 @@ +{ + "type": "commonjs" +} diff --git a/.api-contract/build/cjs/packageDetect.d.ts b/.api-contract/build/cjs/packageDetect.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/.api-contract/build/cjs/packageDetect.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/.api-contract/build/cjs/packageDetect.js b/.api-contract/build/cjs/packageDetect.js new file mode 100644 index 00000000..dbbd6594 --- /dev/null +++ b/.api-contract/build/cjs/packageDetect.js @@ -0,0 +1,10 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +const packageInfo_1 = require('@polkadot/api/cjs/packageInfo'); +const packageInfo_2 = require('@polkadot/types/cjs/packageInfo'); +const util_1 = require('@polkadot/util'); +const packageInfo_js_1 = require('./packageInfo.js'); +(0, util_1.detectPackage)(packageInfo_js_1.packageInfo, null, [ + packageInfo_1.packageInfo, + packageInfo_2.packageInfo, +]); diff --git a/.api-contract/build/cjs/packageInfo.d.ts b/.api-contract/build/cjs/packageInfo.d.ts new file mode 100644 index 00000000..1b6c408b --- /dev/null +++ b/.api-contract/build/cjs/packageInfo.d.ts @@ -0,0 +1,6 @@ +export declare const packageInfo: { + name: string; + path: string; + type: string; + version: string; +}; diff --git a/.api-contract/build/cjs/packageInfo.js b/.api-contract/build/cjs/packageInfo.js new file mode 100644 index 00000000..39a18613 --- /dev/null +++ b/.api-contract/build/cjs/packageInfo.js @@ -0,0 +1,9 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.packageInfo = void 0; +exports.packageInfo = { + name: '@polkadot/api-contract', + path: typeof __dirname === 'string' ? __dirname : 'auto', + type: 'cjs', + version: '15.8.1', +}; diff --git a/.api-contract/build/cjs/promise/index.d.ts b/.api-contract/build/cjs/promise/index.d.ts new file mode 100644 index 00000000..43b9620a --- /dev/null +++ b/.api-contract/build/cjs/promise/index.d.ts @@ -0,0 +1,25 @@ +import type { ApiPromise } from '@polkadot/api'; +import type { AccountId20, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import { Blueprint, Code, Contract } from '../base/index.js'; +export declare class BlueprintPromise extends Blueprint<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ); +} +export declare class CodePromise extends Code<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractPromise extends Contract<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId20, + ); +} diff --git a/.api-contract/build/cjs/promise/index.js b/.api-contract/build/cjs/promise/index.js new file mode 100644 index 00000000..d77ad7db --- /dev/null +++ b/.api-contract/build/cjs/promise/index.js @@ -0,0 +1,23 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.ContractPromise = exports.CodePromise = exports.BlueprintPromise = void 0; +const api_1 = require('@polkadot/api'); +const index_js_1 = require('../base/index.js'); +class BlueprintPromise extends index_js_1.Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, api_1.toPromiseMethod); + } +} +exports.BlueprintPromise = BlueprintPromise; +class CodePromise extends index_js_1.Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, api_1.toPromiseMethod); + } +} +exports.CodePromise = CodePromise; +class ContractPromise extends index_js_1.Contract { + constructor(api, abi, address) { + super(api, abi, address, api_1.toPromiseMethod); + } +} +exports.ContractPromise = ContractPromise; diff --git a/.api-contract/build/cjs/promise/types.d.ts b/.api-contract/build/cjs/promise/types.d.ts new file mode 100644 index 00000000..7784ef2c --- /dev/null +++ b/.api-contract/build/cjs/promise/types.d.ts @@ -0,0 +1,6 @@ +import type { + BlueprintSubmittableResult as BaseBlueprintSubmittableResult, + CodeSubmittableResult as BaseCodeSubmittableResult, +} from '../base/index.js'; +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build/cjs/promise/types.js b/.api-contract/build/cjs/promise/types.js new file mode 100644 index 00000000..db8b17d5 --- /dev/null +++ b/.api-contract/build/cjs/promise/types.js @@ -0,0 +1,2 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build/cjs/rx/index.d.ts b/.api-contract/build/cjs/rx/index.d.ts new file mode 100644 index 00000000..1357b476 --- /dev/null +++ b/.api-contract/build/cjs/rx/index.d.ts @@ -0,0 +1,17 @@ +import type { ApiRx } from '@polkadot/api'; +import type { AccountId, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import { Blueprint, Code, Contract } from '../base/index.js'; +export declare class BlueprintRx extends Blueprint<'rxjs'> { + constructor(api: ApiRx, abi: string | Record | Abi, codeHash: string | Hash); +} +export declare class CodeRx extends Code<'rxjs'> { + constructor( + api: ApiRx, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractRx extends Contract<'rxjs'> { + constructor(api: ApiRx, abi: string | Record | Abi, address: string | AccountId); +} diff --git a/.api-contract/build/cjs/rx/index.js b/.api-contract/build/cjs/rx/index.js new file mode 100644 index 00000000..6846d72a --- /dev/null +++ b/.api-contract/build/cjs/rx/index.js @@ -0,0 +1,23 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.ContractRx = exports.CodeRx = exports.BlueprintRx = void 0; +const api_1 = require('@polkadot/api'); +const index_js_1 = require('../base/index.js'); +class BlueprintRx extends index_js_1.Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, api_1.toRxMethod); + } +} +exports.BlueprintRx = BlueprintRx; +class CodeRx extends index_js_1.Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, api_1.toRxMethod); + } +} +exports.CodeRx = CodeRx; +class ContractRx extends index_js_1.Contract { + constructor(api, abi, address) { + super(api, abi, address, api_1.toRxMethod); + } +} +exports.ContractRx = ContractRx; diff --git a/.api-contract/build/cjs/rx/types.d.ts b/.api-contract/build/cjs/rx/types.d.ts new file mode 100644 index 00000000..7784ef2c --- /dev/null +++ b/.api-contract/build/cjs/rx/types.d.ts @@ -0,0 +1,6 @@ +import type { + BlueprintSubmittableResult as BaseBlueprintSubmittableResult, + CodeSubmittableResult as BaseCodeSubmittableResult, +} from '../base/index.js'; +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build/cjs/rx/types.js b/.api-contract/build/cjs/rx/types.js new file mode 100644 index 00000000..db8b17d5 --- /dev/null +++ b/.api-contract/build/cjs/rx/types.js @@ -0,0 +1,2 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build/cjs/types.d.ts b/.api-contract/build/cjs/types.d.ts new file mode 100644 index 00000000..b535e85a --- /dev/null +++ b/.api-contract/build/cjs/types.d.ts @@ -0,0 +1,85 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes } from '@polkadot/api/types'; +import type { Text } from '@polkadot/types'; +import type { + ContractExecResultResult, + ContractSelector, + StorageDeposit, + Weight, + WeightV2, +} from '@polkadot/types/interfaces'; +import type { Codec, TypeDef } from '@polkadot/types/types'; +import type { BN } from '@polkadot/util'; +import type { HexString } from '@polkadot/util/types'; +import type { Abi } from './index.js'; +export interface ContractBase { + readonly abi: Abi; + readonly api: ApiBase; + getMessage: (name: string) => AbiMessage; + messages: AbiMessage[]; +} +export interface AbiParam { + name: string; + type: TypeDef; +} +export type AbiMessageParam = AbiParam; +export interface AbiEventParam extends AbiParam { + indexed: boolean; +} +export interface AbiEvent { + args: AbiEventParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedEvent; + identifier: string; + index: number; + signatureTopic?: HexString | null; +} +export interface AbiMessage { + args: AbiMessageParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedMessage; + identifier: string; + index: number; + isConstructor?: boolean; + isDefault?: boolean; + isMutating?: boolean; + isPayable?: boolean; + method: string; + path: string[]; + returnType?: TypeDef | null; + selector: ContractSelector; + toU8a: (params: unknown[]) => Uint8Array; +} +export type AbiConstructor = AbiMessage; +export type InterfaceContractCalls = Record; +export interface ContractCallOutcome { + debugMessage: Text; + gasConsumed: Weight; + gasRequired: Weight; + output: Codec | null; + result: ContractExecResultResult; + storageDeposit: StorageDeposit; +} +export interface DecodedEvent { + args: Codec[]; + event: AbiEvent; +} +export interface DecodedMessage { + args: Codec[]; + message: AbiMessage; +} +export interface ContractOptions { + gasLimit?: bigint | string | number | BN | WeightV2; + storageDepositLimit?: bigint | string | number | BN | null; + value?: bigint | BN | string | number; +} +export interface BlueprintOptions extends ContractOptions { + salt?: Uint8Array | string | null; +} +export interface WeightAll { + v1Weight: BN; + v2Weight: { + refTime: BN; + proofSize?: BN | undefined; + }; +} diff --git a/.api-contract/build/cjs/types.js b/.api-contract/build/cjs/types.js new file mode 100644 index 00000000..db8b17d5 --- /dev/null +++ b/.api-contract/build/cjs/types.js @@ -0,0 +1,2 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build/cjs/util.d.ts b/.api-contract/build/cjs/util.d.ts new file mode 100644 index 00000000..60682eff --- /dev/null +++ b/.api-contract/build/cjs/util.d.ts @@ -0,0 +1,9 @@ +import type { SubmittableResult } from '@polkadot/api'; +import type { EventRecord } from '@polkadot/types/interfaces'; +type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; +export declare function applyOnEvent( + result: SubmittableResult, + types: ContractEvents[], + fn: (records: EventRecord[]) => T, +): T | undefined; +export {}; diff --git a/.api-contract/build/cjs/util.js b/.api-contract/build/cjs/util.js new file mode 100644 index 00000000..ae77e3ce --- /dev/null +++ b/.api-contract/build/cjs/util.js @@ -0,0 +1,12 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.applyOnEvent = applyOnEvent; +function applyOnEvent(result, types, fn) { + if (result.isInBlock || result.isFinalized) { + const records = result.filterRecords('contracts', types); + if (records.length) { + return fn(records); + } + } + return undefined; +} diff --git a/.api-contract/build/index.d.ts b/.api-contract/build/index.d.ts new file mode 100644 index 00000000..ca3f403b --- /dev/null +++ b/.api-contract/build/index.d.ts @@ -0,0 +1,2 @@ +import './packageDetect.js'; +export * from './bundle.js'; diff --git a/.api-contract/build/index.js b/.api-contract/build/index.js new file mode 100644 index 00000000..ca3f403b --- /dev/null +++ b/.api-contract/build/index.js @@ -0,0 +1,2 @@ +import './packageDetect.js'; +export * from './bundle.js'; diff --git a/.api-contract/build/package.json b/.api-contract/build/package.json new file mode 100644 index 00000000..efb638cd --- /dev/null +++ b/.api-contract/build/package.json @@ -0,0 +1,408 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/polkadot-js/api/issues", + "description": "Interfaces for interacting with contracts and contract ABIs", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme", + "license": "Apache-2.0", + "name": "@polkadot/api-contract", + "repository": { + "directory": "packages/api-contract", + "type": "git", + "url": "https://github.com/polkadot-js/api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./cjs/packageDetect.js" + ], + "type": "module", + "version": "15.8.1", + "main": "./cjs/index.js", + "module": "./index.js", + "types": "./index.d.ts", + "exports": { + "./cjs/package.json": "./cjs/package.json", + "./cjs/*": "./cjs/*.js", + ".": { + "module": { + "types": "./index.d.ts", + "default": "./index.js" + }, + "require": { + "types": "./cjs/index.d.ts", + "default": "./cjs/index.js" + }, + "default": { + "types": "./index.d.ts", + "default": "./index.js" + } + }, + "./Abi": { + "module": { + "types": "./Abi/index.d.ts", + "default": "./Abi/index.js" + }, + "require": { + "types": "./cjs/Abi/index.d.ts", + "default": "./cjs/Abi/index.js" + }, + "default": { + "types": "./Abi/index.d.ts", + "default": "./Abi/index.js" + } + }, + "./Abi/toLatestCompatible": { + "module": { + "types": "./Abi/toLatestCompatible.d.ts", + "default": "./Abi/toLatestCompatible.js" + }, + "require": { + "types": "./cjs/Abi/toLatestCompatible.d.ts", + "default": "./cjs/Abi/toLatestCompatible.js" + }, + "default": { + "types": "./Abi/toLatestCompatible.d.ts", + "default": "./Abi/toLatestCompatible.js" + } + }, + "./Abi/toV1": { + "module": { + "types": "./Abi/toV1.d.ts", + "default": "./Abi/toV1.js" + }, + "require": { + "types": "./cjs/Abi/toV1.d.ts", + "default": "./cjs/Abi/toV1.js" + }, + "default": { + "types": "./Abi/toV1.d.ts", + "default": "./Abi/toV1.js" + } + }, + "./Abi/toV2": { + "module": { + "types": "./Abi/toV2.d.ts", + "default": "./Abi/toV2.js" + }, + "require": { + "types": "./cjs/Abi/toV2.d.ts", + "default": "./cjs/Abi/toV2.js" + }, + "default": { + "types": "./Abi/toV2.d.ts", + "default": "./Abi/toV2.js" + } + }, + "./Abi/toV3": { + "module": { + "types": "./Abi/toV3.d.ts", + "default": "./Abi/toV3.js" + }, + "require": { + "types": "./cjs/Abi/toV3.d.ts", + "default": "./cjs/Abi/toV3.js" + }, + "default": { + "types": "./Abi/toV3.d.ts", + "default": "./Abi/toV3.js" + } + }, + "./Abi/toV4": { + "module": { + "types": "./Abi/toV4.d.ts", + "default": "./Abi/toV4.js" + }, + "require": { + "types": "./cjs/Abi/toV4.d.ts", + "default": "./cjs/Abi/toV4.js" + }, + "default": { + "types": "./Abi/toV4.d.ts", + "default": "./Abi/toV4.js" + } + }, + "./augment": { + "module": { + "types": "./augment.d.ts", + "default": "./augment.js" + }, + "require": { + "types": "./cjs/augment.d.ts", + "default": "./cjs/augment.js" + }, + "default": { + "types": "./augment.d.ts", + "default": "./augment.js" + } + }, + "./base": { + "module": { + "types": "./base/index.d.ts", + "default": "./base/index.js" + }, + "require": { + "types": "./cjs/base/index.d.ts", + "default": "./cjs/base/index.js" + }, + "default": { + "types": "./base/index.d.ts", + "default": "./base/index.js" + } + }, + "./base/Base": { + "module": { + "types": "./base/Base.d.ts", + "default": "./base/Base.js" + }, + "require": { + "types": "./cjs/base/Base.d.ts", + "default": "./cjs/base/Base.js" + }, + "default": { + "types": "./base/Base.d.ts", + "default": "./base/Base.js" + } + }, + "./base/Blueprint": { + "module": { + "types": "./base/Blueprint.d.ts", + "default": "./base/Blueprint.js" + }, + "require": { + "types": "./cjs/base/Blueprint.d.ts", + "default": "./cjs/base/Blueprint.js" + }, + "default": { + "types": "./base/Blueprint.d.ts", + "default": "./base/Blueprint.js" + } + }, + "./base/Code": { + "module": { + "types": "./base/Code.d.ts", + "default": "./base/Code.js" + }, + "require": { + "types": "./cjs/base/Code.d.ts", + "default": "./cjs/base/Code.js" + }, + "default": { + "types": "./base/Code.d.ts", + "default": "./base/Code.js" + } + }, + "./base/Contract": { + "module": { + "types": "./base/Contract.d.ts", + "default": "./base/Contract.js" + }, + "require": { + "types": "./cjs/base/Contract.d.ts", + "default": "./cjs/base/Contract.js" + }, + "default": { + "types": "./base/Contract.d.ts", + "default": "./base/Contract.js" + } + }, + "./base/mock": { + "module": { + "types": "./base/mock.d.ts", + "default": "./base/mock.js" + }, + "require": { + "types": "./cjs/base/mock.d.ts", + "default": "./cjs/base/mock.js" + }, + "default": { + "types": "./base/mock.d.ts", + "default": "./base/mock.js" + } + }, + "./base/types": { + "module": { + "types": "./base/types.d.ts", + "default": "./base/types.js" + }, + "require": { + "types": "./cjs/base/types.d.ts", + "default": "./cjs/base/types.js" + }, + "default": { + "types": "./base/types.d.ts", + "default": "./base/types.js" + } + }, + "./base/util": { + "module": { + "types": "./base/util.d.ts", + "default": "./base/util.js" + }, + "require": { + "types": "./cjs/base/util.d.ts", + "default": "./cjs/base/util.js" + }, + "default": { + "types": "./base/util.d.ts", + "default": "./base/util.js" + } + }, + "./bundle": { + "module": { + "types": "./bundle.d.ts", + "default": "./bundle.js" + }, + "require": { + "types": "./cjs/bundle.d.ts", + "default": "./cjs/bundle.js" + }, + "default": { + "types": "./bundle.d.ts", + "default": "./bundle.js" + } + }, + "./package.json": { + "require": "./cjs/package.json", + "default": "./package.json" + }, + "./packageDetect": { + "module": { + "types": "./packageDetect.d.ts", + "default": "./packageDetect.js" + }, + "require": { + "types": "./cjs/packageDetect.d.ts", + "default": "./cjs/packageDetect.js" + }, + "default": { + "types": "./packageDetect.d.ts", + "default": "./packageDetect.js" + } + }, + "./packageInfo.js": { + "module": { + "types": "./packageInfo.d.ts", + "default": "./packageInfo.js" + }, + "require": { + "types": "./cjs/packageInfo.d.ts", + "default": "./cjs/packageInfo.js" + }, + "default": { + "types": "./packageInfo.d.ts", + "default": "./packageInfo.js" + } + }, + "./packageInfo": { + "module": { + "types": "./packageInfo.d.ts", + "default": "./packageInfo.js" + }, + "require": { + "types": "./cjs/packageInfo.d.ts", + "default": "./cjs/packageInfo.js" + }, + "default": { + "types": "./packageInfo.d.ts", + "default": "./packageInfo.js" + } + }, + "./promise": { + "module": { + "types": "./promise/index.d.ts", + "default": "./promise/index.js" + }, + "require": { + "types": "./cjs/promise/index.d.ts", + "default": "./cjs/promise/index.js" + }, + "default": { + "types": "./promise/index.d.ts", + "default": "./promise/index.js" + } + }, + "./promise/types": { + "module": { + "types": "./promise/types.d.ts", + "default": "./promise/types.js" + }, + "require": { + "types": "./cjs/promise/types.d.ts", + "default": "./cjs/promise/types.js" + }, + "default": { + "types": "./promise/types.d.ts", + "default": "./promise/types.js" + } + }, + "./rx": { + "module": { + "types": "./rx/index.d.ts", + "default": "./rx/index.js" + }, + "require": { + "types": "./cjs/rx/index.d.ts", + "default": "./cjs/rx/index.js" + }, + "default": { + "types": "./rx/index.d.ts", + "default": "./rx/index.js" + } + }, + "./rx/types": { + "module": { + "types": "./rx/types.d.ts", + "default": "./rx/types.js" + }, + "require": { + "types": "./cjs/rx/types.d.ts", + "default": "./cjs/rx/types.js" + }, + "default": { + "types": "./rx/types.d.ts", + "default": "./rx/types.js" + } + }, + "./types": { + "module": { + "types": "./types.d.ts", + "default": "./types.js" + }, + "require": { + "types": "./cjs/types.d.ts", + "default": "./cjs/types.js" + }, + "default": { + "types": "./types.d.ts", + "default": "./types.js" + } + }, + "./util": { + "module": { + "types": "./util.d.ts", + "default": "./util.js" + }, + "require": { + "types": "./cjs/util.d.ts", + "default": "./cjs/util.js" + }, + "default": { + "types": "./util.d.ts", + "default": "./util.js" + } + } + }, + "dependencies": { + "@polkadot/api": "15.8.1", + "@polkadot/api-augment": "15.8.1", + "@polkadot/types": "15.8.1", + "@polkadot/types-codec": "15.8.1", + "@polkadot/types-create": "15.8.1", + "@polkadot/util": "^13.4.3", + "@polkadot/util-crypto": "^13.4.3", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + } +} diff --git a/.api-contract/build/packageDetect.d.ts b/.api-contract/build/packageDetect.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/.api-contract/build/packageDetect.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/.api-contract/build/packageDetect.js b/.api-contract/build/packageDetect.js new file mode 100644 index 00000000..71d2439c --- /dev/null +++ b/.api-contract/build/packageDetect.js @@ -0,0 +1,5 @@ +import { packageInfo as apiInfo } from '@polkadot/api/packageInfo'; +import { packageInfo as typesInfo } from '@polkadot/types/packageInfo'; +import { detectPackage } from '@polkadot/util'; +import { packageInfo } from './packageInfo.js'; +detectPackage(packageInfo, null, [apiInfo, typesInfo]); diff --git a/.api-contract/build/packageInfo.d.ts b/.api-contract/build/packageInfo.d.ts new file mode 100644 index 00000000..1b6c408b --- /dev/null +++ b/.api-contract/build/packageInfo.d.ts @@ -0,0 +1,6 @@ +export declare const packageInfo: { + name: string; + path: string; + type: string; + version: string; +}; diff --git a/.api-contract/build/packageInfo.js b/.api-contract/build/packageInfo.js new file mode 100644 index 00000000..0d90c7dc --- /dev/null +++ b/.api-contract/build/packageInfo.js @@ -0,0 +1,12 @@ +export const packageInfo = { + name: '@polkadot/api-contract', + path: + import.meta && import.meta.url + ? new URL(import.meta.url).pathname.substring( + 0, + new URL(import.meta.url).pathname.lastIndexOf('/') + 1, + ) + : 'auto', + type: 'esm', + version: '15.8.1', +}; diff --git a/.api-contract/build/promise/index.d.ts b/.api-contract/build/promise/index.d.ts new file mode 100644 index 00000000..43b9620a --- /dev/null +++ b/.api-contract/build/promise/index.d.ts @@ -0,0 +1,25 @@ +import type { ApiPromise } from '@polkadot/api'; +import type { AccountId20, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import { Blueprint, Code, Contract } from '../base/index.js'; +export declare class BlueprintPromise extends Blueprint<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ); +} +export declare class CodePromise extends Code<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractPromise extends Contract<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId20, + ); +} diff --git a/.api-contract/build/promise/index.js b/.api-contract/build/promise/index.js new file mode 100644 index 00000000..f938509e --- /dev/null +++ b/.api-contract/build/promise/index.js @@ -0,0 +1,17 @@ +import { toPromiseMethod } from '@polkadot/api'; +import { Blueprint, Code, Contract } from '../base/index.js'; +export class BlueprintPromise extends Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, toPromiseMethod); + } +} +export class CodePromise extends Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, toPromiseMethod); + } +} +export class ContractPromise extends Contract { + constructor(api, abi, address) { + super(api, abi, address, toPromiseMethod); + } +} diff --git a/.api-contract/build/promise/types.d.ts b/.api-contract/build/promise/types.d.ts new file mode 100644 index 00000000..7784ef2c --- /dev/null +++ b/.api-contract/build/promise/types.d.ts @@ -0,0 +1,6 @@ +import type { + BlueprintSubmittableResult as BaseBlueprintSubmittableResult, + CodeSubmittableResult as BaseCodeSubmittableResult, +} from '../base/index.js'; +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build/promise/types.js b/.api-contract/build/promise/types.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/.api-contract/build/promise/types.js @@ -0,0 +1 @@ +export {}; diff --git a/.api-contract/build/rx/index.d.ts b/.api-contract/build/rx/index.d.ts new file mode 100644 index 00000000..1357b476 --- /dev/null +++ b/.api-contract/build/rx/index.d.ts @@ -0,0 +1,17 @@ +import type { ApiRx } from '@polkadot/api'; +import type { AccountId, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import { Blueprint, Code, Contract } from '../base/index.js'; +export declare class BlueprintRx extends Blueprint<'rxjs'> { + constructor(api: ApiRx, abi: string | Record | Abi, codeHash: string | Hash); +} +export declare class CodeRx extends Code<'rxjs'> { + constructor( + api: ApiRx, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractRx extends Contract<'rxjs'> { + constructor(api: ApiRx, abi: string | Record | Abi, address: string | AccountId); +} diff --git a/.api-contract/build/rx/index.js b/.api-contract/build/rx/index.js new file mode 100644 index 00000000..3ff57ea8 --- /dev/null +++ b/.api-contract/build/rx/index.js @@ -0,0 +1,17 @@ +import { toRxMethod } from '@polkadot/api'; +import { Blueprint, Code, Contract } from '../base/index.js'; +export class BlueprintRx extends Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, toRxMethod); + } +} +export class CodeRx extends Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, toRxMethod); + } +} +export class ContractRx extends Contract { + constructor(api, abi, address) { + super(api, abi, address, toRxMethod); + } +} diff --git a/.api-contract/build/rx/types.d.ts b/.api-contract/build/rx/types.d.ts new file mode 100644 index 00000000..7784ef2c --- /dev/null +++ b/.api-contract/build/rx/types.d.ts @@ -0,0 +1,6 @@ +import type { + BlueprintSubmittableResult as BaseBlueprintSubmittableResult, + CodeSubmittableResult as BaseCodeSubmittableResult, +} from '../base/index.js'; +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build/rx/types.js b/.api-contract/build/rx/types.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/.api-contract/build/rx/types.js @@ -0,0 +1 @@ +export {}; diff --git a/.api-contract/build/types.d.ts b/.api-contract/build/types.d.ts new file mode 100644 index 00000000..b535e85a --- /dev/null +++ b/.api-contract/build/types.d.ts @@ -0,0 +1,85 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes } from '@polkadot/api/types'; +import type { Text } from '@polkadot/types'; +import type { + ContractExecResultResult, + ContractSelector, + StorageDeposit, + Weight, + WeightV2, +} from '@polkadot/types/interfaces'; +import type { Codec, TypeDef } from '@polkadot/types/types'; +import type { BN } from '@polkadot/util'; +import type { HexString } from '@polkadot/util/types'; +import type { Abi } from './index.js'; +export interface ContractBase { + readonly abi: Abi; + readonly api: ApiBase; + getMessage: (name: string) => AbiMessage; + messages: AbiMessage[]; +} +export interface AbiParam { + name: string; + type: TypeDef; +} +export type AbiMessageParam = AbiParam; +export interface AbiEventParam extends AbiParam { + indexed: boolean; +} +export interface AbiEvent { + args: AbiEventParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedEvent; + identifier: string; + index: number; + signatureTopic?: HexString | null; +} +export interface AbiMessage { + args: AbiMessageParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedMessage; + identifier: string; + index: number; + isConstructor?: boolean; + isDefault?: boolean; + isMutating?: boolean; + isPayable?: boolean; + method: string; + path: string[]; + returnType?: TypeDef | null; + selector: ContractSelector; + toU8a: (params: unknown[]) => Uint8Array; +} +export type AbiConstructor = AbiMessage; +export type InterfaceContractCalls = Record; +export interface ContractCallOutcome { + debugMessage: Text; + gasConsumed: Weight; + gasRequired: Weight; + output: Codec | null; + result: ContractExecResultResult; + storageDeposit: StorageDeposit; +} +export interface DecodedEvent { + args: Codec[]; + event: AbiEvent; +} +export interface DecodedMessage { + args: Codec[]; + message: AbiMessage; +} +export interface ContractOptions { + gasLimit?: bigint | string | number | BN | WeightV2; + storageDepositLimit?: bigint | string | number | BN | null; + value?: bigint | BN | string | number; +} +export interface BlueprintOptions extends ContractOptions { + salt?: Uint8Array | string | null; +} +export interface WeightAll { + v1Weight: BN; + v2Weight: { + refTime: BN; + proofSize?: BN | undefined; + }; +} diff --git a/.api-contract/build/types.js b/.api-contract/build/types.js new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/.api-contract/build/types.js @@ -0,0 +1 @@ +export {}; diff --git a/.api-contract/build/util.d.ts b/.api-contract/build/util.d.ts new file mode 100644 index 00000000..60682eff --- /dev/null +++ b/.api-contract/build/util.d.ts @@ -0,0 +1,9 @@ +import type { SubmittableResult } from '@polkadot/api'; +import type { EventRecord } from '@polkadot/types/interfaces'; +type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; +export declare function applyOnEvent( + result: SubmittableResult, + types: ContractEvents[], + fn: (records: EventRecord[]) => T, +): T | undefined; +export {}; diff --git a/.api-contract/build/util.js b/.api-contract/build/util.js new file mode 100644 index 00000000..0faa5cff --- /dev/null +++ b/.api-contract/build/util.js @@ -0,0 +1,9 @@ +export function applyOnEvent(result, types, fn) { + if (result.isInBlock || result.isFinalized) { + const records = result.filterRecords('contracts', types); + if (records.length) { + return fn(records); + } + } + return undefined; +} diff --git a/.api-contract/package.json b/.api-contract/package.json new file mode 100644 index 00000000..f685482a --- /dev/null +++ b/.api-contract/package.json @@ -0,0 +1,39 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/polkadot-js/api/issues", + "description": "Interfaces for interacting with contracts and contract ABIs", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme", + "license": "Apache-2.0", + "name": "@polkadot/api-contract", + "repository": { + "directory": "packages/api-contract", + "type": "git", + "url": "https://github.com/polkadot-js/api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "15.8.1", + "main": "index.js", + "dependencies": { + "@polkadot/api": "15.8.1", + "@polkadot/api-augment": "15.8.1", + "@polkadot/types": "15.8.1", + "@polkadot/types-codec": "15.8.1", + "@polkadot/types-create": "15.8.1", + "@polkadot/util": "^13.4.3", + "@polkadot/util-crypto": "^13.4.3", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@polkadot/api-augment": "15.8.1", + "@polkadot/keyring": "^13.4.3", + "@polkadot/types-support": "15.8.1" + } +} diff --git a/.api-contract/src/Abi/Abi.spec.ts b/.api-contract/src/Abi/Abi.spec.ts new file mode 100644 index 00000000..1e58a3e7 --- /dev/null +++ b/.api-contract/src/Abi/Abi.spec.ts @@ -0,0 +1,224 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { Registry } from '@polkadot/types/types'; + +import fs from 'node:fs'; +import process from 'node:process'; + +import { TypeDefInfo } from '@polkadot/types/types'; +import rpcMetadata from '@polkadot/types-support/metadata/static-substrate-contracts-node'; +import { blake2AsHex } from '@polkadot/util-crypto'; + +import { Metadata, TypeRegistry } from '../../../types/src/bundle.js'; +import abis from '../test/contracts/index.js'; +import { Abi } from './index.js'; + +interface SpecDef { + messages: { + label: string; + name: string[] | string; + }[]; +} + +interface JSONAbi { + source: { + compiler: string; + hash: string; + language: string; + wasm: string; + }; + spec: SpecDef; + V1: { + spec: SpecDef; + }; + V2: { + spec: SpecDef; + }; + V3: { + spec: SpecDef; + }; + V4: { + spec: SpecDef; + }; +} + +function stringifyInfo(key: string, value: unknown): unknown { + return key === 'info' && typeof value === 'number' ? TypeDefInfo[value] : value; +} + +function stringifyJson(registry: Registry): string { + const defs = registry.lookup.types.map(({ id }) => registry.lookup.getTypeDef(id)); + + return JSON.stringify(defs, stringifyInfo, 2); +} + +describe('Abi', (): void => { + describe('ABI', (): void => { + Object.entries(abis).forEach(([abiName, _abi]) => { + const abi = _abi as unknown as JSONAbi; + + it(`initializes from a contract ABI (${abiName})`, (): void => { + try { + const messageIds = (abi.V4 || abi.V3 || abi.V2 || abi.V1 || abi).spec.messages.map( + ({ label, name }) => label || (Array.isArray(name) ? name.join('::') : name), + ); + const inkAbi = new Abi(abis[abiName]); + + expect(inkAbi.messages.map(({ identifier }) => identifier)).toEqual(messageIds); + } catch (error) { + console.error(error); + + throw error; + } + }); + }); + }); + + describe('TypeDef', (): void => { + for (const [abiName, abiJson] of Object.entries(abis)) { + it(`initializes from a contract ABI: ${abiName}`, (): void => { + const abi = new Abi(abiJson); + const registryJson = stringifyJson(abi.registry); + const cmpFile = new URL(`../test/compare/${abiName}.test.json`, import.meta.url); + + try { + expect(JSON.parse(registryJson)).toEqual(JSON.parse(fs.readFileSync(cmpFile, 'utf-8'))); + } catch (error) { + if (process.env['GITHUB_REPOSITORY']) { + console.error(registryJson); + + throw error; + } + + fs.writeFileSync(cmpFile, registryJson, { flag: 'w' }); + } + }); + } + }); + + it('has the correct hash for the source', (): void => { + const abi = new Abi(abis['ink_v0_flipperBundle']); + const bundle = abis['ink_v0_flipperBundle'] as unknown as JSONAbi; + + // manual + expect(bundle.source.hash).toEqual(blake2AsHex(bundle.source.wasm)); + + // the Codec hash + expect(bundle.source.hash).toEqual(abi.info.source.wasm.hash.toHex()); + + // the hash as per the actual Abi + expect(bundle.source.hash).toEqual(abi.info.source.wasmHash.toHex()); + }); + + describe('Events', (): void => { + const registry = new TypeRegistry(); + + beforeAll((): void => { + const metadata = new Metadata(registry, rpcMetadata); + + registry.setMetadata(metadata); + }); + + it('decoding <=ink!v4 event', (): void => { + const abiJson = abis['ink_v4_erc20Metadata']; + + expect(abiJson).toBeDefined(); + const abi = new Abi(abiJson); + + const eventRecordHex = + '0x0001000000080360951b8baf569bca905a279c12d6ce17db7cdce23a42563870ef585129ce5dc64d010001d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000c0045726332303a3a5472616e7366657200000000000000000000000000000000da2d695d3b5a304e0039e7fc4419c34fa0c1f239189c99bb72a6484f1634782b2b00c7d40fe6d84d660f3e6bed90f218e022a0909f7e1a7ea35ada8b6e003564'; + const record = registry.createType('EventRecord', eventRecordHex); + + const decodedEvent = abi.decodeEvent(record); + + expect(decodedEvent.event.args.length).toEqual(3); + expect(decodedEvent.args.length).toEqual(3); + expect(decodedEvent.event.identifier).toEqual('Transfer'); + + const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { + return { + ...prev, + [cur.name]: decodedEvent.args[index].toHuman(), + }; + }, {}); + + const expectedEvent = { + from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + value: '123.4567 MUnit', + }; + + expect(decodedEventHuman).toEqual(expectedEvent); + }); + + it('decoding >=ink!v5 event', (): void => { + const abiJson = abis['ink_v5_erc20Metadata']; + + expect(abiJson).toBeDefined(); + const abi = new Abi(abiJson); + + const eventRecordHex = + '0x00010000000803da17150e96b3955a4db6ad35ddeb495f722f9c1d84683113bfb096bf3faa30f2490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000cb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cbd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'; + const record = registry.createType('EventRecord', eventRecordHex); + + const decodedEvent = abi.decodeEvent(record); + + expect(decodedEvent.event.args.length).toEqual(3); + expect(decodedEvent.args.length).toEqual(3); + expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer'); + + const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { + return { + ...prev, + [cur.name]: decodedEvent.args[index].toHuman(), + }; + }, {}); + + const expectedEvent = { + from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + value: '123.4567 MUnit', + }; + + expect(decodedEventHuman).toEqual(expectedEvent); + }); + + it('decoding >=ink!v5 anonymous event', (): void => { + const abiJson = abis['ink_v5_erc20AnonymousTransferMetadata']; + + expect(abiJson).toBeDefined(); + const abi = new Abi(abiJson); + + expect(abi.events[0].identifier).toEqual('erc20::erc20::Transfer'); + expect(abi.events[0].signatureTopic).toEqual(null); + + const eventRecordWithAnonymousEventHex = + '0x00010000000803538e726248a9c155911e7d99f4f474c3408630a2f6275dd501d4471c7067ad2c490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb1060000000000000008d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'; + const record = registry.createType('EventRecord', eventRecordWithAnonymousEventHex); + + const decodedEvent = abi.decodeEvent(record); + + expect(decodedEvent.event.args.length).toEqual(3); + expect(decodedEvent.args.length).toEqual(3); + expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer'); + + const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { + return { + ...prev, + [cur.name]: decodedEvent.args[index].toHuman(), + }; + }, {}); + + const expectedEvent = { + from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + value: '123.4567 MUnit', + }; + + expect(decodedEventHuman).toEqual(expectedEvent); + }); + }); +}); diff --git a/.api-contract/src/Abi/index.ts b/.api-contract/src/Abi/index.ts new file mode 100644 index 00000000..538875c4 --- /dev/null +++ b/.api-contract/src/Abi/index.ts @@ -0,0 +1,486 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Bytes, Vec } from '@polkadot/types'; +import type { + ChainProperties, + ContractConstructorSpecLatest, + ContractEventParamSpecLatest, + ContractMessageParamSpecLatest, + ContractMessageSpecLatest, + ContractMetadata, + ContractMetadataV4, + ContractMetadataV5, + ContractProjectInfo, + ContractTypeSpec, + EventRecord, +} from '@polkadot/types/interfaces'; +import type { Codec, Registry, TypeDef } from '@polkadot/types/types'; +import type { + AbiConstructor, + AbiEvent, + AbiEventParam, + AbiMessage, + AbiMessageParam, + AbiParam, + DecodedEvent, + DecodedMessage, +} from '../types.js'; + +import { Option, TypeRegistry } from '@polkadot/types'; +import { TypeDefInfo } from '@polkadot/types-create'; +import { + assertReturn, + compactAddLength, + compactStripLength, + isBn, + isNumber, + isObject, + isString, + isUndefined, + logger, + stringCamelCase, + stringify, + u8aConcat, + u8aToHex, +} from '@polkadot/util'; + +import { convertVersions, enumVersions } from './toLatestCompatible.js'; + +interface AbiJson { + version?: string; + + [key: string]: unknown; +} + +type EventOf = M extends { spec: { events: Vec } } ? E : never; +export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5; +type ContractEventSupported = EventOf; + +const l = logger('Abi'); + +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; + +function findMessage(list: T[], messageOrId: T | string | number): T { + const message = isNumber(messageOrId) + ? list[messageOrId] + : isString(messageOrId) + ? list.find(({ identifier }) => + [identifier, stringCamelCase(identifier)].includes(messageOrId.toString()), + ) + : messageOrId; + + return assertReturn( + message, + () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`, + ); +} + +function getMetadata(registry: Registry, json: AbiJson): ContractMetadataSupported { + // this is for V1, V2, V3 + const vx = enumVersions.find(v => isObject(json[v])); + + // this was added in V4 + const jsonVersion = json.version; + + if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { + throw new Error(`Unable to handle version ${jsonVersion}`); + } + + const metadata = registry.createType( + 'ContractMetadata', + vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, + ); + + const converter = convertVersions.find(([v]) => metadata[`is${v}`]); + + if (!converter) { + throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); + } + + const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + + return upgradedMetadata; +} + +function parseJson( + json: Record, + chainProperties?: ChainProperties, +): [Record, Registry, ContractMetadataSupported, ContractProjectInfo] { + const registry = new TypeRegistry(); + const info = registry.createType('ContractProjectInfo', json) as unknown as ContractProjectInfo; + const metadata = getMetadata(registry, json as unknown as AbiJson); + const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); + + // attach the lookup to the registry - now the types are known + registry.setLookup(lookup); + + if (chainProperties) { + registry.setChainProperties(chainProperties); + } + + // warm-up the actual type, pre-use + lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + + return [json, registry, metadata, info]; +} + +/** + * @internal + * Determines if the given input value is a ContractTypeSpec + */ +function isTypeSpec(value: Codec): value is ContractTypeSpec { + return ( + !!value && + value instanceof Map && + !isUndefined((value as ContractTypeSpec).type) && + !isUndefined((value as ContractTypeSpec).displayName) + ); +} + +/** + * @internal + * Determines if the given input value is an Option + */ +function isOption(value: Codec): value is Option { + return !!value && value instanceof Option; +} + +export class Abi { + readonly events: AbiEvent[]; + readonly constructors: AbiConstructor[]; + readonly info: ContractProjectInfo; + readonly json: Record; + readonly messages: AbiMessage[]; + readonly metadata: ContractMetadataSupported; + readonly registry: Registry; + readonly environment = new Map(); + + constructor(abiJson: Record | string, chainProperties?: ChainProperties) { + [this.json, this.registry, this.metadata, this.info] = parseJson( + isString(abiJson) ? (JSON.parse(abiJson) as Record) : abiJson, + chainProperties, + ); + this.constructors = this.metadata.spec.constructors.map( + (spec: ContractConstructorSpecLatest, index) => + this.#createMessage(spec, index, { + isConstructor: true, + isDefault: spec.default.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + this.events = this.metadata.spec.events.map((_: ContractEventSupported, index: number) => + this.#createEvent(index), + ); + this.messages = this.metadata.spec.messages.map( + (spec: ContractMessageSpecLatest, index): AbiMessage => + this.#createMessage(spec, index, { + isDefault: spec.default.isTrue, + isMutating: spec.mutates.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + + // NOTE See the rationale for having Option<...> values in the actual + // ContractEnvironmentV4 structure definition in interfaces/contractsAbi + // (Due to conversions, the fields may not exist) + for (const [key, opt] of this.metadata.spec.environment.entries()) { + if (isOption(opt)) { + if (opt.isSome) { + const value = opt.unwrap(); + + if (isBn(value)) { + this.environment.set(key, value); + } else if (isTypeSpec(value)) { + this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); + } else { + throw new Error( + `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, + ); + } + } + } else { + throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); + } + } + } + + /** + * Warning: Unstable API, bound to change + */ + public decodeEvent(record: EventRecord): DecodedEvent { + switch (this.metadata.version.toString()) { + // earlier version are hoisted to v4 + case '4': + return this.#decodeEventV4(record); + // Latest + default: + return this.#decodeEventV5(record); + } + } + + #decodeEventV5 = (record: EventRecord): DecodedEvent => { + // Find event by first topic, which potentially is the signature_topic + const signatureTopic = record.topics[0]; + const data = record.event.data[1] as Bytes; + + if (signatureTopic) { + const event = this.events.find( + e => + e.signatureTopic !== undefined && + e.signatureTopic !== null && + e.signatureTopic === signatureTopic.toHex(), + ); + + // Early return if event found by signature topic + if (event) { + return event.fromU8a(data); + } + } + + // If no event returned yet, it might be anonymous + const amountOfTopics = record.topics.length; + const potentialEvents = this.events.filter(e => { + // event can't have a signature topic + if (e.signatureTopic !== null && e.signatureTopic !== undefined) { + return false; + } + + // event should have same amount of indexed fields as emitted topics + const amountIndexed = e.args.filter(a => a.indexed).length; + + if (amountIndexed !== amountOfTopics) { + return false; + } + + // If all conditions met, it's a potential event + return true; + }); + + if (potentialEvents.length === 1) { + return potentialEvents[0].fromU8a(data); + } + + throw new Error('Unable to determine event'); + }; + + #decodeEventV4 = (record: EventRecord): DecodedEvent => { + const data = record.event.data[1] as Bytes; + const index = data[0]; + const event = this.events[index]; + + if (!event) { + throw new Error(`Unable to find event with index ${index}`); + } + + return event.fromU8a(data.subarray(1)); + }; + + /** + * Warning: Unstable API, bound to change + */ + public decodeConstructor(data: Uint8Array): DecodedMessage { + return this.#decodeMessage('message', this.constructors, data); + } + + /** + * Warning: Unstable API, bound to change + */ + public decodeMessage(data: Uint8Array): DecodedMessage { + return this.#decodeMessage('message', this.messages, data); + } + + public findConstructor(constructorOrId: AbiConstructor | string | number): AbiConstructor { + return findMessage(this.constructors, constructorOrId); + } + + public findMessage(messageOrId: AbiMessage | string | number): AbiMessage { + return findMessage(this.messages, messageOrId); + } + + #createArgs = ( + args: ContractMessageParamSpecLatest[] | ContractEventParamSpecLatest[], + spec: unknown, + ): AbiParam[] => { + return args.map(({ label, type }, index): AbiParam => { + try { + if (!isObject(type)) { + throw new Error('Invalid type definition found'); + } + + const displayName = type.displayName.length + ? type.displayName[type.displayName.length - 1].toString() + : undefined; + const camelName = stringCamelCase(label); + + if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { + return { + name: camelName, + type: { + info: TypeDefInfo.Plain, + type: displayName, + }, + }; + } + + const typeDef = this.registry.lookup.getTypeDef(type.type); + + return { + name: camelName, + type: + displayName && !typeDef.type.startsWith(displayName) + ? { displayName, ...typeDef } + : typeDef, + }; + } catch (error) { + l.error(`Error expanding argument ${index} in ${stringify(spec)}`); + + throw error; + } + }); + }; + + #createMessageParams = ( + args: ContractMessageParamSpecLatest[], + spec: unknown, + ): AbiMessageParam[] => { + return this.#createArgs(args, spec); + }; + + #createEventParams = (args: ContractEventParamSpecLatest[], spec: unknown): AbiEventParam[] => { + const params = this.#createArgs(args, spec); + + return params.map( + (p, index): AbiEventParam => ({ ...p, indexed: args[index].indexed.toPrimitive() }), + ); + }; + + #createEvent = (index: number): AbiEvent => { + // TODO TypeScript would narrow this type to the correct version, + // but version is `Text` so I need to call `toString()` here, + // which breaks the type inference. + switch (this.metadata.version.toString()) { + case '4': + return this.#createEventV4((this.metadata as ContractMetadataV4).spec.events[index], index); + default: + return this.#createEventV5((this.metadata as ContractMetadataV5).spec.events[index], index); + } + }; + + #createEventV5 = (spec: EventOf, index: number): AbiEvent => { + const args = this.#createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: (data: Uint8Array): DecodedEvent => ({ + args: this.#decodeArgs(args, data), + event, + }), + identifier: [spec.module_path, spec.label].join('::'), + index, + signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, + }; + + return event; + }; + + #createEventV4 = (spec: EventOf, index: number): AbiEvent => { + const args = this.#createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: (data: Uint8Array): DecodedEvent => ({ + args: this.#decodeArgs(args, data), + event, + }), + identifier: spec.label.toString(), + index, + }; + + return event; + }; + + #createMessage = ( + spec: ContractMessageSpecLatest | ContractConstructorSpecLatest, + index: number, + add: Partial = {}, + ): AbiMessage => { + const args = this.#createMessageParams(spec.args, spec); + const identifier = spec.label.toString(); + const message = { + ...add, + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: (data: Uint8Array): DecodedMessage => ({ + args: this.#decodeArgs(args, data), + message, + }), + identifier, + index, + isDefault: spec.default.isTrue, + method: stringCamelCase(identifier), + path: identifier.split('::').map(s => stringCamelCase(s)), + selector: spec.selector, + toU8a: (params: unknown[]) => this.#encodeMessageArgs(spec, args, params), + }; + + return message; + }; + + #decodeArgs = (args: AbiParam[], data: Uint8Array): Codec[] => { + // for decoding we expect the input to be just the arg data, no selectors + // no length added (this allows use with events as well) + let offset = 0; + + return args.map(({ type: { lookupName, type } }): Codec => { + const value = this.registry.createType(lookupName || type, data.subarray(offset)); + + offset += value.encodedLength; + + return value; + }); + }; + + #decodeMessage = ( + type: 'constructor' | 'message', + list: AbiMessage[], + data: Uint8Array, + ): DecodedMessage => { + const [, trimmed] = compactStripLength(data); + const selector = trimmed.subarray(0, 4); + const message = list.find(m => m.selector.eq(selector)); + + if (!message) { + throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`); + } + + return message.fromU8a(trimmed.subarray(4)); + }; + + #encodeMessageArgs = ( + { label, selector }: ContractMessageSpecLatest | ContractConstructorSpecLatest, + args: AbiMessageParam[], + data: unknown[], + ): Uint8Array => { + if (data.length !== args.length) { + throw new Error( + `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, + ); + } + + return compactAddLength( + u8aConcat( + this.registry.createType('ContractSelector', selector).toU8a(), + ...args.map(({ type: { lookupName, type } }, index) => + this.registry.createType(lookupName || type, data[index]).toU8a(), + ), + ), + ); + }; +} diff --git a/.api-contract/src/Abi/toLatestCompatible.spec.ts b/.api-contract/src/Abi/toLatestCompatible.spec.ts new file mode 100644 index 00000000..aab966fc --- /dev/null +++ b/.api-contract/src/Abi/toLatestCompatible.spec.ts @@ -0,0 +1,210 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@polkadot/types'; + +import abis from '../test/contracts/index.js'; +import { + v0ToLatestCompatible, + v1ToLatestCompatible, + v2ToLatestCompatible, + v3ToLatestCompatible, + v4ToLatestCompatible, + v5ToLatestCompatible, +} from './toLatestCompatible.js'; + +describe('v0ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V0: abis['ink_v0_erc20'] }); + const latest = v0ToLatestCompatible(registry, contract.asV0); + + it('has the correct constructors', (): void => { + expect(latest.spec.constructors.map(({ label }) => label.toString())).toEqual(['new']); + }); + + it('has the correct messages', (): void => { + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ + 'total_supply', + 'balance_of', + 'allowance', + 'transfer', + 'approve', + 'transfer_from', + ]); + }); + + it('has the correct events', (): void => { + expect(latest.spec.events.map(({ label }) => label.toString())).toEqual([ + 'Transfer', + 'Approval', + ]); + }); + + it('has the correct constructor arguments', (): void => { + expect(latest.spec.constructors[0].args.map(({ label }) => label.toString())).toEqual([ + 'initial_supply', + ]); + }); + + it('has the correct message arguments', (): void => { + expect(latest.spec.messages[1].args.map(({ label }) => label.toString())).toEqual(['owner']); + }); + + it('has the correct event arguments', (): void => { + expect(latest.spec.events[0].args.map(({ label }) => label.toString())).toEqual([ + 'from', + 'to', + 'value', + ]); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('4'); + }); +}); + +describe('v1ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_flipper']['V1'] }); + const latest = v1ToLatestCompatible(registry, contract.asV1); + + it('has the correct constructors', (): void => { + expect(latest.spec.constructors.map(({ label }) => label.toString())).toEqual([ + 'new', + 'default', + ]); + }); + + it('has the correct messages', (): void => { + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual(['flip', 'get']); + }); + + it('has the correct messages with namespaced method name', (): void => { + const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_psp22']['V1'] }); + const latest = v1ToLatestCompatible(registry, contract.asV1); + + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ + 'PSP22Metadata::token_name', + 'PSP22Metadata::token_symbol', + 'PSP22Metadata::token_decimals', + 'PSP22Mintable::mint', + 'PSP22::decrease_allowance', + 'PSP22::transfer', + 'PSP22::approve', + 'PSP22::allowance', + 'PSP22::transfer_from', + 'PSP22::balance_of', + 'PSP22::increase_allowance', + 'PSP22::total_supply', + 'pause', + 'unpause', + ]); + }); + + it('has the correct constructor arguments', (): void => { + expect(latest.spec.constructors[0].args.map(({ label }) => label.toString())).toEqual([ + 'init_value', + ]); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('4'); + }); +}); + +describe('v2ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V2: abis['ink_v2_flipper']['V2'] }); + const latest = v2ToLatestCompatible(registry, contract.asV2); + + it('has the correct constructor flag', (): void => { + expect(latest.spec.constructors[0].payable.isTrue).toEqual(true); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('4'); + }); +}); + +describe('v3ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V3: abis['ink_v3_flipper']['V3'] }); + const latest = v3ToLatestCompatible(registry, contract.asV3); + + it('has the correct constructor flags', (): void => { + expect(latest.spec.constructors[0].payable.isTrue).toEqual(false); + expect(latest.spec.constructors[1].payable.isTrue).toEqual(true); + }); + + it('has the correct messages', (): void => { + const contract = registry.createType('ContractMetadata', { + V3: abis['ink_v3_traitErc20']['V3'], + }); + const latest = v3ToLatestCompatible(registry, contract.asV3); + + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ + 'BaseErc20::total_supply', + 'BaseErc20::balance_of', + 'BaseErc20::allowance', + 'BaseErc20::transfer', + 'BaseErc20::approve', + 'BaseErc20::transfer_from', + ]); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('4'); + }); +}); + +describe('v4ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V4: abis['ink_v4_flipperContract'] }); + const latest = v4ToLatestCompatible(registry, contract.asV4); + + it('has the correct constructor flags', (): void => { + expect(latest.spec.constructors[0].payable.isTrue).toEqual(false); + expect(latest.spec.constructors[1].payable.isTrue).toEqual(false); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('4'); + }); +}); + +describe('v5ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V5: abis['ink_v5_erc20Metadata'] }); + const latest = v5ToLatestCompatible(registry, contract.asV5); + + it('has the correct messages', (): void => { + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ + 'total_supply', + 'balance_of', + 'allowance', + 'transfer', + 'approve', + 'transfer_from', + ]); + }); + + it('has new event fields', (): void => { + expect(latest.spec.events.length).toEqual(2); + + expect(latest.spec.events.every(e => e.has('module_path'))).toEqual(true); + + expect(latest.spec.events[0].module_path.toString()).toEqual('erc20::erc20'); + + expect(latest.spec.events.every(e => e.has('signature_topic'))).toEqual(true); + + expect(latest.spec.events[0].signature_topic.toHex()).toEqual( + '0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb', + ); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('5'); + }); +}); diff --git a/.api-contract/src/Abi/toLatestCompatible.ts b/.api-contract/src/Abi/toLatestCompatible.ts new file mode 100644 index 00000000..181fc96a --- /dev/null +++ b/.api-contract/src/Abi/toLatestCompatible.ts @@ -0,0 +1,56 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ContractMetadataV4, ContractMetadataV5 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; +import type { ContractMetadataSupported } from './index.js'; + +import { v0ToV1 } from './toV1.js'; +import { v1ToV2 } from './toV2.js'; +import { v2ToV3 } from './toV3.js'; +import { v3ToV4 } from './toV4.js'; + +// The versions where an enum is used, aka V0 is missing +// (Order from newest, i.e. we expect more on newest vs oldest) +export const enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1'] as const; + +type Versions = (typeof enumVersions)[number] | 'V0'; + +type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; + +// Helper to convert metadata from one step to the next +function createConverter( + next: (registry: Registry, input: O) => ContractMetadataSupported, + step: (registry: Registry, input: I) => O, +): (registry: Registry, input: I) => ContractMetadataSupported { + return (registry: Registry, input: I): ContractMetadataSupported => + next(registry, step(registry, input)); +} + +export function v5ToLatestCompatible( + _registry: Registry, + v5: ContractMetadataV5, +): ContractMetadataV5 { + return v5; +} + +export function v4ToLatestCompatible( + _registry: Registry, + v4: ContractMetadataV4, +): ContractMetadataV4 { + return v4; +} + +export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4); +export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3); +export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); +export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); + +export const convertVersions: [Versions, Converter][] = [ + ['V5', v5ToLatestCompatible], + ['V4', v4ToLatestCompatible], + ['V3', v3ToLatestCompatible], + ['V2', v2ToLatestCompatible], + ['V1', v1ToLatestCompatible], + ['V0', v0ToLatestCompatible], +]; diff --git a/.api-contract/src/Abi/toV1.ts b/.api-contract/src/Abi/toV1.ts new file mode 100644 index 00000000..5d0663be --- /dev/null +++ b/.api-contract/src/Abi/toV1.ts @@ -0,0 +1,37 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ContractMetadataV0, ContractMetadataV1 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; + +import { convertSiV0toV1 } from '@polkadot/types'; +import { objectSpread } from '@polkadot/util'; + +interface Named { + name: unknown; +} + +function v0ToV1Names(all: Named[]): unknown[] { + return all.map(e => + objectSpread({}, e, { + name: Array.isArray(e.name) ? e.name : [e.name], + }), + ); +} + +export function v0ToV1(registry: Registry, v0: ContractMetadataV0): ContractMetadataV1 { + if (!v0.metadataVersion.length) { + throw new Error('Invalid format for V0 (detected) contract metadata'); + } + + return registry.createType( + 'ContractMetadataV1', + objectSpread({}, v0, { + spec: objectSpread({}, v0.spec, { + constructors: v0ToV1Names(v0.spec.constructors), + messages: v0ToV1Names(v0.spec.messages), + }), + types: convertSiV0toV1(registry, v0.types), + }), + ); +} diff --git a/.api-contract/src/Abi/toV2.ts b/.api-contract/src/Abi/toV2.ts new file mode 100644 index 00000000..9619a1c0 --- /dev/null +++ b/.api-contract/src/Abi/toV2.ts @@ -0,0 +1,70 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Text } from '@polkadot/types'; +import type { + ContractConstructorSpecV0, + ContractEventSpecV0, + ContractMessageSpecV0, + ContractMetadataV1, + ContractMetadataV2, +} from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; + +import { objectSpread } from '@polkadot/util'; + +type WithArgs = keyof typeof ARG_TYPES; + +interface NamedEntry { + name: Text | Text[]; +} + +type GetArgsType = T extends 'ContractConstructorSpec' + ? ContractConstructorSpecV0 + : T extends ContractEventSpecV0 + ? ContractEventSpecV0 + : ContractMessageSpecV0; + +interface ArgsEntry extends NamedEntry { + args: GetArgsType['args'][0][]; +} + +const ARG_TYPES = { + ContractConstructorSpec: 'ContractMessageParamSpecV2', + ContractEventSpec: 'ContractEventParamSpecV2', + ContractMessageSpec: 'ContractMessageParamSpecV2', +} as const; + +function v1ToV2Label(entry: NamedEntry): { label: Text } { + return objectSpread({}, entry, { + label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, + }); +} + +function v1ToV2Labels( + registry: Registry, + outType: T, + all: ArgsEntry[], +): unknown[] { + return all.map(e => + registry.createType( + `${outType}V2`, + objectSpread(v1ToV2Label(e), { + args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), + }), + ), + ); +} + +export function v1ToV2(registry: Registry, v1: ContractMetadataV1): ContractMetadataV2 { + return registry.createType( + 'ContractMetadataV2', + objectSpread({}, v1, { + spec: objectSpread({}, v1.spec, { + constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), + events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), + messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), + }), + }), + ); +} diff --git a/.api-contract/src/Abi/toV3.ts b/.api-contract/src/Abi/toV3.ts new file mode 100644 index 00000000..fccd5a2b --- /dev/null +++ b/.api-contract/src/Abi/toV3.ts @@ -0,0 +1,21 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ContractMetadataV2, ContractMetadataV3 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; + +import { objectSpread } from '@polkadot/util'; + +export function v2ToV3(registry: Registry, v2: ContractMetadataV2): ContractMetadataV3 { + return registry.createType( + 'ContractMetadataV3', + objectSpread({}, v2, { + spec: objectSpread({}, v2.spec, { + constructors: v2.spec.constructors.map(c => + // V3 introduces the payable flag on constructors, for + registry.createType('ContractConstructorSpecV4', objectSpread({}, c)), + ), + messages: v3.spec.messages.map(m => + registry.createType('ContractMessageSpecV3', objectSpread({}, m)), + ), + }), + version: registry.createType('Text', '4'), + }), + ); +} diff --git a/.api-contract/src/augment.ts b/.api-contract/src/augment.ts new file mode 100644 index 00000000..56f6e04c --- /dev/null +++ b/.api-contract/src/augment.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@polkadot/api-augment'; diff --git a/.api-contract/src/base/Base.ts b/.api-contract/src/base/Base.ts new file mode 100644 index 00000000..68b17772 --- /dev/null +++ b/.api-contract/src/base/Base.ts @@ -0,0 +1,52 @@ +// Copyright 2017-2025 @polkadot/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { WeightV2 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; + +import { isFunction } from '@polkadot/util'; + +import { Abi } from '../Abi/index.js'; + +export abstract class Base { + readonly abi: Abi; + readonly api: ApiBase; + + protected readonly _decorateMethod: DecorateMethod; + protected readonly _isWeightV1: boolean; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + decorateMethod: DecorateMethod, + ) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.revive || + !isFunction(api.tx.revive.instantiateWithCode) || + api.tx.revive.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.reviveApi || !isFunction(api.call.reviveApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', + ); + } + + this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + + public get registry(): Registry { + return this.api.registry; + } +} diff --git a/.api-contract/src/base/Blueprint.ts b/.api-contract/src/base/Blueprint.ts new file mode 100644 index 00000000..37011c12 --- /dev/null +++ b/.api-contract/src/base/Blueprint.ts @@ -0,0 +1,117 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@polkadot/api/base'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Hash } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { AbiConstructor, BlueprintOptions } from '../types.js'; +import type { MapConstructorExec } from './types.js'; + +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, isUndefined } from '@polkadot/util'; + +// import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; + +export type BlueprintConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, +) => Blueprint; + +export class BlueprintSubmittableResult extends SubmittableResult { + readonly contract?: Contract | undefined; + + constructor(result: ISubmittableResult, contract?: Contract) { + super(result); + + this.contract = contract; + } +} + +export class Blueprint extends Base { + /** + * @description The on-chain code hash for this blueprint + */ + readonly codeHash: Hash; + + readonly #tx: MapConstructorExec = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.codeHash = this.registry.createType('Hash', codeHash); + + this.abi.constructors.forEach((c): void => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p)); + } + }); + } + + public get tx(): MapConstructorExec { + return this.#tx; + } + + #deploy = ( + constructorOrId: AbiConstructor | string | number, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, + params: unknown[], + ): SubmittableExtrinsic> => { + return this.api.tx.revive + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + (result: ISubmittableResult) => + new BlueprintSubmittableResult( + result, + (() => { + if (result.status.isInBlock || result.status.isFinalized) { + return new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ); + } + return undefined; + })(), + ), + ); + }; +} + +export function extendBlueprint( + type: ApiType, + decorateMethod: DecorateMethod, +): BlueprintConstructor { + return class extends Blueprint { + static __BlueprintType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + ) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-contract/src/base/Code.spec.ts b/.api-contract/src/base/Code.spec.ts new file mode 100644 index 00000000..0fd4cc99 --- /dev/null +++ b/.api-contract/src/base/Code.spec.ts @@ -0,0 +1,40 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import fs from 'node:fs'; + +import { toPromiseMethod } from '@polkadot/api'; + +import v0contractFlipper from '../test/contracts/ink/v0/flipper.contract.json' assert { type: 'json' }; +import v0abiFlipper from '../test/contracts/ink/v0/flipper.json' assert { type: 'json' }; +import v1contractFlipper from '../test/contracts/ink/v1/flipper.contract.json' assert { type: 'json' }; +import { Code } from './Code.js'; +import { mockApi } from './mock.js'; + +const v0wasmFlipper = fs.readFileSync( + new URL('../test/contracts/ink/v0/flipper.wasm', import.meta.url), + 'utf-8', +); + +describe('Code', (): void => { + it('can construct with an individual ABI/WASM combo', (): void => { + expect( + () => + new Code(mockApi, v0abiFlipper as Record, v0wasmFlipper, toPromiseMethod), + ).not.toThrow(); + }); + + it('can construct with an .contract ABI (v0)', (): void => { + expect( + () => new Code(mockApi, v0contractFlipper as Record, null, toPromiseMethod), + ).not.toThrow(); + }); + + it('can construct with an .contract ABI (v1)', (): void => { + expect( + () => new Code(mockApi, v1contractFlipper as Record, null, toPromiseMethod), + ).not.toThrow(); + }); +}); diff --git a/.api-contract/src/base/Code.ts b/.api-contract/src/base/Code.ts new file mode 100644 index 00000000..db19fff4 --- /dev/null +++ b/.api-contract/src/base/Code.ts @@ -0,0 +1,147 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@polkadot/api/base'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +// import type { AccountId, EventRecord } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +// @ts-ignore +import type { Codec } from '@polkadot/types-codec/types'; +import type { Abi } from '../Abi/index.js'; +import type { AbiConstructor, BlueprintOptions } from '../types.js'; +import type { MapConstructorExec } from './types.js'; + +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; + +// import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { Blueprint } from './Blueprint.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; + +export type CodeConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, +) => Code; + +export class CodeSubmittableResult extends SubmittableResult { + readonly blueprint?: Blueprint | undefined; + readonly contract?: Contract | undefined; + + constructor( + result: ISubmittableResult, + blueprint?: Blueprint | undefined, + contract?: Contract | undefined, + ) { + super(result); + + this.blueprint = blueprint; + this.contract = contract; + } +} + +// checks to see if the code (or at least the header) +// is a valid/supported format +function isValidCode(code: Uint8Array): boolean { + return isWasm(code) || isRiscV(code); +} + +export class Code extends Base { + readonly code: Uint8Array; + + readonly #tx: MapConstructorExec = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); + + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + + this.abi.constructors.forEach((c): void => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p)); + } + }); + } + + public get tx(): MapConstructorExec { + return this.#tx; + } + + #instantiate = ( + constructorOrId: AbiConstructor | string | number, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, + params: unknown[], + ): SubmittableExtrinsic> => { + console.log('in instantiate'); + console.log(this.abi.info.source.wasmHash); + return this.api.tx.revive + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + (result: ISubmittableResult) => + new CodeSubmittableResult( + result, + new Blueprint( + this.api, + this.abi, + this.abi.info.source.wasmHash, + this._decorateMethod, + ), + new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ), + ), + ); + }; +} + +// new CodeSubmittableResult(result, ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], (records: EventRecord[]) => +// records.reduce<[Blueprint | undefined, Contract | undefined]>(([blueprint, contract], { event }) => +// this.api.events.contracts.Instantiated.is(event) +// ? [blueprint, new Contract(this.api, this.abi, (event as unknown as { data: [Codec, AccountId] }).data[1], this._decorateMethod)] +// : this.api.events.contracts.CodeStored.is(event) +// ? [new Blueprint(this.api, this.abi, (event as unknown as { data: [AccountId] }).data[0], this._decorateMethod), contract] +// : [blueprint, contract], +// [undefined, undefined]) +// ) || [undefined, undefined])) +// ); + +export function extendCode( + type: ApiType, + decorateMethod: DecorateMethod, +): CodeConstructor { + return class extends Code { + static __CodeType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-contract/src/base/Contract.ts b/.api-contract/src/base/Contract.ts new file mode 100644 index 00000000..f59ae5b7 --- /dev/null +++ b/.api-contract/src/base/Contract.ts @@ -0,0 +1,261 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@polkadot/api/base'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { + AccountId, + AccountId20, + ContractExecResult, + EventRecord, + Weight, + WeightV2, +} from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { + AbiMessage, + ContractCallOutcome, + ContractOptions, + DecodedEvent, + WeightAll, +} from '../types.js'; +import type { + ContractCallResult, + ContractCallSend, + ContractQuery, + ContractTx, + MapMessageQuery, + MapMessageTx, +} from './types.js'; + +import { map } from 'rxjs'; + +import { SubmittableResult } from '@polkadot/api'; +import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; + +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { convertWeight, withMeta } from './util.js'; + +export type ContractConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, +) => Contract; + +// As per Rust, 5 * GAS_PER_SEC +const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); + +const l = logger('Contract'); + +function createQuery( + meta: AbiMessage, + fn: ( + origin: string | AccountId | Uint8Array, + options: ContractOptions, + params: unknown[], + ) => ContractCallResult, +): ContractQuery { + return withMeta( + meta, + ( + origin: string | AccountId | Uint8Array, + options: ContractOptions, + ...params: unknown[] + ): ContractCallResult => fn(origin, options, params), + ); +} + +function createTx( + meta: AbiMessage, + fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic, +): ContractTx { + return withMeta( + meta, + (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic => + fn(options, params), + ); +} + +export class ContractSubmittableResult extends SubmittableResult { + readonly contractEvents?: DecodedEvent[] | undefined; + + constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]) { + super(result); + + this.contractEvents = contractEvents; + } +} + +export class Contract extends Base { + /** + * @description The on-chain address for this contract + */ + readonly address: AccountId20; + + readonly #query: MapMessageQuery = {}; + readonly #tx: MapMessageTx = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId20, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.address = this.registry.createType('AccountId20', address); + + this.abi.messages.forEach((m): void => { + if (isUndefined(this.#tx[m.method])) { + this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p)); + } + + if (isUndefined(this.#query[m.method])) { + this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f)); + } + }); + } + + public get query(): MapMessageQuery { + return this.#query; + } + + public get tx(): MapMessageTx { + return this.#tx; + } + + #getGas = (_gasLimit: bigint | BN | string | number | WeightV2, isCall = false): WeightAll => { + const weight = convertWeight(_gasLimit); + + if (weight.v1Weight.gt(BN_ZERO)) { + return weight; + } + + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? (this.api.consts.system.blockWeights as unknown as { maxBlock: WeightV2 }).maxBlock + : (this.api.consts.system['maximumBlockWeight'] as Weight), + ) + .v1Weight.muln(64) + .div(BN_HUNDRED), + ); + }; + + #exec = ( + messageOrId: AbiMessage | string | number, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, + params: unknown[], + ): SubmittableExtrinsic => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + (result: ISubmittableResult) => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + applyOnEvent( + result, + ['ContractEmitted', 'ContractExecution'], + (records: EventRecord[]) => + records + .map((record): DecodedEvent | null => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${(error as Error).message}`); + + return null; + } + }) + .filter((decoded): decoded is DecodedEvent => !!decoded), + ), + ), + ); + }; + + #read = ( + messageOrId: AbiMessage | string | number, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, + params: unknown[], + ): ContractCallSend => { + const message = this.abi.findMessage(messageOrId); + + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod((origin: string | AccountId | Uint8Array) => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.#getGas(gasLimit, true).v1Weight + : this.#getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + map( + ({ + debugMessage, + gasConsumed, + gasRequired, + result, + storageDeposit, + }): ContractCallOutcome => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + }), + ), + ), + ), + }; + }; +} + +export function extendContract( + type: ApiType, + decorateMethod: DecorateMethod, +): ContractConstructor { + return class extends Contract { + static __ContractType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, + ) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-contract/src/base/index.ts b/.api-contract/src/base/index.ts new file mode 100644 index 00000000..e85848a3 --- /dev/null +++ b/.api-contract/src/base/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @polkadot/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { Contract, extendContract } from './Contract.js'; diff --git a/.api-contract/src/base/mock.ts b/.api-contract/src/base/mock.ts new file mode 100644 index 00000000..bb997998 --- /dev/null +++ b/.api-contract/src/base/mock.ts @@ -0,0 +1,31 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@polkadot/api/base'; + +import { TypeRegistry } from '@polkadot/types'; + +const registry = new TypeRegistry(); + +const instantiateWithCode = (): never => { + throw new Error('mock'); +}; + +instantiateWithCode.meta = { args: new Array(6) }; + +export const mockApi = { + call: { + contractsApi: { + call: (): never => { + throw new Error('mock'); + }, + }, + }, + isConnected: true, + registry, + tx: { + contracts: { + instantiateWithCode, + }, + }, +} as unknown as ApiBase<'promise'>; diff --git a/.api-contract/src/base/types.ts b/.api-contract/src/base/types.ts new file mode 100644 index 00000000..6f9cbc9d --- /dev/null +++ b/.api-contract/src/base/types.ts @@ -0,0 +1,53 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes, ObsInnerType } from '@polkadot/api/types'; +import type { AccountId } from '@polkadot/types/interfaces'; +import type { + AbiMessage, + BlueprintOptions, + ContractCallOutcome, + ContractOptions, +} from '../types.js'; + +export interface MessageMeta { + readonly meta: AbiMessage; +} + +export interface BlueprintDeploy extends MessageMeta { + (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; +} + +export interface ContractQuery extends MessageMeta { + ( + origin: AccountId | string | Uint8Array, + options: ContractOptions, + ...params: unknown[] + ): ContractCallResult; +} + +export interface ContractTx extends MessageMeta { + (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; +} + +export type ContractGeneric = ( + messageOrId: AbiMessage | string | number, + options: O, + ...params: unknown[] +) => T; + +export type ContractCallResult = ApiType extends 'rxjs' + ? Observable + : Promise>>; + +export interface ContractCallSend { + send(account: string | AccountId | Uint8Array): ContractCallResult; +} + +export type MapConstructorExec = Record>; + +export type MapMessageTx = Record>; + +export type MapMessageQuery = Record>; diff --git a/.api-contract/src/base/util.ts b/.api-contract/src/base/util.ts new file mode 100644 index 00000000..33c28016 --- /dev/null +++ b/.api-contract/src/base/util.ts @@ -0,0 +1,77 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { SubmittableResult } from '@polkadot/api'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes } from '@polkadot/api/types'; +import type { WeightV1, WeightV2 } from '@polkadot/types/interfaces'; +import type { BN } from '@polkadot/util'; +import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.js'; +import type { BlueprintDeploy, ContractGeneric } from './types.js'; + +import { Bytes } from '@polkadot/types'; +import { bnToBn, compactAddLength, u8aToU8a } from '@polkadot/util'; +import { randomAsU8a } from '@polkadot/util-crypto'; + +export const EMPTY_SALT = new Uint8Array(); + +export function withMeta( + meta: AbiMessage, + creator: Omit, +): T { + (creator as T).meta = meta; + + return creator as T; +} + +export function createBluePrintTx( + meta: AbiMessage, + fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic, +): BlueprintDeploy { + return withMeta( + meta, + (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic => + fn(options, params), + ); +} + +export function createBluePrintWithId( + fn: ( + constructorOrId: AbiConstructor | string | number, + options: BlueprintOptions, + params: unknown[], + ) => T, +): ContractGeneric { + return ( + constructorOrId: AbiConstructor | string | number, + options: BlueprintOptions, + ...params: unknown[] + ): T => fn(constructorOrId, options, params); +} + +export function encodeSalt(salt: Uint8Array | string | null = randomAsU8a()): Uint8Array { + return salt instanceof Bytes + ? salt + : salt?.length + ? compactAddLength(u8aToU8a(salt)) + : EMPTY_SALT; +} + +export function convertWeight( + weight: WeightV1 | WeightV2 | bigint | string | number | BN, +): WeightAll { + const [refTime, proofSize] = isWeightV2(weight) + ? [weight.refTime.toBn(), weight.proofSize.toBn()] + : [bnToBn(weight), undefined]; + + return { + v1Weight: refTime, + v2Weight: { proofSize, refTime }, + }; +} + +export function isWeightV2( + weight: WeightV1 | WeightV2 | bigint | string | number | BN, +): weight is WeightV2 { + return !!(weight as WeightV2).proofSize; +} diff --git a/.api-contract/src/bundle.ts b/.api-contract/src/bundle.ts new file mode 100644 index 00000000..1be0423b --- /dev/null +++ b/.api-contract/src/bundle.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all named +export { Abi } from './Abi/index.js'; +export { packageInfo } from './packageInfo.js'; + +// all starred +export * from './promise/index.js'; +export * from './rx/index.js'; diff --git a/.api-contract/src/checkTypes.manual.ts b/.api-contract/src/checkTypes.manual.ts new file mode 100644 index 00000000..236f68e5 --- /dev/null +++ b/.api-contract/src/checkTypes.manual.ts @@ -0,0 +1,44 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Simple non-runnable checks to test type definitions in the editor itself + +import '@polkadot/api-augment'; + +import type { TestKeyringMapSubstrate } from '@polkadot/keyring/testingPairs'; + +import { ApiPromise } from '@polkadot/api'; +import { BlueprintPromise, ContractPromise } from '@polkadot/api-contract'; +import { createTestPairs } from '@polkadot/keyring/testingPairs'; + +import abiIncrementer from './test/contracts/ink/v0/incrementer.json' assert { type: 'json' }; + +async function checkBlueprint(api: ApiPromise, pairs: TestKeyringMapSubstrate): Promise { + const blueprint = new BlueprintPromise(api, abiIncrementer as Record, '0x1234'); + + await blueprint.tx['new']({ gasLimit: 456, salt: '0x1234', value: 123 }, 42).signAndSend( + pairs.bob, + ); + await blueprint.tx['new']({ gasLimit: 456, value: 123 }, 42).signAndSend(pairs.bob); +} + +async function checkContract(api: ApiPromise, pairs: TestKeyringMapSubstrate): Promise { + const contract = new ContractPromise(api, abiIncrementer as Record, '0x1234'); + + // queries + await contract.query['get'](pairs.alice.address, {}); + + // execute + await contract.tx['inc']({ gasLimit: 1234 }, 123).signAndSend(pairs.eve); +} + +async function main(): Promise { + const api = await ApiPromise.create({ + hasher: (data: Uint8Array): Uint8Array => data, + }); + const pairs = createTestPairs(); + + await Promise.all([checkBlueprint(api, pairs), checkContract(api, pairs)]); +} + +main().catch(console.error); diff --git a/.api-contract/src/index.ts b/.api-contract/src/index.ts new file mode 100644 index 00000000..5e015c3f --- /dev/null +++ b/.api-contract/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/.api-contract/src/mod.ts b/.api-contract/src/mod.ts new file mode 100644 index 00000000..57e1fea8 --- /dev/null +++ b/.api-contract/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/.api-contract/src/packageDetect.ts b/.api-contract/src/packageDetect.ts new file mode 100644 index 00000000..ee014dfe --- /dev/null +++ b/.api-contract/src/packageDetect.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @polkadot/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as apiInfo } from '@polkadot/api/packageInfo'; +import { packageInfo as typesInfo } from '@polkadot/types/packageInfo'; +import { detectPackage } from '@polkadot/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [apiInfo, typesInfo]); diff --git a/.api-contract/src/packageInfo.ts b/.api-contract/src/packageInfo.ts new file mode 100644 index 00000000..2f695e88 --- /dev/null +++ b/.api-contract/src/packageInfo.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @polkadot/dev + +export const packageInfo = { + name: '@polkadot/api-contract', + path: 'auto', + type: 'auto', + version: '15.8.1', +}; diff --git a/.api-contract/src/promise/index.ts b/.api-contract/src/promise/index.ts new file mode 100644 index 00000000..53058fcf --- /dev/null +++ b/.api-contract/src/promise/index.ts @@ -0,0 +1,40 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiPromise } from '@polkadot/api'; +import type { AccountId20, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; + +import { toPromiseMethod } from '@polkadot/api'; + +import { Blueprint, Code, Contract } from '../base/index.js'; + +export class BlueprintPromise extends Blueprint<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ) { + super(api, abi, codeHash, toPromiseMethod); + } +} + +export class CodePromise extends Code<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, toPromiseMethod); + } +} + +export class ContractPromise extends Contract<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId20, + ) { + super(api, abi, address, toPromiseMethod); + } +} diff --git a/.api-contract/src/promise/types.ts b/.api-contract/src/promise/types.ts new file mode 100644 index 00000000..7057fec2 --- /dev/null +++ b/.api-contract/src/promise/types.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { + BlueprintSubmittableResult as BaseBlueprintSubmittableResult, + CodeSubmittableResult as BaseCodeSubmittableResult, +} from '../base/index.js'; + +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/src/rx/index.ts b/.api-contract/src/rx/index.ts new file mode 100644 index 00000000..72bc95d7 --- /dev/null +++ b/.api-contract/src/rx/index.ts @@ -0,0 +1,36 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiRx } from '@polkadot/api'; +import type { AccountId, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; + +import { toRxMethod } from '@polkadot/api'; + +import { Blueprint, Code, Contract } from '../base/index.js'; + +export class BlueprintRx extends Blueprint<'rxjs'> { + constructor(api: ApiRx, abi: string | Record | Abi, codeHash: string | Hash) { + super(api, abi, codeHash, toRxMethod); + } +} + +export class CodeRx extends Code<'rxjs'> { + constructor( + api: ApiRx, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, toRxMethod); + } +} + +export class ContractRx extends Contract<'rxjs'> { + constructor( + api: ApiRx, + abi: string | Record | Abi, + address: string | AccountId, + ) { + super(api, abi, address, toRxMethod); + } +} diff --git a/.api-contract/src/rx/types.ts b/.api-contract/src/rx/types.ts new file mode 100644 index 00000000..7057fec2 --- /dev/null +++ b/.api-contract/src/rx/types.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { + BlueprintSubmittableResult as BaseBlueprintSubmittableResult, + CodeSubmittableResult as BaseCodeSubmittableResult, +} from '../base/index.js'; + +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/src/test/compare/ink_v0_delegator.test.json b/.api-contract/src/test/compare/ink_v0_delegator.test.json new file mode 100644 index 00000000..07bd94d7 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v0_delegator.test.json @@ -0,0 +1,47 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 2, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "i32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "Hash", + "docs": [], + "namespace": "ink_env::types::Hash", + "lookupNameRoot": "InkEnvHash" + } +] diff --git a/.api-contract/src/test/compare/ink_v0_dns.test.json b/.api-contract/src/test/compare/ink_v0_dns.test.json new file mode 100644 index 00000000..45d5618c --- /dev/null +++ b/.api-contract/src/test/compare/ink_v0_dns.test.json @@ -0,0 +1,232 @@ +[ + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"Hash\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup7", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "Hash", + "docs": [], + "namespace": "ink_env::types::Hash", + "lookupNameRoot": "InkEnvHash", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "Hash", + "docs": [], + "namespace": "ink_env::types::Hash", + "lookupNameRoot": "InkEnvHash" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsHashmapValueEntry", + "type": "{\"value\":\"AccountId\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 9, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 9, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Result", + "lookupIndex": 10, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 11, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 12, + "lookupName": "DnsError", + "type": "Lookup12" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 12, + "lookupName": "DnsError", + "type": "{\"_enum\":[\"NameAlreadyExists\",\"CallerIsNotOwner\"]}", + "docs": [], + "namespace": "dns::dns::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "NameAlreadyExists" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CallerIsNotOwner" + } + ] + }, + { + "info": "Option", + "lookupIndex": 13, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 9, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] diff --git a/.api-contract/src/test/compare/ink_v0_erc20.test.json b/.api-contract/src/test/compare/ink_v0_erc20.test.json new file mode 100644 index 00000000..0ddd1aab --- /dev/null +++ b/.api-contract/src/test/compare/ink_v0_erc20.test.json @@ -0,0 +1,253 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 2, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 4, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 9, + "lookupName": "InkStorageCollectionsHashmapValueEntry", + "type": "{\"value\":\"u128\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u128", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 11, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 11, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Option", + "lookupIndex": 13, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] diff --git a/.api-contract/src/test/compare/ink_v0_erc721.test.json b/.api-contract/src/test/compare/ink_v0_erc721.test.json new file mode 100644 index 00000000..728b5c06 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v0_erc721.test.json @@ -0,0 +1,415 @@ +[ + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"u32\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup4", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 4, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 5, + "type": "{\"value\":\"AccountId\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 7, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 9, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup4", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 10, + "lookupName": "InkStorageCollectionsHashmapValueEntryEntry", + "type": "{\"value\":\"u32\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 11, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup4", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 12, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 12, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "InkStorageCollectionsHashmapValueEntryOption", + "type": "{\"value\":\"bool\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 14, + "type": "bool", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 14, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Option", + "lookupIndex": 15, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 17, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 18, + "lookupName": "Erc721Error", + "type": "Lookup18" + } + ] + }, + { + "info": "Null", + "lookupIndex": 17, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 18, + "lookupName": "Erc721Error", + "type": "{\"_enum\":[\"NotOwner\",\"NotApproved\",\"TokenExists\",\"TokenNotFound\",\"CannotInsert\",\"CannotRemove\",\"CannotFetchValue\",\"NotAllowed\"]}", + "docs": [], + "namespace": "erc721::erc721::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "NotOwner" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "NotApproved" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "TokenExists" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "TokenNotFound" + }, + { + "info": "Null", + "type": "Null", + "index": 4, + "name": "CannotInsert" + }, + { + "info": "Null", + "type": "Null", + "index": 5, + "name": "CannotRemove" + }, + { + "info": "Null", + "type": "Null", + "index": 6, + "name": "CannotFetchValue" + }, + { + "info": "Null", + "type": "Null", + "index": 7, + "name": "NotAllowed" + } + ] + } +] diff --git a/.api-contract/src/test/compare/ink_v0_flipper.test.json b/.api-contract/src/test/compare/ink_v0_flipper.test.json new file mode 100644 index 00000000..47947069 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v0_flipper.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "bool", + "docs": [], + "namespace": "" + } +] diff --git a/.api-contract/src/test/compare/ink_v0_flipperBundle.test.json b/.api-contract/src/test/compare/ink_v0_flipperBundle.test.json new file mode 100644 index 00000000..47947069 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v0_flipperBundle.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "bool", + "docs": [], + "namespace": "" + } +] diff --git a/.api-contract/src/test/compare/ink_v0_incrementer.test.json b/.api-contract/src/test/compare/ink_v0_incrementer.test.json new file mode 100644 index 00000000..e089626f --- /dev/null +++ b/.api-contract/src/test/compare/ink_v0_incrementer.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "i32", + "docs": [], + "namespace": "" + } +] diff --git a/.api-contract/src/test/compare/ink_v0_multisigPlain.test.json b/.api-contract/src/test/compare/ink_v0_multisigPlain.test.json new file mode 100644 index 00000000..9e8747a4 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v0_multisigPlain.test.json @@ -0,0 +1,562 @@ +[ + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(u32,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 4, + "type": "(u32,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 4, + "type": "(u32,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 9, + "type": "{\"value\":\"Null\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 11, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"u32\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 12, + "lookupName": "InkStorageCollectionsHashmapValueEntry", + "type": "{\"value\":\"u32\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 13, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"MultisigPlainTransaction\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 14, + "lookupName": "MultisigPlainTransaction", + "type": "Lookup14", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 14, + "lookupName": "MultisigPlainTransaction", + "type": "{\"callee\":\"AccountId\",\"selector\":\"[u8;4]\",\"input\":\"Bytes\",\"transferredValue\":\"u128\",\"gasLimit\":\"u64\"}", + "docs": [], + "namespace": "multisig_plain::multisig_plain::Transaction", + "sub": [ + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "name": "callee" + }, + { + "info": "VecFixed", + "lookupIndex": 15, + "type": "[u8;4]", + "docs": [], + "namespace": "", + "length": 4, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + "name": "selector" + }, + { + "info": "Plain", + "lookupIndex": 16, + "type": "Bytes", + "docs": [], + "namespace": "", + "name": "input" + }, + { + "info": "Plain", + "lookupIndex": 17, + "type": "u128", + "docs": [], + "namespace": "", + "name": "transferredValue" + }, + { + "info": "Plain", + "lookupIndex": 18, + "type": "u64", + "docs": [], + "namespace": "", + "name": "gasLimit" + } + ] + }, + { + "info": "VecFixed", + "lookupIndex": 15, + "type": "[u8;4]", + "docs": [], + "namespace": "", + "length": 4, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 16, + "type": "Bytes", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 17, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 18, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Vec", + "lookupIndex": 20, + "type": "Vec", + "docs": [], + "namespace": "", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + }, + { + "info": "Tuple", + "lookupIndex": 21, + "type": "(u32,MultisigPlainConfirmationStatus)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "MultisigPlainConfirmationStatus", + "type": "Lookup22" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 22, + "lookupName": "MultisigPlainConfirmationStatus", + "type": "{\"_enum\":{\"Confirmed\":\"Null\",\"ConfirmationsNeeded\":\"u32\"}}", + "docs": [], + "namespace": "multisig_plain::multisig_plain::ConfirmationStatus", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "Confirmed" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "index": 1, + "name": "ConfirmationsNeeded" + } + ] + }, + { + "info": "Result", + "lookupIndex": 23, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 24, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 16, + "type": "Bytes", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 25, + "type": "Result, Null>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Option", + "lookupIndex": 26, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 16, + "type": "Bytes", + "docs": [], + "namespace": "" + } + }, + { + "name": "Error", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + } + ] + }, + { + "info": "Option", + "lookupIndex": 26, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 16, + "type": "Bytes", + "docs": [], + "namespace": "" + } + } +] diff --git a/.api-contract/src/test/compare/ink_v1_flipper.test.json b/.api-contract/src/test/compare/ink_v1_flipper.test.json new file mode 100644 index 00000000..bbbb7375 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v1_flipper.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + } +] diff --git a/.api-contract/src/test/compare/ink_v1_psp22.test.json b/.api-contract/src/test/compare/ink_v1_psp22.test.json new file mode 100644 index 00000000..4ab33a0b --- /dev/null +++ b/.api-contract/src/test/compare/ink_v1_psp22.test.json @@ -0,0 +1,531 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant", + "typeName": "Index" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len", + "typeName": "u32" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries", + "typeName": "u32" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup7", + "typeName": "VacantEntry", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "typeName": "T", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next", + "typeName": "Index" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev", + "typeName": "Index" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 8, + "type": "{\"value\":\"u128\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "", + "name": "value", + "typeName": "V" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex", + "typeName": "KeyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 9, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup7", + "typeName": "VacantEntry", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "typeName": "T", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 13, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"u32\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup7", + "typeName": "VacantEntry", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "typeName": "T", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 14, + "type": "{\"value\":\"u32\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "value", + "typeName": "V" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex", + "typeName": "KeyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(u32,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup7", + "typeName": "VacantEntry", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 16, + "type": "(u32,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "typeName": "T", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 16, + "type": "(u32,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 17, + "lookupName": "InkStorageCollectionsHashmapValueEntry", + "type": "{\"value\":\"Null\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Null", + "lookupIndex": 18, + "type": "Null", + "docs": [], + "namespace": "", + "name": "value", + "typeName": "V" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex", + "typeName": "KeyIndex" + } + ] + }, + { + "info": "Null", + "lookupIndex": 18, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Option", + "lookupIndex": 19, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 11, + "type": "Text", + "docs": [], + "namespace": "" + } + }, + { + "info": "Result", + "lookupIndex": 20, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 18, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 21, + "lookupName": "ContractsErrorsPsp22Psp22Error", + "type": "Lookup21" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 21, + "lookupName": "ContractsErrorsPsp22Psp22Error", + "type": "{\"_enum\":{\"Custom\":\"Text\",\"InsufficientBalance\":\"Null\",\"InsufficientAllowance\":\"Null\",\"ZeroRecipientAddress\":\"Null\",\"ZeroSenderAddress\":\"Null\",\"SafeTransferCheckFailed\":\"Text\"}}", + "docs": [], + "namespace": "contracts::traits::errors::psp22::PSP22Error", + "sub": [ + { + "info": "Plain", + "lookupIndex": 11, + "type": "Text", + "docs": [], + "namespace": "", + "typeName": "Text", + "index": 0, + "name": "Custom" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "InsufficientAllowance" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "ZeroRecipientAddress" + }, + { + "info": "Null", + "type": "Null", + "index": 4, + "name": "ZeroSenderAddress" + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "Text", + "docs": [], + "namespace": "", + "typeName": "Text", + "index": 5, + "name": "SafeTransferCheckFailed" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "Bytes", + "docs": [], + "namespace": "" + }, + { + "info": "Option", + "lookupIndex": 23, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] diff --git a/.api-contract/src/test/compare/ink_v2_erc20.test.json b/.api-contract/src/test/compare/ink_v2_erc20.test.json new file mode 100644 index 00000000..8e9a0884 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v2_erc20.test.json @@ -0,0 +1,205 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 1, + "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping", + "sub": [ + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "Key", + "name": "offsetKey" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "[u8;32]" + }, + { + "info": "Struct", + "lookupIndex": 6, + "lookupName": "InkStorageLazyMapping", + "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping", + "sub": [ + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "Key", + "name": "offsetKey" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 7, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Result", + "lookupIndex": 8, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 9, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "info": "Null", + "lookupIndex": 9, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 11, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] diff --git a/.api-contract/src/test/compare/ink_v2_flipper.test.json b/.api-contract/src/test/compare/ink_v2_flipper.test.json new file mode 100644 index 00000000..bbbb7375 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v2_flipper.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + } +] diff --git a/.api-contract/src/test/compare/ink_v3_flipper.test.json b/.api-contract/src/test/compare/ink_v3_flipper.test.json new file mode 100644 index 00000000..bbbb7375 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v3_flipper.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + } +] diff --git a/.api-contract/src/test/compare/ink_v3_traitErc20.test.json b/.api-contract/src/test/compare/ink_v3_traitErc20.test.json new file mode 100644 index 00000000..1f6373ef --- /dev/null +++ b/.api-contract/src/test/compare/ink_v3_traitErc20.test.json @@ -0,0 +1,205 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 1, + "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping", + "sub": [ + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "Key", + "name": "offsetKey" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "[u8;32]" + }, + { + "info": "Struct", + "lookupIndex": 6, + "lookupName": "InkStorageLazyMapping", + "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping", + "sub": [ + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "Key", + "name": "offsetKey" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 7, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Result", + "lookupIndex": 8, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 9, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "TraitErc20Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "info": "Null", + "lookupIndex": 9, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "TraitErc20Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "trait_erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 11, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] diff --git a/.api-contract/src/test/compare/ink_v4_erc20Contract.test.json b/.api-contract/src/test/compare/ink_v4_erc20Contract.test.json new file mode 100644 index 00000000..d34d7f85 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v4_erc20Contract.test.json @@ -0,0 +1,253 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 1, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 4, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 8, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 11, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 14, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 15, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] diff --git a/.api-contract/src/test/compare/ink_v4_erc20Metadata.test.json b/.api-contract/src/test/compare/ink_v4_erc20Metadata.test.json new file mode 100644 index 00000000..d34d7f85 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v4_erc20Metadata.test.json @@ -0,0 +1,253 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 1, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 4, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 8, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 11, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 14, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 15, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] diff --git a/.api-contract/src/test/compare/ink_v4_flipperContract.test.json b/.api-contract/src/test/compare/ink_v4_flipperContract.test.json new file mode 100644 index 00000000..681a6a3d --- /dev/null +++ b/.api-contract/src/test/compare/ink_v4_flipperContract.test.json @@ -0,0 +1,155 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 1, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 4, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 9, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 10, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] diff --git a/.api-contract/src/test/compare/ink_v4_flipperMetadata.test.json b/.api-contract/src/test/compare/ink_v4_flipperMetadata.test.json new file mode 100644 index 00000000..681a6a3d --- /dev/null +++ b/.api-contract/src/test/compare/ink_v4_flipperMetadata.test.json @@ -0,0 +1,155 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 1, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 4, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 9, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 10, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] diff --git a/.api-contract/src/test/compare/ink_v5_erc20.test.json b/.api-contract/src/test/compare/ink_v5_erc20.test.json new file mode 100644 index 00000000..2f7012d6 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v5_erc20.test.json @@ -0,0 +1,370 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 5, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 6, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 7, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 12, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "namespace": "", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 17, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 20, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 21, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 24, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] diff --git a/.api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json b/.api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json new file mode 100644 index 00000000..2f7012d6 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json @@ -0,0 +1,370 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 5, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 6, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 7, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 12, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "namespace": "", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 17, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 20, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 21, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 24, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] diff --git a/.api-contract/src/test/compare/ink_v5_erc20Contract.test.json b/.api-contract/src/test/compare/ink_v5_erc20Contract.test.json new file mode 100644 index 00000000..2f7012d6 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v5_erc20Contract.test.json @@ -0,0 +1,370 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 5, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 6, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 7, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 12, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "namespace": "", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 17, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 20, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 21, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 24, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] diff --git a/.api-contract/src/test/compare/ink_v5_erc20Metadata.test.json b/.api-contract/src/test/compare/ink_v5_erc20Metadata.test.json new file mode 100644 index 00000000..2f7012d6 --- /dev/null +++ b/.api-contract/src/test/compare/ink_v5_erc20Metadata.test.json @@ -0,0 +1,370 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 5, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 6, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 7, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 12, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "namespace": "", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 17, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 20, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 21, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 24, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] diff --git a/.api-contract/src/test/compare/ink_v5_flipperContract.test.json b/.api-contract/src/test/compare/ink_v5_flipperContract.test.json new file mode 100644 index 00000000..69b5276e --- /dev/null +++ b/.api-contract/src/test/compare/ink_v5_flipperContract.test.json @@ -0,0 +1,174 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "Flipper", + "type": "{\"value\":\"bool\"}", + "docs": [], + "namespace": "flipper::flipper::Flipper", + "sub": [ + { + "docs": [], + "name": "value", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "namespace": "", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 2, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup4" + } + ] + }, + { + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 5, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup4" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 7, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 9, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 10, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] diff --git a/.api-contract/src/test/compare/ink_v5_flipperMetadata.test.json b/.api-contract/src/test/compare/ink_v5_flipperMetadata.test.json new file mode 100644 index 00000000..69b5276e --- /dev/null +++ b/.api-contract/src/test/compare/ink_v5_flipperMetadata.test.json @@ -0,0 +1,174 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "Flipper", + "type": "{\"value\":\"bool\"}", + "docs": [], + "namespace": "flipper::flipper::Flipper", + "sub": [ + { + "docs": [], + "name": "value", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "namespace": "", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 2, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup4" + } + ] + }, + { + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 5, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup4" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 7, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 9, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 10, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] diff --git a/.api-contract/src/test/compare/solang_v0_ints256.test.json b/.api-contract/src/test/compare/solang_v0_ints256.test.json new file mode 100644 index 00000000..0c273a6a --- /dev/null +++ b/.api-contract/src/test/compare/solang_v0_ints256.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u256", + "docs": [], + "namespace": "" + } +] diff --git a/.api-contract/src/test/compare/user_v0_assetTransfer.test.json b/.api-contract/src/test/compare/user_v0_assetTransfer.test.json new file mode 100644 index 00000000..8a62addf --- /dev/null +++ b/.api-contract/src/test/compare/user_v0_assetTransfer.test.json @@ -0,0 +1,54 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u256", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "VecFixed", + "lookupIndex": 4, + "lookupName": "AccountId", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "Text", + "docs": [], + "namespace": "" + } +] diff --git a/.api-contract/src/test/compare/user_v0_enumExample.test.json b/.api-contract/src/test/compare/user_v0_enumExample.test.json new file mode 100644 index 00000000..0bf43f84 --- /dev/null +++ b/.api-contract/src/test/compare/user_v0_enumExample.test.json @@ -0,0 +1,303 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "i32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 4, + "lookupName": "EnumExampleVariant", + "type": "{\"_enum\":{\"None\":\"Null\",\"Weekday\":\"EnumExampleWeekday\",\"TupleMaybeSigned\":\"EnumExampleTupleMaybeSigned\",\"NamedMaybeSigned\":\"EnumExampleNamedMaybeSigned\",\"Color\":\"EnumExampleColor\"}}", + "docs": [], + "namespace": "enum_example::enum_example::Variant", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "None" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 5, + "lookupName": "EnumExampleWeekday", + "type": "Lookup5", + "index": 1, + "name": "Weekday" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 6, + "lookupName": "EnumExampleTupleMaybeSigned", + "type": "Lookup6", + "index": 2, + "name": "TupleMaybeSigned" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "EnumExampleNamedMaybeSigned", + "type": "Lookup7", + "index": 3, + "name": "NamedMaybeSigned" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "EnumExampleColor", + "type": "Lookup8", + "index": 4, + "name": "Color" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 5, + "lookupName": "EnumExampleWeekday", + "type": "{\"_enum\":[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"]}", + "docs": [], + "namespace": "enum_example::enum_example::Weekday", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "Monday" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "Tuesday" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "Wednesday" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "Thursday" + }, + { + "info": "Null", + "type": "Null", + "index": 4, + "name": "Friday" + }, + { + "info": "Null", + "type": "Null", + "index": 5, + "name": "Saturday" + }, + { + "info": "Null", + "type": "Null", + "index": 6, + "name": "Sunday" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 6, + "lookupName": "EnumExampleTupleMaybeSigned", + "type": "{\"_enum\":{\"Signed\":\"i32\",\"Unsigned\":\"u32\"}}", + "docs": [], + "namespace": "enum_example::enum_example::TupleMaybeSigned", + "sub": [ + { + "info": "Plain", + "lookupIndex": 1, + "type": "i32", + "docs": [], + "namespace": "", + "index": 0, + "name": "Signed" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "index": 1, + "name": "Unsigned" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 7, + "lookupName": "EnumExampleNamedMaybeSigned", + "type": "{\"_enum\":{\"Signed\":\"{\\\"value\\\":\\\"i32\\\"}\",\"Unsigned\":\"{\\\"value\\\":\\\"u32\\\"}\"}}", + "docs": [], + "namespace": "enum_example::enum_example::NamedMaybeSigned", + "sub": [ + { + "info": "Struct", + "sub": [ + { + "info": "Plain", + "lookupIndex": 1, + "type": "i32", + "docs": [], + "namespace": "", + "name": "value" + } + ], + "type": "{\"value\":\"i32\"}", + "index": 0, + "name": "Signed" + }, + { + "info": "Struct", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "value" + } + ], + "type": "{\"value\":\"u32\"}", + "index": 1, + "name": "Unsigned" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 8, + "lookupName": "EnumExampleColor", + "type": "{\"_enum\":{\"Red\":\"Null\",\"Blue\":\"Null\",\"Green\":\"Null\",\"Yellow\":\"Null\",\"Rgb\":\"{\\\"r\\\":\\\"u8\\\",\\\"g\\\":\\\"u8\\\",\\\"b\\\":\\\"u8\\\"}\",\"Rgba\":\"{\\\"r\\\":\\\"u8\\\",\\\"g\\\":\\\"u8\\\",\\\"b\\\":\\\"u8\\\",\\\"a\\\":\\\"u8\\\"}\"}}", + "docs": [], + "namespace": "enum_example::enum_example::Color", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "Red" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "Blue" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "Green" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "Yellow" + }, + { + "info": "Struct", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "r" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "g" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "b" + } + ], + "type": "{\"r\":\"u8\",\"g\":\"u8\",\"b\":\"u8\"}", + "index": 4, + "name": "Rgb" + }, + { + "info": "Struct", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "r" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "g" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "b" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "a" + } + ], + "type": "{\"r\":\"u8\",\"g\":\"u8\",\"b\":\"u8\",\"a\":\"u8\"}", + "index": 5, + "name": "Rgba" + } + ] + } +] diff --git a/.api-contract/src/test/compare/user_v0_recursive.test.json b/.api-contract/src/test/compare/user_v0_recursive.test.json new file mode 100644 index 00000000..327476f9 --- /dev/null +++ b/.api-contract/src/test/compare/user_v0_recursive.test.json @@ -0,0 +1,27 @@ +[ + { + "info": "Enum", + "lookupIndex": 1, + "lookupName": "RecursiveMyEnum", + "type": "{\"_enum\":{\"A\":\"Null\",\"B\":\"RecursiveMyEnum\"}}", + "docs": [], + "namespace": "recursive::MyEnum", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "A" + }, + { + "info": "Si", + "lookupIndex": 1, + "lookupName": "RecursiveMyEnum", + "type": "Lookup1", + "typeName": "MyEnum", + "index": 1, + "name": "B" + } + ] + } +] diff --git a/.api-contract/src/test/compare/user_v0_withString.test.json b/.api-contract/src/test/compare/user_v0_withString.test.json new file mode 100644 index 00000000..2d797855 --- /dev/null +++ b/.api-contract/src/test/compare/user_v0_withString.test.json @@ -0,0 +1,260 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 2, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 4, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 9, + "lookupName": "InkStorageCollectionsHashmapValueEntry", + "type": "{\"value\":\"u128\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u128", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 11, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 11, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Option", + "lookupIndex": 14, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] diff --git a/.api-contract/src/test/compare/user_v3_ask.test.json b/.api-contract/src/test/compare/user_v3_ask.test.json new file mode 100644 index 00000000..3f67e9a1 --- /dev/null +++ b/.api-contract/src/test/compare/user_v3_ask.test.json @@ -0,0 +1,71 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 1, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "info": "VecFixed", + "lookupIndex": 2, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 0, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Struct", + "lookupIndex": 3, + "type": "{\"inner\":\"[u8;32]\"}", + "docs": [], + "namespace": "", + "sub": [ + { + "docs": [], + "name": "inner", + "info": "VecFixed", + "lookupIndex": 2, + "type": "[u8;32]", + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 0, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "FixedArray32" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "bool", + "docs": [], + "namespace": "" + } +] diff --git a/.api-contract/src/test/compare/user_v4_events.test.json b/.api-contract/src/test/compare/user_v4_events.test.json new file mode 100644 index 00000000..f88b2172 --- /dev/null +++ b/.api-contract/src/test/compare/user_v4_events.test.json @@ -0,0 +1,1328 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 1, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u16", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 11, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 7, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 12, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "{\"_enum\":{\"U8\":\"u8\",\"U16\":\"u16\",\"U32\":\"u32\",\"U64\":\"u64\",\"U128\":\"u128\",\"Bytes\":\"Bytes\"}}", + "docs": [], + "namespace": "openbrush_contracts::traits::types::Id", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "", + "typeName": "u8", + "index": 0, + "name": "U8" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u16", + "docs": [], + "namespace": "", + "typeName": "u16", + "index": 1, + "name": "U16" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "u32", + "docs": [], + "namespace": "", + "typeName": "u32", + "index": 2, + "name": "U32" + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u64", + "docs": [], + "namespace": "", + "typeName": "u64", + "index": 3, + "name": "U64" + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u128", + "docs": [], + "namespace": "", + "typeName": "u128", + "index": 4, + "name": "U128" + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "", + "typeName": "Bytes", + "index": 5, + "name": "Bytes" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Option", + "lookupIndex": 15, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 0, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Option", + "lookupIndex": 15, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 0, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 5, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Option", + "lookupIndex": 17, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + } + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 19, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 19, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 20, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 21, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "Lookup22" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 21, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "Lookup22" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "{\"_enum\":{\"Custom\":\"Bytes\",\"SelfApprove\":\"Null\",\"NotApproved\":\"Null\",\"TokenExists\":\"Null\",\"TokenNotExists\":\"Null\",\"SafeTransferCheckFailed\":\"Bytes\"}}", + "docs": [], + "namespace": "openbrush_contracts::traits::errors::psp34::PSP34Error", + "sub": [ + { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "", + "typeName": "Text", + "index": 0, + "name": "Custom" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "SelfApprove" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "NotApproved" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "TokenExists" + }, + { + "info": "Null", + "type": "Null", + "index": 4, + "name": "TokenNotExists" + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "", + "typeName": "Text", + "index": 5, + "name": "SafeTransferCheckFailed" + } + ] + }, + { + "info": "Result", + "lookupIndex": 23, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 24, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 25, + "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", + "type": "Lookup25" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 24, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 25, + "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", + "type": "Lookup25" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 25, + "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", + "type": "{\"_enum\":[\"InvalidCaller\",\"MissingRole\",\"RoleRedundant\"]}", + "docs": [], + "namespace": "openbrush_contracts::traits::errors::access_control::AccessControlError", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InvalidCaller" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "MissingRole" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "RoleRedundant" + } + ] + }, + { + "info": "Result", + "lookupIndex": 26, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Option", + "lookupIndex": 27, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "" + } + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Option", + "lookupIndex": 27, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "" + } + }, + { + "info": "Result", + "lookupIndex": 28, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 29, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "Lookup22" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 29, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "Lookup22" + } + ] + }, + { + "info": "Result", + "lookupIndex": 30, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 31, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 32, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 31, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 32, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 32, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "{\"_enum\":{\"Rmrk\":\"RmrkCommonErrorsRmrkError\",\"PSP34\":\"OpenbrushContractsErrorsPsp34Psp34Error\",\"AccessControl\":\"OpenbrushContractsErrorsAccessControlAccessControlError\",\"Reentrancy\":\"OpenbrushContractsErrorsReentrancyGuardReentrancyGuardError\"}}", + "docs": [], + "namespace": "rmrk_common::errors::Error", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 34, + "lookupName": "RmrkCommonErrorsRmrkError", + "type": "Lookup34", + "typeName": "RmrkError", + "index": 0, + "name": "Rmrk" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "Lookup22", + "typeName": "PSP34Error", + "index": 1, + "name": "PSP34" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 25, + "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", + "type": "Lookup25", + "typeName": "AccessControlError", + "index": 2, + "name": "AccessControl" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 35, + "lookupName": "OpenbrushContractsErrorsReentrancyGuardReentrancyGuardError", + "type": "Lookup35", + "typeName": "ReentrancyGuardError", + "index": 3, + "name": "Reentrancy" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 34, + "lookupName": "RmrkCommonErrorsRmrkError", + "type": "{\"_enum\":[\"AcceptedAssetsMissing\",\"AddingPendingAsset\",\"AddingPendingChild\",\"AddressNotEquippable\",\"AlreadyAddedAsset\",\"AlreadyAddedChild\",\"AssetHasNoParts\",\"AssetIdAlreadyExists\",\"AssetIdNotFound\",\"AssetIdNotEquippable\",\"BadConfig\",\"BadMintValue\",\"BadPriorityLength\",\"CannotMintZeroTokens\",\"CatalogNotFoundForAsset\",\"ChildNotFound\",\"UriNotFound\",\"CollectionIsFull\",\"InvalidAssetId\",\"InvalidParentId\",\"InvalidTokenId\",\"NotEquipped\",\"NotTokenOwner\",\"PartIsNotSlot\",\"SlotAlreayUsed\",\"TargetAssetCannotReceiveSlot\",\"UnknownEquippableAsset\",\"UnknownPart\",\"UnknownPartId\",\"WithdrawalFailed\"]}", + "docs": [], + "namespace": "rmrk_common::errors::RmrkError", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "AcceptedAssetsMissing" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "AddingPendingAsset" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "AddingPendingChild" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "AddressNotEquippable" + }, + { + "info": "Null", + "type": "Null", + "index": 4, + "name": "AlreadyAddedAsset" + }, + { + "info": "Null", + "type": "Null", + "index": 5, + "name": "AlreadyAddedChild" + }, + { + "info": "Null", + "type": "Null", + "index": 6, + "name": "AssetHasNoParts" + }, + { + "info": "Null", + "type": "Null", + "index": 7, + "name": "AssetIdAlreadyExists" + }, + { + "info": "Null", + "type": "Null", + "index": 8, + "name": "AssetIdNotFound" + }, + { + "info": "Null", + "type": "Null", + "index": 9, + "name": "AssetIdNotEquippable" + }, + { + "info": "Null", + "type": "Null", + "index": 10, + "name": "BadConfig" + }, + { + "info": "Null", + "type": "Null", + "index": 11, + "name": "BadMintValue" + }, + { + "info": "Null", + "type": "Null", + "index": 12, + "name": "BadPriorityLength" + }, + { + "info": "Null", + "type": "Null", + "index": 13, + "name": "CannotMintZeroTokens" + }, + { + "info": "Null", + "type": "Null", + "index": 14, + "name": "CatalogNotFoundForAsset" + }, + { + "info": "Null", + "type": "Null", + "index": 15, + "name": "ChildNotFound" + }, + { + "info": "Null", + "type": "Null", + "index": 16, + "name": "UriNotFound" + }, + { + "info": "Null", + "type": "Null", + "index": 17, + "name": "CollectionIsFull" + }, + { + "info": "Null", + "type": "Null", + "index": 18, + "name": "InvalidAssetId" + }, + { + "info": "Null", + "type": "Null", + "index": 19, + "name": "InvalidParentId" + }, + { + "info": "Null", + "type": "Null", + "index": 20, + "name": "InvalidTokenId" + }, + { + "info": "Null", + "type": "Null", + "index": 21, + "name": "NotEquipped" + }, + { + "info": "Null", + "type": "Null", + "index": 22, + "name": "NotTokenOwner" + }, + { + "info": "Null", + "type": "Null", + "index": 23, + "name": "PartIsNotSlot" + }, + { + "info": "Null", + "type": "Null", + "index": 24, + "name": "SlotAlreayUsed" + }, + { + "info": "Null", + "type": "Null", + "index": 25, + "name": "TargetAssetCannotReceiveSlot" + }, + { + "info": "Null", + "type": "Null", + "index": 26, + "name": "UnknownEquippableAsset" + }, + { + "info": "Null", + "type": "Null", + "index": 27, + "name": "UnknownPart" + }, + { + "info": "Null", + "type": "Null", + "index": 28, + "name": "UnknownPartId" + }, + { + "info": "Null", + "type": "Null", + "index": 29, + "name": "WithdrawalFailed" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 35, + "lookupName": "OpenbrushContractsErrorsReentrancyGuardReentrancyGuardError", + "type": "{\"_enum\":[\"ReentrantCall\"]}", + "docs": [], + "namespace": "openbrush_contracts::traits::errors::reentrancy_guard::ReentrancyGuardError", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "ReentrantCall" + } + ] + }, + { + "info": "Result", + "lookupIndex": 36, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Option", + "lookupIndex": 37, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u64", + "docs": [], + "namespace": "" + } + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Option", + "lookupIndex": 37, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u64", + "docs": [], + "namespace": "" + } + }, + { + "info": "Result", + "lookupIndex": 38, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 39, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 39, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "info": "Result", + "lookupIndex": 40, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 41, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 41, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "info": "Result", + "lookupIndex": 42, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 43, + "type": "Result<(OpenbrushContractsTypesId,OpenbrushContractsTypesId), RmrkCommonErrorsError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Tuple", + "lookupIndex": 44, + "type": "(OpenbrushContractsTypesId,OpenbrushContractsTypesId)", + "docs": [], + "namespace": "", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 43, + "type": "Result<(OpenbrushContractsTypesId,OpenbrushContractsTypesId), RmrkCommonErrorsError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Tuple", + "lookupIndex": 44, + "type": "(OpenbrushContractsTypesId,OpenbrushContractsTypesId)", + "docs": [], + "namespace": "", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 44, + "type": "(OpenbrushContractsTypesId,OpenbrushContractsTypesId)", + "docs": [], + "namespace": "", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + } + ] + } +] diff --git a/.api-contract/src/test/contracts/index.ts b/.api-contract/src/test/contracts/index.ts new file mode 100644 index 00000000..3ffc7321 --- /dev/null +++ b/.api-contract/src/test/contracts/index.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import ink from './ink/index.js'; +import solang from './solang/index.js'; +import user from './user/index.js'; + +const all: Record> = {}; + +Object.entries({ ink, solang, user }).forEach(([type, abis]) => + Object.entries(abis).forEach(([name, abi]): void => { + all[`${type}_${name}`] = abi; + }), +); + +export default all; diff --git a/.api-contract/src/test/contracts/ink/index.ts b/.api-contract/src/test/contracts/ink/index.ts new file mode 100644 index 00000000..3ae97f89 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/index.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { createVersionedExport } from '../util.js'; +import * as v0 from './v0/index.js'; +import * as v1 from './v1/index.js'; +import * as v2 from './v2/index.js'; +import * as v3 from './v3/index.js'; +import * as v4 from './v4/index.js'; +import * as v5 from './v5/index.js'; + +export default createVersionedExport({ v0, v1, v2, v3, v4, v5 }); diff --git a/.api-contract/src/test/contracts/ink/v0/accumulator.wasm b/.api-contract/src/test/contracts/ink/v0/accumulator.wasm new file mode 100644 index 0000000000000000000000000000000000000000..33197e6b15c310ddd583da65fcd85315b1ae652c GIT binary patch literal 8826 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 ipB2hn)cY|%AlivK3q)D)s2y"] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": ["i32"], + "type": 4 + } + }, + { + "name": "accumulator_code_hash", + "type": { + "displayName": ["Hash"], + "type": 5 + } + }, + { + "name": "adder_code_hash", + "type": { + "displayName": ["Hash"], + "type": 5 + } + }, + { + "name": "subber_code_hash", + "type": { + "displayName": ["Hash"], + "type": 5 + } + } + ], + "docs": [" Instantiate a delegator with the given sub-contract codes."], + "name": ["new"], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [" Returns the accumulator's value."], + "mutates": false, + "name": ["get"], + "payable": false, + "returnType": { + "displayName": ["i32"], + "type": 4 + }, + "selector": "0x1e5ca456" + }, + { + "args": [ + { + "name": "by", + "type": { + "displayName": ["i32"], + "type": 4 + } + } + ], + "docs": [" Delegates the call to either `Adder` or `Subber`."], + "mutates": true, + "name": ["change"], + "payable": false, + "returnType": null, + "selector": "0x0af938f2" + }, + { + "args": [], + "docs": [" Switches the delegator."], + "mutates": true, + "name": ["switch"], + "payable": false, + "returnType": null, + "selector": "0x5d37c38d" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0000000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [] + }, + "1": { + "fields": [] + } + } + } + }, + "name": "which" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "account_id" + } + ] + } + }, + "name": "accumulator" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "account_id" + } + ] + } + }, + "name": "adder" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "account_id" + } + ] + } + }, + "name": "subber" + } + ] + } + }, + "types": [ + { + "def": { + "composite": { + "fields": [ + { + "type": 2 + } + ] + } + }, + "path": ["ink_env", "types", "AccountId"] + }, + { + "def": { + "array": { + "len": 32, + "type": 3 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "primitive": "i32" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 2 + } + ] + } + }, + "path": ["ink_env", "types", "Hash"] + } + ] +} diff --git a/.api-contract/src/test/contracts/ink/v0/delegator.wasm b/.api-contract/src/test/contracts/ink/v0/delegator.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5a189ee01f569ed497ae381400bd69e51814e4c1 GIT binary patch literal 30472 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 literal 0 HcmV?d00001 diff --git a/.api-contract/src/test/contracts/ink/v0/dns.json b/.api-contract/src/test/contracts/ink/v0/dns.json new file mode 100644 index 00000000..7fbb18df --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v0/dns.json @@ -0,0 +1,600 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0xcf3eee6ac5d38f6f503293735a72b011960e09ec1dd09185ab3c3d28e7770009", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.48.0-nightly" + }, + "contract": { + "name": "dns", + "version": "3.0.0-rc1", + "authors": ["Parity Technologies "] + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [" Creates a new domain name service contract."], + "name": ["new"], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "name", + "type": { + "displayName": ["Hash"], + "type": 4 + } + }, + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": ["AccountId"], + "type": 9 + } + } + ], + "docs": [" Emitted whenever a new name is being registered."], + "name": "Register" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "name", + "type": { + "displayName": ["Hash"], + "type": 4 + } + }, + { + "docs": [], + "indexed": false, + "name": "from", + "type": { + "displayName": ["AccountId"], + "type": 9 + } + }, + { + "docs": [], + "indexed": true, + "name": "old_address", + "type": { + "displayName": ["Option"], + "type": 13 + } + }, + { + "docs": [], + "indexed": true, + "name": "new_address", + "type": { + "displayName": ["AccountId"], + "type": 9 + } + } + ], + "docs": [" Emitted whenever an address changes."], + "name": "SetAddress" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "name", + "type": { + "displayName": ["Hash"], + "type": 4 + } + }, + { + "docs": [], + "indexed": false, + "name": "from", + "type": { + "displayName": ["AccountId"], + "type": 9 + } + }, + { + "docs": [], + "indexed": true, + "name": "old_owner", + "type": { + "displayName": ["Option"], + "type": 13 + } + }, + { + "docs": [], + "indexed": true, + "name": "new_owner", + "type": { + "displayName": ["AccountId"], + "type": 9 + } + } + ], + "docs": [" Emitted whenver a name is being transferred."], + "name": "Transfer" + } + ], + "messages": [ + { + "args": [ + { + "name": "name", + "type": { + "displayName": ["Hash"], + "type": 4 + } + } + ], + "docs": [" Register specific name with caller as owner."], + "mutates": true, + "name": ["register"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 10 + }, + "selector": "0x7fb0aded" + }, + { + "args": [ + { + "name": "name", + "type": { + "displayName": ["Hash"], + "type": 4 + } + }, + { + "name": "new_address", + "type": { + "displayName": ["AccountId"], + "type": 9 + } + } + ], + "docs": [" Set address for specific name."], + "mutates": true, + "name": ["set_address"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 10 + }, + "selector": "0x220ac6e3" + }, + { + "args": [ + { + "name": "name", + "type": { + "displayName": ["Hash"], + "type": 4 + } + }, + { + "name": "to", + "type": { + "displayName": ["AccountId"], + "type": 9 + } + } + ], + "docs": [" Transfer owner to another address."], + "mutates": true, + "name": ["transfer"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 10 + }, + "selector": "0xfae3a09d" + }, + { + "args": [ + { + "name": "name", + "type": { + "displayName": ["Hash"], + "type": 4 + } + } + ], + "docs": [" Get address for specific name."], + "mutates": false, + "name": ["get_address"], + "payable": false, + "returnType": { + "displayName": ["AccountId"], + "type": 9 + }, + "selector": "0xb9ee7664" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0100000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0200000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 8 + } + }, + "offset": "0x0100000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "name_to_address" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0300000002000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0400000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 8 + } + }, + "offset": "0x0300000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "name_to_owner" + }, + { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "name": "default_address" + } + ] + } + }, + "types": [ + { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 2 + }, + { + "name": "len", + "type": 2 + }, + { + "name": "len_entries", + "type": 2 + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "Header"] + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 4 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [4], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 5 + } + ] + } + }, + "path": ["ink_env", "types", "Hash"] + }, + { + "def": { + "array": { + "len": 32, + "type": 6 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 2 + }, + { + "name": "prev", + "type": 2 + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "VacantEntry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 9 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [9], + "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 5 + } + ] + } + }, + "path": ["ink_env", "types", "AccountId"] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 11 + } + ], + "name": "Ok" + }, + { + "fields": [ + { + "type": 12 + } + ], + "name": "Err" + } + ] + } + }, + "params": [11, 12], + "path": ["Result"] + }, + { + "def": { + "tuple": [] + } + }, + { + "def": { + "variant": { + "variants": [ + { + "discriminant": 0, + "name": "NameAlreadyExists" + }, + { + "discriminant": 1, + "name": "CallerIsNotOwner" + } + ] + } + }, + "path": ["dns", "dns", "Error"] + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 9 + } + ], + "name": "Some" + } + ] + } + }, + "params": [9], + "path": ["Option"] + } + ] +} diff --git a/.api-contract/src/test/contracts/ink/v0/dns.wasm b/.api-contract/src/test/contracts/ink/v0/dns.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5a173a896218c942c811eb86d54d4c76d1b54c09 GIT binary patch literal 47980 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"] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "initial_supply", + "type": { + "displayName": ["Balance"], + "type": 1 + } + } + ], + "docs": [], + "name": ["new"], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": ["Option"], + "type": 13 + } + }, + { + "docs": [], + "indexed": true, + "name": "to", + "type": { + "displayName": ["Option"], + "type": 13 + } + }, + { + "docs": [], + "indexed": true, + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 1 + } + } + ], + "docs": [], + "name": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "docs": [], + "indexed": true, + "name": "spender", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "docs": [], + "indexed": true, + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 1 + } + } + ], + "docs": [], + "name": "Approval" + } + ], + "messages": [ + { + "args": [], + "docs": [], + "mutates": false, + "name": ["total_supply"], + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 1 + }, + "selector": "0xdcb736b5" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "docs": [], + "mutates": false, + "name": ["balance_of"], + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 1 + }, + "selector": "0x56e929b2" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "name": "spender", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "docs": [], + "mutates": false, + "name": ["allowance"], + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 1 + }, + "selector": "0xf3cfff66" + }, + { + "args": [ + { + "name": "to", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": ["transfer"], + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 12 + }, + "selector": "0xfae3a09d" + }, + { + "args": [ + { + "name": "spender", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": ["approve"], + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 12 + }, + "selector": "0x03d0e114" + }, + { + "args": [ + { + "name": "from", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "name": "to", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": ["transfer_from"], + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 12 + }, + "selector": "0xfcfb2ccd" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "total_supply" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 4 + } + }, + "len": 4294967295, + "offset": "0x0300000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0200000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "balances" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0400000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 10 + } + }, + "len": 4294967295, + "offset": "0x0500000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0400000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "allowances" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "u128" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 3 + }, + { + "name": "len", + "type": 3 + }, + { + "name": "len_entries", + "type": 3 + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "Header"] + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [5], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 6 + } + ] + } + }, + "path": ["ink_env", "types", "AccountId"] + }, + { + "def": { + "array": { + "len": 32, + "type": 7 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 3 + }, + { + "name": "prev", + "type": 3 + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "VacantEntry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 1 + }, + { + "name": "key_index", + "type": 3 + } + ] + } + }, + "params": [1], + "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 11 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [11], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "tuple": [5, 5] + } + }, + { + "def": { + "primitive": "bool" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Some" + } + ] + } + }, + "params": [5], + "path": ["Option"] + } + ] +} diff --git a/.api-contract/src/test/contracts/ink/v0/erc20.wasm b/.api-contract/src/test/contracts/ink/v0/erc20.wasm new file mode 100644 index 0000000000000000000000000000000000000000..4ce6dd2457ad3b0b0a370abee4d917ff33a152f5 GIT binary patch literal 56449 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"] + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [" Creates a new ERC721 token contract."], + "name": ["new"], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": ["Option"], + "type": 15 + } + }, + { + "docs": [], + "indexed": true, + "name": "to", + "type": { + "displayName": ["Option"], + "type": 15 + } + }, + { + "docs": [], + "indexed": true, + "name": "id", + "type": { + "displayName": ["TokenId"], + "type": 2 + } + } + ], + "docs": [" Event emitted when a token transfer occurs."], + "name": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + }, + { + "docs": [], + "indexed": true, + "name": "to", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + }, + { + "docs": [], + "indexed": true, + "name": "id", + "type": { + "displayName": ["TokenId"], + "type": 2 + } + } + ], + "docs": [" Event emited when a token approve occurs."], + "name": "Approval" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + }, + { + "docs": [], + "indexed": true, + "name": "operator", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + }, + { + "docs": [], + "indexed": false, + "name": "approved", + "type": { + "displayName": ["bool"], + "type": 14 + } + } + ], + "docs": [ + " Event emitted when an operator is enabled or disabled for an owner.", + " The operator can manage all NFTs of the owner." + ], + "name": "ApprovalForAll" + } + ], + "messages": [ + { + "args": [ + { + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + } + ], + "docs": [ + " Returns the balance of the owner.", + "", + " This represents the amount of unique tokens the owner has." + ], + "mutates": false, + "name": ["balance_of"], + "payable": false, + "returnType": { + "displayName": ["u32"], + "type": 2 + }, + "selector": "0x56e929b2" + }, + { + "args": [ + { + "name": "id", + "type": { + "displayName": ["TokenId"], + "type": 2 + } + } + ], + "docs": [" Returns the owner of the token."], + "mutates": false, + "name": ["owner_of"], + "payable": false, + "returnType": { + "displayName": ["Option"], + "type": 15 + }, + "selector": "0xf7860ada" + }, + { + "args": [ + { + "name": "id", + "type": { + "displayName": ["TokenId"], + "type": 2 + } + } + ], + "docs": [" Returns the approved account ID for this token if any."], + "mutates": false, + "name": ["get_approved"], + "payable": false, + "returnType": { + "displayName": ["Option"], + "type": 15 + }, + "selector": "0xb09dc487" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + }, + { + "name": "operator", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + } + ], + "docs": [" Returns `true` if the operator is approved by the owner."], + "mutates": false, + "name": ["is_approved_for_all"], + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 14 + }, + "selector": "0xc666bf03" + }, + { + "args": [ + { + "name": "to", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + }, + { + "name": "approved", + "type": { + "displayName": ["bool"], + "type": 14 + } + } + ], + "docs": [" Approves or disapproves the operator for all tokens of the caller."], + "mutates": true, + "name": ["set_approval_for_all"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 16 + }, + "selector": "0x51176f12" + }, + { + "args": [ + { + "name": "to", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + }, + { + "name": "id", + "type": { + "displayName": ["TokenId"], + "type": 2 + } + } + ], + "docs": [" Approves the account to transfer the specified token on behalf of the caller."], + "mutates": true, + "name": ["approve"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 16 + }, + "selector": "0x03d0e114" + }, + { + "args": [ + { + "name": "destination", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + }, + { + "name": "id", + "type": { + "displayName": ["TokenId"], + "type": 2 + } + } + ], + "docs": [" Transfers the token from the caller to the given destination."], + "mutates": true, + "name": ["transfer"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 16 + }, + "selector": "0xfae3a09d" + }, + { + "args": [ + { + "name": "from", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + }, + { + "name": "to", + "type": { + "displayName": ["AccountId"], + "type": 6 + } + }, + { + "name": "id", + "type": { + "displayName": ["TokenId"], + "type": 2 + } + } + ], + "docs": [" Transfer approved or owned token."], + "mutates": true, + "name": ["transfer_from"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 16 + }, + "selector": "0xfcfb2ccd" + }, + { + "args": [ + { + "name": "id", + "type": { + "displayName": ["TokenId"], + "type": 2 + } + } + ], + "docs": [" Creates a new token."], + "mutates": true, + "name": ["mint"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 16 + }, + "selector": "0xf8885eeb" + }, + { + "args": [ + { + "name": "id", + "type": { + "displayName": ["TokenId"], + "type": 2 + } + } + ], + "docs": [" Deletes an existing token. Only the owner can burn the token."], + "mutates": true, + "name": ["burn"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 16 + }, + "selector": "0x120bc564" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0100000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0200000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 5 + } + }, + "offset": "0x0100000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "token_owner" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0300000002000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0400000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 5 + } + }, + "offset": "0x0300000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "token_approvals" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0500000003000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "len": 4294967295, + "offset": "0x0600000002000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0600000003000000000000000000000000000000000000000000000000000000", + "ty": 10 + } + }, + "offset": "0x0500000003000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "owned_tokens_count" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0600000003000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0700000003000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0700000004000000000000000000000000000000000000000000000000000000", + "ty": 11 + } + }, + "len": 4294967295, + "offset": "0x0800000003000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0800000004000000000000000000000000000000000000000000000000000000", + "ty": 13 + } + }, + "offset": "0x0700000004000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "operator_approvals" + } + ] + } + }, + "types": [ + { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 2 + }, + { + "name": "len", + "type": 2 + }, + { + "name": "len_entries", + "type": 2 + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "Header"] + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 4 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 2 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [2], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 2 + }, + { + "name": "prev", + "type": 2 + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "VacantEntry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 6 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [6], + "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 7 + } + ] + } + }, + "path": ["ink_env", "types", "AccountId"] + }, + { + "def": { + "array": { + "len": 32, + "type": 8 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 4 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 6 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [6], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 2 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [2], + "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 4 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 12 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [12], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "tuple": [6, 6] + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 14 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [14], + "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] + }, + { + "def": { + "primitive": "bool" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 6 + } + ], + "name": "Some" + } + ] + } + }, + "params": [6], + "path": ["Option"] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 17 + } + ], + "name": "Ok" + }, + { + "fields": [ + { + "type": 18 + } + ], + "name": "Err" + } + ] + } + }, + "params": [17, 18], + "path": ["Result"] + }, + { + "def": { + "tuple": [] + } + }, + { + "def": { + "variant": { + "variants": [ + { + "discriminant": 0, + "name": "NotOwner" + }, + { + "discriminant": 1, + "name": "NotApproved" + }, + { + "discriminant": 2, + "name": "TokenExists" + }, + { + "discriminant": 3, + "name": "TokenNotFound" + }, + { + "discriminant": 4, + "name": "CannotInsert" + }, + { + "discriminant": 5, + "name": "CannotRemove" + }, + { + "discriminant": 6, + "name": "CannotFetchValue" + }, + { + "discriminant": 7, + "name": "NotAllowed" + } + ] + } + }, + "path": ["erc721", "erc721", "Error"] + } + ] +} diff --git a/.api-contract/src/test/contracts/ink/v0/erc721.wasm b/.api-contract/src/test/contracts/ink/v0/erc721.wasm new file mode 100644 index 0000000000000000000000000000000000000000..8bbdf89b8a5b4145814e01dc61e3637b3ba02efa GIT binary patch literal 74793 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 literal 0 HcmV?d00001 diff --git a/.api-contract/src/test/contracts/ink/v0/flipper.contract.json b/.api-contract/src/test/contracts/ink/v0/flipper.contract.json new file mode 100644 index 00000000..1c5ca65d --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v0/flipper.contract.json @@ -0,0 +1,85 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0x98086d5ccadd437459b812682380250f51a3034272cd1108e499acc0cafe9f42", + "language": "ink! 3.0.0-rc2", + "compiler": "rustc 1.49.0-nightly", + "wasm": "0x0061736d01000000012c0860027f7f0060037f7f7f0060017f017f60017f006000017f60037f7f7f017f60047f7f7f7f0060017f017e02880106057365616c30107365616c5f6765745f73746f726167650005057365616c30107365616c5f7365745f73746f726167650001057365616c30167365616c5f76616c75655f7472616e736665727265640000057365616c300a7365616c5f696e7075740000057365616c300b7365616c5f72657475726e000103656e76066d656d6f72790201021003121102020002000100070303060402040503010608017f01418080040b071102066465706c6f7900100463616c6c00120a8e1111c90101017f230041406a22012400200141206a200041186a290300370300200141186a200041106a290300370300200141106a200041086a2903003703002001420037032820012000290300370308200141086a1006200141808001360234200141a4800436023020014180800136023841a48004200141386a10002100200141306a20012802381007024002400240024020000e0401000002000b000b20012001290330370338200141386a100841ff017122004102470d01000b000b200141406b240020004100470b6001037e200029032021012000420137032020002001200029030022027c22013703002000200029030822032001200254ad7c22013703082000200029031022022001200354ad7c2201370310200020002903182001200254ad7c37031820000b4901037f230041106b22022400200028020421032000410036020420002802002104200041a48004360200200241086a200120042003100f20002002290308370200200241106a24000b4201027f230041106b22012400200141086a2000100b20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b8f0101017f230041406a22022400200241206a200141186a290300370300200241186a200141106a290300370300200241106a200141086a2903003703002002420037032820022001290300370308200241086a1006200241386a41808001360200200241a48004360234200241003602302002200241306a2000100a200228020020022802041001200241406b24000b9d0101037f230041106b22032400200141086a220428020021052004410036020020012802042104200141a48004360204200320023a000f2003410120042005100f024020032802044101460440200328020020032d000f3a000020014100360208200141a480043602042005450d0120012005417f6a3602082001200441016a3602042000410136020420002004360200200341106a24000f0b000b000b4801027f230041106b22022400200241003a000f024020012002410f6a4101101345044020022d000f21010c010b410121030b200020013a0001200020033a0000200241106a24000b890101027f230041106b22012400200142003c000c200142003e0208027f0340200241044604402001280208210241000c020b20012000100b20012d0000410171450440200141086a20026a20012d00013a00002001200241016a22023a000c0c010b0b200241ff01710440200141003a000c0b4100210241010b200141106a2400ad2002ad420886840b2201017f230041106b220124002001200036020c2001410c6a2802002d0000100e000b4601017f230041206b22012400200141186a41808001360200200141a4800436021420014100360210200141086a200141106a2000100a41002001280208200128020c1004000b2300410020014d0440200320014f044020002001360204200020023602000f0b000b000b15004100101141ff0171410274418080046a2802000bd80502057f017e230041306b220124000240027f024002402000044020014180800136020c200141a48004360208200141086a10142001200129030837031041012103200141106a100c2206a722054101710440410121020c030b200642ffffffffff1f832206422088a721002006421888a721042006421088a72102200541087641ff01712205411e470440200541c00147200041f3014772200241ff017141960147720d0241002102200441ff017141a501460d030c020b200041d60047200241ff017141dc0047720d014100210241002103200441ff017141a401470d010c020b20014180800136020c200141a48004360208200141086a101420012001290308370310410321020240200141106a100c2206a722044101710d00200642ffffffffff1f832206422088a721002006421888a721032006421088a7210202400240200441087641ff0171220441ea00470440200441d101472000412b4772200241ff017141830147720d02200341ff017141d100460d010c020b200041e20147200241ff0171413747720d0141022102200341ff01714112470d010c020b41032102200141106a100841ff017122004102460d01200041004721020c010b410321020b4106200241034622030d021a4106200220031b22024102460440200141286a4200370300200141206a4200370300200141186a4200370300200142003703104100200141106a100941080c030b200141286a4200370300200141206a4200370300200141186a4200370300200142003703102002410171200141106a100941080c020b41012102410121030b410620020d001a2003450d01200141286a4200370300200141206a4200370300200141186a420037030020014200370310200141106a1005410173200141106a100941080b200141306a24000f0b200141286a4200370300200141206a4200370300200141186a4200370300200142003703102001200141106a10053a0008200141086a100d000ba90102027f027e230041206b22002400200041808001360204200041a4800436020020004180800136021041a48004200041106a100220002000280210100720002000290300370308200041186a2201420037030020004200370310027f4101200041086a200041106a411010130d001a200129030021022000290310210341000b200220038450457245044041011011200041206a240041ff0171410274418080046a2802000f0b000b45000240200028020420024f047f2001200028020020021015200028020422012002490d012000200120026b3602042000200028020020026a36020041000541010b0f0b000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10032000200128020c1007200141106a24000b2c01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b1a0b0b250100418080040b1d0100000002000000030000000400000005000000060000000700000008" + }, + "contract": { + "name": "flipper", + "version": "3.0.0-rc2", + "authors": ["Parity Technologies "] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": ["bool"], + "type": 1 + } + } + ], + "docs": [" Creates a new flipper smart contract initialized with the given value."], + "name": ["new"], + "selector": "0xd183512b" + }, + { + "args": [], + "docs": [" Creates a new flipper smart contract initialized to `false`."], + "name": ["default"], + "selector": "0x6a3712e2" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [" Flips the current value of the Flipper's bool."], + "mutates": true, + "name": ["flip"], + "payable": false, + "returnType": null, + "selector": "0xc096a5f3" + }, + { + "args": [], + "docs": [" Returns the current value of the Flipper's bool."], + "mutates": false, + "name": ["get"], + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 1 + }, + "selector": "0x1e5ca456" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "bool" + } + } + ] +} diff --git a/.api-contract/src/test/contracts/ink/v0/flipper.json b/.api-contract/src/test/contracts/ink/v0/flipper.json new file mode 100644 index 00000000..46f0c1d5 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v0/flipper.json @@ -0,0 +1,84 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0xb6b5fa9791b27da76f1046de45d57bb835a8dfc44f21b223d8d6bb88e5eb5141", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.48.0-nightly" + }, + "contract": { + "name": "flipper", + "version": "3.0.0-rc1", + "authors": ["Parity Technologies "] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": ["bool"], + "type": 1 + } + } + ], + "docs": [" Creates a new flipper smart contract initialized with the given value."], + "name": ["new"], + "selector": "0xd183512b" + }, + { + "args": [], + "docs": [" Creates a new flipper smart contract initialized to `false`."], + "name": ["default"], + "selector": "0x6a3712e2" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [" Flips the current value of the Flipper's bool."], + "mutates": true, + "name": ["flip"], + "payable": false, + "returnType": null, + "selector": "0xc096a5f3" + }, + { + "args": [], + "docs": [" Returns the current value of the Flipper's bool."], + "mutates": false, + "name": ["get"], + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 1 + }, + "selector": "0x1e5ca456" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "bool" + } + } + ] +} diff --git a/.api-contract/src/test/contracts/ink/v0/flipper.wasm b/.api-contract/src/test/contracts/ink/v0/flipper.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5b43da17109189ac854e0b5c48bbe11ee28e8f80 GIT binary patch literal 19085 zcmeH}zi(Vc5XWbC-~EW+UAzhT;n*SCJ5o4`EFB`Utu%NeVhcq`AkoJbIU>%E6Q7+( zkx;QO8T&UO$*sAwk9y|-`P?(BCyGds_+wg140 zh`Zk243o*kP4p(4eln3w$7kVPHXC?Lo4ASp$~D7q_et}?@WI3JQ}29i><_ng29ejh z_lE~}_YWS9x9$%`PQKVb@xoOvF6fFUTRV@3cMrx}yZfIG$K&BW@zv`Yef`<)qsIqR zQ>mu$@Zj-yS6o<_55b3`fC%5fKi@1`p(Tx?D5Pk(N6xus8*${r!=h}R@y&a~M>`Ln z%7x;St(_g2oB8SN{I8fac}wyO+3vfml3Z?&^4us1F4uyrgxVBoim#a3G_{XRw=j7z zxg@%*t)61D$MuJYZrR_!;Q3*(><3fJD%Qh-$JJ33ojDjKx9C@6%db`clbkM)Brl~% z3GeP&7_5ZVYE3);<@WlL{YKZtQ&Pqm&Ot0AL?T%>%1sxZQBmqa*e$mbQi34W*!Q3J zVZcN_w)+8g|MB-~Y*)tE_b`Uq7%SskJ#Qty8tvCM1?F>s+e|iDel~O;uvCbDdbuL1IBG4@L}0)5{$+ zy*DsG_=Dti0z&AJ7+CO9M6S~emCxM~ya0vVvtN)|BNcQ36M3>g)HARpe^X{t$Os%1 z8}Xc9^J^(!T6P;<;Ru%{nY}4=2q!GWdUfM=*Fj1nPey9TE)FAR2=$3uLUm%f5}qyN zc`dpRjQIGFP->?lqGaPm5YUx?+OVd=)Kd$5UKU=Gv4I3`xxKpqSToj<_PB$ zNfYE}0Vn=V%~2r;=sX<8i;O(`1NOWT6qmm@T!W`-pkld=ZY8(jzwS&&1x7XV$<>v9 zLVY})UC&b?4xv^WoU6K-Ii`z_3s(GjSAzxX?E+M}_ZSt^E+BZ6G==eL1 zwWKs*`A@gr4IR%ka_TRFzJ_w;_&KJco_i>LG=XaR&wS76|0Ryl3rBHKod%%FOLmt! z0A+*+2JwefQM^16#TPpED(xj?_*&+56z*{VE7V_2I!pN;#ae~)8^giG3^|Y=NAaka zv-FY44e-TD!uvAwD-v>8@B1#2keloS3s8o>j{x%Gh%JhvRE=^Q3+NTqSHI#dqTqC| zQZx7Z>v+)irb{6jxyKI!6{Z#I|6K_d&AlRl)x~fd+MwdBez0CUfO>6q`?VV8exP5w z@<;p?F!9e&>NuC8A3$x)Cq6(@wd%-*2*!}XbA^K)V~c~j!SmbScNI8MaMh9FS>~!7 z<0Tv)AYil8(}L2$>Ig2`~rUT z*}$)fUkkrBe)^B8D3Pb>v)zq=5ikNqzz7%tBVYuKfDtePM!*Od0V7}pjDQg^0!F|H z7y%<-1dM"] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": ["i32"], + "type": 1 + } + } + ], + "docs": [], + "name": ["new"], + "selector": "0xd183512b" + }, + { + "args": [], + "docs": [], + "name": ["default"], + "selector": "0x6a3712e2" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [ + { + "name": "by", + "type": { + "displayName": ["i32"], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": ["inc"], + "payable": false, + "returnType": null, + "selector": "0x2fb8d143" + }, + { + "args": [], + "docs": [], + "mutates": false, + "name": ["get"], + "payable": false, + "returnType": { + "displayName": ["i32"], + "type": 1 + }, + "selector": "0x1e5ca456" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "i32" + } + } + ] +} diff --git a/.api-contract/src/test/contracts/ink/v0/incrementer.wasm b/.api-contract/src/test/contracts/ink/v0/incrementer.wasm new file mode 100644 index 0000000000000000000000000000000000000000..b059a6937009eb3ef05d6a6aceedd2daea815f2c GIT binary patch literal 19056 zcmeH}&2C#o6vxkeT-)^8&9w9*NeddAE?iX+K~zrE4V?B9-yL824U?vCNO~??19MKINu4S!R#EUe?_|w2qCipjo2Wxk=RkA?lZVkn z$;&!fQ)u_v2*?fa2kok`ZQ9ujPaKktf3|j-s4Y|LAXEL&$-=vSG_FSSR zUT*KB3n!q>V&65(fdF&Mo5s#{C4nMKMP0(+rm0&cA9_737}{>%bWNE|-<8k=#Mmgh z(OjDsK+CVM4~3alW;+mOGY@kXA~MY|#kmxLCZ3aR7Sc%%r@BN-0(^rv}% z(^Bi{VkqV~bVdS8sT(J#NyW2uVL)2vx)7O$px3QJkg|tS1 zVrCO79A1(I(q)u_vpH5?;Lu4Z45#UNvU{wB70fNaXqngr9pUN0D^}rXGJROJB8$l|PUxLQ1kjve#;(Y6U+Bn+EDehE`c>#J(wo<4 ze>Us~!+s7=`Z@Pqmj5J_LmxM(i(QgyeT(g&mgk}9^7QA)zhbg!lstnH)U7Q4g>t48 z9+VQ)$d`7FXlQ+QPuTkp_x_ODKRRL>+dj+v#=&f7ZQBJ-X|iGFVrS-Jk&^-`44Z2g z*LbXJEywc-&kp_$5Sxhf z%eYIDyVwzI(uLNjjd1I%P4{$*K1t`uAibB6wzL1A^->z0SDUDRWl;r(f^l? zkPT;cXQyU4RE%ts$P4*|{AjG5+NZd`aB7A3SDhP&?yN=w4LPy$Lo2`B+2 zpahhF5>Nt4KnW-TC7=Y9fD%vwNNt4KnW-TC7=Y9fD%vwN"] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "requirement", + "type": { + "displayName": ["u32"], + "type": 2 + } + }, + { + "name": "owners", + "type": { + "displayName": ["Vec"], + "type": 20 + } + } + ], + "docs": [ + " The only constructor of the contract.", + "", + " A list of owners must be supplied and a number of how many of them must", + " confirm a transaction. Duplicate owners are silently dropped.", + "", + " # Panics", + "", + " If `requirement` violates our invariant." + ], + "name": ["new"], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [" The transaction that was confirmed."], + "indexed": true, + "name": "transaction", + "type": { + "displayName": ["TransactionId"], + "type": 2 + } + }, + { + "docs": [" The owner that sent the confirmation."], + "indexed": true, + "name": "from", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "docs": [" The confirmation status after this confirmation was applied."], + "indexed": true, + "name": "status", + "type": { + "displayName": ["ConfirmationStatus"], + "type": 22 + } + } + ], + "docs": [" Emitted when an owner confirms a transaction."], + "name": "Confirmation" + }, + { + "args": [ + { + "docs": [" The transaction that was revoked."], + "indexed": true, + "name": "transaction", + "type": { + "displayName": ["TransactionId"], + "type": 2 + } + }, + { + "docs": [" The owner that sent the revokation."], + "indexed": true, + "name": "from", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "docs": [" Emitted when an owner revoked a confirmation."], + "name": "Revokation" + }, + { + "args": [ + { + "docs": [" The transaction that was submitted."], + "indexed": true, + "name": "transaction", + "type": { + "displayName": ["TransactionId"], + "type": 2 + } + } + ], + "docs": [" Emitted when an owner submits a transaction."], + "name": "Submission" + }, + { + "args": [ + { + "docs": [" The transaction that was canceled."], + "indexed": true, + "name": "transaction", + "type": { + "displayName": ["TransactionId"], + "type": 2 + } + } + ], + "docs": [" Emitted when a transaction was canceled."], + "name": "Cancelation" + }, + { + "args": [ + { + "docs": [" The transaction that was executed."], + "indexed": true, + "name": "transaction", + "type": { + "displayName": ["TransactionId"], + "type": 2 + } + }, + { + "docs": [ + " Indicates whether the transaction executed successfully. If so the `Ok` value holds", + " the output in bytes. The Option is `None` when the transaction was executed through", + " `invoke_transaction` rather than `evaluate_transaction`." + ], + "indexed": true, + "name": "result", + "type": { + "displayName": ["Result"], + "type": 25 + } + } + ], + "docs": [" Emitted when a transaction was executed."], + "name": "Execution" + }, + { + "args": [ + { + "docs": [" The owner that was added."], + "indexed": true, + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "docs": [" Emitted when an owner is added to the wallet."], + "name": "OwnerAddition" + }, + { + "args": [ + { + "docs": [" The owner that was removed."], + "indexed": true, + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "docs": [" Emitted when an owner is removed from the wallet."], + "name": "OwnerRemoval" + }, + { + "args": [ + { + "docs": [" The new requirement value."], + "indexed": false, + "name": "new_requirement", + "type": { + "displayName": ["u32"], + "type": 2 + } + } + ], + "docs": [" Emitted when the requirement changed."], + "name": "RequirementChange" + } + ], + "messages": [ + { + "args": [ + { + "name": "new_owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "docs": [ + " Add a new owner to the contract.", + "", + " Only callable by the wallet itself.", + "", + " # Panics", + "", + " If the owner already exists.", + "", + " # Examples", + "", + " Since this message must be send by the wallet itself it has to be build as a", + " `Transaction` and dispatched through `submit_transaction` + `invoke_transaction`:", + " ```no_run", + " use ink_env::{DefaultEnvironment as Env, AccountId, call::{CallParams, Selector}, test::CallData};", + " use multisig_plain::{Transaction, ConfirmationStatus};", + "", + " // address of an existing MultiSigPlain contract", + " let wallet_id: AccountId = [7u8; 32].into();", + "", + " // first create the transaction that adds `alice` through `add_owner`", + " let alice: AccountId = [1u8; 32].into();", + " let mut call = CallData::new(Selector::new([166, 229, 27, 154])); // add_owner", + " call.push_arg(&alice);", + " let transaction = Transaction {", + " callee: wallet_id,", + " selector: call.selector().to_bytes(),", + " input: call.params().to_owned(),", + " transferred_value: 0,", + " gas_limit: 0", + " };", + "", + " // submit the transaction for confirmation", + " let mut submit = CallParams::::eval(", + " wallet_id,", + " Selector::new([86, 244, 13, 223]) // submit_transaction", + " );", + " let (id, _): (u32, ConfirmationStatus) = submit.push_arg(&transaction)", + " .fire()", + " .expect(\"submit_transaction won't panic.\");", + "", + " // wait until all required owners have confirmed and then execute the transaction", + " let mut invoke = CallParams::::invoke(", + " wallet_id,", + " Selector::new([185, 50, 225, 236]) // invoke_transaction", + " );", + " invoke.push_arg(&id).fire();", + " ```" + ], + "mutates": true, + "name": ["add_owner"], + "payable": false, + "returnType": null, + "selector": "0xf3fcef36" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "docs": [ + " Remove an owner from the contract.", + "", + " Only callable by the wallet itself. If by doing this the amount of owners", + " would be smaller than the requirement it is adjusted to be exactly the", + " number of owners.", + "", + " # Panics", + "", + " If `owner` is no owner of the wallet." + ], + "mutates": true, + "name": ["remove_owner"], + "payable": false, + "returnType": null, + "selector": "0xe397f829" + }, + { + "args": [ + { + "name": "old_owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "name": "new_owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "docs": [ + " Replace an owner from the contract with a new one.", + "", + " Only callable by the wallet itself.", + "", + " # Panics", + "", + " If `old_owner` is no owner or if `new_owner` already is one." + ], + "mutates": true, + "name": ["replace_owner"], + "payable": false, + "returnType": null, + "selector": "0xab4bc64a" + }, + { + "args": [ + { + "name": "new_requirement", + "type": { + "displayName": ["u32"], + "type": 2 + } + } + ], + "docs": [ + " Change the requirement to a new value.", + "", + " Only callable by the wallet itself.", + "", + " # Panics", + "", + " If the `new_requirement` violates our invariant." + ], + "mutates": true, + "name": ["change_requirement"], + "payable": false, + "returnType": null, + "selector": "0x7347595d" + }, + { + "args": [ + { + "name": "transaction", + "type": { + "displayName": ["Transaction"], + "type": 14 + } + } + ], + "docs": [ + " Add a new transaction candiate to the contract.", + "", + " This also confirms the transaction for the caller. This can be called by any owner." + ], + "mutates": true, + "name": ["submit_transaction"], + "payable": false, + "returnType": { + "displayName": [], + "type": 21 + }, + "selector": "0x349db9e8" + }, + { + "args": [ + { + "name": "trans_id", + "type": { + "displayName": ["TransactionId"], + "type": 2 + } + } + ], + "docs": [ + " Remove a transaction from the contract.", + " Only callable by the wallet itself.", + "", + " # Panics", + "", + " If `trans_id` is no valid transaction id." + ], + "mutates": true, + "name": ["cancel_transaction"], + "payable": false, + "returnType": null, + "selector": "0xd31b7656" + }, + { + "args": [ + { + "name": "trans_id", + "type": { + "displayName": ["TransactionId"], + "type": 2 + } + } + ], + "docs": [ + " Confirm a transaction for the sender that was submitted by any owner.", + "", + " This can be called by any owner.", + "", + " # Panics", + "", + " If `trans_id` is no valid transaction id." + ], + "mutates": true, + "name": ["confirm_transaction"], + "payable": false, + "returnType": { + "displayName": ["ConfirmationStatus"], + "type": 22 + }, + "selector": "0xea923d30" + }, + { + "args": [ + { + "name": "trans_id", + "type": { + "displayName": ["TransactionId"], + "type": 2 + } + } + ], + "docs": [ + " Revoke the senders confirmation.", + "", + " This can be called by any owner.", + "", + " # Panics", + "", + " If `trans_id` is no valid transaction id." + ], + "mutates": true, + "name": ["revoke_confirmation"], + "payable": false, + "returnType": null, + "selector": "0x13ee3e97" + }, + { + "args": [ + { + "name": "trans_id", + "type": { + "displayName": ["TransactionId"], + "type": 2 + } + } + ], + "docs": [ + " Invoke a confirmed execution without getting its output.", + "", + " Its return value indicates whether the called transaction was successful.", + " This can be called by anyone." + ], + "mutates": true, + "name": ["invoke_transaction"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 23 + }, + "selector": "0x6131abbb" + }, + { + "args": [ + { + "name": "trans_id", + "type": { + "displayName": ["TransactionId"], + "type": 2 + } + } + ], + "docs": [ + " Evaluate a confirmed execution and return its output as bytes.", + "", + " Its return value indicates whether the called transaction was successful and contains", + " its output when sucesful.", + " This can be called by anyone." + ], + "mutates": true, + "name": ["eval_transaction"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 24 + }, + "selector": "0xe667c7ac" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0100000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0200000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0100000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "confirmations" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0300000002000000000000000000000000000000000000000000000000000000", + "ty": 11 + } + }, + "len": 4294967295, + "offset": "0x0400000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 12 + } + }, + "offset": "0x0300000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "confirmation_count" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0500000003000000000000000000000000000000000000000000000000000000", + "ty": 13 + } + }, + "len": 4294967295, + "offset": "0x0600000002000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "transactions" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0500000003000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0500000004000000000000000000000000000000000000000000000000000000", + "ty": 5 + } + }, + "len": 4294967295, + "offset": "0x0600000003000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "owners" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0500000004000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0600000004000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0600000005000000000000000000000000000000000000000000000000000000", + "ty": 19 + } + }, + "len": 4294967295, + "offset": "0x0700000004000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0700000005000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0600000005000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "is_owner" + }, + { + "layout": { + "cell": { + "key": "0x0700000005000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "requirement" + } + ] + } + }, + "types": [ + { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 2 + }, + { + "name": "len", + "type": 2 + }, + { + "name": "len_entries", + "type": 2 + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "Header"] + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 4 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [4], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "tuple": [2, 5] + } + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 6 + } + ] + } + }, + "path": ["ink_env", "types", "AccountId"] + }, + { + "def": { + "array": { + "len": 32, + "type": 7 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 2 + }, + { + "name": "prev", + "type": 2 + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "VacantEntry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 10 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [10], + "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] + }, + { + "def": { + "tuple": [] + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 2 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [2], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 2 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [2], + "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 14 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [14], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "callee", + "type": 5 + }, + { + "name": "selector", + "type": 15 + }, + { + "name": "input", + "type": 16 + }, + { + "name": "transferred_value", + "type": 17 + }, + { + "name": "gas_limit", + "type": 18 + } + ] + } + }, + "path": ["multisig_plain", "multisig_plain", "Transaction"] + }, + { + "def": { + "array": { + "len": 4, + "type": 7 + } + } + }, + { + "def": { + "sequence": { + "type": 7 + } + } + }, + { + "def": { + "primitive": "u128" + } + }, + { + "def": { + "primitive": "u64" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [5], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "sequence": { + "type": 5 + } + } + }, + { + "def": { + "tuple": [2, 22] + } + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "Confirmed" + }, + { + "fields": [ + { + "type": 2 + } + ], + "name": "ConfirmationsNeeded" + } + ] + } + }, + "path": ["multisig_plain", "multisig_plain", "ConfirmationStatus"] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 10 + } + ], + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "name": "Err" + } + ] + } + }, + "params": [10, 10], + "path": ["Result"] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 16 + } + ], + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "name": "Err" + } + ] + } + }, + "params": [16, 10], + "path": ["Result"] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 26 + } + ], + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "name": "Err" + } + ] + } + }, + "params": [26, 10], + "path": ["Result"] + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 16 + } + ], + "name": "Some" + } + ] + } + }, + "params": [16], + "path": ["Option"] + } + ] +} diff --git a/.api-contract/src/test/contracts/ink/v0/multisig_plain.wasm b/.api-contract/src/test/contracts/ink/v0/multisig_plain.wasm new file mode 100644 index 0000000000000000000000000000000000000000..74341e847e43b43d59b09ad3b4449f6dd5d7664c GIT binary patch literal 93026 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 literal 0 HcmV?d00001 diff --git a/.api-contract/src/test/contracts/ink/v0/trait-flipper.json b/.api-contract/src/test/contracts/ink/v0/trait-flipper.json new file mode 100644 index 00000000..9e40d2a7 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v0/trait-flipper.json @@ -0,0 +1,84 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0x568432b99f4ebd39ec03c2caaf69992b248999cc857326174b220b5587c3515f", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.48.0-nightly" + }, + "contract": { + "name": "flipper", + "version": "3.0.0-rc1", + "authors": ["Parity Technologies "] + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [" Creates a new flipper smart contract initialized to `false`."], + "name": ["default"], + "selector": "0x6a3712e2" + }, + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": ["bool"], + "type": 1 + } + } + ], + "docs": [], + "name": ["Flip", "new"], + "selector": "0x818482e7" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [], + "mutates": true, + "name": ["Flip", "flip"], + "payable": false, + "returnType": null, + "selector": "0xad931d5f" + }, + { + "args": [], + "docs": [], + "mutates": false, + "name": ["Flip", "get"], + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 1 + }, + "selector": "0x6b3549bc" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "bool" + } + } + ] +} diff --git a/.api-contract/src/test/contracts/ink/v0/trait-flipper.wasm b/.api-contract/src/test/contracts/ink/v0/trait-flipper.wasm new file mode 100644 index 0000000000000000000000000000000000000000..53720c421777c8584ad57470718630166737078a GIT binary patch literal 19050 zcmeH}&ud*p6vxk*x$j3a?={ofA8FFc+-Dal^5BV@7m8q}&;%)hg8L-2&*Dp(HZN(R zAbnA~a4EQO<<4!F?z(X6A0a|Fg8mWuJ?Gy1q6oTjb5ibobI+VPbLMk?OlfoP0TU6w z-QMui>6EAXLmO^7r45#El3&_rU{++rQ}+!w{b=V&^TFuB!^u;}E;jZ?o7;mZ@Adnm z{q?>5hm+0wBchWNdnYEinz*DZo@{PE9woH}m5B{I5`&zD4& z82aUEO*{X^yFJQot;_KYg*YQRILjC(p-gLGgZ(q{D3x&R77u+&a7caZxi5PVKv6#1 zJrBA2?1c*3l`!@kguWKWN;p^R4gFlAaEHC%i(5S>doH@7^s@DmE98qx{8Y!LCKAJxq+b9OMzs|zqm3$Vev3!xxj z(%1JV0xPb`9uinS4y=k0STR}0T15z~q`{#`0y{|9Sp`uoA+VrT1@;3BG_cDUV68(q z;dn1WdmPokdjaCCe0?FanjUCMZDlv+)DCT zlzFWS1uRIuPqQ~k$qIL9EEaIjc~ zrvMzg4$?ls!Cl!vXchq4Czys|_z!<@@^M*UU+kH6qL4a}(>igrgQ(X%*Y}`~ul1^(el5r{ji>uR*L?q%q3BLEU$p zL{2o{N8?JB;xB};XyS2*u}r^&Ar|fbatvSkqhp9~>c2W3qAD`eWu1@fWI8ggF zl%Z1}&Wl?PX;-=V3ffK+OlO~K5muUC>$p<;UB(%%z;(bqYSfbG2;v&hqHZuBvRn~9 z`_-Q7f`4vG%`bqgQ|I&ISo#l+kyACwZ7dM0$hmq-exj7eZna&|xc&R3NKOpL>(MnxZ--%7IOT0 zN1TF9KZR3h#d4dV=g983|M2RQG)_q?blncxS@`LI;fMTh>N*pV!{hOY%?6$(o)(@q z9{rP01jOm^+kTCJ5ikNqzz7%tBVYuKfDtePM!*Od0V7}pjDQg^0!F|H7y%<-1dM"] + }, + "V1": { + "spec": { + "constructors": [ + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": ["bool"], + "type": 0 + } + } + ], + "docs": ["Creates a new flipper smart contract initialized with the given value."], + "name": ["new"], + "selector": "0x9bae9d5e" + }, + { + "args": [], + "docs": ["Creates a new flipper smart contract initialized to `false`."], + "name": ["default"], + "selector": "0xed4b9d1b" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [" Flips the current value of the Flipper's boolean."], + "mutates": true, + "name": ["flip"], + "payable": false, + "returnType": null, + "selector": "0x633aa551" + }, + { + "args": [], + "docs": [" Returns the current value of the Flipper's boolean."], + "mutates": false, + "name": ["get"], + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 0 + }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "bool" + } + } + } + ] + } +} diff --git a/.api-contract/src/test/contracts/ink/v1/index.ts b/.api-contract/src/test/contracts/ink/v1/index.ts new file mode 100644 index 00000000..b20c8916 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v1/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; +// A complex contract example with traits. +export { default as psp22 } from './psp22_minter_pauser.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json b/.api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json new file mode 100644 index 00000000..f5ab1afb --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json @@ -0,0 +1,1487 @@ +{ + "source": { + "hash": "0xf04668140e45f551ef324d9fea09e5adb7e8f70482ff1d216c6c4c5227a3d0ca", + "language": "ink! 3.0.0-rc6", + "compiler": "rustc 1.59.0-nightly", + "wasm": "0x0061736d01000000017e1360027f7f0060037f7f7f0060027f7f017f60047f7f7f7f0060037f7f7f017f60017f006000017f60017f017f60000060047f7f7e7e0060057f7f7f7f7f0060067f7f7f7f7e7e0060077f7f7f7f7e7e7f0060057f7f7f7e7e0060037f7f7e0060037e7e7f0060097f7f7e7f7f7f7f7f7f017f60027f7e017f60017f017e0281020b057365616c30127365616c5f6465706f7369745f6576656e740003057365616c30167365616c5f76616c75655f7472616e736665727265640000057365616c30097365616c5f63616c6c0010057365616c300b7365616c5f63616c6c65720000057365616c30147365616c5f686173685f626c616b65325f3235360001057365616c30107365616c5f7365745f73746f726167650001057365616c30127365616c5f636c6561725f73746f726167650005057365616c30107365616c5f6765745f73746f726167650004057365616c300a7365616c5f696e7075740000057365616c300b7365616c5f72657475726e000103656e76066d656d6f727902010210038c018a01040402050501030300000f01080708000005120000000000000505000d000005030b0c05010004020202020701010107000001090902010201020102000601020002000406010300000002010201020201020102000001070007000700000001000e0100010000010102000400001107000306040601030306040601030306040601030302000a0401020608017f01418080040b071102066465706c6f7900160463616c6c00180ad1f1028a010f0041034101200020012002100b1b0b6801017f230041306b22032400200341246a200241186a2900003702002003411c6a200241106a290000370200200341146a200241086a290000370200200320013602082003200229000037020c200041f8046a200341086a100c280200200341306a24004101460b960301047f230041b0016b22022400200241c8006a200141241091011a200241106a200041286a200241c8006a1057027f027f024020022802104101470440024020002903004201520d0020024198016a2203200041206a29030037030020024190016a2204200041186a29030037030020024188016a2205200041106a2903003703002002200029030837038001200241d0006a20024180016a200110692003200241e8006a2903003703002004200241e0006a2903003703002005200241d8006a29030037030020022002290350370380012002418080013602a401200241d484043602a0010240024020024180016a200241a0016a10490e0400010102010b200220022903a0013703a801200241086a200241a8016a104a2002280208450d030b000b41000c020b200241186a2802002002411c6a2802004102746a4190036a0c020b200228020c210141010b2103200241c8006a200241106a41047241341091011a410c4104104b220041013a00082000200136020420002003360200200241c8006a200010580b280200200241b0016a24000bdc0502057f027e230041a0016b22012400200141086a200041e0001091011a200141106a21030240200129030822074201520440200141f0006a220241808001360200200141d4840436026c20014100360268200141e8006a100e20014198016a220020022802003602002001200129036837039001200141e8006a20014190016a41988004100f200141e8006a41a48004411b2003101020002002280200360200200120012903683703900120014190016a41bf80044119200341216a10100c010b200141f0006a220241808001360200200141d4840436026c20014100360268200141e8006a100e20014198016a220020022802003602002001200129036837039001200141e8006a20014190016a41f08004100f200141e8006a41fc8004411c2003101120002002280200360200200120012903683703900120014190016a41988104411e200141306a10110b20014188016a2000280200360200200120012903900137038001230041206b22002400200041186a220420014180016a220241086a28020036020020002002290200220637031020004100360210200041086a200041106a2006a7101520002903082106200141e8006a220241086a2004280200360200200220002903103702002002200637020c200041206a240020014198016a200141f0006a28020022003602002001200129036837039001200141f8006a28020021042001280274210520012802940121022001200036026c200120023602680240027f20075004402000450d02200241003a0000200141013602702003200141e8006a1012200341216a200141e8006a1012200141d8006a0c010b2000450d01200241013a0000200141013602702003200141e8006a1013200141306a200141e8006a1013200141d0006a0b2200290300200041086a290300200141e8006a10142001200129036837029401200120014190016a2001280270101520052004200128020020012802041000200141a0016a24000f0b000b9a0101047f230041206b22012400200028020421042000419c8404360204200041086a22022802002103200241003602002001410336020c0240200320002802002202490d00200141003602182001200320026b3602142001200220046a3602102001410c6a200141106a105e2002200220012802186a22024b0d00200020033602082000200436020420002002360200200141206a24000f0b000be80201077f230041e0006b22032400200141086a2802002205200128020022044f04402003410036021020012802042106200341003602482003200520046b3602442003200420066a36024020022802002002280204200341406b1038200341406b20022802084115103720032003290340370214200341086a200341106a2003280248101520032802082104200328020c2102200341386a22054200370300200341306a22064200370300200341286a4200370300200342003703200240200241214f0440200341d8006a22074200370300200341d0006a22084200370300200341c8006a220942003703002003420037034020042002200341406b10042005200729030037030020062008290300370300200341286a2009290300370300200320032903403703200c010b200341206a200420021091011a0b2001200341206a1051200041086a200141086a28020036020020002001290200370200200341e0006a24000f0b000bc30201057f230041e0006b22042400200041086a2802002206200028020022054f04402004410036021020002802042107200441003602482004200620056b3602442004200520076a36024020012002200441406b10382003200441406b101220042004290340370214200441086a200441106a2004280248101520042802082102200428020c2101200441386a22034200370300200441306a22054200370300200441286a4200370300200442003703200240200141214f0440200441d8006a22064200370300200441d0006a22074200370300200441c8006a220842003703002004420037034020022001200441406b10042003200629030037030020052007290300370300200441286a2008290300370300200420042903403703200c010b200441206a200220011091011a0b2000200441206a1051200441e0006a24000f0b000bc30201057f230041e0006b22042400200041086a2802002206200028020022054f04402004410036021020002802042107200441003602482004200620056b3602442004200520076a36024020012002200441406b10382003200441406b101320042004290340370214200441086a200441106a2004280248101520042802082102200428020c2101200441386a22034200370300200441306a22054200370300200441286a4200370300200442003703200240200141214f0440200441d8006a22064200370300200441d0006a22074200370300200441c8006a220842003703002004420037034020022001200441406b10042003200629030037030020052007290300370300200441286a2008290300370300200420042903403703200c010b200441206a200220011091011a0b2000200441206a1051200441e0006a24000f0b000b230020002d000041014704402001410010460f0b200141011046200041016a200110130b08002000200110530b2a01017f230041106b2203240020032001370308200320003703002002200341101037200341106a24000b5201027f200141086a2203280200210420034100360200200128020421032001419c8404360204200220044b0440000b2001200420026b3602082001200220036a36020420002002360204200020033602000b11004100101741ff01714108470440000b0bf44002117f057e230041e00f6b22012400024002400240024002400240024002400240024020004504402001418080013602bc02200141d484043602b802200141b8026a101b200120012903b8023703a00441012100200141a0046a101c4281feffffff1f834280b6baede90b520d04200141e8016a200141a0046a101a20012802e8010d04200141f8016a290300211320012903f0012112200141900a6a200141a0046a101d20012802900a4101460d04200141e0036a2001419c0a6a2200280200360200200120012902940a3703d803200141900a6a200141a0046a101d20012802900a4101460d01200141c8046a2000280200360200200120012902940a3703c004200141e0016a200141a0046a101e4101210020012d00e0014101710d0420012d00e1012104200141b8036a200141e0036a280200360200200141e0026a200141c8046a280200360200200120012903d8033703b003200120012903c0043703d802410021000c040b2001418080013602bc02200141d484043602b802200141b8026a101b200120012903b802370380034101210020014180036a101c2212a722024101710d02201242ffffffffff1f832212422088a721032012421888a721052012421088a721060240024002400240024002400240200241087641ff0171220241e5006b0e03010905000b0240024002400240024002400240200241fc016b0e03010f08000b20024116460d04200241db01460d022002413d470440200241cd00460d06200241d400460d04200241f2004704402002418101460d0b2002419601460d03200241b201460d0a20024134470d1041002102200641ff0171412047200541ff017141db0047720d10200341e501460d0d0c100b41012102200641ff017141f10047200541ff017141b70147720d0f2003418201460d0c0c0f0b200641ff0171412647200541ff0171411b47720d0e41022102200341d401460d0b0c0e0b200641ff0171413c47200541ff017141f5004772200341d40147720d0d200141900a6a20014180036a101f20012d00900a4101460d0d200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141d0006a20014180036a101a2001290350a70d0c200141e0006a290300211220012903582113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410321020c0a0b200641ff017141d60147200541ff017141b5014772200341fa0047720d0c200141900a6a20014180036a101f20012d00900a4101460d0c200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141e8006a20014180036a101a2001290368a70d0b200141f8006a290300211220012903702113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410421020c090b200641ff0171412047200541ff017141f9014772200341f50147720d0b200141900a6a20014180036a101f20012d00900a4101460d0b200141d8046a200141a90a6a290000370300200141d0046a200141a10a6a290000370300200141c8046a200141990a6a290000370300200120012900910a3703c00420014180016a20014180036a101a2001280280010d0a20014190016a29030021122001290388012113200141900a6a20014180036a102020012802900a2204450d0a200141e0036a200141c8046a290300370300200141e8036a200141d0046a290300370300200141f0036a200141d8046a290300370300200141b0046a2012370300200120012903c0043703d803200120133703a804200120012902940a3703a004410521020c080b200641ff017141b30147200541ff017141c7014772200341ee0047720d0a200141900a6a20014180036a101f20012d00900a4101460d0a200141d8046a200141a90a6a290000370300200141d0046a200141a10a6a290000370300200141c8046a200141990a6a290000370300200120012900910a3703c004200141900a6a20014180036a101f20012d00900a4101460d092001419a026a20012d00930a3a0000200141e0026a200141a00a6a290300370300200141e8026a200141a80a6a290300370300200120012f00910a3b0198022001200141980a6a2903003703d802200141b00a6a2d0000210720012802940a210420014198016a20014180036a101a2001280298010d09200141a8016a290300211220012903a0012113200141900a6a20014180036a102020012802900a2210450d09200141e0036a200141c8046a290300370300200141e8036a200141d0046a290300370300200141f0036a200141d8046a29030037030020014182026a2001419a026a2d00003a0000200141a8046a200141e0026a290300370300200141b0046a200141e8026a290300370300200120012903c0043703d803200120012f0198023b018002200120012903d8023703a00420012902940a2116410621020c070b200641ff0171412d47200541ff017141f80147720d0941072102200341c201460d060c090b200641ff017141c70047200541ff017141d90147722003412147720d08200141900a6a20014180036a101f20012d00900a4101460d08200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a29000037030041082102200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141900a6a20014180036a101f20012d00900a4101460d0720014182026a20012d00930a3a0000200141a8046a200141a00a6a290300370300200141b0046a200141a80a6a290300370300200141e0036a2007290300370300200141e8036a2004290300370300200141f0036a2000290300370300200120012f00910a3b0180022001200141980a6a2903003703a004200120012903c0043703d803200141b00a6a2d0000210720012802940a21040c050b200641ff017141e80047200541ff0171413847722003412f47720d07200141900a6a20014180036a101f20012d00900a4101460d07200141f0036a200141a90a6a290000370300200141e8036a200141a10a6a29000037030041092102200141e0036a200141990a6a290000370300200120012900910a3703d8030c040b200641ff017141cb0147200541ff017141d7004772200341d50147720d06200141900a6a20014180036a101f20012d00900a4101460d06200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141b0016a20014180036a101a20012903b001a70d05200141c0016a290300211220012903b8012113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410a21020c030b200641ff0171410f47200541ff0171411b4772200341bd0147720d05200141900a6a20014180036a101f20012d00900a4101460d05200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141c8016a20014180036a101a20012903c801a70d04200141d8016a290300211220012903d0012113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410b21020c020b200641ff017141e00147200541ff017141c60147720d04410c210220034104460d010c040b200641ff017141e10047200541ff017141e60047720d03410d2102200341c900470d030b200141c8036a200141f0036a290300370300200141c0036a200141e8036a290300370300200141b8036a200141e0036a290300370300200141a2036a20014182026a2d00003a000020014188046a200141a8046a29030037030020014190046a200141b0046a290300370300200120012903d8033703b003200120012f0180023b01a003200120012903a0043703800441002100200221080c020b410121000c020b410121000b20000d01200141d0026a2200200141c8036a2205290300370300200141c8026a2202200141c0036a2206290300370300200141c0026a2203200141b8036a22092903003703004102210b200141b6026a200141a2036a2d00003a0000200141a0026a220c20014188046a220d290300370300200141a8026a220e20014190046a220f290300370300200120012903b0033703b802200120012f01a0033b01b40220012001290380043703980220014190026a2211200e29030037030020014188026a220a200c2903003703002001200129039802370380020240024002400240024002400240024002400240024002400240024002400240200841016b0e0d0102030405060708090a0b0c0d000b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a1021200141d8036a200141cc0f6a1022200141d8036a1023000b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a10212001200141d80f6a2d00003a00900a230041106b220024002000200141900a6a36020c2000410c6a2802002102230041206b22002400200041186a41808001360200200041d4840436021420004100360210200041086a200041106a200210602000280208200028020c105f000b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a1021200141d8036a200141c00f6a1022200141d8036a1023000b200a29030021122001290380022113200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021024020012d00dc0f450440200141c0046a1024200141900a6a4196e4ea6c200141c0046a100a220041ff01714103470440200141b0036a200010250c020b200141d8046a200141d0026a290300370300200141d0046a200141c8026a290300370300200141c8046a200141c0026a290300370300200120012903b8023703c004200141b0036a200141900a6a200141c0046a2013201210260c010b200141b0036a410010270b200141900a6a200141d8036a1028200141b0036a1029000b200a290300211320012903800220014198046a4200370300200f4200370300200d42003703002001420037038004200141900a6a20014180046a1021200141a0046a1024200141f0026a200141b8046a2208290300370300200141e8026a200141b0046a2204290300370300200141e0026a200141a8046a2207290300370300200120012903a0043703d802200520002903003703002006200229030037030020092003290300370300200120012903b8023703b003200141f0036a2008290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903a0043703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c0042001200141900a6a200141d8036a200141c0046a102a200129030022147c221520145422002000ad2013200141086a29030022127c7c221320125420122013511b0d0e20014180036a200141900a6a200141d8026a200141b0036a20152013102b20012802800322004106470440200141cc046a2001418c036a28020036020020012001290284033702c4040b200120003602c004200141900a6a20014180046a1028200141c0046a1029000b201129030021122001290388022113200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2005290300370300200141e8036a2006290300370300200141e0036a2009290300370300200120012903b0033703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c0042001200436028004200120012903800237028404200141a0046a200141900a6a200141d8036a200141c0046a2013201220014180046a102c0c0e0b200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2000290300370300200141e8036a2002290300370300200141e0036a2003290300370300200120012903b8023703d803200141d8046a2005290300370300200141d0046a2006290300370300200141c8046a2009290300370300200120012903b0033703c004200141106a200141900a6a200141d8036a200141c0046a102a200129031022152013542200200141186a290300221420125420122014511b450440200141f0036a2202200141d0026a2208290300370300200141e8036a2203200141c8026a2205290300370300200141e0036a2206200141c0026a2209290300370300200120012903b8023703d803200141cf046a200141a0026a290300370000200141d7046a200141a8026a2903003700002001200141b6026a2d00003a00c204200120012f01b4023b01c004200120043600c30420012001290398023700c704200120073a00df0420012016370284042001201036028004200141a0046a200141900a6a200141d8036a200141c0046a2013201220014180046a102c024020012802a00422044106460440200220082903003703002003200529030037030020062009290300370300200120012903b8023703d803200141d8046a200141c8036a290300370300200141d0046a200141c0036a290300370300200141c8046a200141b8036a290300370300200120012903b0033703c004201520137d2213201556201420127d2000ad7d221220145620122014511b0d0f200141a0046a200141900a6a200141d8036a200141c0046a20132012102b20012802a00422044106470d01200141063602c0040c0b0b0c090b0c080b200141023602c0040c080b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a102120012903900a21122001200141980a6a2903003703980a200120123703900a200141900a6a102d000b200141f0026a2000290300370300200141e8026a2002290300370300200141e0026a2003290300370300200141fa026a200141b6026a2d00003a0000200120012903b8023703d802200120012f01b4023b01f80220014198036a420037030020014190036a420037030020014188036a42003703002001420037038003200141900a6a20014180036a1021200141b0036a200141d8026a41231091011a200141f0036a2000290300370300200141e8036a2002290300370300200141e0036a2003290300370300200141fa036a200141d2036a2d00003a0000200120012903b8023703d803200120012f00d0033b01f803200141c0046a200141d8036a41231091011a20014198046a2000290300370300200f2002290300370300200d2003290300370300200120012903b80237038004200141af046a200c290300370000200141b7046a200e2903003700002001200141e2046a2d00003a00a204200120012f01e0043b01a004200120043600a30420012001290398023700a704200120073a00bf04200141206a200141900a6a20014180046a200141a0046a102a2001200141286a2903003703a803200120012903203703a003200141a0036a102d000b200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c004200141306a200141900a6a200141c0046a102e2001200141386a2903003703b803200120012903303703b003200141b0036a102d000b200a29030021122001290380022113200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2005290300370300200141e8036a2006290300370300200141e0036a2009290300370300200120012903b0033703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c004200141406b200141900a6a200141d8036a200141c0046a102a0240200129034022152013542200200141c8006a290300221420125420122014511b450440200141f0036a200141c8036a290300370300200141e8036a200141c0036a290300370300200141e0036a200141b8036a290300370300200120012903b0033703d803200141d8046a200141d0026a290300370300200141d0046a200141c8026a290300370300200141c8046a200141c0026a290300370300200120012903b8023703c004200141a0046a200141900a6a200141d8036a200141c0046a201520137d201420127d2000ad7d102b20012802a004220b4106460440200141063602c0040c020b200141cc046a200141ac046a280200360200200120012902a4043702c4040b2001200b3602c0040b0c0a0b200a29030021122001290380022113200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2005290300370300200141e8036a2006290300370300200141e0036a2009290300370300200120012903b0033703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c004200141a0046a200141900a6a200141d8036a200141c0046a20132012102b0c080b200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021200141c0046a10240240200141900a6a41e6dfa6e704200141c0046a100a220041ff01714103470440200141d8026a200010250c010b02400240024020012d00dc0f450440200141013a00dc0f200141c0046a10240c010b200141b0036a4100102720012802b00322004106470d010b410621000c010b200141e4026a200141bc036a280200360200200120012902b4033702dc020b200120003602d8020b0c090b200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021200141c0046a10240240200141900a6a41e6dfa6e704200141c0046a100a220041ff01714103470440200141d8026a200010250c010b02400240024020012d00dc0f0440200141003a00dc0f200141c0046a10240c010b200141b0036a4101102720012802b00322004106470d010b410621000c010b200141e4026a200141bc036a280200360200200120012902b4033702dc020b200120003602d8020b0c080b200141cc046a200141ac046a280200360200200120012902a4043702c404200120043602c0040b0c050b20000d0020014188046a200141b8036a2200280200220236020020014188036a200141e0026a22082802002203360200200120012903b003221437038004200120012903d802221537038003200141a8046a2002360200200141b40f6a4200370200200141880f6a4200370300200141fc0e6a4200370200200141d00e6a4200370300200141980a6a4200370300200141a00a6a4200370300200141e40c6a4200370200200141ac0c6a4200370200200141f00b6a4200370300200141bc0b6a4200370200200141840b6a4200370200200141c80a6a4200370300200141d80f6a41003a0000200141cc0f6a4100360200200141b80c6a4200370300200141800c6a4200370300200141f80b6a4100360200200141900b6a4200370300200141d80a6a4200370300200141d00a6a4100360200200120143703a00420082003360200200142003703900a200141003a00dc0f200141003602c00f200142003703c80b200120153703d802200141c80e6a4100360200200141c00e6a4200370300200141980e6a220242003703002001418c0e6a4200370200200141e00d6a4200370300200141d40d6a4200370200200141a80d6a4200370300200141a00d6a4100360200200141980d6a4200370300200142003703f00c200141b0036a1024200141f0036a200141c8036a2208290300370300200141e8036a200141c0036a2203290300370300200141e0036a2000290300370300200120012903b0033703d803200141900a6a4100200141d8036a100b450440200141dc046a2008290300370200200141d4046a2003290300370200200141cc046a2000290300370200200120012903b0033702c404200141003602c0042002200141c0046a102f0b200141c0046a1024200141900a6a4196e4ea6c200141c0046a103041ff01714103470d02200141c0046a1024200141900a6a41e6dfa6e704200141c0046a103041ff01714103470d02200141cc0f6a20012903d80237020041082100200141c80f6a200141a8046a280200360200200141d40f6a200141e0026a280200360200200120012903a0043703c00f200120043a00d80f200141c0046a1024200141d8036a200141900a6a200141c0046a20122013102620012802d8034106470d02200141c0046a200141900a6a41d0051091011a200141a80a6a4200370300200141a00a6a4200370300200141980a6a4200370300200142003703900a200141c0046a200141900a6a10280c010b410621000b200141e00f6a240020000f0b000b20012802a00422004106470440200141cc046a200141ac046a280200360200200120012902a4043702c4040b200120003602c0040b200141900a6a200141d8026a1028200141c0046a1029000b200141900a6a200141d8036a1028200141d8026a1029000b880101017f230041306b22002400200041808001360224200041d4840436022020004180800136022841d48404200041286a1001200041206a2000280228101920002000290320370328200041086a200041286a101a02402000290308a70d002000290310200041186a2903008450450d004101101741ff01714108470d00200041306a24000f0b000b3401017f230041106b22022400200241086a410020012000280200200028020410900120002002290308370200200241106a24000b5e02017f037e027e4201200128020422024110490d001a2001200241106b36020420012001280200220141106a360200200141086a29000021032001290000210442000b21052000200437030820002005370300200041106a20033703000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10082000200128020c1019200141106a24000b900102027f017e230041106b220124002001420037030841042102027f02400340200241084604402001410436020820012903082203a741044f0d02000b20012000101e20012d0000410171450440200141086a20026a20012d00013a0000200241016a21020c010b0b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b7d01027f230041206b22022400200241086a2001103a41012103024020022d00084101710d000240024020022d00090e020001020b41002103200041003602040c010b200241106a2001103b20022802102201450d00200041086a200229021437020020002001360204410021030b20002003360200200241206a24000b3801017f230041106b22022400200241086a2001103a20022d00082101200020022d00093a0001200020014101713a0000200241106a24000b8a0302067f017e230041406a22022400200241186a41047221042000027f024003402003412047044020022001101e20022d00004101710d02200320046a20022d00013a00002002200341016a22033602180c010b0b200241126a2201200241256a2d00003a00002002410e6a22032002412c6a2d00003a00002002410a6a2204200241336a2d00003a0000200220022f011c3b0114200220022d001e3a00162002200241236a2f00003b011020022002412a6a2f01003b010c2002200241316a2f00003b0108200241346a29020021082002412d6a2800002105200241266a2801002106200228001f2107200041036a20022d00163a0000200020022f01143b0001200041046a2007360000200041086a20022f01103b00002000410a6a20012d00003a00002000410b6a20063600002000410f6a20022f010c3b0000200041116a20032d00003a0000200041126a2005360000200041166a20022f01083b0000200041186a20042d00003a0000200041196a200837000041000c010b41010b3a0000200241406b24000b810302067f017e230041306b22022400200241186a2001103a024020022d00184101710d00024002400240024020022d0019220341037122054103470440200541016b0e020203010b200341ff017141044f0d04200241106a2001104a20022802100d042002280214220341ffffffff034b0d030c040b200341fc017141027621030c020b200220033a0025200241013a002420022001360220200241003b012c200241206a2002412c6a41021075220545044020022f012c21030b2005200341ffff037141ff014d720d02200341fcff037141027621030c010b200220033a0025200241013a0024200220013602202002410036022c200241206a2002412c6a410410750d01200228022c220341808004490d01200341027621030b200128020422052003490d00200241086a20034101103c200235020c2108200228020822042001280200220620031091012001200520036b3602042001200320066a360200450d0020002003ad4220862008843702040b20002004360200200241306a24000bfd0802027f057e230041e0006b22022400200241406b200141186a290300370300200241386a200141106a290300370300200241306a200141086a2903003703002002420037034820022001290300370328200241286a10612101200241808001360254200241d484043602500240024002402001200241d0006a10490d0020022002290350370358200241106a200241d8006a101a2002290310a70d00200241206a290300210420022903182105200041106a200241286a1062200041d0006a200241286a10632201290300370300200041e8006a200141186a290300370300200041e0006a200141106a290300370300200041d8006a200141086a290300370300200041f4006a4200370200200041c8006a420137030020004188016a200241286a10612201290300370300200041a0016a200141186a29030037030020004198016a200141106a29030037030020004190016a200141086a290300370300200041ac016a420037020020004180016a4201370300200041b8016a200241286a1062200041f8016a200241286a1063220129030037030020004190026a200141186a29030037030020004188026a200141106a29030037030020004180026a200141086a2903003703002000419c026a4200370200200041f0016a4201370300200041b0026a200241286a10612201290300370300200141086a2903002106200141106a2903002107200141186a29030021082000200437030820002005370300200041c8026a2008370300200041c0026a2007370300200041b8026a2006370300200041d4026a4200370200200041a8026a4201370300200041b0056a200241286a1064200041bc056a200241286a1064200041c8056a200241286a10653a0000200241286a1061200241808001360254200241d48404360250200241d0006a10490d0020022002290350370358200241086a200241d8006a103a20022d00084101710d0020022d000922030e020201000b000b410121030b200041e0026a200241286a1062200041a0036a200241286a10632201290300370300200041b8036a200141186a290300370300200041b0036a200141106a290300370300200041a8036a200141086a290300370300200041c4036a420037020020004198036a4201370300200041d8036a200241286a10612201290300370300200041f0036a200141186a290300370300200041e8036a200141106a290300370300200041e0036a200141086a290300370300200041fc036a4200370200200041d0036a420137030020004188046a200241286a1062200041c8046a200241286a10632201290300370300200041e0046a200141186a290300370300200041d8046a200141106a290300370300200041d0046a200141086a290300370300200041ec046a4200370200200041c0046a420137030020004180056a200241286a1061220129030037030020004198056a200141186a29030037030020004190056a200141106a29030037030020004188056a200141086a290300370300200020033a00cc05200041a4056a4200370200200041f8046a4201370300200241e0006a24000b2501017f20012802002202450440200041003602000f0b20002002200141086a28020010720b960201067f230041106b220124002001200036020c2001410c6a2802002100230041206b22022400200241186a41808001360200200241d4840436021420024100360210200241086a2106230041206b22012400200241106a220441086a2203280200210520034100360200200428020421032004419c8404360204200120053602142001200336021002400240027f20002802004504402005450d02200341003a000041010c010b2005450d01200341013a0000200141013602182000200141106a1052200128021421052001280210210320012802180b21002004200536020820042003360204200141086a20042000101520062001290308370300200141206a24000c010b000b2002280208200228020c105f000bf90101037f230041e0006b2201240020014180800136022c200141d4840436022820014180800136023041d48404200141306a1003200141286a2001280230101920012001290328370358200141306a200141d8006a101f20012d003022034101470440200141106a2001413a6a290100370300200141186a200141c2006a2901003703002001411f6a200141c9006a2900003700002001200129013237030820012d003121020b20034101460440000b200020023a000020002001290308370001200041096a200141106a290300370000200041116a200141186a290300370000200041186a2001411f6a290000370000200141e0006a24000b4e000240024002400240200141ff017141016b0e020102000b200041046a41f38104411110720c020b200041046a41e48104410f10720c010b200041046a41d38104411110720b200041003602000b840302077f037e230041e0006b22052400410321060240200020021035047f410305200541d0006a2206200241186a2200290000370300200541c8006a2207200241106a2208290000370300200541406b2209200241086a220a2900003703002005200229000037033820052001200541386a102e2005290300220c20037c220e200c54220b200bad200541086a290300220c20047c7c220d200c54200c200d511b0d0120062000290000370300200720082900003703002009200a29000037030020052002290000370338200141106a200541386a200e200d103d2001290300220c20037c220e200c5422062006ad200141086a290300220c20047c7c220d200c54200c200d511b0d012001200e3703002001200d370308200541003a0010200541d1006a200241186a290000370000200541c9006a200241106a290000370000200541c1006a200241086a290000370000200541013a003820052002290000370039200541106a200541386a20032004103e41060b360200200541e0006a24000f0b000b3101017f200041046a210202402001450440200241908204410910720c010b200241848204410c10720b200041003602000bd41f01087f230041b0016b22022400200241e0006a200141186a290300370300200241d8006a200141106a290300370300200241d0006a200141086a2903003703002002420037036820022001290300370348200241c8006a1061200241f8006a41808001360200200241d4840436027420024100360270200241406b200241f0006a20001036200228024020022802441005200041106a200241c8006a1066200241c8006a10632109200041f8006a2802004100200041f4006a28020022031b21072003454101742108200041f0006a2802002101034002400240200704400240024020080e03000103010b034020010440200141016b2101200328026021030c010b0b4101210841002105410021010b200741016b21072005210620032104034020042f015e20064d044020042802002203450d032001200141016a22014b0d0320042f015c2106200321040c010b0b200641016a22052006492103200145044020030d02200421030c030b20030d01200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0405200541016a2105200341e0006a21030c010b000b000b200241c8006a10612109200041b0016a2802004100200041ac016a28020022041b21072004454101742108200041a8016a280200210103400240200704400240024020080e03000105010b034020010440200141016b210120042802940321040c010b0b4101210841002103410021010b200741016b2107034020042f013220034d044020042802002205450d052001200141016a22014b0d0520042f01302103200521040c010b0b200341016a22062003492105200145044020050d04200421050c020b20050d03200420064102746a4194036a21054101210603402005280200210520012006460440410021060c0305200641016a210620054194036a21050c010b000b000b200041b8016a200241c8006a1066200241c8006a10632109200041a0026a28020041002000419c026a28020022031b2107200345410174210820004198026a280200210103400240200704400240024020080e03000107010b034020010440200141016b2101200328026021030c010b0b4101210841002105410021010b200741016b21072005210620032104034020042f015e20064d044020042802002203450d072001200141016a22014b0d0720042f015c2106200321040c010b0b200641016a22052006492103200145044020030d06200421030c020b20030d05200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b200241c8006a10612109200041d8026a2802004100200041d4026a28020022041b21072004454101742108200041d0026a280200210103400240200704400240024020080e03000109010b034020010440200141016b210120042802f40521040c010b0b4100210141012108410021030b200741016b2107034020042f013220034d044020042802002205450d092001200141016a22014b0d0920042f01302103200521040c010b0b200341016a22062003492105200145044020050d08200421050c020b20050d07200420064102746a41f4056a21054101210603402005280200210520012006460440410021060c0305200641016a2106200541f4056a21050c010b000b000b200041b0056a200241c8006a1067200041bc056a200241c8006a1067200041c8056a200241c8006a1068200241c8006a1061200241003602a001200242808001370274200241d48404360270200220002d00cc053a009001200241f0006a20024190016a41011037200220022903703702a401200241286a200241a0016a200228027810152002280228200228022c1005200041e0026a200241c8006a1066200241c8006a10632109200041c8036a2802004100200041c4036a28020022031b21072003454101742108200041c0036a280200210103400240200704400240024020080e0300010b010b034020010440200141016b2101200328026021030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f015e20064d044020042802002203450d0b2001200141016a22014b0d0b20042f015c2106200321040c010b0b200641016a22052006492103200145044020030d0a200421030c020b20030d09200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b200241c8006a1061210920004180046a2802004100200041fc036a28020022031b21072003454101742108200041f8036a280200210103400240200704400240024020080e0300010d010b034020010440200141016b2101200328026021030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f015e20064d044020042802002203450d0d2001200141016a22014b0d0d20042f015c2106200321040c010b0b200641016a22052006492103200145044020030d0c200421030c020b20030d0b200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b20004188046a200241c8006a1066200241c8006a10632109200041f0046a2802004100200041ec046a28020022031b21072003454101742108200041e8046a280200210103400240200704400240024020080e0300010f010b034020010440200141016b2101200328026021030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f015e20064d044020042802002203450d0f2001200141016a22014b0d0f20042f015c2106200321040c010b0b200641016a22052006492103200145044020030d0e200421030c020b20030d0d200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b200241c8006a10612109200041a8056a2802004100200041a4056a28020022031b21072003454101742108200041a0056a280200210103400240200704400240024020080e03000111010b034020010440200141016b210120032802c00321030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f01be0320064d044020042802002200450d112001200141016a22014b0d1120042f01bc032106200021040c010b0b200641016a22052006492100200145044020000d10200421030c020b20000d0f200420054102746a41c0036a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341c0036a21030c010b000b000b200241b0016a24000f0b200241f0006a20092004200641246c6a41046a1069200420064102746a4190036a28020022002d00082101200041013a0008024020014101710d0020002802004101470440200241f0006a10060c010b20024100360290012002428080013702a401200241d484043602a0012000280204200241a0016a106a200220022903a00137029401200241086a20024190016a20022802a8011015200241f0006a2002280208200228020c10050b410021010c000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d00282104200141013a0028024020044101710d00200128020022064102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a001200141046a210402402006410147044041d4840441003a0000200241013602a8012004280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a8012004200241a0016a106d0b200220022903a00137029401200241106a20024190016a20022802a8011015200241f0006a2002280210200228021410050b410021010c000b000b200241f0006a2009200420064102746a220141046a1048200141306a28020022012d000c2104200141013a000c024020044101710d0020012802004101470440200241f0006a10060c010b20024100360290012002428080013702a401200241d484043602a0012001280204200241a0016a106a200141086a280200200241a0016a106a200220022903a00137029401200241186a20024190016a20022802a8011015200241f0006a2002280218200228021c10050b410021010c000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d000c2104200141013a000c024020044101710d00200128020022044102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a00102402004410147044041d4840441003a0000200241013602a801200141046a280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a8012001280204200241a0016a106a0b200220022903a00137029401200241206a20024190016a20022802a8011015200241f0006a2002280220200228022410050b410021010c000b000b200241f0006a2009200420034106746a41346a106e200420034102746a41046a280200200241f0006a106f4100210120062103200521040c000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d00442104200141013a0044024020044101710d0020012d000022044102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a00102402004410147044041d4840441003a0000200241013602a801200141046a280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a801200141016a200241a0016a10700b200220022903a00137029401200241306a20024190016a20022802a8011015200241f0006a2002280230200228023410050b410021010c000b000b200241f0006a2009200420034105746a41346a1071200420034102746a41046a280200200241f0006a106f4100210120052104200621030c000b000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d00242104200141013a0024024020044101710d0020012d000022044102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a00102402004410147044041d4840441003a0000200241013602a801200141046a280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a801200141016a200241a0016a10130b200220022903a00137029401200241386a20024190016a20022802a8011015200241f0006a2002280238200228023c10050b410021010c000b000bbd0301077f230041106b220124002001200036020c2001410c6a2802002100230041206b22042400200441186a41808001360200200441d4840436021420044100360210200441086a2106230041206b22012400200441106a220541086a2202280200210320024100360200200528020421022005419c840436020420012003360214200120023602100240024002402000280200220741064604402003450d02200241003a0000200141013602180c010b2003450d01200241013a00002001410136021802400240024002400240024020070e06000102030405060b200341014d0d06200241003a000120014102360218200041046a200141106a10520c050b200341014d0d05200241013a0001200141023602180c040b200341014d0d04200241023a0001200141023602180c030b200341014d0d03200241033a0001200141023602180c020b200341014d0d02200241043a0001200141023602180c010b200341014d0d01200241053a000120014102360218200041046a200141106a10520b20052001290310370204200141086a20052001280218101520062001290308370300200141206a24000c010b000b2004280208200428020c105f000bbd0102017f027e230041406a22042400200441186a200241186a290000370300200441106a200241106a290000370300200441086a200241086a290000370300200441286a200341086a290000370300200441306a200341106a290000370300200441386a200341186a29000037030020042002290000370300200420032900003703202000200141a8026a200410322201290300420151047e200141106a290300210520012903080542000b37030020002005370308200441406b24000b930901067f230041d0026b220624002000027f4104200210350d001a4103200310350d001a200641206a200241186a290000370300200641186a200241106a290000370300200641106a200241086a290000370300200641306a200341086a290000370300200641386a200341106a290000370300200641406b200341186a29000037030020062002290000370308200620032900003703280240200141a8026a200641086a10322200290300420151044020002004370308200041003a0020200041106a20053703000c010b200641c8006a200641086a41c0001091011a0240024002402001027f024002400240200141e4016a2802002208200141e8016a280200470440200141f0016a220b200141e0016a2802002208103f2100200641013a00f001200641f0016a410172200641c8006a41c0001091011a200641a0016a2000200641f0016a104020062d00a00122004102462000410146720d062008200641a8016a280200220746410020062802a40122002008461b0d01200b200710412209450d0620092d00004101460d06200941046a210a20002007460d02200a2000360200200b200010412209450d0620092d00004101460d06200941086a210a0c030b20064188016a20014198026a200810420240200628028801410147044020064180026a2006419c016a280200360200200641f8016a20064194016a2902003703002006200629028c013703f00141c80041041033220041013a0000200041016a200641c8006a41c0001091011a200041003a0044200641f0016a200010431a0c010b20064190016a28020020064194016a2802004102746a41306a2802002100200641013a00f001200641f0016a410172200641c8006a41c0001091011a200641a0016a2000200641f0016a10400b200141e0016a280200220041016a22072000490d05200120073602e00120012802e801220041016a22072000490d05200120073602e8010c040b20012802e4010c020b200920003602080b200a200736020020012802e0012008470d012000200720002007491b0b3602e0010b20012802e401220041016a220720004f0d010b000b200120073602e401200641c8006a200641086a41c0001091011a41284108103322002004370308200041003a00202000200836021820004201370300200041106a2005370300200641a0016a200641c8006a41c0001091011a200641f0016a200141d0026a200641a0016a104420062802f0014101470440200641a0016a200641f0016a41047241d0001091011a200641a0016a200010451a0c010b200641f8016a280200200641fc016a2802004102746a41046a20003602000b200641b8016a200241186a290000370300200641b0016a200241106a290000370300200641a8016a200241086a290000370300200641c8016a200341086a290000370300200641d0016a200341106a290000370300200641d8016a200341186a290000370300200620022900003703a001200620032900003703c001200641f8016a200641a0016a41c0001091011a200641c0026a2005370300200641b8026a2004370300200642013703f001200641f0016a100d41060b360200200641d0026a24000bbd10020b7f057e230041d0076b22072400410421080240200210350d0041032108200310350d0020074198026a2209200241186a220c29000037030020074190026a220b200241106a220d29000037030020074188026a220a200241086a220e2900003703002007200229000037038002200741406b200120074180026a102e41012108200729034022142004542211200741c8006a290300221320055420052013511b0d0020094200370300200b4200370300200a42003703002007420037038002200120074180026a1028200741b8016a1024200741f0006a200341186a290000370200200741e8006a200341106a290000370200200741e0006a200341086a29000037020020072003290000370258200741b8026a200741d0016a290300370300200741b0026a200741c8016a290300370300200741a8026a2208200741c0016a290300370300200a200e290000370300200b200d2900003703002009200c290000370300200720072903b8013703a0022007200229000037038002200741f8006a20074180026a41c0001091011a200741b8016a200741d4006a41241091011a200741a0026a200537030020074198036a200741d4016a29020037030020074190036a200741cc016a29020037030020074188036a200741c4016a2902003703002007200437039802200720072902bc01370380032008200741f8006a41c000109101200741f8026a220941fdcdc6cf7a360200200a4200370300200b4200370300200741f0026a220b200641086a280200360200200741e8026a220c20062902003703002007420037038002200741003602e0012007428080013702bc01200741d484043602b80120074180036a200741b8016a1013200720072903b8013702e401200741386a200741e0016a20072802c0011015200728023c21062007280238210d200741306a200741e0016a200a10362007280234210e2007280230210a20072902e4012112200741003602c001200720123703b801200741b8016a200941041037200741c8026a200741b8016a1013200741b8016a101320042005200741b8016a1014200c280200200b280200200741b8016a1038200720072903b8013702e401200741286a200741e0016a20072802c0011015200728022c21082007280228210b2007200741e8016a28020022093602f401200720072802e401220c3602f001200720093602b801200d20064200200a200e200b2008200c200741b8016a1002210b200741f0016a20072802b8011019410121084101210602400240024002400240024002400240024002400240024002400240200b103941016b0e0c0d0203040506070809010a0b000b200720072903f0013703f801200741206a200741f8016a103a20072d00204101710d0b4100210a0240024020072d00210e0201000d0b200741186a200741f8016a103a20072d001920072d0018410171720d0c200741b8016a200741f8016a103b20072802b801220a450d0c20072902bc0121120b410021080c0c0b000b410221060c0a0b410321060c090b410421060c080b410521060c070b410621060c060b410721060c050b410821060c040b410a21060c030b410b21060c020b410921060c010b410021060b027f02402008450440200a0d014101210b41060c020b4101210b4106200641ff017122064101462006410846720d011a4100210b411d210f200741106a411d4100103c200728021421102007280210220a41b68104290000370000200a41156a41cb8104290000370000200a41106a41c68104290000370000200a41086a41be810429000037000041050c010b2012422088a7210f2012a721104100210b41050b210820074190016a420037030020074188016a420037030020074180016a42003703002007420037037820074180026a200741f8006a1021410021060340200641b0054b450440200120066a22092903002112200920074180026a20066a220c290300370300200c2012370300200941086a220d2903002112200d200c41086a220d290300370300200941106a220e2903002115200e200c41106a220e290300370300200941186a220929030021162009200c41186a220929030037030020092016370300200e2015370300200d2012370300200641206a21060c010b0b200141c8056a200741c8076a290300370300200141c0056a200741c0076a290300370300200b4504402000200a3602042000410c6a200f360200200041086a20103602000c010b20074198026a2206200241186a29000037030020074190026a220a200241106a29000037030020074188026a2208200241086a290000370300200720022900003703800202402014201420047d221454201320057d2011ad7d221220135620122013511b0d00200141106a220b20074180026a20142012103d2006200341186a2209290000370300200a200341106a220c2900003703002008200341086a220f29000037030020072003290000370380022007200120074180026a102e200741086a29030021132007290300211220062009290000370300200a200c2900003703002008200f2900003703002007200329000037038002200420127c221420125422012001ad200520137c7c221220135420122013511b0d00200b20074180026a20142012103d20074191016a200241186a29000037000020074189016a200241106a29000037000020074181016a200241086a290000370000200741013a00782007200229000037007920074199026a200341186a29000037000020074191026a200341106a29000037000020074189026a200341086a290000370000200741013a0080022007200329000037008102200741f8006a20074180026a20042005103e410621080c010b000b20002008360200200741d0076a24000b5e01017f230041106b220124002001200036020c2001410c6a2802002101230041206b22002400200041186a41808001360200200041d4840436021420004100360210200041086a200041106a200110362000280208200028020c105f000b3701027e200020014180016a200210312201290300420151047e200141106a290300210320012903080542000b370300200020033703080bdf0501087f230041b0016b220824000240200041f0006a2001100c22022802004101460440200241003a00080c010b20082001412410910121020240024002402000027f0240024002402000412c6a2802002205200041306a280200470440200041386a2209200028022822051054210320024101360240200241406b410472200241241091011a200241f8006a2003200241406b1055200228027822034102462003410146720d06200520024180016a2802002204464100200228027c22032005461b0d012009200410562206450d0620062802004101460d06200641046a210720032004460d02200720033602002009200310562206450d0620062802004101460d06200641086a21070c030b200241286a200041e0006a20051042024020022802284101470440200241d0006a2002413c6a280200360200200241c8006a200241346a2902003703002002200229022c370340412c4104103322034101360200200341046a200241241091011a200341003a0028200241406b200310431a0c010b200241306a280200200241346a2802004102746a41306a280200210320024101360240200241406b410472200241241091011a200241f8006a2003200241406b10550b2000280228220341016a22042003490d05200020043602282000280230220341016a22042003490d05200020043602300c040b200028022c0c020b200620033602080b2007200436020020002802282005470d012003200420032004491b0b3602280b200028022c220341016a220420034f0d010b000b2000200436022c2002200141241091012101410c41041033220241003a00082002200536020420024101360200200141f8006a200141241091011a200141406b20004198016a200141f8006a105720012802404101470440200141f8006a200141406b41047241341091011a200141f8006a200210581a0c010b200141c8006a280200200141cc006a2802004102746a4190036a20023602000b200841b0016a24000b910d02117f017e23004180016b2203240020032001360224200041f8036a210b027f200041fc036a28020022060440200b2802000c010b200b10472206360204200b410036020041000b21080240024003402006412c6a210920062f015e22044102742107417f2105034002402007450440200421050c010b200941286b210a200541016a2105200941046a2109200741046b2107417f200a280200220a2001472001200a491b41ff01710e020301000b0b20080440200841016b2108200620054102746a41e0006a28020021060c010b0b4102210720002903d0034201510440200341e8006a2209200041f0036a290300370300200341e0006a2207200041e8036a290300370300200341d8006a2204200041e0036a2903003703002003200041d8036a290300370350200341306a200341d0006a200341246a10482009200341c8006a2903003703002007200341406b2903003703002004200341386a29030037030020032003290330370350200341808001360274200341d48404360270027f02400240200341d0006a200341f0006a10490e0400050501050b20032003290370370378200341186a200341f8006a104a20032802180d04200328021c2109200341106a200341f8006a104a20032802100d042003280214210441010c010b41000b21072009ad2004ad4220868421140b41104104104b220841013a000c2008201437020420084100200720074102461b360200200320053602582003410036025020032006360254027f02400240024020062f015e410b4f0440200341286a2005104c200341306a280200210f200328022c2109200328022821041047210a20062f015e220720046b220520074b0d062005200541016b2205490d06200a20053b015e200441016a220c2004490d0620072007200c6b2207492005410c4f722005200747720d06200620044102746a220741306a280200210d200741046a280200210e200a41046a2006200c4102746a41046a200541027422051091011a200a41306a2006200c4102746a41306a20051091011a200620043b015e2003200f3602302003200a200620091b36022c4100210420034100360228200341286a20012008104d210941002101034020062802002205450d02200441016a22072004490d07200320062f015c22043602582003200536025420032007360250200741016b220620074b2001200647720d0720052f015e410b490d03200341286a2004104c20032802302111200328022c2003280228210420052f015e104e210120052f015e220820046b220620084b0d072006200641016b2206490d07200120063b015e200441016a22102004490d072008200820106b2208492006410c4f722006200847720d07200520044102746a220841306a280200210c200841046a280200210f200141046a200520104102746a220841046a200641027422061091011a200141306a200841306a20061091011a200520043b015e41016a220620106b220420064b0d0720012f015e2206410c4f2004200641016a47720d07200141e0006a200841e0006a20044102741091011a200341086a20012007104f200328020c2106200328020821012007210420052108044020062108200121040b200320113602302003200836022c20032004360228200341286a200e200d200a1050200721042006210a200c210d200f210e200521060c000b000b200341d0006a20012008104d21090c020b200b2802042205450d04200b2802002104104e220720053602602004200441016a22044b0d04200320072004104f20032802002105200b20032802042204360204200b20053602002005200541016b2205492001200547720d0420042f015e2201410a4b0d042004200141016a22053b015e200420014102746a220141306a200d360200200141046a200e360200200420054102746a41e0006a200a360200200a20053b015c200a2004360200200b280208220141016a22072001490d04200b41086a0c020b200341d0006a200e200d200a10500b200b280208220141016a22072001490d02200b41086a0b20073602000b41002107200928020022012802004101460440200128020421070b200341286a1024024020002007200341286a100a220941ff01714103470d0041022109200020032802242002100b0d00200341346a200241086a2900003702002003413c6a200241106a290000370200200341c4006a200241186a290000370200200320032802243602282003200229000037022c20004188046a200341286a102f200341286a1024410321090b20034180016a240020090f0b000bdb0302047f027e230041b0016b22022400200241f8006a200141186a290000370300200241f0006a200141106a290000370300200241e8006a200141086a29000037030020022001290000370360200241086a200041286a200241e0006a105c027f200228020841014704404202210620002903004201510440200241a8016a2203200041206a290300370300200241a0016a2204200041186a29030037030020024198016a2205200041106a2903003703002002200029030837039001200241e8006a20024190016a20011071200320024180016a2903003703002004200241f8006a2903003703002005200241f0006a2903003703002002200229036837039001200241406b20024190016a108f01200229034021060b20064202520440200241a0016a200241d8006a29030037030020024198016a200241d0006a2903003703002002200229034837039001200621070b200241e0006a200241086a41047241301091011a41284108104b22002007370300200041013a00202000200229039001370308200041106a20024198016a290300370300200041186a200241a0016a290300370300200241e0006a2000105d2802000c010b200241106a280200200241146a2802004102746a41046a2802000b200241b0016a24000bb00302047f027e230041f0016b2202240020024180016a200141c0001091011a200241086a200041286a20024180016a1044027f200228020841014704404202210620002903004201510440200241e8016a2203200041206a290300370300200241e0016a2204200041186a290300370300200241d8016a2205200041106a290300370300200220002903083703d00120024188016a200241d0016a2001106e2003200241a0016a290300370300200420024198016a290300370300200520024190016a29030037030020022002290388013703d001200241e0006a200241d0016a108f01200229036021060b20064202520440200241e0016a200241f8006a290300370300200241d8016a200241f0006a290300370300200220022903683703d001200621070b20024180016a200241086a41047241d0001091011a41284108104b22002007370300200041013a0020200020022903d001370308200041106a200241d8016a290300370300200041186a200241e0016a29030037030020024180016a200010452802000c010b200241106a280200200241146a2802004102746a41046a2802000b200241f0016a24000b11002000200110342200450440000b20000bb50101027f2000200020016a41016b410020016b7122014d0440024041cc8404280200220020016a22032000490d0041d0840428020020034904402001200141ffff036a22004b044041000f0b2000411076220240002200417f46044041000f0b2000200041ffff037147044041000f0b2000411074220020024110746a2203200049044041000f0b4100210241d084042003360200200020016a22032000490d010b41cc84042003360200200021020b20020f0b000b4101017f230041206b22012400200141186a4200370300200141106a4200370300200141086a42003703002001420037030020002001109301200141206a2400450b6102017f017e230041206b220324002001290204210420034100360218200320043703102002290300200241086a290300200341106a101420012003290310370204200341086a20012003280218101520002003290308370300200341206a24000b6001037f230041106b2203240002402000280208220420026a220520044f0440200341086a2004200520002802002000280204109001200328020c2002470d012003280208200120021091011a20002005360208200341106a24000f0b000b000b2c01017f230041106b220324002003200136020c2003410c6a2002105e2002200020011037200341106a24000b2001017f410c21012000410b4d047f2000410274419c84046a28020005410c0b0b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000bc00502097f017e230041106b22062400200620011020024020062802002203044041002006290204220b422088a7220441076b2201200120044b1b210a200341036a417c7120036b210941002101034020012004490440024002400240200120036a2d00002207411874411875220841004e0440200920016b4103712009417f46720d0303402001200a4f0d03200120036a2205280200200541046a28020072418081828478710d032001200141086a22014d0d000b0c010b4100210502400240024002402007419982046a2d000041026b0e030002010a0b200141016a220120044f0d09200120036a2c000041bf7f4c0d020c090b200141016a220220044f0d08200220036a2d000021020240024002400240200741f0016b0e050100000002000b2002411874411875417f4a2008410f6a41ff017141024b720d0b200241c001490d020c0b0b200241f0006a41ff01714130490d010c0a0b2002411874411875417f4a2002418f014b720d090b200141026a220220044f0d08200220036a2c000041bf7f4a0d08200141036a220120044f0d08200120036a2c000041bf7f4c0d010c080b200141016a220220044f0d07200220036a2d00002102024002400240200741e001470440200741ed01460d012008411f6a41ff0171410c490d022008417e71416e472002411874411875417f4a720d0b200241c001490d030c0b0b200241e0017141a001460d020c0a0b2002411874411875417f4a0d09200241a001490d010c090b2002411874411875417f4a200241bf014b720d080b200141026a220120044f0d07200120036a2c000041bf7f4a0d070b200141016a21010c040b000b20012004200120044b1b2105034020012005460440200521010c040b200120036a2c00004100480d03200141016a21010c000b000b200141016a21010c010b0b2000200b370204200321050c010b0b20002005360200200641106a24000bf10101037f230041106b220424000240200141004e0440200441086a2105027f41012001450d001a20024504402001410110340c010b410041cc8404280200220220016a22032002490d001a024041d084042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141d0840420033602004100200120026a22032002490d021a0b41cc8404200336020020020c010b41000b21022005200136020420052002360200200428020822020d010b000b2000200136020420002002360200200441106a24000b8c0801077f230041a0016b220424000240200041f0006a200110312205290300420151044020052002370308200541003a0020200541106a20033703000c010b200441186a2205200141186a290000370300200441106a2206200141106a290000370300200441086a2207200141086a290000370300200420012900003703000240024002402000027f0240024002402000412c6a2802002208200041306a280200470440200041386a220a2000280228220810592109200441c1006a2007290300370000200441c9006a2006290300370000200441d1006a2005290300370000200441013a003820042004290300370039200441f0006a2009200441386a105a20042d007022054102462005410146720d062008200441f8006a2802002206464100200428027422052008461b0d01200a2006105b2207450d0620072d00004101460d06200741046a210920052006460d0220092005360200200a2005105b2207450d0620072d00004101460d06200741086a21090c030b200441206a200041e0006a20081042024020042802204101470440200441c8006a200441346a280200360200200441406b2004412c6a29020037030020042004290224370338412841041033220541013a0000200541003a002420052004290300370001200541096a200441086a290300370000200541116a200441106a290300370000200541196a200441186a290300370000200441386a200510431a0c010b200441286a2802002004412c6a2802004102746a41306a2802002105200441c1006a200441086a290300370000200441c9006a200441106a290300370000200441d1006a200441186a290300370000200441013a003820042004290300370039200441f0006a2005200441386a105a0b2000280228220541016a22062005490d05200020063602282000280230220541016a22062005490d05200020063602300c040b200028022c0c020b200720053602080b2009200636020020002802282008470d012005200620052006491b0b3602280b200028022c220541016a220620054f0d010b000b2000200636022c200441186a2205200141186a290000370300200441106a2206200141106a290000370300200441086a2207200141086a2900003703002004200129000037030041284108103322012002370308200141003a00202001200836021820014201370300200141106a200337030020044188016a200529030037030020044180016a2006290300370300200441f8006a200729030037030020042004290300370370200441386a20004198016a200441f0006a105c20042802384101470440200441f0006a200441386a41047241301091011a200441f0006a2001105d1a0c010b200441406b280200200441c4006a2802004102746a41046a20013602000b200441a0016a24000b6701017f230041b0016b22042400200441086a200041211091011a200441296a200141211091011a200441d8006a200441086a41c8001091011a200441a8016a2003370300200441a0016a200237030020044200370350200441d0006a100d200441b0016a24000ba30702047f057e230041a0026b22022400200241106a200041286a200110420240027f200228021041014704404102210320002903004201510440200041206a2903002109200041186a2903002108200041106a29030021062002200029030822072001ad7c220a370328200220062007200a56ad7c2207370330200220082006200756ad7c2206370338200220092006200854ad7c37034020024180800136028401200241d484043602800141002100024002400240200241286a20024180016a10490e0400060601060b20022002290380013703c801200241086a200241c8016a103a4101210020022d00084101710d00027f0240024020022d00090e020001030b200241c8006a200241c8016a107420022802484101460d02200241d0006a2802002104200228024c210541000c010b200241d0016a200241c8016a101f20022d00d0014101460d01200241f8016a200241c8016a101f20022d00f8014101460d01200241c6016a20022d00d3013a0000200241f5006a20024191026a290000370000200241ed006a20024189026a290000370000200241e5006a20024181026a290000370000200241d0006a200241e4016a290200370300200241d5006a200241e9016a290000370000200220022900f90137005d200220022f00d1013b01c4012002200241dc016a290200370348200241d8016a280200210420022802d40121052002418c016a200241c8006a41351091011a41010b2103200241fa016a200241c6016a2d00003a0000200220022f01c4013b01f801200241c8006a2002418c016a41381091011a410021000c010b0b20000d03200241d2016a2201200241fa016a22002d00003a0000200220022f01f8013b01d0012002418c016a200241c8006a41381091011a20034102470440200020012d00003a0000200220022f01d0013b01f801200241c8006a2002418c016a41381091011a0b200241ca016a20002d00003a0000200220022f01f8013b01c8012002418c016a200241c8006a41381091011a0b200241d8006a200241106a410472220041106a280200360200200241d0006a200041086a2902003703002002200029020037034841c8004104104b220020033a00002000200436000820002005360004200020022f01c8013b0001200041036a200241ca016a2d00003a00002000410c6a2002418c016a41381091011a200041013a0044200241c8006a200010432802000c010b200241186a2802002002411c6a2802004102746a41306a2802000b200241a0026a24000f0b000b3a01017f20022d000021032000200141c4001091012001200241c40010910121012d0000410246410020034102461b450440200141003a00440b0b2101017f20002001103f22002d0000410247047f200041003a004420000541000b0b900201077f027f20012802042204044020012802000c010b2001104722043602042001410036020041000b2106027f034020042f015e2208410274210941002105417f21030240034020052009460440200821030c020b200420056a2107200341016a2103200541046a21050240417f200741046a280200220720024720022007491b41ff01710e020001020b0b2000410c6a2003360200200041086a2004360200200041106a210541010c020b20060440200641016b2106200420034102746a41e0006a28020021040c010b0b200041106a20033602002000410c6a2004360200200041086a4100360200200041146a21052002210641000b21032000200636020420052001360200200020033602000b860801117f230041306b220224002000280200210e200241186a2000410c6a280200360200200220002902043703100240027f024002400240200228021422042f015e410b4f0440200241206a2002280218104c200241286a28020021072002280224210f2002280220210a200228021021031047210820042f015e2209200a6b220520094b0d05200541016b220b20054b0d052008200b3b015e200a41016a2206200a490d05200920066b220520094b200b410c4f722005200b47720d052004200a4102746a220541306a2802002110200541046a2802002109200841046a200420064102746a41046a200b41027422051091011a200841306a200420064102746a41306a20051091011a2004200a3b015e20022007360228200220082004200f1b36022441002106200241002003200f1b360220200241206a200e2001104d2112034020042802002207450d02200341016a22052003490d06200220042f015c22033602182002200736021420022005360210200541016b220120054b2001200647720d0620072f015e410b490d03200241206a2003104c2002280228210a2002280224210b2002280220210d20072f015e104e210c20072f015e2204200d6b220120044b0d06200141016b221120014b0d06200c20113b015e200d41016a2206200d490d06200420066b220120044b2011410c4f722001201147720d062007200d4102746a220141306a280200210e200141046a280200210f200c41046a200720064102746a220441046a201141027422011091011a200c41306a200441306a20011091011a2007200d3b015e41016a220120066b220320014b0d06200c2f015e2201410c4f2003200141016a47720d06200c41e0006a200441e0006a20034102741091011a200241086a200c2005104f200228020c21042002280208210620052103200721012002200a3602282002200b047f2006210320040520010b36022420022003360220200241206a20092010200810502005210320042108200e2110200f2109200721040c000b000b200241106a200e2001104d21120c020b200028021022042802042200450d0320042802002103104e22012000360260200341016a22002003490d03200220012000104f20022802002100200420022802042203360204200420003602002000200041016b2200492000200647720d0320032f015e2200410a4b0d032003200041016a22013b015e200320004102746a220041306a2010360200200041046a2009360200200320014102746a41e0006a2008360200200820013b015c200820033602002004280208220041016a22032000490d03200441086a0c020b200241106a20092010200810500b20002802102201280208220041016a22032000490d01200141086a0b2003360200200241306a240020120f0b000b880201097f027f20012802042203044020012802000c010b2001107c22033602042001410036020041000b2105200241206a2108027f034020032f01322209410674210a41002104417f2106024003402004200a460440200921060c020b2002200320046a220b41346a108e01220741ff01714504402008200b41d4006a108e0121070b200641016a2106200441406b21040240200741ff01710e020001020b0b41010c020b20050440200541016b2105200320064102746a41f4056a28020021030c010b0b200041146a200241c0001091011a4100210541000b21042000200536020420002004360200200041106a20013602002000410c6a2006360200200041086a20033602000b800b01117f230041e0026b22022400200241206a200041086a28020036020020022000290200370318200041106a21080240027f02400240027f0240200228021c22042f0132410b4f0440200241e0016a2002280220104c200241e8016a280200210720022802e401210c20022802e001210520022802182103107c210920042f0132220a20056b2206200a4b0d062006200641016b2206490d06200920063b0132200420054106746a220b41346a280000210d200241e0016a200b41386a413c1091011a200541016a220b2005490d06200a200a200b6b220a492006410c4f722006200a47720d06200420054102746a41046a280200210a200941346a2004200b4106746a41346a20064106741091011a200941046a2004200b4102746a41046a20064102741091011a200420053b0132200241a0026a200241e0016a413c1091011a20022007360260200220092004200c1b36025c41002107200241002003200c1b360258200241e0016a200841c0001091011a200241d8006a200241e0016a2001107d210c200241a4016a200241a0026a413c1091011a200241186a200241a4016a413c1091011a200241e0016a410472210e0340200428020022050440200341016a22062003490d08200220042f013022013602a0012002200536029c012002200636029801200641016b220320064b2003200747720d0820052f0132410b490d03200241e0016a2001104c20022802e801210f20022802e401211020022802e001210120052f0132107e210320052f0132220820016b220420084b0d082004200441016b2204490d08200320043b0132200520014106746a220741346a280000210b200241e0016a200741386a413c1091011a200141016a22072001490d082008200820076b2208492004410c4f722004200847720d08200520014102746a41046a2802002108200341346a200520074106746a41346a20044106741091011a200341046a200520074102746a221241046a20044102741091011a200520013b0132200241a0026a200241e0016a413c1091011a41016a220420076b220120044b0d0820032f01322204410c4f2001200441016a47720d08200341f4056a201241f4056a20014102741091011a200241106a20032006107f2002280214210420022802102107200241a4016a200241a0026a413c1091011a20062103200521012002200f3602a80220022010047f2007210320040520010b3602a402200220033602a0022002200d3602e001200e200241186a413c1091011a200241a0026a200241e0016a200a2009108001200241d8006a200241a4016a413c1091011a200241186a200241d8006a413c1091011a20062103200b210d200421092008210a200521040c010b0b200241a0026a200241186a413c1091011a41010c020b200241e0016a200841c0001091011a200241186a200241e0016a2001107d210c200028020c21000c020b2002200d3602e001200e200241186a413c1091011a20024198016a200241e0016a200a20091080012001210d41000b200028020c21000d010b2000280208220141016a22032001490d02200041086a0c010b20002802042203450d0120002802002101107e220520033602f4052001200141016a22014b0d01200241086a20052001107f200228020821032000200228020c220136020420002003360200200241e0016a200241a0026a413c1091011a2003200341016b2203492003200747720d0120012f01322203410a4b0d012001200341016a22053b0132200120034106746a220641346a200d360000200641386a200241e0016a413c1091011a200120054102746a41f4056a2009360200200120034102746a41046a200a360200200920053b0130200920013602002000280208220141016a22032001490d01200041086a0b2003360200200241e0026a2400200c0f0b000b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000b2201017f41e000410410732200450440000b200041003b015e2000410036020020000b900201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e800370310200320013602082003200236020c200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002280200200341d0006a106a200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000b3701017f230041106b220224002002200128020436020c200020012802002002410c6a10072001200228020c10191039200241106a24000b4801017f027f4101200128020422024104490d001a2001200241046b36020420012001280200220141046a3602002001280000210241000b210120002002360204200020013602000b11002000200110732200044020000f0b000b5b01027f41042102024020014105490d002001210202400240200141056b0e020200010b4100210141012103410521020c010b200141076b210141012103410621020b2000200336020420002002360200200041086a20013602000b4101027f2000280204220341046a20032f015e41016a2204200028020822002001107b200341306a2201200420002002107b200320043b015e200120004102746a0b2201017f419001410410732200450440000b200041003b015e2000410036020020000b860101037f230041206b2203240020012f015e2104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a41e0006a280200220520043b015c200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000bfc0101067f2000280204220441046a20042f015e220541016a2208200028020822062001107b200441306a200820062002107b0240200641016a22022006490d00200241016a22092002490d00200441e0006a2107200541026a220120094b0440200120026b220520014b0d012005200541016b2205490d01200720094102746a200720024102746a20054102741092010b200720024102746a2003360200200420083b015e20012002200120024b1b2103200420064102746a41e4006a2101200028020021000340200220034704402000450d022001280200220620023b015c20062004360200200141046a2101200241016a21020c010b0b0f0b000b8d0101047f230041106b22022400200028020421052000419c8404360204200041086a220328020021042003410036020002402000280200220320044d0440200241003602082002200420036b3602042002200320056a360200200120021053200320022802086a220120034f0d010b000b200020043602082000200536020420002001360200200241106a24000b100020002802002000280208200110380b0a0020012000412010370b900702087f057e230041c0016b22022400200241106a200041286a200110420240027f20022802104101470440024020002903004201520440410221010c010b200041206a290300210d200041186a290300210a200041106a290300210b20022000290308220c2001ad7c220e3703282002200b200c200e56ad7c220c3703302002200a200b200c56ad7c220b3703382002200d200a200b56ad7c37034020024180800136024c200241d4840436024841002100024002400240200241286a200241c8006a10490e0400060601060b20022002290348370370200241086a200241f0006a103a4101210020022d00084101710d00027f0240024020022d00090e020001030b20024198016a200241f0006a10742002280298014101460d02200228029c01210341002101200241a0016a2802000c010b2002200241f0006a104a20022802000d012002280204210320024198016a200241f0006a101f4101210120022d0098014101460d0120024188016a200241ad016a290000220a370300200241d8006a200241a5016a290000370300200241e0006a200a370300200241e8006a200241b5016a2800003602002002200229009d013703502002280099010b2106200241b0016a200241e8006a280200360200200241a8016a200241e0006a290300370300200241a0016a200241d8006a2903003703002002200229035037039801410021000c010b410221010b20000d0320024190016a2207200241b0016a220028020036020020024188016a2208200241a8016a220429030037030020024180016a2209200241a0016a220529030037030020022002290398013703782001410247044020002007280200360200200420082903003703002005200929030037030020022002290378370398010b200241d8006a2005290300370300200241e0006a2004290300370300200241e8006a200028020036020020022002290398013703500b200241a8016a200241106a410472220041106a280200360200200241a0016a200041086a2902003703002002200029020037039801412c4104104b220020063602082000200336020420002001360200200041013a00282000200229035037020c200041146a200241d8006a2903003702002000411c6a200241e0006a290300370200200041246a200241e8006a28020036020020024198016a200010432802000c010b200241186a2802002002411c6a2802004102746a41306a2802000b200241c0016a24000f0b000b3801017f200228020021032000200141281091012001200241281091012101280200410246410020034102461b450440200141003a00280b0b2101017f2000200110542200280200410247047f200041003a002820000541000b0bb702010a7f027f20012802042204044020012802000c010b200110820122043602042001410036020041000b2107200241046a210920022802002108027f034020042f01be03220a41246c210b41002105417f2106024003402005200b460440200a21060c020b417f2008200420056a220c41046a280200220347200320084b1b22034504402009200c41086a108e0121030b200641016a2106200541246a21050240200341ff01710e020001020b0b200020073602042000410c6a2006360200200041086a200436020041012103200041106a0c020b20070440200741016b2107200420064102746a41c0036a28020021040c010b0b200041046a200241241091011a200041306a20063602002000412c6a200436020041002103200041286a4100360200200041346a0b2000200336020020013602000bad0f021d7f047e230041d0016b22022400200241206a2000412c6a280200360200200220002902243703180240027f02400240027f0240200228021c22042f01be03410b4f044020024188016a2002280220104c20024190016a2802002107200228028c01210c200228028801210520022802182103108201210920042f01be03220a20056b2206200a4b0d062006200641016b2206490d06200920063b01be0320024190016a2004200541246c6a220b41106a29020037030020024198016a200b41186a290200370300200241a0016a200b41206a2902003703002002200b41086a29020037038801200541016a22082005490d06200a200a20086b220a492006410c4f722006200a47720d06200420054102746a4190036a280200210a200b41046a280200210b200941046a2004200841246c6a41046a200641246c1091011a20094190036a200420084102746a4190036a20064102741091011a200420053b01be03200241b8016a220e20024190016a2211290300370300200241c0016a220f20024198016a2212290300370300200241c8016a2210200241a0016a221329030037030020022002290388013703b00120022007360240200220092004200c1b36023c41002107200241002003200c1b36023820024188016a200041241091011a200241386a20024188016a2001108301211420024180016a22152010290300221f370300200241f8006a2216200f2903002220370300200241f0006a2217200e2903002221370300200220022903b0012222370368200241306a2218201f370300200241286a22192020370300200241206a221a20213703002002202237031820024188016a410472210d0340200428020022050440200341016a22062003490d08200220042f01bc0322013602602002200536025c20022006360258200641016b220320064b2003200747720d0820052f01be03410b490d0320024188016a2001104c200228029001211b200228028c01211c200228028801210120052f01be03108401210320052f01be03220820016b220420084b0d082004200441016b2204490d08200320043b01be0320112005200141246c6a220c41106a2902003703002012200c41186a2902003703002013200c41206a2902003703002002200c41086a29020037038801200141016a22072001490d082008200820076b2208492004410c4f722004200847720d08200520014102746a4190036a2802002108200c41046a280200210c200341046a2005200741246c6a41046a200441246c1091011a20034190036a200520074102746a221e4190036a20044102741091011a200520013b01be03200e2011290300370300200f20122903003703002010201329030037030020022002290388013703b00141016a220420076b220120044b0d0820032f01be032204410c4f2001200441016a47720d08200341c0036a201e41c0036a20014102741091011a200241106a200320061085012017200e2903003703002016200f29030037030020152010290300370300200220022903b001370368200228021421042002280210210720062103200521012002201b3602b8012002201c047f2007210320040520010b3602b401200220033602b001200d2002290318370200200d41086a201a290300370200200d41106a2019290300370200200d41186a20182903003702002002200b36028801200241b0016a20024188016a200a2009108601200241d0006a2015290300221f370300200241c8006a20162903002220370300200241406b20172903002221370300201a2021370300201920203703002018201f37030020022002290368221f3703382002201f37031820062103200c210b200421092008210a200521040c010b0b200241c8016a200241306a290300370300200241c0016a200241286a290300370300200241b8016a200241206a290300370300200220022903183703b00141010c020b20024188016a200041241091011a200241186a20024188016a20011083012114200028023021000c020b200d2002290318370200200d41086a200241206a290300370200200d41106a200241286a290300370200200d41186a200241306a2903003702002002200b36028801200241d8006a20024188016a200a20091086012001210b41000b200028023021000d010b2000280208220141016a22032001490d02200041086a0c010b20002802042203450d0120002802002101108401220520033602c0032001200141016a22014b0d01200241086a20052001108501200228020821032000200228020c220136020420002003360200200241a0016a200241c8016a29030037030020024198016a200241c0016a29030037030020024190016a200241b8016a290300370300200220022903b001370388012003200341016b2203492003200747720d0120012f01be032205410a4b0d012001200541246c6a220341046a200b3602002001200541016a22063b01be03200341106a20024190016a290300370200200341186a20024198016a290300370200200341206a200241a0016a290300370200200341086a200229038801370200200120054102746a4190036a200a360200200120064102746a41c0036a2009360200200920063b01bc03200920013602002000280208220141016a22032001490d01200041086a0b2003360200200241d0016a240020140f0b000bac0702087f057e230041b0016b22022400200241086a200041286a200110420240027f200228020841014704404102210320002903004201510440200041206a290300210d200041186a290300210c200041106a290300210a20022000290308220b2001ad7c220e3703382002200a200b200e56ad7c220b3703402002200c200a200b56ad7c220a3703482002200d200a200c54ad7c370350200241808001360264200241d4840436026041002100024002400240200241386a200241e0006a10490e0400060601060b200220022903603703202002200241206a103a4101210020022d00004101710d00027f0240024020022d00010e020001030b20024188016a200241206a10742002280288014101460d02200228028c0121044100210320024190016a2802000c010b20024188016a200241206a101f4101210320022d0088014101460d0120024186016a20022d008b013a0000200241f0006a2002419c016a290200370300200241f5006a200241a1016a290000370000200220022f0089013b018401200220024194016a290200370368200228028c01210420024190016a2802000b2105200241de006a20024186016a2d00003a000020024190016a200241f0006a29030037030020024198016a200241f8006a290300370300200220022f0184013b015c2002200229036837038801410021000c010b410221030b20000d03200241e2006a2206200241de006a22072d00003a0000200241f0006a220820024190016a2200290300370300200241f8006a220920024198016a2201290300370300200220022f015c3b016020022002290388013703682003410247044020024186016a20062d00003a00002000200829030037030020012009290300370300200220022f01603b01840120022002290368370388010b200720024186016a2d00003a0000200241286a2000290300370300200241306a2001290300370300200220022f0184013b015c20022002290388013703200b20024198016a200241086a410472220041106a28020036020020024190016a200041086a290200370300200220002902003703880141284104104b220020033a00002000200536000820002004360004200041013a0024200020022f015c3b0001200041036a200241de006a2d00003a00002000200229032037000c200041146a200241286a2903003700002000411c6a200241306a29030037000020024188016a200010432802000c010b200241106a280200200241146a2802004102746a41306a2802000b200241b0016a24000f0b000b3801017f20022d0000210320002001412410910120012002412410910121012d0000410246410020034102461b450440200141003a00240b0b2101017f20002001105922002d0000410247047f200041003a002420000541000b0b9a0201077f027f20012802042203044020012802000c010b200110880122033602042001410036020041000b2105027f034020032f01322207410574210841002104417f21060240034020042008460440200721060c020b200641016a2106200320046a2109200441206a210402402002200941346a108e0141ff01710e020001020b0b41010c020b20050440200541016b2105200320064102746a4194036a28020021030c010b0b200041146a20022900003700002000412c6a200241186a290000370000200041246a200241106a2900003700002000411c6a200241086a2900003700004100210541000b21042000200536020420002004360200200041106a20013602002000410c6a2006360200200041086a20033602000bf20f021e7f037e230041c0016b22022400200241186a200041086a28020036020020022000290200370310200041106a21080240027f02400240027f0240200228021422052f0132410b4f044020024180016a2002280218104c20024188016a28020021062002280284012104200228028001210c20022802102103108801210920052f01322211200c6b220a20114b0d06200a41016b220e200a4b0d062009200e3b013220024188016a2005200c4105746a220741406b29000037030020024190016a200741c8006a29000037030020024198016a200741d0006a2800003602002002200741386a29000037038001200c41016a220b200c490d062011200b6b220a20114b200e410c4f72200a200e47720d062005200c4102746a41046a2802002113200741346a280000210a200941346a2005200b4105746a41346a200e4105741091011a200941046a2005200b4102746a41046a200e4102741091011a2005200c3b0132200241a8016a221420024188016a2215290300370300200241b0016a221620024190016a2217290300370300200241b8016a221820024198016a221928020036020020022002290380013703a0012002200636023820022009200520041b3602344100210720024100200320041b3602302019200841186a2900003703002017200841106a2900003703002015200841086a2900003703002002200829000037038001200241306a20024180016a2001108901211a200241f8006a221b20182802002201360200200241f0006a221c20162903002222370300200241e8006a221d20142903002221370300200220022903a0012220370360200241286a221e2001360200200241206a221f2022370300200241186a220820213703002002202037031020024180016a410472210d0340200528020022040440200341016a22062003490d08200220052f013022013602582002200436025420022006360250200641016b220320064b2003200747720d0820042f0132410b490d0320024180016a2001104c200228028801210c200228028401200228028001210f20042f0132108a01211020042f01322203200f6b220120034b0d08200141016b221220014b0d08201020123b013220152004200f4105746a220b41406b2900003703002017200b41c8006a2900003703002019200b41d0006a2800003602002002200b41386a29000037038001200f41016a2207200f490d08200320076b220120034b2012410c4f722001201247720d082004200f4102746a41046a2802002111200b41346a280000210b201041346a200420074105746a41346a20124105741091011a201041046a200420074102746a220341046a20124102741091011a2004200f3b013220142015290300370300201620172903003703002018201928020036020020022002290380013703a00141016a220120076b220520014b0d0820102f01322201410c4f2005200141016a47720d0820104194036a20034194036a20054102741091011a200241086a20102006108b01201d2014290300370300201c2016290300370300201b2018280200360200200220022903a001370360200228020c2101200228020821072006210320042105044020012105200721030b2002200c3602a801200220053602a401200220033602a001200d2002290310370200200d41086a2008290300370200200d41106a201f290300370200200d41186a201e2802003602002002200a36028001200241a0016a20024180016a20132009108c01200241c8006a201b2802002203360200200241406b201c2903002221370300200241386a201d290300222037030020082020370300201f2021370300201e20033602002002200229036022203703302002202037031020062103200b210a2001210920112113200421050c010b0b200241b8016a200241286a280200360200200241b0016a200241206a290300370300200241a8016a200241186a290300370300200220022903103703a00141010c020b20024198016a200841186a29000037030020024190016a200841106a29000037030020024188016a200841086a2900003703002002200829000037038001200241106a20024180016a2001108901211a200028020c21040c020b200d2002290310370200200d41086a200241186a290300370200200d41106a200241206a290300370200200d41186a200241286a2802003602002002200a36028001200241d0006a20024180016a20132009108c012001210a41000b200028020c21040d010b2004280208220041016a22032000490d02200441086a0c010b20042802042200450d0120042802002103108a012201200036029403200341016a22002003490d01200220012000108b01200228020021002004200228020422063602042004200036020020024198016a200241b8016a28020036020020024190016a200241b0016a29030037030020024188016a200241a8016a290300370300200220022903a001370380012000200041016b2200492000200747720d0120062f01322201410a4b0d01200620014105746a220341346a200a3600002006200141016a22003b0132200341386a200229038001370000200341406b20024188016a290300370000200341c8006a20024190016a290300370000200341d0006a20024198016a280200360000200620014102746a41046a2013360200200620004102746a4194036a2009360200200920003b0130200920063602002004280208220041016a22032000490d01200441086a0b2003360200200241c0016a2400201a0f0b000b7901017f230041106b22022400024020002802002200413f4d04402001200041027410460c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210370c010b200041ffffffff034d044020004102744102722001106a0c010b20014103104620002001106a0b200241106a24000b0b004100200020011009000b6502017f017e230041206b22032400200129020421042003410036021820032004370310200320022d00003a001f200341106a2003411f6a4101103720012003290310370204200341086a20012003280218101520002003290308370300200341206a24000b08002000420110780bef0101037f230041306b22022400200110792103200241808001360224200241d48404360220024002402003200241206a10490d0020022002290320370328200241186a200241286a104a20022802180d00200228021c2103200241106a200241286a104a20022802100d0020022802142104200241086a200241286a104a2002280208450d010b000b200041306a200228020c3602002000412c6a2004360200200020033602282000420137030020002001290300370308200041106a200141086a290300370300200041186a200141106a290300370300200041206a200141186a290300370300200241306a24000b0c00200042808080801010780baf0102017f017e230041206b2202240002400240024002402001106541ff01710e020001030b2001420110781a200041003602000c010b200110612101200241808001360204200241d484043602000240024002402001200210490e0400040401040b20022002290300370318200241086a200241186a103b20022802082201450d03200229020c21030c010b410021010b2001450d0120002003370204200020013602000b200241206a24000f0b000b6301017f230041206b22012400200010612100200141808001360214200141d4840436021002402000200141106a104945044020012001290310370318200141086a200141186a101e20012d0008410171450d010b000b20012d0009200141206a24000b820101017f230041306b220224002001107920024100360210200242808001370224200241d484043602202000280228200241206a106a2000412c6a280200200241206a106a200041306a280200200241206a106a20022002290320370214200241086a200241106a200228022810152002280208200228020c1005200241306a24000b8a0101027f230041306b220224002002200028020022034100473a0020200241206a200110680240200304402001106120024100360210200242808001370224200241d484043602202000200241206a105220022002290320370214200241086a200241106a200228022810152002280208200228020c10050c010b2001420110781a0b200241306a24000b4e01017f230041206b2202240020011061200241186a41808001360200200241d4840436021420024100360210200241086a200241106a200010602002280208200228020c1005200241206a24000b8d0201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e8003703102003200236020c20032001360208200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002200341d0006a106d200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000b2601017f230041106b220224002002200036020c20012002410c6a41041037200241106a24000b5001027e20002002200129030022027c22033703002000200129030822042002200356ad7c22023703082000200129031022032002200454ad7c2202370310200020012903182002200354ad7c3703180b0e0020002002106a20012002106a0b140020002802002001106a200041046a200110130b8d0201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e8003703102003200236020c20032001360208200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002200341d0006a1070200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000ba20101027f230041306b2202240020002d00202103200041013a0020024020034101710d0020002903004201520440200110060c010b20024100360210200242808001370224200241d484043602202000290308200041106a290300200241206a1014200041186a280200200241206a106a20022002290320370214200241086a200241106a2002280228101520012002280208200228020c10050b200241306a24000b1100200020011013200041206a200110130b8d0201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e8003703102003200236020c20032001360208200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002200341d0006a1013200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000b4801027f230041106b22032400200341086a20024100103c200328020821042000200328020c360204200020043602002004200120021091011a20002002360208200341106a24000b08002000200110340b6201037f230041106b22022400200241086a2001104a41012103024020022802080d00200228020c210420022001104a20022802000d002002280204210120002004360204200041086a2001360200410021030b20002003360200200241106a24000b930101027f20002f01042103200041003a0004410121040240024020034101714504402000280200220028020422032002490d0220012000280200220120021091011a0c010b200120034108763a0000200028020022002802042203200241016b2202490d01200141016a2000280200220120021091011a0b2000200320026b3602042000200120026a360200410021040b20040b0a0020012000410b10370b0d0020012000280200412010370b6001027e200029032021022000200137032020002002200029030022017c22023703002000200029030822032001200256ad7c22013703082000200029031022022001200354ad7c2201370310200020002903182001200254ad7c37031820000b6001037e200029032021012000420137032020002001200029030022027c22013703002000200029030822032001200254ad7c22013703082000200029031022022001200354ad7c2201370310200020002903182001200254ad7c37031820000b5001037f024020012d00080d0020012802002203200128020422044b0d00200320044f044041012102200141013a00080c010b410121022001200341016a3602000b20002003360204200020023602000b5a01017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d01200020044102746a200020024102746a20014102741092010b200020024102746a20033602000f0b000b2201017f41f405410410732200450440000b200041003b01322000410036020020000b5c01037f230041406a220324002000280204220441346a20042f013241016a2205200028020822002003200141c0001091012201108101200441046a2203200520002002107b200420053b0132200141406b2400200320004102746a0b2201017f41a406410410732200450440000b200041003b01322000410036020020000b860101037f230041206b2203240020012f01322104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a41f4056a280200220520043b0130200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000b970201077f230041406a220724002000280204220441346a20042f0132220541016a2208200028020822062007200141c000109101220a108101200441046a200820062002107b0240200641016a22022006490d00200241016a22092002490d00200441f4056a2107200541026a220120094b0440200120026b220520014b0d012005200541016b2205490d01200720094102746a200720024102746a20054102741092010b200720024102746a2003360200200420083b013220012002200120024b1b2103200420064102746a41f8056a2101200028020021000340200220034704402000450d022001280200220620023b013020062004360200200141046a2101200241016a21020c010b0b200a41406b24000f0b000b5e01017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d01200020044106746a200020024106746a20014106741092010b200020024106746a200341c0001091011a0f0b000b2301017f41c003410410732200450440000b200041003b01be032000410036020020000b6b01037f230041306b2203240020002802082104200028020422002f01be032105200341086a200141241091011a200041046a200541016a22012004200341086a10870120004190036a2205200120042002107b200020013b01be03200341306a2400200520044102746a0b2301017f41f003410410732200450440000b200041003b01be032000410036020020000b880101037f230041206b2203240020012f01be032104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a41c0036a280200220520043b01bc03200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000ba50201077f230041306b2207240020002802082104200028020422062f01be032105200741086a200141241091011a200641046a200541016a22092004200741086a10870120064190036a200920042002107b0240200441016a22022004490d00200241016a220a2002490d00200641c0036a2108200541026a2201200a4b0440200120026b220520014b0d012005200541016b2205490d012008200a4102746a200820024102746a20054102741092010b200820024102746a2003360200200620093b01be0320012002200120024b1b2103200620044102746a41c4036a2101200028020021000340200220034704402000450d022001280200220420023b01bc0320042006360200200141046a2101200241016a21020c010b0b200741306a24000f0b000b5d01017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d012000200441246c6a2000200241246c6a200141246c1092010b2000200241246c6a200341241091011a0f0b000b2201017f419403410410732200450440000b200041003b01322000410036020020000b920101037f230041206b2203240020002802082104200028020422002f01322105200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a29000037030020032001290000370300200041346a200541016a220120042003108d01200041046a2205200120042002107b200020013b0132200341206a2400200520044102746a0b2201017f41c403410410732200450440000b200041003b01322000410036020020000b860101037f230041206b2203240020012f01322104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a4194036a280200220520043b0130200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000bcb0201077f230041206b2206240020002802082104200028020422072f01322105200641186a200141186a290000370300200641106a200141106a290000370300200641086a200141086a29000037030020062001290000370300200741346a200541016a220920042006108d01200741046a200920042002107b0240200441016a22012004490d00200141016a220a2001490d0020074194036a2108200541026a2202200a4b0440200220016b220520024b0d012005200541016b2205490d012008200a4102746a200820014102746a20054102741092010b200820014102746a2003360200200720093b01322002200120012002491b2103200720044102746a4198036a2102200028020021000340200120034704402000450d022002280200220420013b013020042007360200200241046a2102200141016a21010c010b0b200641206a24000f0b000b8f0101017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d01200020044105746a200020024105746a20014105741092010b200020024105746a22002003290000370000200041186a200341186a290000370000200041106a200341106a290000370000200041086a200341086a2900003700000f0b000b1800417f41012000200110930122004100481b410020001b0bb40102017f027e230041306b22022400200241808001360224200241d484043602202000027e02400240024002402001200241206a10490e0400010102010b20022002290320370328200241086a200241286a101a20022802080d00200241186a2903002103200229031021042002200241286a104a2002280200450d020b000b42000c010b20022802042101200041106a200337030020002004370308200041186a200136020042010b370300200241306a24000b31000240200120024b200220044b720d002002200220016b2202490d00200020023602042000200120036a3602000f0b000be902010a7f02402002410f4d0440200021030c010b2000410020006b41037122046a210520012106200021030340200320054f450440200320062d00003a0000200641016a2106200341016a21030c010b0b0240200220046b220820024b0d002008417c7121070240200120046a22044103710440200520076a21092004417c71220241046a210141202004410374411871220a6b2203411871210b2003412071210c20022802002106200521030340200320094f0d02200c0d03200320012802002202200b742006200a7672360200200141046a2101200341046a2103200221060c000b000b200520076a210220042101200521030340200220034d0d0120032001280200360200200141046a2101200341046a21030c000b000b200820076b220220084b0d00200520076a2103200420076a21010c010b000b200220036a21020340200220034d450440200320012d00003a0000200141016a2101200341016a21030c010b0b20000be10501097f02400240024002402002200020016b4b0440200120026a2105200020026a21002002410f4d0d032000417c712106200120026a41016b21034100200041037122046b21070340200020064b0440200041016b220020032d00003a0000200341016b21030c010b0b200220046b220420024b0d012004417c7121020240200520076a22054103710440200620026b2108410020026b21072005417c71220041046b21014120200541037441187122096b2203411871210a2003412071210b20002802002103200621000340200020084d0d02200b0d04200041046b22002003200a742001280200220320097672360200200141046b21010c000b000b200620026b2103410020026b2107200120046a41046b2101200621000340200020034d0d01200041046b22002001280200360200200141046b21010c000b000b200420026b220220044b0d01200620076a2100200520076a21050c030b2002410f4d0d012000410020006b41037122046a210620012103034020002006490440200020032d00003a0000200341016a2103200041016a21000c010b0b200220046b220720024b0d002007417c7121050240200120046a22044103710440200520066a21082004417c71220041046a21014120200441037441187122096b2202411871210a2002412071210b20002802002103200621000340200020084f0d02200b0d03200020012802002202200a74200320097672360200200141046a2101200041046a2100200221030c000b000b200520066a210220042101200621000340200020024f0d0120002001280200360200200141046a2101200041046a21000c000b000b200720056b220220074b0d00200520066a2100200420056a21010c010b000b200020026a21020340200020024f0d02200020012d00003a0000200141016a2101200041016a21000c000b000b200541016b2101200020026b21020340200020024d0d01200041016b220020012d00003a0000200141016b21010c000b000b0b4301037f412021020340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b0b8c040300418080040b990350535032325374727563743a3a5472616e736665720000001c020100000000000000010050535032325374727563743a3a5472616e736665723a3a66726f6d50535032325374727563743a3a5472616e736665723a3a746f50535032325374727563743a3a417070726f76616c0000001c020100000000005800010050535032325374727563743a3a417070726f76616c3a3a6f776e657250535032325374727563743a3a417070726f76616c3a3a7370656e6465724572726f7220647572696e672063616c6c20746f20726563656976657241433a3a526f6c65526564756e64616e7441433a3a4d697373696e67526f6c6541433a3a496e76616c696443616c6c6572503a3a4e6f74506175736564503a3a50617573656401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041db83040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041a084040b290100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" + }, + "contract": { + "name": "psp22_minter_pauser", + "version": "0.1.0", + "authors": ["Oleksandr Mykhailenko "] + }, + "V1": { + "spec": { + "constructors": [ + { + "args": [ + { + "name": "total_supply", + "type": { + "displayName": ["Balance"], + "type": 0 + } + }, + { + "name": "name", + "type": { + "displayName": ["Option"], + "type": 19 + } + }, + { + "name": "symbol", + "type": { + "displayName": ["Option"], + "type": 19 + } + }, + { + "name": "decimal", + "type": { + "displayName": ["u8"], + "type": 6 + } + } + ], + "docs": [], + "name": ["new"], + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": ["Option"], + "type": 23 + } + }, + { + "docs": [], + "indexed": true, + "name": "to", + "type": { + "displayName": ["Option"], + "type": 23 + } + }, + { + "docs": [], + "indexed": false, + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [" Event emitted when a token transfer occurs."], + "name": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 4 + } + }, + { + "docs": [], + "indexed": true, + "name": "spender", + "type": { + "displayName": ["AccountId"], + "type": 4 + } + }, + { + "docs": [], + "indexed": false, + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + " Event emitted when an approval occurs that `spender` is allowed to withdraw", + " up to the amount of `value` tokens from `owner`." + ], + "name": "Approval" + } + ], + "messages": [ + { + "args": [], + "docs": [" Returns the token name."], + "mutates": false, + "name": ["PSP22Metadata", "token_name"], + "payable": false, + "returnType": { + "displayName": ["psp22metadata_external", "TokenNameOutput"], + "type": 19 + }, + "selector": "0x3d261bd4" + }, + { + "args": [], + "docs": [" Returns the token symbol."], + "mutates": false, + "name": ["PSP22Metadata", "token_symbol"], + "payable": false, + "returnType": { + "displayName": ["psp22metadata_external", "TokenSymbolOutput"], + "type": 19 + }, + "selector": "0x34205be5" + }, + { + "args": [], + "docs": [" Returns the token decimals."], + "mutates": false, + "name": ["PSP22Metadata", "token_decimals"], + "payable": false, + "returnType": { + "displayName": ["psp22metadata_external", "TokenDecimalsOutput"], + "type": 6 + }, + "selector": "0x7271b782" + }, + { + "args": [ + { + "name": "account", + "type": { + "displayName": ["psp22mintable_external", "MintInput1"], + "type": 4 + } + }, + { + "name": "amount", + "type": { + "displayName": ["psp22mintable_external", "MintInput2"], + "type": 0 + } + } + ], + "docs": [], + "mutates": true, + "name": ["PSP22Mintable", "mint"], + "payable": false, + "returnType": { + "displayName": ["psp22mintable_external", "MintOutput"], + "type": 20 + }, + "selector": "0xfc3c75d4" + }, + { + "args": [ + { + "name": "spender", + "type": { + "displayName": ["psp22_external", "DecreaseAllowanceInput1"], + "type": 4 + } + }, + { + "name": "delta_value", + "type": { + "displayName": ["psp22_external", "DecreaseAllowanceInput2"], + "type": 0 + } + } + ], + "docs": [ + " Atomically decreases the allowance granted to `spender` by the caller.", + "", + " An `Approval` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " by owner for `spender`.", + "", + " Returns `ZeroSenderAddress` error if sender's address is zero.", + "", + " Returns `ZeroRecipientAddress` error if recipient's address is zero." + ], + "mutates": true, + "name": ["PSP22", "decrease_allowance"], + "payable": false, + "returnType": { + "displayName": ["psp22_external", "DecreaseAllowanceOutput"], + "type": 20 + }, + "selector": "0xfecb57d5" + }, + { + "args": [ + { + "name": "to", + "type": { + "displayName": ["psp22_external", "TransferInput1"], + "type": 4 + } + }, + { + "name": "value", + "type": { + "displayName": ["psp22_external", "TransferInput2"], + "type": 0 + } + }, + { + "name": "data", + "type": { + "displayName": ["psp22_external", "TransferInput3"], + "type": 22 + } + } + ], + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`", + " with additional `data` in unspecified format.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account Balance.", + "", + " Returns `ZeroSenderAddress` error if sender's address is zero.", + "", + " Returns `ZeroRecipientAddress` error if recipient's address is zero." + ], + "mutates": true, + "name": ["PSP22", "transfer"], + "payable": false, + "returnType": { + "displayName": ["psp22_external", "TransferOutput"], + "type": 20 + }, + "selector": "0xdb20f9f5" + }, + { + "args": [ + { + "name": "spender", + "type": { + "displayName": ["psp22_external", "ApproveInput1"], + "type": 4 + } + }, + { + "name": "value", + "type": { + "displayName": ["psp22_external", "ApproveInput2"], + "type": 0 + } + } + ], + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with `value`.", + "", + " An `Approval` event is emitted.", + "", + " # Errors", + "", + " Returns `ZeroSenderAddress` error if sender's address is zero.", + "", + " Returns `ZeroRecipientAddress` error if recipient's address is zero." + ], + "mutates": true, + "name": ["PSP22", "approve"], + "payable": false, + "returnType": { + "displayName": ["psp22_external", "ApproveOutput"], + "type": 20 + }, + "selector": "0xb20f1bbd" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": ["psp22_external", "AllowanceInput1"], + "type": 4 + } + }, + { + "name": "spender", + "type": { + "displayName": ["psp22_external", "AllowanceInput2"], + "type": 4 + } + } + ], + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set `0`." + ], + "mutates": false, + "name": ["PSP22", "allowance"], + "payable": false, + "returnType": { + "displayName": ["psp22_external", "AllowanceOutput"], + "type": 0 + }, + "selector": "0x4d47d921" + }, + { + "args": [ + { + "name": "from", + "type": { + "displayName": ["psp22_external", "TransferFromInput1"], + "type": 4 + } + }, + { + "name": "to", + "type": { + "displayName": ["psp22_external", "TransferFromInput2"], + "type": 4 + } + }, + { + "name": "value", + "type": { + "displayName": ["psp22_external", "TransferFromInput3"], + "type": 0 + } + }, + { + "name": "data", + "type": { + "displayName": ["psp22_external", "TransferFromInput4"], + "type": 22 + } + } + ], + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`", + " with additional `data` in unspecified format.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` and `Approval` events are emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the the account Balance of `from`.", + "", + " Returns `ZeroSenderAddress` error if sender's address is zero.", + "", + " Returns `ZeroRecipientAddress` error if recipient's address is zero." + ], + "mutates": true, + "name": ["PSP22", "transfer_from"], + "payable": false, + "returnType": { + "displayName": ["psp22_external", "TransferFromOutput"], + "type": 20 + }, + "selector": "0x54b3c76e" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": ["psp22_external", "BalanceOfInput1"], + "type": 4 + } + } + ], + "docs": [ + " Returns the account Balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "mutates": false, + "name": ["PSP22", "balance_of"], + "payable": false, + "returnType": { + "displayName": ["psp22_external", "BalanceOfOutput"], + "type": 0 + }, + "selector": "0x6568382f" + }, + { + "args": [ + { + "name": "spender", + "type": { + "displayName": ["psp22_external", "IncreaseAllowanceInput1"], + "type": 4 + } + }, + { + "name": "delta_value", + "type": { + "displayName": ["psp22_external", "IncreaseAllowanceInput2"], + "type": 0 + } + } + ], + "docs": [ + " Atomically increases the allowance granted to `spender` by the caller.", + "", + " An `Approval` event is emitted.", + "", + " # Errors", + "", + " Returns `ZeroSenderAddress` error if sender's address is zero.", + "", + " Returns `ZeroRecipientAddress` error if recipient's address is zero." + ], + "mutates": true, + "name": ["PSP22", "increase_allowance"], + "payable": false, + "returnType": { + "displayName": ["psp22_external", "IncreaseAllowanceOutput"], + "type": 20 + }, + "selector": "0x96d6b57a" + }, + { + "args": [], + "docs": [" Returns the total token supply."], + "mutates": false, + "name": ["PSP22", "total_supply"], + "payable": false, + "returnType": { + "displayName": ["psp22_external", "TotalSupplyOutput"], + "type": 0 + }, + "selector": "0x162df8c2" + }, + { + "args": [], + "docs": [], + "mutates": true, + "name": ["pause"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 20 + }, + "selector": "0x81e0c604" + }, + { + "args": [], + "docs": [], + "mutates": true, + "name": ["unpause"], + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 20 + }, + "selector": "0x67616649" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "supply" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0300000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 8 + } + }, + "offset": "0x0200000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "balances" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0400000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "len": 4294967295, + "offset": "0x0500000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 8 + } + }, + "offset": "0x0400000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "allowances" + } + ] + } + }, + "name": "psp22" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0500000002000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0600000002000000000000000000000000000000000000000000000000000000", + "ty": 11 + } + }, + "name": null + } + ] + }, + "1": { + "fields": [] + } + } + } + }, + "name": "name" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x0600000002000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0700000002000000000000000000000000000000000000000000000000000000", + "ty": 11 + } + }, + "name": null + } + ] + }, + "1": { + "fields": [] + } + } + } + }, + "name": "symbol" + }, + { + "layout": { + "cell": { + "key": "0x0700000002000000000000000000000000000000000000000000000000000000", + "ty": 6 + } + }, + "name": "decimals" + } + ] + } + }, + "name": "psp22_metadata" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0800000002000000000000000000000000000000000000000000000000000000", + "ty": 12 + } + }, + "name": "paused" + } + ] + } + }, + "name": "pausable" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0900000002000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0a00000002000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0a00000003000000000000000000000000000000000000000000000000000000", + "ty": 13 + } + }, + "len": 4294967295, + "offset": "0x0b00000002000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0b00000003000000000000000000000000000000000000000000000000000000", + "ty": 14 + } + }, + "offset": "0x0a00000003000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "admin_roles" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0b00000003000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0c00000003000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0c00000004000000000000000000000000000000000000000000000000000000", + "ty": 15 + } + }, + "len": 4294967295, + "offset": "0x0d00000003000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0d00000004000000000000000000000000000000000000000000000000000000", + "ty": 17 + } + }, + "offset": "0x0c00000004000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "members" + } + ] + } + }, + "name": "access_control" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 2, + "typeName": "Index" + }, + { + "name": "len", + "type": 2, + "typeName": "u32" + }, + { + "name": "len_entries", + "type": 2, + "typeName": "u32" + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "Header"] + } + }, + { + "id": 2, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 3, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7, + "typeName": "VacantEntry" + } + ], + "index": 0, + "name": "Vacant" + }, + { + "fields": [ + { + "type": 4, + "typeName": "T" + } + ], + "index": 1, + "name": "Occupied" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 4 + } + ], + "path": ["ink_storage", "collections", "stash", "Entry"] + } + }, + { + "id": 4, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 5, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_env", "types", "AccountId"] + } + }, + { + "id": 5, + "type": { + "def": { + "array": { + "len": 32, + "type": 6 + } + } + } + }, + { + "id": 6, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 7, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 2, + "typeName": "Index" + }, + { + "name": "prev", + "type": 2, + "typeName": "Index" + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "VacantEntry"] + } + }, + { + "id": 8, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 0, + "typeName": "V" + }, + { + "name": "key_index", + "type": 2, + "typeName": "KeyIndex" + } + ] + } + }, + "params": [ + { + "name": "V", + "type": 0 + } + ], + "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] + } + }, + { + "id": 9, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7, + "typeName": "VacantEntry" + } + ], + "index": 0, + "name": "Vacant" + }, + { + "fields": [ + { + "type": 10, + "typeName": "T" + } + ], + "index": 1, + "name": "Occupied" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 10 + } + ], + "path": ["ink_storage", "collections", "stash", "Entry"] + } + }, + { + "id": 10, + "type": { + "def": { + "tuple": [4, 4] + } + } + }, + { + "id": 11, + "type": { + "def": { + "primitive": "str" + } + } + }, + { + "id": 12, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 13, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7, + "typeName": "VacantEntry" + } + ], + "index": 0, + "name": "Vacant" + }, + { + "fields": [ + { + "type": 2, + "typeName": "T" + } + ], + "index": 1, + "name": "Occupied" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + } + ], + "path": ["ink_storage", "collections", "stash", "Entry"] + } + }, + { + "id": 14, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 2, + "typeName": "V" + }, + { + "name": "key_index", + "type": 2, + "typeName": "KeyIndex" + } + ] + } + }, + "params": [ + { + "name": "V", + "type": 2 + } + ], + "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] + } + }, + { + "id": 15, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7, + "typeName": "VacantEntry" + } + ], + "index": 0, + "name": "Vacant" + }, + { + "fields": [ + { + "type": 16, + "typeName": "T" + } + ], + "index": 1, + "name": "Occupied" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 16 + } + ], + "path": ["ink_storage", "collections", "stash", "Entry"] + } + }, + { + "id": 16, + "type": { + "def": { + "tuple": [2, 4] + } + } + }, + { + "id": 17, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 18, + "typeName": "V" + }, + { + "name": "key_index", + "type": 2, + "typeName": "KeyIndex" + } + ] + } + }, + "params": [ + { + "name": "V", + "type": 18 + } + ], + "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] + } + }, + { + "id": 18, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 11 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 11 + } + ], + "path": ["Option"] + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 18 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 21 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 18 + }, + { + "name": "E", + "type": 21 + } + ], + "path": ["Result"] + } + }, + { + "id": 21, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 11, + "typeName": "String" + } + ], + "index": 0, + "name": "Custom" + }, + { + "index": 1, + "name": "InsufficientBalance" + }, + { + "index": 2, + "name": "InsufficientAllowance" + }, + { + "index": 3, + "name": "ZeroRecipientAddress" + }, + { + "index": 4, + "name": "ZeroSenderAddress" + }, + { + "fields": [ + { + "type": 11, + "typeName": "String" + } + ], + "index": 5, + "name": "SafeTransferCheckFailed" + } + ] + } + }, + "path": ["contracts", "traits", "errors", "psp22", "PSP22Error"] + } + }, + { + "id": 22, + "type": { + "def": { + "sequence": { + "type": 6 + } + } + } + }, + { + "id": 23, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 4 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 4 + } + ], + "path": ["Option"] + } + } + ] + } +} diff --git a/.api-contract/src/test/contracts/ink/v2/erc20.contract.json b/.api-contract/src/test/contracts/ink/v2/erc20.contract.json new file mode 100644 index 00000000..507ef147 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v2/erc20.contract.json @@ -0,0 +1,548 @@ +{ + "source": { + "hash": "0x64d9597e882480b2e2e593eccc313cdb3cdd2aece25e6f10bae98f3efb4cdea0", + "language": "ink! 3.0.0-rc6", + "compiler": "rustc 1.58.0-nightly", + "wasm": "0x0061736d01000000016d1060037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060047f7f7f7f0060017f0060057f7f7f7f7f0060000060017f017e60067f7f7f7f7f7f0060037e7e7f0060017f017f60047f7f7f7f017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f60057f7f7f7e7e017f028a020b057365616c30127365616c5f64656275675f6d6573736167650001057365616c30127365616c5f636c6561725f73746f726167650005057365616c30127365616c5f6465706f7369745f6576656e740004057365616c30107365616c5f7365745f73746f726167650003057365616c30107365616c5f6765745f73746f726167650000057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e0003057365616c30147365616c5f686173685f626c616b65325f3235360003057365616c300b7365616c5f63616c6c65720002057365616c30167365616c5f76616c75655f7472616e73666572726564000203656e76066d656d6f7279020102100365640004020203030302040302020201010204040303020402060504020202020a0305030100080203050302050201030502030205070507040f0303060100000301020107020101080d010c04000309020b04010103030001010006060601010e0101010101040501700118180608017f01418080040b071102066465706c6f79003d0463616c6c003f091d010041010b171718694f2c5b5c6d4e60676a6b4f2a2a47494b2a6c2a500ab1a40164c40201087f2002410f4d047f2000052000410020006b41037122056a210620012104200021030340200320064f450440200320042d00003a0000200441016a2104200341016a21030c010b0b200220056b2202417c7121070240200120056a22054103710440200620076a21082005417c71220341046a2101200541037422044118712109410020046b411871210a20032802002104200621030340200320084f0d022003200420097620012802002204200a7472360200200141046a2101200341046a21030c000b000b200620076a210420052101200621030340200320044f0d0120032001280200360200200141046a2101200341046a21030c000b000b20024103712102200520076a2101200620076a0b2103200220036a21020340200220034d450440200320012d00003a0000200141016a2101200341016a21030c010b0b20000bf00101037f230041e0006b22042400200441186a20033602002004200236021420042001360210200441386a22014200370300200441306a22054200370300200441286a220642003703002004420037032020044100360240200442808001370254200441b6b304360250200441106a200441d0006a100c2002200441d0006a100d2003200441d0006a100d20042004290350370244200441086a200441406b2004280258100e2004280208200428020c200441206a1007200041186a2001290300370000200041106a2005290300370000200041086a200629030037000020002004290320370000200441e0006a24000b0d0020012000280200412010290b0a0020012000412010290b5e01027f200141086a220328020021042003410036020020012802042103200141ccb004360204200220044b044041e7a904412341fcaa041030000b2001200420026b3602082001200220036a36020420002002360204200020033602000bd70101037f230041d0006b220324002003200236020c20032001360208200341286a22014200370300200341206a22044200370300200341186a220542003703002003420037031020034100360230200342808001370244200341b6b304360240200341086a200341406b100c2002200341406b100d200320032903403702342003200341306a2003280248100e20032802002003280204200341106a1007200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290310370000200341d0006a24000b2201017f230041206b22032400200320002001100f200220031011200341206a24000b4c01017f230041206b22022400200241186a41808001360200200241b6b30436021420024100360210200241086a200241106a2000101320012002280208200228020c1003200241206a24000b2401017f230041206b220424002004200020012002100b200320041011200441206a24000b6102017f017e230041206b220324002001290204210420034100360218200320043703102002290300200241086a290300200341106a102820012003290310370204200341086a20012003280218100e20002003290308370300200341206a24000bcc0102027f057e230041306b220224000240200029030022084202510d0020012900182104200129001021052001290008210620012900002107200041186a22012d0000200141013a00004101710d0020084201520440200241286a2004370300200241206a2005370300200241186a20063703002002200737031020024201370308200241106a10010c010b200241286a2004370300200241206a2005370300200241186a20063703002002200737031020024201370308200041086a200241106a10110b200241306a24000bc70102017f027e230041e0006b220224002002200136020c200241106a2001101620022d00104101460440200220022d00113a0037200241cc006a4102360200200241dc006a41013602002002420237023c200241a48204360238200241023602542002200241d0006a3602482002200241376a36025820022002410c6a360250200241386a41f482041019000b200241186a2903002103200241206a2903002104200041106a200241286a2903003703002000200437030820002003370300200241e0006a24000be40102017f027e230041406a22022400200241808001360224200241b6b30436022002400240024002402001200241206a10360e0402010100010b200041003a0000200041086a42003703000c020b2002413c6a4100360200200241ccb0043602382002420137022c200241a8b104360228200241286a41f0b1041019000b20022002290320370328200241086a200241286a10272002290308a70440200041013b01000c010b200241186a290300210320022903102104200041003a0000200041106a2004370300200041086a4201370300200041186a20033703000b200241406b24000bd90401017f230041106b22022400024002400240024002400240024002400240024002400240024020002d000041016b0e0b0102030405060708090a0b000b4101210020012802184194ae0441062001411c6a28020028020c1100000d0b024020012d0000410471450440200128021841b08c044101200128021c28020c1100000d0d200128021841f4b2044105200128021c28020c110000450d010c0d0b200128021841ae8c044102200128021c28020c1100000d0c200241013a000f200241086a2002410f6a36020020022001290218370300200241f4b204410510620d0c200241ac8c04410210620d0c0b200128021841b18c044101200128021c28020c11000021000c0b0b20012802184187ae04410d2001411c6a28020028020c11000021000c0a0b200128021841f9ad04410e2001411c6a28020028020c11000021000c090b200128021841eead04410b2001411c6a28020028020c11000021000c080b200128021841d5ad0441192001411c6a28020028020c11000021000c070b200128021841c7ad04410e2001411c6a28020028020c11000021000c060b200128021841b3ad0441142001411c6a28020028020c11000021000c050b200128021841a7ad04410c2001411c6a28020028020c11000021000c040b2001280218419cad04410b2001411c6a28020028020c11000021000c030b20012802184195ad0441072001411c6a28020028020c11000021000c020b20012802184186ad04410f2001411c6a28020028020c11000021000c010b200128021841f4ac0441122001411c6a28020028020c11000021000b200241106a240020000b810201047f230041406a220224002000280200210441002100200241346a4100360200200241ccb00436023020024201370224200241a0af04360220027f4101200141186a28020022052001411c6a2802002201200241206a105f0d001a024003402002410436021c20024104360214200241ccaf043602102002410436020c200241acaf043602082002410336023c200241033602342002410336022c200241033602242002200020046a22033602202002200341036a3602382002200341026a3602302002200341016a3602282002200241206a36021820052001200241086a105f0d01200041046a22004120470d000b41000c010b41010b200241406b24000be70301077f230041106b220224002002200136020c200220003602082002419c8a04360204200241ccb004360200230041406a220324002003200236020c200341346a41013602002003420237022420034190ab043602202003410836023c2003200341386a36023020032003410c6a360238200341106a210641002101230041206b22042400200341206a220528020021072005280204220841037422000440200741046a21020340200228020020016a2101200241086a2102200041086b22000d000b0b024002400240024002400240200541146a280200450440200121000c010b02402008450d0020072802040d004100210220014110490d020b41002102200120016a22002001490d010b200022024100480d010b20042002104d20042802002200450d0120042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a10450d02200441206a24000c030b104c000b000b419887044133200441086a41f4850441b888041044000b2003280210210020032802182101024041b4b3042d000045044041b5b3042d00004101710d010b200020011000410947044041b4b30441013a00000b41b5b30441013a00000b000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101b20042902142105200441003602282004200537032020012002200441206a101c2003200441206a100d20042004290320370214200441086a200441106a2004280228100e200441206a2004280208200428020c101d2000200441206a101e200441406b24000b3300200120034b0440200120034194ac04102b000b20004100360200200041086a200320016b3602002000200120026a3602040b100020012002102420022000200110290bb50101077f230041206b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341186a22074200370300200341106a22084200370300200341086a22094200370300200342003703002001200220031007200420072903003700002005200829030037000020062009290300370000200020032903003700000c010b20002002200120024184830410210b200341206a24000b5f01037f230041206b22022400200241086a20002802042203200041086a28020020002802002204102320024100360218200220022903083703102001200241106a100d200020033602042000200420022802186a360200200241206a24000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101b20042902142105200441003602282004200537032020012002200441206a101c2003200441206a102020042004290320370214200441086a200441106a2004280228100e200441206a2004280208200428020c101d2000200441206a101e200441406b24000b230020002d000041014704402001410010330f0b200141011033200041016a2001100d0b7b0020012003460440200020022001100a1a0f0b230041306b2200240020002003360204200020013602002000411c6a41023602002000412c6a41043602002000420337020c200041ec9104360208200041043602242000200041206a360218200020003602282000200041046a360220200041086a20041019000b5f01037f230041206b22012400200141086a20002802042202200041086a28020020002802002203102320014100360218200120012903083703104103200141106a1024200020023602042000200320012802186a360200200141206a24000b2900200220034904402003200241a48304102b000b2000200220036b3602042000200120036a3602000b7401017f230041106b2202240002402000413f4d04402001200041027410330c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210290c010b200041ffffffff034d044020004102744102722001103b0c010b20014103103320002001103b0b200241106a24000bae0102017f027e230041406a22022400200241186a200110260240024020022d001841014704402002200110272002290300a7450d010b200042013703000c010b200241106a2903002103200229030821042000200229001937000820004200370300200041286a2004370300200041306a2003370300200041206a200241316a290000370000200041186a200241296a290000370000200041106a200241216a2900003700000b200241406b24000bb50202037f017e230041306b22022400200241086a41047221042000027f0240034020022001102f20022d00004101710d01200320046a20022d00013a0000200341016a22034120470d000b200041086a200241136a2f00003b00002000410a6a200241156a2d00003a00002000410f6a2002411a6a2f01003b0000200041116a2002411c6a2d00003a0000200041166a200241216a2f00003b0000200041186a200241236a2d00003a0000200220022f010c3b0104200220022d000e3a0006200241166a28010021012002411d6a2800002103200241246a2902002105200228000f2104200041036a20022d00063a0000200020022f01043b0001200041196a2005370000200041126a20033600002000410b6a2001360000200041046a200436000041000c010b41010b3a0000200241306a24000b6402027f037e230041106b22022400200241086a22034200370300200242003703000240200120024110102d45044020032903002105200229030021060c010b420121040b2000200637030820002004370300200041106a2005370300200241106a24000b2a01017f230041106b2203240020032001370308200320003703002002200341101029200341106a24000b5201027f230041106b22032400200341086a20002802082204200220046a22042000280200200028020441e4ab0410572003280208200328020c2001200241f4ab04102120002004360208200341106a24000b0300010b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341c89004360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a20021019000bc00101037f230041306b220224004183af042103411921040240024002400240024020002d000041016b0e0400010203040b41e7ae042103411c21040c030b41d1ae042103411621040c020b41bdae042103411421040c010b41a4ae0421030b2002411c6a41013602002002200436022c20022003360228200241063602242002420137020c2002419cae04360208200141186a2802002001411c6a2802002002200241286a3602202002200241206a360218200241086a105f200241306a24000b3d01027f2000280204220320024922044504402001200220002802002201200241e4b20410212000200320026b3602042000200120026a3602000b20040b910102027f017e230041106b220124002001420437030841042102027f02400240034020012000102f20012d00004101710d01200141086a20026a20012d00013a0000200241016a22024108470d000b20012903082203a741044f0d0141ccb004411b41e8b0041030000b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b3f01027f230041106b22022400200241003a000f200020012002410f6a4101102d2201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4601017f230041206b22032400200341146a4100360200200341ccb004360210200342013702042003200136021c200320003602182003200341186a360200200320021019000bbe0502047f027e230041a0016b22012400200141086a200041e000100a1a200141106a21030240200129030822064201520440200141f0006a220241808001360200200141b6b30436026c20014100360268200141e8006a102220014198016a220020022802003602002001200129036837039001200141e8006a20014190016a41c483041032200141e8006a41d0830441152003101f20002002280200360200200120012903683703900120014190016a41e583044113200341216a101f0c010b200141f0006a220241808001360200200141b6b30436026c20014100360268200141e8006a102220014198016a220020022802003602002001200129036837039001200141e8006a20014190016a418884041032200141e8006a4194840441162003101a20002002280200360200200120012903683703900120014190016a41aa84044118200141306a101a0b20014188016a2000280200360200200120012903900137038001230041206b22002400200041186a220420014180016a220241086a28020036020020002002290200220537031020004100360210200041086a200041106a2005a7100e20002903082105200141e8006a220241086a2004280200360200200220002903103702002002200537020c200041206a240020014198016a200141f0006a2802003602002001200129036837039001200141f8006a2802002100200128027420012902940121052001410036027020012005370368027f2006500440200141e8006a410010332003200141e8006a1020200341216a200141e8006a1020200141d8006a0c010b200141e8006a410110332003200141e8006a100d200141306a200141e8006a100d200141d0006a0b2203290300200341086a290300200141e8006a10282001200129036837029401200120014190016a2001280270100e2000200128020020012802041002200141a0016a24000bb40102027f017e230041406a22032400200341106a2001280200200141046a280200200141086a2204280200101b20032902142105200341003602282003200537032020022802002002280204200341206a101c200341206a2002280208410f102920032003290320370214200341086a200341106a2003280228100e200341206a2003280208200328020c101d2001200341206a101e200041086a200428020036020020002001290200370200200341406b24000b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b200220034184ac041056000b4601017f230041206b22012400200141186a41808001360200200141b6b30436021420014100360210200141086a200141106a2000101341002001280208200128020c1037000baa0102047f017e230041206b22032400200341186a41808001360200200341b6b30436021420034100360210200341086a230041206b22022400200341106a220429020421062002410036021820022006370310200241106a200141ff0171410247047f200241106a4101103320010541000b103320042002290310370204200241086a20042002280218100e2002290308370300200241206a240020002003280208200328020c1037000b5401017f230041106b220224002002200128020436020c200020012802002002410c6a100421002001200228020c1039410c21012000410b4d0440200041027441fcb2046a28020021010b200241106a240020010b0b002000200120021006000b6001017f230041106b2201240020004200370000200041186a4200370000200041106a4200370000200041086a420037000020014120360204200120003602002001412036020c20002001410c6a10082001200128020c1039200141106a24000b3701017f230041106b22022400200241086a410020012000280200200028020441e4ac04105720002002290308370200200241106a24000b4c01017f230041206b220324002000450440410120021035000b200341186a4200370300200341106a4200370300200341086a420037030020034200370300200120031014410020021035000b2601017f230041106b220224002002200036020c20012002410c6a41041029200241106a24000b2e01017f230041e0006b22012400200141086a200041d800100a1a2001420037030020011031200141e0006a24000b880502027f027e230041e0026b22002400200041808001360224200041b6b304360220200041206a103e200020002903203703a801027f0240027f4101200041a8016a102e4281feffffff1f834280b6baede90b520d001a200041086a200041a8016a1027200041186a29030021022000290310210320002802084100470b450440200041e1016a4200370000200041d9016a4200370000200041d1016a4200370000200041c9016a4200370000200041f8016a420037030020004180026a420037030020004188026a420037030020004198026a4200370300200041a0026a4200370300200041a8026a4200370300200042013703f0012000420237039002200041013a00c801200042023703a801200020023703b802200020033703b002200041c0026a1038200041f0016a200041c0026a200041b0026a101020002903a8014202510d01200042013703a801200041b0016a0c020b200041033a00c002200041bc016a4101360200200042013702ac01200041e884043602a801200041053602242000200041206a3602b8012000200041c0026a360220200041a8016a41a085041019000b200042013703a801200041b0016a0b2201200337030020012002370308200041c0016a220141003a0000200041f0006a2002370300200041da006a200041d8026a290300370100200041d2006a200041d0026a290300370100200041ca006a200041c8026a290300370100200041c2006a20002903c00237010020002003370368200041013a0041200041003a0020200041206a103c200041206a200041a8016a418801100a1a20014200370300200041b8016a4200370300200041b0016a4200370300200042003703a801200041206a200041a8016a1014200041e0026a24000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10052000200128020c1039200141106a24000bb32002077f077e230041e0046b2200240002400240230041206b22012400200141086a220242003703002001420037030020014110360214200120013602102001411036021c20012001411c6a1009200141106a200128021c10392002290300210720012903002108200141206a2400410541042007200884501b41ff017122014105460440200041808001360264200041b6b304360260200041e0006a103e200020002903603703a801200041a8016a102e22074201832208a70d01200742807e8342002008501b22094280feffffff1f832207422088a721032007421888a721022007421088a721044106210102400240024002400240024002402009a741087641ff01712206410b6b0e050509090901000b0240200641e8006b0e03040902000b2006418401460d02200641db0147200441ff017141e3004772200241ff017141f50047720d0841002102200341a801460d050c080b200441ff017141f50047200241ff017141da004772200341d60047720d0720004188026a200041a8016a10264101210220002d0088024101460d06200041c0016a20004192026a290100370300200041c8016a2000419a026a290100370300200041cf016a200041a1026a2900003700002000200029018a023703b80120002d00890221050c040b200441ff0171200241ff017141164772200341de0047720d06200041c0036a200041a8016a102620002d00c0034101460d0520004180046a200041a8016a102620002d0080044101460d05200041aa026a200028008404360000200041d8006a200041a0046a2d00003a000020004190026a200041ca036a29010037030020004198026a200041d2036a2901003703002000419f026a200041d9036a29000037000020002000280081043600a702200020002901c20337038802200020004198046a29030037035020004190046a290300210820004188046a290300210720002d00c1032105200041b8016a20004188026a4126100a1a410221020c030b200441ff017141a10147200241ff017141dd004772200341a10147720d0520004188026a200041a8016a10252000290388024201510d042000419e046a200041a8026a290300220737010020004196046a200041a0026a2903002208370100200041ce036a20004198026a290300220a370100200041d6036a2008370100200041de036a2007370100200041ee016a200a370000200041f6016a2008370000200041fe016a2007370000200020002903900222073701c603200020073700e601200041b8026a2903002108200041b0026a2903002107200041b8016a200041e0016a4126100a1a410321020c020b200441ff0171411247200241ff017141e6004772200341a00147720d0420004188026a200041a8016a10252000290388024201510d032000419e046a200041a8026a290300220737010020004196046a200041a0026a2903002208370100200041ce036a20004198026a290300220a370100200041d6036a2008370100200041de036a2007370100200041ee016a200a370000200041f6016a2008370000200041fe016a2007370000200020002903900222073701c603200020073700e601200041b8026a2903002108200041b0026a2903002107200041b8016a200041e0016a4126100a1a410421020c010b200441ff0171413947200241ff017141ef0047722003411847720d03200041b8016a200041a8016a102620002d00b8014101460d02200041e0016a200041a8016a102620002d00e0014101460d02200041386a200041a8016a10272000290338a70d02200041c8006a290300210a2000290340210b200041a8036a2201200041d1016a290000370300200041a0036a2205200041c9016a29000037030020004198036a2202200041c1016a290000370300200041d8006a200041f9016a2d00003a0000200020002900b901370390032000200041f1016a2900003703502000200041fa016a2801003602b0012000200041fd016a2800003600b301200041e9016a290000210820002900e10121072000419e026a200529030022093701002000418e046a2002290300220c37010020004196046a20093701002000419e046a2001290300220d370100200041de036a200d370000200041d6036a2009370000200041ce036a200c3700002000200029039003220937018604200020093700c603200041b8016a200041c0036a4126100a1a410521020b20004180016a200041b8016a4126100a1a200041f8006a200041d8006a2d00003a000020002000290350370370200020002802b001360268200020002800b30136006b200221010c020b200020013a008802230041206b22012400200141146a4101360200200142013702042001419cae043602002001410536021c200120004188026a3602182001200141186a360210200141a085041019000b410621010b024020014106470440200041b8016a20004180016a4126100a1a200041bc036a200028006b360000200041b8036a2203200041f8006a2d00003a0000200020002802683600b903200041d8006a220220032903003703002000200029037022093703b00320002009370350200041e0016a200041b8016a4126100a1a024002400240024002400240200141016b0e050403020100050b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d00241012101200041013a00a8022000420237038802200042023703f00220004198016a200041fe016a29000037030020004190016a200041f6016a29000037030020004188016a200041ee016a290000370300200020002900e60137038001200020083703c803200020073703c003200041d8036a2002290300370300200020002903503703d00320004180046a1038200041286a20004188026a20004180016a20004180046a1040024020002903282208200b542202200041306a2903002207200a542007200a511b0d0020004188026a20004180016a200041c0036a200b200a104141ff017122014102470d0020002008200b7d3703900320002007200a7d2002ad7d37039803200041f0026a20004180016a20004180046a20004190036a1012410221010b200141024620004188026a2001103a000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f002200041a8036a2201200041fe016a290000370300200041a0036a2202200041f6016a29000037030020004198036a2203200041ee016a290000370300200020002900e60137039003200020083703b803200020073703b00320004180016a1038200041f0026a20004180016a20004190036a200041b0036a1012200041d8036a20004198016a290300370300200041d0036a20004190016a290300370300200041c8036a20004188016a290300370300200041e8036a2003290300370300200041f0036a2002290300370300200041f8036a200129030037030020002000290380013703c00320002000290390033703e00320004188046a200041c0036a41c000100a1a200041d0046a2008370300200041c8046a2007370300200042013703800420004180046a1031410120004188026a4102103a000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f002200041d8036a200041fe016a290000370300200041d0036a200041f6016a290000370300200041c8036a200041ee016a290000370300200020002900e6013703c00320004180046a103820004188026a20004180046a200041c0036a20072008104141ff0171220141024620004188026a2001103a000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f00220004180046a200041b8016a4126100a1a20004189016a200041c0016a29010037000020004191016a200041c8016a29010037000020004198016a200041cf016a290000370000200020053a008001200020002901b80137008101200041cf036a2008370000200041df036a20022d00003a0000200020073700c7032000200041a2046a2800003600c3032000200028009f043602c003200020002903503700d703200041186a20004188026a20004180016a200041c0036a10402000200041206a29030037039803200020002903183703900320004190036a1034000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f002200020053a00800420004189046a200041c0016a29010037000020004191046a200041c8016a29010037000020004198046a200041cf016a290000370000200020002901b80137008104200041086a20004188026a20004180046a10422000200041106a2903003703c803200020002903083703c003200041c0036a1034000b200041d8036a22014200370300200041d0036a22024200370300200041c8036a4200370300200042003703c00320004180800136028404200041b6b304360280040240024002400240200041c0036a20004180046a10360e0401000002000b2000419c026a4100360200200041ccb004360298022000420137028c02200041a8b1043602880220004188026a41f0b1041019000b200041a8026a2001290300370300200041a0026a200229030037030020004198026a200041c8036a290300370300200020002903c00337039002200042013703880220004180046a20004190026a101620002d0080044101460d0320004188046a2903004200520d0141d88104411741f081041043000b41808004411e41d880041043000b20004198046a2903002107200020004190046a29030037038004200020073703880420004180046a1034000b200041033a00c0032000419c026a41013602002000420137028c02200041d48504360288022000410536028404200020004180046a360298022000200041c0036a3602800420004188026a41a085041019000b200020002d0081043a00800141e88004412720004180016a4194830441c881041044000b5d02017f017e230041406a22042400200441206a200141e8006a20022003100b200441086a200441206a1015200429031021052000200441186a2903004200200428020822011b37030820002005420020011b370300200441406b24000bda0202037f037e23004180016b22052400200541186a200020011042200529031822092003542207200541206a290300220820045420042008511b4504402005200920037d3703282005200820047d2007ad7d370330200041c8006a22062001200541286a1010200541086a200020021042200541106a290300210820052005290308220920037c220a37032820052009200a56ad200420087c7c37033020062002200541286a1010200541f8006a2004370300200541c1006a200141186a290000370000200541396a200141106a290000370000200541316a200141086a290000370000200541ca006a2002290000370100200541d2006a200241086a290000370100200541da006a200241106a290000370100200541e2006a200241186a29000037010020052003370370200541013a0049200541013a002820052001290000370029200541286a103c410221060b20054180016a240020060b5b02017f017e230041406a22032400200341206a200141c8006a2002100f200341086a200341206a1015200329031021042000200341186a2903004200200328020822011b37030820002004420020011b370300200341406b24000b6001017f230041106b220324002003200136020c20032000360208230041206b22002400200041146a4101360200200042013702042000419cae043602002000410636021c2000200341086a3602182000200041186a360210200020021019000b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41073602002005420237021c200541fcb004360218200541063602342005200541306a3602282005200541106a3602382005200541086a360230200541186a20041019000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41dc8504200241086a1046200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a105d20032003290310370320200341086a20042000410c6a105d20032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002104841000b2801017f20002002104a2000280208220320002802006a20012002100a1a2000200220036a3602080b960201027f230041106b22022400200028020021000240200141ff004d044020002802082203200028020446044020004101104a200028020821030b2000200341016a360208200028020020036a20013a00000c010b2002410036020c20002002410c6a027f20014180104f044020014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c020b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c010b20022001413f71418001723a000d2002200141067641c001723a000c41020b10480b200241106a240041000ba70301077f230041106b2205240002400240200120002802042207200028020822026b4b0440200120026a22012002490d022000280200410020071b210841002102230041106b220624002005027f20074101742204200120012004491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001104d20062802082103200628020c0c030b200141acb304280200220420016a22022004490d021a41b0b3042802002002490440200141ffff036a220341107640002202417f46200241ffff0371200247720d022002411074220420034180807c716a22022004490d024100210341b0b30420023602002001200120046a22022004490d031a0b41acb304200236020020012004450d021a200420082007100a210320010c020b20062001104d2006280200210320062802040c010b4100210320010b2102200304402005200336020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d00000b104c000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1045200241206a24000b0f0041f586044111418887041030000ba90101027f027f41012001450d001a410041acb304280200220220016a22032002490d001a024041b0b3042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141b0b30420033602004100200120026a22032002490d021a0b41acb304200336020020020c010b41000b210320002001360204200020033602000b0e0020002802001a03400c000b000bc00202047f027e20003502002106230041306b2203240041272100024020064290ce00540440200621070c010b0340200341096a20006a220241046b200620064290ce008022074290ce007e7da7220441ffff037141e4006e220541017441b48d046a2f00003b0000200241026b2004200541e4006c6b41ffff037141017441b48d046a2f00003b0000200041046b2100200642ffc1d72f56200721060d000b0b2007a7220241e3004a0440200041026b2200200341096a6a2007a72202200241ffff037141e4006e220241e4006c6b41ffff037141017441b48d046a2f00003b00000b02402002410a4e0440200041026b2200200341096a6a200241017441b48d046a2f00003b00000c010b200041016b2200200341096a6a200241306a3a00000b200141ccb0044100200341096a20006a412720006b1051200341306a24000b0d00429e9fe3ccf2a3c7c8fb000bb30301077f230041106b2206240020002802002205410171220820046a210702402005410471450440410021010c010b2001200120026a105220076a21070b412b418080c40020081b210802402000280208410147044041012105200020082001200210530d012000280218200320042000411c6a28020028020c11000021050c010b024020072000410c6a280200220949044020002d00004108710d014101210520062000200920076b4101105420062802002207418080c400460d0220062802042109200020082001200210530d022000280218200320042000411c6a28020028020c1100000d02200720092000105521050c020b41012105200020082001200210530d012000280218200320042000411c6a28020028020c11000021050c010b2000280204210a2000413036020420002d0020210b41012105200041013a0020200020082001200210530d00200641086a2000200920076b4101105420062802082201418080c400460d00200628020c21022000280218200320042000411c6a28020028020c1100000d0020012002200010550d002000200b3a00202000200a360204410021050b200641106a240020050b2b01017f200020014704400340200220002c000041bf7f4a6a2102200041016a22002001470d000b0b20020b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000b9b0101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03000100020b41002105200221040c010b20024101762104200241016a41017621050b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b4701027f2002411c6a28020021032002280218210441002102027f0340200120012002460d011a200241016a2102200420002003280210110100450d000b200241016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341808b04360208200341043602242003200341206a360218200320033602282003200341046a360220200341086a20021019000bd2010002400240200120024d0440200220044d0d01230041306b2200240020002004360204200020023602002000411c6a41023602002000412c6a41043602002000420237020c200041e890043602080c020b230041306b2200240020002002360204200020013602002000411c6a41023602002000412c6a41043602002000420237020c2000419c91043602080c010b2000200220016b3602042000200120036a3602000f0b200041043602242000200041206a3602182000200041046a36022820002000360220200041086a20051019000b5301047f200141086a280200210220012802042103200141046a10592204418080c4004704402001200128020420012802002205200220036b6a6a20012802086b3602000b20002004360204200020053602000bb70101047f200028020022012000280204460440418080c4000f0b2000200141016a36020020012d00002203411874411875417f4c047f2000200141026a36020020012d0001413f7121022003411f712104200341df014d044020044106742002720f0b2000200141036a36020020012d0002413f712002410674722102200341f00149044020022004410c74720f0b2000200141046a3602002004411274418080f0007120012d0003413f71200241067472720520030b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b980301057f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a1058200228021c418080c400470d010c020b0b200241106a200241206a10582002280214418080c400460d00200241086a200228021020032004105a200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a105222054b044020022001200020056b410010544101210020022802002205418080c400460d01200228020421062001280218200320042001411c6a28020028020c1100000d01200520062001105521000c010b2001280218200320042001411c6a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044109470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141a48d04102b000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1046200341206a24000b6c01027f230041206b220224004101210302402000200110610d002002411c6a4100360200200241ccb0043602182002420137020c200241cc8804360208200141186a2802002001411c6a280200200241086a105f0d00200041046a2001106121030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d0120002001104f0c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a105e2001419caf0441022002280208200228020c10510c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a105e2001419caf0441022002280200200228020410510b20024190016a24000bc306010c7f230041406a22032400027f024020020440200341386a210d2000280204210b2000280200210c2000280208210a0340200a2d00000440200c41918b044104200b28020c1100000d030b2003410a3602382003428a808080103703302003200236022c4100210020034100360228200320023602242003200136022041012107200341086a2001220420022205027f03400240200020046a2106200320076a41376a2d000021070240024002400240200541084f0440200641036a417c7120066b2200450440410021040c020b200341186a410020052000200020054b1b22042006200541f48f041057200328021c2208450d0120032802182109410021000340200020096a2d00002007460d03200041016a22002008470d000b0c010b2005450d04410021000340200020066a2d00002007460d02200041016a22002005470d000b0c040b02402004200541086b22084b0d00200741818284086c21000340200420066a2209280200200073220e417f73200e41818284086b71200941046a2802002000732209417f73200941818284086b7172418081828478710d01200441086a220420084d0d000b0b200420054b0d0120042005460d03200420056b2105200420066a21064100210003402007200020066a2d00004704402005200041016a22006a0d010c050b0b200020046a21000b2003200020032802286a41016a2200360228200020032802342204490d01200020032802244b0d0120032802202105200341106a41002004200d4104418094041057024020032802142004460440027f2005200020046b22086a210020032802102105034041002004450d011a200441016b210420052d0000210620002d00002107200041016a2100200541016a210520062007460d000b200720066b0b450d010b200328022821000c020b200a41013a0000200841016a0c040b2004200541849004102b000b200328022c22042000490d00200420032802244b0d00200420006b210520032802342107200328022021040c010b0b200a41003a000020020b2200418c8c041063200c2003280208200328020c200b28020c1100000d022003200120022000419c8c04106420032802002101200328020422020d000b0b41000c010b41010b200341406b24000b4e01027f230041106b22052400200541086a200320012002105a20052802082206450440200120024100200320041065000b200528020c21012000200636020020002001360204200541106a24000b4d0002402003450d000240200220034d044020022003470d010c020b200120036a2c000041bf7f4a0d010b200120022003200220041065000b2000200220036b3602042000200120036a3602000b9b0601027f23004180016b220524002005200336021c200520023602182005027f20014181024f0440418002210602400340200020066a2c000041bf7f4a0d01200641016b22060d000b410021060b200541106a20002001200641fc920410632005200529031037032020054190940436022841050c010b2005200136022420052000360220200541ccb00436022841000b36022c024002402005200120024f047f200120034f0d0120030520020b360238200541d4006a4103360200200541ec006a4106360200200541e4006a410636020020054203370244200541b894043602402005410436025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580c010b200541086a20002001027f02400240200220034d04402002450d010240200120024d044020012002470d010c030b200020026a2c000041bf7f4a0d020b20052002360230200221030c020b200541f4006a4106360200200541ec006a4106360200200541e4006a4104360200200541d4006a410436020020054204370244200541f494043602402005410436025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580c030b2005200336023041002003450d011a0b03400240200120034d044020012003470d0120010c030b200020036a2c00004140480d0020030c020b200341016b22030d000b41000b22062004106420052005280208220036025820052000200528020c6a36025c2005200541d8006a1059200410662200360234200520063602382005027f41012000418001490d001a41022000418010490d001a41034104200041808004491b0b20066a36023c200541d4006a4105360200200541fc006a4106360200200541f4006a4106360200200541ec006a410a360200200541e4006a410b36020020054205370244200541c895043602402005410436025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580b200541406b20041019000b1a002000418080c40046044041d88904412b20011030000b20000b8f0802077f017e4101210602402001280218220741272001411c6a28020028021022081101000d0041f4002103410221010240027f02400240027f0240024002402000280200220241096b0e050704010105000b2002412746200241dc0046720d010b2002410b7421044100210141202103412021000240027e02400240027f034002402004200341017620016a220341027441a4a3046a280200410b7422054d044020042005470440200321000c020b41010c030b200341016a21010b200020016b2103200020014b0d000b2001210341000b20036a2204411f4d04402004410274210141c20521032004411f470440200141a8a3046a28020041157641016b21030b410021002004200441016b22054f0440200541204f0d02200541027441a4a3046a28020041ffffff007121000b02402003200141a4a3046a2802004115762201460d00200141c305200141c3054b1b2104200220006b21054100210003400240200120044704402000200141a4a4046a2d00006a220020054d0d01200121030c030b200441c3054184a3041056000b2003200141016a2201470d000b0b20034101710d02024002402002418080044f04402002418080084f0d01200241ab9c04412a41ff9c0441c00141bf9e0441b60310680d070c020b2002418c9704412841dc970441a00241fc990441af021068450d010c060b200241e0ffff007141e0cd0a46200241b9ee0a6b41074972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d050b200241017267410276410773ad4280808080d000840c030b2004412041f4a2041056000b200541204194a3041056000b200241017267410276410773ad4280808080d000840b210941032101200221030c060b41010c010b41020b2101200221030c030b41ee000c010b41f2000b21030b034020012102410021012003210002400240024002400240200241016b0e03040200010b024002400240024002402009422088a741ff017141016b0e050004010203050b200942ffffffff8f6083210941fd002100410321010c070b200942ffffffff8f608342808080802084210941fb002100410321010c060b200942ffffffff8f608342808080803084210941f5002100410321010c050b200942ffffffff8f60834280808080c00084210941dc002100410321010c040b413041d70020032009a7220141027476410f712200410a491b20006a41c88904106621002001450d02200942017d42ffffffff0f83200942808080807083842109410321010c030b20074127200811010021060c040b41dc002100410121010c010b200942ffffffff8f6083428080808010842109410321010b200720002008110100450d000b0b20060be00201087f230041106b2208240041012107024002402002450d00200120024101746a210a20004180fe0371410876210b41002102200041ff0171210d0340200141026a210c200220012d00016a2109200b20012d000022014704402001200b4b0d0220092102200c2201200a470d010c020b200841086a200220092003200441ec9604105720082802082102200828020c2101024003402001450d01200141016b210120022d0000210e200241016a2102200d200e470d000b410021070c030b20092102200c2201200a470d000b0b2006450d00200520066a2103200041ffff0371210203400240200541016a2100027f200020052d00002201411874411875220441004e0d001a20002003460d0120052d0001200441ff0071410874722101200541026a0b2105200220016b22024100480d022007410173210720032005470d010c020b0b41d88904412b41fc96041030000b200841106a240020074101710b7e01037f23004190016b2202240020002d0000210341ff0021000340200241106a20006a413041372003410f712204410a491b20046a3a0000200041016b21002003220441047621032004410f4b0d000b200241086a200241106a200041016a105e2001419caf0441022002280208200228020c105120024190016a24000b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1046200241206a24000b0b0020002802002001105b0b1b00200128021841f4b20441052001411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a280200220441ac8a04410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241bc8a043602282002410c3602142002200241106a36023820022002410c6a36021020042001200241286a105f450d010c020b20032802002200200328020428020c11080042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241bc8a043602282002410d3602142002200241106a36023820022002410c6a36021020042001200241286a105f0d010b200328020c2100200241246a41033602002002413c6a410e360200200241346a410e36020020024203370214200241848a0436021020022000410c6a3602382002200041086a3602302002410636022c200220003602282002200241286a36022020042001200241106a105f21000b200241406b240020000b0ba1330600418080040bc72f656e636f756e746572656420656d7074792073746f726167652063656c6c2f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f6c617a792f6d6f642e72730000001e000100370000009d00000019000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f7472616974732f6d6f642e72738f00010039000000a80000000a00000073746f7261676520656e7472792077617320656d707479008f00010039000000a90000000a0000006661696c656420746f2070756c6c207061636b65642066726f6d20726f6f74206b657920000101002400000078180100020000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f7472616974732f6f7074737065632e7273000000340101003d0000006b0000000d000000b0180100400000009d000000300000000f000000010000000100000001000000a015010041000000b50000003700000045726332303a3a5472616e73666572004c18010000000000b401010045726332303a3a5472616e736665723a3a66726f6d45726332303a3a5472616e736665723a3a746f45726332303a3a417070726f76616c004c18010000000000f801010045726332303a3a417070726f76616c3a3a6f776e657245726332303a3a417070726f76616c3a3a7370656e6465726469737061746368696e6720696e6b2120636f6e7374727563746f72206661696c65643a200042020100250000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6578616d706c65732f65726332302f6c69622e72730000700201002e0000000f000000050000006469737061746368696e6720696e6b21206d657373616765206661696c65643a20000000b002010021000000100000000400000004000000110000001200000013000000140000000000000001000000150000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700000403010071000000fd010000050000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273cb0301006d000000550200001c0000002e2e000048040100020000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e72730000005404010071000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75653a4c18010000000000030501000100000003050100010000001600000000000000010000001700000070616e69636b65642061742027272c2038050100010000003905010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732000004c050100200000006c0501001200000060202020202f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e7273000095050100750000002f00000021000000950501007500000030000000120000002c0a280a28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727300003206010070000000650000001400000030303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e72730000007c07010075000000420000001e0000007c070100750000005b0000000500000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468201408010012000000260801002200000072616e676520656e6420696e6465782058080100100000002608010022000000736c69636520696e64657820737461727473206174202062757420656e6473206174200078080100160000008e0801000d000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028ac08010015000000c10801002b00000031060100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727304090100780000001d010000110000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72738c09010074000000b7010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000150a01000b000000200a0100160000009005010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e6720600000500a01000e0000005e0a010004000000620a0100100000009005010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060150a01000b000000940a010026000000ba0a010008000000c20a01000600000090050100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e72730000f00a01007a0000000a0000001c000000f00a01007a0000001a0000003600000000010305050606020706080709110a1c0b190c1a0d100e0d0f0410031212130916011704180119031a071b011c021f1620032b032d0b2e01300331023201a702a902aa04ab08fa02fb05fd02fe03ff09ad78798b8da23057588b8c901cdd0e0f4b4cfbfc2e2f3f5c5d5fe2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d11293a3b4549575b5c5e5f64658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff806d71dedf0e1f6e6f1c1d5f7d7eaeaf7fbbbc16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f747596262e2fa7afb7bfc7cfd7df9a409798308f1fd2d4ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab051f09811b03190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15054e071b0757070206160d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd03590716091809140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a062f314d0380a4083c030f033c0738082b0582ff1118082f112d03210f210f808c048297190b158894052f053b07020e180980be22740c80d61a0c0580ff0580df0cf29d033709815c1480b80880cb050a183b030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a61081f50701202a064c04808d0480be031b030f0d000601010301040205070702080809020a050b020e041001110212051311140115021702190d1c051d0824016a046b02af03bc02cf02d102d40cd509d602d702da01e005e102e704e802ee20f004f802fa02fb010c273b3e4e4f8f9e9e9f7b8b9396a2b2ba86b1060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5fbfeeef5a62f4fcff9a9b2e2f2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fe7ecefffc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b4e43813709160a08183b45390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a161a261c1417094e042409440d19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d133a060a362c041780b93c64530c48090a46451b4808530d498107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48a4c630d842f8fd18247a1b98239072a045c06260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2e781332d03110408818c89046b050d0309071092604709743c80f60a7308701546809a140c570919808781470385420f1584501f80e12b80d52d031a040281401f113a050184e080f7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d80510030d03740c59070c04010f0c0438080a062808224e81540c1503050307091d030b05060a0a060808070980cb250a84062f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e72730000f51001007d0000004b00000028000000f51001007d0000005700000016000000f51001007d000000520000003e0000000003000083042000910560005d13a0001217201f0c20601fef2ca02b2a30202c6fa6e02c02a8602d1efb602e00fe20369eff6036fd01e136010a2137240de137ab0e61392f18a139301ce147f31e214cf06ae14f4f6f21509dbca15000cf615165d1a15100da215200e0e15330e16155aee2a156d0e8e15620006e57f001ff5700700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b033c082a180120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c01090128010301370101030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d021e021e02400201070801020b09012d030101750222017603040209010603db0202013a010107010101010208060a0201301f310430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c6400001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990b31047b01360f290102020a033104020207013d03240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002002e0217000101030405080802071e0494030037043208010e011605010f00070111020701020105000700013d0400076d07006080f000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72730a15010072000000e6050000090000000a0000004c180100000000008c150100010000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000a0150100410000005800000009000000a0150100410000005800000031000000a0150100410000006300000009000000a015010041000000810000001a0000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000241601003e000000780100001400000045636473615265636f7665724661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e644e6577436f6e74726163744e6f7446756e6465645472616e736665724661696c656442656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f646500004c180100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f72307800009c170100020000005f000000a8170100010000004c180100000000004c180100000000004c18010041d0af040b092000000008000000020041e4af040b15020000000300000001000000200000000800000002004184b0040b150200000003000000020000002000000008000000020041a4b0040b150200000003000000030000002000000008000000020041c4b0040be50202000000030000005765206465636f646520604e6020656c656d656e74733b20716564000019010061000000cd020000170000003a2000004c180100000000007818010002000000656e636f756e746572656420756e6578706563746564206572726f728c1801001c0000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273b01801004000000018010000170000002f686f6d652f6d696368692f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e727300000000190100610000006d0000000e0000004572726f72000000000000000100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" + }, + "contract": { + "name": "erc20", + "version": "3.0.0-rc6", + "authors": ["Parity Technologies "] + }, + "V2": { + "spec": { + "constructors": [ + { + "args": [ + { + "label": "initial_supply", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": ["Creates a new ERC-20 contract with the specified initial supply."], + "label": "new", + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": ["Option"], + "type": 11 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": ["Option"], + "type": 11 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [" Event emitted when a token transfer occurs."], + "label": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + " Event emitted when an approval occurs that `spender` is allowed to withdraw", + " up to the amount of `value` tokens from `owner`." + ], + "label": "Approval" + } + ], + "messages": [ + { + "args": [], + "docs": [" Returns the total token supply."], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 0 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + } + ], + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 0 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + } + ], + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 0 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 8 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 8 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "to", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 8 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "balances" + }, + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 6 + } + }, + "name": "allowances" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "offset_key", + "type": 5, + "typeName": "Key" + } + ] + } + }, + "params": [ + { + "name": "K", + "type": 2 + }, + { + "name": "V", + "type": 0 + } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 2, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_env", "types", "AccountId"] + } + }, + { + "id": 3, + "type": { + "def": { + "array": { + "len": 32, + "type": 4 + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 5, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "Key"] + } + }, + { + "id": 6, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "offset_key", + "type": 5, + "typeName": "Key" + } + ] + } + }, + "params": [ + { + "name": "K", + "type": 7 + }, + { + "name": "V", + "type": 0 + } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 7, + "type": { + "def": { + "tuple": [2, 2] + } + } + }, + { + "id": 8, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 9 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 9 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 9, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 10, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": ["erc20", "erc20", "Error"] + } + }, + { + "id": 11, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + } + ], + "path": ["Option"] + } + } + ] + } +} diff --git a/.api-contract/src/test/contracts/ink/v2/flipper.contract.json b/.api-contract/src/test/contracts/ink/v2/flipper.contract.json new file mode 100644 index 00000000..3ce25230 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v2/flipper.contract.json @@ -0,0 +1,89 @@ +{ + "source": { + "hash": "0xaeb7dd63156e34f62a81be2f66e16410cf4dd633b591cf27dd40474ff61a352c", + "language": "ink! 3.0.0-rc6", + "compiler": "rustc 1.58.0-nightly", + "wasm": "0x0061736d0100000001620f60037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060057f7f7f7f7f0060017f017f60000060017f017e60017f0060047f7f7f7f0060067f7f7f7f7f7f006000017f60047f7f7f7f017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f02a30107057365616c30107365616c5f7365745f73746f726167650003057365616c30167365616c5f76616c75655f7472616e736665727265640002057365616c30107365616c5f6765745f73746f726167650000057365616c30127365616c5f64656275675f6d6573736167650001057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100343420203080102050207030a0b02020504060806010000030102010602010301070d010c090003020509010103030001010004040401010e01010001010101010501010004050170011e1e0608017f01418080040b071102066465706c6f7900150463616c6c00170923010041010b1d092e232f4521333a4142230846081a1c1e0843082408353c3d083e3f400ac164428d0101017f230041406a22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a2900003703002002420137030820022001290000370310200241386a41808001360200200241f2ae04360234200241003602302002200241306a20001007200241106a200228020020022802041000200241406b24000b920201047f230041106b22042400200141086a220328020021052003410036020020012802042103200141bcad04360204200441086a410041012003200541a4aa04100f0240200428020c22064101460440200428020820023a000020014100360208200141bcad043602042005450d012001200541016b3602082001200341016a3602042000410136020420002003360200200441106a24000f0b230041306b2200240020004101360204200020063602002000411c6a41023602002000412c6a41033602002000420337020c200041ac9004360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a41b4aa04100a000b41a7a804412341bca904100e000b0300010bc00101037f230041306b2202240041a3ad042103411921040240024002400240024020002d000041016b0e0400010203040b4187ad042103411c21040c030b41f1ac042103411621040c020b41ddac042103411421040c010b41c4ac0421030b2002411c6a41013602002002200436022c20022003360228200241023602242002420137020c200241bcac04360208200141186a2802002001411c6a2802002002200241286a3602202002200241206a360218200241086a1032200241306a24000be60301077f230041106b220224002002200136020c20022000360208200241a48804360204200241bcad04360200230041406a220324002003200236020c200341346a410136020020034202370224200341d0a9043602202003410536023c2003200341386a36023020032003410c6a360238200341106a210641002101230041206b22042400200341206a220528020422074103742102200528020022082100034020020440200241086b2102200028020420016a2101200041086a21000c010b0b024002400240024002400240200541146a280200450440200121000c010b02402007450d0020082802040d004100210220014110490d020b41002102200120016a22002001490d010b200022024100480d010b20042002102020042802002200450d0120042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a10180d02200441206a24000c030b101f000b000b41a085044133200441086a41fc830441c086041014000b2003280210210020032802182101024041f0ae042d000045044041f1ae042d00004101710d010b2000200110031013410947044041f0ae0441013a00000b41f1ae0441013a00000b000b4201027f230041106b22012400200141086a2000100c20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000b9c0102027f017e230041106b220124002001420037030841042102027f02400340200241084604402001410436020820012903082203a741044f0d0241a88104411b41c48104100e000b20012000100c20012d0000410171450440200141086a20026a20012d00013a0000200241016a21020c010b0b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b4601017f230041206b22032400200341146a4100360200200341bcad04360210200342013702042003200136021c200320003602182003200341186a36020020032002100a000bd2010002400240200120024d0440200220044d0d01230041306b2200240020002004360204200020023602002000411c6a41023602002000412c6a41033602002000420237020c200041a88f043602080c020b230041306b2200240020002002360204200020013602002000411c6a41023602002000412c6a41033602002000420237020c200041dc8f043602080c010b2000200220016b3602042000200120036a3602000f0b200041033602242000200041206a3602182000200041046a36022820002000360220200041086a2005100a000b6c02027f027e230041206b22002400200041086a220142003703002000420037030020004110360214200020003602102000411036021c20002000411c6a1001200041106a200028021c10112001290300210220002903002103200041206a2400410541042002200384501b0b3701017f230041106b22022400200241086a41002001200028020020002802044184ab04100f20002002290308370200200241106a24000b8f0301027f230041d0006b220224004101210302402000027f20014101714504404104101041ff01714105470d011a0b200241186a4200370300200241206a4200370300200241286a42003703002002420037031020024201370308200241808001360234200241f2ae04360230200241808001360238200241106a41f2ae04200241386a10022101200241306a20022802381011024002400240200110130e0402000001000b200241cc006a4100360200200241bcad043602482002420137023c200241b08204360238200241386a41b88204100a000b230041106b220124002001411736020c200141f08004360208230041206b22002400200041146a410136020020004201370204200041bcac043602002000410236021c2000200141086a3602182000200041186a360210200041888104100a000b20022002290330370338200241386a100b41ff017122014102460d014100210320014100470b3a0001200020033a0000200241d0006a24000f0b200241003a0038418080044127200241386a4198810441e080041014000b2001017f410c21012000410b4d047f200041027441b8ae046a28020005410c0b0b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41043602002005420237021c200541c0ad04360218200541023602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004100a000b850302057f027e230041306b2200240020004180800136022c200041f2ae04360228200041286a10162000200029032837030002402000100d22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721012005421888a721022005421088a72103024002402006a741087641ff0171220441ed014704402004419b0147200341ff017141ae014772200241ff0171419d0147200141de004772720d032000100b41ff017122014102470d010c030b200341ff017141cb0047200241ff0171419d0147722001411b47720d02200041186a4200370300200041106a4200370300200041086a4200370300200042003703004100200010060c010b200041186a4200370300200041106a4200370300200041086a4200370300200042003703002001410171200010060b200041306a24000f0b200041033a0027200041146a410136020020004201370204200041f082043602002000410136022c2000200041286a3602102000200041276a360228200041a88304100a000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10042000200128020c1011200141106a24000bdc0402057f027e230041406a2200240002400240101041ff01712201410546044020004180800136023c200041f2ae04360238200041386a101620002000290338370310027f0240200041106a100d22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721022005421888a721012005421088a721032006a741087641ff01712204412f470440200441e30047200341ff0171413a4772200141ff017141a50147200241d1004772720d014101210141000c020b200341ff017141860147200141ff017141db0047720d00410021014100200241d901460d011a0b4101210141010b0440410321010c030b02400240200104402000418102101220002d0001210120002d00004101710d01200041286a4200370300200041206a4200370300200041186a4200370300200042003703102001417f73410171200041106a10060c020b200041086a4101101220002d0009210120002d0008410171450d030b20014105470d030b200041406b24000f0b200020013a0010230041206b22012400200141146a410136020020014201370204200141bcac043602002001410136021c2001200041106a3602182001200141186a360210200141a88304100a000b230041206b22002400200041186a41808001360200200041f2ae0436021420004100360210200041086a200041106a2001410171100741002000280208200028020c1005000b200020013a0037200041246a410136020020004201370214200041dc83043602102000410136023c2000200041386a3602202000200041376a360238200041106a41a88304100a000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41e48304200241086a1019200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a103020032003290310370320200341086a20042000410c6a103020032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002101b41000b2801017f20002002101d2000280208220320002802006a2001200210471a2000200220036a3602080b960201027f230041106b22022400200028020021000240200141ff004d044020002802082203200028020446044020004101101d200028020821030b2000200341016a360208200028020020036a20013a00000c010b2002410036020c20002002410c6a027f20014180104f044020014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c020b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c010b20022001413f71418001723a000d2002200141067641c001723a000c41020b101b0b200241106a240041000bae0301077f230041106b2205240002400240200120002802042207200028020822026b4b0440200120026a22012002490d022000280200410020071b210841002102230041106b220624002005027f20074101742204200120012004491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001102020062802082103200628020c0c030b200141e8ae04280200220420016a22022004490d021a41ecae042802002002490440200141ffff036a22032001490d02200341107640002202417f46200241ffff0371200247720d022002411074220420034180807c716a22022004490d024100210341ecae0420023602002001200120046a22022004490d031a0b41e8ae04200236020020012004450d021a2004200820071047210320010c020b2006200110202006280200210320062802040c010b4100210320010b2102200304402005200336020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d00000b101f000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1018200241206a24000b0f0041fd8404411141908504100e000ba90101027f027f41012001450d001a410041e8ae04280200220220016a22032002490d001a024041ecae042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141ecae0420033602004100200120026a22032002490d021a0b41e8ae04200336020020020c010b41000b210320002001360204200020033602000b0e0020002802001a03400c000b000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341888f04360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a2002100a000b9a0202037f017e20003502002105230041306b2203240041272100024003402005428fce005804402005a7220241e3004c0d0205200341096a20006a220241026b20054290ce0082a7220441e4007041017441da8b046a2f00003b0000200241046b200441e4006e41017441da8b046a2f00003b0000200041046b210020054290ce008021050c010b0b200020036a41076a2005a741ffff0371220241e4007041017441da8b046a2f00003b0000200041026b2100200241e4006e21020b02402002410a4e0440200041026b2200200341096a6a200241017441da8b046a2f00003b00000c010b200041016b2200200341096a6a200241306a3a00000b200141bcad044100200341096a20006a412720006b1025200341306a24000b0d00429e9fe3ccf2a3c7c8fb000bb30301077f230041106b2206240020002802002205410171220820046a210702402005410471450440410021010c010b2001200120026a102620076a21070b412b418080c40020081b210802402000280208410147044041012105200020082001200210270d012000280218200320042000411c6a28020028020c11000021050c010b024020072000410c6a280200220949044020002d00004108710d014101210520062000200920076b4101102820062802002207418080c400460d0220062802042109200020082001200210270d022000280218200320042000411c6a28020028020c1100000d02200720092000102921050c020b41012105200020082001200210270d012000280218200320042000411c6a28020028020c11000021050c010b2000280204210a2000413036020420002d0020210b41012105200041013a0020200020082001200210270d00200641086a2000200920076b4101102820062802082201418080c400460d00200628020c21022000280218200320042000411c6a28020028020c1100000d0020012002200010290d002000200b3a00202000200a360204410021050b200641106a240020050b2901017f03402000200146450440200220002c000041bf7f4a6a2102200041016a21000c010b0b20020b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000b9b0101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03000100020b41002105200221040c010b20024101762104200241016a41017621050b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b4701027f2002411c6a28020021032002280218210441002102027f0340200120012002460d011a200241016a2102200420002003280210110100450d000b200241016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341888904360208200341033602242003200341206a360218200320033602282003200341046a360220200341086a2002100a000b5301047f200141086a280200210220012802042103200141046a102c2204418080c4004704402001200128020420012802002205200220036b6a6a20012802086b3602000b20002004360204200020053602000bb70101047f200028020022012000280204460440418080c4000f0b2000200141016a36020020012d00002203411874411875417f4c047f2000200141026a36020020012d0001413f7121022003411f712104200341df014d044020044106742002720f0b2000200141036a36020020012d0002413f712002410674722102200341f00149044020022004410c74720f0b2000200141046a3602002004411274418080f0007120012d0003413f71200241067472720520030b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b980301057f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a102b200228021c418080c400470d010c020b0b200241106a200241206a102b2002280214418080c400460d00200241086a200228021020032004102d200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a102622054b044020022001200020056b410010284101210020022802002205418080c400460d01200228020421062001280218200320042001411c6a28020028020c1100000d01200520062001102921000c010b2001280218200320042001411c6a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044106470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141c88b041022000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1019200341206a24000b6c01027f230041206b220224004101210302402000200110340d002002411c6a4100360200200241bcad043602182002420137020c200241d48604360208200141186a2802002001411c6a280200200241086a10320d00200041046a2001103421030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d012000200110230c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a1031200141d88b0441022002280208200228020c10250c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a1031200141d88b0441022002280200200228020410250b20024190016a24000bb906010d7f230041406a22032400200341386a210d2000280204210b2000280200210c2000280208210a024003402002450d010240200a2d00000440200c41b489044104200b28020c1100000d010b2003410a3602382003428a808080103703302003200236022c41002100200341003602282003200236022420032001360220200222042105034002400240200341086a20012002027f02400240200020044b200420054b720d00200328022020006a2106200320032802346a41376a2d0000210702400240200420006b220541084f0440200641036a417c7120066b2204450440410021040c020b41002100200341186a410020052004200420054b1b22042006200541b48e04100f200328021c210820032802182109034020002008460d02200020096a2d00002007460d03200041016a21000c000b000b41002100034020002005460d03200020066a2d00002007460d02200041016a21000c000b000b200541086b2108200741818284086c210003400240200420084b0d00200420066a2209280200200073220e417f73200e41818284086b71200941046a2802002000732209417f73200941818284086b7172418081828478710d00200441086a21040c010b0b200420054b0d04200420056b2108200420066a210541002100034020002008460d02200720052d0000470440200041016b2100200541016a21050c010b0b200420006b21000b2003200020032802286a41016a2200360228200020032802342204490d04200020032802244b0d0420032802202105200341106a41002004200d410441c09204100f20032802142004460440027f2005200020046b22086a210020032802102105034041002004450d011a200441016b210420052d0000210620002d00002107200041016a2100200541016a210520062007460d000b200720066b0b450d020b200328022821000c040b200a41003a000020020c010b200a41013a0000200841016a0b220041b08a041036200c2003280208200328020c200b28020c1100000d03200320012002200041c08a04103720032802042102200328020021010c040b2004200541c48e041022000b200328022c2104200328022421050c000b000b0b4101210f0b200341406b2400200f0b4e01027f230041106b22052400200541086a200320012002102d20052802082206450440200120024100200320041038000b200528020c21012000200636020020002001360204200541106a24000b4d0002402003450d000240200220034d044020022003470d010c020b200120036a2c000041bf7f4a0d010b200120022003200220041038000b2000200220036b3602042000200120036a3602000b980601027f23004180016b220524002005200336021c200520023602182005027f024020014181024f0440418002210603402006450440410021060c030b200020066a2c000041bf7f4a0d02200641016b21060c000b000b2005200136022420052000360220200541bcad0436022841000c010b200541106a20002001200641bc9104103620052005290310370320200541d0920436022841050b36022c024002402005200120024f047f200120034f0d0120030520020b360238200541d4006a4103360200200541ec006a4102360200200541e4006a410236020020054203370244200541f892043602402005410336025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580c010b200220034d0440024002402002450d00200120024d044020012002460d010c020b200020026a2c00004140480d010b200321020b200520023602300340024002402002450440410021020c010b200120024d044020012002470d02200121020c010b200020026a2c00004140480d010b200541086a2000200120022004103720052005280208220036025820052000200528020c6a36025c2005200541d8006a102c200410392201360234200520023602382005027f41012001418001490d001a41022001418010490d001a41034104200141808004491b0b20026a36023c200541d4006a4105360200200541fc006a4102360200200541f4006a4102360200200541ec006a4107360200200541e4006a4108360200200542053702442005418894043602402005410336025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580c030b200241016b21020c000b000b200541f4006a4102360200200541ec006a4102360200200541e4006a4103360200200541d4006a410436020020054204370244200541b493043602402005410336025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580b200541406b2004100a000b1a002000418080c40046044041e08704412b2001100e000b20000b8f0802087f017e4101210702402001280218220841272001411c6a28020028021022091101000d0041f4002103410221010240027f0240027f024002400240024002402000280200220241096b0e050803010104000b2002412746200241dc0046720d010b2002410b7421044100210141202100412021030340200020014d0440200121030c060b02402004200341017620016a220341027441e4a1046a280200410b7422054d044020042005460d07200321000c010b200341016a21010b200020016b21030c000b000b41020c040b41ee000c010b41f2000b21030c020b0240027e024002402003200020014b6a2206411f4d04402006410274210141c20521032006411f470440200141e8a1046a28020041157641016b21030b41002100410021052006200641016b22044f0440200441204f0d02200441027441e4a1046a28020041ffffff007121050b200141e4a1046a280200411576220141c305200141c3054b1b2104200220056b21050240024003400240024002402001200347047f20012004460d012000200141e4a2046a2d00006a220020054d0d0220010520030b4101710d08200241808004490d022002418080084f0d04200241eb9a04412a41bf9b0441c00141ff9c0441b603103b0d0a0c050b200441c30541c4a104102a000b200141016a21010c010b0b200241cc95044128419c960441a00241bc980441af02103b450d010c060b200241e0ffff007141e0cd0a46200241b9ee0a6b41074972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d050b200241017267410276410773ad4280808080d000840c030b2006412041b4a104102a000b2004412041d4a104102a000b200241017267410276410773ad4280808080d000840b210a41032101200221030c020b41010b2101200221030b034020012102410021012003210002400240024002400240200241016b0e03040200010b02400240024002400240200a422088a741ff017141016b0e050004010203050b200a42ffffffff8f6083210a41fd002100410321010c070b200a42ffffffff8f608342808080802084210a41fb002100410321010c060b200a42ffffffff8f608342808080803084210a41f5002100410321010c050b200a42ffffffff8f60834280808080c00084210a41dc002100410321010c040b413041d7002003200aa7220141027476410f712200410a491b20006a41d08704103921002001450d02200a42808080807083200a42017d42ffffffff0f8384210a410321010c030b20084127200911010021070c040b41dc002100410121010c010b200a42ffffffff8f608342808080801084210a410321010b200820002009110100450d000b0b20070bcc0201077f230041106b22072400200120024101746a210c20004180fe0371410876210a41002102200041ff0171210d02400240034002402001200c470440200141026a210b200220012d00016a210820012d00002209200a460d01200b2101200821022009200a4d0d020b200520066a2103200041ffff0371210041012102034020032005460d03200541016a210120052d000022044118744118752206410048044020012003460d0520052d0001200641ff0071410874722104200541026a21010b200020046b22004100480d0320024101732102200121050c000b000b200741086a200220082003200441ac9504100f20072802082102200728020c210103402001450440200b2101200821020c020b200141016b210120022d0000200241016a2102200d470d000b0b410021020b200741106a240020024101710f0b41e08704412b41bc9504100e000be30101017f230041106b220224002002410036020c20002002410c6a027f0240024020014180014f04402001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200220013a000c41010c020b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040b1035200241106a24000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41a48d04200241086a1019200241206a24000b0d0020002802002001200210350b0b0020002802002001103c0b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a103d200241206a24000b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1019200241206a24000b0b0020002802002001102e0b1b00200128021841b1ae0441052001411c6a28020028020c1100000b1b00200028021841b1ae0441052000411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a280200220441b48804410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241c48804360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a1032450d010c020b20032802002200200328020428020c11070042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241c488043602282002410a3602142002200241106a36023820022002410c6a36021020042001200241286a10320d010b200328020c2100200241246a41033602002002413c6a410b360200200241346a410b360200200242033702142002418c880436021020022000410c6a3602382002200041086a3602302002410236022c200220003602282002200241286a36022020042001200241106a103221000b200241406b240020000b9c0501027f230041406a22022400024002400240024002400240024002400240024002400240024020002d000041016b0e0b0102030405060708090a0b000b41012100200128021841b4ac0441062001411c6a28020028020c1100000d0b024020012d0000410471450440200128021841d48a044101200128021c28020c1100000d0d20011044450d010c0d0b200128021841d28a044102200128021c28020c1100000d0c20012802002103200241013a0017200241346a419c8904360200200241106a200241176a3602002002200336021820022001290218370308200220012d00203a00382002200128020436021c20022001290210370328200220012902083703202002200241086a360230200241186a10440d0c200228023041d08a044102200228023428020c1100000d0c0b200128021841d58a044101200128021c28020c11000021000c0b0b200128021841a7ac04410d2001411c6a28020028020c11000021000c0a0b20012802184199ac04410e2001411c6a28020028020c11000021000c090b2001280218418eac04410b2001411c6a28020028020c11000021000c080b200128021841f5ab0441192001411c6a28020028020c11000021000c070b200128021841e7ab04410e2001411c6a28020028020c11000021000c060b200128021841d3ab0441142001411c6a28020028020c11000021000c050b200128021841c7ab04410c2001411c6a28020028020c11000021000c040b200128021841bcab04410b2001411c6a28020028020c11000021000c030b200128021841b5ab0441072001411c6a28020028020c11000021000c020b200128021841a6ab04410f2001411c6a28020028020c11000021000c010b20012802184194ab0441122001411c6a28020028020c11000021000b200241406b240020000bc40201087f2002410f4d047f2000052000410020006b41037122056a210620012104200021030340200320064f450440200320042d00003a0000200441016a2104200341016a21030c010b0b200220056b2202417c7121070240200120056a22054103710440200620076a21082005417c71220341046a2101200541037422044118712109410020046b411871210a20032802002104200621030340200320084f0d022003200420097620012802002204200a7472360200200141046a2101200341046a21030c000b000b200620076a210420052101200621030340200320044f0d0120032001280200360200200141046a2101200341046a21030c000b000b20024103712102200520076a2101200620076a0b2103200220036a21020340200220034d450440200320012d00003a0000200141016a2101200341016a21030c010b0b20000b0bee2e0100418080040be52e636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f7472616974732f6d6f642e72732700010039000000a80000000a00000073746f7261676520656e7472792077617320656d707479002700010039000000a90000000a0000000c00000001000000010000000d0000005765206465636f646520604e6020656c656d656e74733b2071656400d016010061000000cd020000170000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273656e636f756e746572656420756e6578706563746564206572726f72140101001c000000d40001004000000018010000170000006469737061746368696e6720696e6b2120636f6e7374727563746f72206661696c65643a2000000048010100250000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6578616d706c65732f666c69707065722f6c69622e7273780101003000000008000000050000006469737061746368696e6720696e6b21206d657373616765206661696c65643a20000000b8010100210000000e00000004000000040000000f0000001000000011000000120000000000000001000000130000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700000c02010071000000fd010000050000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273d30201006d000000550200001c0000002e2e000050030100020000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e72730000005c03010071000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75653abc160100000000000b040100010000000b040100010000001400000000000000010000001500000070616e69636b65642061742027272c2040040100010000004104010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732000005404010020000000740401001200000060000000160000000c00000004000000170000001800000019000000202020202f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e7273000000b8040100750000002f00000021000000b80401007500000030000000120000002c0a280a28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e72730000560501007000000065000000140000003078303030313032303330343035303630373038303931303131313231333134313531363137313831393230323132323233323432353236323732383239333033313332333333343335333633373338333934303431343234333434343534363437343834393530353135323533353435353536353735383539363036313632363336343635363636373638363937303731373237333734373537363737373837393830383138323833383438353836383738383839393039313932393339343935393639373938393900001a00000004000000040000001b0000001c0000001d0000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273000000bc06010075000000420000001e000000bc060100750000005b0000000500000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468205407010012000000660701002200000072616e676520656e6420696e6465782098070100100000006607010022000000736c69636520696e64657820737461727473206174202062757420656e64732061742000b807010016000000ce0701000d000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028ec07010015000000010801002b00000055050100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727344080100780000001d010000110000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e7273cc08010074000000b7010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000550901000b00000060090100160000009804010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e6720600000900901000e0000009e09010004000000a2090100100000009804010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060550901000b000000d409010026000000fa09010008000000020a01000600000098040100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e72730000300a01007a0000000a0000001c000000300a01007a0000001a0000003600000000010305050606020706080709110a1c0b190c1a0d100e0d0f0410031212130916011704180119031a071b011c021f1620032b032d0b2e01300331023201a702a902aa04ab08fa02fb05fd02fe03ff09ad78798b8da23057588b8c901cdd0e0f4b4cfbfc2e2f3f5c5d5fe2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d11293a3b4549575b5c5e5f64658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff806d71dedf0e1f6e6f1c1d5f7d7eaeaf7fbbbc16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f747596262e2fa7afb7bfc7cfd7df9a409798308f1fd2d4ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab051f09811b03190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15054e071b0757070206160d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd03590716091809140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a062f314d0380a4083c030f033c0738082b0582ff1118082f112d03210f210f808c048297190b158894052f053b07020e180980be22740c80d61a0c0580ff0580df0cf29d033709815c1480b80880cb050a183b030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a61081f50701202a064c04808d0480be031b030f0d000601010301040205070702080809020a050b020e041001110212051311140115021702190d1c051d0824016a046b02af03bc02cf02d102d40cd509d602d702da01e005e102e704e802ee20f004f802fa02fb010c273b3e4e4f8f9e9e9f7b8b9396a2b2ba86b1060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5fbfeeef5a62f4fcff9a9b2e2f2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fe7ecefffc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b4e43813709160a08183b45390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a161a261c1417094e042409440d19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d133a060a362c041780b93c64530c48090a46451b4808530d498107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48a4c630d842f8fd18247a1b98239072a045c06260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2e781332d03110408818c89046b050d0309071092604709743c80f60a7308701546809a140c570919808781470385420f1584501f80e12b80d52d031a040281401f113a050184e080f7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d80510030d03740c59070c04010f0c0438080a062808224e81540c1503050307091d030b05060a0a060808070980cb250a84062f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e72730000351001007d0000004b00000028000000351001007d0000005700000016000000351001007d000000520000003e0000000003000083042000910560005d13a0001217201f0c20601fef2ca02b2a30202c6fa6e02c02a8602d1efb602e00fe20369eff6036fd01e136010a2137240de137ab0e61392f18a139301ce147f31e214cf06ae14f4f6f21509dbca15000cf615165d1a15100da215200e0e15330e16155aee2a156d0e8e15620006e57f001ff5700700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b033c082a180120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c01090128010301370101030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d021e021e02400201070801020b09012d030101750222017603040209010603db0202013a010107010101010208060a0201301f310430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c6400001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990b31047b01360f290102020a033104020207013d03240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002002e0217000101030405080802071e0494030037043208010e011605010f00070111020701020105000700013d0400076d07006080f000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72734a14010072000000e6050000090000000a000000bc16010000000000cc140100010000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000e0140100410000005800000009000000e01401004100000058000000310000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000441501003e000000780100001400000045636473615265636f7665724661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e644e6577436f6e74726163744e6f7446756e6465645472616e736665724661696c656442656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f64650000bc160100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f723a200000bc16010000000000bc160100020000002f686f6d652f6d696368692f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e72734572726f720000000000000100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" + }, + "contract": { + "name": "flipper", + "version": "3.0.0-rc6", + "authors": ["Parity Technologies "] + }, + "V2": { + "spec": { + "constructors": [ + { + "args": [ + { + "label": "init_value", + "type": { + "displayName": ["bool"], + "type": 0 + } + } + ], + "docs": ["Creates a new flipper smart contract initialized with the given value."], + "label": "new", + "selector": "0x9bae9d5e" + }, + { + "args": [], + "docs": ["Creates a new flipper smart contract initialized to `false`."], + "label": "default", + "selector": "0xed4b9d1b" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [" Flips the current value of the Flipper's boolean."], + "label": "flip", + "mutates": true, + "payable": false, + "returnType": null, + "selector": "0x633aa551" + }, + { + "args": [], + "docs": [" Returns the current value of the Flipper's boolean."], + "label": "get", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 0 + }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "bool" + } + } + } + ] + } +} diff --git a/.api-contract/src/test/contracts/ink/v2/index.ts b/.api-contract/src/test/contracts/ink/v2/index.ts new file mode 100644 index 00000000..45359d54 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v2/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as erc20 } from './erc20.contract.json' assert { type: 'json' }; +export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v3/flipper.contract.json b/.api-contract/src/test/contracts/ink/v3/flipper.contract.json new file mode 100644 index 00000000..7aa07d9c --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v3/flipper.contract.json @@ -0,0 +1,91 @@ +{ + "source": { + "hash": "0xbb381c2fc980121b17c7b2bf2756d5964a12151cb846e0a9eff9cc337806456d", + "language": "ink! 3.0.0-rc7", + "compiler": "rustc 1.60.0-nightly", + "wasm": "0x0061736d0100000001280860027f7f0060000060037f7f7f0060017f006000017f60017f017f60037f7f7f017f60017f017e02880106057365616c30107365616c5f7365745f73746f726167650002057365616c30107365616c5f6765745f73746f726167650006057365616c300a7365616c5f696e7075740000057365616c300b7365616c5f72657475726e0002057365616c30167365616c5f76616c75655f7472616e73666572726564000003656e76066d656d6f727902010210030a090400050103070001000608017f01418080040b071102066465706c6f7900080463616c6c000c0ac40b096102027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a1004200028021c41114f0440000b2001290300210220002903082103200041206a2400410541042002200384501b0bc20101027f230041306b220224004101210302402000027f20014101714504404104100541ff01714105470d011a0b200241106a4200370300200241186a4200370300200241206a42003703002002420037030820024201370300200241808001360228200241086a41808004200241286a100120022802282201418180014f720d012002200136022c200241808004360228200241286a100741ff017122014102460d014100210320014100470b3a0001200020033a0000200241306a24000f0b000b4201027f230041106b22012400200141086a2000100d20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0bd30202057f027e230041306b2200240020004180800136020c200041808004360208200041086a1009200020002903083703100240200041106a100a22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721012005421888a721022005421088a7210302402006a741087641ff0171220441ed014704402004419b0147200341ff017141ae014772200241ff0171419d0147200141de004772720d02200041106a100741ff017122014102460d02100541ff01714105470d02200041286a4200370300200041206a4200370300200041186a4200370300200042003703102001410171200041106a100b0c010b200341ff017141cb0047200241ff0171419d0147722001411b47720d01200041286a4200370300200041206a4200370300200041186a4200370300200042003703104100200041106a100b0b200041306a24000f0b000b4101027f230041106b2201240020012000280204220236020c20002802002001410c6a10022002200128020c2202490440000b20002002360204200141106a24000b850102027f017e230041106b220124002001420437030841042102027f02400240034020012000100d20012d00004101710d01200141086a20026a20012d00013a0000200241016a22024108470d000b20012903082203a741044f0d01000b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b6b01017f230041306b220224004180800420003a0000200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a2900003703002002420137030820022001290000370310200241106a4180800441011000200241306a24000b910302057f027e230041406a22002400024002400240100541ff01714105470d0020004180800136021c200041808004360218200041186a100920002000290318370320027f0240200041206a100a22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721022005421888a721012005421088a721032006a741087641ff01712204412f470440200441e30047200341ff0171413a4772200141ff017141a50147200241d1004772720d014101210141000c020b200341ff017141860147200141ff017141db0047720d00410021014100200241d901460d011a0b4101210141010b0d00024020010440200041086a418002100620002d0009210120002d00084101710d01200041386a4200370300200041306a4200370300200041286a4200370300200042003703202001417f73410171200041206a100b0c040b200041106a4100100620002d0011210120002d0010410171450d020b20014105460d020b000b4180800420014101713a000041004180800441011003000b200041406b24000b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000b" + }, + "contract": { + "name": "flipper", + "version": "3.0.0-rc7", + "authors": ["Parity Technologies "] + }, + "V3": { + "spec": { + "constructors": [ + { + "args": [ + { + "label": "init_value", + "type": { + "displayName": ["bool"], + "type": 0 + } + } + ], + "docs": ["Creates a new flipper smart contract initialized with the given value."], + "label": "new", + "payable": false, + "selector": "0x9bae9d5e" + }, + { + "args": [], + "docs": ["Creates a new flipper smart contract initialized to `false`."], + "label": "default", + "payable": true, + "selector": "0xed4b9d1b" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [" Flips the current value of the Flipper's boolean."], + "label": "flip", + "mutates": true, + "payable": false, + "returnType": null, + "selector": "0x633aa551" + }, + { + "args": [], + "docs": [" Returns the current value of the Flipper's boolean."], + "label": "get", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 0 + }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "bool" + } + } + } + ] + } +} diff --git a/.api-contract/src/test/contracts/ink/v3/index.ts b/.api-contract/src/test/contracts/ink/v3/index.ts new file mode 100644 index 00000000..c0c494cb --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v3/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; +// A complex contract example with traits. +export { default as traitErc20 } from './trait_erc20.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json b/.api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json new file mode 100644 index 00000000..a24188fa --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json @@ -0,0 +1,549 @@ +{ + "source": { + "hash": "0x819f50e02feb5b4413261150c77edb5fdf85877ac1da53210f1b1327f342b81a", + "language": "ink! 3.0.0-rc7", + "compiler": "rustc 1.58.0-nightly", + "wasm": "0x0061736d010000000180011360037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060047f7f7f7f0060017f0060057f7f7f7f7f0060000060017f017e60067f7f7f7f7f7f0060047f7f7e7e0060037e7e7f0060057f7f7f7e7e006000017f60017f017f60047f7f7f7f017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f60057f7f7f7e7e017f028a020b057365616c30127365616c5f64656275675f6d6573736167650001057365616c30127365616c5f636c6561725f73746f726167650005057365616c30127365616c5f6465706f7369745f6576656e740004057365616c30107365616c5f7365745f73746f726167650003057365616c30107365616c5f6765745f73746f726167650000057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e0003057365616c30147365616c5f686173685f626c616b65325f3235360003057365616c300b7365616c5f63616c6c65720002057365616c30167365616c5f76616c75655f7472616e73666572726564000203656e76066d656d6f7279020102100372710004030303020203030a0b0c0a02020201010204040302030204060504020202020b0305030501000802050304020502010305020d0302020507050704120306030100000301020107020101040810010f040003090303020e040101030300010100060606060101110101010101090404040501700118180608017f01418080040b071102066465706c6f7900430463616c6c0045091d010041010b171a1b7355306465775469717475552d2d4d4f512d762d570ac8b201712b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b4180800441214188b604100c000b4601017f230041206b22032400200341146a410036020020034184be04360210200342013702042003200136021c200320003602182003200341186a36020020032002101c000b3501017f230041106b22032400200341086a410020012002100b200020032802083602002000200328020c360204200341106a24000be60101037f230041d0006b22032400200320013602082003200236020c200341286a22014200370300200341206a22044200370300200341186a220542003703002003420037031020034100360230200342808001370244200341a6c204360240200341086a200341406b100f2002280200200341406b10102002280204200341406b1010200320032903403702342003200341306a2003280248101120032802002003280204200341106a1007200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290310370000200341d0006a24000b0d00200120002802004120102c0b0a00200120004120102c0b5e01027f200141086a22032802002104200341003602002001280204210320014184be04360204200220044b044041ecb60441234180b804100c000b2001200420026b3602082001200220036a36020420002002360204200020033602000bda0101037f230041d0006b22032400200320013602082003200236020c200341286a22014200370300200341206a22044200370300200341186a220542003703002003420037031020034100360230200342808001370244200341a6c204360240200341086a200341406b100f2002280200200341406b1010200320032903403702342003200341306a2003280248101120032802002003280204200341106a1007200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290310370000200341d0006a24000b3401017f230041306b220424002004200136020c200441106a20002004410c6a101220022003200441106a1014200441306a24000b4e01017f230041206b22032400200341186a41808001360200200341a6c20436021420034100360210200341086a200341106a20002001101620022003280208200328020c1003200341206a24000b3b01017f230041306b220524002005200236020c20052001360208200541106a2000200541086a100e20032004200541106a1014200541306a24000b5802017f017e230041206b2204240020012902042105200441003602182004200537031020022003200441106a102b20012004290310370204200441086a20012004280218101120002004290308370300200441206a24000bd40102027f057e230041306b220224000240200029030022084202510d0020012900182104200129001021052001290008210620012900002107200041186a22012d0000200141013a00004101710d0020084201520440200241286a2004370300200241206a2005370300200241186a20063703002002200737031020024201370308200241106a10010c010b200241286a2004370300200241206a2005370300200241186a200637030020022007370310200242013703082000290308200041106a290300200241106a10140b200241306a24000bc70102017f027e230041e0006b220224002002200136020c200241106a2001101920022d00104101460440200220022d00113a0037200241cc006a4102360200200241dc006a41013602002002420237023c200241ec8204360238200241023602542002200241d0006a3602482002200241376a36025820022002410c6a360250200241386a41d08304101c000b200241186a2903002103200241206a2903002104200041106a200241286a2903003703002000200437030820002003370300200241e0006a24000be40102017f027e230041406a22022400200241808001360224200241a6c20436022002400240024002402001200241206a103a0e0402010100010b200041003a0000200041086a42003703000c020b2002413c6a410036020020024184be043602382002420137022c200241e0be04360228200241286a41bcbf04101c000b20022002290320370328200241086a200241286a102a2002290308a70440200041013b01000c010b200241186a290300210320022903102104200041003a0000200041106a2004370300200041086a4201370300200041186a20033703000b200241406b24000bd90401017f230041106b22022400024002400240024002400240024002400240024002400240024020002d000041016b0e0b0102030405060708090a0b000b41012100200128021841cebb0441062001411c6a28020028020c1100000d0b024020012d0000410471450440200128021841f491044101200128021c28020c1100000d0d200128021841e4c1044105200128021c28020c110000450d010c0d0b200128021841f291044102200128021c28020c1100000d0c200241013a000f200241086a2002410f6a36020020022001290218370300200241e4c1044105106b0d0c200241f091044102106b0d0c0b200128021841f591044101200128021c28020c11000021000c0b0b200128021841c1bb04410d2001411c6a28020028020c11000021000c0a0b200128021841b3bb04410e2001411c6a28020028020c11000021000c090b200128021841a8bb04410b2001411c6a28020028020c11000021000c080b2001280218418ebb04411a2001411c6a28020028020c11000021000c070b20012802184180bb04410e2001411c6a28020028020c11000021000c060b200128021841f0ba0441102001411c6a28020028020c11000021000c050b200128021841e4ba04410c2001411c6a28020028020c11000021000c040b200128021841d9ba04410b2001411c6a28020028020c11000021000c030b200128021841d2ba0441072001411c6a28020028020c11000021000c020b200128021841c3ba04410f2001411c6a28020028020c11000021000c010b200128021841b0ba0441132001411c6a28020028020c11000021000b200241106a240020000b810201047f230041406a220224002000280200210441002100200241346a410036020020024184be0436023020024201370224200241d8bc04360220027f4101200141186a28020022052001411c6a2802002201200241206a10680d001a024003402002410436021c2002410436021420024184bd043602102002410436020c200241e4bc043602082002410336023c200241033602342002410336022c200241033602242002200020046a22033602202002200341036a3602382002200341026a3602302002200341016a3602282002200241206a36021820052001200241086a10680d01200041046a22004120470d000b41000c010b41010b200241406b24000b840401087f230041106b220324002003200136020c20032000360208200341d48f0436020420034184be04360200230041406a220224002002200336020c200241346a41013602002002420237022420024194b8043602202002410836023c2002200241386a36023020022002410c6a360238200241106a21064100210041002101230041206b22042400200241206a22052802002107024002400240024002402005280204220941037422080440200741046a21030340200120032802006a22002001490d02200341086a210320002101200841086b22080d000b0b02400240200541146a280200450440200021030c010b02402009450d0020072802040d004100210120004110490d020b41002101200020006a22032000490d010b200322014100480d020b20042001105320042802002200450d0220042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a104b0d03200441206a24000c040b41808804411c41a4af04100c000b1052000b000b41f889044133200441086a419c880441948b041049000b2002280210210020022802182101024041a4c2042d000045044041a5c2042d00004101710d010b200020011000410947044041a4c20441013a00000b41a5c20441013a00000b000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101e20042902142105200441003602282004200537032020012002200441206a101f2003200441206a102020042004290320370214200441086a200441106a20042802281011200441206a2004280208200428020c10212000200441206a1022200441406b24000b4b02017f017e230041106b22042400200120034b04402001200341bcb904102e000b200441086a2001200320021079200429030821052000410036020020002005370204200441106a24000b1000200120021027200220002001102c0b230020002d000041014704402001410010370f0b200141011037200041016a200110100bb40101017f230041306b2203240020004200370000200041186a4200370000200041106a4200370000200041086a42003700000240200241214f0440200341286a4200370300200341206a4200370300200341186a42003703002003420037031020012002200341106a1007200341202000100d20032802002003280204200341106a412041f0830410240c010b200341086a20022000100d2003280208200328020c2001200241e0830410240b200341306a24000b960101047f230041206b220224002000280204210420004184be04360204200041086a2203280200210520034100360200200241086a2004200520002802002203102620024100360218200220022903083703102001200241106a10102003200320022802186a22014d0440200020053602082000200436020420002001360200200241206a24000f0b41808404411c41bc8404100c000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101e20042902142105200441003602282004200537032020012002200441206a101f2003200441206a101020042004290320370214200441086a200441106a20042802281011200441206a2004280208200428020c10212000200441206a1022200441406b24000b7b0020012003460440200020022001100a1a0f0b230041306b2200240020002003360204200020013602002000411c6a41023602002000412c6a41043602002000420337020c200041d49904360208200041043602242000200041206a360218200020003602282000200041046a360220200041086a2004101c000b950101057f230041206b220124002000280204210320004184be04360204200041086a2202280200210420024100360200200141086a2003200420002802002202102620014100360218200120012903083703104104200141106a10272002200220012802186a22054b044041808404411c41bc8404100c000b200020043602082000200336020420002005360200200141206a24000b4801017f230041106b22042400200220034904402003200241ac8404102e000b200441086a200320022001100b200020042802083602002000200428020c360204200441106a24000b7401017f230041106b2202240002402000413f4d04402001200041027410370c010b200041ffff004d0440200220004102744101723b010e20012002410e6a4102102c0c010b200041ffffffff034d04402000410274410272200110410c010b2001410310372000200110410b200241106a24000bae0102017f027e230041406a22022400200241186a200110290240024020022d0018410147044020022001102a2002290300a7450d010b200042013703000c010b200241106a2903002103200229030821042000200229001937000820004200370300200041286a2004370300200041306a2003370300200041206a200241316a290000370000200041186a200241296a290000370000200041106a200241216a2900003700000b200241406b24000bb50202037f017e230041306b22022400200241086a41047221042000027f0240034020022001103320022d00004101710d01200320046a20022d00013a0000200341016a22034120470d000b200041086a200241136a2f00003b00002000410a6a200241156a2d00003a00002000410f6a2002411a6a2f01003b0000200041116a2002411c6a2d00003a0000200041166a200241216a2f00003b0000200041186a200241236a2d00003a0000200220022f010c3b0104200220022d000e3a0006200241166a28010021012002411d6a2800002103200241246a2902002105200228000f2104200041036a20022d00063a0000200020022f01043b0001200041196a2005370000200041126a20033600002000410b6a2001360000200041046a200436000041000c010b41010b3a0000200241306a24000b6402027f037e230041106b22022400200241086a22034200370300200242003703000240200120024110103145044020032903002105200229030021060c010b420121040b2000200637030820002004370300200041106a2005370300200241106a24000b2a01017f230041106b220324002003200137030820032000370300200220034110102c200341106a24000b6701037f230041106b220324002000280208220420026a2205200449044041d0b604411c41fcb804100c000b200341086a2004200520002802002000280204418cb90410782003280208200328020c20012002419cb904102420002005360208200341106a24000b0300010b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341809804360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a2002101c000b4801017f230041206b22012400200141146a410136020020014201370204200141d4bb043602002001410536021c200120003602182001200141186a360210200141d08604101c000bc00101037f230041306b2202240041bbbc042103411921040240024002400240024020002d000041016b0e0400010203040b419fbc042103411c21040c030b4189bc042103411621040c020b41f5bb042103411421040c010b41dcbb0421030b2002411c6a41013602002002200436022c20022003360228200241063602242002420137020c200241d4bb04360208200141186a2802002001411c6a2802002002200241286a3602202002200241206a360218200241086a1068200241306a24000b6001047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206107a200120022003280208200328020c41d4c10410242003200220042006107a200020032903003702000b200341106a240020050b910102027f017e230041106b220124002001420437030841042102027f02400240034020012000103320012d00004101710d01200141086a20026a20012d00013a0000200241016a22024108470d000b20012903082203a741044f0d014184be04411b41a0be04100c000b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b3f01027f230041106b22022400200241003a000f200020012002410f6a410110312201047f41000520022d000f0b3a0001200020013a0000200241106a24000bfe0502047f027e23004190016b22012400200141086a200041e000100a1a200141106a21030240200129030822064201520440200141f0006a220041808001360200200141a6c20436026c20014100360268200141e8006a102520014188016a220220002802003602002001200129036837038001200141e8006a20014180016a41dc84041035200141e8006a41e8840441152003101d20022000280200360200200120012903683703800120014180016a41fd84044113200341216a101d20002002280200360200200120012903800137036820014180016a200141e8006a41908504200141d8006a10360c010b200141f0006a220041808001360200200141a6c20436026c20014100360268200141e8006a102520014188016a220220002802003602002001200129036837038001200141e8006a20014180016a41b885041035200141e8006a41c4850441162003102320022000280200360200200120012903683703800120014180016a41da85044118200141306a102320002002280200360200200120012903800137036820014180016a200141e8006a41f28504200141d0006a10360b230041206b22002400200041186a220420014180016a220241086a28020036020020002002290200220537031020004100360210200041086a200041106a2005a7101120002903082105200141e8006a220241086a2004280200360200200220002903103702002002200537020c200041206a240020014188016a200141f0006a2802003602002001200129036837038001200141f8006a2802002100200128027420012902840121052001410036027020012005370368027f2006500440200141e8006a410010372003200141e8006a1020200341216a200141e8006a1020200141d8006a0c010b200141e8006a410110372003200141e8006a1010200141306a200141e8006a1010200141d0006a0b2203290300200341086a290300200141e8006a102b2001200129036837028401200120014180016a20012802701011200020012802002001280204100220014190016a24000bb40102027f017e230041406a22032400200341106a2001280200200141046a280200200141086a2204280200101e20032902142105200341003602282003200537032020022802002002280204200341206a101f200341206a2002280208410f102c20032003290320370214200341086a200341106a20032802281011200341206a2003280208200328020c10212001200341206a1022200041086a200428020036020020002001290200370200200341406b24000bb40102027f017e230041406a22042400200441106a2001280200200141046a280200200141086a2205280200101e20042902142106200441003602282004200637032020024116200441206a101f2003290300200341086a290300200441206a102b20042004290320370214200441086a200441106a20042802281011200441206a2004280208200428020c10212001200441206a1022200041086a200528020036020020002001290200370200200441406b24000b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b2002200341acb904105d000b5901027e20002903002101200041086a2903002102230041206b22002400200041186a41808001360200200041a6c20436021420004100360210200041086a200041106a20012002101641002000280208200028020c103b000baa0102047f017e230041206b22032400200341186a41808001360200200341a6c20436021420034100360210200341086a230041206b22022400200341106a220429020421062002410036021820022006370310200241106a200141ff0171410247047f200241106a4101103720010541000b103720042002290310370204200241086a2004200228021810112002290308370300200241206a240020002003280208200328020c103b000b5401017f230041106b220224002002200128020436020c200020012802002002410c6a100421002001200228020c103d410c21012000410b4d0440200041027441ecc1046a28020021010b200241106a240020010b0b002000200120021006000b6001017f230041106b2201240020004200370000200041186a4200370000200041106a4200370000200041086a420037000020014120360204200120003602002001412036020c20002001410c6a10082001200128020c103d200141106a24000b3701017f230041106b22022400200241086a410020012000280200200028020441a0ba04107820002002290308370200200241106a24000b6c02027f027e230041206b22002400200041086a220142003703002000420037030020004110360214200020003602102000411036021c20002000411c6a1009200041106a200028021c103d2001290300210220002903002103200041206a2400410541042002200384501b0b4c01017f230041206b220324002000450440410120021039000b200341186a4200370300200341106a4200370300200341086a420037030020034200370300200120031017410020021039000bc101002000027f024020014101710d00103e41ff01714105460d00200041043a000141010c010b200041c1006a4200370000200041396a4200370000200041316a4200370000200041296a4200370000200041f8006a4200370300200041f0006a420237030020004180016a420037030020004188016a4200370300200041d8006a4200370000200041d0006a4201370000200041e0006a4200370000200041e8006a4200370000200041286a41013a0000200041086a420237030041000b3a00000b2601017f230041106b220224002002200036020c20012002410c6a4104102c200241106a24000b2e01017f230041e0006b22012400200141086a200041d800100a1a2001420037030020011034200141e0006a24000ba90502027f027e230041d0026b220024000240103e41ff01714105460440200041808001360224200041a6c204360220200041206a1044200020002903203703a801027f4101200041a8016a10324281feffffff1f834280b6baede90b520d001a200041086a200041a8016a102a200041186a29030021022000290310210320002802080b0440410321010c020b103e41ff01714105470440410421010c020b200041e1016a4200370000200041d9016a4200370000200041d1016a4200370000200041c9016a4200370000200041f8016a420037030020004180026a420037030020004188026a420037030020004198026a4200370300200041a0026a4200370300200041a8026a4200370300200042013703f0012000420237039002200041013a00c801200042023703a801200041b0026a103c200041f0016a200041b0026a200320021013027f20002903a8014202520440200042013703a801200041b0016a0c010b200042013703a801200041b0016a0b2201200337030020012002370308200041c0016a220141003a0000200041f0006a2002370300200041da006a200041c8026a290300370100200041d2006a200041c0026a290300370100200041ca006a200041b8026a290300370100200041c2006a20002903b00237010020002003370368200041013a0041200041003a0020200041206a1042200041206a200041a8016a418801100a1a20014200370300200041b8016a4200370300200041b0016a4200370300200042003703a801200041206a200041a8016a1017200041d0026a24000f0b200041043a00a801200041a8016a102f000b200020013a00b002200041bc016a4101360200200042013702ac012000418887043602a801200041053602242000200041206a3602b8012000200041b0026a360220200041a8016a41d08604101c000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10052000200128020c103d200141106a24000bb81d02067f077e23004190056b2200240002400240103e41ff01712201410546044020004180800136026c200041a6c204360268200041e8006a1044200020002903683703b001200041b0016a103222064201832207a70d01200642807e8342002007501b22074280feffffff1f832206422088a721032006421888a721022006421088a7210402400240024002400240024002402007a741087641ff017122014182016b0e020105000b024020014192016b0e020402000b200141f400460d02200141fa01470d0741062101200441ff0171419801470d08200241ff01714133470d08200341a301470d08200041a0036a200041b0016a102820002903a0034201510d07200041ae026a200041c0036a2903002206370100200041a6026a200041b8036a2903002207370100200041de046a200041b0036a2903002208370100200041e6046a2007370100200041ee046a2006370100200041f6016a2008370000200041fe016a200737000020004186026a2006370000200020002903a80322063701d604200020063700ee01200041d0036a2903002107200041c8036a2903002106200041c0016a200041e8016a4126100a1a410321020c050b41062101200441ff017141c400470d07200241ff017141a101470d0741002102200341ad01460d040c070b41062101200441ff0171413a470d06200241ff017141e301470d06200341c801470d06200041a0036a200041b0016a10294101210220002d00a0034101460d05200041c8016a200041aa036a290100370300200041d0016a200041b2036a290100370300200041d7016a200041b9036a290000370000200020002901a2033703c00120002d00a10321050c030b41062101200441ff017141a201470d05200241ff017141fa00470d05200341c801470d05200041d0046a200041b0016a102920002d00d0044101460d0420004190026a200041b0016a102920002d0090024101460d04200041c2036a200028009402360000200041d0006a200041b0026a2d00003a0000200041a8036a200041da046a290100370300200041b0036a200041e2046a290100370300200041b7036a200041e9046a29000037000020002000280091023600bf03200020002901d2043703a0032000200041a8026a290300370348200041a0026a290300210720004198026a290300210620002d00d1042105200041c0016a200041a0036a4126100a1a410221020c020b41062101200441ff0171412e470d04200241ff01714129470d042003411f470d04200041a0036a200041b0016a102820002903a0034201510d03200041ae026a200041c0036a2903002206370100200041a6026a200041b8036a2903002207370100200041de046a200041b0036a2903002208370100200041e6046a2007370100200041ee046a2006370100200041f6016a2008370000200041fe016a200737000020004186026a2006370000200020002903a80322063701d604200020063700ee01200041d0036a2903002107200041c8036a2903002106200041c0016a200041e8016a4126100a1a410421020c010b41062101200441ff0171419f01470d03200241ff01714102470d03200341e300470d03200041c0016a200041b0016a102920002d00c0014101460d02200041e8016a200041b0016a102920002d00e8014101460d02200041306a200041b0016a102a2000290330a70d02200041406b29030021082000290338210a200041c8046a2201200041d9016a290000370300200041c0046a2205200041d1016a290000370300200041b8046a2202200041c9016a290000370300200041d0006a20004181026a2d00003a0000200020002900c1013703b0042000200041f9016a290000370348200020004182026a2801003602b801200020004185026a2800003600bb01200041f1016a290000210720002900e9012106200041b6036a200529030022093701002000419e026a2002290300220b370100200041a6026a2009370100200041ae026a2001290300220c370100200041ee046a200c370000200041e6046a2009370000200041de046a200b370000200020002903b004220937019602200020093700d604200041c0016a200041d0046a4126100a1a410521020b20004188016a200041c0016a4126100a1a20004180016a200041d0006a2d00003a000020002000290348370378200020002802b801360270200020002800bb01360073200221010c020b200020013a00a003200041a0036a102f000b410621010b20002001410646047f410305200041c0016a20004188016a4126100a1a200041e4006a2000280073360000200041e0006a220220004180016a2d00003a000020002000280270360061200041d0006a200229030037030020002000290378220937035820002009370348200041e8016a200041c0016a4126100a1a02400240024002400240024002400240024002400240200141016b0e050403020100050b200041a0036a41800210404101210120002d00a0034101460d09200041a0036a20004196026a200041a8036a418801100a418801100a1a200041a0016a20004186026a29000037030020004198016a200041fe016a29000037030020004190016a200041f6016a290000370300200020002900ee0137038801200041e8046a200041d0006a290300370300200020073703d804200020063703d004200020002903483703e00420004190026a103c200041206a200041a0036a20004188016a20004190026a10460240024020002903202207200a542202200041286a290300220620085420062008511b0d00200041a0036a20004188016a200041d0046a200a2008104741ff017122014102470d002007200a7d220a200756200620087d2002ad7d220720065620062007511b0d0120004188046a20004188016a20004190026a200a20071015410221010b2001410246200041a0036a2001103f000b41808004412141bc8704100c000b200041a0036a418002104020002d00a0034101460d08200041a0036a20004196026a200041a8036a418801100a418801100a1a200041c8046a220120004186026a290000370300200041c0046a2202200041fe016a290000370300200041b8046a2203200041f6016a290000370300200020002900ee013703b00420004188016a103c20004188046a20004188016a200041b0046a200620071015200041e8046a200041a0016a290300370300200041e0046a20004198016a290300370300200041d8046a20004190016a290300370300200041f8046a200329030037030020004180056a200229030037030020004188056a200129030037030020002000290388013703d004200020002903b0043703f00420004198026a200041d0046a41c000100a1a200041e0026a2007370300200041d8026a2006370300200042013703900220004190026a10344101200041a0036a4102103f000b200041a0036a418002104020002d00a0034101460d07200041a0036a20004196026a200041a8036a418801100a418801100a1a200041e8046a20004186026a290000370300200041e0046a200041fe016a290000370300200041d8046a200041f6016a290000370300200020002900ee013703d00420004190026a103c200041a0036a20004190026a200041d0046a20062007104741ff01712201410246200041a0036a2001103f000b200041a0036a4100104020002d00a0034101470d020c060b200041a0036a4100104020002d00a0034101460d05200041a0036a20004196026a200041a8036a418801100a418801100a1a20004199026a200041c8016a290100370000200041a1026a200041d0016a290100370000200041a8026a200041d7016a290000370000200020053a009002200020002901c001370091022000200041a0036a20004190026a10482000200041086a2903003703d804200020002903003703d004200041d0046a1038000b200041a0036a4100104020002d00a0034101460d0420004190016a200041d1036a29000037030020004198016a200041d9036a290000370300200041a0016a200041e1036a2900003703002000200041c9036a290000370388010240200041a8036a29030022064202520440200041b8036a2903002107200041b0036a29030021080c010b200041c8036a2d00004101470d04200041e8046a2201200041a0016a290300370300200041e0046a220220004198016a290300370300200041d8046a220320004190016a29030037030020002000290388013703d00420004180800136029402200041a6c20436029002024002400240200041d0046a20004190026a103a0e0402000001000b200041b4036a410036020020004184be043602b003200042013702a403200041e0be043602a003200041a0036a41bcbf04101c000b420021060c010b200041c0036a2001290300370300200041b8036a2002290300370300200041b0036a2003290300370300200020002903d0043703a803200042013703a00320004190026a200041a8036a101920002d0090024101460d0220004198026a290300500d03200041a8026a2903002107200041a0026a2903002108420121060b20064201520d03200020083703a003200020073703a803200041a0036a1038000b200041a0036a20004196026a200041a8036a418801100a418801100a1a20004190026a200041c0016a4126100a1a20004191016a200041c8016a29010037000020004199016a200041d0016a290100370000200041a0016a200041d7016a290000370000200020053a008801200020002901c00137008901200041df046a2007370000200041ef046a200041d0006a2d00003a0000200020063700d7042000200041b2026a2800003600d304200020002800af023602d004200020002903483700e704200041106a200041a0036a20004188016a200041d0046a10462000200041186a2903003703b804200020002903103703b004200041b0046a1038000b200020002d0091023a00b004419c81044127200041b0046a419c8404419082041049000b41a08204411741b88204104a000b41a18004411e418c8104104a000b20002d00a1030b3a00d004200041b4036a4101360200200042013702a403200041b487043602a0032000410536029402200020004190026a3602b0032000200041d0046a36029002200041a0036a41d08604101c000b6902017f017e230041406a220424002004200336021c20042002360218200441206a200141e8006a200441186a100e2004200441206a1018200429030821052000200441106a2903004200200428020022011b37030820002005420020011b370300200441406b24000bde0202037f037e23004180016b22052400200541186a2000200110480240200529031822092003542207200541206a290300220820045420042008511b450440200041c8006a22062001200920037d200820047d2007ad7d1013200541086a2000200210482005290308220820037c220a20085422002000ad200541106a290300220820047c7c220920085420082009511b0d0120062002200a20091013200541f8006a2004370300200541c1006a200141186a290000370000200541396a200141106a290000370000200541316a200141086a290000370000200541ca006a2002290000370100200541d2006a200241086a290000370100200541da006a200241106a290000370100200541e2006a200241186a29000037010020052003370370200541013a0049200541013a002820052001290000370029200541286a1042410221060b20054180016a240020060f0b41808404411c41cc8704100c000b6202017f017e230041406a220324002003200236021c200341206a200141c8006a2003411c6a10122003200341206a1018200329030821042000200341106a2903004200200328020022011b37030820002004420020011b370300200341406b24000b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41073602002005420237021c200541b4be04360218200541063602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101c000b6001017f230041106b220324002003200136020c20032000360208230041206b22002400200041146a410136020020004201370204200041d4bb043602002000410636021c2000200341086a3602182000200041186a36021020002002101c000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41dc8704200241086a104c200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a106620032003290310370320200341086a20042000410c6a106620032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002104e41000b3f01017f2000200210502000280208220320002802006a20012002100a1a2003200220036a22014b044041808804411c41a48c04100c000b200020013602080bb90201027f230041106b22022400024002400240200028020022002002410c6a027f02400240200141ff004d0440200028020822032000280204460d010c040b2002410036020c2001418010490d0120014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c020b200041011050200028020821030c020b20022001413f71418001723a000d2002200141067641c001723a000c41020b104e0c010b200028020020036a20013a0000200341016a22012003490d01200020013602080b200241106a240041000f0b41808804411c41948c04100c000bbe0301077f230041106b22052400024002400240200120002802042207200028020822026b4b0440200120026a22012002490d03200720076a22032007490d022000280200410020071b210841002102230041106b220624002005027f2003200120012003491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001105320062802082104200628020c0c030b2001419cc204280200220320016a22022003490d021a41a0c2042802002002490440200141ffff036a220441107640002202417f46200241ffff0371200247720d022002411074220320044180807c716a22022003490d024100210441a0c20420023602002001200120036a22022003490d031a0b419cc204200236020020012003450d021a200320082007100a210420010c020b2006200110532006280200210420062802040c010b4100210420010b2102200404402005200436020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d01000b41a08904412141c48904100c000b1052000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a104b200241206a24000b0f0041d48904411141e88904100c000ba90101027f027f41012001450d001a4100419cc204280200220220016a22032002490d001a024041a0c2042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141a0c20420033602004100200120026a22032002490d021a0b419cc204200336020020020c010b41000b210320002001360204200020033602000b0e0020002802001a03400c000b000bb20302047f027e027f2000350200210620012104230041306b22032400412721000240024020064290ce00540440200621070c010b412721010240034020064290ce00802107200141046b220020014e0d01200341096a20006a200620074290ce007e7da7220141ffff037141e4006e220241017441f492046a2f00003b00002000200041026a22054c0440200341096a20056a2001200241e4006c6b41ffff037141017441f492046a2f00003b0000200642ffc1d72f562000210120072106450d030c010b0b41f08c04411c41b4af04100c000b0c010b02402007a7220241e3004c0440200021010c010b200041026b220120004e0d01200341096a20016a2007a72200200041ffff037141e4006e220241e4006c6b41ffff037141017441f492046a2f00003b00000b02402002410a4e0440200141026b220020014e0d02200341096a20006a200241017441f492046a2f00003b00000c010b200141016b220020014e0d01200341096a20006a200241306a3a00000b412720006b220141274b04400c010b20044184be044100200341096a20006a20011058200341306a24000c010b41c08c04412141b4af04100c000b0b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41c08c04412141bcc004100c000b0d0042a0e5d6f4fad3e0bc897f0b920401077f230041106b22072400418080c400210920042105024020002802002206410171450d002004200441016a22054d0440412b21090c010b41f08c04411c41a89504100c000b0240024002400240200641047145044041002101200521060c010b2001200120026a105920056a22062005490d010b41012105200028020841014704402000200920012002105a0d032000280218200320042000411c6a28020028020c11000021050c030b024002402000410c6a280200220820064b044020002d00004108710d01200820066b220620084b0d022007200020064101105b20072802002206418080c400460d05200728020421082000200920012002105a0d052000280218200320042000411c6a28020028020c1100000d05200620082000105c21050c050b2000200920012002105a0d042000280218200320042000411c6a28020028020c11000021050c040b2000280204210a2000413036020420002d0020210b200041013a00202000200920012002105a0d03200820066b220120084b0d02200741086a200020014101105b20072802082201418080c400460d03200728020c21022000280218200320042000411c6a28020028020c1100000d03200120022000105c0d032000200b3a00202000200a360204410021050c030b41c08c04412141d89504100c000b41f08c04411c41b89504100c000b41c08c04412141c89504100c000b200741106a240020050b4401017f2000200146044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a22002001470d000b20020f0b41f08c04411c41a4af04100c000b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000bb20101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03010001020b2002200241016a22034d044020034101762105200241017621040c020b41f08c04411c41e89504100c000b41002105200221040b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b4701027f2002411c6a28020021032002280218210441002102027f0340200120012002460d011a200241016a2102200420002003280210110100450d000b200241016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341b89004360208200341043602242003200341206a360218200320033602282003200341046a360220200341086a2002101c000b5901017f230041106b220624000240200120024d0440200220044d0d01200220042005105f000b2001200220051060000b200641086a2001200220031056200020062802083602002000200628020c360204200641106a24000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341a09804360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a2002101c000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341d49804360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a2002101c000b880101047f200141086a28020021022001280204210402400240200141046a10622205418080c400470440200220046b2203200128020420012802086b6a220220034b0d012001280200220320026a22022003490d02200120023602000b20002005360204200020033602000f0b41c08c04412141dc9a04100c000b41f08c04411c41ec9a04100c000bb70101047f200028020022012000280204460440418080c4000f0b2000200141016a36020020012d00002203411874411875417f4c047f2000200141026a36020020012d0001413f7121022003411f712104200341df014d044020044106742002720f0b2000200141036a36020020012d0002413f712002410674722102200341f00149044020022004410c74720f0b2000200141046a3602002004411274418080f0007120012d0003413f71200241067472720520030b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b980301057f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a1061200228021c418080c400470d010c020b0b200241106a200241206a10612002280214418080c400460d00200241086a2002280210200320041063200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a105922054d04402001280218200320042001411c6a28020028020c11000021000c010b20022001200020056b4100105b4101210020022802002205418080c400460d00200228020421062001280218200320042001411c6a28020028020c1100000d00200520062001105c21000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044109470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141e49204102e000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a104c200341206a24000b6c01027f230041206b2202240041012103024020002001106a0d002002411c6a410036020020024184be043602182002420137020c200241e88d04360208200141186a2802002001411c6a280200200241086a10680d00200041046a2001106a21030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d012000200110550c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a1067200141d4bc0441022002280208200228020c10580c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a1067200141d4bc0441022002280200200228020410580b20024190016a24000ba908010c7f230041e0006b22032400027f024020020440200341d8006a210d2000280204210b2000280200210c2000280208210a0340200a2d00000440200c41c990044104200b28020c1100000d030b2003410a3602582003428a808080103703502003200236024c200341003602482003200236024420032001360240200341386a2001200241002002106c0240024020032802382207450d00200328023c210503400240024002400240024002402003280254220041016b220420004d0440200320046a41d8006a2d00002108200541084f0440200741036a417c7120076b2200450440410021040c030b200341306a410020052000200020054b1b22042007200541ec9604105e20032802342206450d0220032802302109410021000340200020096a2d00002008460d04200041016a22002006470d000b0c020b2005450d08410021000340200020076a2d00002008460d03200041016a22002005470d000b0c080b41c08c04412141f09d04100c000b0240024002402005200541086b22004f0440200020044f0d010c020b41c08c04412141fc9604100c000b200841818284086c210902400340200441046a22062004490d01200420076a280200200973220e417f73200e41818284086b71200620076a2802002009732206417f73200641818284086b7172418081828478710d022004200441086a22064d04402000200622044f0d010c040b0b41f08c04411c419c9704100c000b41f08c04411c418c9704100c000b200421060b20052006490d01200341286a2006200520071056200328022c2204450d06200328022821054100210003402008200020056a2d00004704402004200041016a2200470d010c080b0b200020066a220020064f0d0041f08c04411c41bc9704100c000b2000200041016a22044b0d012004200328024822046a22002004490d0220032000360248200020032802542204490d03200341206a20032802402003280244200020046b22052000106c20032802202200450d0320032802242104200341186a41002003280254200d410441a09e04105e2004200328021c470d03027f20032802182106034041002004450d011a200441016b210420062d0000210720002d00002108200041016a2100200641016a210620072008460d000b200820076b0b0d03200a41013a0000200541016a220020054f0d0641f08c04411c41c09104100c000b2006200541ac9704102e000b41f08c04411c41809e04100c000b41f08c04411c41909e04100c000b200341106a200328024020032802442003280248200328024c106c20032802142105200328021022070d000b0b200a41003a0000200221000b200341086a20012002200041d09104106d200c2003280208200328020c200b28020c1100000d02200320002001200241e09104106e20032802002101200328020422020d000b0b41000c010b41010b200341e0006a24000b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011056200528020c2107200528020821060b2000200736020420002006360200200541106a24000b4e01027f230041106b22052400200541086a20032001200210632005280208220645044020012002410020032004106f000b200528020c21012000200636020020002001360204200541106a24000b6400024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b2003200320016b220449044041c08c04412141ec9b04100c000b200020043602042000200120026a3602000f0b20022003200120032004106f000bb20601027f23004180016b220524002005200336021c200520023602182005027f20014181024f0440418002210602400340200020066a2c000041bf7f4a0d01200641016b22060d000b410021060b200541106a20002001200641f09c04106d20052005290310370320200541b09e0436022841050c010b200520013602242005200036022020054184be0436022841000b36022c024002402005200120024f047f200120034f0d0120030520020b360238200541d4006a4103360200200541ec006a4106360200200541e4006a410636020020054203370244200541d89e043602402005410436025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580c010b200541086a027f02400240200220034d04402002450d010240200120024d044020012002470d010c030b200020026a2c000041bf7f4a0d020b20052002360230200221030c020b200541f4006a4106360200200541ec006a4106360200200541e4006a4104360200200541d4006a410436020020054204370244200541949f043602402005410436025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580c030b2005200336023041002003450d011a0b03400240200120034d044020012003470d0120010c030b200020036a2c00004140480d0020030c020b200341016b22030d000b41000b2206200020012004106e20052005280208220036025820052000200528020c6a36025c2005200541d8006a10622004107022003602342006027f41012000418001490d001a41022000418010490d001a41034104200041808004491b0b20066a22004d04402005200036023c20052006360238200541d4006a4105360200200541fc006a4106360200200541f4006a4106360200200541ec006a410a360200200541e4006a410b36020020054205370244200541e89f043602402005410436025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580c010b41f08c04411c2004100c000b200541406b2004101c000b1a002000418080c40046044041908f04412b2001100c000b20000b920a02097f017e4101210602402001280218220741272001411c6a28020028021022081101000d0041f4002103410221010240027f02400240027f0240024002402000280200220241096b0e050704010105000b2002412746200241dc0046720d010b2002410b7421034100210141202100412021040240027e024002400240024002400240024002400240024002400340200120004101766a22002001490d0302402003200041027441c4af046a280200410b7422054d044020032005460d03200021040c010b200041016a22012000490d050b2004200420016b22004f044020012004490d010c030b0b41c08c04412141849904100c000b200041016a21010b2001411f4b0d022001410274220341c4af046a280200411576210002402001411f470440200341c8af046a280200411576220320006b220420034d0d0141c08c04412141ccad04100c000b41c30520006b220441c4054f0d040b4100210320022001200141016b22054f047f200541204f0d05200541027441c4af046a28020041ffffff00710541000b6b220a20024b0d05200441016b220320044b0d06200020046a41016b210402402003450d00200041c305200041c3054b1b210941002101034020002009460d09024020012001200041c4b0046a2d00006a22054d04402005200a4d0d01200021040c030b41f08c04411c418cae04100c000b200041016a210020052101200341016b22030d000b0b20044101710d08024002402002418080044f04402002418080084f0d01200241e7a604412a41bba70441c00141fba80441b60310720d0d0c020b200241c8a10441284198a20441a00241b8a40441af021072450d010c0c0b200241e0ffff007141e0cd0a46200241b9ee0a6b41074972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d0b0b200241017267410276410773ad4280808080d000840c090b41f08c04411c41e49804100c000b41f08c04411c41f49804100c000b2001412041acad04105d000b41c08c04412141bcad04100c000b20054120419cae04105d000b41c08c04412141dcad04100c000b41c08c04412141ecad04100c000b200941c30541fcad04105d000b200241017267410276410773ad4280808080d000840b210b41032101200221030c060b41010c010b41020b2101200221030c030b41ee000c010b41f2000b21030b0240034002402001210241002101200321000240024002400240200241016b0e03030200010b02400240024002400240200b422088a741ff017141016b0e050004010203050b200b42ffffffff8f6083210b41fd002100410321010c060b200b42ffffffff8f608342808080802084210b41fb002100410321010c050b200b42ffffffff8f608342808080803084210b41f5002100410321010c040b200b42ffffffff8f60834280808080c00084210b41dc002100410321010c030b200ba7220141ffffffff03712001470d032001410274220041204f0d0520032000411c7176410f712200413072200041d7006a2000410a491b41808f04107021002001450440200b42ffffffff8f608342808080801084210b410321010c030b200b42017d42ffffffff0f83200b4280808080708384210b410321010c020b20074127200811010021060c050b41dc002100410121010b200720002008110100450d010c030b0b41908d04412141e08e04100c000b41c08d04412441f08e04100c000b20060b970301087f230041106b220a240041012107024002402002450d00200120024101746a210b20004180fe0371410876210c200141026a210820012d00012102200041ff0171210e03402002210d0240200c20012d000022014704402008200b462001200c4b720d030c010b200a41086a2009200d200320044198a104105e200a2802082102200a28020c2101024003402001450d01200141016b210120022d0000200241016a2102200e470d000b410021070c040b2008200b460d020b20082d000121022008220141026a2108200d2209200220096a22024d0d000b41f08c04411c4188a104100c000b2006450d00200520066a2103200041ffff03712102024003400240200541016a2100027f200020052d00002201411874411875220441004e0d001a20002003460d0120052d0001200441ff0071410874722101200541026a0b2105200141004a2002200220016b22024a730d0220024100480d032007410173210720032005470d010c030b0b41908f04412b41a8a104100c000b41c08c04412141b8a104100c000b200a41106a240020074101710b7e01037f23004190016b2202240020002d0000210341ff0021000340200241106a20006a413041372003410f712204410a491b20046a3a0000200041016b21002003220441047621032004410f4b0d000b200241086a200241106a200041016a1067200141d4bc0441022002280208200228020c105820024190016a24000b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a104c200241206a24000b0b002000280200200110640b1b00200128021841e4c10441052001411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a280200220441e48f04410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241f48f043602282002410c3602142002200241106a36023820022002410c6a36021020042001200241286a1068450d010c020b20032802002200200328020428020c11080042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241f48f043602282002410d3602142002200241106a36023820022002410c6a36021020042001200241286a10680d010b200328020c2100200241246a41033602002002413c6a410e360200200241346a410e36020020024203370214200241bc8f0436021020022000410c6a3602382002200041086a3602302002410636022c200220003602282002200241286a36022020042001200241106a106821000b200241406b240020000b5901017f230041106b220624000240200120024d0440200220044d0d01200220042005105f000b2001200220051060000b200641086a2001200220031079200020062802083602002000200628020c360204200641106a24000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41a0b60441214188b604100c000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41d0c004412141bcc004100c000b0be8410c00418080040bf107617474656d707420746f2073756274726163742077697468206f766572666c6f77656e636f756e746572656420656d7074792073746f726167652063656c6c2f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f73746f726167652f7372632f6c617a792f6d6f642e727300003f0001004b0000009d00000019000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f73746f726167652f7372632f7472616974732f6d6f642e7273c30001004d000000a80000000a00000073746f7261676520656e7472792077617320656d70747900c30001004d000000a90000000a0000006661696c656420746f2070756c6c207061636b65642066726f6d20726f6f74206b6579204801010024000000301f0100020000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f73746f726167652f7372632f7472616974732f6f7074737065632e72730000007c010100510000006b0000000d000000681f0100540000009900000030000000681f0100540000009e0000002e000000617474656d707420746f206164642077697468206f766572666c6f770f000000010000000100000001000000241c010055000000b500000037000000241c010055000000b80000000900000045726332303a3a5472616e7366657200041f0100000000004c02010045726332303a3a5472616e736665723a3a66726f6d45726332303a3a5472616e736665723a3a746f45726332303a3a5472616e736665723a3a76616c756545726332303a3a417070726f76616c000000041f010000000000a602010045726332303a3a417070726f76616c3a3a6f776e657245726332303a3a417070726f76616c3a3a7370656e64657245726332303a3a417070726f76616c3a3a76616c75652f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6578616d706c65732f74726169742d65726332302f6c69622e727308030100480000003f000000050000006469737061746368696e6720696e6b2120636f6e7374727563746f72206661696c65643a2000000060030100250000006469737061746368696e6720696e6b21206d657373616765206661696c65643a2000000090030100210000000803010048000000cc0000002c0000000803010048000000020100002700000010000000040000000400000011000000120000001300418088040bb104617474656d707420746f206164642077697468206f766572666c6f77140000000000000001000000150000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300000000000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000002c0401006d000000830100001c0000006361706163697479206f766572666c6f770000002c0401006d000000fd010000050000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72732b05010069000000550200001c0000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273000000a40501006d000000c60600000d000000a40501006d00000002070000090041c08c040b21617474656d707420746f2073756274726163742077697468206f766572666c6f770041f08c040b41617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770041c08d040bd528617474656d707420746f2073686966742072696768742077697468206f766572666c6f772e2e0000e4060100020000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e7273000000f00601006d000000a200000035000000f00601006d000000a200000021000000f00601006d000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75653a041f010000000000bb07010001000000bb070100010000001600000000000000010000001700000070616e69636b65642061742027272c20f007010001000000f107010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732000000408010020000000240801001200000060202020202f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e727300004d0801007100000028000000150000004d080100710000002f000000210000004d0801007100000030000000120000002c0a280a28292f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e72730000f60801006c000000650000001400000030303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e72733c0a01006c0000001e0500000d0000003c0a01006c000000220500000d0000003c0a01006c00000045050000310000003c0a01006c0000004e050000310000003c0a01006c000000b2050000380000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273000000f80a010071000000420000001e000000f80a0100710000004900000015000000f80a0100710000004e0000001f000000f80a0100710000005700000009000000f80a0100710000005b00000005000000f80a0100710000005b0000003d00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820cc0b010012000000de0b01002200000072616e676520656e6420696e64657820100c010010000000de0b010022000000736c69636520696e64657820737461727473206174202062757420656e64732061742000300c010016000000460c01000d0000008f1b01006e000000c6080000170000008f1b01006e000000d1080000180000008f1b01006e000000da08000014000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028940c010015000000a90c01002b000000f5080100010000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e7273000000ec0c01006d0000009200000026000000ec0c01006d00000092000000110000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273007c0d01006f0000005c010000130000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e7273fc0d0100740000001d010000110000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e7273800e010070000000a001000047000000800e010070000000b301000020000000800e010070000000b301000011000000800e010070000000b7010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000350f01000b000000400f0100160000004808010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e6720600000700f01000e0000007e0f010004000000820f0100100000004808010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060350f01000b000000b40f010026000000da0f010008000000e20f01000600000048080100010000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e727300001010010076000000080000001800000010100100760000000a0000001c00000010100100760000001a0000003600000010100100760000001e0000000900000000010305050606020706080709110a1c0b190c1a0d100e0d0f0410031212130916011704180119031a071b011c021f1620032b032d0b2e01300331023201a702a902aa04ab08fa02fb05fd02fe03ff09ad78798b8da23057588b8c901cdd0e0f4b4cfbfc2e2f3f5c5d5fe2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d11293a3b4549575b5c5e5f64658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff806d71dedf0e1f6e6f1c1d5f7d7eaeaf7fbbbc16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f747596262e2fa7afb7bfc7cfd7df9a409798308f1fd2d4ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab051f09811b03190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15054e071b0757070206160d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd03590716091809140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a062f314d0380a4083c030f033c0738082b0582ff1118082f112d03210f210f808c048297190b158894052f053b07020e180980be22740c80d61a0c0580ff0580df0cf29d033709815c1480b80880cb050a183b030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a61081f50701202a064c04808d0480be031b030f0d000601010301040205070702080809020a050b020e041001110212051311140115021702190d1c051d0824016a046b02af03bc02cf02d102d40cd509d602d702da01e005e102e704e802ee20f004f802fa02fb010c273b3e4e4f8f9e9e9f7b8b9396a2b2ba86b1060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5fbfeeef5a62f4fcff9a9b2e2f2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fe7ecefffc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b4e43813709160a08183b45390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a161a261c1417094e042409440d19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d133a060a362c041780b93c64530c48090a46451b4808530d498107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48a4c630d842f8fd18247a1b98239072a045c06260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2e781332d03110408818c89046b050d0309071092604709743c80f60a7308701546809a140c570919808781470385420f1584501f80e12b80d52d031a040281401f113a050184e080f7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d80510030d03740c59070c04010f0c0438080a062808224e81540c1503050307091d030b05060a0a060808070980cb250a84062f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e7273000031160100790000004b0000002800000031160100790000004f0000000900000031160100790000004d00000009000000311601007900000054000000110000003116010079000000560000001100000031160100790000005700000016000000311601007900000058000000090000003116010079000000520000003e0000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e727300002c170100760000008d00000001000000f60801006c000000cd010000050000000003000083042000910560005d13a0001217201f0c20601fef2ca02b2a30202c6fa6e02c02a8602d1efb602e00fe20369eff6036fd01e136010a2137240de137ab0e61392f18a139301ce147f31e214cf06ae14f4f6f21509dbca15000cf615165d1a15100da215200e0e15330e16155aee2a156d0e8e15620006e57f001ff5700700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b033c082a180120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c01090128010301370101030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d021e021e02400201070801020b09012d030101750222017603040209010603db0202013a010107010101010208060a0201301f310430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c6400001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990b31047b01360f290102020a033104020207013d03240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002002e0217000101030405080802071e0494030037043208010e011605010f00070111020701020105000700013d0400076d07006080f00000cc1f010070000000e70000004f0041a0b6040b21617474656d707420746f2073756274726163742077697468206f766572666c6f770041d0b6040baf06617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72730000008f1b01006e000000e6050000090000000a000000041f010000000000101c0100010000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000241c010055000000580000001c000000241c0100550000005800000009000000241c0100550000005800000031000000241c0100550000006300000009000000241c010055000000810000001a0000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000cc1c010052000000530100001400000045636473615265636f766572794661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f6465041f0100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f7230780000541e0100020000005f000000601e010001000000041f010000000000041f010000000000041f01004188bd040b0920000000080000000200419cbd040b150200000003000000010000002000000008000000020041bcbd040b150200000003000000020000002000000008000000020041dcbd040b150200000003000000030000002000000008000000020041fcbd040b9d0402000000030000005765206465636f646520604e6020656c656d656e74733b20716564007120010062000000cd020000170000003a200000041f010000000000301f010002000000656e636f756e746572656420756e6578706563746564206572726f72441f01001c0000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273681f01005400000014010000170000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e7273cc1f010070000000e00000004c00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f677265656e2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e72730071200100620000006d0000000e0000004572726f72000000000000000100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" + }, + "contract": { + "name": "trait_erc20", + "version": "3.0.0-rc7", + "authors": ["Parity Technologies "] + }, + "V3": { + "spec": { + "constructors": [ + { + "args": [ + { + "label": "initial_supply", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": ["Creates a new ERC-20 contract with the specified initial supply."], + "label": "new", + "payable": false, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": ["Option"], + "type": 11 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": ["Option"], + "type": 11 + } + }, + { + "docs": [], + "indexed": true, + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [" Event emitted when a token transfer occurs."], + "label": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "docs": [], + "indexed": true, + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + " Event emitted when an approval occurs that `spender` is allowed to withdraw", + " up to the amount of `value` tokens from `owner`." + ], + "label": "Approval" + } + ], + "messages": [ + { + "args": [], + "docs": [" Returns the total token supply."], + "label": "BaseErc20::total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 0 + }, + "selector": "0x8244a1ad" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + } + ], + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "BaseErc20::balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 0 + }, + "selector": "0x933ae3c8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + } + ], + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "BaseErc20::allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 0 + }, + "selector": "0x74a27ac8" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "BaseErc20::transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 8 + }, + "selector": "0xfa9833a3" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "BaseErc20::approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 8 + }, + "selector": "0x922e291f" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "to", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "BaseErc20::transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["Result"], + "type": 8 + }, + "selector": "0x839f0263" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "balances" + }, + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 6 + } + }, + "name": "allowances" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "offset_key", + "type": 5, + "typeName": "Key" + } + ] + } + }, + "params": [ + { + "name": "K", + "type": 2 + }, + { + "name": "V", + "type": 0 + } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 2, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_env", "types", "AccountId"] + } + }, + { + "id": 3, + "type": { + "def": { + "array": { + "len": 32, + "type": 4 + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 5, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "Key"] + } + }, + { + "id": 6, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "offset_key", + "type": 5, + "typeName": "Key" + } + ] + } + }, + "params": [ + { + "name": "K", + "type": 7 + }, + { + "name": "V", + "type": 0 + } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 7, + "type": { + "def": { + "tuple": [2, 2] + } + } + }, + { + "id": 8, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 9 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 9 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 9, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 10, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": ["trait_erc20", "erc20", "Error"] + } + }, + { + "id": 11, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + } + ], + "path": ["Option"] + } + } + ] + } +} diff --git a/.api-contract/src/test/contracts/ink/v4/erc20.contract.json b/.api-contract/src/test/contracts/ink/v4/erc20.contract.json new file mode 100644 index 00000000..555671be --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v4/erc20.contract.json @@ -0,0 +1,377 @@ +{ + "source": { + "hash": "0x114f55289bcdfd0d28e0bbd1c63452b4e45901a022b1011d298fa2eb12d1711d", + "language": "ink! 4.3.0", + "compiler": "rustc 1.75.0", + "wasm": "0x0061736d0100000001601060037f7f7f017f60027f7f0060027f7f017f60037f7f7f0060017f0060047f7f7f7f0060047f7f7f7f017f60057f7f7f7f7f0060000060017f017f60027e7e0060047f7f7e7e0060037e7e7f0060037f7e7e006000017f60047f7f7e7e017f02c7010a057365616c310b6765745f73746f726167650006057365616c301176616c75655f7472616e736665727265640001057365616c3005696e7075740001057365616c300663616c6c65720001057365616c300d64656275675f6d6573736167650002057365616c300f686173685f626c616b65325f3235360003057365616c300d6465706f7369745f6576656e740005057365616c320b7365745f73746f726167650006057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100351500007030b0101030c0d0101030305030101070401010001010304070e03010409030201020004030108010a0a0104080f0408030501040801090200000202020204010202070605060105020203050205040501700110100608017f01418080040b0711020463616c6c0037066465706c6f79003a0915010041010b0f54532c2a465748272747274445424a0ad37d502b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b2200200120034d044020002001360204200020023602000f0b200120032004100b000b0e0020002001200241cc960410580bbb0102037f017e230041306b2204240020044100360220200442808001370228200441d0a30436022441b7c380e57e200441246a2205100d20002005100e20012005100e20042004290224370218200441106a200441186a2206200428022c100f2004280214210020042802102101200429021821072004410036022c20042007370224200220032005101020042004290224370218200441086a2006200428022c100f200120002004280208200428020c10071a200441306a24000b2601017f230041106b220224002002200036020c20012002410c6a41041021200241106a24000b0a0020012000412010210b4501017f2002200128020422034b0440419ca00441234194a2041017000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b2a01017f230041106b2203240020032001370308200320003703002002200341101021200341106a24000bb50102047f017e230041306b2203240020034100360220200342808001370228200341d0a30436022441e7b98fb102200341246a2204100d20002004100e20032003290224370218200341106a200341186a2205200328022c100f2003280214210020032802102106200329021821072003410036022c20032007370224200120022004101020032003290224370218200341086a2005200328022c100f200620002003280208200328020c10071a200341306a24000bd10102037f017e230041d0006b22022400200241186a220420001013200229021821052002410036022c2002200537022420012802002001280204200241246a2203101420012802082003100e20022002290224370218200241106a2004200228022c100f2003200228021020022802141015200241086a200028020020002802042000280208220110162002410036024c200220022903083702442003200241c4006a100e20012001200228024c6a22034b044041c08204411c41c886041017000b20002003360208200241d0006a24000b3f01027f2001280204220320012802082202490440200220034184a2041029000b200041003602082000200320026b3602042000200128020020026a3602000b100020012002101c20022000200110210b8f0201077f230041d0006b22032400200341286a22044200370300200341206a22054200370300200341186a22064200370300200342003703100240200241214f0440200341c8006a22074200370300200341406b22084200370300200341386a220942003703002003420037033020012002200341306a1005200420072903003703002005200829030037030020062009290300370300200320032903303703100c010b200341086a2002200341106a412041988204100a2003280208200328020c2001200241a88204101a0b20002003290310370000200041186a200341286a290300370000200041106a200341206a290300370000200041086a200341186a290300370000200341d0006a24000b2900200220034904402003200241b886041029000b2000200220036b3602042000200120036a3602000b4601017f230041206b220324002003410c6a420037020020034101360204200341f49f043602082003200136021c200320003602182003200341186a36020020032002102b000bd10102037f017e230041d0006b22022400200241186a220420001013200229021821052002410036022c2002200537022420012802002001280204200241246a2203101420012802082003101920022002290224370218200241106a2004200228022c100f2003200228021020022802141015200241086a200028020020002802042000280208220110162002410036024c200220022903083702442003200241c4006a100e20012001200228024c6a22034b044041c08204411c41c886041017000b20002003360208200241d0006a24000b210020002d00004504402001410010300f0b200141011030200041016a2001100e0b7b002001200346044020002002200110091a0f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41053602002000410336020c200041a09804360208200041053602242000200041206a360210200020003602282000200041046a360220200041086a2004102b000b6a01037f230041206b22012400200141086a200028020020002802042000280208220210162001410036021c200120012903083702144103200141146a101c20022002200128021c6a22034b044041c08204411c41c886041017000b20002003360208200141206a24000b7401017f230041106b2202240002402000413f4d04402001200041027410300c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210210c010b200041ffffffff034d044020004102744102722001100d0c010b20014103103020002001100d0b200241106a24000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101e45044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b3d01027f200028020422032002492204450440200120022000280200220120024190a304101a2000200320026b3602042000200120026a3602000b20040ba90102017f027e230041406a220224002002411f6a2001101d0240024020022d001f0d002002200110202002290300a70d00200241106a2903002103200229030821042000200229002037000820004200370300200041286a2004370300200041306a2003370300200041206a200241386a290000370000200041186a200241306a290000370000200041106a200241286a2900003700000c010b200042013703000b200241406b24000b5f02017f037e230041106b2202240020024200370308200242003703000240200120024110101e45044020022903082104200229030021050c010b420121030b2000200537030820002003370300200041106a2004370300200241106a24000b5c01037f02402000280208220420026a220320044f04402003200028020422054b0d01200028020020046a200320046b2001200241e4a104101a200020033602080f0b4180a004411c41c4a1041017000b2003200541d4a104100b000bb20101027f230041306b2201240020014180800136020441d0a304200141046a2202100320014180800136022c200141d0a3043602282002200141286a101d20012d00040440200141003a000441a0850441c100200141046a41dc820441e485041023000b2000200141066a290000370001200041096a2001410e6a290000370000200041116a200141166a290000370000200041186a2001411d6a290000370000200020012d00053a0000200141306a24000b7c01017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a42023702002005413c6a41013602002005410236021c200541fc9004360218200541023602342005200541306a3602202005200541106a3602382005200541086a360230200541186a2004102b000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10012000290308210120002903002102200041206a2400410541042001200284501b0b850302047f027e230041d0006b220324002003410036023020034280800137023c200341d0a30436023841b7c380e57e200341386a2204100d20012004100e20022004100e20032003290238370228200341206a200341286a2003280240100f2003280224210220032802202105200328022821012003200328022c2206360238200520022001200410002102200341186a20032802382001200641908504100a027e024002400240024020020e0400010103010b200328021821012003200328021c36023c200320013602382003200341386a10202003290300a70d0120032903082107200341106a2903000c030b200341c4006a42003702002003410136023c200341a08604360238200341f49f04360240200341386a41a88604102b000b200341003a0037200341c4006a42013702002003410136023c2003419081043602382003410336022c2003200341286a3602402003200341376a360228200341386a41988104102b000b42000b21082000200737030020002008370308200341d0006a24000bff0202057f027e230041d0006b220224002002410036023020024280800137023c200241d0a30436023841e7b98fb102200241386a2204100d20012004100e20022002290238370228200241206a200241286a2002280240100f2002280224210320022802202105200228022821012002200228022c2206360238200520032001200410002103200241186a20022802382001200641908504100a027e024002400240024020030e0400010103010b200228021821012002200228021c36023c200220013602382002200241386a10202002290300a70d0120022903082107200241106a2903000c030b200241c4006a42003702002002410136023c200241a08604360238200241f49f04360240200241386a41a88604102b000b200241003a0037200241c4006a42013702002002410136023c2002419081043602382002410336022c2002200241286a3602402002200241376a360228200241386a41988104102b000b42000b21082000200737030020002008370308200241d0006a24000b0300010b1b002000418180014f044020004180800141f48504100b000b20000b0e0020002001200241ac960410580b840101017f230041306b22022400200241146a42013702002002410136020c200241f49e0436020820024102360224200220002d0000410274220041a0a3046a28020036022c2002200041b4a3046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10432100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241989004360210200241f49f0436020c2002410c6a1049000bdd0401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280214220341ec82044106200141186a280200220528020c22041100000d0c024020012d001c410471450440200341929104410120041100000d0e200341e4890441052004110000450d010c0e0b200341939104410220041100000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241e489044105102d0d0d2002419091044102102d0d0d0b200341fc8f044101200411000021000c0c0b200128021441f28204410d200141186a28020028020c11000021000c0b0b200128021441ff8204410e200141186a28020028020c11000021000c0a0b2001280214418d8304410b200141186a28020028020c11000021000c090b200128021441988304411a200141186a28020028020c11000021000c080b200128021441b28304410e200141186a28020028020c11000021000c070b200128021441c083044110200141186a28020028020c11000021000c060b200128021441d08304410c200141186a28020028020c11000021000c050b200128021441dc8304410b200141186a28020028020c11000021000c040b200128021441e783044107200141186a28020028020c11000021000c030b200128021441ee8304410f200141186a28020028020c11000021000c020b200128021441fd83044111200141186a28020028020c11000021000c010b2001280214418e84044113200141186a28020028020c11000021000b200241106a240020000bd40701107f230041d0006b22032400200341003b014c200320023602482003410036024420034281808080a00137023c2003200236023820034100360234200320023602302003200136022c2003410a3602282000280204210c2000280200210d2000280208210e200341406b210f027f0340024020032d004d450440200328022c210a02400240024002402003280238220b200328023022104b0d0020032802342202200b4b0d00200328023c2204450d012004200f6a41016b21110340200a200222076a210020112d0000210602400240024002400240027f02400240200b20026b220541084f0440024002402000200041036a417c712202460440200541086b2108410021020c010b200341206a20062000200220006b2202105620032802204101460d012002200541086b22084b0d030b200641818284086c21090340200020026a220141046a2802002009732212417f73201241818284086b7120012802002009732201417f73200141818284086b7172418081828478710d03200241086a220220084d0d000b0c020b200328022421010c020b200341106a20062000200510562003280214210120032802100c020b200220054b0d02200341186a2006200020026a200520026b1056410020032802184101470d011a2002200328021c6a22012002490d030b41010b22004101460440200141016a2202450d0302402007200220076a22024d04402003200236023420022004490d07200220104d0d010c070b41e08f04411c41b89d041017000b200441054f0d04027f200a200220046b6a2106200f210720042105034041002005450d011a200541016b210520072d0000210820062d00002109200641016a2106200741016a210720082009460d000b200920086b0b0d05200341086a20032802442002200a105220032002360244200328020c2100200328020821020c0a0b2003200b3602340c060b41b08f04412141d895041017000b41e08f04411c41e895041017000b41e08f04411c41a89d041017000b2004410441c89d04100b000b2002200b4d0d000b0b200341013a004d20032d004c044020032802482101200328024421040c020b20032802482201200328024422044f04404100210220012004470d020c030b41b08f04412141909b041017000b41b08f04412141989d041017000b200320042001200a105220032802042100200328020021020b20020d010b41000c020b0240200e2d00000440200d418c91044104200c28020c1100000d010b200e2000047f200020026a41016b2d0000410a460541000b22013a0000200d20022000200c28020c110000450d010b0b41010b2100200341d0006a240020000bd70502047f017e230041b0016b22012400200141086a200041e00010091a20014280800137028001200141d0a30436027c02402001290308500440200141fc006a101b200141f0006a220020014184016a2802003602002001200129027c370368200141a0016a2202200141e8006a220341e88604102f2001200141206a36029c012001411536029801200141f4860436029401200220014194016a10182000200141a8016a280200360200200120012902a0013703682001200141c1006a3602a801200141133602a4012001418987043602a0012003200210180c010b200141fc006a101b200141f0006a220020014184016a2802003602002001200129027c370368200141a0016a2202200141e8006a220341ac8704102f2001200141106a36029c012001411636029801200141b8870436029401200220014194016a10122000200141a8016a280200360200200120012902a0013703682001200141306a3602a801200141183602a401200141ce87043602a0012003200210120b20014190016a20002802003602002001200129036837038801230041206b22002400200041186a22024100360200200020014188016a2204290200370310200041086a200041106a200441086a280200100f20002903082105200341086a2002280200360200200320002903103702002003200537020c200041206a2400200141a8016a200141f0006a2802003602002001200129026822053703a001200141f8006a2802002103200128027421022001410036027020012005370268027f2001290308500440200141e8006a220041001030200141206a20001019200141c1006a20001019200141106a0c010b200141e8006a220041011030200141106a2000100e200141306a2000100e200141d0006a0b2200290300200041086a290300200141e8006a1010200120012902683703a0012001200141a0016a2001280270100f20022003200128020020012802041006200141b0016a24000bef0102037f017e230041d0006b22032400200341186a220520011013200329021821062003410036022c2003200637022420022802002002280204200341246a2204101420042002280208410f102120032003290224370218200341106a2005200328022c100f2004200328021020032802141015200341086a200128020020012802042001280208220210162003410036024c200320032903083702442004200341c4006a100e20022002200328024c6a22044b044041c08204411c41c886041017000b200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41053602002000410236020c200041e89004360208200041053602242000200041206a360210200020003602282000200041046a360220200041086a41f4a104102b000b3c01027f230041106b22002400200042808001370208200041d0a304360204200041046a2201410110302001410110304101200028020c10281035000b5101027f230041106b22022400200242808001370208200241d0a304360204200241046a2203410010302003200141ff0171410247047f20034101103020010541000b10302000200228020c10281035000b3e01027f230041106b22022400200242808001370208200241d0a304360204200241046a22034100103020002001200310104100200228020c10281035000bab0102057f017e230041306b2202240020024100360220200242808001370228200241d0a3043602244100200241246a2203100d20022002290224370218200241106a200241186a2204200228022c100f2002280214210520022802102106200229021821072002410036022c20022007370224200020012003101020022002290224370218200241086a2004200228022c100f200620052002280208200228020c10071a200241306a24000b0d00200041d0a30420011008000b2e01017f230041e0006b22012400200141086a200041d80010091a200142003703002001102e200141e0006a24000be71302077f047e23004190056b2200240002400240102441ff017141054604402000418080013602b00441d0a304200041b0046a22021002200041f0006a20002802b00441d0a3044180800141908504100a200020002903703702d001200041003602b004200041d0016a20024104101e0d0120002d00b304210120002d00b204210320002d00b1042102027f02400240024002400240024020002d00b0042204410b6b0e050508080801000b0240200441e8006b0e03040802000b2004418401460d02200441db0147200241ff017141e3004772200341f50047200141a8014772720d0741000c050b200241ff017141f50047200341da004772200141d60047720d06200041b0046a200041d0016a101d20002d00b0040d06200041e8016a200041ba046a290000370300200041f0016a200041c2046a290000370300200041f7016a200041c9046a2900003700002000200041b2046a2900003703e00120002d00b104210241010c040b200241ff0171200341164772200141de0047720d05200041a0026a200041d0016a101d20002d00a0020d05200041f8006a200041d0016a101d20002d00780d05200041e7046a20004191016a290000370000200041df046a20004189016a290000370000200041d7046a20004181016a290000370000200041b8046a200041aa026a290000370300200041c0046a200041b2026a290000370300200041c7046a200041b9026a290000370000200020002900793700cf042000200041a2026a2900003703b00420002d00a1022102200041e0016a200041b0046a413f10091a41020c030b200241ff017141a10147200341dd004772200141a10147720d04200041b0046a200041d0016a101f20002903b0044200520d04200041ae036a200041a6026a200041fe006a200041b8046a4130100941301009413010091a200041e0016a200041a8036a413610091a41030c020b200241ff0171411247200341e6004772200141a00147720d03200041b0046a200041d0016a101f20002903b0044200520d03200041ae036a200041a6026a200041fe006a200041b8046a4130100941301009413010091a200041e0016a200041a8036a413610091a41040c010b200241ff0171413947200341ef0047722001411847720d02200041ee036a200041d0016a101d20002d00ee030d022000418f046a200041d0016a101d20002d008f040d02200041d8006a200041d0016a10202000290358a70d02200041e8006a290300210720002903602108200041c0036a200041ef036a220241186a290000370300200041b8036a200241106a290000370300200041b0036a200241086a290000370300200041d0036a20004198046a290000370300200041d8036a200041a0046a290000370300200041e0036a200041a8046a29000037030020002000290090043703c803200020022900003703a803200041e8026a2201200041a8036a41c00010091a200041a6026a200041fe006a200041b6046a200141c000100941c000100941c00010091a200041e0016a200041a0026a413f10091a2000200041e2026a2800003600db01200020002800df023602d80141050b2101200041f8006a410272200041e0016a413f10091a200041bc016a20002800db01360000200041c8016a2007370300200020002802d8013600b901200020083703c001200020023a0079200020013a0078200041003602a8022000428080013702b404200041d0a3043602b0044100200041b0046a2203100d200020002902b0043702a002200041d0006a200041a0026a20002802b804100f200028025421042000280250210520002802a0022102200020002802a40222063602b004200520042002200310002103200041c8006a20002802b0042002200641908504100a024002400240024020030e0401000002000b200041bc046a4200370200200041013602b404200041a086043602b004200041f49f043602b804200041b0046a41a88604102b000b200028024821022000200028024c3602b404200020023602b004200041306a200041b0046a10202000290330a7450d01200041bc046a4200370200200041013602b404200041ec88043602b0040c040b200041bc046a4200370200200041013602b404200041bc88043602b0040c030b200041f8006a4101722102200041406b29030021072000200029033822083703e001200020073703e80102400240024002400240024002400240200141016b0e050001040502030b230041406a22012400200141286a200241086a290000370200200141306a200241106a290000370200200141386a200241186a2900003702002001200041e0016a36021c20012002290000370220200141086a200141206a1026200129030821072000200141106a29030037030820002007370300200141406b24002000290300200041086a2903001033000b230041e0006b220124002001200041e0016a36021c200141086a200141206a200241c0001009200141406b102520012903082107200041106a2202200141106a29030037030820022007370300200141e0006a24002000290310200041186a2903001033000b200041b8046a20004180016a41d000100921022000200041e0016a3602b004200041f8046a290300210820004180056a2903002107200041a0026a22011022200041206a20022001102541012103410121012000290320220a2008542204200041286a290300220920075420072009511b0d04410221012002200041d8046a20082007103841ff017122054102460d03200541004721010c040b200820071033000b200041b8046a20004180016a4130100921022000200041e0016a3602b004200041e0046a2903002107200041d8046a2903002108200041a0026a2201102220012002200820071038220241ff0171410247220145044020002903e001200041e8016a29030010340b200120021032000b200041b0036a20004180016a4130100921022000200041e0016a3602a803200041d8036a2903002107200041d0036a2903002108200041e8026a220110222001200220082007100c200041b8026a20004180036a290000370300200041b0026a200041f8026a290000370300200041a8026a200041f0026a290000370300200041c8026a20004188016a290300370300200041d0026a20004190016a290300370300200041d8026a20004198016a290300370300200020002900e8023703a00220002000290380013703c002200041b8046a200041a0026a41c00010091a20004180056a2007370300200041f8046a2008370300200042013703b004200041b0046a102e20002903e001200041e8016a2903001034410041021032000b2002200041a0026a200a20087d200920077d2004ad7d100c20002903e001200041e8016a2903001034410021030b200320011032000b200041043a00b004200041b0046a1039000b1031000b200041f49f043602b804200041b0046a41948804102b000bd10202037f037e23004180016b22042400200441186a200010260240200429031822082002542206200441206a290300220720035420032007511b4504402000200820027d200720037d2006ad7d1011200441086a200110262004290308220720027c220920075422052005ad200441106a290300220720037c7c220820075420072008511b0d012001200920081011200441396a2000290000370000200441c1006a200041086a290000370000200441c9006a200041106a290000370000200441d1006a200041186a290000370000200441da006a2001290000370100200441e2006a200141086a290000370100200441ea006a200141106a290000370100200441f2006a200141186a290000370100200441013a0038200441013a00592004200337033020042002370328200441286a1036410221050b20044180016a240020050f0b41c08204411c41f488041017000b4801017f230041206b220124002001410c6a420137020020014101360204200141f49e043602002001410436021c200120003602182001200141186a360208200141948804102b000bf40402087f037e230041c0016b2200240002401024220141ff0171410546044020004180800136025041d0a304200041d0006a22011002200041286a200028025041d0a3044180800141908504100a200020002903283702502000410036023002402001200041306a4104101e0d0020002d0030419b01470d0020002d003141ae01470d0020002d0032419d01470d0020002d003341de00470d00200041106a200041d0006a10202000290310a7450d020b1031000b200020013a0050200041d0006a1039000b200041206a290300210820002903182109200041306a1022200041ec006a200041c8006a2202290000370200200041e4006a200041406b2203290000370200200041dc006a200041386a220429000037020020002000290030370254200041ec8004360250200041003602b0012000428080013702b801200041d0a3043602b40141e7b98fb102200041b4016a2201100d200041d4006a2001100e200020002902b4013702a801200041086a200041a8016a220520002802bc01100f200028020c21062000280208210720002902a801210a200041003602bc012000200a3702b4012009200820011010200020002902b4013702a8012000200520002802bc01100f200720062000280200200028020410071a2000419a016a200229000037010020004192016a20032900003701002000418a016a200429000037010020004182016a20002900303701002000200837035820002009370350200041013a008101200041003a0060200041d0006a1036200920081034230041106b22002400200042808001370208200041d0a304360204200041046a2201410010302001410010304100200028020c10281035000b7701027f230041106b2204240020022000280204200028020822036b4b0440200441086a200020032002103c2004280208200428020c103d200028020821030b200028020020036a2001200210091a2003200220036a22014b044041908904411c419c8f041017000b20002001360208200441106a24000bc00301057f230041206b220424000240027f4100200220036a22032002490d001a200128020422024100480d01410820024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003104020022802082105200228020c0c020b200528020021080240200310412205450440410021050c010b20052008200710091a0b20030c010b2002200310402002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000f0b41b08904412141f88a041017000b1f00024020004181808080784704402000450d012001103e000b0f0b103f000b860101017f230041306b220124002001200036020c2001411c6a420137020020014102360214200141c88c043602102001410536022c2001200141286a36021820012001410c6a360228230041206b22002400200041003b011c200041d88c043602182000200141106a360214200041989004360210200041f49f0436020c2000410c6a1049000b3c01017f230041206b22002400200041146a42003702002000410136020c2000419c8b04360208200041f49f04360210200041086a41a48b04102b000b2001017f41d2a3052d00001a20011041210220002001360204200020023602000b800101027f0240027f410041c8a304280200220120006a22022001490d001a41cca3042802002002490440200041ffff036a22024110764000220141ffff034b0d022001411074220120024180807c716a22022001490d0241cca30420023602004100200020016a22022001490d011a0b41c8a304200236020020010b0f0b41000b0c00200041ec8904200110430bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110200450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10552003200329031037021c200341086a20062001105520032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110200450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0c00200020012002103b41000bd10201037f230041106b220224000240024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a200020034101103c2004280208200428020c103d200441106a2400200028020821030b200028020020036a20013a0000200341016a2201450d04200020013602080c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b103b0b200241106a240041000f0b41908904411c418c8f041017000bd606020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e034020004104490d09200341196a20006a220241046b200e4290ce0080220d42f0b1037e200e7ca7220441ffff037141e4006e2206410174418592046a2f00003b0000200241026b2006419c7f6c20046a41ffff0371410174418592046a2f00003b0000200041046b2100200e42ffc1d72f562102200d210e20020d000b200da7220241e3004d0d02200041024f0d010c080b41272100200241e3004d0d020b200041026b2200200341196a6a200da7220441ffff037141e4006e2202419c7f6c20046a41ffff0371410174418592046a2f00003b00000b2002410a4f044020004102490d060c040b20000d010c050b2002410a4f0d020b200041016b2200200341196a6a200241306a3a00000c020b000b200041026b2200200341196a6a2002410174418592046a2f00003b00000b02400240200041274d0440412820006b412720006b2206200128021c220541017122071b2102410021042005410471044041f49f042104200241f49f0441f49f04104b20026a22024b0d020b412b418080c40020071b2107200341196a20006a2108200128020045044041012100200128021422022001280218220120072004104e0d03200220082006200128020c11000021000c030b2002200128020422094f044041012100200128021422022001280218220120072004104e0d03200220082006200128020c11000021000c030b200541087104402001280210210b2001413036021020012d0020210c41012100200141013a0020200128021422052001280218220a20072004104e0d03200341106a2001200920026b4101104f20032802102202418080c400460d0320032802142104200520082006200a28020c1100000d03200220042005200a10500d032001200c3a00202001200b360210410021000c030b41012100200341086a2001200920026b4101104f20032802082205418080c400460d02200328020c2109200128021422022001280218220120072004104e0d02200220082006200128020c1100000d022005200920022001105021000c020b0c020b41e08f04411c41c094041017000b200341406b240020000f0b41b08f04412141e49e041017000b1b00200128021441e489044105200141186a28020028020c1100000b0e0020002802001a03400c000b000bc20201047f230041406a220124002001200036020c2001411c6a420137020020014102360214200141c0a0043602102001410636022c2001200141286a36021820012001410c6a360228410021000240024002400240034020002000200241037441c4a0046a2802006a22004b0d014101210220032104410121032004450d000b20004101744100200041104e1b2200044020004100480d0220012000104020012802002202450d030b200141003602382001200036023420012002360230200141306a200141106a10420d032001280230210020012802382103024041d0a3052d000045044041d1a3052d00004101710d010b200020031004410947044041d0a30541013a00000b41d1a30541013a00000b000b41908904411c41d49e041017000b103f000b2000103e000b41e88c0441332001413f6a41d4890441888e041023000b2000200042b1a1a2be8cd0b08931370308200042b2c98bdc9db884a6203703000b8e04010a7f230041106b220224000240200120006b220141104f04402000200041036a417c71220620006b2200104c22042006200120006b2200417c716a2000410371104c6a220320044f0440200041027621050240024003402005450d0520022006200541c0012005200541c0014f1b41d09704104d200228020c21052002280208210620022002280200200228020422002000417c7141bc9904104d200228020c210820022802082107024020022802042200450440410021000c010b2002280200220420004102746a21094100210003402004220a41106a21044100210102400340200020002001200a6a280200220b417f73410776200b410676724181828408716a22004d0440200141046a22014110470d010c020b0b41e08f04411c41fc99041017000b20042009470d000b0b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034b0d012008450d000b200841027421014100210003402000200020072802002204417f734107762004410676724181828408716a22004b0d02200741046a2107200141046b22010d000b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034d0d0441e08f04411c41dc99041017000b41e08f04411c41cc99041017000b41e08f04411c41ec99041017000b41e08f04411c41ac99041017000b20002001104c21030b200241106a240020030b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41e08f04411c41d49e041017000b3d0020022003490440419ca004412320041017000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101102000d011a0b20030d0141000b0f0b200020034100200128020c1100000bb20101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b200241016a2203044020024101762104200341017621020c010b41e08f04411c41d094041017000b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110200450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110200450d000b200441016b0b2001490b900201067f02402000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722107200341f00149044020072006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200741067472722203418080c400460d011a0b20012802082204200520026b6a22022004490d012001200236020820030b360204200020043602000f0b41e08f04411c41809b041017000b2c00200120024d04402000200220016b3602042000200120036a3602000f0b41b08f04412141949c041017000bca0301067f230041306b22022400200028020421042000280200210302400240027f024020012802002205200128020822007204402000450d032001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1051200228021c418080c400470d010c050b0b200241106a200241246a10512002280214418080c400460d03024020022802102200450d00200020044f044020002004460d010c030b200020036a2c00004140480d020b200241086a4100200020031052200228020c210620022802080c020b200128021420032004200141186a28020028020c11000021000c030b41000b21002006200420001b21042000200320001b21030b2005450440200128021420032004200141186a28020028020c11000021000c010b200128020422002003200320046a104b22054b044020022001200020056b4100104f4101210020022802002205418080c400460d01200228020421062001280214220720032004200141186a280200220128020c1100000d012005200620072001105021000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1102000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044107470d0120012802000b2802002104410121030b20002004360204200020033602000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000beb0201057f230041406a22022400200028020021054101210002402001280214220441a89004410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4105360200200241346a41053602002002410336021420024180900436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a36021820042006200241106a10430d00200528020822030440200441b49004410220011100000d01200241386a200341106a290200370300200241306a200341086a2902003703002002200329020037032820042006200241286a104321000c010b200220052802002203200528020428020c11010041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441b49004410220011100000d00200420032802002003280204200111000021000b200241406b240020000b6901017f230041306b220424002004200136020420042000360200200441146a42023702002004412c6a41053602002004410236020c20042003360208200441053602242004200441206a3602102004200441046a36022820042004360220200441086a2002102b000b0bbb230500418080040bb5022f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e727300e7dc23264661696c656420746f206765742076616c756520696e204d617070696e673a207000010020000000000001006b0000009c000000250000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273a8000100700000009d00000020000000a8000100700000009d000000300041c082040bc106617474656d707420746f206164642077697468206f766572666c6f77080000000100000001000000030000004465636f646543616c6c65655472617070656443616c6c656552657665727465644b65794e6f74466f756e645f42656c6f7753756273697374656e63655468726573686f6c645472616e736665724661696c65645f456e646f776d656e74546f6f4c6f77436f64654e6f74466f756e644e6f7443616c6c61626c65556e6b6e6f776e4c6f6767696e6744697361626c656443616c6c52756e74696d654661696c656445636473615265636f766572794661696c65642f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300210201006e000000e40000001700000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000a8000100700000006b0100000e000000a8000100700000002401000032000000656e636f756e746572656420756e6578706563746564206572726f72040301001c000000a800010070000000ed000000170000005010010071000000c10000003d0000005010010071000000c40000000900000045726332303a3a5472616e7366657200f40f0100000000005803010045726332303a3a5472616e736665723a3a66726f6d45726332303a3a5472616e736665723a3a746f45726332303a3a417070726f76616c00f40f0100000000009c03010045726332303a3a417070726f76616c3a3a6f776e657245726332303a3a417070726f76616c3a3a7370656e6465722f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f65726332302f6c69622e7273e60301002e000000070000000500000073746f7261676520656e7472792077617320656d707479002404010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279004404010027000000e60301002e000000cf0000002700419089040bc106617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000900000000000000010000000a0000004572726f720000000b0000000c000000040000000c0000000d0000000e0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72730000000405010071000000980100001c0000006361706163697479206f766572666c6f770000008805010011000000040501007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c65640000002306010015000000380601000d000000b40501006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72739b0601006d00000064020000200000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72730000001807010071000000610700000d0000001807010071000000d00700000900000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f770041e08f040b9410617474656d707420746f206164642077697468206f766572666c6f77293a0000f40f010000000000fd07010001000000fd070100010000000900000000000000010000000f00000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320360801002000000056080100120000003a200000f40f0100000000007808010002000000202020202c0a28280a2f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000cd09010070000000050500000d000000cd0901007000000097050000300000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273000000600a010075000000760000004b000000600a010075000000770000003400000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820f80a0100120000000a0b01002200000072616e676520656e6420696e646578203c0b0100100000000a0b0100220000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273005c0b010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028e00b010015000000f50b01002b000000fc070100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000380c0100720000004700000015000000380c0100720000004f00000032000000380c0100720000005a00000009000000380c010072000000660000000d000000380c0100720000006400000011000000380c01007200000054000000110000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e72730000000c0d01007100000091000000110000000c0d0100710000004f0200002d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e727300a00d010073000000d3000000130000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e7273240e010074000000a101000047000000240e010074000000b401000020000000240e010074000000b401000011000000240e010074000000b8010000370000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e72730000d80e01007a00000095000000010000009508010070000000d201000005000000f40f010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d657373616765004180a0040bc703617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290af40f0100000000003f100100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e727300000050100100710000005a0000001c00000050100100710000005a0000001400000050100100710000005a00000031000000501001007100000065000000090000005010010071000000830000002500000050100100710000008d000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e727300241101006b000000770000000e000000190000001c0000001600000014000000190000007c0f0100950f0100b10f0100c70f0100db0f01", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "3.2.0", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { "keep_debug_symbols": false, "optimization_passes": "Z" } + } + }, + "contract": { + "name": "erc20", + "version": "4.3.0", + "authors": ["Parity Technologies "] + }, + "spec": { + "constructors": [ + { + "args": [{ "label": "total_supply", "type": { "displayName": ["Balance"], "type": 0 } }], + "default": false, + "docs": ["Creates a new ERC-20 contract with the specified initial supply."], + "label": "new", + "payable": false, + "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 1 }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { "displayName": ["AccountId"], "type": 5 }, + "balance": { "displayName": ["Balance"], "type": 0 }, + "blockNumber": { "displayName": ["BlockNumber"], "type": 14 }, + "chainExtension": { "displayName": ["ChainExtension"], "type": 15 }, + "hash": { "displayName": ["Hash"], "type": 12 }, + "maxEventTopics": 4, + "timestamp": { "displayName": ["Timestamp"], "type": 13 } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { "displayName": ["Option"], "type": 11 } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { "displayName": ["Option"], "type": 11 } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { "displayName": ["Balance"], "type": 0 } + } + ], + "docs": ["Event emitted when a token transfer occurs."], + "label": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { "displayName": ["AccountId"], "type": 5 } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { "displayName": ["AccountId"], "type": 5 } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { "displayName": ["Balance"], "type": 0 } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval" + } + ], + "lang_error": { "displayName": ["ink", "LangError"], "type": 3 }, + "messages": [ + { + "args": [], + "default": false, + "docs": [" Returns the total token supply."], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 4 }, + "selector": "0xdb6375a8" + }, + { + "args": [{ "label": "owner", "type": { "displayName": ["AccountId"], "type": 5 } }], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 4 }, + "selector": "0x0f755a56" + }, + { + "args": [ + { "label": "owner", "type": { "displayName": ["AccountId"], "type": 5 } }, + { "label": "spender", "type": { "displayName": ["AccountId"], "type": 5 } } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 4 }, + "selector": "0x6a00165e" + }, + { + "args": [ + { "label": "to", "type": { "displayName": ["AccountId"], "type": 5 } }, + { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 8 }, + "selector": "0x84a15da1" + }, + { + "args": [ + { "label": "spender", "type": { "displayName": ["AccountId"], "type": 5 } }, + { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 8 }, + "selector": "0x681266a0" + }, + { + "args": [ + { "label": "from", "type": { "displayName": ["AccountId"], "type": 5 } }, + { "label": "to", "type": { "displayName": ["AccountId"], "type": 5 } }, + { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 8 }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { "layout": { "leaf": { "key": "0x00000000", "ty": 0 } }, "name": "total_supply" }, + { + "layout": { + "root": { + "layout": { "leaf": { "key": "0x2623dce7", "ty": 0 } }, + "root_key": "0x2623dce7" + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { "leaf": { "key": "0xeca021b7", "ty": 0 } }, + "root_key": "0xeca021b7" + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000" + } + }, + "types": [ + { "id": 0, "type": { "def": { "primitive": "u128" } } }, + { + "id": 1, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 2 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 3 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 2 }, + { "name": "E", "type": 3 } + ], + "path": ["Result"] + } + }, + { "id": 2, "type": { "def": { "tuple": [] } } }, + { + "id": 3, + "type": { + "def": { "variant": { "variants": [{ "index": 1, "name": "CouldNotReadInput" }] } }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 4, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 0 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 3 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 0 }, + { "name": "E", "type": 3 } + ], + "path": ["Result"] + } + }, + { + "id": 5, + "type": { + "def": { "composite": { "fields": [{ "type": 6, "typeName": "[u8; 32]" }] } }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { "id": 6, "type": { "def": { "array": { "len": 32, "type": 7 } } } }, + { "id": 7, "type": { "def": { "primitive": "u8" } } }, + { + "id": 8, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 9 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 3 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 9 }, + { "name": "E", "type": 3 } + ], + "path": ["Result"] + } + }, + { + "id": 9, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 2 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 10 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 2 }, + { "name": "E", "type": 10 } + ], + "path": ["Result"] + } + }, + { + "id": 10, + "type": { + "def": { + "variant": { + "variants": [ + { "index": 0, "name": "InsufficientBalance" }, + { "index": 1, "name": "InsufficientAllowance" } + ] + } + }, + "path": ["erc20", "erc20", "Error"] + } + }, + { + "id": 11, + "type": { + "def": { + "variant": { + "variants": [ + { "index": 0, "name": "None" }, + { "fields": [{ "type": 5 }], "index": 1, "name": "Some" } + ] + } + }, + "params": [{ "name": "T", "type": 5 }], + "path": ["Option"] + } + }, + { + "id": 12, + "type": { + "def": { "composite": { "fields": [{ "type": 6, "typeName": "[u8; 32]" }] } }, + "path": ["ink_primitives", "types", "Hash"] + } + }, + { "id": 13, "type": { "def": { "primitive": "u64" } } }, + { "id": 14, "type": { "def": { "primitive": "u32" } } }, + { + "id": 15, + "type": { "def": { "variant": {} }, "path": ["ink_env", "types", "NoChainExtension"] } + } + ], + "version": "4" +} diff --git a/.api-contract/src/test/contracts/ink/v4/erc20.json b/.api-contract/src/test/contracts/ink/v4/erc20.json new file mode 100644 index 00000000..f354e533 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v4/erc20.json @@ -0,0 +1,714 @@ +{ + "source": { + "hash": "0x114f55289bcdfd0d28e0bbd1c63452b4e45901a022b1011d298fa2eb12d1711d", + "language": "ink! 4.3.0", + "compiler": "rustc 1.75.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "3.2.0", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "erc20", + "version": "4.3.0", + "authors": ["Parity Technologies "] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "total_supply", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": ["Creates a new ERC-20 contract with the specified initial supply."], + "label": "new", + "payable": false, + "returnType": { + "displayName": ["ink_primitives", "ConstructorResult"], + "type": 1 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": ["AccountId"], + "type": 5 + }, + "balance": { + "displayName": ["Balance"], + "type": 0 + }, + "blockNumber": { + "displayName": ["BlockNumber"], + "type": 14 + }, + "chainExtension": { + "displayName": ["ChainExtension"], + "type": 15 + }, + "hash": { + "displayName": ["Hash"], + "type": 12 + }, + "maxEventTopics": 4, + "timestamp": { + "displayName": ["Timestamp"], + "type": 13 + } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": ["Option"], + "type": 11 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": ["Option"], + "type": 11 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": ["Event emitted when a token transfer occurs."], + "label": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval" + } + ], + "lang_error": { + "displayName": ["ink", "LangError"], + "type": 3 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [" Returns the total token supply."], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 4 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 4 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 4 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 8 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 8 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "label": "to", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 8 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x2623dce7", + "ty": 0 + } + }, + "root_key": "0x2623dce7" + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xeca021b7", + "ty": 0 + } + }, + "root_key": "0xeca021b7" + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000" + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 2 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "E", + "type": 3 + } + ], + "path": ["Result"] + } + }, + { + "id": 2, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 3, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 4, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 3 + } + ], + "path": ["Result"] + } + }, + { + "id": 5, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { + "id": 6, + "type": { + "def": { + "array": { + "len": 32, + "type": 7 + } + } + } + }, + { + "id": 7, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 8, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 9 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 9 + }, + { + "name": "E", + "type": 3 + } + ], + "path": ["Result"] + } + }, + { + "id": 9, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 2 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 10, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": ["erc20", "erc20", "Error"] + } + }, + { + "id": 11, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 5 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 5 + } + ], + "path": ["Option"] + } + }, + { + "id": 12, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "Hash"] + } + }, + { + "id": 13, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 14, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 15, + "type": { + "def": { + "variant": {} + }, + "path": ["ink_env", "types", "NoChainExtension"] + } + } + ], + "version": "4" +} diff --git a/.api-contract/src/test/contracts/ink/v4/erc20.wasm b/.api-contract/src/test/contracts/ink/v4/erc20.wasm new file mode 100644 index 0000000000000000000000000000000000000000..799afda9ce661ab9ce23f4622459a2d2289a93b5 GIT binary patch literal 21078 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 F|1WbE1VjJ; literal 0 HcmV?d00001 diff --git a/.api-contract/src/test/contracts/ink/v4/flipper.contract.json b/.api-contract/src/test/contracts/ink/v4/flipper.contract.json new file mode 100644 index 00000000..49045d25 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v4/flipper.contract.json @@ -0,0 +1,157 @@ +{ + "source": { + "hash": "0xa5b19cb655755feba8e34ab5b413ac6593ecc7e24e19af485a4d30036be9d577", + "language": "ink! 4.2.0", + "compiler": "rustc 1.69.0", + "wasm": "0x0061736d0100000001450c60027f7f017f60037f7f7f017f60027f7f0060037f7f7f0060017f0060047f7f7f7f017f60000060047f7f7f7f0060017f017f60017f017e60057f7f7f7f7f006000017f028a0107057365616c310b6765745f73746f726167650005057365616c301176616c75655f7472616e736665727265640002057365616c3005696e7075740002057365616c300d64656275675f6d6573736167650000057365616c320b7365745f73746f726167650005057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100337360102030b0803040002080102020604030202060600010103000300070204060202000400040900000a0507050000030a01000000000704050170010f0f0608017f01418080040b0711020463616c6c0018066465706c6f7900190914010041010b0e0d32273a29333839281c1e20372b0ac744362b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b2601017f230041106b22022400200220003a000f20012002410f6a41011008200241106a24000b5c01037f02402000280208220420026a220320044f04402003200028020422054b0d01200028020020046a200320046b2001200241cc97041035200020033602080f0b41909604411c41ac9704101f000b2003200541bc9704100b000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b1b002000418180014f044020004180800141a88104100b000b20000b7501017f230041306b220324002003200136020420032000360200200341146a41023602002003411c6a41023602002003412c6a4103360200200341988f0436021020034100360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a2002100e000b5201017f230041206b220124002001410c6a4101360200200141146a41013602002001418c9504360208200141003602002001410136021c200120003602182001200141186a360210200141b08204100e000b910101017f230041306b22022400200241146a41013602002002411c6a41013602002002418c95043602102002410036020820024102360224200220002d0000410274220041ac9a046a28020036022c2002200041c09a046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a1036200241306a24000b3c01017f230041206b22022400200241013a00182002200136021420022000360210200241d08a0436020c2002418c9604360208200241086a102a000b4001017f230041106b22012400200141003a000f20002001410f6a41011010047f4102054101410220012d000f22004101461b410020001b0b200141106a24000b6001047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206103b200120022003280208200328020c419c9a0410352003200220042006103b200020032903003702000b200341106a240020050b4701017f230041106b220224002002410036020c024020012002410c6a410410104504402000200228020c360001200041003a00000c010b200041013a00000b200241106a24000b3f01017f230041106b22022400200242808001370204200241dc9a0436020020022001047f20024101101741010541000b101720002002280208100a1016000b3701017f230041106b22002400200042808001370204200041dc9a0436020020004100101720004100101741002000280208100a1016000bae0102057f017e230041306b2201240020014100360218200142808001370224200141dc9a043602202001410036021c200141206a22022001411c6a4104100820012001290320370310200141086a200141106a220320012802281015200128020c2104200128020820012903102106200141003602282001200637032020002002100720012001290320370310200120032001280228101520042001280200200128020410041a200141306a24000b4501017f2002200128020422034b044041ac9604412341ec9704101f000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b0d00200041dc9a0420011005000ba10101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a41023602002000411c6a41023602002000412c6a4103360200200041a48a0436021020004100360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a41dc9704100e000bab0501077f230041406a22002400024002400240024002400240100941ff0171410546044020004180800136022041dc9a04200041206a100220002802202201418180014f0d0120002001360224200041dc9a04360220200041106a200041206a101120002d00100d0520002800112201411876210220014110762104200141087621030240200141ff01712201412f470440200141e30047200341ff0171413a4772200441ff017141a50147720d0741012101200241d100460d010c070b200341ff017141860147200441ff017141db0047720d0641002101200241d901470d060b20004100360218200042808001370224200041dc9a043602202000410036023c200041206a22032000413c6a4104100820002000290320370310200041086a200041106a20002802281015200028020c210520002802082000280210210220002000280214220436022020052002200310002103200420002802202205490d02024002400240410c20032003410c4f1b0e0402000001000b2000412c6a4101360200200041346a4100360200200041d481043602282000418c960436023020004100360220200041206a41dc8104100e000b2000412c6a4101360200200041346a41003602002000418883043602280c070b2000200536022420002002360220200041206a100f41ff017122024102460d042001450d032002451014410041001012000b200041043a0020200041206a100c000b20014180800141cc8004100b000b2005200441cc8004100b000b230041106b22002400200042808001370204200041dc9a0436020020004100101720024100472000100741002000280208100a1016000b2000412c6a4101360200200041346a4100360200200041e882043602280c010b410141011012000b2000418c960436023020004100360220200041206a41b08204100e000b8c0201057f230041106b2200240002400240100941ff01712201410546044020004180800136020041dc9a042000100220002802002201418180014f0d0120002001360204200041dc9a04360200200041086a20001011024020002d00080d002000280009220141187621022001411076210320014108762104200141ff0171220141e1004704402001419b0147200441ff017141ae014772200341ff0171419d0147200241de004772720d012000100f41ff017122004102460d01200010141013000b200441ff017141ef0147200341ff017141fe0047720d002002413e460d030b410141011012000b200020013a00002000100c000b20014180800141cc8004100b000b410010141013000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41908304200241086a101b200241206a24000bee0301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1101000d040b200141086a2101200428020020042802042106200441086a2104200341186a2006110000450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1101000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a103420032003290310370320200341086a2005200141046a103420032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110000450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1101000d010b41000c010b41010b200341406b24000b0f00200028020020012002101d41000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a20002003200210212004280208200428020c1022200028020821030b200028020420036a2001200210061a2003200220036a22014b044041b08304411c41a08904101f000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b101d0c020b230041106b22042400200441086a20002003410110212004280208200428020c1022200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41b08304411c41908904101f000b5001017f230041206b220324002003410c6a4101360200200341146a41003602002003418c9604360210200341003602002003200136021c200320003602182003200341186a36020820032002100e000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a101a200241206a24000bac0401067f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22062002490d0141082006200320032006491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200441106a2107230041106b220624002004027f0240027f0240200504400240200341004e044020072802080d012006200310252006280204210220062802000c040b0c040b20072802042209450440200641086a20031025200628020c210220062802080c030b20032102410041d49a04280200220520036a22082005490d021a2007280200210741d89a042802002008490440200341ffff036a220841107640002202417f46200241ffff0371200247720d022002411074220520084180807c716a22022005490d0241d89a042002360200200321024100200320056a22082005490d031a0b41d49a04200836020041002005450d021a20052007200910060c020b200420033602040c020b2003210241000b2205044020042005360204200441086a200236020041000c020b20042003360204200441086a410136020041010c010b200441086a410036020041010b360200200641106a240020042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41d08304412141f88404101f000b1f00024020014181808080784704402001450d0120001023000b0f0b1024000b900101017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141c88604360218200141003602102001410336022c2001200141286a36022020012001410c6a360228230041206b22002400200041003a0018200041d886043602142000200141106a360210200041d08a0436020c2000418c9604360208200041086a102a000b4601017f230041206b22002400200041146a41013602002000411c6a41003602002000419c85043602102000418c960436021820004100360208200041086a41a48504100e000ba10101027f027f410041d49a04280200220220016a22032002490d001a024041d89a042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141d89a0420033602004100200120026a22032002490d021a0b41d49a04200336020020020c010b41000b210320002001360204200020033602000b5301027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20011025200228020822030d0120011023000b1024000b2000200336020420002001360200200241106a24000bd806020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441878c046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441878c046a2f00003b0000200041046b2100200e42ffc1d72f56200d210e0d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441878c046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441878c046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b21024100210420054104710440418c960421042002418c9604418c9604102c20026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a280200220120072004102f0d01200220082006200128020c11010021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a20072004102f0d02200341106a2001200920026b4101103020032802142202418080c400460d022003280210200520082006200a28020c1101000d0220022005200a10310d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a280200220120072004102f0d01200220082006200128020c11010021000c010b41012100200341086a2001200920026b41011030200328020c2205418080c400460d00200328020820012802002202200141046a280200220120072004102f0d00200220082006200128020c1101000d00200520022001103121000b200341406b240020000f0b41b08904411c41c48e04101f000b41d08904412141f49404101f000b0300010b0e0020002802001a03400c000b000baa05020a7f017e230041406a220124002001200036020c2001412c6a4102360200200141346a4101360200200141d09604360228200141003602202001410436023c2001200141386a36023020012001410c6a360238200141106a210641002100230041306b22022400200141206a220441146a2802002107200428020821050240024002400240200241086a027f024002400240200241106a027f024002402004410c6a28020022080e020001040b20070d02418c9604210341000c010b20070d022005280200210320052802040b22001026200228021021042006200228021422053602042006200436020020052003200010061a200620003602080c040b200428021021090c010b200541046a21032008410374210a2004280210210903402000200020032802006a22004b0d04200341086a2103200a41086b220a0d000b20002007450d011a2000410f4b0d0041002005280204450d011a0b200020006a22034100200020034d1b0b10262002290308210b200641003602082006200b3702002002200736022c200220093602282002200836022420022005360220200220042902003703182006200241186a101a0d020b200241306a24000c020b41b08304411c41e49404101f000b230041406a220024002000413336020c200041e88604360208200041f483043602142000200241186a360210200041246a41023602002000412c6a41023602002000413c6a4106360200200041848b0436022020004100360218200041023602342000200041306a3602282000200041106a3602382000200041086a360230200041186a418c8804100e000b2001280214210020012802182101024041dc9a052d000045044041dd9a052d00004101710d010b410c20002001100322002000410c4f1b410947044041dc9a0541013a00000b41dd9a0541013a00000b000b0c0042f8f3eee1d7afe2bb350ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d0020012000102d2206200020016a22082004417c716a2004410371102d6a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41a09004102e200328020c21052003280208210820032003280200200328020422002000417c7141909204102e200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41b08904411c41a09204101f000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441b08904411c41d09204101f000b41b08904411c41b09204101f000b41b08904411c41c09204101f000b41b08904411c41809204101f000b20012002102d21020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41b08904411c41e49404101f000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41ac960441232004101f000b39000240027f2002418080c40047044041012000200220012802101100000d011a0b20030d0141000b0f0b200020034100200128020c1101000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41b08904411c41d48e04101f000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110000450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110000450d000b200441016b0b2000490bea04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11010021000c020b41b08904411c41d49304101f000b200b450440200128020020032004200128020428020c11010021000c010b2001410c6a2802002200200320046a2003102c22024b0440200941086a2001200020026b4100103041012100200928020c2202418080c400460d0120092802082001280200220520032004200141046a280200220128020c1101000d01200220052001103121000c010b200128020020032004200128020428020c11010021000b200941106a240020000b140020002802002001200028020428020c1100000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044105470d0120012802000b2802002104410121030b20002004360204200020033602000b8501002001200346044020002002200110061a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4103360200200041f0900436021020004100360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a2004100e000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a101b200341206a24000b18002001280200418495044105200128020428020c1101000b5801027f230041206b22022400200128020421032001280200200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a101b200241206a24000b0b002000280200200110320b990301037f230041406a22022400200028020021034101210002402001280200220441e08a04410c200141046a280200220128020c1101000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241f08a0436023020024100360228200241073602142002200241106a36023820022002410c6a36021020042001200241286a1036450d010c020b20032802002200200328020428020c11090042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241f08a0436023020024100360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a10360d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4103360200200241346a4103360200200241b88a043602182002410036021020022000410c6a3602382002200041086a3602302002410236022c200220003602282002200241286a36022020042001200241106a103621000b200241406b240020000b2c00200120024d04402000200220016b3602042000200120036a3602000f0b41909904412141f49804101f000b0bd21a0300418080040ba5032f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000000000010049000000e4000000140000002f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273005c0001004b0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72b80001001c0000005c0001004b000000ed000000170000002f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f696e746567726174696f6e2d74657374732f666c69707065722f6c69622e7273ec000100440000000600000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900400101002700000073746f7261676520656e7472792077617320656d7074790070010100170000000900000004000000040000000a0000000b0000000c0041b083040bd115617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000900000000000000010000000d0000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727304020100740000008f0100001c0000006361706163697479206f766572666c6f77000000880201001100000004020100740000000d020000050000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c656426030100150000003b0301000d000000b4020100720000009f0100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273009b0301007000000064020000200000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72731c04010074000000350700000d0000001c04010074000000a307000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320f20401002000000012050100120000003a0000000c0b010000000000340501000100000034050100010000000900000000000000010000000e00000070616e69636b65642061742027272c206c050100010000006d050100030000003a2000000c0b01000000000080050100020000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e72730000cf06010073000000750500000d000000cf060100730000000506000038000000206f7574206f662072616e676520666f7220736c696365206f66206c656e6774682072616e676520656e6420696e646578200000860701001000000064070100220000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e72730000a807010076000000c005000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820283008010015000000450801002b000000f1040100010000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000008808010075000000470000001500000088080100750000004f000000320000008808010075000000540000001100000088080100750000005a00000009000000880801007500000064000000110000008808010075000000660000000d0000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e7273600901007400000091000000110000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273000000e40901007d00000095000000010000009405010073000000cd010000050000004572726f720000000c0b0100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f7200000000617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290a0c0b0100000000004f0b0100010000002f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273600b01004c0000005a0000001c000000600b01004c0000005a00000009000000600b01004c0000005a00000031000000600b01004c0000006500000009000000600b01004c0000008d000000210000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e727300fc0b010077000000820100004700419099040bc301617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f616e6472656561656674656e652f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e352e302f7372632f636f6465632e727300b10c01006a000000780000000e000000190000001c000000160000001400000019000000f30a0100d70a0100c10a0100ad0a0100940a01", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "2.2.1", + "rust_toolchain": "stable-x86_64-apple-darwin", + "wasm_opt_settings": { "keep_debug_symbols": false, "optimization_passes": "Z" } + } + }, + "contract": { + "name": "flipper", + "version": "4.2.0", + "authors": ["Parity Technologies "] + }, + "spec": { + "constructors": [ + { + "args": [{ "label": "init_value", "type": { "displayName": ["bool"], "type": 0 } }], + "default": false, + "docs": ["Creates a new flipper smart contract initialized with the given value."], + "label": "new", + "payable": false, + "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 1 }, + "selector": "0x9bae9d5e" + }, + { + "args": [], + "default": false, + "docs": ["Creates a new flipper smart contract initialized to `false`."], + "label": "new_default", + "payable": false, + "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 1 }, + "selector": "0x61ef7e3e" + } + ], + "docs": [], + "environment": { + "accountId": { "displayName": ["AccountId"], "type": 5 }, + "balance": { "displayName": ["Balance"], "type": 8 }, + "blockNumber": { "displayName": ["BlockNumber"], "type": 11 }, + "chainExtension": { "displayName": ["ChainExtension"], "type": 12 }, + "hash": { "displayName": ["Hash"], "type": 9 }, + "maxEventTopics": 4, + "timestamp": { "displayName": ["Timestamp"], "type": 10 } + }, + "events": [], + "lang_error": { "displayName": ["ink", "LangError"], "type": 3 }, + "messages": [ + { + "args": [], + "default": false, + "docs": [" Flips the current value of the Flipper's boolean."], + "label": "flip", + "mutates": true, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 1 }, + "selector": "0x633aa551" + }, + { + "args": [], + "default": false, + "docs": [" Returns the current value of the Flipper's boolean."], + "label": "get", + "mutates": false, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 4 }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [{ "layout": { "leaf": { "key": "0x00000000", "ty": 0 } }, "name": "value" }], + "name": "Flipper" + } + }, + "root_key": "0x00000000" + } + }, + "types": [ + { "id": 0, "type": { "def": { "primitive": "bool" } } }, + { + "id": 1, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 2 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 3 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 2 }, + { "name": "E", "type": 3 } + ], + "path": ["Result"] + } + }, + { "id": 2, "type": { "def": { "tuple": [] } } }, + { + "id": 3, + "type": { + "def": { "variant": { "variants": [{ "index": 1, "name": "CouldNotReadInput" }] } }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 4, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 0 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 3 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 0 }, + { "name": "E", "type": 3 } + ], + "path": ["Result"] + } + }, + { + "id": 5, + "type": { + "def": { "composite": { "fields": [{ "type": 6, "typeName": "[u8; 32]" }] } }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { "id": 6, "type": { "def": { "array": { "len": 32, "type": 7 } } } }, + { "id": 7, "type": { "def": { "primitive": "u8" } } }, + { "id": 8, "type": { "def": { "primitive": "u128" } } }, + { + "id": 9, + "type": { + "def": { "composite": { "fields": [{ "type": 6, "typeName": "[u8; 32]" }] } }, + "path": ["ink_primitives", "types", "Hash"] + } + }, + { "id": 10, "type": { "def": { "primitive": "u64" } } }, + { "id": 11, "type": { "def": { "primitive": "u32" } } }, + { + "id": 12, + "type": { "def": { "variant": {} }, "path": ["ink_env", "types", "NoChainExtension"] } + } + ], + "version": "4" +} diff --git a/.api-contract/src/test/contracts/ink/v4/flipper.json b/.api-contract/src/test/contracts/ink/v4/flipper.json new file mode 100644 index 00000000..0ff5a4d3 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v4/flipper.json @@ -0,0 +1,338 @@ +{ + "source": { + "hash": "0xa5b19cb655755feba8e34ab5b413ac6593ecc7e24e19af485a4d30036be9d577", + "language": "ink! 4.2.0", + "compiler": "rustc 1.69.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "2.2.1", + "rust_toolchain": "stable-x86_64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "flipper", + "version": "4.2.0", + "authors": ["Parity Technologies "] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "init_value", + "type": { + "displayName": ["bool"], + "type": 0 + } + } + ], + "default": false, + "docs": ["Creates a new flipper smart contract initialized with the given value."], + "label": "new", + "payable": false, + "returnType": { + "displayName": ["ink_primitives", "ConstructorResult"], + "type": 1 + }, + "selector": "0x9bae9d5e" + }, + { + "args": [], + "default": false, + "docs": ["Creates a new flipper smart contract initialized to `false`."], + "label": "new_default", + "payable": false, + "returnType": { + "displayName": ["ink_primitives", "ConstructorResult"], + "type": 1 + }, + "selector": "0x61ef7e3e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": ["AccountId"], + "type": 5 + }, + "balance": { + "displayName": ["Balance"], + "type": 8 + }, + "blockNumber": { + "displayName": ["BlockNumber"], + "type": 11 + }, + "chainExtension": { + "displayName": ["ChainExtension"], + "type": 12 + }, + "hash": { + "displayName": ["Hash"], + "type": 9 + }, + "maxEventTopics": 4, + "timestamp": { + "displayName": ["Timestamp"], + "type": 10 + } + }, + "events": [], + "lang_error": { + "displayName": ["ink", "LangError"], + "type": 3 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [" Flips the current value of the Flipper's boolean."], + "label": "flip", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 1 + }, + "selector": "0x633aa551" + }, + { + "args": [], + "default": false, + "docs": [" Returns the current value of the Flipper's boolean."], + "label": "get", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 4 + }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "value" + } + ], + "name": "Flipper" + } + }, + "root_key": "0x00000000" + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 1, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 2 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "E", + "type": 3 + } + ], + "path": ["Result"] + } + }, + { + "id": 2, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 3, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 4, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 3 + } + ], + "path": ["Result"] + } + }, + { + "id": 5, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { + "id": 6, + "type": { + "def": { + "array": { + "len": 32, + "type": 7 + } + } + } + }, + { + "id": 7, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 8, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 9, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "Hash"] + } + }, + { + "id": 10, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 11, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 12, + "type": { + "def": { + "variant": {} + }, + "path": ["ink_env", "types", "NoChainExtension"] + } + } + ], + "version": "4" +} diff --git a/.api-contract/src/test/contracts/ink/v4/flipper.wasm b/.api-contract/src/test/contracts/ink/v4/flipper.wasm new file mode 100644 index 0000000000000000000000000000000000000000..3f77edb2319aa3b738fe331fba6b4273ee519a6d GIT binary patch literal 12526 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 literal 0 HcmV?d00001 diff --git a/.api-contract/src/test/contracts/ink/v4/index.ts b/.api-contract/src/test/contracts/ink/v4/index.ts new file mode 100644 index 00000000..808eba8c --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v4/index.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; +export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; +export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v5/erc20.contract.json b/.api-contract/src/test/contracts/ink/v5/erc20.contract.json new file mode 100644 index 00000000..a236791a --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v5/erc20.contract.json @@ -0,0 +1,480 @@ +{ + "source": { + "hash": "0xf6939855fe6abe0b79cd23a154f0816d8205a5751f36b8703e9a60f31d9e48a5", + "language": "ink! 5.0.0-rc.1", + "compiler": "rustc 1.75.0", + "wasm": "0x0061736d0100000001691160037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060017f0060047f7f7f7f0060047f7f7f7f017f60057f7f7f7f7f0060000060017f017f60027e7e0060047f7f7e7e0060037e7e7f0060037f7e7e006000017f60057f7f7f7f7f017f60047f7f7e7e017f02c7010a057365616c310b6765745f73746f726167650006057365616c3005696e7075740002057365616c300d6465706f7369745f6576656e740005057365616c320b7365745f73746f726167650006057365616c300d64656275675f6d6573736167650001057365616c300b7365616c5f72657475726e0003057365616c300663616c6c65720002057365616c301176616c75655f7472616e736665727265640002057365616c300f686173685f626c616b65325f323536000303656e76066d656d6f7279020102100356550000000007030b0202030c0d0402030305040207040202000202020403020204070e01010203040903030102010f0a02080a0208100408030502020901000001010104020101070605060201010300050101010205040501700116160616037f01418080040b7f0041809b050b7f0041fe9a050b0711020463616c6c003c066465706c6f79003f091b010041010b15555435332b2c495b4a2f2f2b2f4748454c2f57595a0afa78552b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b6f01017f0240200020014d04402000210303402002450d02200320012d00003a0000200141016a2101200341016a2103200241016b21020c000b000b200141016b2101200041016b210303402002450d01200220036a200120026a2d00003a0000200241016b21020c000b000b20000b2501017f037f2002200346047f200005200020036a20013a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b2200200120034d044020002001360204200020023602000f0b200120032004100e000b0e0020002001200241f89004105d0bbb0102037f017e230041306b2204240020044100360220200442808001370228200441fe9a0436022441b7c380e57e200441246a2205101020002005101120012005101120042004290224370218200441106a200441186a2206200428022c10122004280214210020042802102101200429021821072004410036022c20042007370224200220032005101320042004290224370218200441086a2006200428022c1012200120002004280208200428020c10031a200441306a24000b2601017f230041106b220224002002200036020c20012002410c6a41041017200241106a24000b0a0020012000412010170b4501017f2002200128020422034b044041a09604412341cc98041032000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b2a01017f230041106b2203240020032001370308200320003703002002200341101017200341106a24000bb50102047f017e230041306b2203240020034100360220200342808001370228200341fe9a0436022441e7b98fb102200341246a2204101020002004101120032003290224370218200341106a200341186a2205200328022c10122003280214210020032802102106200329021821072003410036022c20032007370224200120022004101320032003290224370218200341086a2005200328022c1012200620002003280208200328020c10031a200341306a24000bbd0102047f017e230041d0006b22012400200141186a220220001016200129021821052001410036022c20012005370224200141003a0044200141246a2203200141c4006a22044101101720012001290224370218200141106a2002200128022c10122003200128021020012802141018200141086a200028020020002802042000280208220210192001410036024c2001200129030837024420032004101120022002200128024c6a22024d101a20002002360208200141d0006a24000b3f01027f20012802042203200128020822024904402002200341bc98041031000b200041003602082000200320026b3602042000200128020020026a3602000bd30101057f20002802042105200028020021062000280208220420026a220320044f220741ec9704105c0240200320044f0440200320054b0d01200420066a200320046b20012002418c9804101c2007419c9804105c200020033602080f0b230041306b220024002000200336020420002004360200200041146a42023702002000412c6a41073602002000410236020c200041ac9104360208200041073602242000200041206a3602102000200041046a36022820002000360220200041086a41fc97041034000b2003200541fc9704100e000b8f0201077f230041d0006b22032400200341286a22044200370300200341206a22054200370300200341186a22064200370300200342003703100240200241214f0440200341c8006a22074200370300200341406b22084200370300200341386a220942003703002003420037033020012002200341306a1008200420072903003703002005200829030037030020062009290300370300200320032903303703100c010b200341086a2002200341106a412041a48104100d2003280208200328020c2001200241b48104101c0b20002003290310370000200041186a200341286a290300370000200041106a200341206a290300370000200041086a200341186a290300370000200341d0006a24000b29002002200349044020032002418c84041031000b2000200220036b3602042000200120036a3602000b1500200045044041c39604412b419c84041032000b0bb20102037f017e230041d0006b22022400200241186a220420001016200229021821052002410036022c200220053702242001200241246a2203101120022002290224370218200241106a2004200228022c10122003200228021020022802141018200241086a200028020020002802042000280208220110192002410036024c200220022903083702442003200241c4006a101120012001200228024c6a22014d101a20002001360208200241d0006a24000b7b002001200346044020002002200110091a0f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41073602002000410336020c200041809304360208200041073602242000200041206a360210200020003602282000200041046a360220200041086a20041034000b5c01027f230041206b22012400200141086a200028020020002802042000280208220210192001410036021c20012001290308370214200141146a410c101e20022002200128021c6a22024d101a20002002360208200141206a24000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41073602002000410236020c200041948e04360208200041073602242000200041206a360210200020003602282000200041046a360220200041086a41ac98041034000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120102045044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b3d01027f2000280204220320024922044504402001200220002802002201200241b49a04101c2000200320026b3602042000200120026a3602000b20040b5502027f017e230041206b22022400200241086a20011022200241186a29030021042002280208210320002002290310370308200041106a200437030020002003200128020472410047ad370300200241206a24000b5f02017f037e230041106b2202240020024200370308200242003703000240200120024110102045044020022903082104200229030021050c010b420121030b2000200537030820002003370300200041106a2004370300200241106a24000ba90102017f027e230041406a220224002002411f6a2001101f0240024020022d001f0d002002200110222002290300a70d00200241106a2903002103200229030821042000200229002037000820004200370300200041286a2004370300200041306a2003370300200041206a200241386a290000370000200041186a200241306a290000370000200041106a200241286a2900003700000c010b200042013703000b200241406b24000be80202077f017e230041406a22012400200142808001370228200141fe9a04360224200141246a101d200141186a2001412c6a28020036020020012001290224370310200141306a2202200141106a41b587041025200041316a2105024020002d001004402002200041116a101b0c010b200141306a10150b200041106a2106200141186a200141386a28020036020020012001290230370310024020052d00000440200141106a200041326a101b0c010b200141106a10150b200141386a2202200141186a220328020036020020012001290310370330200141106a2204200141306a2207102620022003280200360200200120012902102208370330200141206a2802002102200128021c210320014100360218200120083702102006200410272005200410272000290300200041086a2903002004101320012001290210370330200141086a200720012802181012200320022001280208200128020c1002200141406b24000bda0102037f017e230041d0006b22032400024020020440200341186a220520011016200329021821062003410036022c200320063702242002200341246a2204101120032003290224370218200341106a2005200328022c10122004200328021020032802141018200341086a200128020020012802042001280208220210192003410036024c200320032903083702442004200341c4006a101120022002200328024c6a22024d101a200120023602080c010b200110150b20002001290200370200200041086a200141086a280200360200200341d0006a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101220022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b210020002d000045044020014100101e0f0b20014101101e200041016a200110110baf0101027f230041306b2201240020014180800136020441fe9a04200141046a2202100620014180800136022c200141fe9a043602282002200141286a101f20012d00040440200141103a000441f7820441c100200241c8820441b883041029000b2000200141066a290000370001200041096a2001410e6a290000370000200041116a200141166a290000370000200041186a2001411d6a290000370000200020012d00053a0000200141306a24000b7c01017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a42023702002005413c6a41013602002005410236021c200541a88e04360218200541023602342005200541306a3602202005200541106a3602382005200541086a360230200541186a20041034000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10072000290308210120002903002102200041206a2400410541042001200284501b0b1b002001280214418889044105200141186a28020028020c1100000b3400200128021420002802002d0000410274220041b888046a280200200041f887046a280200200141186a28020028020c1100000bff0202057f027e230041d0006b220224002002410036023020024280800137023c200241fe9a0436023841e7b98fb102200241386a2204101020012004101120022002290238370228200241206a200241286a200228024010122002280224210320022802202105200228022821012002200228022c2206360238200520032001200410002103200241186a20022802382001200641b88204100d027e024002400240024020030e0400010103010b200228021821012002200228021c36023c200220013602382002200241386a10212002290300a70d0120022903082107200241106a2903000c030b200241c4006a42003702002002410136023c200241f48304360238200241a09604360240200241386a41fc83041034000b200241103a0037200241c4006a42013702002002410136023c2002418c81043602382002410336022c2002200241286a3602402002200241376a360228200241386a419481041034000b42000b21082000200737030020002008370308200241d0006a24000b850302047f027e230041d0006b220324002003410036023020034280800137023c200341fe9a0436023841b7c380e57e200341386a2204101020012004101120022004101120032003290238370228200341206a200341286a200328024010122003280224210220032802202105200328022821012003200328022c2206360238200520022001200410002102200341186a20032802382001200641b88204100d027e024002400240024020020e0400010103010b200328021821012003200328021c36023c200320013602382003200341386a10212003290300a70d0120032903082107200341106a2903000c030b200341c4006a42003702002003410136023c200341f48304360238200341a09604360240200341386a41fc83041034000b200341103a0037200341c4006a42013702002003410136023c2003418c81043602382003410336022c2003200341286a3602402003200341376a360228200341386a419481041034000b42000b21082000200737030020002008370308200341d0006a24000b0300010b1b002000418180014f044020004180800141c88304100e000b20000b0e0020002001200241d89004105d0b4601017f230041206b220324002003410c6a420037020020034101360204200341a096043602082003200136021c200320003602182003200341186a360200200320021034000b840101017f230041306b22022400200241146a42013702002002410136020c200241a0950436020820024102360224200220002d0000410274220041c49a046a28020036022c2002200041d89a046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10462100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241c48d04360210200241a0960436020c2002410c6a104b000b8f0101027f230041106b22022400027f024002400240410220002d000041106b41ff01712203200341024f1b41016b0e020102000b20022000360208200141d882044106200241086a410510360c020b200128021441de8204410e200141186a28020028020c1100000c010b2002200036020c200141ec8204410b2002410c6a410610360b2100200241106a240020000ba20201047f230041406a220524004101210702402000280214220620012002200041186a280200220228020c22011100000d000240200028021c2208410471450440200641d68e04410120011100000d022003200020041101000d0220002802142106200028021828020c21010c010b200641d78e04410220011100000d01200541013a001b200541346a41b88e04360200200520023602102005200636020c20052008360238200520002d00203a003c2005200028021036022c200520002902083702242005200029020037021c20052005411b6a36021420052005410c6a36023020032005411c6a20041101000d01200528023041d48e044102200528023428020c1100000d010b200641a88d044101200111000021070b200541406b240020070b3e01027f230041106b22022400200242808001370208200241fe9a04360204200241046a22034100101e20002001200310134100200228020c1030103b000b5101027f230041106b22022400200242808001370208200241fe9a04360204200241046a22034100101e2003200141ff0171410247047f20034101101e20010541000b101e2000200228020c1030103b000b3c01027f230041106b22002400200042808001370208200041fe9a04360204200041046a22014101101e20014101101e4101200028020c1030103b000bab0102057f017e230041306b2202240020024100360220200242808001370228200241fe9a043602244100200241246a2203101020022002290224370218200241106a200241186a2204200228022c10122002280214210520022802102106200229021821072002410036022c20022007370224200020012003101320022002290224370218200241086a2004200228022c1012200620052002280208200228020c10031a200241306a24000b0d00200041fe9a0420011005000b821602087f047e230041a0056b22002400024002400240102a41ff017141054604402000418080013602c80441fe9a04200041c8046a2201100120004180016a20002802c80441fe9a044180800141b88204100d20002000290380013702bc04200041003602c804200041bc046a2001410410200d0220002d00cb04210220002d00ca04210320002d00c9042101027f02400240024002400240024020002d00c8042204410b6b0e050509090901000b0240200441e8006b0e03040902000b2004418401460d02200441db0147200141ff017141e3004772200341f50047200241a8014772720d0841000c050b200141ff017141f50047200341da004772200241d60047720d07200041c8046a200041bc046a101f20002d00c8040d07200041f0016a200041d2046a290000370300200041f8016a200041da046a290000370300200041ff016a200041e1046a2900003700002000200041ca046a2900003703e80120002d00c904210141010c040b200141ff0171200341164772200241de0047720d06200041a8026a200041bc046a2201101f20002d00a8020d0620004188016a2001101f20002d0088010d06200041ff046a200041a1016a290000370000200041f7046a20004199016a290000370000200041ef046a20004191016a290000370000200041d0046a200041b2026a290000370300200041d8046a200041ba026a290000370300200041df046a200041c1026a29000037000020002000290089013700e7042000200041aa026a2900003703c80420002d00a9022101200041e8016a200041c8046a413f10091a41020c030b200141ff017141a10147200341dd004772200241a10147720d05200041c8046a200041bc046a102320002903c8044200520d05200041b6036a200041ae026a2000418e016a200041d0046a4130100941301009413010091a200041e8016a200041b0036a413610091a41030c020b200141ff0171411247200341e6004772200241a00147720d04200041c8046a200041bc046a102320002903c8044200520d04200041b6036a200041ae026a2000418e016a200041d0046a4130100941301009413010091a200041e8016a200041b0036a413610091a41040c010b200141ff0171413947200341ef0047722002411847720d03200041f0036a200041bc046a2201101f20002d00f0030d0320004198046a2001101f20002d0098040d03200041e8006a200110222000290368a70d03200041f8006a290300210820002903702109200041c8036a200041f1036a220141186a290000370300200041c0036a200141106a290000370300200041b8036a200141086a290000370300200041d8036a200041a1046a290000370300200041e0036a200041a9046a290000370300200041e8036a200041b1046a29000037030020002000290099043703d003200020012900003703b003200041f0026a2202200041b0036a41c00010091a200041ae026a2000418e016a200041ce046a200241c000100941c000100941c00010091a200041e8016a200041a8026a413f10091a2000200041ea026a2800003600e301200020002800e7023602e00141050b210220004188016a410272200041e8016a413f10091a200041cc016a20002800e301360000200041d8016a2008370300200020002802e0013600c901200020093703d001200020013a008901200020023a008801200041003602b0022000428080013702cc04200041fe9a043602c8044100200041c8046a22031010200020002902c8043702a802200041e0006a200041a8026a20002802d0041012200028026421042000280260210520002802a8022101200020002802ac0222063602c804200520042001200310002103200041d8006a20002802c8042001200641b88204100d02400240024020030e0400040401040b200028025821012000200028025c3602cc04200020013602c804200041406b200041c8046a10222000290340a745044020002802cc04450d020b200041d4046a4200370200200041013602cc042000419c87043602c8040c050b200041d4046a4200370200200041013602cc04200041ec86043602c8040c040b20004188016a4101722101200041d0006a290300210820002000290348220937039804200020083703a00402400240024002400240024002400240200241016b0e050001040502030b230041406a22022400200241286a200141086a290000370200200241306a200141106a290000370200200241386a200141186a290000370200200220004198046a36021c20022001290000370220200241086a200241206a102d20022903082108200041086a2201200241106a29030037030820012008370300200241406b24002000290308200041106a2903001037000b230041e0006b22022400200220004198046a36021c200241086a200241206a200141c0001009200241406b102e20022903082108200041186a2201200241106a29030037030820012008370300200241e0006a24002000290318200041206a2903001037000b200041d0046a20004190016a41d00010092101200020004198046a3602c80420004190056a290300210920004198056a2903002108200041a8026a22021028200041306a20012002102e41012103410121022000290330220b2009542204200041386a290300220a2008542008200a511b0d04410221022001200041f0046a20092008103d41ff017122054102460d03200541004721020c040b200920081037000b200041d0046a20004190016a413010092101200020004198046a3602c804200041f8046a2903002108200041f0046a2903002109200041a8026a220210282002200120092008103d220141ff0171410246047f200029039804200041a0046a290300103a41000541010b20011038000b200041b8036a20004190016a413010092101200020004198046a3602b003200041e0036a2903002108200041d8036a2903002109200041f0026a220210282002200120092008100f200041c0026a20004188036a290000370300200041b8026a20004180036a290000370300200041b0026a200041f8026a290000370300200041d0026a20004198016a290300370300200041d8026a200041a0016a290300370300200041e0026a200041a8016a290300370300200020002900f0023703a80220002000290390013703c802200041c8046a2204200041a8026a41c00010091a20004190056a2206200837030020002009370388052000428080013702c004200041fe9a043602bc04200041bc046a101d200041f0016a2202200041c4046a280200360200200020002902bc043703e801200041f0036a2203200041e8016a220141d68704102520032004101b2002200041f8036a2205280200360200200020002902f0033703e8012001200041e8046a2207101b20052002280200360200200020002903e8013703f00320012003102620052002280200360200200020002902e80122083703f003200041f8016a280200210220002802f4012105200041003602f001200020083702e801200420011011200720011011200029038805200629030020011013200020002902e8013703f003200041286a200320002802f0011012200520022000280228200028022c1002200029039804200041a0046a290300103a410041021038000b2001200041a8026a200b20097d200a20087d2004ad7d100f200029039804200041a0046a290300103a410021030b200320021038000b200041043a00c804200041c8046a103e000b200041d4046a4200370200200041013602cc04200041f483043602c804200041a096043602d004200041c8046a41fc83041034000b1039000b200041a096043602d004200041c8046a41c486041034000bd40202037f037e23004180016b22042400200441186a2000102d0240200429031822082002542206200441206a290300220720035420032007511b4504402000200820027d200720037d2006ad7d1014200441086a2001102d2004290308220720027c220920075422052005ad200441106a290300220720037c7c220820075420072008511b4101460d012001200920081014200441396a2000290000370000200441c1006a200041086a290000370000200441c9006a200041106a290000370000200441d1006a200041186a290000370000200441da006a2001290000370100200441e2006a200141086a290000370100200441ea006a200141106a290000370100200441f2006a200141186a290000370100200441013a0038200441013a00592004200337033020042002370328200441286a1024410221050b20044180016a240020050f0b41c39604412b41a487041032000b4801017f230041206b220124002001410c6a420137020020014101360204200141a095043602002001410436021c200120003602182001200141186a360208200141c486041034000bf00402087f037e230041c0016b220024000240102a220141ff0171410546044020004180800136025041fe9a04200041d0006a22011001200041286a200028025041fe9a044180800141b88204100d200020002903283702502000410036023002402001200041306a410410200d0020002d0030419b01470d0020002d003141ae01470d0020002d0032419d01470d0020002d003341de00470d00200041106a200110222000290310a7450d020b1039000b200020013a0050200041d0006a103e000b200041206a290300210820002903182109200041306a1028200041ec006a200041c8006a2202290000370200200041e4006a200041406b2203290000370200200041dc006a200041386a220429000037020020002000290030370254200041808004360250200041003602b0012000428080013702b801200041fe9a043602b40141e7b98fb102200041b4016a22011010200041d4006a20011011200020002902b4013702a801200041086a200041a8016a220520002802bc011012200028020c21062000280208210720002902a801210a200041003602bc012000200a3702b4012009200820011013200020002902b4013702a8012000200520002802bc011012200720062000280200200028020410031a2000419a016a200229000037010020004192016a20032900003701002000418a016a200429000037010020004182016a20002900303701002000200837035820002009370350200041013a008101200041003a0060200041d0006a102420092008103a230041106b22002400200042808001370208200041fe9a04360204200041046a22014100101e20014100101e4100200028020c1030103b000b6001027f230041106b2203240020022000280204200028020822046b4b0440200341086a20002004200210412003280208200328020c1042200028020821040b200028020020046a2001200210091a2000200220046a360208200341106a24000ba80301057f230041206b22042400027f4100200220036a22032002490d001a4108200128020422024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003104320022802082105200228020c0c020b200528020021080240200310442205450440410021050c010b20052008200710091a0b20030c010b2002200310432002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000bd10100024020004181808080784704402000450d01230041306b220024002000200136020c2000411c6a420137020020004102360214200041d88b043602102000410736022c2000200041286a36021820002000410c6a360228230041206b22012400200141003b011c200141e88b043602182001200041106a360214200141c48d04360210200141a0960436020c2001410c6a104b000b0f0b230041206b22002400200041146a42003702002000410136020c200041ac8a04360208200041a09604360210200041086a41b48a041034000b2001017f41ec9a042d00001a20011044210220002001360204200020023602000bb70101027f027f41f09a042d0000044041f49a042802000c010b3f00210141f49a0441809b0536020041f09a0441013a000041f89a04200141107436020041809b050b21010240027f4100200020016a22022001490d001a41f89a042802002002490440200041ffff036a220241107640002201417f460d022001411074220120024180807c716a22022001490d0241f89a0420023602004100200020016a22022001490d011a0b41f49a04200236020020010b0f0b41000b0c00200041908904200110460bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110100450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10562003200329031037021c200341086a20062001105620032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110100450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0c00200020012002104041000bb90201037f230041106b22022400024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a20002003410110412004280208200428020c1042200441106a2400200028020821030b2000200341016a360208200028020020036a20013a00000c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10400b200241106a240041000bdb05020b7f027e230041406a220324004127210202402000350200220d4290ce00540440200d210e0c010b0340200341196a20026a220041046b200d4290ce0080220e42f0b1037e200d7ca7220441ffff037141e4006e220641017441d98e046a2f00003b0000200041026b2006419c7f6c20046a41ffff037141017441d98e046a2f00003b0000200241046b2102200d42ffc1d72f562100200e210d20000d000b0b200ea7220041e3004b0440200241026b2202200341196a6a200ea7220441ffff037141e4006e2200419c7f6c20046a41ffff037141017441d98e046a2f00003b00000b02402000410a4f0440200241026b2202200341196a6a200041017441d98e046a2f00003b00000c010b200241016b2202200341196a6a200041306a3a00000b200128021c22054101712207412720026b22066a2100410021042005410471044041a09604210441a0960441a09604104d20006a21000b412b418080c40020071b2107200341196a20026a2108024020012802004504404101210220012802142200200128021822012007200410500d01200020082006200128020c11000021020c010b2000200128020422094f04404101210220012802142200200128021822012007200410500d01200020082006200128020c11000021020c010b200541087104402001280210210b2001413036021020012d0020210c41012102200141013a0020200128021422052001280218220a2007200410500d01200341106a2001200920006b4101105120032802102200418080c400460d0120032802142104200520082006200a28020c1100000d01200020042005200a10520d012001200c3a00202001200b360210410021020c010b41012102200341086a2001200920006b4101105120032802082205418080c400460d00200328020c210920012802142200200128021822012007200410500d00200020082006200128020c1100000d002005200920002001105221020b200341406b240020020b0e0020002802001a03400c000b000bc40101017f230041406a220124002001200036020c2001411c6a420137020020014102360214200141f096043602102001410836022c2001200141286a36021820012001410c6a3602282001410036023820014201370230200141306a200141106a10454504402001280230210020012802382101024041fc9a042d000045044041fd9a042d00004101710d010b200020011004410947044041fc9a0441013a00000b41fd9a0441013a00000b000b41f88b0441332001413f6a41f8880441988d041029000b210020004283ddaa8bf8ede3ea20370308200042ec80a48aff99c486ab7f3703000ba10301067f230041106b220224000240200120006b220141104f04402000200041036a417c71220520006b2200104e2005200120006b2200417c716a2000410371104e6a21042000410276210303402003450d0220022005200341c0012003200341c0014f1b41b09204104f200228020c21032002280208210520022002280200200228020422002000417c71418c9404104f024020022802042200450440410021010c010b2002280200220620004102746a21074100210103404100210003402001200020066a2802002201417f734107762001410676724181828408716a2101200041046a22004110470d000b200641106a22062007470d000b0b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a2104200228020c2201450d000b2002280208210020014102742103410021010340200120002802002201417f734107762001410676724181828408716a2101200041046a2100200341046b22030d000b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a21040c010b20002001104e21040b200241106a240020040b2c01017f200104400340200220002c000041bf7f4a6a2102200041016a2100200141016b22010d000b0b20020b3d002002200349044041a09604412320041032000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101101000d011a0b20030d0141000b0f0b200020034100200128020c1100000b9c0101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b20024101762104200241016a41017621020b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110100450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110100450d000b200441016b0b2001490bf60101067f2000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722104200341f00149044020042006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200441067472722203418080c400460d011a0b200120012802082207200520026b6a36020820030b360204200020073602000bb90301067f230041306b22022400200028020421042000280200210302400240200128020022062001280208220072044002402000450d002001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1053200228021c418080c400470d010c020b0b200241106a200241246a10532002280214418080c400460d000240024020022802102205450d00200420054d04404100210020042005460d010c020b41002100200320056a2c00004140480d010b200321000b2005200420001b21042000200320001b21030b2006450440200128021420032004200141186a28020028020c11000021000c030b200128020422002003200320046a104d22054d0d01200241086a2001200020056b410010514101210020022802082205418080c400460d02200228020c21062001280214220720032004200141186a280200220128020c1100000d022005200620072001105221000c020b200128021420032004200141186a28020028020c11000021000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044109470d0120012802000b2802002104410121030b20002004360204200020033602000bd30501107f230041406a22032400200341003b013c200320023602382003410036023420034281808080a00137022c2003200236022820034100360224200320023602202003200136021c2003410a3602182000280204210a2000280200210b2000280208210c200341306a210d027f0340027f024020032d003d450440200328021c2108024020032802282205200328022022104b0d002003280224220120054b0d00200328022c2200200d6a41016b21110340200120086a210420112d0000210602400240027f0240200520016b220741084f0440024002402004200441036a417c712202460440200741086b210e410021020c010b200341106a20062004200220046b2202105820032802104101460d012002200741086b220e4b0d030b200641818284086c210f0340200220046a220941046a280200200f732212417f73201241818284086b712009280200200f732209417f73200941818284086b7172418081828478710d03200241086a2202200e4d0d000b0c020b2003280214210241010c020b200320062004200710582003280204210220032802000c010b200341086a2006200220046a200720026b1058200328020c20026a210220032802084101460b41014604402003200120026a41016a2201360224200020014b200120104b720d02200041054f0d012008200120006b6a21022002200d2000100c0d022003280234210020032001360234200120006b0c070b200320053602240c030b2000410441909504100e000b200120054d0d000b0b200341013a003d20032d003c044020032802382102200328023421000c020b2003280238220220032802342200470d010b41000c030b200220006b0b21010240200c2d00000440200b41d08e044104200a28020c1100000d010b200020086a2100200c2001047f200020016a41016b2d0000410a460541000b3a0000200b20002001200a28020c110000450d010b0b41010b2100200341406b240020000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b4e01027f20002802042102200028020021030240200028020822002d0000450d00200341d08e044104200228020c110000450d0041010f0b20002001410a463a00002003200120022802101101000b0c00200041b88e04200110460bea0201067f230041406a22022400200028020021054101210002402001280214220441d48d04410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4107360200200241346a410736020020024103360214200241ac8d0436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a220736021820042006200241106a10460d00200528020822030440200441e08d04410220011100000d01200241386a200341106a290200370300200241306a200341086a29020037030020022003290200370328200420062007104621000c010b200220052802002203200528020428020c11020041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441e08d04410220011100000d00200420032802002003280204200111000021000b200241406b240020000b1300200045044041c39604412b20011032000b0b6901017f230041306b220424002004200136020420042000360200200441146a42023702002004412c6a41073602002004410236020c20042003360208200441073602242004200441206a3602102004200441046a36022820042004360220200441086a20021034000b0bf41a0100418080040beb1ae7dc23262f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f73746f726167652f7372632f6c617a792f6d617070696e672e72734661696c656420746f206765742076616c756520696e204d617070696e673a2000000069000100200000000400010065000000c4000000250000005c0c01006a00000093000000200000005c0c01006a00000093000000300000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f70616c6c65742d636f6e7472616374732d756170692d6e6578742d362e302e312f7372632f686f73742e72730000c4000100720000002d000000170000000a0000000100000001000000030000004465636f6465427566666572546f6f536d616c6c52657475726e4572726f7254686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e5c0c01006a000000820100000e0000005c0c01006a0000001a01000032000000656e636f756e746572656420756e6578706563746564206572726f72d80101001c0000005c0c01006a000000e300000017000000800b01006b000000cf0000003d000000800b01006b000000d20000003b0000005375636365737343616c6c65655472617070656443616c6c656552657665727465644b65794e6f74466f756e645f42656c6f7753756273697374656e63655468726573686f6c645472616e736665724661696c65645f456e646f776d656e74546f6f4c6f77436f64654e6f74466f756e644e6f7443616c6c61626c654c6f6767696e6744697361626c656443616c6c52756e74696d654661696c656445636473615265636f766572794661696c6564537232353531395665726966794661696c656458636d457865637574696f6e4661696c656458636d53656e644661696c6564556e6b6e6f776e2f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f65726332302f6c69622e72730000140301002e000000070000000500000073746f7261676520656e7472792077617320656d707479005403010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279007403010027000000140301002e000000d30000003d00000001b5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb011a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d0000070000000d0000000e0000000b0000001a0000000e000000100000000c0000000b0000000f000000110000001300000013000000120000000d000000070000002c02010033020100400201004e020100590201007302010081020100910201009d020100a8020100b7020100c8020100db020100ee020100000301000d0301000b00000000000000010000000c0000004572726f720000000d0000000c000000040000000e0000000f000000100000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700001905010011000000a80401007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000000b305010015000000c80501000d000000440501006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72732b0601006d0000006402000020000000293a0000200b010000000000a906010001000000a9060100010000000b00000000000000010000001100000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320e20601002000000002070100120000003a200000200b0100000000002407010002000000120000000c00000004000000130000001400000015000000202020202c0a28280a303030313032303330343035303630373038303931303131313231333134313531363137313831393230323132323233323432353236323732383239333033313332333333343335333633373338333934303431343234333434343534363437343834393530353135323533353435353536353735383539363036313632363336343635363636373638363937303731373237333734373537363737373837393830383138323833383438353836383738383839393039313932393339343935393639373938393972616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468200000002108010012000000330801002200000072616e676520656e6420696e6465782068080100100000003308010022000000736c69636520696e64657820737461727473206174202062757420656e6473206174200088080100160000009e0801000d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e727300bc08010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820284009010015000000550901002b000000a8060100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273000098090100720000004f000000320000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72731c0a010074000000b801000037000000200b010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d657373616765617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e282963616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75650a00200b0100000000006e0b0100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e727300800b01006b0000005c0000003b000000800b01006b0000005c00000014000000800b01006b0000005d0000000e000000800b01006b0000005e00000034000000800b01006b0000006800000009000000800b01006b0000008600000025000000800b01006b00000090000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e72732f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e7273000000c60c01006b000000770000000e000000190000001c000000160000001400000019000000a80a0100c10a0100dd0a0100f30a0100070b01", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "4.0.0-rc.2", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { "keep_debug_symbols": false, "optimization_passes": "Z" } + } + }, + "contract": { + "name": "erc20", + "version": "5.0.0-rc.1", + "authors": ["Parity Technologies "] + }, + "image": null, + "spec": { + "constructors": [ + { + "args": [{ "label": "total_supply", "type": { "displayName": ["Balance"], "type": 0 } }], + "default": false, + "docs": ["Creates a new ERC-20 contract with the specified initial supply."], + "label": "new", + "payable": false, + "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 14 }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { "displayName": ["AccountId"], "type": 2 }, + "balance": { "displayName": ["Balance"], "type": 0 }, + "blockNumber": { "displayName": ["BlockNumber"], "type": 23 }, + "chainExtension": { "displayName": ["ChainExtension"], "type": 24 }, + "hash": { "displayName": ["Hash"], "type": 21 }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { "displayName": ["Timestamp"], "type": 22 } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { "displayName": ["Option"], "type": 20 } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { "displayName": ["Option"], "type": 20 } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { "displayName": ["Balance"], "type": 0 } + } + ], + "docs": ["Event emitted when a token transfer occurs."], + "label": "Transfer", + "module_path": "erc20::erc20", + "signature_topic": "0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { "displayName": ["AccountId"], "type": 2 } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { "displayName": ["AccountId"], "type": 2 } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { "displayName": ["Balance"], "type": 0 } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval", + "module_path": "erc20::erc20", + "signature_topic": "0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d" + } + ], + "lang_error": { "displayName": ["ink", "LangError"], "type": 15 }, + "messages": [ + { + "args": [], + "default": false, + "docs": [" Returns the total token supply."], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 16 }, + "selector": "0xdb6375a8" + }, + { + "args": [{ "label": "owner", "type": { "displayName": ["AccountId"], "type": 2 } }], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 16 }, + "selector": "0x0f755a56" + }, + { + "args": [ + { "label": "owner", "type": { "displayName": ["AccountId"], "type": 2 } }, + { "label": "spender", "type": { "displayName": ["AccountId"], "type": 2 } } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 16 }, + "selector": "0x6a00165e" + }, + { + "args": [ + { "label": "to", "type": { "displayName": ["AccountId"], "type": 2 } }, + { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 17 }, + "selector": "0x84a15da1" + }, + { + "args": [ + { "label": "spender", "type": { "displayName": ["AccountId"], "type": 2 } }, + { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 17 }, + "selector": "0x681266a0" + }, + { + "args": [ + { "label": "from", "type": { "displayName": ["AccountId"], "type": 2 } }, + { "label": "to", "type": { "displayName": ["AccountId"], "type": 2 } }, + { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 17 }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { "layout": { "leaf": { "key": "0x00000000", "ty": 0 } }, "name": "total_supply" }, + { + "layout": { + "root": { + "layout": { "leaf": { "key": "0xe7dc2326", "ty": 0 } }, + "root_key": "0xe7dc2326", + "ty": 1 + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { "leaf": { "key": "0xb721a0ec", "ty": 0 } }, + "root_key": "0xb721a0ec", + "ty": 9 + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000", + "ty": 13 + } + }, + "types": [ + { "id": 0, "type": { "def": { "primitive": "u128" } } }, + { + "id": 1, + "type": { + "def": { "composite": {} }, + "params": [ + { "name": "K", "type": 2 }, + { "name": "V", "type": 0 }, + { "name": "KeyType", "type": 5 } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 2, + "type": { + "def": { "composite": { "fields": [{ "type": 3, "typeName": "[u8; 32]" }] } }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { "id": 3, "type": { "def": { "array": { "len": 32, "type": 4 } } } }, + { "id": 4, "type": { "def": { "primitive": "u8" } } }, + { + "id": 5, + "type": { + "def": { "composite": {} }, + "params": [ + { "name": "L", "type": 6 }, + { "name": "R", "type": 7 } + ], + "path": ["ink_storage_traits", "impls", "ResolverKey"] + } + }, + { + "id": 6, + "type": { "def": { "composite": {} }, "path": ["ink_storage_traits", "impls", "AutoKey"] } + }, + { + "id": 7, + "type": { + "def": { "composite": {} }, + "params": [{ "name": "ParentKey", "type": 8 }], + "path": ["ink_storage_traits", "impls", "ManualKey"] + } + }, + { "id": 8, "type": { "def": { "tuple": [] } } }, + { + "id": 9, + "type": { + "def": { "composite": {} }, + "params": [ + { "name": "K", "type": 10 }, + { "name": "V", "type": 0 }, + { "name": "KeyType", "type": 11 } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { "id": 10, "type": { "def": { "tuple": [2, 2] } } }, + { + "id": 11, + "type": { + "def": { "composite": {} }, + "params": [ + { "name": "L", "type": 6 }, + { "name": "R", "type": 12 } + ], + "path": ["ink_storage_traits", "impls", "ResolverKey"] + } + }, + { + "id": 12, + "type": { + "def": { "composite": {} }, + "params": [{ "name": "ParentKey", "type": 8 }], + "path": ["ink_storage_traits", "impls", "ManualKey"] + } + }, + { + "id": 13, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "total_supply", + "type": 0, + "typeName": ",>>::Type" + }, + { + "name": "balances", + "type": 1, + "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type" + }, + { + "name": "allowances", + "type": 9, + "typeName": " as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type" + } + ] + } + }, + "path": ["erc20", "erc20", "Erc20"] + } + }, + { + "id": 14, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 8 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 15 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 8 }, + { "name": "E", "type": 15 } + ], + "path": ["Result"] + } + }, + { + "id": 15, + "type": { + "def": { "variant": { "variants": [{ "index": 1, "name": "CouldNotReadInput" }] } }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 16, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 0 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 15 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 0 }, + { "name": "E", "type": 15 } + ], + "path": ["Result"] + } + }, + { + "id": 17, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 18 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 15 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 18 }, + { "name": "E", "type": 15 } + ], + "path": ["Result"] + } + }, + { + "id": 18, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 8 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 19 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 8 }, + { "name": "E", "type": 19 } + ], + "path": ["Result"] + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { "index": 0, "name": "InsufficientBalance" }, + { "index": 1, "name": "InsufficientAllowance" } + ] + } + }, + "path": ["erc20", "erc20", "Error"] + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { "index": 0, "name": "None" }, + { "fields": [{ "type": 2 }], "index": 1, "name": "Some" } + ] + } + }, + "params": [{ "name": "T", "type": 2 }], + "path": ["Option"] + } + }, + { + "id": 21, + "type": { + "def": { "composite": { "fields": [{ "type": 3, "typeName": "[u8; 32]" }] } }, + "path": ["ink_primitives", "types", "Hash"] + } + }, + { "id": 22, "type": { "def": { "primitive": "u64" } } }, + { "id": 23, "type": { "def": { "primitive": "u32" } } }, + { + "id": 24, + "type": { "def": { "variant": {} }, "path": ["ink_env", "types", "NoChainExtension"] } + } + ], + "version": 5 +} diff --git a/.api-contract/src/test/contracts/ink/v5/erc20.json b/.api-contract/src/test/contracts/ink/v5/erc20.json new file mode 100644 index 00000000..3123452e --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v5/erc20.json @@ -0,0 +1,881 @@ +{ + "source": { + "hash": "0xf6939855fe6abe0b79cd23a154f0816d8205a5751f36b8703e9a60f31d9e48a5", + "language": "ink! 5.0.0-rc.1", + "compiler": "rustc 1.75.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "4.0.0-rc.2", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "erc20", + "version": "5.0.0-rc.1", + "authors": ["Parity Technologies "] + }, + "image": null, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "total_supply", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": ["Creates a new ERC-20 contract with the specified initial supply."], + "label": "new", + "payable": false, + "returnType": { + "displayName": ["ink_primitives", "ConstructorResult"], + "type": 14 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": ["AccountId"], + "type": 2 + }, + "balance": { + "displayName": ["Balance"], + "type": 0 + }, + "blockNumber": { + "displayName": ["BlockNumber"], + "type": 23 + }, + "chainExtension": { + "displayName": ["ChainExtension"], + "type": 24 + }, + "hash": { + "displayName": ["Hash"], + "type": 21 + }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { + "displayName": ["Timestamp"], + "type": 22 + } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": ["Option"], + "type": 20 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": ["Option"], + "type": 20 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": ["Event emitted when a token transfer occurs."], + "label": "Transfer", + "module_path": "erc20::erc20", + "signature_topic": "0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval", + "module_path": "erc20::erc20", + "signature_topic": "0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d" + } + ], + "lang_error": { + "displayName": ["ink", "LangError"], + "type": 15 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [" Returns the total token supply."], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 16 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + } + ], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 16 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 16 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 17 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 17 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "to", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 17 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xe7dc2326", + "ty": 0 + } + }, + "root_key": "0xe7dc2326", + "ty": 1 + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xb721a0ec", + "ty": 0 + } + }, + "root_key": "0xb721a0ec", + "ty": 9 + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000", + "ty": 13 + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 2 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 5 + } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 2, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { + "id": 3, + "type": { + "def": { + "array": { + "len": 32, + "type": 4 + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 5, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 6 + }, + { + "name": "R", + "type": 7 + } + ], + "path": ["ink_storage_traits", "impls", "ResolverKey"] + } + }, + { + "id": 6, + "type": { + "def": { + "composite": {} + }, + "path": ["ink_storage_traits", "impls", "AutoKey"] + } + }, + { + "id": 7, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 8 + } + ], + "path": ["ink_storage_traits", "impls", "ManualKey"] + } + }, + { + "id": 8, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 9, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 10 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 11 + } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 10, + "type": { + "def": { + "tuple": [2, 2] + } + } + }, + { + "id": 11, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 6 + }, + { + "name": "R", + "type": 12 + } + ], + "path": ["ink_storage_traits", "impls", "ResolverKey"] + } + }, + { + "id": 12, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 8 + } + ], + "path": ["ink_storage_traits", "impls", "ManualKey"] + } + }, + { + "id": 13, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "total_supply", + "type": 0, + "typeName": ",>>::Type" + }, + { + "name": "balances", + "type": 1, + "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type" + }, + { + "name": "allowances", + "type": 9, + "typeName": " as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type" + } + ] + } + }, + "path": ["erc20", "erc20", "Erc20"] + } + }, + { + "id": 14, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 15 + } + ], + "path": ["Result"] + } + }, + { + "id": 15, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 16, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 15 + } + ], + "path": ["Result"] + } + }, + { + "id": 17, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 18 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 18 + }, + { + "name": "E", + "type": 15 + } + ], + "path": ["Result"] + } + }, + { + "id": 18, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 19 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 19 + } + ], + "path": ["Result"] + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": ["erc20", "erc20", "Error"] + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + } + ], + "path": ["Option"] + } + }, + { + "id": 21, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "Hash"] + } + }, + { + "id": 22, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 23, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 24, + "type": { + "def": { + "variant": {} + }, + "path": ["ink_env", "types", "NoChainExtension"] + } + } + ], + "version": 5 +} diff --git a/.api-contract/src/test/contracts/ink/v5/erc20.wasm b/.api-contract/src/test/contracts/ink/v5/erc20.wasm new file mode 100644 index 0000000000000000000000000000000000000000..f6800bb8784e46279835e91f4da1d71d2907faca GIT binary patch literal 19416 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 literal 0 HcmV?d00001 diff --git a/.api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json b/.api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json new file mode 100644 index 00000000..8bba35bb --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json @@ -0,0 +1,881 @@ +{ + "source": { + "hash": "0x3f4668bee7d86719c3219962213b5d5bcb70a6e8611f166e1dae06019dd481d2", + "language": "ink! 5.0.0-rc.1", + "compiler": "rustc 1.75.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "4.0.0-rc.2", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "erc20", + "version": "5.0.0-rc.1", + "authors": ["Parity Technologies "] + }, + "image": null, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "total_supply", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": ["Creates a new ERC-20 contract with the specified initial supply."], + "label": "new", + "payable": false, + "returnType": { + "displayName": ["ink_primitives", "ConstructorResult"], + "type": 14 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": ["AccountId"], + "type": 2 + }, + "balance": { + "displayName": ["Balance"], + "type": 0 + }, + "blockNumber": { + "displayName": ["BlockNumber"], + "type": 23 + }, + "chainExtension": { + "displayName": ["ChainExtension"], + "type": 24 + }, + "hash": { + "displayName": ["Hash"], + "type": 21 + }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { + "displayName": ["Timestamp"], + "type": 22 + } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": ["Option"], + "type": 20 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": ["Option"], + "type": 20 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": ["Event emitted when a token transfer occurs."], + "label": "Transfer", + "module_path": "erc20::erc20", + "signature_topic": null + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval", + "module_path": "erc20::erc20", + "signature_topic": "0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d" + } + ], + "lang_error": { + "displayName": ["ink", "LangError"], + "type": 15 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [" Returns the total token supply."], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 16 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + } + ], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 16 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 16 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 17 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 17 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "to", + "type": { + "displayName": ["AccountId"], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": ["Balance"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 17 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xe7dc2326", + "ty": 0 + } + }, + "root_key": "0xe7dc2326", + "ty": 1 + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xb721a0ec", + "ty": 0 + } + }, + "root_key": "0xb721a0ec", + "ty": 9 + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000", + "ty": 13 + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 2 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 5 + } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 2, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { + "id": 3, + "type": { + "def": { + "array": { + "len": 32, + "type": 4 + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 5, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 6 + }, + { + "name": "R", + "type": 7 + } + ], + "path": ["ink_storage_traits", "impls", "ResolverKey"] + } + }, + { + "id": 6, + "type": { + "def": { + "composite": {} + }, + "path": ["ink_storage_traits", "impls", "AutoKey"] + } + }, + { + "id": 7, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 8 + } + ], + "path": ["ink_storage_traits", "impls", "ManualKey"] + } + }, + { + "id": 8, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 9, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 10 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 11 + } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 10, + "type": { + "def": { + "tuple": [2, 2] + } + } + }, + { + "id": 11, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 6 + }, + { + "name": "R", + "type": 12 + } + ], + "path": ["ink_storage_traits", "impls", "ResolverKey"] + } + }, + { + "id": 12, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 8 + } + ], + "path": ["ink_storage_traits", "impls", "ManualKey"] + } + }, + { + "id": 13, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "total_supply", + "type": 0, + "typeName": ",>>::Type" + }, + { + "name": "balances", + "type": 1, + "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type" + }, + { + "name": "allowances", + "type": 9, + "typeName": " as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type" + } + ] + } + }, + "path": ["erc20", "erc20", "Erc20"] + } + }, + { + "id": 14, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 15 + } + ], + "path": ["Result"] + } + }, + { + "id": 15, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 16, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 15 + } + ], + "path": ["Result"] + } + }, + { + "id": 17, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 18 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 18 + }, + { + "name": "E", + "type": 15 + } + ], + "path": ["Result"] + } + }, + { + "id": 18, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 19 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 19 + } + ], + "path": ["Result"] + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": ["erc20", "erc20", "Error"] + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + } + ], + "path": ["Option"] + } + }, + { + "id": 21, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "Hash"] + } + }, + { + "id": 22, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 23, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 24, + "type": { + "def": { + "variant": {} + }, + "path": ["ink_env", "types", "NoChainExtension"] + } + } + ], + "version": 5 +} diff --git a/.api-contract/src/test/contracts/ink/v5/flipper.contract.json b/.api-contract/src/test/contracts/ink/v5/flipper.contract.json new file mode 100644 index 00000000..2855f338 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v5/flipper.contract.json @@ -0,0 +1,177 @@ +{ + "source": { + "hash": "0xaf1c6d2ea289d7d4f8753db2d658782f4d066544f3ee34b3d54272075ad0de99", + "language": "ink! 5.0.0-rc.1", + "compiler": "rustc 1.75.0", + "wasm": "0x0061736d0100000001400b60037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060047f7f7f7f017f60017f0060017f017f60000060047f7f7f7f0060057f7f7f7f7f006000017f028a0107057365616c310b6765745f73746f726167650004057365616c3005696e7075740002057365616c320b7365745f73746f726167650004057365616c300d64656275675f6d6573736167650001057365616c300b7365616c5f72657475726e0003057365616c301176616c75655f7472616e73666572726564000203656e76066d656d6f7279020102100334330000000002030a060301020600070205030202070507030802020601000500010101010502010109040804030902010103010204050170010e0e0616037f01418080040b7f00419093050b7f00418693050b0711020463616c6c0019066465706c6f79001b0913010041010b0d0f34263728352327232425212a0afc3b332b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b6f01017f0240200020014d04402000210303402002450d02200320012d00003a0000200141016a2101200341016a2103200241016b21020c000b000b200141016b2101200041016b210303402002450d01200220036a200120026a2d00003a0000200241016b21020c000b000b20000b2501017f037f2002200346047f200005200020036a20013a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b2601017f230041106b22022400200220003a000f20012002410f6a4101100b200241106a24000bd30101057f20002802042105200028020021062000280208220420026a220320044f220741f0900410380240200320044f0440200320054b0d01200420066a200320046b20012002419091041032200741a091041038200020033602080f0b230041306b220024002000200336020420002004360200200041146a42023702002000412c6a41033602002000410236020c200041b48b04360208200041033602242000200041206a3602102000200041046a36022820002000360220200041086a418091041010000b2003200541809104100e000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10052000290308210120002903002102200041206a2400410541042001200284501b0b1b002000418180014f044020004180800141f08104100e000b20000b6b01017f230041306b220324002003200136020420032000360200200341146a42023702002003412c6a41033602002003410236020c200341808b04360208200341033602242003200341206a3602102003200341046a36022820032003360220200341086a20021010000b840101017f230041306b22022400200241146a42013702002002410136020c200241a48e0436020820024102360224200220002d0000410274220041cc92046a28020036022c2002200041e092046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10222100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241908804360210200241a48f0436020c2002410c6a1029000b4701027f230041106b22012400200141003a000f20002001410f6a41011012220045044020012d000f21020b200141106a240041024101410220024101461b410020021b20001b0b3d01027f2000280204220320024922044504402001200220002802002201200241bc920410322000200320026b3602042000200120026a3602000b20040b3c01027f230041106b22002400200042808001370208200041869304360204200041046a2201410010182001410010184100200028020c100d1017000b4401027f230041106b22022400200242808001370208200241869304360204200241046a22032001047f20034101101841010541000b10182000200228020c100d1017000bb20102057f017e230041306b220124002001410036021c20014280800137022820014186930436022420014100360220200141246a2202200141206a4104100b20012001290224370214200141086a200141146a2203200128022c1016200128020c210420012802082105200129021421062001410036022c2001200637022420002002100a2001200129022437021420012003200128022c1016200520042001280200200128020410021a200141306a24000b4501017f2002200128020422034b044041a48f04412341c091041031000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b0d0020004186930420011004000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41033602002000410236020c200041e08804360208200041033602242000200041206a360210200020003602282000200041046a360220200041086a41b091041010000b880501077f230041306b22002400024002400240024002400240100c41ff0171410546044020004180800136021441869304200041146a2202100120002802142201418180014f0d0120002001360218200041869304360214200041003602082002200041086a410410120d0520002d000b210120002d000a210220002d00092103024020002d00082204412f470440200441e300470d07410121042003413a47200241a5014772200141d1004772450d010c070b41002104200341860147200241db004772200141d90147720d060b200041003602102000428080013702182000418693043602142000410036022c200041146a22032000412c6a4104100b200020002902143702082000200041086a200028021c10162000280204210520002802002106200028020821012000200028020c2202360214200620052001200310002105200220002802142203490d0202400240024020050e0400060601060b2000200336021820002001360214200041146a1011220141ff017141024704402000280218450d020b200041206a420037020020004101360218200041bc83043602140c080b200041206a4200370200200041013602182000418c83043602140c070b20040d04230041106b22002400200042808001370208200041869304360204200041046a22024100101820012002100a4100200028020c100d1017000b200041043a0014200041146a101a000b20014180800141f48004100e000b2003200241f48004100e000b200041206a4200370200200041013602182000419c8204360214200041a48f0436021c200041146a41a482041010000b200141ff0171451015410041001014000b410141011014000b200041a48f0436021c200041146a41e482041010000b4801017f230041206b220124002001410c6a420137020020014101360204200141a48e043602002001410136021c200120003602182001200141186a360208200141e482041010000b820201057f230041106b2200240002400240100c220141ff0171410546044020004180800136020441869304200041046a2202100120002802042201418180014f0d01200020013602082000418693043602042000410036020c024020022000410c6a410410120d0020002d000f210120002d000e210320002d000d210420002d000c220041e1004704402000419b0147200441ae0147722003419d0147200141de004772720d0120021011220041ff01714102460d01200010151013000b200441ef0147200341fe0047720d002001413e460d030b410141011014000b200020013a0004200041046a101a000b20014180800141f48004100e000b410010151013000b6001027f230041106b2203240020022000280204200028020822046b4b0440200341086a200020042002101d2003280208200328020c101e200028020821040b200028020020046a2001200210061a2000200220046a360208200341106a24000ba80301057f230041206b22042400027f4100200220036a22032002490d001a4108200128020422024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003101f20022802082105200228020c0c020b200528020021080240200310202205450440410021050c010b20052008200710061a0b20030c010b20022003101f2002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000bd10100024020004181808080784704402000450d01230041306b220024002000200136020c2000411c6a420137020020004102360214200041a486043602102000410336022c2000200041286a36021820002000410c6a360228230041206b22012400200141003b011c200141b486043602182001200041106a360214200141908804360210200141a48f0436020c2001410c6a1029000b0f0b230041206b22002400200041146a42003702002000410136020c200041f88404360208200041a48f04360210200041086a418085041010000b2001017f41f492042d00001a20011020210220002001360204200020023602000bb70101027f027f41f892042d0000044041fc92042802000c010b3f00210141fc92044190930536020041f8920441013a0000418093042001411074360200419093050b21010240027f4100200020016a22022001490d001a418093042802002002490440200041ffff036a220241107640002201417f460d022001411074220120024180807c716a22022001490d024180930420023602004100200020016a22022001490d011a0b41fc9204200236020020010b0f0b41000b0c00200041dc8304200110220bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110100450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10362003200329031037021c200341086a20062001103620032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110100450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0300010b0c00200020012002101c41000bb90201037f230041106b22022400024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a200020034101101d2004280208200428020c101e200441106a2400200028020821030b2000200341016a360208200028020020036a20013a00000c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b101c0b200241106a240041000bdb05020b7f027e230041406a220324004127210202402000350200220d4290ce00540440200d210e0c010b0340200341196a20026a220041046b200d4290ce0080220e42f0b1037e200d7ca7220441ffff037141e4006e2206410174418489046a2f00003b0000200041026b2006419c7f6c20046a41ffff0371410174418489046a2f00003b0000200241046b2102200d42ffc1d72f562100200e210d20000d000b0b200ea7220041e3004b0440200241026b2202200341196a6a200ea7220441ffff037141e4006e2200419c7f6c20046a41ffff0371410174418489046a2f00003b00000b02402000410a4f0440200241026b2202200341196a6a2000410174418489046a2f00003b00000c010b200241016b2202200341196a6a200041306a3a00000b200128021c22054101712207412720026b22066a2100410021042005410471044041a48f04210441a48f0441a48f04102b20006a21000b412b418080c40020071b2107200341196a20026a21080240200128020045044041012102200128021422002001280218220120072004102e0d01200020082006200128020c11000021020c010b2000200128020422094f044041012102200128021422002001280218220120072004102e0d01200020082006200128020c11000021020c010b200541087104402001280210210b2001413036021020012d0020210c41012102200141013a0020200128021422052001280218220a20072004102e0d01200341106a2001200920006b4101102f20032802102200418080c400460d0120032802142104200520082006200a28020c1100000d01200020042005200a10300d012001200c3a00202001200b360210410021020c010b41012102200341086a2001200920006b4101102f20032802082205418080c400460d00200328020c2109200128021422002001280218220120072004102e0d00200020082006200128020c1100000d002005200920002001103021020b200341406b240020020b1b00200128021441d483044105200141186a28020028020c1100000b0e0020002802001a03400c000b000baf0201017f230041406a220124002001200036020c2001411c6a420137020020014102360214200141f48f043602102001410436022c2001200141286a36021820012001410c6a3602282001410036023820014201370230200141306a200141106a102145044020012802302100200128023821010240418493042d0000450440418593042d00004101710d010b20002001100341094704404184930441013a00000b4185930441013a00000b000b230041406a220024002000413336020c200041c48604360208200041c4830436021420002001413f6a360210200041246a42023702002000413c6a41063602002000410236021c200041f48804360218200041023602342000200041306a3602202000200041106a3602382000200041086a360230200041186a41e487041010000b210020004283ddaa8bf8ede3ea20370308200042ec80a48aff99c486ab7f3703000ba10301067f230041106b220224000240200120006b220141104f04402000200041036a417c71220520006b2200102c2005200120006b2200417c716a2000410371102c6a21042000410276210303402003450d0220022005200341c0012003200341c0014f1b41b88c04102d200228020c21032002280208210520022002280200200228020422002000417c7141948e04102d024020022802042200450440410021010c010b2002280200220620004102746a21074100210103404100210003402001200020066a2802002201417f734107762001410676724181828408716a2101200041046a22004110470d000b200641106a22062007470d000b0b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a2104200228020c2201450d000b2002280208210020014102742103410021010340200120002802002201417f734107762001410676724181828408716a2101200041046a2100200341046b22030d000b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a21040c010b20002001102c21040b200241106a240020040b2c01017f200104400340200220002c000041bf7f4a6a2102200041016a2100200141016b22010d000b0b20020b3d002002200349044041a48f04412320041031000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101101000d011a0b20030d0141000b0f0b200020034100200128020c1100000b9c0101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b20024101762104200241016a41017621020b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110100450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110100450d000b200441016b0b2001490b4601017f230041206b220324002003410c6a420037020020034101360204200341a48f043602082003200136021c200320003602182003200341186a360200200320021010000b7b002001200346044020002002200110061a0f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41033602002000410336020c200041888d04360208200041033602242000200041206a360210200020003602282000200041046a360220200041086a20041010000bf60101067f2000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722104200341f00149044020042006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200441067472722203418080c400460d011a0b200120012802082207200520026b6a36020820030b360204200020073602000bb90301067f230041306b22022400200028020421042000280200210302400240200128020022062001280208220072044002402000450d002001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1033200228021c418080c400470d010c020b0b200241106a200241246a10332002280214418080c400460d000240024020022802102205450d00200420054d04404100210020042005460d010c020b41002100200320056a2c00004140480d010b200321000b2005200420001b21042000200320001b21030b2006450440200128021420032004200141186a28020028020c11000021000c030b200128020422002003200320046a102b22054d0d01200241086a2001200020056b4100102f4101210020022802082205418080c400460d02200228020c21062001280214220720032004200141186a280200220128020c1100000d022005200620072001103021000c020b200128021420032004200141186a28020028020c11000021000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044105470d0120012802000b2802002104410121030b20002004360204200020033602000bea0201067f230041406a22022400200028020021054101210002402001280214220441a08804410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4103360200200241346a410336020020024103360214200241f8870436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a220736021820042006200241106a10220d00200528020822030440200441ac8804410220011100000d01200241386a200341106a290200370300200241306a200341086a29020037030020022003290200370328200420062007102221000c010b200220052802002203200528020428020c11020041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441ac8804410220011100000d00200420032802002003280204200111000021000b200241406b240020000b1300200045044041c78f04412b20011031000b0b0bfc120100418080040bf3122f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f70616c6c65742d636f6e7472616374732d756170692d6e6578742d362e302e312f7372632f686f73742e7273000000000100720000002d000000170000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e72730000840001006a0000001a01000032000000656e636f756e746572656420756e6578706563746564206572726f72000101001c000000840001006a000000e3000000170000002f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f666c69707065722f6c69622e72733401010030000000060000000500000073746f7261676520656e7472792077617320656d707479007401010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279009401010027000000070000000000000001000000080000004572726f72000000090000000c000000040000000a0000000b0000000c0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700006502010011000000f40101007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000000ff02010015000000140301000d000000900201006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273770301006d0000006402000020000000293a0000a407010000000000f503010001000000f5030100010000000700000000000000010000000d00000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e646578206973202e040100200000004e040100120000003a200000a40701000000000070040100020000003030303130323033303430353036303730383039313031313132313331343135313631373138313932303231323232333234323532363237323832393330333133323333333433353336333733383339343034313432343334343435343634373438343935303531353235333534353535363537353835393630363136323633363436353636363736383639373037313732373337343735373637373738373938303831383238333834383538363837383838393930393139323933393439353936393739383939206f7574206f662072616e676520666f7220736c696365206f66206c656e6774682072616e676520656e6420696e6465782000006e050100100000004c05010022000000736c69636520696e64657820737461727473206174202062757420656e647320617420009005010016000000a60501000d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e727300c405010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e677468202848060100150000005d0601002b000000f4030100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000a0060100720000004f00000032000000a407010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d657373616765617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e282963616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75650a00a407010000000000f2070100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e727300040801006b0000005c0000003b000000040801006b0000005c00000014000000040801006b0000005d0000000e000000040801006b0000005e00000034000000040801006b0000006800000009000000040801006b00000090000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e727300d00801006b000000770000000e000000190000001c0000001600000014000000190000002c0701004507010061070100770701008b0701", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "4.0.0-rc.2", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { "keep_debug_symbols": false, "optimization_passes": "Z" } + } + }, + "contract": { + "name": "flipper", + "version": "5.0.0-rc.1", + "authors": ["Parity Technologies "] + }, + "image": null, + "spec": { + "constructors": [ + { + "args": [{ "label": "init_value", "type": { "displayName": ["bool"], "type": 0 } }], + "default": false, + "docs": ["Creates a new flipper smart contract initialized with the given value."], + "label": "new", + "payable": false, + "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 2 }, + "selector": "0x9bae9d5e" + }, + { + "args": [], + "default": false, + "docs": ["Creates a new flipper smart contract initialized to `false`."], + "label": "new_default", + "payable": false, + "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 2 }, + "selector": "0x61ef7e3e" + } + ], + "docs": [], + "environment": { + "accountId": { "displayName": ["AccountId"], "type": 6 }, + "balance": { "displayName": ["Balance"], "type": 9 }, + "blockNumber": { "displayName": ["BlockNumber"], "type": 12 }, + "chainExtension": { "displayName": ["ChainExtension"], "type": 13 }, + "hash": { "displayName": ["Hash"], "type": 10 }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { "displayName": ["Timestamp"], "type": 11 } + }, + "events": [], + "lang_error": { "displayName": ["ink", "LangError"], "type": 4 }, + "messages": [ + { + "args": [], + "default": false, + "docs": [" Flips the current value of the Flipper's boolean."], + "label": "flip", + "mutates": true, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 2 }, + "selector": "0x633aa551" + }, + { + "args": [], + "default": false, + "docs": [" Returns the current value of the Flipper's boolean."], + "label": "get", + "mutates": false, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 5 }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [{ "layout": { "leaf": { "key": "0x00000000", "ty": 0 } }, "name": "value" }], + "name": "Flipper" + } + }, + "root_key": "0x00000000", + "ty": 1 + } + }, + "types": [ + { "id": 0, "type": { "def": { "primitive": "bool" } } }, + { + "id": 1, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 0, + "typeName": ",>>::Type" + } + ] + } + }, + "path": ["flipper", "flipper", "Flipper"] + } + }, + { + "id": 2, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 3 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 4 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 3 }, + { "name": "E", "type": 4 } + ], + "path": ["Result"] + } + }, + { "id": 3, "type": { "def": { "tuple": [] } } }, + { + "id": 4, + "type": { + "def": { "variant": { "variants": [{ "index": 1, "name": "CouldNotReadInput" }] } }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 5, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 0 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 4 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 0 }, + { "name": "E", "type": 4 } + ], + "path": ["Result"] + } + }, + { + "id": 6, + "type": { + "def": { "composite": { "fields": [{ "type": 7, "typeName": "[u8; 32]" }] } }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { "id": 7, "type": { "def": { "array": { "len": 32, "type": 8 } } } }, + { "id": 8, "type": { "def": { "primitive": "u8" } } }, + { "id": 9, "type": { "def": { "primitive": "u128" } } }, + { + "id": 10, + "type": { + "def": { "composite": { "fields": [{ "type": 7, "typeName": "[u8; 32]" }] } }, + "path": ["ink_primitives", "types", "Hash"] + } + }, + { "id": 11, "type": { "def": { "primitive": "u64" } } }, + { "id": 12, "type": { "def": { "primitive": "u32" } } }, + { + "id": 13, + "type": { "def": { "variant": {} }, "path": ["ink_env", "types", "NoChainExtension"] } + } + ], + "version": 5 +} diff --git a/.api-contract/src/test/contracts/ink/v5/flipper.json b/.api-contract/src/test/contracts/ink/v5/flipper.json new file mode 100644 index 00000000..291e9a93 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v5/flipper.json @@ -0,0 +1,358 @@ +{ + "source": { + "hash": "0xaf1c6d2ea289d7d4f8753db2d658782f4d066544f3ee34b3d54272075ad0de99", + "language": "ink! 5.0.0-rc.1", + "compiler": "rustc 1.75.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "4.0.0-rc.2", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "flipper", + "version": "5.0.0-rc.1", + "authors": ["Parity Technologies "] + }, + "image": null, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "init_value", + "type": { + "displayName": ["bool"], + "type": 0 + } + } + ], + "default": false, + "docs": ["Creates a new flipper smart contract initialized with the given value."], + "label": "new", + "payable": false, + "returnType": { + "displayName": ["ink_primitives", "ConstructorResult"], + "type": 2 + }, + "selector": "0x9bae9d5e" + }, + { + "args": [], + "default": false, + "docs": ["Creates a new flipper smart contract initialized to `false`."], + "label": "new_default", + "payable": false, + "returnType": { + "displayName": ["ink_primitives", "ConstructorResult"], + "type": 2 + }, + "selector": "0x61ef7e3e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": ["AccountId"], + "type": 6 + }, + "balance": { + "displayName": ["Balance"], + "type": 9 + }, + "blockNumber": { + "displayName": ["BlockNumber"], + "type": 12 + }, + "chainExtension": { + "displayName": ["ChainExtension"], + "type": 13 + }, + "hash": { + "displayName": ["Hash"], + "type": 10 + }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { + "displayName": ["Timestamp"], + "type": 11 + } + }, + "events": [], + "lang_error": { + "displayName": ["ink", "LangError"], + "type": 4 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [" Flips the current value of the Flipper's boolean."], + "label": "flip", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 2 + }, + "selector": "0x633aa551" + }, + { + "args": [], + "default": false, + "docs": [" Returns the current value of the Flipper's boolean."], + "label": "get", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 5 + }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "value" + } + ], + "name": "Flipper" + } + }, + "root_key": "0x00000000", + "ty": 1 + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 0, + "typeName": ",>>::Type" + } + ] + } + }, + "path": ["flipper", "flipper", "Flipper"] + } + }, + { + "id": 2, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 3 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 4 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "E", + "type": 4 + } + ], + "path": ["Result"] + } + }, + { + "id": 3, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 4, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 5, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 4 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 4 + } + ], + "path": ["Result"] + } + }, + { + "id": 6, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 7, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { + "id": 7, + "type": { + "def": { + "array": { + "len": 32, + "type": 8 + } + } + } + }, + { + "id": 8, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 9, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 10, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 7, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "Hash"] + } + }, + { + "id": 11, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 12, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 13, + "type": { + "def": { + "variant": {} + }, + "path": ["ink_env", "types", "NoChainExtension"] + } + } + ], + "version": 5 +} diff --git a/.api-contract/src/test/contracts/ink/v5/flipper.wasm b/.api-contract/src/test/contracts/ink/v5/flipper.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c359b6db59b8732092edc076026daf73f1e3bf77 GIT binary patch literal 10450 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 literal 0 HcmV?d00001 diff --git a/.api-contract/src/test/contracts/ink/v5/index.ts b/.api-contract/src/test/contracts/ink/v5/index.ts new file mode 100644 index 00000000..8e9497fa --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v5/index.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; +export { default as erc20AnonymousTransferMetadata } from './erc20_anonymous_transfer.json' assert { type: 'json' }; +export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; +export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/solang/index.ts b/.api-contract/src/test/contracts/solang/index.ts new file mode 100644 index 00000000..e5ef0340 --- /dev/null +++ b/.api-contract/src/test/contracts/solang/index.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { createVersionedExport } from '../util.js'; +import * as v0 from './v0/index.js'; + +export default createVersionedExport({ v0 }); diff --git a/.api-contract/src/test/contracts/solang/v0/index.ts b/.api-contract/src/test/contracts/solang/v0/index.ts new file mode 100644 index 00000000..6c73b8f6 --- /dev/null +++ b/.api-contract/src/test/contracts/solang/v0/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as ints256 } from './ints256.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/solang/v0/ints256.json b/.api-contract/src/test/contracts/solang/v0/ints256.json new file mode 100644 index 00000000..a8384707 --- /dev/null +++ b/.api-contract/src/test/contracts/solang/v0/ints256.json @@ -0,0 +1,93 @@ +{ + "contract": { + "authors": ["Sean Young "], + "description": "Test 256 bits types", + "name": "ints256", + "version": "0.0.1" + }, + "metadataVersion": "0.1.0", + "source": { + "compiler": "solang 0.1.4", + "hash": "0xa85fb5c61a09d71dce84c15a8bd87e6f4eafac498a1aec3869e8cf7ea4389697", + "language": "Solidity 0.1.4" + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [""], + "name": "new", + "selector": "0x861731d5" + } + ], + "events": [], + "messages": [ + { + "args": [ + { + "name": "a", + "type": { + "display_name": ["u256"], + "type": 1 + } + }, + { + "name": "b", + "type": { + "display_name": ["u256"], + "type": 1 + } + } + ], + "docs": ["Multiply two 256 bit values\n\n"], + "mutates": false, + "name": "multiply", + "payable": false, + "return_type": { + "display_name": ["u256"], + "type": 1 + }, + "selector": "0x165c4a16" + }, + { + "args": [ + { + "name": "a", + "type": { + "display_name": ["u256"], + "type": 1 + } + }, + { + "name": "b", + "type": { + "display_name": ["u256"], + "type": 1 + } + } + ], + "docs": ["Add two 256 bit values\n\n"], + "mutates": false, + "name": "add", + "payable": false, + "return_type": { + "display_name": ["u256"], + "type": 1 + }, + "selector": "0x771602f7" + } + ] + }, + "storage": { + "struct": { + "fields": [] + } + }, + "types": [ + { + "def": { + "primitive": "u256" + } + } + ] +} diff --git a/.api-contract/src/test/contracts/solang/v0/ints256.sol b/.api-contract/src/test/contracts/solang/v0/ints256.sol new file mode 100644 index 00000000..1225a6b9 --- /dev/null +++ b/.api-contract/src/test/contracts/solang/v0/ints256.sol @@ -0,0 +1,13 @@ +/// @title Test 256 bits types +/// @author Sean Young +contract ints256 { + /// Multiply two 256 bit values + function multiply(uint256 a, uint256 b) public pure returns (uint256) { + return a * b; + } + + /// Add two 256 bit values + function add(uint256 a, uint256 b) public pure returns (uint256) { + return a + b; + } +} diff --git a/.api-contract/src/test/contracts/solang/v0/ints256.wasm b/.api-contract/src/test/contracts/solang/v0/ints256.wasm new file mode 100644 index 0000000000000000000000000000000000000000..1973316be540b38ba3e463b1d11c950650335872 GIT binary patch literal 1782 zcmbtUOK%)S5UzgA!!tW}N3xKmaHwv4u%!s)ka#bMxUGa39Ky@u8n4JAF@D5e+Yu4V zt`C;A2hRKiq)1puoO1Mm13!Qtz>y;-IKo#mcCa8mF{AC8s;>IFzN+e_-u|{CA{EjN zq75}x;|)8;LlC18gqCk37X7JB_WQl9n}w{8zS!A4JfL$^*_a0XgTuiNC9T_QjqPb~ z>#+amV9?vy|GYmK^dFNo{hg=jc7OZH;F(s=nLHzEr(H){|$H z+s}GiTQpVt+{xagh<8cDrTsX*`1nRX?of0G@%O*Js+aTxDBme%$AagTUN*~mnbm^s zR3st~n(2c|m!eQm6_t^^ii9n%OZZ|xW_A2>FPP1s`PGqNV8jW@3E&j!P^^%bdUWth@KZ>l z;QXPl^fKHNy!mR#>M#vn1*Z?|pw=ov)C`y2b(GYh!&MD7LSza7sHG@L<23CvK+dcj z;c-Jo6eqV)9*bo(435k7>%g+nN_Zl9CG3338F++@)q4$RIl_0)szR{Yy$uMr!V{i3 zhVL|Dim2*Pu(>b(OsOhdje_3@6U4@A_!JK#nOf8uD9P>oZ1Low|E5O?c<_%z%G5bo5oxzMB9che9 zbTM}rr)D~X%vsY0ist?5-0Z|mn7NZ5etP~j*hacnVaO!NDGc{NUrmJA{z$YP=c6|$ z{z{tx%$eq8(_I{?<(SKFq($RonLA#gk1M(|M`Ue582L5lE@&5ws;xGQtJ zXx{RLh+F7B#SL84d70`nT&TI4E!qW*8zpZPPP*np^ds$>Rfw#MsZ>1GH8&xOu33O6 zyM|kkCKyZZ62Q+PQ7Ciuq9FkjY}YDIluPEkHRCQ;$)!%5)5X_$uJCEbSn zY|HvV%kyqa{#A74uc#Pu%H0&DN`I>}-%Su|BVe!YMBcCCWv4kP(_E#f(x+z7qWZ GLH-TS;|;|C literal 0 HcmV?d00001 diff --git a/.api-contract/src/test/contracts/user/index.ts b/.api-contract/src/test/contracts/user/index.ts new file mode 100644 index 00000000..69e91c72 --- /dev/null +++ b/.api-contract/src/test/contracts/user/index.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { createVersionedExport } from '../util.js'; +import * as v0 from './v0/index.js'; +import * as v3 from './v3/index.js'; +import * as v4 from './v4/index.js'; + +export default createVersionedExport({ v0, v3, v4 }); diff --git a/.api-contract/src/test/contracts/user/v0/assetTransfer.json b/.api-contract/src/test/contracts/user/v0/assetTransfer.json new file mode 100644 index 00000000..f1d8030a --- /dev/null +++ b/.api-contract/src/test/contracts/user/v0/assetTransfer.json @@ -0,0 +1,245 @@ +{ + "contract": { + "authors": ["unknown"], + "name": "AssetTransfer", + "version": "0.0.1" + }, + "metadataVersion": "0.1.0", + "source": { + "compiler": "solang 0.1.4", + "hash": "0x7d163f445bec3d33e90d0f60bda40acd42f2760dbc1b731616af70a6001e05c7", + "language": "Solidity 0.1.4" + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [""], + "name": "new", + "selector": "0x861731d5" + } + ], + "events": [ + { + "args": [ + { + "indexed": false, + "name": "_newUser", + "type": { + "display_name": ["AccountId"], + "type": 4 + } + } + ], + "docs": [""], + "name": "successfulRegistration" + }, + { + "args": [ + { + "indexed": false, + "name": "sender", + "type": { + "display_name": ["AccountId"], + "type": 4 + } + }, + { + "indexed": false, + "name": "_hexAsset", + "type": { + "display_name": ["String"], + "type": 5 + } + } + ], + "docs": [""], + "name": "addedAsset" + }, + { + "args": [ + { + "indexed": false, + "name": "sender", + "type": { + "display_name": ["AccountId"], + "type": 4 + } + }, + { + "indexed": false, + "name": "receiver", + "type": { + "display_name": ["AccountId"], + "type": 4 + } + }, + { + "indexed": false, + "name": "hexOfAsset", + "type": { + "display_name": ["String"], + "type": 5 + } + } + ], + "docs": [""], + "name": "assetSent" + } + ], + "messages": [ + { + "args": [ + { + "name": "_user", + "type": { + "display_name": ["AccountId"], + "type": 4 + } + } + ], + "docs": [""], + "mutates": false, + "name": "viewBalance", + "payable": false, + "return_type": { + "display_name": ["u256"], + "type": 1 + }, + "selector": "0xc1a13d1a" + }, + { + "args": [ + { + "name": "_assetHex", + "type": { + "display_name": ["String"], + "type": 5 + } + } + ], + "docs": [""], + "mutates": false, + "name": "findOwner", + "payable": false, + "return_type": { + "display_name": ["AccountId"], + "type": 4 + }, + "selector": "0x63560a8e" + }, + { + "args": [ + { + "name": "_hexAsset", + "type": { + "display_name": ["String"], + "type": 5 + } + } + ], + "docs": [""], + "mutates": true, + "name": "addAsset", + "payable": false, + "return_type": null, + "selector": "0xa7c6b52e" + }, + { + "args": [], + "docs": [""], + "mutates": true, + "name": "receiveAsset", + "payable": false, + "return_type": { + "display_name": ["String"], + "type": 5 + }, + "selector": "0xb2f3b5bc" + }, + { + "args": [ + { + "name": "_assetHex", + "type": { + "display_name": ["String"], + "type": 5 + } + }, + { + "name": "_receiver", + "type": { + "display_name": ["AccountId"], + "type": 4 + } + } + ], + "docs": [""], + "mutates": true, + "name": "sendAsset", + "payable": false, + "return_type": null, + "selector": "0xd6e5288f" + }, + { + "args": [ + { + "name": "_newUser", + "type": { + "display_name": ["AccountId"], + "type": 4 + } + } + ], + "docs": [""], + "mutates": true, + "name": "register", + "payable": false, + "return_type": null, + "selector": "0x4420e486" + } + ] + }, + "storage": { + "struct": { + "fields": [] + } + }, + "types": [ + { + "def": { + "primitive": "u256" + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "array": { + "len": 32, + "type": 2 + } + } + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 3 + } + ] + } + }, + "path": ["AccountId"] + }, + { + "def": { + "primitive": "str" + } + } + ] +} diff --git a/.api-contract/src/test/contracts/user/v0/assetTransfer.wasm b/.api-contract/src/test/contracts/user/v0/assetTransfer.wasm new file mode 100644 index 0000000000000000000000000000000000000000..516f769852f09caee63d135d1cb7aec437f9c351 GIT binary patch literal 11151 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 L;hP%mXRZGN@&7$3 literal 0 HcmV?d00001 diff --git a/.api-contract/src/test/contracts/user/v0/enumExample.json b/.api-contract/src/test/contracts/user/v0/enumExample.json new file mode 100644 index 00000000..02d7dcfb --- /dev/null +++ b/.api-contract/src/test/contracts/user/v0/enumExample.json @@ -0,0 +1,496 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0x1a37c380fe02fe3b670480dff1393b0401788955315d092e39fcc06047f1413c", + "language": "ink! 3.0.0-rc2", + "compiler": "rustc 1.49.0-nightly" + }, + "contract": { + "name": "enum_example", + "version": "0.1.0", + "authors": ["[your_name] <[your_email]>"] + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [], + "name": ["new"], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [ + { + "name": "variant", + "type": { + "displayName": ["Variant"], + "type": 4 + } + } + ], + "docs": [], + "mutates": true, + "name": ["set_variant"], + "payable": false, + "returnType": null, + "selector": "0x4fa6b9cf" + }, + { + "args": [], + "docs": [], + "mutates": false, + "name": ["get_variant"], + "payable": false, + "returnType": { + "displayName": ["Variant"], + "type": 4 + }, + "selector": "0x1d5962d1" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0000000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [] + }, + "1": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [] + }, + "1": { + "fields": [] + }, + "2": { + "fields": [] + }, + "3": { + "fields": [] + }, + "4": { + "fields": [] + }, + "5": { + "fields": [] + }, + "6": { + "fields": [] + } + } + } + }, + "name": null + } + ] + }, + "2": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": null + } + ] + }, + "1": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": null + } + ] + } + } + } + }, + "name": null + } + ] + }, + "3": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "value" + } + ] + }, + "1": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "value" + } + ] + } + } + } + }, + "name": null + } + ] + }, + "4": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [] + }, + "1": { + "fields": [] + }, + "2": { + "fields": [] + }, + "3": { + "fields": [] + }, + "4": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "r" + }, + { + "layout": { + "cell": { + "key": "0x0300000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "g" + }, + { + "layout": { + "cell": { + "key": "0x0400000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "b" + } + ] + }, + "5": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "r" + }, + { + "layout": { + "cell": { + "key": "0x0300000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "g" + }, + { + "layout": { + "cell": { + "key": "0x0400000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "b" + }, + { + "layout": { + "cell": { + "key": "0x0500000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "a" + } + ] + } + } + } + }, + "name": null + } + ] + } + } + } + }, + "name": "last" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "i32" + } + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Weekday" + }, + { + "fields": [ + { + "type": 6 + } + ], + "name": "TupleMaybeSigned" + }, + { + "fields": [ + { + "type": 7 + } + ], + "name": "NamedMaybeSigned" + }, + { + "fields": [ + { + "type": 8 + } + ], + "name": "Color" + } + ] + } + }, + "path": ["enum_example", "enum_example", "Variant"] + }, + { + "def": { + "variant": { + "variants": [ + { + "discriminant": 0, + "name": "Monday" + }, + { + "discriminant": 1, + "name": "Tuesday" + }, + { + "discriminant": 2, + "name": "Wednesday" + }, + { + "discriminant": 3, + "name": "Thursday" + }, + { + "discriminant": 4, + "name": "Friday" + }, + { + "discriminant": 5, + "name": "Saturday" + }, + { + "discriminant": 6, + "name": "Sunday" + } + ] + } + }, + "path": ["enum_example", "enum_example", "Weekday"] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 1 + } + ], + "name": "Signed" + }, + { + "fields": [ + { + "type": 2 + } + ], + "name": "Unsigned" + } + ] + } + }, + "path": ["enum_example", "enum_example", "TupleMaybeSigned"] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "name": "value", + "type": 1 + } + ], + "name": "Signed" + }, + { + "fields": [ + { + "name": "value", + "type": 2 + } + ], + "name": "Unsigned" + } + ] + } + }, + "path": ["enum_example", "enum_example", "NamedMaybeSigned"] + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "Red" + }, + { + "name": "Blue" + }, + { + "name": "Green" + }, + { + "name": "Yellow" + }, + { + "fields": [ + { + "name": "r", + "type": 3 + }, + { + "name": "g", + "type": 3 + }, + { + "name": "b", + "type": 3 + } + ], + "name": "Rgb" + }, + { + "fields": [ + { + "name": "r", + "type": 3 + }, + { + "name": "g", + "type": 3 + }, + { + "name": "b", + "type": 3 + }, + { + "name": "a", + "type": 3 + } + ], + "name": "Rgba" + } + ] + } + }, + "path": ["enum_example", "enum_example", "Color"] + } + ] +} diff --git a/.api-contract/src/test/contracts/user/v0/enumExample.wasm b/.api-contract/src/test/contracts/user/v0/enumExample.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5cbe4bf9bc714e8f8711ffb62a84ee708f537653 GIT binary patch literal 5473 zcmcIoON?7r8UD|?4`0u?Ar63ltN=9@j_2e~= zL_|VyP)AXaD$xZCgg}ZQA`3K979hcnWp|xc1(jWZ4a+WB5x(y~*B(2K+M$9O+4tOY z{`dP>7S}Er5iv*V7wm8-7m^{r&Cm?-B^LxwZsC#P!83sAp}A@Am^@osTD&;#_! z-SNE`zxM&w@zxtfD1x+%?LGbvGR45<;gMOH%?dF#Ny}=lZMYk1=b8zr9FzHATBcDe z?T}O^F)g&K&}t1+_D!o6k85Si5P7rjZ~NNDf*c7JH1a3Y7_t6D8VP8O80PInrOy-m z87rlfA#FiqRjiec7TIW#L&A`KEW`-ZKq&}+T)u>7ve|!R-tc*tTi^7VzVzMg4WGtk zaeHIqgq;U(U9hxG$*HE1(i?i$EhKa5d3?DXe-uwxq|hW|(-$NA;|Nfb}Uub0Cj!7R_Fh+2VDD__?i2Qmc80F)7` z3WPeWXa}GWoz2%|`Zb+?%_d$O^)ieQ8$}rq=j;z(N+wjn!7_=DF z>7Zlbf>UX4Oc*h#wwNKth%>{ZT9-_}5w{&u0>+alvEShr)T^ohWC)K8lo2VKJ$NC}VFU^$dfQPNR$YijI z-fIk;ZILOA)^Phn{Yf3g_Pos2wUcCdtw5s8pjtCWw0TtZKO|bhSuGjj86F6>91lcI z4G*}yU?q)i@uoaFEgkEraRN#8Cv0Jd2}~4HlmqPtEgJ;>B&*n!P%2hvMvf^EmYqraBzOk{*^fyBj;GTxc_sKl6Z$feU5Ciz3qQSpUk4Yu>O{WbI&5Ku`ur0Z7{9~ zYG!Lyg3OG7>lH9E1y~m7H7*h?axPLVlyWwroMV9)RA5>?mSTAd?D3bdYI zheqeXI9zXA*o)?YPKECqsHKs;#nqM>xaS}~M!+qU{|DgPVz55I{+@Pzzip9j&6>~q zkNEfe8|}RB@7%}aoA>AN%b%oLwd&XxCRrz7ty+J$?Vl0vtK^+3@1B+< zsJ+roXLE}`F{nT$ygf$K`@~CXDSGA%JZNx%sRY#1-uN_7`*3t5o}M0!r+Q5b#k#kv zr1O>F)>m5@CV({R^v`LI-zQc^$k&zQ!|CG-El=8@uWyG z!XXn`egl_03YWF$KA&kArDe;~57DJN%Sg5n&By+a{;fIKzxAu1y!rd=o6Xuj9HG5w zD!*+8ysjg0J%$H=mG6IO^iJ73GG>jNH7$PQC$dlpAQ1^zH!RmhsxjL#7i! z_!L?~57ak#7xnEfR^ao28FWOta^GwhNfa zqemyI{WVWW;4W&oLf{Dq8k5X_jf;eqUd$)hrje$$6K@83r?l`{V1;0FiIvbvI`?-ieDB)yo(8lDaHxE7>JTeS`<+w$>;M`M9L7)Qz zNeo2SN`jPVjQBle5i2vEIn0d3HP`^CvJ!z+ZOIF0?tv_C1ywEo=~A zdrZs;=47zIU1-7L8Qb@f@jXBXSEZ&t0v%Wfmm84Q@(wNIs9ApGQh>XI?SV&idx)2U z!?J7oQV{PUh>J1vu0*t#(OWU%bGkB)6HZ}qn literal 0 HcmV?d00001 diff --git a/.api-contract/src/test/contracts/user/v0/index.ts b/.api-contract/src/test/contracts/user/v0/index.ts new file mode 100644 index 00000000..0837c3e2 --- /dev/null +++ b/.api-contract/src/test/contracts/user/v0/index.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as assetTransfer } from './assetTransfer.json' assert { type: 'json' }; +export { default as enumExample } from './enumExample.json' assert { type: 'json' }; +export { default as recursive } from './recursive.contract.json' assert { type: 'json' }; +export { default as withString } from './withString.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/user/v0/recursive.contract.json b/.api-contract/src/test/contracts/user/v0/recursive.contract.json new file mode 100644 index 00000000..a8e64a5b --- /dev/null +++ b/.api-contract/src/test/contracts/user/v0/recursive.contract.json @@ -0,0 +1,70 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0xdb5366415b71e5d52af252f2be5f955f1272b7f1ec0ce3493b7a9404b3b9119c", + "language": "ink! 3.0.0-rc5", + "compiler": "rustc 1.57.0-nightly", + "wasm": "0x0061736d0100000001620f60037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060017f017f60057f7f7f7f7f0060047f7f7f7f0060000060017f017e60017f0060047f7f7f7f017f60067f7f7f7f7f7f006000017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f02a30107057365616c30107365616c5f6765745f73746f726167650000057365616c30107365616c5f7365745f73746f726167650003057365616c30167365616c5f76616c75655f7472616e736665727265640002057365616c30127365616c5f64656275675f6d6573736167650001057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e000303656e76066d656d6f727902010210034e4d020204030205020309030c0802020407040700090100000301020107020103010206080d010a060a030b0302040601010303000101000505050501010e01010001010401010101040101010600040501700121210608017f01418080040b071102066465706c6f7900150463616c6c00170926010041010b203534254e233941494a250e4f0e500e1c1e200e4b0e280e3b43440e4546470e4c0a9c744db50301027f230041d0006b22022400200241286a200141186a290300370300200241206a200141106a290300370300200241186a200141086a2903003703002002420137033020022001290300370310200241808001360244200241fabf04360240200241808001360248200241106a41fabf04200241c8006a10002101200241406b2002280248100702400240200110082201410b47044020014103460d0141d48304411c41f083041009000b20022002290340370348200241086a200241c8006a100a2002280208450d01200241003a0048418080044127200241c8006a41c0810441888104100b000b230041306b220024002000411736020c200041988104360208200041246a410136020020004201370214200041e88e043602102000410236022c2000200041286a3602202000200041086a360228200041106a41b081041026000b2002200228020c220336023c2002413c6a21010340200128020022010d000b200020022903103703082000200336022820004201370300200041206a200241286a290300370300200041186a200241206a290300370300200041106a200241186a290300370300200241d0006a24000b2301017f2001200028020422024b04402001200241c0bb041030000b200020013602040b2001017f410a2101200041094d047f200041027441c8bf046a28020005410a0b0b4601017f230041206b22032400200341146a410036020020034188be04360210200342013702042003200136021c200320003602182003200341186a360200200320021026000b850101037f230041106b22022400200241086a20011012410121030240024020022d00084101710d00410021030240024020022d00090e020201000b410121030c010b20022001100a4101210320022802000d002002280204210110102204450d0120042001360200410021030b2000200436020420002003360200200241106a24000f0b000b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41013602002005420237021c2005418cbe04360218200541023602342005200541306a3602282005200541106a3602382005200541086a360230200541186a20041026000ba20101017f230041406a22022400200241206a200141186a290300370300200241186a200141106a290300370300200241106a200141086a2903003703002002420137032820022001290300370308200041286a220021010340200128020022010d000b200241386a41808001360200200241fabf04360234200241003602302002200241306a2000100d200241086a200228020020022802041001200241406b24000ba30102037f017e230041106b22032400200129020421062003410036020820032006370300034020022802000440200341011013200228020021020c010b0b2003410010132001410036020820014188be04360204200328020422052003280208220249044041a8b804412341b8b9041009000b200328020021042001200520026b3602082001200220046a3602042000200236020420002004360200200341106a24000b0300010b3c01017f230041106b22032400200041ff01714108460440200341106a24000f0b200320003a000f200120022003410f6a41d08104419c8604100b000b6e01037f024041f0bf04280200220041046a22012000490d0041f0bf0441f4bf04280200200149047f410140002200417f46200041ffff0371200047720d0120004110742200418080046a22012000490d0141f4bf04200136020020004104720520010b360200200021020b20020b9c0102027f017e230041106b220124002001420037030841042102027f02400340200241084604402001410436020820012903082203a741044f0d0241e08104411b41dc82041009000b20012000101220012d0000410171450440200141086a20026a20012d00013a0000200241016a21020c010b0b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b3f01027f230041106b22022400200241003a000f200020012002410f6a410110182201047f41000520022d000f0b3a0001200020013a0000200241106a24000b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b2002200341c8ba04102e000b2601017f2000280200220145044041000f0b10102200044020002001101436020020000f0b000b12004100101641ff017141a485044122100f0b8d0502057f017e230041e0006b220124000240027f2000450440200141808001360244200141fabf04360240200141406b1019200120012903403703104106200141106a10114281feffffff1f834280b6baede90b520d011a2001410036023820014200370310200141d8006a4200370300200141d0006a4200370300200141c8006a420037030020014200370340200141106a200141406b100c41080c010b200141808001360244200141fabf04360240200141406b101920012001290340370310410121000240200141106a10112206a722044101710d00200642ffffffffff1f832206422088a721052006421888a721032006421088a72102200441087641ff01712204412f470440200441e80147200241ff017141c4014772200341ff017141de0047200541b6014772720d012001200141106a100a20012802000d012001280204210341002102410021000c010b200241ff017141860147200341ff017141db004772200541d90147720d0041002100410121020b410620000d001a20024101710d01200141d8006a4200370300200141d0006a4200370300200141c8006a420037030020014200370340200141106a200141406b1006200141386a21000340200028020022000d000b20012003360238200141106a200141406b100c41080b200141e0006a24000f0b200141d8006a4200370300200141d0006a4200370300200141c8006a420037030020014200370340200141106a200141406b10062001200141386a101436020c230041106b2200240020002001410c6a36020c2000410c6a2802002101230041206b22002400200041186a41808001360200200041fabf0436021420004100360210200041086a200041106a2001100d41002000280208200028020c1005000bca0102037f027e230041206b22002400200041808001360204200041fabf0436020020004180800136021041fabf04200041106a100220002000280210100720002000290300370308200041186a2201420037030020004200370310200041086a200041106a41101018220245044020002903102104200129030021030b20020440200041003a0010418084044134200041106a41c0810441948504100b000b410841072003200484501b41ac860441c300100f4101101641ff017141ef8604411b100f200041206a24000bd10101057f230041106b220324000240200028020422042002492205450440200341086a41002002200028020022061051200328020c22072002470d0120012003280208200210521a20032002200420061051200020032903003702000b200341106a240020050f0b230041306b2200240020002007360204200020023602002000411c6a41023602002000412c6a41033602002000420337020c200041c89904360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a41f898041026000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10042000200128020c1007200141106a24000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a418c8704200241086a101b200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a103620032003290310370320200341086a20042000410c6a103620032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002101d41000b3f01017f20002002101f2000280208220320002802006a2001200210521a2003200220036a22014b044041b08704411c41d48b041009000b200020013602080bb90201027f230041106b22022400024002400240200028020022002002410c6a027f02400240200141ff004d0440200028020822032000280204460d010c040b2002410036020c2001418010490d0120014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c020b20004101101f200028020821030c020b20022001413f71418001723a000d2002200141067641c001723a000c41020b101d0c010b200028020020036a20013a0000200341016a22012003490d01200020013602080b200241106a240041000f0b41b08704411c41c48b041009000bc50301077f230041106b22052400024002400240200120002802042207200028020822026b4b0440200120026a22012002490d03200720076a22032007490d022000280200410020071b210841002102230041106b220624002005027f2003200120012003491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001102220062802082104200628020c0c030b200141f0bf04280200220320016a22022003490d021a41f4bf042802002002490440200141ffff036a22042001490d02200441107640002202417f46200241ffff0371200247720d022002411074220320044180807c716a22022003490d024100210441f4bf0420023602002001200120036a22022003490d031a0b41f0bf04200236020020012003450d021a2003200820071052210420010c020b2006200110222006280200210420062802040c010b4100210420010b2102200404402005200436020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d01000b41808a04412141a48a041009000b1021000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a101a200241206a24000b0f0041b48a04411141c88a041009000bb90101037f2001047f230041106b22042400027f410041f0bf04280200220220016a22032002490d001a024041f4bf042802002003490440200141ffff036a22022001490d012002411076220340002202417f46200241ffff0371200247720d012002411074220220034110746a22032002490d0141f4bf0420033602004100200120026a22032002490d021a0b41f0bf04200336020020020c010b41000b200441106a24000541010b210220002001360204200020023602000b0e0020002802001a03400c000b000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341e49704360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a20021026000bf30202037f027e027f20003502002105230041306b220324004127210002400240024003402005428fce005804402005a7220241e3004a0d020c030b2000200041046b22004c0d0320054290ce00802106200341096a20006a20054290ce0082a7220241e4006e41017441c292046a2f00003b00002000200041026a22044c0440200341096a20046a200241e4007041017441c292046a2f00003b0000200621050c010b0b41a08c04411c41f4ae041009000b2000200041026b22004c0d01200341096a20006a2005a741ffff0371220241e4007041017441c292046a2f00003b0000200241e4006e21020b02402002410a4e04402000200041026b22004c0d02200341096a20006a200241017441c292046a2f00003b00000c010b2000200041016b22004c0d01200341096a20006a200241306a3a00000b412720006b220241274b04400c010b20014188be044100200341096a20006a20021029200341306a24000c010b41f08b04412141f4ae041009000b0bfb0301077f230041106b220224002002200136020c200220003602082002418c8f0436020420024188be04360200230041406a220324002003200236020c200341346a410136020020034202370224200341ccb9043602202003410436023c2003200341386a36023020032003410c6a360238200341106a210641002101230041206b22042400200341206a220528020422074103742102200528020022082100024002400240024002400340200204402001200120002802046a22014b0d02200241086b2102200041086a21000c010b0b02400240200541146a280200450440200121000c010b02402007450d0020082802040d004100210220014110490d020b41002102200120016a22002001490d010b200022024100480d020b20042002102220042802002200450d0220042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a101a0d03200441206a24000c040b41b08704411c41e4ae041009000b1021000b000b41dc87044133200441086a41cc870441f88804100b000b2003280210210020032802182101024041f8bf042d000045044041f9bf042d00004101710d010b2000200110031008410947044041f8bf0441013a00000b41f9bf0441013a00000b000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41f08b044121418cbf041009000b0c0042fbe3b7f3e291cedb280b9b0401077f230041106b22072400418080c40021092004210502402000280200220a410171450d002004200441016a22054d0440412b21090c010b41a08c04411c419095041009000b0240024002400240200a41047145044041002101200521060c010b2001200120026a102a20056a22062005490d010b41012105200028020841014704402000200920012002102b0d032000280218200320042000411c6a28020028020c11000021050c030b024002402000410c6a280200220820064b0440200a4108710d01200820066b220620084b0d022007200020064101102c20072802002206418080c400460d05200728020421082000200920012002102b0d0520002802182201200320042000411c6a280200220028020c1100000d052006200820012000102d21050c050b2000200920012002102b0d042000280218200320042000411c6a28020028020c11000021050c040b2000280204210a2000413036020420002d0020210b200041013a00202000200920012002102b0d03200820066b220120084b0d02200741086a200020014101102c20072802082201418080c400460d03200728020c210220002802182206200320042000411c6a280200220328020c1100000d032001200220062003102d0d032000200b3a00202000200a360204410021050c030b41f08b04412141c095041009000b41a08c04411c41a095041009000b41f08b04412141b095041009000b200741106a240020050b4201017f02400340200020014704402002200220002d000041c00171418001476a22024b0d02200041016a21000c010b0b20020f0b41a08c04411c41e4ae041009000b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000bb20101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03010001020b2002200241016a22034d044020034101762105200241017621040c020b41a08c04411c41d095041009000b41002105200221040b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110100450d000b200441016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341f08f04360208200341033602242003200341206a360218200320033602282003200341046a360220200341086a20021026000bb70101017f230041106b220624000240200120024d0440200220044d0d012002200420051030000b230041306b2200240020002002360204200020013602002000411c6a41023602002000412c6a41033602002000420237020c200041b89804360208200041033602242000200041206a3602182000200041046a36022820002000360220200041086a20051026000b200641086a2001200220031027200020062802083602002000200628020c360204200641106a24000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341849804360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a20021026000b880101047f200141086a28020021022001280204210402400240200141046a10322205418080c400470440200220046b2203200128020420012802086b6a220220034b0d012001280200220320026a22022003490d02200120023602000b20002005360204200020033602000f0b41f08b04412141cc9a041009000b41a08c04411c41dc9a041009000bf00101057f2000280200220120002802042203460440418080c4000f0b2000200141016a220236020020012d00002204411874411875417f4c047f027f200220034604402003210241000c010b2000200141026a220236020020012d0001413f710b21012004411f712105200441df014d044020012005410674720f0b2001410674027f200220034604402003210141000c010b2000200241016a220136020020022d0000413f710b722102200441f00149044020022005410c74720f0b2001200346047f4100052000200141016a36020020012d0000413f710b2005411274418080f00071200241067472720520040b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b9e0301067f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a1031200228021c418080c400470d010c020b0b200241106a200241206a10312002280214418080c400460d00200241086a2002280210200320041033200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a102a22054d04402001280218200320042001411c6a28020028020c11000021000c010b20022001200020056b4100102c4101210020022802002205418080c400460d002002280204210620012802182207200320042001411c6a280200220128020c1100000d002005200620072001102d21000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044105470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141b092041024000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a101b200341206a24000b6c01027f230041206b2202240041012103024020002001103a0d002002411c6a410036020020024188be043602182002420137020c200241988d04360208200141186a2802002001411c6a280200200241086a10380d00200041046a2001103a21030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d012000200110250c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a1037200141c0920441022002280208200228020c10290c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a1037200141c0920441022002280200200228020410290b20024190016a24000bca08010d7f230041e0006b22032400200341d8006a210e2000280204210c2000280200210d2000280208210a024003402002450d010240200a2d00000440200d419c90044104200c28020c1100000d010b2003410a3602582003428a808080103703502003200236024c41002100200341003602482003200236024420032001360240200222052106200121040340200341386a2004200620002005103c024002400240024002400240024020032802382207450d00024002402003280254220041016b220420004d0440200320046a41d8006a2d00002108200328023c220641084f0440200741036a417c7120076b2204450440410021050c030b41002100200341306a410020062004200420064b1b22052007200641d09604102f200328023421092003280230210b034020002009460d032000200b6a2d00002008460d042000200041016a22044d0440200421000c010b0b41a08c04411c41f0af041009000b41002100034020002006460d04200020076a2d00002008460d03200041016a21000c000b000b41f08b04412141dc9d041009000b02402006200641086b22044f0440200841818284086c21000c010b41f08b04412141e096041009000b02400340024020042005490d00200541046a22092005490d06200520076a280200200073220b417f73200b41818284086b71200720096a2802002000732209417f73200941818284086b7172418081828478710d002005200541086a22054d0d010c020b0b200520064b0d05200341286a200520062007102741002100200328022c2106200328022821070240034020002006460d04200020076a2d00002008460d012000200041016a22044d0440200421000c010b0b41a08c04411c41f0af041009000b200020056a220020054f0d0141a08c04411c41a097041009000b41a08c04411c418097041009000b2000200041016a22044b0d042004200328024822046a22002004490d0520032000360248200020032802542204490d06200341206a20032802402003280244200020046b22062000103c20032802202200450d0620032802242104200341186a41002003280254200e4104418c9e04102f2004200328021c470d06027f20032802182105034041002004450d011a200441016b210420052d0000210720002d00002108200041016a2100200541016a210520072008460d000b200820076b0b0d06200a41013a0000200641016a220020064f0d0141a08c04411c419091041009000b200a41003a0000200221000b200341106a20002001200241a09104103d200d20032802102003280214200c28020c1100000d06200341086a20002001200241b09104103e200328020c2102200328020821010c070b41a08c04411c41f096041009000b20052006419097041024000b41a08c04411c41ec9d041009000b41a08c04411c41fc9d041009000b200328024c21052003280248210020032802442106200328024021040c000b000b0b4101210f0b200341e0006a2400200f0b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011027200528020c2107200528020821060b2000200736020420002006360200200541106a24000b4e01027f230041106b22052400200541086a20012002200310332005280208220645044020022003410020012004103f000b200528020c21012000200636020020002001360204200541106a24000b6400024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b2003200320016b220449044041f08b04412141d89b041009000b200020043602042000200120026a3602000f0b20022003200120032004103f000baf0601027f23004180016b220524002005200336021c200520023602182005027f024020014181024f0440418002210603402006450440410021060c030b200020066a2c000041bf7f4a0d02200641016b21060c000b000b200520013602242005200036022020054188be0436022841000c010b200541106a20062000200141dc9c04103d200520052903103703202005419c9e0436022841050b36022c024020012002492206200120034972450440200220034d0440024002402002450d00200120024d044020012002460d010c020b200020026a2c00004140480d010b200321020b2005200236023003400240024002402002450440410021020c010b200120024d044020012002470d02200121020c010b200020026a2c00004140480d010b200541086a2002200020012004103e20052005280208220036025820052000200528020c6a36025c2005200541d8006a1032200410402201360234027f41012001418001490d001a41022001418010490d001a41034104200141808004491b0b20026a220020024f0d0141a08c04411c20041009000b200241016b21020c010b0b2005200036023c20052002360238200541d4006a4105360200200541fc006a4102360200200541f4006a4102360200200541ec006a4106360200200541e4006a410736020020054205370244200541d49f043602402005410336025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580c020b200541f4006a4102360200200541ec006a4102360200200541e4006a4103360200200541d4006a410436020020054204370244200541809f043602402005410336025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580c010b20052002200320061b360238200541d4006a4103360200200541ec006a4102360200200541e4006a410236020020054203370244200541c49e043602402005410336025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580b200541406b20041026000b1a002000418080c40046044041bc8e04412b20011009000b20000b860a02087f017e4101210602402001280218220741272001411c6a28020028021022081101000d0041f4002103410221010240027f02400240027f0240024002402000280200220241096b0e050704010105000b2002412746200241dc0046720d010b2002410b74210541002101411f2100411f21040240027e024002400240024002400240024002400240024002400340200020014d0d02200120044101766a22032001490d030240200520034102744180b0046a280200410b7422044d044020042005460d03200321000c010b200341016a22012003490d050b200020016b220420004d0d000b41f08b04412141e898041009000b200341016a21010b2001411e4b0d02200141027422034180b0046a280200411576210002402001411e47044020034184b0046a280200411576220320006b220420034d0d0141f08b0441214190ad041009000b41b10520006b220441b2054f0d040b4100210320022001200141016b22054f047f2005411f4f0d0520054102744180b0046a28020041ffffff00710541000b6b220920024b0d05200441016b220120044b0d06200041b105200041b1054b1b2105200020046a41016b2103410021040240024003400240024002402001047f20002005460d0e20042004200041fcb0046a2d00006a22044b0d01200420094d0d0220000520030b4101710d0e200241808004490d022002418080084f0d04200241d9a604412641a5a70441af0141d4a80441a30310420d100c050b41a08c04411c41d0ad041009000b200141016b2101200041016a21000c010b0b200241b0a10441294182a20441a20241a4a40441b5021042450d010c0c0b200241decd0a6b412249200241b5ee0a6b410b4972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d0b0b200241017267410276410773ad4280808080d000840c090b41a08c04411c41c898041009000b41a08c04411c41d898041009000b2001411f41f0ac04102e000b41f08b0441214180ad041009000b2005411f41e0ad04102e000b41f08b04412141a0ad041009000b41f08b04412141b0ad041009000b200541b10541c0ad04102e000b200241017267410276410773ad4280808080d000840b210a41032101200221030c060b41010c010b41020b2101200221030c030b41ee000c010b41f2000b21030b0240034002402001210241002101200321000240024002400240200241016b0e03030200010b02400240024002400240200a422088a741ff017141016b0e050004010203050b200a42ffffffff8f6083210a41fd002100410321010c060b200a42ffffffff8f608342808080802084210a41fb002100410321010c050b200a42ffffffff8f608342808080803084210a41f5002100410321010c040b200a42ffffffff8f60834280808080c00084210a41dc002100410321010c030b200aa7220141ffffffff03712001470d032001410274220041204f0d0520032000411c7176410f712200413072200041d7006a2000410a491b41ac8e04104021002001450440200a42ffffffff8f608342808080801084210a410321010c030b200a42808080807083200a42017d42ffffffff0f8384210a410321010c020b20074127200811010021060c050b41dc002100410121010b200720002008110100450d010c030b0b41c08c044121418c8e041009000b41f08c044124419c8e041009000b20060bfa0201067f230041106b22072400200120024101746a210c20004180fe0371410876210a410021020240024002400240034002402001200c470440200220012d00016a22082002490d04200141026a210b20012d00002209200a460d01200b2101200821022009200a4d0d020b200520066a2104200041ffff0371210241012103034020042005460d03200541016a210020052d000022014118744118752206410048044020002004460d0620052d0001200641ff0071410874722101200541026a21000b200141004a2002200220016b22024a730d0620024100480d0320034101732103200021050c000b000b200741086a20022008200320044180a104102f20072802082102200728020c210103402001450440200b2101200821020c020b200141016b210120022d0000200241016a2102200041ff0171470d000b0b410021030b200741106a240020034101710f0b41a08c04411c41f0a0041009000b41bc8e04412b4190a1041009000b41f08b04412141a0a1041009000be30101017f230041106b220224002002410036020c20002002410c6a027f0240024020014180014f04402001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200220013a000c41010c020b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040b103b200241106a24000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a418c9404200241086a101b200241206a24000b0d00200028020020012002103b0b0b002000280200200110430b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1044200241206a24000b940101027f20002d00082101200028020422020440200141ff017121012000027f410120010d001a024020024101470d0020002d0009450d00200028020022022d00004104710d004101200228021841c5910441012002411c6a28020028020c1100000d011a0b2000280200220128021841c6910441012001411c6a28020028020c1100000b22013a00080b200141ff01714100470b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a101b200241206a24000b0b002000280200200110340b4900230041106b220024002000200128021841c1bf0441052001411c6a28020028020c1100003a000820002001360200200041003a00092000410036020420001048200041106a24000b4900230041106b220024002000200128021841adb604410b2001411c6a28020028020c1100003a000820002001360200200041003a00092000410036020420001048200041106a24000b1b00200028021841c1bf0441052000411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a2802002204419c8f04410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241ac8f04360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a1038450d010c020b20032802002200200328020428020c11080042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241ac8f04360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a10380d010b200328020c2100200241246a41033602002002413c6a410a360200200241346a410a36020020024203370214200241f48e0436021020022000410c6a3602382002200041086a3602302002410236022c200220003602282002200241286a36022020042001200241106a103821000b200241406b240020000bc60701017f230041d0006b22022400027f0240024002400240024002400240024002400240024020002d000041016b0e0a0102030405060708090a000b200128021841debc0441062001411c6a28020028020c1100002100200241003a001120022001360208027f410120000d001a20012d00004104714504404101200128021841c491044101200128021c28020c1100000d011a2001104d0c010b4101200128021841c291044102200128021c28020c1100000d001a20012802002100200241013a0027200241c4006a41849004360200200241206a200241276a3602002002200036022820022001290218370318200220012d00203a00482002200128020436022c20022001290210370338200220012902083703302002200241186a3602404101200241286a104d0d001a200228024041c091044102200228024428020c1100000b21002002410136020c200220003a0010200241086a10480c0a0b2002200128021841d1bc04410d2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c090b2002200128021841c3bc04410e2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c080b2002200128021841b8bc04410b2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c070b20022001280218419fbc0441192001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c060b200220012802184191bc04410e2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c050b2002200128021841fdbb0441142001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c040b2002200128021841f1bb04410c2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c030b2002200128021841e6bb04410b2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c020b2002200128021841dfbb0441072001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c010b2002200128021841d0bb04410f2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480b200241d0006a24000bd80201017f230041106b2202240002400240024002400240024002400240024020002d000041016b0e0701020304050607000b2002200128021841f8bd04410f2001411c6a28020028020c1100003a00080c070b2002200128021841debd04411a2001411c6a28020028020c1100003a00080c060b2002200128021841cbbd0441132001411c6a28020028020c1100003a00080c050b2002200128021841babd0441112001411c6a28020028020c1100003a00080c040b20022001280218419ebd04411c2001411c6a28020028020c1100003a00080c030b200220012802184189bd0441152001411c6a28020028020c1100003a00080c020b2002200128021841f8bc0441112001411c6a28020028020c1100003a00080c010b2002200128021841e4bc0441142001411c6a28020028020c1100003a00080b20022001360200200241003a00092002410036020420021048200241106a24000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41a0bf044121418cbf041009000b2b01017f03402002200346450440200020036a200120036a2d00003a0000200341016a21030c010b0b20000b0bcf3f0700418080040ba107636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d332e302e302d7263352f7372632f7472616974732f6d6f642e727327000100610000008f0000000a00000073746f7261676520656e7472792077617320656d707479002700010061000000900000000a0000000b00000001000000010000000c0000000d00000001000000010000000e0000005765206465636f646520604e6020656c656d656e74733b207165642f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e72730000fb0001005f000000cd020000170000002f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d332e302e302d7263352f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273656e636f756e746572656420756e6578706563746564206572726f726c01010068000000e900000017000000656e636f756e7465726564206572726f72207768696c65207175657279696e67207472616e736665727265642062616c616e63652f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f6c616e672d332e302e302d7263352f7372632f646973706174636865722e72730000340201005e000000910000000a0000006661696c656420746f2064697370617463682074686520636f6e7374727563746f722f55736572732f746d2f6768712f6769746875622e636f6d2f746173682d32732f32303231303933305f706f6c6b61646f745f6170692d636f6e74726163745f6572726f722f7265637572736976652f6c69622e7273c6020100560000001c0000000100000063616c6c6572207472616e736665727265642076616c7565206576656e2074686f75676820616c6c20696e6b21206d6573736167652064656e79207061796d656e74736661696c656420746f206469737061746368207468652063616c6c00000f00000004000000040000001000000011000000120041b087040bc202617474656d707420746f206164642077697468206f766572666c6f77130000000000000001000000140000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000000f04010066000000470200001c0000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72730041808a040be101617474656d707420746f206d756c7469706c792077697468206f766572666c6f77000000880401006a000000b50100001c0000006361706163697479206f766572666c6f77000000880401006a0000002f020000050000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72730000580501006a0000008e0600000d000000580501006a000000ca060000090041f08b040b21617474656d707420746f2073756274726163742077697468206f766572666c6f770041a08c040b41617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770041f08c040bc52a617474656d707420746f2073686966742072696768742077697468206f766572666c6f772e2e000094060100020000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e72730000a00601006a000000a200000035000000a00601006a000000a200000021000000a00601006a000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c756500081f0100000000003a000000081f010000000000700701000100000070070100010000001500000000000000010000001600000070616e69636b65642061742027272c20a807010001000000a907010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e646578206973200000bc07010020000000dc0701001200000060000000170000000c0000000400000018000000190000001a000000202020202f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e72730000200801006e0000002800000015000000200801006e0000002f00000021000000200801006e00000030000000120000002c0a280a282c292f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e7273c70801006900000065000000140000003078303030313032303330343035303630373038303931303131313231333134313531363137313831393230323132323233323432353236323732383239333033313332333333343335333633373338333934303431343234333434343534363437343834393530353135323533353435353536353735383539363036313632363336343635363636373638363937303731373237333734373537363737373837393830383138323833383438353836383738383839393039313932393339343935393639373938393900001b00000004000000040000001c0000001d0000001e0000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000240a0100690000001f0500000d000000240a010069000000230500000d000000240a0100690000004605000031000000240a0100690000004f05000031000000240a010069000000b3050000380000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e72730000e00a01006e000000410000001e000000e00a01006e0000004800000015000000e00a01006e0000004d0000001f000000e00a01006e0000005600000009000000e00a01006e0000005a00000005000000e00a01006e0000005a0000003d00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820b00b010012000000c20b01002200000072616e676520656e6420696e64657820f40b010010000000c20b010022000000736c69636520696e64657820737461727473206174202062757420656e64732061742000140c0100160000002a0c01000d0000004b1c01006b00000095080000170000004b1c01006b000000a0080000180000004b1c01006b000000a9080000140000004b1c01006b000000f00b00000d000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028880c0100150000009d0c01002b000000c6080100010000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e72730000e00c01006a0000009100000026000000e00c01006a00000091000000110000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e72736c0d01006c0000005d010000130000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e7273000000e80d01007100000011010000110000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72730000006c0e01006d00000099010000470000006c0e01006d000000ac010000200000006c0e01006d000000ac010000110000006c0e01006d000000b0010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000210f01000b0000002c0f0100160000000008010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e67206000005c0f01000e0000006a0f0100040000006e0f0100100000000008010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060210f01000b000000a00f010026000000c60f010008000000ce0f01000600000000080100010000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e727300fc0f0100730000000800000018000000fc0f0100730000000a0000001c000000fc0f0100730000001a00000036000000fc0f0100730000001e0000000900000000010305050606030706080809110a1c0b190c140d100e0d0f0410031212130916011705180219031a071c021d011f1620032b032c022d0b2e01300331023201a702a902aa04ab08fa02fb05fd04fe03ff09ad78798b8da23057588b8c901c1ddd0e0f4b4cfbfc2e2f3f5c5d5fb5e2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d112945495764658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff800d6d71dedf0e0f1f6e6f1c1d5f7d7eaeafbbbcfa16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f7475962f5f262e2fa7afb7bfc7cfd7df9a409798308f1fc0c1ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091feff536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab35280b80e003190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15053a0311070605100757070207150d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd035907150b1709140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a06213f4c042d0374083c030f033c0738082b0582ff1118082f112d032010210f808c048297190b158894052f053b07020e180980b32d740c80d61a0c0580ff0580df0cee0d03848d033709815c1480b80880cb2a38030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a511816d1078282a064c04808d0480be031b030f0d0006010103010402080809020a050b020e041001110212051311140115021702190d1c051d0824016a036b02bc02d102d40cd509d602d702da01e005e102e802ee20f004f802f902fa02fb010c273b3e4e4f8f9e9e9f060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5feeef5a629a9b2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf79cc6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b018090813709160a088098390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a561c1417094e041e0f430e19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d1339070a362c041080c03c64530c48090a46451b4808531d398107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48abc842f8fd18247a1b98239072a040260260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2f7811f3103110408818c89046b050d03090710936080f60a73086e1746809a140c570919808781470385420f1585502b80d52d031a040281703a0501850080d7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d8080d030d03740c59070c140c0438080a062808224e81540c15030305070919070709030d072980cb250a84062f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e7273000000f7150100760000004b00000028000000f7150100760000004f00000009000000f7150100760000004d00000009000000f7150100760000005400000011000000f7150100760000005600000011000000f7150100760000005700000016000000f7150100760000005800000009000000f715010076000000520000003e0000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e727300f0160100730000008d00000001000000c708010069000000ce010000050000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273841701006c00000085000000010000000003000083042000910560005d13a0001217a01e0c20e01eef2c202b2a30a02b6fa6602c02a8e02c1efbe02d00fea0359effe035fd016136010aa136240d6137ab0ee1382f182139301c6146f31ea14af06a614e4f6fa14e9dbc214f65d1e14f00da215000e0e15130e16153ece2a154d0e8e15420002e55f001bf5500700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b03770f0120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c0109012801030139030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d031d021e02400201070801020b09012d03770222017603040209010603db0202013a010107010101010208060a020130113f0430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c63a01050001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990bb001360f3803310402024503240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002000101030405080802071e0494030037043208010e011605010f000701110207010201050007000400076d07006080f0004c61796f75744572726f722f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e72730000381b01006e0000000e010000180041c0b7040bad08617474656d707420746f206164642077697468206f766572666c6f77381b01006e000000100100003900000063616c6c65642060526573756c743a3a756e77726170282960206f6e20616e2060457272602076616c7565001f000000000000000100000020000000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e727300004b1c01006b000000ff050000090000000a000000081f010000000000c81c0100010000002f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d332e302e302d7263352f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000dc1c01006900000063000000090000002f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d332e302e302d7263352f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000581d0100660000006f010000140000004c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e644e6577436f6e74726163744e6f7446756e6465645472616e736665724661696c656442656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f646550616964556e70617961626c654d657373616765436f756c644e6f7452656164496e707574496e76616c696443616c6c506172616d6574657273496e76616c6964496e7374616e7469617465506172616d6574657273496e76616c6964506172616d6574657273556e6b6e6f776e43616c6c53656c6563746f72556e6b6e6f776e496e7374616e746961746553656c6563746f72556e6b6e6f776e53656c6563746f72003a200000081f010000000000081f0100020000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e72730000001c1f01006d000000e00000004c00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f774572726f7200000b000000010000000200000003000000040000000500000006000000070000000800000009" + }, + "contract": { + "name": "recursive", + "version": "0.1.0", + "authors": ["[your_name] <[your_email]>"] + }, + "spec": { + "constructors": [{ "args": [], "docs": [], "name": ["new"], "selector": "0x9bae9d5e" }], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [], + "mutates": false, + "name": ["get"], + "payable": false, + "returnType": { "displayName": ["MyEnum"], "type": 1 }, + "selector": "0x2f865bd9" + }, + { + "args": [{ "name": "new", "type": { "displayName": ["MyEnum"], "type": 1 } }], + "docs": [], + "mutates": true, + "name": ["set"], + "payable": false, + "returnType": null, + "selector": "0xe8c45eb6" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "def": { + "variant": { + "variants": [ + { "name": "A" }, + { + "fields": [{ "type": 1, "typeName": "ink_prelude::boxed::Box" }], + "name": "B" + } + ] + } + }, + "path": ["recursive", "MyEnum"] + } + ] +} diff --git a/.api-contract/src/test/contracts/user/v0/withString.json b/.api-contract/src/test/contracts/user/v0/withString.json new file mode 100644 index 00000000..2c42e438 --- /dev/null +++ b/.api-contract/src/test/contracts/user/v0/withString.json @@ -0,0 +1,661 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0xafcd0acf1a747cca1febe5bad81a6c0244a381ceb02635ab1069a1a396adda3f", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.49.0-nightly" + }, + "contract": { + "name": "erc20", + "version": "0.1.0", + "authors": ["[your_name] <[your_email]>"] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "initial_supply", + "type": { + "displayName": ["Balance"], + "type": 1 + } + }, + { + "name": "_name", + "type": { + "displayName": ["String"], + "type": 12 + } + }, + { + "name": "_symbol", + "type": { + "displayName": ["String"], + "type": 12 + } + } + ], + "docs": [], + "name": ["new"], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": ["Option"], + "type": 14 + } + }, + { + "docs": [], + "indexed": true, + "name": "to", + "type": { + "displayName": ["Option"], + "type": 14 + } + }, + { + "docs": [], + "indexed": true, + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 1 + } + } + ], + "docs": [], + "name": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "docs": [], + "indexed": true, + "name": "spender", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "docs": [], + "indexed": true, + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 1 + } + } + ], + "docs": [], + "name": "Approval" + } + ], + "messages": [ + { + "args": [], + "docs": [], + "mutates": false, + "name": ["total_supply"], + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 1 + }, + "selector": "0xdcb736b5" + }, + { + "args": [], + "docs": [], + "mutates": false, + "name": ["name"], + "payable": false, + "returnType": { + "displayName": ["String"], + "type": 12 + }, + "selector": "0xa0a95494" + }, + { + "args": [], + "docs": [], + "mutates": false, + "name": ["symbol"], + "payable": false, + "returnType": { + "displayName": ["String"], + "type": 12 + }, + "selector": "0x57178a4a" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "docs": [], + "mutates": false, + "name": ["balance_of"], + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 1 + }, + "selector": "0x56e929b2" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "name": "spender", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + } + ], + "docs": [], + "mutates": false, + "name": ["allowance"], + "payable": false, + "returnType": { + "displayName": ["Balance"], + "type": 1 + }, + "selector": "0xf3cfff66" + }, + { + "args": [ + { + "name": "to", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": ["transfer"], + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 13 + }, + "selector": "0xfae3a09d" + }, + { + "args": [ + { + "name": "spender", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": ["approve"], + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 13 + }, + "selector": "0x03d0e114" + }, + { + "args": [ + { + "name": "from", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "name": "to", + "type": { + "displayName": ["AccountId"], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": ["Balance"], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": ["transfer_from"], + "payable": false, + "returnType": { + "displayName": ["bool"], + "type": 13 + }, + "selector": "0xfcfb2ccd" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "total_supply" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 4 + } + }, + "len": 4294967295, + "offset": "0x0300000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0200000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "balances" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0400000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 10 + } + }, + "len": 4294967295, + "offset": "0x0500000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0400000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "allowances" + }, + { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 12 + } + }, + "name": "name" + }, + { + "layout": { + "cell": { + "key": "0x0600000002000000000000000000000000000000000000000000000000000000", + "ty": 12 + } + }, + "name": "symbol" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "u128" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 3 + }, + { + "name": "len", + "type": 3 + }, + { + "name": "len_entries", + "type": 3 + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "Header"] + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [5], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 6 + } + ] + } + }, + "path": ["ink_env", "types", "AccountId"] + }, + { + "def": { + "array": { + "len": 32, + "type": 7 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 3 + }, + { + "name": "prev", + "type": 3 + } + ] + } + }, + "path": ["ink_storage", "collections", "stash", "VacantEntry"] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 1 + }, + { + "name": "key_index", + "type": 3 + } + ] + } + }, + "params": [1], + "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 11 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [11], + "path": ["ink_storage", "collections", "stash", "Entry"] + }, + { + "def": { + "tuple": [5, 5] + } + }, + { + "def": { + "primitive": "str" + } + }, + { + "def": { + "primitive": "bool" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Some" + } + ] + } + }, + "params": [5], + "path": ["Option"] + } + ] +} diff --git a/.api-contract/src/test/contracts/user/v3/ask.json b/.api-contract/src/test/contracts/user/v3/ask.json new file mode 100644 index 00000000..a254f602 --- /dev/null +++ b/.api-contract/src/test/contracts/user/v3/ask.json @@ -0,0 +1,458 @@ +{ + "source": { + "hash": "", + "language": "Ask! 0.4.0", + "compiler": "asc 0.19.23" + }, + "contract": { + "name": "", + "version": "", + "authors": [] + }, + "V3": { + "spec": { + "constructors": [ + { + "args": [ + { + "type": { + "type": 1, + "displayName": ["string"] + }, + "label": "name" + }, + { + "type": { + "type": 1, + "displayName": ["string"] + }, + "label": "symbol" + } + ], + "docs": [], + "label": "default", + "payable": false, + "selector": "0xed4b9d1b" + } + ], + "messages": [ + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "label": "to" + }, + { + "type": { + "type": 4, + "displayName": ["u128"] + }, + "label": "amount" + } + ], + "docs": [], + "label": "mint", + "selector": "0xcfdd9aa2" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "label": "from" + }, + { + "type": { + "type": 4, + "displayName": ["u128"] + }, + "label": "amount" + } + ], + "docs": [], + "label": "burn", + "selector": "0xb1efc17b" + }, + { + "mutates": false, + "payable": false, + "args": [], + "returnType": { + "type": 1, + "displayName": ["string"] + }, + "docs": [], + "label": "name", + "selector": "0x3adaf70d" + }, + { + "mutates": false, + "payable": false, + "args": [], + "returnType": { + "type": 1, + "displayName": ["string"] + }, + "docs": [], + "label": "symbol", + "selector": "0x9bd1933e" + }, + { + "mutates": false, + "payable": false, + "args": [], + "returnType": { + "type": 0, + "displayName": ["u8"] + }, + "docs": [], + "label": "decimal", + "selector": "0xcc3fec6d" + }, + { + "mutates": false, + "payable": false, + "args": [], + "returnType": { + "type": 4, + "displayName": ["u128"] + }, + "docs": [], + "label": "totalSupply", + "selector": "0xcae60595" + }, + { + "mutates": false, + "payable": false, + "args": [ + { + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "label": "account" + } + ], + "returnType": { + "type": 4, + "displayName": ["u128"] + }, + "docs": [], + "label": "balanceOf", + "selector": "0xf48def67" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "label": "recipient" + }, + { + "type": { + "type": 4, + "displayName": ["u128"] + }, + "label": "amount" + } + ], + "returnType": { + "type": 5, + "displayName": ["bool"] + }, + "docs": [], + "label": "transfer", + "selector": "0x84a15da1" + }, + { + "mutates": false, + "payable": false, + "args": [ + { + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "label": "owner" + }, + { + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "label": "spender" + } + ], + "returnType": { + "type": 4, + "displayName": ["u128"] + }, + "docs": [], + "label": "allowance", + "selector": "0x6a00165e" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "label": "spender" + }, + { + "type": { + "type": 4, + "displayName": ["u128"] + }, + "label": "amount" + } + ], + "returnType": { + "type": 5, + "displayName": ["bool"] + }, + "docs": [], + "label": "approve", + "selector": "0x681266a0" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "label": "sender" + }, + { + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "label": "recipient" + }, + { + "type": { + "type": 4, + "displayName": ["u128"] + }, + "label": "amount" + } + ], + "returnType": { + "type": 5, + "displayName": ["bool"] + }, + "docs": [], + "label": "transferFrom", + "selector": "0x02a6e0d5" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "label": "spender" + }, + { + "type": { + "type": 4, + "displayName": ["u128"] + }, + "label": "addedValue" + } + ], + "returnType": { + "type": 5, + "displayName": ["bool"] + }, + "docs": [], + "label": "increaseAllowance", + "selector": "0xcb005356" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "label": "spender" + }, + { + "type": { + "type": 4, + "displayName": ["u128"] + }, + "label": "subtractedValue" + } + ], + "returnType": { + "type": 5, + "displayName": ["bool"] + }, + "docs": [], + "label": "decreaseAllowance", + "selector": "0xe19fabb4" + } + ], + "events": [ + { + "id": 1, + "label": "Transfer", + "args": [ + { + "label": "from", + "indexed": false, + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "docs": [""] + }, + { + "label": "to", + "indexed": false, + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "docs": [""] + }, + { + "label": "value", + "indexed": false, + "type": { + "type": 4, + "displayName": ["u128"] + }, + "docs": [""] + } + ], + "docs": [""] + }, + { + "id": 2, + "label": "Approval", + "args": [ + { + "label": "owner", + "indexed": false, + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "docs": [""] + }, + { + "label": "spender", + "indexed": false, + "type": { + "type": 3, + "displayName": ["AccountId"] + }, + "docs": [""] + }, + { + "label": "value", + "indexed": false, + "type": { + "type": 4, + "displayName": ["u128"] + }, + "docs": [""] + } + ], + "docs": [""] + } + ], + "docs": [""] + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 1, + "type": { + "def": { + "primitive": "str" + } + } + }, + { + "id": 2, + "type": { + "def": { + "array": { + "len": 32, + "type": 0 + } + } + } + }, + { + "id": 3, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "inner", + "type": 2, + "typeName": "FixedArray32" + } + ] + }, + "path": [] + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 5, + "type": { + "def": { + "primitive": "bool" + } + } + } + ] + } +} diff --git a/.api-contract/src/test/contracts/user/v3/index.ts b/.api-contract/src/test/contracts/user/v3/index.ts new file mode 100644 index 00000000..388ac3d8 --- /dev/null +++ b/.api-contract/src/test/contracts/user/v3/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as ask } from './ask.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/user/v4/events.contract.json b/.api-contract/src/test/contracts/user/v4/events.contract.json new file mode 100644 index 00000000..e6f06859 --- /dev/null +++ b/.api-contract/src/test/contracts/user/v4/events.contract.json @@ -0,0 +1,2696 @@ +{ + "source": { + "hash": "0x4165bede6b0abd9016f77561a6ae14ff335af5437ec70efbb653776b18751515", + "language": "ink! 4.1.0", + "compiler": "rustc 1.70.0-nightly", + "wasm": "0x0061736d01000000014f0e60027f7f0060037f7f7f0060017f0060027f7f017f60037f7f7f017f60017f017f60047f7f7f7f017f60037e7e7f0060000060037f7e7e0060047f7f7f7f0060037f7f7e006000017f60027e7f0002f0010c057365616c310b6765745f73746f726167650006057365616c3005696e7075740000057365616c3007616464726573730000057365616c300d6465706f7369745f6576656e74000a057365616c320b7365745f73746f726167650006057365616c310d636c6561725f73746f726167650003057365616c3110636f6e7461696e735f73746f726167650003057365616c300b7365616c5f72657475726e0001057365616c300f686173685f626c616b65325f3235360001057365616c300663616c6c65720000057365616c301176616c75655f7472616e73666572726564000003656e76066d656d6f7279020102100354530400000000010101000000000102030b010100000000050002020000000000050c03030004010101050000000200000000000202020d07070002000000080008000100000100090000090100000001000004000608017f01418080040b071102066465706c6f7900480463616c6c004a0afdb201532b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b6401017f024002400240024041012000280200220241066b200241054d1b41016b0e03010203000b20014100100d200120002d0004100d0f0b20014101100d20002001100e0f0b20014102100d200120002d0004100d0f0b20014103100d20014100100d0b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000b7500024002400240024002400240200028020041016b0e050102030405000b20014100100d200041086a2802002000410c6a280200200110100f0b20014101100d0f0b20014102100d0f0b20014103100d0f0b20014104100d0f0b20014105100d200041086a2802002000410c6a280200200110100bb70101047f230041306b2202240002402000280204220420002802082203490d0020002802002105200241003602082002200420036b22043602042002200320056a2205360200200128020020012802042002101020022001280208410d10112002280208220120022802044b0d0020022002280200200110122002410036022820022004360224200220053602202002200241206a1013200320022802286a22012003490d0020002001360208200241306a24000f0b000b2c01017f230041106b220324002003200136020c2003410c6a200210162002200020011011200341106a24000b4801027f024002402000280208220320026a22042003490d00200420002802044b0d00200420036b2002470d01200028020020036a20012002100b1a200020043602080f0b000b000bb00101077f230041206b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341186a22074200370300200341106a22084200370300200341086a22094200370300200342003703002001200220031008200420072903003700002005200829030037000020062009290300370000200020032903003700000c010b200020012002100b1a0b200341206a24000b0a0020012000412010110bb50101047f230041306b2202240002402000280204220420002802082203490d0020002802002105200241003602082002200420036b22043602042002200320056a220536020020012802002001280204200210102001280208200210132002280208220120022802044b0d0020022002280200200110122002410036022820022004360224200220053602202002200241206a1013200320022802286a22012003490d0020002001360208200241306a24000f0b000b7501037f230041206b220224002002200136020c02402000280204220320002802082201490d0020002802002104200241003602182002200320016b3602142002200120046a3602102002410c6a200241106a10162001200120022802186a22014b0d0020002001360208200241206a24000f0b000b550020002802002200413f4d044020012000410274100d0f0b200041ffff004d044020004102744101722001104d0f0b200041ffffffff034d044020004102744102722001101f0f0b20014103100d20002001101f0bc30101027f230041206b2203240020031018024041012003101945044020004108360204200041063a0000200041086a41013a00000c010b200320014201101a20032802002204410a460440200341186a200241186a290000370300200341106a200241106a290000370300200341086a200241086a29000037030020032002290000370300200020012003101b0c010b200041086a2003290204370200200041106a2003410c6a280200360200200041063a0000200020043602040b200341206a24000b6d01017f230041106b2201240020014180800136020c419083042001410c6a1009200041918304290000370001200041096a41998304290000370000200041116a41a18304290000370000200041186a41a883042900003700002000419083042d00003a0000200141106a24000b5d01017f230041206b220224002002200136020c20022000360208200242808001370214200241908304360210200241086a200241106a10472002280218220020022802144b0440000b200228021020001006200241206a2400417f470b5e02027f017e024002402002500440410d21030c010b411121032002200129032022027c22052002540d00410a21042001290310500d012005200141186a290300220258200250720d010b200020033a0004410621040b200020043602000be00202047f017e230041a0016b2203240002400240200129032042017c220750450440200341033a000020032007370308200341306a2204200241186a290000370300200341286a2205200241106a290000370300200341206a2206200241086a29000037030020032002290000370318200341e0006a2003101e20032d00600d01200341186a2202200341011031200320021022200341003a0038200341f9006a2004290300370000200341f1006a2005290300370000200341e9006a200629030037000020032003290318370061200341013a006020034198016a200341106a29030037030020034190016a200341086a2903003703002003200329030037038801200341386a200341e0006a20034188016a103220002007370308200041033a0000200120073703200c020b20004106360204200041063a0000200041086a41113a00000c010b200041063a0000200041033602040b200341a0016a24000b7d01017f230041306b220324002003200236020420032001360200200341fc8204360224200341f8820436022020032003360228200341086a200341206a101d20032d00084107460440000b20002003290308370300200041106a200341186a290300370300200041086a200341106a290300370300200341306a24000b870201047f230041206b220224002002428080013702042002419083043602002001280200200141046a2802002002105520012802082002105802402002280204220420022802082201490d00200228020021032002200420016b220436020020032001200120036a2203200210002101200420022802002205490d00024002400240410c20012001410c4f1b0e0401030300030b200041063a00000c010b2002200536021c200220033602182002200241186a102820022d00002201410647044020002002290001370001200041106a200241106a290000370000200041096a200241096a290000370000200020013a00000c010b200041073b01000b200241206a24000f0b000bae0201047f230041206b2202240020024280800137020420024190830436020041b48ca0e6012002101f20012002102002402002280204220420022802082201490d00200228020021032002200420016b220436020020032001200120036a2201200210002103200420022802002205490d002000027f02400240410c20032003410c4f1b0e0400030301030b20054120490d02200241086a200141096a290000370300200241106a200141116a290000370300200241176a200141186a290000370000200220012900013703004101210320012d00000c010b4100210341000b3a0001200020033a0000200020022903003700022000410a6a200241086a290300370000200041126a200241106a290300370000200041196a200241176a290000370000200241206a24000f0b000b2601017f230041106b220224002002200036020c20012002410c6a41041011200241106a24000b96010002400240024002400240024020002d000041016b0e050102030405000b20014100100d20002d00012001103a0f0b20014101100d20002f01022001104d0f0b20014102100d20002802042001101f0f0b20014103100d2000290308200110400f0b20014104100d2000290308200041106a290300200110420f0b20014105100d200041086a2802002000410c6a280200200110100b8e0201037f230041106b2201240020014280800137020420014190830436020041ebdcfef1072001101f2000280200200110132000280204200110130240027f2000280208220228020045044020012802082200200128020422024f0d022001280200220320006a41003a0000200041016a0c010b2001280208220020012802044f0d01200128020020006a41013a00002001200041016a360208200228020020011020200128020421022001280200210320012802080b220020024b0d002001200220006b220236020020032000200020036a20011000210020022001280200490d004101210202400240410c20002000410c4f1b0e0401020200020b410021020b200141106a240020020f0b000b910101037f230041106b2202240020024280800137020420024190830436020041b48ca0e6012002101f20002002102002402002280204220420022802082200490d0020022802002103200241003602082002200420006b3602042002200020036a3602002001200210132002280208220120022802044b0d00200320002002280200200110041a200241106a24000f0b000b5101017f230041106b2201240020014280800137020420014190830436020041b48ca0e6012001101f2000200110202001280208220020012802044b0440000b2001280200200010051a200141106a24000bcf0101037f230041106b2201240020014280800137020420014190830436020041ebdcfef1072001101f2000280200200110132000280204200110130240027f2000280208220228020045044020012802082200200128020422024f0d022001280200220320006a41003a0000200041016a0c010b2001280208220020012802044f0d01200128020020006a41013a00002001200041016a360208200228020020011020200128020421022001280200210320012802080b220020024b0d002003200010051a200141106a24000f0b000ba20101037f230041106b22022400200241086a2001102641012103024020022802080d00200128020422044120490d002000200228020c3602042001200441206b36020420012001280200220141206a360200200041086a2001290000370000200041106a200141086a290000370000200041186a200141106a290000370000200041206a200141186a290000370000410021030b20002003360200200241106a24000b4601017f20012802042202410449047f4101052001200241046b36020420012001280200220141046a3602002001280000210241000b210120002002360204200020013602000b9e0101017f230041d0006b22022400200241286a20011028024020022d00284106470440200241406b2001102920022802440440200241206a200241c8006a280200360200200241086a200241306a290300370300200241106a200241386a2903003703002002200229034037031820022002290328370300200020024128100b1a0c020b200041063a00000c010b200041063a00000b200241d0006a24000b8c0502047f037e230041f0006b22022400200241386a200110340240024002400240024002400240024020022d003841017145044020022d00390e06010203040507060b200041063a00000c070b20022001104b20022d000041017145044020022d00012101200041003a0000200020013a00010c070b200041063a00000c060b2001280204220341024f0440200041013a0000200128020022042f000021052001200341026b3602042001200441026a360200200020053b01020c060b200041063a00000c050b200241086a200110262002280208450440200228020c2101200041023a0000200020013602040c050b200041063a00000c040b200241106a210320012802042204410849047e4201052001200441086b36020420012001280200220141086a3602002001290000210642000b210720032006370308200320073703002002290310a745044020022903182106200041033a0000200020063703080c040b200041063a00000c030b200241206a210320012802042204411049047e4201052001200441106b36020420012001280200220141106a360200200141086a29000021062001290000210742000b21082003200737030820032008370300200341106a20063703002002290320a7450440200241306a290300210620022903282107200041043a000020002007370308200041106a20063703000c030b200041063a00000c020b200041063a00000c010b200241d0006a2001102920022802540440200241e8006a200241d8006a2802002201360200200241cc006a2001360000200220022903502206370360200041053a00002002200637004420002002290041370001200041086a200241c8006a2900003700000c010b200041063a00000b200241f0006a24000bfa0201067f230041306b22022400200241186a200110340240024020022d00184101710d00024020022d0019220341037122044103470440024002400240200441016b0e020102000b200341fc017141027621030c030b200220033a0025200241013a002420022001360220200241003b012c200241206a2002412c6a4102105c0d0320022f012c220341ff014d0d03200341027621030c020b200220033a0025200241013a0024200220013602202002410036022c200241206a2002412c6a4104105c0d02200228022c220341808004490d02200341027621030c010b200341044f0d01200241106a2001102620022802100d0120022802142203418080808004490d010b2003200128020422044d0440200241086a20034101103020022802082105200228020c200128020022062003100b21072001200420036b3602042001200320066a3602002000200336020820002007360204200020053602000c020b200041003602040c010b200041003602040b200241306a24000ba70101047f230041106b2201240020014280800137020420014190830436020041b4a5b3d1062001101f20002001101f02402001280204220020012802082202490d00200128020021032001200020026b220436020020032002200220036a2203200110002102200420012802002200490d004100210402400240410c20022002410c4f1b0e0400020201020b20004104490d01200328000021040b200141106a240020040f0b000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a100a2001290300210220002903082103200041206a2400410541042002200384501b0b0b0020002001102d4101730b4601037f027f41202102034041002002450d011a200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b450bd70102047f027e230041206b2202240020022001360208200241848304360204200241f882043602002002428080013702142002419083043602102002200241106a105702402002280214220420022802182201490d00200228021021032002200420016b220436021020032001200120036a2201200241106a10002103200420022802102205490d00027e02400240410c20032003410c4f1b0e0400030301030b20054110490d0220012900002106200141086a2900000c010b42000b21072000200637030020002007370308200241206a24000f0b000b5b01017f230041106b220324002003418483043602082003200136020420032000360200027f4101200310210d001a41002002280200450d001a200320023602082003200136020420032000360200200310210b200341106a24000b900201047f230041106b2205240002402001450440410121020c010b200141004e0440200541086a2106027f2001417f73411f7622032001450d001a41888304280200210202402001200120036a41016b410020036b7122044d04404100200220046a22032002490d021a418c83042802002003490440200441ffff036a22032004490d02200341107640002202417f46200241ffff0371200247720d022002411074220220034180807c716a22032002490d02418c830420033602004100200220046a22032002490d031a0b41888304200336020020020c020b000b41000b21032006200136020420062003360200200528020822020d010b000b2000200236020420002001360200200541106a24000b3101017f230041106b220324002003200036020c2003410c6a2001105d20020440418483042001105d0b200341106a24000b7901017f230041d0016b22032400200341206a20004121100b1a200341c1006a20014121100b1a200341186a200241106a290300370300200341106a200241086a29030037030020032002290300370308200341f0006a200341086a41e000100b1a20034200370368200341e8006a1037200341d0016a24000b4201027f230041106b22012400200141086a2000103420012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000b0f002001200041ff0171410047100d0b7501017f230041306b22022400200241086a2001101e2000027f20022d00084504402000410436020441010c010b20002002290009370001200041196a200241216a290000370000200041116a200241196a290000370000200041096a200241116a29000037000041000b3a0000200241306a24000bdf05020a7f017e230041d0016b22012400200141086a200041e800100b1a20014190830436027020014280800137027402400240024002402001290308500440200141f0006a41011015200141a8016a2200200141f8006a280200360200200120012903703703a001200141a0016a41948004100f20012802a401220220002802002200490d0420012802a00121032001200220006b22023602a4012001200020036a22043602a0010c010b200141f0006a41041015200141a8016a2200200141f8006a280200360200200120012903703703a001200141a0016a220241b08004100f200141c8016a22032000280200360200200120012903a0013703c0012001200141106a2206360288012001411336028401200141bc800436028001200141c0016a20014180016a101420002003280200360200200120012903c0013703a0012001200141306a2207360298012001411136029401200141cf800436029001200220014190016a101420012802a401220220002802002200490d0320012802a0012103200141003602a8012001200220006b22043602a4012001200020036a22083602a00141e080044111200141a0016a22051010200141d0006a22092005103820012802a801220520012802a4014b0d03200141a0016a220a20012802a00120051012200141003602c801200120043602c401200120083602c001200a200141c0016a10132000200020012802c8016a22004b200020024b720d0320012903082001200220006b22023602a4012001200020036a22043602a0014200520d010b2002450d02200441003a0000200141013602a801200141286a200141a0016a22021039200141c9006a20021039200141106a200210200c010b2002450d01200441013a0000200141013602a8012006200141a0016a22021013200720021013200920021038200141e8006a2d00002002103a0b20012802a801220220012802a4014b0d002003200020012802a00120021003200141d0016a24000f0b000b200020002d0000410646044020014100100d0f0b20014101100d2000200110200b210020002d000045044020014100100d0f0b20014101100d200041016a200110130b2601017f230041106b22022400200220003a000f20012002410f6a41011011200241106a24000b9b0101027f230041106b22022400200241808001360204200241908304360200024002402001280200220341074704404190830441003a00002003410646044041022101200241023602084191830441003a00000c030b4191830441013a00002002410236020820012002100e0c010b4190830441013a000020024101360208200210440b2002280208220141818001490d00000b200020011043000b4801017f4190830441003a0000410321020240200141ff017141034604404191830441003a0000410221020c010b4192830420013a00004191830441013a00000b200020021043000b4701017f230041106b220124002001419083043602004190830441003a0000200142808081801037020420002001101f20012802082200418180014f0440000b410020001043000b4701017f230041106b220124002001419083043602004190830441003a0000200142808081801037020420002001103a20012802082200418180014f0440000b410020001043000bf70101047f230041106b2201240020014280800137020420014190830436020041002001101f02402001280204220420012802082202490d0020012802002103200141003602082001200420026b3602042001200220036a36020020002d002820011035200041296a2d00002001103520002d002a2001103a2000412b6a2d00002001103520002d002c200110352000412d6a2d00002001103520002d002e20011035200029032020011040200041106a290300200041186a290300200110412000290300200041086a290300200110422001280208220020012802044b0d00200320022001280200200010041a200141106a24000f0b000b2601017f230041106b22022400200220003703082001200241086a41081011200241106a24000b1b00200050044020024100100d0f0b20024101100d2001200210400b2a01017f230041106b2203240020032001370308200320003703002002200341101011200341106a24000b0d0020004190830420011007000b080020004101100d0b8b0101027f230041206b2202240020022001103441072103024020022d00004101710d00410621030240024020022d00010e020200010b200241086a2001102820022d000822034106460d0020002002290009370001200041106a200241186a290000370000200041096a200241116a2900003700000c010b410721030b200020033a0000200241206a24000b6201017f230041306b220224002002200136022c2002200036022820024280800137020c200241908304360208200241286a200241086a104720022802102200200228020c4b0440000b2002280208200010051a200241086a1018200241306a24000b1c0041f482042001105a20002802002001101f2000280204200110130baf0101027f230041e0006b2200240002400240102b41ff01714105470d0020004180800136023041908304200041306a100120002802302201418180014f0d00200141044f044041908304280200419bddf6f405460d020b410141011049000b000b200041106a4200370300200041086a4200370300200041276a42003700002000420037030020004200370320200041306a220120004130100b1a2001103f4190830441003b0100410041021043000b29002000027f20014504404190830441003a000041010c010b419083044181023b010041020b1043000bc25f02147f0b7e230041e0036b220024000240024002400240024002400240024002400240024002400240027f02400240027f02400240027f024002400240024002400240102b41ff01714105470d002000418080013602c00141908304200041c0016a100120002802c0012207418180014f0d000240024020074104490d002000419483043602c0032000200741046b22023602c403419083042802002208411876210320084110762105200841087621060240024002400240024002400240024002400240024002400240200841ff0171220841ea016b0e0a010d0d0d060d0d020d07000b02400240024002400240024002400240024002400240200841e2006b0e07010e171717170f000b02402008410f6b0e03121705000b0240200841c7006b0e0402171708000b0240200841ee006b0e040a171713000b0240200841cd016b0e03041714000b20084119460d0220084131460d052008413b460d0c2008418301460d06200841c101460d08200841ff0147200641ff017141a2014772200541ff017141fa0047200341df004772720d16410421070c170b200641ff017141840147200541ff017141134772200341fe0147720d15410021070c160b200641ff017141900147200541ff017141f5014772200341da004720024120497272200741246b412049720d14419a830433010021184196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041d483043602c0032000200741c4006b3602c403200041cd8304280000360238200041d0830428000036003b41bc8304290200211441b48304290200211b41cc83042d0000210441c48304290200211a200041c0016a200041c0036a104520002d00c001220d4107460d142018422086842115200041f7006a200041d0016a290000370000200041f0006a200041c9016a290000370300200020002900c101370368200020002802383602e0022000200028003b3600e302201b4208882118201ba72102410121070c150b200641ff0171413247200541ff017141a8014772200341b00147200241204972720d13200041b483043602c0032000200741246b3602c403419a830433010021144196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041c0016a200041c0036a104520002d00c0014107460d1320002802c403450d13200020002802c003220241016a3602c0034102210720022d0000220441024f0d13201442208684211520002903c001221b4208882118200041c8016a290300211420002903d001211a201ba721020c140b200641ff017122064103460d11200641e70147200541ff017141e5014772200341df0047200241204972720d12419b8304290000221442108821152014420888a7210341b38304310000211941a38304290000211641ab83042900002117419783042800002101419583042f00002109419483042d0000210b2014a72105410321070c130b200641ff017141e80047200541ff017141e2004772200341cd0047720d11200041c0016a200041c0036a102820002d00c00122054106460d1120003501c20120003301c60142208684211520002903d001211720002903c801211620002d00c1012103410521070c120b200641ff0171412847200541ff017141d60147722003411b47200241204972720d10200041b483043602c0032000200741246b3602c403419a830433010021184196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041c0016a200041c0036a102820002d00c00122024106460d1020003100c701211b20003300c501211c20003500c101211d20002903d001211a20002903c8012114200041386a200041c0036a1029200028023c450d102018422086842115201d201c201b42108684422086842118200041ea006a200041c3006a2d00003a0000200020002800393602e0022000200028003c3600e302200020002f00413b016820002d0038210420002d0040210d410621070c110b200641ff017141da0147200541ff0171413b4772200341b20147200241044972720d0f2000419883043602c0032000200741086b3602c403419483042802002101410721070c100b200641ff017141c00147200541ff017141e2004772200341fd0147720d0e200041c0016a200041c0036a102520002802c0010d0e41082107200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a721050c0f0b200641ff017141d90147200541ff017141ac0147722003411847720d0d200041c0016a200041c0036a102520002802c0010d0d200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a72105410921070c0e0b200641ff017141cf0047200541ff017141094772200341910147720d0c200041c0016a200041c0036a102520002802c0010d0c200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a72105410a21070c0d0b200641ff017141f10147200541ff0171412447722003418a0147720d0b200041c0016a200041c0036a102520002802c0010d0b200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a72105410b21070c0c0b200641ff0171419d0147200541ff017141c8004772200341d10147720d0a200041c0016a200041c0036a102720002d00c00122054106460d0a20002903e0012214420888211820003501c20120003301c60142208684211520002903d801211920002903d001211720002903c801211620002d00c10121032014a72102410c21070c0b0b200641ff017141cf0147200541ff017141b5014772200341114720024120497272200741246b411049720d09419c8304290200211641948304290200211441ac8304290200211941a483042902002117200041c483043602c0032000200741346b3602c4032014421088211541b48304290200221a42088821182014420888a721032014a7210541bc83042902002114201aa72102410e21070c0a0b200641ff017141c90147200541ff01714187014772200341fa0047200241204972720d08200041b483043602c0032000200741246b3602c403419a830433010021144196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041c0016a200041c0036a102820002d00c00122024106460d08201442208684211520003500c10120003300c50120003100c7014210868442208684211820002903d001211a20002903c8012114410f21070c090b200641ff017141930147200541ff017141d90147720d072003411b460d050c070b200641ff017141e40147200541ff017141c8004772200341dc014720024120497272200741246b410849720d06419c8304290200211641948304290200211441ac8304290200211941a483042902002117200041bc83043602c00320002007412c6b3602c4032014421088211541b48304290200221a42088821182014420888a721032014a72105201aa72102411121070c070b200641ff0171418e0147200541ff017141354772200341bf0147720d05411221070c060b200641ff0171418c0147200541ff017141d0004772200341890147200241204972720d04200041b483043602c0032000200741246b3602c403419b8304290000221442108821152014420888a7210341b38304310000211941a38304290000211641ab83042900002117419783042800002101419583042f00002109419483042d0000210b2014a72105411321070c050b200641ff0171413647200541ff0171411447722003410d47200241084972720d032000419c83043602c00320002007410c6b3602c40341948304290200221642108821152016420888a721032016a72105411421070c040b200641ff017141dd0147200541ff0171419a014772200341a20147720d02411521070c030b200041c0016a200041c0036a102720002d00c00122054106460d0120002903e0012214420888211820003501c20120003301c60142208684211520002903d801211920002903d001211720002903c801211620002d00c10121032014a72102411021070c020b200541ff017141c00047200341d00147722002411049720d00200041a483043602c00341948304290200221742108821152017420888a72103419c830429020021162017a72105410d21070c010b410141011049000b200041206a200041f0006a290300370300200041276a200041f7006a290000370000200020002800e302360033200020002802e002360230200020002903683703182000428080013702c4012000419083043602c0014100200041c0016a101f20002802c401220a20002802c8012206490d0020002802c00121082000200a20066b220a3602c00120082006200620086a2208200041c0016a10002106200a20002802c001220c49410c20062006410c4f1b720d002000200c3602c401200020083602c001200041c0016a103341ff0171220f4102460d00200041c0016a103341ff017122064102460d00200041106a200041c0016a104b20002d00104101710d0020002d0011210c200041c0016a103341ff017122104102460d00200041c0016a103341ff017122114102460d00200041c0016a103341ff017122124102460d00200041c0016a103341ff017122134102460d0020002802c40122084108490d00200020002802c001220a41086a3602c00120084108460d00200a290000211d200020002802c001220e41016a3602c001200841096b210a4200211b02400240200e2d00000e020100020b200a4108490d01200020002802c001220e41086a3602c001200841116b210a200e290000211c4201211b0b200a4110490d002002ad42ff018320184208868421182005ad42ff01832003ad42ff01834208862015421086848421154108210320002802c0012205290000211e2000200541086a2900003703402000201e370338200020133a0066200020124101713a0065200020113a00642000201041017122053a00632000200c3a0062200020064101713a00612000200f3a00602000201d3703582000201c3703502000201b370348024002400240024002400240024002400240024002400240024002400240024002400240200741016b0e1500010214030405060708090a0b0c0d0e0f1f201021130b200041e8016a2014370300200041fc016a200028003336000020004189026a200041206a29030037000020004190026a200041276a290000370000200020183703e001200020163703c801200020153703c001200020043a00f8012000201a3703f001200020193703d801200020173703d001200020002802303600f9012000200d3a0080022000200029031837008102230041c0016b22012400200141086a200041c0016a220241d800100b1a200141f0006a200141d8006a290300370300200141e8006a200141d0006a2903003703002001200129034837036020014190016a200241186a29000037030020014188016a200241106a29000037030020014180016a200241086a29000037030020012002290000370378200141b0016a200141406b290300370300200141a8016a200141386a290300370300200141a0016a200141306a29030037030020012001290328370398012001200141e0006a410020012d00604106471b3602bc01200141f8006a20014198016a200141bc016a102f200141c0016a2400103e000b200020143703c802200020183703c0022000201a3703d002200020163703e802200020153703e002200020193703f802200020173703f002200041c0036a1018027f027f0240200241ff01714106470440200041c0016a200041c0026a101e20002d00c001450d0120004186036a220320002d00c30122013a0000200041a0036a2205200041d0016a2802002206360200200041a6036a20013a000020004190036a2006360200200020002f00c10122013b0184032000200041c8016a2903002214370398032000200041d4016a2902003703a8022000200041d9016a2900003700ad02200020013b01a403200020143703880320002802c4012101200020002900ad023700ad03200020002903a8023703a803200020032d00003a006a200020002f0184033b01682000200136006b200041f7006a2005280200360000200020002903980337006f20004180016a20002900ad02370000200020002903a80237007b200404404101200041e8006a200041e0026a102d0d031a0b200041e8006a200041c0036a102c04404102200041e8006a200041c0036a41848304102f450d031a0b200041d8036a20002900ad03370000200041cf036a20004190036a280200360000200020002f01a4033b01c003200020013600c30320002000290388033700c703200020002903a8033700d3032000200041a6036a2d00003a00c2030b024020044504402000200041c0026a4100200241ff01714106471b3602682000200041e8006a3602c8012000200041e0026a3602c4012000200041c0036a3602c001200041c0016a10240c010b2000428080013702c4012000419083043602c00141ebdcfef107200041c0016a2201101f200041c0036a20011013200041e0026a20011013027f200241ff01712202410646044020002802c801220120002802c40122064f0d1620002802c001220320016a41003a0000200141016a0c010b20002802c801220120002802c4014f0d1520002802c00120016a41013a00002000200141016a3602c801200041c0026a410020024106471b200041c0016a102020002802c401210620002802c001210320002802c8010b220120064b0d1420032001200120036a410010041a0b20004180016a200041d8036a290300370300200041f8006a200041d0036a290300370300200041f0006a200041c8036a29030037030020004190016a200041e8026a29030037030020004198016a200041f0026a290300370300200041a0016a200041f8026a290300370300200041b0016a200041c8026a290300370300200041b8016a200041d0026a290300370300200020002903c003370368200020002903e00237038801200020002903c0023703a801200041c8016a200041e8006a41d800100b1a200041a0026a20043a0000200042013703c001200041c0016a220110372001200041386a4130100b1a2001103f4106210241000c020b41040b210241010b2106200041cc016a200041f0006a280200360200200020002902683702c4010c250b200041cf016a2016370000200020153700c701200020193c00df01200020173700d701200020013600c301200020093b00c1012000200b3a00c001230041406a22012400200141306a200041c0016a220241186a290000370300200141286a200241106a290000370300200141206a200241086a290000370300200120022900003703182001200141186a36023c200141086a2001413c6a102e2001280208200141406b2400103d000b200020163703c801200020153703c001200020173703d001230041206b22022400200241106a200041c0016a220141086a290300370300200241186a200141106a2903003703002002200041386a36020020022001290300370308200041e8006a2204200241086a101e200241206a2400200141017220044121100b1a200041003a00c001230041106b22022400200241808001360204200241908304360200024020012d00004504404190830441003a000020024101360208200141016a200210390c010b4190830441013a000020024101360208200210440b20022802082201418180014f0440000b0c260b200020143703b002200020183703a8022000201a3703b802200020163703c802200020153703c002200020193703d802200020173703d002200041c0016a200041a8026a103620002d00c0010d1120004186036a220120002d00c30122023a0000200041c8036a2204200041d0016a2802002203360200200041a6036a220520023a0000200041a0036a22062003360200200020002f00c10122023b0184032000200041c8016a29030022143703c0032000200041d4016a2902003703682000200041d9016a220329000037006d200020023b01a403200020143703980320002802c40121022000200029006d37008d032000200029036837038803200020012d00003a00e202200020002f0184033b01e002200020023600e302200041ef026a2004280200360000200020002903c0033700e702200041f8026a200029006d370000200020002903683700f302200041c0036a22011018200041e0026a2001102c450d102000200041a8026a3602c001200041e0026a200041c0036a200041c0016a102f0d104102210241010c130b2001102a103d000b20002016370370200020153703682000201937038001200020173703782001102a2102200041c0016a2204101841012103027f4101200220041019450d001a41022001200041e8006a10190d001a200020013602c0032000200041e8006a3602c4032000428080013702c4012000419083043602c001200041c0036a200041c0016a104720002802c801220120002802c4014b0d0c4100210320002802c00122022001200120026a410010041a200041c0016a220110182001200041386a4130100b1a2001103f41030b210120032001103c000b200041cc016a2016370200200020153702c401200020193702dc01200020173702d401200020013602c001230041206b22012400200041c0016a2202280200200141186a2002411c6a290000370300200141106a200241146a290000370300200141086a2002410c6a2900003703002001200229000437030020011019200141206a2400103e000b2001102a200041c0016a22031018410121024101210620031019450d1d200020163703c801200020153703c001200020193703d801200020173703d0012001200041c0016a10190d100c1d0b2000201637037020002015370368200020193703800120002017370378200041c0016a22041018410021022004200041e8006a102c450440200041d8016a220420004180016a2203290300370300200041d0016a2205200041f8006a2206290300370300200041c8016a2207200041f0006a2208290300370300200020002903683703c001410121022001200041c0016a10190d110b41010c110b200020163703c801200020153703c001200020183703e001200020193703d801200020173703d001200041e8006a210341002106230041306b22042400200041c0016a22012802202105200128021c200441106a200141106a290300370300200441086a200141086a290300370300200420012903003703002004428080013702242004419083043602204182c7b4d979200441206a2202101f200420021020200520021010024002402004280224220220042802282205490d00200428022021072004200220056b220236022020072005200520076a2208200441206a10002105200220042802202209490d004100210702400240410c20052005410c4f1b0e0400020201020b2004200936021c20042008360218200441206a200441186a102920042802242207450d0120042802282102200428022021060b200320023602082003200736020420032006360200200441306a24000c010b000b200041cc016a200041f0006a280200360200200020002903683702c401200041003602c001230041106b22022400200241808001360204200241908304360200024041918304027f20012802004504404190830441003a00004100200141086a2802002204450d011a4191830441013a00002002410236020802402001410c6a2802002201413f4d04404192830420014102743a0000200241033602080c010b200141ffff004d0440200220014102744101723b010e20022002410e6a410210110c010b200141ffffffff034d044020014102744102722002101f0c010b4192830441033a00002002410336020820012002101f0b20022004200110112002280208220141818001490d02000b4190830441013a000041010b3a000041022101200241023602080b0c1f0b2000201637037020002015370368200041c0016a41848304200041e8006a101c20002d00c00122024106462201047f410405200041e2026a20002d00c3013a0000200041c8036a200041d0016a280200360200200020002f00c1013b01e002200020002903c8013703c00320002802d401210520002802c4010b2104200041d0016a200041c8036a280200360200200020002f01e0023b00c1012000200041e2026a2d00003a00c301200020043602c401200020002903c0033703c8010c1c0b200020163703c801200020153703c001200020193703d801200020173703d001200020143703c803200020183703c0032000200041c0016a3602c002200041e8006a200041c0026a200041c0036a101c20002d006822024106462201047f410405200041aa036a20002d006b3a0000200041e8026a200041f8006a280200360200200020002f00693b01a803200020002903703703e002200028027c2105200028026c0b2104200041d0016a200041e8026a280200360200200020002f01a8033b00c1012000200041aa036a2d00003a00c301200020043602c401200020002903e0023703c8010c1b0b200020143703c802200020183703c0022000201a3703d002200020163703c803200020153703c003200020193703d803200020173703d003200041c0016a200041c0026a103620002d00c0010d0e200041c0026a22011023200041c0036a20014101104c20004181016a200041d8036a290300370000200041f9006a200041d0036a290300370000200041f1006a200041c8036a290300370000200020002903c003370069200041013a0068200041003a00c001200041f0026a200041d0026a290300370300200041e8026a200041c8026a290300370300200020002903c0023703e002200041e8006a200041c0016a200041e0026a10320c0f0b200041c0016a2201101820004101200110192204047f200041d0016a2016370300200041d8016a2017370300200020153703c8012000418080043602c00120004280800137026c200041908304360268419cefe1ea05200041e8006a2201101f200041c8016a20011020200028026c220320002802702201490d0420002802682102200041003602702000200320016b36026c2000200120026a3602682019422088a72018a7200041e8006a101020002802702203200028026c4b0d04200220012000280268200310041a200041c0016a2201200041386a4130100b1a2001103f410a0541080b3602c001200041013a00c4012004410173230041106b2201240020014180800136020420014190830436020002400240200041c0016a22022802002203410b4704404190830441003a00002003410a46044041022102200141023602084191830441003a00000c030b4191830441013a00002001410236020820022001100c0c010b4190830441013a000020014101360208200110440b2001280208220241818001490d00000b20021043000b200041c0016a22011018410121024200211a4201211441062106410120011019450d15200c4101460440410921030c160b200041013a00622000428080013702c4012000419083043602c0014100200041c0016a101f20002802c401220420002802c8012201490d0220002802c0012102200041003602c8012000200420016b3602c4012000200120026a3602c0014101200041c0016a2204103a20052004103520002802c801220420002802c4014b0d022002200120002802c001200410041a200041c0016a200041386a2018101a20002802c0012203410a460440201d42017c2214500d03201420187c221c2014540d032014201c5404400340200020163703c801200020153703c001200020193703d801200020173703d001200041e8006a200041386a200041c0016a101b20002d00684106460d04201842017d221850450d000b0b201c500d0341002102200041003a0062200041c0016a2201200041386a4130100b1a201442807e83211a201c42017d21162001103f410321060c160b20002802cc01210220002902c40121140c140b200041033a006820002015370370200041c0016a200041e8006a101e4101210420002d00c001450440410421070c130b200041d0016a2015370300200041033a00c8012000418080043602c00120004280800137026c200041908304360268419cefe1ea05200041e8006a2201101f200041c8016a20011020200028026c220320002802702201490d01200028026821022000200320016b220636026820022001200120026a2205200041e8006a10002101200620002802682202490d010240410c20012001410c4f1b0e0400020212020b200020023602c403200020053602c003200041e8006a200041c0036a1029200028026c2206450d01410021042000280268024020002802702205450440410021050c010b200541076b22014100200120054d1b210a200641036a417c7120066b220d417f46210c41002102034002400240200220066a2d00002208411874411875220b41004e0440200c200d20026b410371720d0102402002200a4f0d000340200220066a220141046a280200200128020072418081828478710d012002200241086a22024b0d082002200a490d000b0b41002104200220054f0d0420022005200220054b1b21010340200220066a2c00004100480d032001200241016a2202470d000b0c040b4106210741012104411021010240024002400240200841f180046a2d000041026b0e030002011a0b200241016a220220054f0d19200220066a2c000041bf7f4c0d020c190b200241016a220920054f0d18200620096a2c000021090240024002400240200841f0016b0e050100000002000b200b410f6a41ff017141024b0d1b20094140480d020c1b0b200941f0006a41ff01714130490d010c1a0b2009418f7f4a0d190b200241026a220820054f0d18200620086a2c000041bf7f4a0d18200241036a220220054f0d18200220066a2c000041bf7f4c0d010c180b200241016a220920054f0d17200620096a2c00002109024002400240200841e001470440200841ed01460d01200b411f6a41ff0171410c490d02200b417e71416e470d1b20094140480d030c1b0b200941607141a07f460d020c1a0b200941a07f480d010c190b200941bf7f4a0d180b200241026a220220054f0d17200220066a2c000041bf7f4a0d170b200241016a21020c010b200241016a21020b20022005490d000b410021040b2101410a21070c120b2000280278210220002903702114200028026c21030c120b000b230041106b22012400200141848304102e200129030021142000200141086a29030037030820002014370300200141106a24002000290300200041086a290300230041106b220124002001419083043602004190830441003a00002001428080818010370204200110420c150b230041306b2201240020014180800136022c419083042001412c6a1002200141106a220441998304290000370300200141186a220341a183042900003703002001411f6a220541a88304290000370000200141918304290000370308419083042d000021062001412041001030200128020021072001280204220220063a000020022001290308370001200241096a2004290300370000200241116a2003290300370000200241186a2005290000370000200041e8006a2204410c6a4120360200200441086a200236020020042007360204200441053a0000200141306a2400200041d0016a200041f8006a290300370300200041c8016a200041f0006a290300370300200020002903683703c001230041106b220124002001418080013602042001419083043602000240200041c0016a22022d00004106470440200141013602084190830441003a00002002200110200c010b4190830441013a000020014101360208200110440b0c140b2000200041e8006a22043602c8012000200041c0036a3602c4012000200041e0026a22073602c0012000200041a8026a2201360268200041c0016a22081024200720014100104c20011023200041c0026a2207200141001031200120071022200041f0006a200029039803370300200041f8006a2006280200360200200041fc006a20002903880337020020004181016a200029008d03370000200020052d00003a006b200020002f01a4033b00692000200236026c200041013a00682003200041d8026a290300370000200041d1016a200041d0026a290300370000200041c9016a200041c8026a290300370000200020002903c0023700c101200041013a00c001200041b8036a200041b8026a290300370300200041b0036a200041b0026a290300370300200020002903a8023703a80320042008200041a8036a10320c010b200041b0036a200041d0016a2802003602002000200041c8016a2903003703a803410120002802c40122024106470d011a0b200041c0016a2201200041386a4130100b1a2001103f4106210241000b2106200041cc016a200041b0036a280200360200200020002903a8033702c4010c0e0b200020153703c001200020193703d801200020173703d001200020163703c8012001200041c0016a220110462001200041386a4130100b1a2001103f41032106410021020c0c0b200420032903003703002005200629030037030020072008290300370300200020002903683703c0012001200041c0016a220110462001200041386a4130100b1a2001103f4103210241000b2002103c000b200041f0006a200041d0016a2802003602002000200041c8016a290300370368410120002802c40122064106470d011a0b200041c0016a2201200041386a4130100b1a2001103f4106210641000b200041cc016a200041f0006a280200360200200020002903683702c401200020063602c001200041c0016a103b000b230041106b220124002001419083043602004190830441003a00002001428080818010370204201b201c200110410c090b200041cf016a2016370000200020153700c701200020193c00df01200020173700d701200020013600c301200020093b00c1012000200b3a00c001200041e8006a200041386a200041c0016a101720002d00684106462201450440200041c0016a2202200041386a4130100b1a2002103f0b200041d0016a200041f8006a290300370300200041c8016a200041f0006a290300370300200020002903683703c001230041106b220224002002418080013602042002419083043602000240200041c0016a22042d0000220341074704404190830441003a000020034106470440200241023602084191830441003a00002004200210200c020b4191830441013a000020024102360208200441046a2002100c0c010b4190830441013a000020024101360208200210440b0c0a0b230041406a22012400200141206a22021018200141086a200041386a22042002101720012d00084106460440000b200141406b2400200041c0016a220120044130100b1a2001103f410041001049000b41062107411021010b200020053602cc01200020063602c801200020013602c401200020073602c001230041106b220124002001418080013602042001419083043602000240200041c0016a22022802002203410b4704404190830441003a00002003410a460440200141023602084191830441003a0000200241086a2802002002410c6a280200200110100c020b4191830441013a00002001410236020820022001100c0c010b4190830441013a000020014101360208200110440b20012802082201418180014f0440000b200420011043000b200041003a0062201442807e83211a2002ad2117410121020b200020163703e001200041033a00d801200020173703d001200020033602c401200020063a00c0012000201a201442ff0183843703c801230041106b220124002001418080013602042001419083043602000240200041c0016a22042d0000220341074704404190830441003a000020034106470440200141023602084191830441003a0000200420011020200441186a200110200c020b4191830441013a000020014102360208200441046a2001100c0c010b4190830441013a000020014101360208200110440b20012802082201418180014f0440000b200220011043000b20022006103c000b200020023602c0012006200041c0016a103b000b200020053602d401200020023a00c001230041106b220224002002418080013602042002419083043602000240200041c0016a22042d0000220341074704404190830441003a000020034106470440200241023602084191830441003a00002004200210200c020b4191830441013a000020024102360208200441046a2002100e0c010b4190830441013a000020024101360208200210440b0c020b20012802082201418180014f0440000b0b410020011043000b20022802082202418180014f0440000b200120021043000b3801017f230041106b22022400200241086a2001103420022d00092101200020022d00084101713a0000200020013a0001200241106a24000b3101017f230041106b220324002003200036020c2003410c6a2001104e20020440418483042001104e0b200341106a24000b2601017f230041106b22022400200220003b010e20012002410e6a41021011200241106a24000bc30502067f057e23004190016b22022400200241106a20002001104f02402002290310a74101460440200241206a290300210920022002290318220b3703282002200937033020022000102e20022903002208200241086a290300220c84500d012002200842017d220a3703382002200c2008200a56ad7c42017d2208370340200a200b8520082009858450450440200220003602602002200241386a360264200241fc820436028401200241f88204360280012002200241e0006a36028801200241e8006a20024180016a101d20022d006822034107460d02200241d7006a2204200241f8006a2205290000370000200241d0006a2206200241f1006a22072900003703002002200229006937034820034106460d02200520042900003700002007200629030037000020022002290348370069200220033a006820022000360280012002200241286a36028401200241fc820436024c200241f88204360248200220024180016a2203360250200241c8006a2204200241e8006a220510502002200036028001200220053602840120024180830436024c200241f882043602482002200336025020042002290328200241306a29030010510b20022000360280012002200241386a36028401200241fc820436024c200241f88204360248200220024180016a36025020024280800137026c200241908304360268200241c8006a200241e8006a105220022802702203200228026c4b0d012002280268200310051a2002200136028401200220003602800120024180830436024c200241f88204360248200220024180016a36025020024280800137026c200241908304360268200241c8006a200241e8006a105320022802702201200228026c4b0d012002280268200110051a2002200036027020024184830436026c200241f88204360268200241e8006a2002290338200241406b29030010540b20024190016a24000f0b000be40102037f037e230041206b220324002003200236020c2003200136020820034280800137021420034190830436021041f8820441808304200341106a22011055200341086a2001105602402003280214220420032802182201490d00200328021021022003200420016b220436021020022001200120026a2201200341106a10002102200420032802102205490d0002400240410c20022002410c4f1b0e0400020201020b20054110490d01200141086a290000210720012900002108420121060b2000200837030820002006370300200041106a2007370300200341206a24000f0b000b870101037f230041106b2202240020024280800137020420024190830436020020002002105202402002280204220420022802082200490d0020022802002103200241003602082002200420006b3602042002200020036a3602002001200210202002280208220120022802044b0d00200320002002280200200110041a200241106a24000f0b000b890101037f230041106b2203240020034280800137020420034190830436020020002003105302402003280204220420032802082200490d0020032802002105200341003602082003200420006b3602042003200020056a36020020012002200310422003280208220420032802044b0d00200520002003280200200410041a200341106a24000f0b000b1c002000280200200041046a280200200110592000280208200110580b1c002000280200200041046a280200200110592000280208200110560b890101037f230041106b2203240020034280800137020420034190830436020020002003105702402003280204220420032802082200490d0020032802002105200341003602082003200420006b3602042003200020056a36020020012002200310422003280208220420032802044b0d00200520002003280200200410041a200341106a24000f0b000b2f01017f230041106b2203240020002002105a2003200128020036020c20022003410c6a41041011200341106a24000b140020002802002001105b2000280204200110200b1c002000280200200041046a2802002001105920002802082001105b0b210020002802002001105b20002802042200290300200041086a290300200110420b0e0020002002105a20012002105a0b0b0020002802002001101f0b2100200028020045044020014100100d0f0b20014101100d2000280200200110130b8f0101017f20002d00042103200041003a0004027f0240200345044041012000280200220028020422032002490d021a2001200028020022012002100b1a0c010b2001200041056a2d00003a00004101200028020022002802042203200241016b2202490d011a200141016a200028020022012002100b1a0b2000200320026b3602042000200120026a36020041000b0b950202037f047e230041d0006b22022400200241106a20002001104f024002402002290310a745044020022000102e2002290300220542017c22072005542203200241086a29030022062003ad7c220820065420052007581b0d022002200036023020024184830436022c200241f88204360228200241286a2007200810540c010b200241206a2903002106200229031821050b20022005370328200220063703302002200136023c20022000360238200241808304360244200241f882043602402002200241386a2203360248200241406b2204200520061051200220003602382002200241286a36023c200241fc8204360244200241f8820436024020022003360248200420011050200241d0006a24000f0b000b0bc8020300418080040bf1019c77585d4b65793a3a5472616e736665720000008801010000000000040001004b65793a3a417070726f76616c0000008801010000000000200001004b65793a3a417070726f76616c3a3a66726f6d4b65793a3a417070726f76616c3a3a746f4b65793a3a417070726f76616c3a3a696401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041b382040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041f482040b0d75b15d5d40a232ca0200000001", + "build_info": { + "build_mode": "Release", + "cargo_contract_version": "2.1.0", + "rust_toolchain": "nightly-x86_64-unknown-linux-gnu", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "collection_demo", + "version": "0.1.0", + "authors": ["[your_name] <[your_email]>"] + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": ["Instantiate new RMRK contract"], + "label": "new", + "payable": false, + "returnType": { + "displayName": ["ink_primitives", "ConstructorResult"], + "type": 9 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": false, + "label": "from", + "type": { + "displayName": ["Option"], + "type": 15 + } + }, + { + "docs": [], + "indexed": false, + "label": "to", + "type": { + "displayName": ["Option"], + "type": 15 + } + }, + { + "docs": [], + "indexed": false, + "label": "id", + "type": { + "displayName": ["Id"], + "type": 13 + } + } + ], + "docs": [], + "label": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": ["AccountId"], + "type": 0 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": ["AccountId"], + "type": 0 + } + }, + { + "docs": [], + "indexed": true, + "label": "id", + "type": { + "displayName": ["Option"], + "type": 17 + } + }, + { + "docs": [], + "indexed": false, + "label": "approved", + "type": { + "displayName": ["bool"], + "type": 19 + } + } + ], + "docs": [" Event emitted when a token approve occurs."], + "label": "Approval" + } + ], + "lang_error": { + "displayName": ["ink", "LangError"], + "type": 10 + }, + "messages": [ + { + "args": [], + "docs": [], + "label": "mint", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 9 + }, + "selector": "0xcfdd9aa2" + }, + { + "args": [], + "docs": [" Returns current NFT total supply."], + "label": "PSP34::total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 11 + }, + "selector": "0x628413fe" + }, + { + "args": [], + "docs": [ + " Returns the collection `Id` of the NFT token.", + "", + " This can represents the relationship between tokens/contracts/pallets." + ], + "label": "PSP34::collection_id", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 12 + }, + "selector": "0xffa27a5f" + }, + { + "args": [ + { + "label": "id", + "type": { + "displayName": ["psp34_external", "OwnerOfInput1"], + "type": 13 + } + } + ], + "docs": [" Returns the owner of the token if any."], + "label": "PSP34::owner_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 14 + }, + "selector": "0x1168624d" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["psp34_external", "BalanceOfInput1"], + "type": 0 + } + } + ], + "docs": [ + " Returns the balance of the owner.", + "", + " This represents the amount of unique tokens the owner has." + ], + "label": "PSP34::balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 16 + }, + "selector": "0xcde7e55f" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["psp34_external", "AllowanceInput1"], + "type": 0 + } + }, + { + "label": "operator", + "type": { + "displayName": ["psp34_external", "AllowanceInput2"], + "type": 0 + } + }, + { + "label": "id", + "type": { + "displayName": ["psp34_external", "AllowanceInput3"], + "type": 17 + } + } + ], + "docs": [ + " Returns `true` if the operator is approved by the owner to withdraw `id` token.", + " If `id` is `None`, returns `true` if the operator is approved to withdraw all owner's tokens." + ], + "label": "PSP34::allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 18 + }, + "selector": "0x4790f55a" + }, + { + "args": [ + { + "label": "operator", + "type": { + "displayName": ["psp34_external", "ApproveInput1"], + "type": 0 + } + }, + { + "label": "id", + "type": { + "displayName": ["psp34_external", "ApproveInput2"], + "type": 17 + } + }, + { + "label": "approved", + "type": { + "displayName": ["psp34_external", "ApproveInput3"], + "type": 19 + } + } + ], + "docs": [ + " Approves `operator` to withdraw the `id` token from the caller's account.", + " If `id` is `None` approves or disapproves the operator for all tokens of the caller.", + "", + " On success a `Approval` event is emitted.", + "", + " # Errors", + "", + " Returns `SelfApprove` error if it is self approve.", + "", + " Returns `NotApproved` error if caller is not owner of `id`." + ], + "label": "PSP34::approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 20 + }, + "selector": "0x1932a8b0" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": ["psp34_external", "TransferInput1"], + "type": 0 + } + }, + { + "label": "id", + "type": { + "displayName": ["psp34_external", "TransferInput2"], + "type": 13 + } + }, + { + "label": "data", + "type": { + "displayName": ["psp34_external", "TransferInput3"], + "type": 8 + } + } + ], + "docs": [ + " Transfer approved or owned token from caller.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `TokenNotExists` error if `id` does not exist.", + "", + " Returns `NotApproved` error if `from` doesn't have allowance for transferring.", + "", + " Returns `SafeTransferCheckFailed` error if `to` doesn't accept transfer." + ], + "label": "PSP34::transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 20 + }, + "selector": "0x3128d61b" + }, + { + "args": [ + { + "label": "role", + "type": { + "displayName": ["accesscontrol_external", "GetRoleAdminInput1"], + "type": 5 + } + } + ], + "docs": [ + " Returns the admin role that controls `role`. See `grant_role` and `revoke_role`." + ], + "label": "AccessControl::get_role_admin", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 16 + }, + "selector": "0x83da3bb2" + }, + { + "args": [ + { + "label": "role", + "type": { + "displayName": ["accesscontrol_external", "RevokeRoleInput1"], + "type": 5 + } + }, + { + "label": "account", + "type": { + "displayName": ["accesscontrol_external", "RevokeRoleInput2"], + "type": 0 + } + } + ], + "docs": [ + " Revokes `role` from `account`.", + "", + " On success a `RoleRevoked` event is emitted.", + "", + " # Errors", + "", + " Returns with `MissingRole` error if caller can't grant the `role` or if `account` doesn't have `role`." + ], + "label": "AccessControl::revoke_role", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 23 + }, + "selector": "0x6e4f0991" + }, + { + "args": [ + { + "label": "role", + "type": { + "displayName": ["accesscontrol_external", "GrantRoleInput1"], + "type": 5 + } + }, + { + "label": "account", + "type": { + "displayName": ["accesscontrol_external", "GrantRoleInput2"], + "type": 0 + } + } + ], + "docs": [ + " Grants `role` to `account`.", + "", + " On success a `RoleGranted` event is emitted.", + "", + " # Errors", + "", + " Returns with `MissingRole` error if caller can't grant the role.", + " Returns with `RoleRedundant` error `account` has `role`." + ], + "label": "AccessControl::grant_role", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 23 + }, + "selector": "0x4ac062fd" + }, + { + "args": [ + { + "label": "role", + "type": { + "displayName": ["accesscontrol_external", "HasRoleInput1"], + "type": 5 + } + }, + { + "label": "address", + "type": { + "displayName": ["accesscontrol_external", "HasRoleInput2"], + "type": 0 + } + } + ], + "docs": [" Returns `true` if `account` has been granted `role`."], + "label": "AccessControl::has_role", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 18 + }, + "selector": "0xc1d9ac18" + }, + { + "args": [ + { + "label": "role", + "type": { + "displayName": ["accesscontrol_external", "RenounceRoleInput1"], + "type": 5 + } + }, + { + "label": "account", + "type": { + "displayName": ["accesscontrol_external", "RenounceRoleInput2"], + "type": 0 + } + } + ], + "docs": [ + " Revokes `role` from the calling account.", + " Roles are often managed via `grant_role` and `revoke_role`: this function's", + " purpose is to provide a mechanism for accounts to lose their privileges", + " if they are compromised (such as when a trusted device is misplaced).", + "", + " On success a `RoleRevoked` event is emitted.", + "", + " # Errors", + "", + " Returns with `InvalidCaller` error if caller is not `account`.", + " Returns with `MissingRole` error if `account` doesn't have `role`." + ], + "label": "AccessControl::renounce_role", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 23 + }, + "selector": "0xeaf1248a" + }, + { + "args": [ + { + "label": "id", + "type": { + "displayName": ["psp34metadata_external", "GetAttributeInput1"], + "type": 13 + } + }, + { + "label": "key", + "type": { + "displayName": ["psp34metadata_external", "GetAttributeInput2"], + "type": 8 + } + } + ], + "docs": [ + " Returns the attribute of `id` for the given `key`.", + "", + " If `id` is a collection id of the token, it returns attributes for collection." + ], + "label": "PSP34Metadata::get_attribute", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 26 + }, + "selector": "0xf19d48d1" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["psp34enumerable_external", "OwnersTokenByIndexInput1"], + "type": 0 + } + }, + { + "label": "index", + "type": { + "displayName": ["psp34enumerable_external", "OwnersTokenByIndexInput2"], + "type": 7 + } + } + ], + "docs": [ + " Returns a token `Id` owned by `owner` at a given `index` of its token list.", + " Use along with `balance_of` to enumerate all of ``owner``'s tokens.", + "", + " The start index is zero." + ], + "label": "PSP34Enumerable::owners_token_by_index", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 28 + }, + "selector": "0x3bcfb511" + }, + { + "args": [ + { + "label": "index", + "type": { + "displayName": ["psp34enumerable_external", "TokenByIndexInput1"], + "type": 7 + } + } + ], + "docs": [ + " Returns a token `Id` at a given `index` of all the tokens stored by the contract.", + " Use along with `total_supply` to enumerate all tokens.", + "", + " The start index is zero." + ], + "label": "PSP34Enumerable::token_by_index", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 28 + }, + "selector": "0xcd0340d0" + }, + { + "args": [ + { + "label": "account", + "type": { + "displayName": ["psp34burnable_external", "BurnInput1"], + "type": 0 + } + }, + { + "label": "id", + "type": { + "displayName": ["psp34burnable_external", "BurnInput2"], + "type": 13 + } + } + ], + "docs": [ + " Destroys token with id equal to `id` from `account`", + "", + " Caller must be approved to transfer tokens from `account`", + " or to transfer token with `id`" + ], + "label": "PSP34Burnable::burn", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 20 + }, + "selector": "0x63c9877a" + }, + { + "args": [ + { + "label": "token_id", + "type": { + "displayName": ["minting_external", "TokenUriInput1"], + "type": 6 + } + } + ], + "docs": [" Get URI for the token Id."], + "label": "Minting::token_uri", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 30 + }, + "selector": "0x7136140d" + }, + { + "args": [], + "docs": [" Get max supply of tokens."], + "label": "Minting::max_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 36 + }, + "selector": "0xf38e35bf" + }, + { + "args": [ + { + "label": "token_id", + "type": { + "displayName": ["minting_external", "AssignMetadataInput1"], + "type": 13 + } + }, + { + "label": "metadata", + "type": { + "displayName": ["minting_external", "AssignMetadataInput2"], + "type": 8 + } + } + ], + "docs": [" Assign metadata to specified token."], + "label": "Minting::assign_metadata", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 38 + }, + "selector": "0x6893d91b" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": ["minting_external", "MintInput1"], + "type": 0 + } + } + ], + "docs": [" Mint one or more tokens."], + "label": "Minting::mint", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 40 + }, + "selector": "0x0f8c5089" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": ["minting_external", "MintManyInput1"], + "type": 0 + } + }, + { + "label": "mint_amount", + "type": { + "displayName": ["minting_external", "MintManyInput2"], + "type": 6 + } + } + ], + "docs": [" Mint many to specified account."], + "label": "Minting::mint_many", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 42 + }, + "selector": "0xeee448dc" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x1cc80634", + "ty": 0 + } + }, + "root_key": "0x1cc80634" + } + }, + "name": "token_owner" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x7e3fae6b", + "ty": 3 + } + }, + "root_key": "0x7e3fae6b" + } + }, + "name": "operator_approvals" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "root": { + "layout": { + "enum": { + "dispatchKey": "0xca32a240", + "name": "Id", + "variants": { + "0": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 2 + } + }, + "name": "0" + } + ], + "name": "U8" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 4 + } + }, + "name": "0" + } + ], + "name": "U16" + }, + "2": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 5 + } + }, + "name": "0" + } + ], + "name": "U32" + }, + "3": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 6 + } + }, + "name": "0" + } + ], + "name": "U64" + }, + "4": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 7 + } + }, + "name": "0" + } + ], + "name": "U128" + }, + "5": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 8 + } + }, + "name": "0" + } + ], + "name": "Bytes" + } + } + } + }, + "root_key": "0xca32a240" + } + }, + "name": "enumerable" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Balances" + } + }, + "name": "balances" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Data" + } + }, + "name": "psp34" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 2 + } + }, + "name": "status" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Data" + } + }, + "name": "guard" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x6a2cd2b4", + "ty": 5 + } + }, + "root_key": "0x6a2cd2b4" + } + }, + "name": "admin_roles" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x5d5db175", + "ty": 3 + } + }, + "root_key": "0x5d5db175" + } + }, + "name": "members" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Members" + } + }, + "name": "members" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Data" + } + }, + "name": "access" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x9b2d2382", + "ty": 8 + } + }, + "root_key": "0x9b2d2382" + } + }, + "name": "attributes" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Data" + } + }, + "name": "metadata" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 6 + } + }, + "name": "last_token_id" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 6 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "max_supply" + }, + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 7 + } + }, + "name": "price_per_mint" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x5d58779c", + "ty": 8 + } + }, + "root_key": "0x5d58779c" + } + }, + "name": "nft_metadata" + } + ], + "name": "MintingData" + } + }, + "name": "minting" + } + ], + "name": "Key" + } + }, + "root_key": "0x00000000" + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { + "id": 1, + "type": { + "def": { + "array": { + "len": 32, + "type": 2 + } + } + } + }, + { + "id": 2, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 3, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u16" + } + } + }, + { + "id": 5, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 6, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 7, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 8, + "type": { + "def": { + "sequence": { + "type": 2 + } + } + } + }, + { + "id": 9, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 3 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 10, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 11, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 7 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 12, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 13 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 13, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 2, + "typeName": "u8" + } + ], + "index": 0, + "name": "U8" + }, + { + "fields": [ + { + "type": 4, + "typeName": "u16" + } + ], + "index": 1, + "name": "U16" + }, + { + "fields": [ + { + "type": 5, + "typeName": "u32" + } + ], + "index": 2, + "name": "U32" + }, + { + "fields": [ + { + "type": 6, + "typeName": "u64" + } + ], + "index": 3, + "name": "U64" + }, + { + "fields": [ + { + "type": 7, + "typeName": "u128" + } + ], + "index": 4, + "name": "U128" + }, + { + "fields": [ + { + "type": 8, + "typeName": "Vec" + } + ], + "index": 5, + "name": "Bytes" + } + ] + } + }, + "path": ["openbrush_contracts", "traits", "types", "Id"] + } + }, + { + "id": 14, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 15 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 15 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 15, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 0 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + } + ], + "path": ["Option"] + } + }, + { + "id": 16, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 5 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 5 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 17, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 13 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 13 + } + ], + "path": ["Option"] + } + }, + { + "id": 18, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 19 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 19 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 19, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 21 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 21 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 21, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 3 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 22 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "E", + "type": 22 + } + ], + "path": ["Result"] + } + }, + { + "id": 22, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8, + "typeName": "String" + } + ], + "index": 0, + "name": "Custom" + }, + { + "index": 1, + "name": "SelfApprove" + }, + { + "index": 2, + "name": "NotApproved" + }, + { + "index": 3, + "name": "TokenExists" + }, + { + "index": 4, + "name": "TokenNotExists" + }, + { + "fields": [ + { + "type": 8, + "typeName": "String" + } + ], + "index": 5, + "name": "SafeTransferCheckFailed" + } + ] + } + }, + "path": ["openbrush_contracts", "traits", "errors", "psp34", "PSP34Error"] + } + }, + { + "id": 23, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 24 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 24 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 24, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 3 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 25 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "E", + "type": 25 + } + ], + "path": ["Result"] + } + }, + { + "id": 25, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InvalidCaller" + }, + { + "index": 1, + "name": "MissingRole" + }, + { + "index": 2, + "name": "RoleRedundant" + } + ] + } + }, + "path": ["openbrush_contracts", "traits", "errors", "access_control", "AccessControlError"] + } + }, + { + "id": 26, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 27 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 27 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 27, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 8 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + } + ], + "path": ["Option"] + } + }, + { + "id": 28, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 29 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 29 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 29, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 13 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 22 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "E", + "type": 22 + } + ], + "path": ["Result"] + } + }, + { + "id": 30, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 31 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 31 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 31, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 32 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 33 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 32 + }, + { + "name": "E", + "type": 33 + } + ], + "path": ["Result"] + } + }, + { + "id": 32, + "type": { + "def": { + "primitive": "str" + } + } + }, + { + "id": 33, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 34, + "typeName": "RmrkError" + } + ], + "index": 0, + "name": "Rmrk" + }, + { + "fields": [ + { + "type": 22, + "typeName": "PSP34Error" + } + ], + "index": 1, + "name": "PSP34" + }, + { + "fields": [ + { + "type": 25, + "typeName": "AccessControlError" + } + ], + "index": 2, + "name": "AccessControl" + }, + { + "fields": [ + { + "type": 35, + "typeName": "ReentrancyGuardError" + } + ], + "index": 3, + "name": "Reentrancy" + } + ] + } + }, + "path": ["rmrk_common", "errors", "Error"] + } + }, + { + "id": 34, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "AcceptedAssetsMissing" + }, + { + "index": 1, + "name": "AddingPendingAsset" + }, + { + "index": 2, + "name": "AddingPendingChild" + }, + { + "index": 3, + "name": "AddressNotEquippable" + }, + { + "index": 4, + "name": "AlreadyAddedAsset" + }, + { + "index": 5, + "name": "AlreadyAddedChild" + }, + { + "index": 6, + "name": "AssetHasNoParts" + }, + { + "index": 7, + "name": "AssetIdAlreadyExists" + }, + { + "index": 8, + "name": "AssetIdNotFound" + }, + { + "index": 9, + "name": "AssetIdNotEquippable" + }, + { + "index": 10, + "name": "BadConfig" + }, + { + "index": 11, + "name": "BadMintValue" + }, + { + "index": 12, + "name": "BadPriorityLength" + }, + { + "index": 13, + "name": "CannotMintZeroTokens" + }, + { + "index": 14, + "name": "CatalogNotFoundForAsset" + }, + { + "index": 15, + "name": "ChildNotFound" + }, + { + "index": 16, + "name": "UriNotFound" + }, + { + "index": 17, + "name": "CollectionIsFull" + }, + { + "index": 18, + "name": "InvalidAssetId" + }, + { + "index": 19, + "name": "InvalidParentId" + }, + { + "index": 20, + "name": "InvalidTokenId" + }, + { + "index": 21, + "name": "NotEquipped" + }, + { + "index": 22, + "name": "NotTokenOwner" + }, + { + "index": 23, + "name": "PartIsNotSlot" + }, + { + "index": 24, + "name": "SlotAlreayUsed" + }, + { + "index": 25, + "name": "TargetAssetCannotReceiveSlot" + }, + { + "index": 26, + "name": "UnknownEquippableAsset" + }, + { + "index": 27, + "name": "UnknownPart" + }, + { + "index": 28, + "name": "UnknownPartId" + }, + { + "index": 29, + "name": "WithdrawalFailed" + } + ] + } + }, + "path": ["rmrk_common", "errors", "RmrkError"] + } + }, + { + "id": 35, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "ReentrantCall" + } + ] + } + }, + "path": [ + "openbrush_contracts", + "traits", + "errors", + "reentrancy_guard", + "ReentrancyGuardError" + ] + } + }, + { + "id": 36, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 37 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 37 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 37, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 6 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 6 + } + ], + "path": ["Option"] + } + }, + { + "id": 38, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 39 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 39 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 39, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 3 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 33 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "E", + "type": 33 + } + ], + "path": ["Result"] + } + }, + { + "id": 40, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 41 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 41 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 41, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 13 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 33 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "E", + "type": 33 + } + ], + "path": ["Result"] + } + }, + { + "id": 42, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 43 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 43 + }, + { + "name": "E", + "type": 10 + } + ], + "path": ["Result"] + } + }, + { + "id": 43, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 44 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 33 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 44 + }, + { + "name": "E", + "type": 33 + } + ], + "path": ["Result"] + } + }, + { + "id": 44, + "type": { + "def": { + "tuple": [13, 13] + } + } + } + ], + "version": "4" +} diff --git a/.api-contract/src/test/contracts/user/v4/index.ts b/.api-contract/src/test/contracts/user/v4/index.ts new file mode 100644 index 00000000..46af49a4 --- /dev/null +++ b/.api-contract/src/test/contracts/user/v4/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as events } from './events.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/util.ts b/.api-contract/src/test/contracts/util.ts new file mode 100644 index 00000000..d305fb5b --- /dev/null +++ b/.api-contract/src/test/contracts/util.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export function createVersionedExport( + versioned: Record>, +): Record> { + const result: Record> = {}; + + Object.entries(versioned).forEach(([version, contracts]) => + Object.entries(contracts).forEach(([name, contract]): void => { + result[`${version}_${name}`] = contract as Record; + }), + ); + + return result; +} diff --git a/.api-contract/src/types.ts b/.api-contract/src/types.ts new file mode 100644 index 00000000..3f92f537 --- /dev/null +++ b/.api-contract/src/types.ts @@ -0,0 +1,104 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes } from '@polkadot/api/types'; +import type { Text } from '@polkadot/types'; +import type { + ContractExecResultResult, + ContractSelector, + StorageDeposit, + Weight, + WeightV2, +} from '@polkadot/types/interfaces'; +import type { Codec, TypeDef } from '@polkadot/types/types'; +import type { BN } from '@polkadot/util'; +import type { HexString } from '@polkadot/util/types'; +import type { Abi } from './index.js'; + +export interface ContractBase { + readonly abi: Abi; + readonly api: ApiBase; + + getMessage: (name: string) => AbiMessage; + messages: AbiMessage[]; +} + +export interface AbiParam { + name: string; + type: TypeDef; +} + +export type AbiMessageParam = AbiParam; + +export interface AbiEventParam extends AbiParam { + indexed: boolean; +} + +export interface AbiEvent { + args: AbiEventParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedEvent; + identifier: string; + index: number; + signatureTopic?: HexString | null; +} + +export interface AbiMessage { + args: AbiMessageParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedMessage; + identifier: string; + index: number; + isConstructor?: boolean; + isDefault?: boolean; + isMutating?: boolean; + isPayable?: boolean; + method: string; + path: string[]; + returnType?: TypeDef | null; + selector: ContractSelector; + toU8a: (params: unknown[]) => Uint8Array; +} + +export type AbiConstructor = AbiMessage; + +// eslint-disable-next-line @typescript-eslint/ban-types +export type InterfaceContractCalls = Record; + +export interface ContractCallOutcome { + debugMessage: Text; + gasConsumed: Weight; + gasRequired: Weight; + output: Codec | null; + result: ContractExecResultResult; + storageDeposit: StorageDeposit; +} + +export interface DecodedEvent { + args: Codec[]; + event: AbiEvent; +} + +export interface DecodedMessage { + args: Codec[]; + message: AbiMessage; +} + +export interface ContractOptions { + gasLimit?: bigint | string | number | BN | WeightV2; + storageDepositLimit?: bigint | string | number | BN | null; + value?: bigint | BN | string | number; +} + +export interface BlueprintOptions extends ContractOptions { + salt?: Uint8Array | string | null; +} + +export interface WeightAll { + v1Weight: BN; + v2Weight: { + refTime: BN; + proofSize?: BN | undefined; + }; +} diff --git a/.api-contract/src/util.ts b/.api-contract/src/util.ts new file mode 100644 index 00000000..21e5018a --- /dev/null +++ b/.api-contract/src/util.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { SubmittableResult } from '@polkadot/api'; +import type { EventRecord } from '@polkadot/types/interfaces'; + +type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; + +export function applyOnEvent( + result: SubmittableResult, + types: ContractEvents[], + fn: (records: EventRecord[]) => T, +): T | undefined { + if (result.isInBlock || result.isFinalized) { + const records = result.filterRecords('contracts', types); + + if (records.length) { + return fn(records); + } + } + + return undefined; +} diff --git a/.api-contract/tsconfig.build.json b/.api-contract/tsconfig.build.json new file mode 100644 index 00000000..c371165c --- /dev/null +++ b/.api-contract/tsconfig.build.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": ["**/test/**/*", "**/*.spec.ts", "**/checkTypes.manual.ts", "**/mod.ts", "mock.ts"], + "references": [ + { "path": "../api/tsconfig.build.json" }, + { "path": "../api-augment/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-create/tsconfig.build.json" } + ] +} diff --git a/.api-contract/tsconfig.spec.json b/.api-contract/tsconfig.spec.json new file mode 100644 index 00000000..38b05b54 --- /dev/null +++ b/.api-contract/tsconfig.spec.json @@ -0,0 +1,26 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "emitDeclarationOnly": false, + "resolveJsonModule": true, + "noEmit": true + }, + "include": [ + "**/test/**/*.json", + "**/test/**/*.ts", + "**/test/**/*.wasm", + "**/checkTypes.manual.ts", + "**/*.spec.ts", + "mock.ts" + ], + "references": [ + { "path": "../api-augment/tsconfig.build.json" }, + { "path": "../api-contract/tsconfig.build.json" }, + { "path": "../api/tsconfig.build.json" }, + { "path": "../types-support/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" } + ] +} diff --git a/package.json b/package.json index 4b074ba6..7bbdbfda 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "@headlessui/react": "^1.7.18", "@heroicons/react": "^1.0.6", "@polkadot/api": "15.8.1", - "@polkadot/api-contract": "file:./.polkadot-js-api/packages/api-contract/build", + "@polkadot/api-contract": "file:./.api-contract/build", "@polkadot/extension-dapp": "^0.58.6", "@polkadot/types": "15.8.1", "@polkadot/ui-keyring": "^3.12.2", diff --git a/scripts/build-polkadot-api.cjs b/scripts/build-polkadot-api.cjs deleted file mode 100644 index 3a8c55e9..00000000 --- a/scripts/build-polkadot-api.cjs +++ /dev/null @@ -1,42 +0,0 @@ -const { execSync } = require('child_process'); -const fs = require('fs'); -const path = require('path'); - -// Define paths -const repoUrl = 'https://github.com/use-ink/polkadot-js-api.git'; -const cloneDir = path.resolve(__dirname, '../.polkadot-js-api'); // Clone to a local folder in project -const packageBuildDir = path.resolve(cloneDir, 'packages/api-contract/build'); - -// Function to run shell commands -function runCommand(command, cwd) { - try { - execSync(command, { cwd, stdio: 'inherit' }); - } catch (error) { - console.error(`Error executing command: ${command}`); - process.exit(1); - } -} - -// Check if the repo is already cloned -if (!fs.existsSync(cloneDir)) { - console.log(`Cloning repository from ${repoUrl}...`); - runCommand(`git clone --branch peter/api-revive ${repoUrl} "${cloneDir}"`, __dirname); -} else { - console.log(`Repository already cloned at ${cloneDir}. Pulling latest changes...`); - runCommand('git pull', cloneDir); -} - -// Install dependencies and build -console.log('Installing dependencies...'); -runCommand('yarn install', cloneDir); - -console.log('Building @polkadot/api-contract...'); -runCommand('yarn build', cloneDir); - -// Verify build output -if (!fs.existsSync(packageBuildDir)) { - console.error(`Build failed: ${packageBuildDir} does not exist.`); - process.exit(1); -} - -console.log(`Build completed successfully. Built files are in ${packageBuildDir}.`); diff --git a/yarn.lock b/yarn.lock index cb1d7a2c..a30b0683 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1174,9 +1174,9 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-contract@file:./.polkadot-js-api/packages/api-contract/build::locator=contracts-ui%40workspace%3A.": +"@polkadot/api-contract@file:./.api-contract/build::locator=contracts-ui%40workspace%3A.": version: 15.8.1 - resolution: "@polkadot/api-contract@file:./.polkadot-js-api/packages/api-contract/build#./.polkadot-js-api/packages/api-contract/build::hash=fab177&locator=contracts-ui%40workspace%3A." + resolution: "@polkadot/api-contract@file:./.api-contract/build#./.api-contract/build::hash=fab177&locator=contracts-ui%40workspace%3A." dependencies: "@polkadot/api": 15.8.1 "@polkadot/api-augment": 15.8.1 @@ -3842,7 +3842,7 @@ __metadata: "@heroicons/react": ^1.0.6 "@istanbuljs/nyc-config-typescript": ^1.0.2 "@polkadot/api": 15.8.1 - "@polkadot/api-contract": "file:./.polkadot-js-api/packages/api-contract/build" + "@polkadot/api-contract": "file:./.api-contract/build" "@polkadot/extension-dapp": ^0.58.6 "@polkadot/types": 15.8.1 "@polkadot/ui-keyring": ^3.12.2 From ea11eec61b70e110019cfa6999e1c4cc763ec058 Mon Sep 17 00:00:00 2001 From: Peter White Date: Wed, 16 Apr 2025 22:21:31 -0600 Subject: [PATCH 08/32] build: update yarn.lock --- yarn.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index a30b0683..4dc60ce2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1176,7 +1176,7 @@ __metadata: "@polkadot/api-contract@file:./.api-contract/build::locator=contracts-ui%40workspace%3A.": version: 15.8.1 - resolution: "@polkadot/api-contract@file:./.api-contract/build#./.api-contract/build::hash=fab177&locator=contracts-ui%40workspace%3A." + resolution: "@polkadot/api-contract@file:./.api-contract/build#./.api-contract/build::hash=cafe2b&locator=contracts-ui%40workspace%3A." dependencies: "@polkadot/api": 15.8.1 "@polkadot/api-augment": 15.8.1 @@ -1187,7 +1187,7 @@ __metadata: "@polkadot/util-crypto": ^13.4.3 rxjs: ^7.8.1 tslib: ^2.8.1 - checksum: 95c6d54f1efbda6c166a4cb8050b47e2b5721dd4813438f4d936d44e8f57477befa2e2ec1c89eac557f8a27f1d11647094234d55902118b91c529de490126588 + checksum: e7fd8bd7e0fc12450879feb3df3eff323e4169e116eb69ce8f35b585e26cbac2c846fa8cee0b0e7c43dad4a763385133de5ddbddac1254147e6eaa5de4abd30d languageName: node linkType: hard From 89573a8e6a675a1ecace4c9e1e371644f60b3219 Mon Sep 17 00:00:00 2001 From: Peter White Date: Mon, 21 Apr 2025 08:03:30 -0600 Subject: [PATCH 09/32] westend asset hub only --- src/constants/index.ts | 103 ++--------------------- src/ui/layout/sidebar/NetworkAndUser.tsx | 20 ++--- 2 files changed, 16 insertions(+), 107 deletions(-) diff --git a/src/constants/index.ts b/src/constants/index.ts index f7eb16af..00c39167 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -12,12 +12,6 @@ export const LOCAL_STORAGE_KEY = { export type LocalStorageKey = (typeof LOCAL_STORAGE_KEY)[keyof typeof LOCAL_STORAGE_KEY]; -export const ROCOCO_CONTRACTS = { - relay: 'Rococo', - name: 'Contracts (Rococo)', - rpc: 'wss://rococo-contracts-rpc.polkadot.io', -}; - const CUSTOM_ENDPOINT = localStorage.getItem(LOCAL_STORAGE_KEY.CUSTOM_ENDPOINT); export const LOCAL = { relay: undefined, @@ -25,100 +19,15 @@ export const LOCAL = { rpc: CUSTOM_ENDPOINT ? (JSON.parse(CUSTOM_ENDPOINT) as string) : 'ws://127.0.0.1:9944', }; -// https://docs.peaq.network/networks-overview -// const PEAQ_AGUNG = { -// relay: 'Rococo', -// name: 'Peaq Agung', -// rpc: 'wss://wss.agung.peaq.network', -// }; - -const POP_NETWORK_TESTNET = { - relay: 'Paseo', - name: 'Pop Network Testnet', - rpc: 'wss://rpc2.paseo.popnetwork.xyz', -}; - -const PHALA_TESTNET = { - relay: undefined, - name: 'Phala PoC-6', - rpc: 'wss://poc6.phala.network/ws', -}; - -// https://docs.astar.network/docs/build/environment/endpoints -const SHIDEN = { - relay: 'Kusama', - name: 'Astar Shiden', - rpc: 'wss://rpc.shiden.astar.network', -}; - -// https://docs.astar.network/docs/build/environment/endpoints -const ASTAR_SHIBUYA = { - relay: 'Tokyo', - name: 'Astar Shibuya', - rpc: 'wss://rpc.shibuya.astar.network', -}; - -// https://docs.astar.network/docs/build/environment/endpoints -const ASTAR = { - relay: 'Polkadot', - name: 'Astar', - rpc: 'wss://rpc.astar.network', -}; - -const ALEPH_ZERO_TESTNET = { - relay: undefined, - name: 'Aleph Zero Testnet', - rpc: 'wss://ws.test.azero.dev', -}; - -const ALEPH_ZERO = { - relay: undefined, - name: 'Aleph Zero', - rpc: 'wss://ws.azero.dev', -}; - -// https://docs.t3rn.io/collator/testnet/testnet-collator -const T3RN_T0RN = { - relay: undefined, - name: 'T3RN T0RN', - rpc: 'wss://ws.t0rn.io', -}; - -const TERNOA_ALPHANET = { - relay: undefined, - name: 'Ternoa Alphanet', - rpc: 'wss://alphanet.ternoa.com', -}; -// https://pendulum.gitbook.io/pendulum-docs/build/build-environment/foucoco-testnet -const PENDULUM_TESTNET = { - relay: 'Rococo', - name: 'Pendulum Testnet', - rpc: 'wss://rpc-foucoco.pendulumchain.tech', -}; - -const ZEITGEIST_BATTERY_STATION = { - relay: 'Rococo', - name: 'Zeitgeist Battery Station', - rpc: 'wss://bsr.zeitgeist.pm', +export const ROCOCO_CONTRACTS = { + relay: 'Westend', + name: 'Westend Asset Hub', + rpc: 'wss://westend-asset-hub-rpc.polkadot.io', }; -export const TESTNETS = [ - ...[ - ROCOCO_CONTRACTS, - // PEAQ_AGUNG, - PHALA_TESTNET, - ASTAR_SHIBUYA, - ALEPH_ZERO_TESTNET, - T3RN_T0RN, - TERNOA_ALPHANET, - PENDULUM_TESTNET, - POP_NETWORK_TESTNET, - ZEITGEIST_BATTERY_STATION, - ].sort((a, b) => a.name.localeCompare(b.name)), - LOCAL, -]; +export const TESTNETS = [...[ROCOCO_CONTRACTS].sort((a, b) => a.name.localeCompare(b.name)), LOCAL]; -export const MAINNETS = [ASTAR, SHIDEN, ALEPH_ZERO].sort((a, b) => a.name.localeCompare(b.name)); +// export const MAINNETS = [].sort((a, b) => a.name.localeCompare(b.name)); export const DEFAULT_DECIMALS = 12; diff --git a/src/ui/layout/sidebar/NetworkAndUser.tsx b/src/ui/layout/sidebar/NetworkAndUser.tsx index 65290366..b7ab39ac 100644 --- a/src/ui/layout/sidebar/NetworkAndUser.tsx +++ b/src/ui/layout/sidebar/NetworkAndUser.tsx @@ -3,7 +3,7 @@ import { useNavigate } from 'react-router'; -import { MAINNETS, TESTNETS } from '../../../constants'; +import { TESTNETS } from '../../../constants'; import { useApi } from 'ui/contexts'; import { classes } from 'lib/util'; import { Dropdown } from 'ui/components'; @@ -13,18 +13,18 @@ const testnetOptions = TESTNETS.map(network => ({ value: network.rpc, })); -const mainnetOptions = MAINNETS.map(network => ({ - label: network.name, - value: network.rpc, -})); +// const mainnetOptions = MAINNETS.map(network => ({ +// label: network.name, +// value: network.rpc, +// })); -const allOptions = [...testnetOptions, ...mainnetOptions]; +const allOptions = [...testnetOptions]; const dropdownOptions = [ - { - label: 'Live Networks', - options: mainnetOptions, - }, + // { + // label: 'Live Networks', + // options: mainnetOptions, + // }, { label: 'Test Networks', options: testnetOptions, From 34b1986544db3a0d877335d74d8519e60f84ba49 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Fri, 23 May 2025 14:42:19 +0200 Subject: [PATCH 10/32] chore: include pop network --- src/constants/index.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/constants/index.ts b/src/constants/index.ts index 00c39167..5b2185b7 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -19,13 +19,22 @@ export const LOCAL = { rpc: CUSTOM_ENDPOINT ? (JSON.parse(CUSTOM_ENDPOINT) as string) : 'ws://127.0.0.1:9944', }; +export const POP_NETWORK_TESTNET = { + relay: 'Paseo', + name: 'Pop Network Testnet', + rpc: 'wss://rpc2.paseo.popnetwork.xyz', +}; + export const ROCOCO_CONTRACTS = { relay: 'Westend', name: 'Westend Asset Hub', rpc: 'wss://westend-asset-hub-rpc.polkadot.io', }; -export const TESTNETS = [...[ROCOCO_CONTRACTS].sort((a, b) => a.name.localeCompare(b.name)), LOCAL]; +export const TESTNETS = [ + ...[ROCOCO_CONTRACTS, POP_NETWORK_TESTNET].sort((a, b) => a.name.localeCompare(b.name)), + LOCAL, +]; // export const MAINNETS = [].sort((a, b) => a.name.localeCompare(b.name)); From f4d47d922bd2fbeba0972e64185ee7af3b6561ae Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Thu, 22 May 2025 12:05:07 +0200 Subject: [PATCH 11/32] fix: update yarn --- .yarn/releases/yarn-3.1.1.cjs | 768 ---- .yarn/releases/yarn-4.6.0.cjs | 934 +++++ .yarnrc.yml | 7 +- package.json | 2 +- yarn.lock | 6582 ++++++++++++++++----------------- 5 files changed, 4232 insertions(+), 4061 deletions(-) delete mode 100755 .yarn/releases/yarn-3.1.1.cjs create mode 100755 .yarn/releases/yarn-4.6.0.cjs diff --git a/.yarn/releases/yarn-3.1.1.cjs b/.yarn/releases/yarn-3.1.1.cjs deleted file mode 100755 index f5f2adca..00000000 --- a/.yarn/releases/yarn-3.1.1.cjs +++ /dev/null @@ -1,768 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ -//prettier-ignore -(()=>{var Mfe=Object.create,Vf=Object.defineProperty,Ofe=Object.defineProperties,Kfe=Object.getOwnPropertyDescriptor,Ufe=Object.getOwnPropertyDescriptors,Hfe=Object.getOwnPropertyNames,hE=Object.getOwnPropertySymbols,Gfe=Object.getPrototypeOf,eb=Object.prototype.hasOwnProperty,lO=Object.prototype.propertyIsEnumerable;var cO=(t,e,r)=>e in t?Vf(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r,P=(t,e)=>{for(var r in e||(e={}))eb.call(e,r)&&cO(t,r,e[r]);if(hE)for(var r of hE(e))lO.call(e,r)&&cO(t,r,e[r]);return t},_=(t,e)=>Ofe(t,Ufe(e)),jfe=t=>Vf(t,"__esModule",{value:!0});var qr=(t,e)=>{var r={};for(var i in t)eb.call(t,i)&&e.indexOf(i)<0&&(r[i]=t[i]);if(t!=null&&hE)for(var i of hE(t))e.indexOf(i)<0&&lO.call(t,i)&&(r[i]=t[i]);return r},Yfe=(t,e)=>()=>(t&&(e=t(t=0)),e),E=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),it=(t,e)=>{for(var r in e)Vf(t,r,{get:e[r],enumerable:!0})},qfe=(t,e,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Hfe(e))!eb.call(t,i)&&i!=="default"&&Vf(t,i,{get:()=>e[i],enumerable:!(r=Kfe(e,i))||r.enumerable});return t},ie=t=>qfe(jfe(Vf(t!=null?Mfe(Gfe(t)):{},"default",t&&t.__esModule&&"default"in t?{get:()=>t.default,enumerable:!0}:{value:t,enumerable:!0})),t);var MO=E((i$e,FO)=>{FO.exports=NO;NO.sync=Ahe;var LO=require("fs");function lhe(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var i=0;i{OO.exports=KO;KO.sync=che;var UO=require("fs");function KO(t,e,r){UO.stat(t,function(i,n){r(i,i?!1:HO(n,e))})}function che(t,e){return HO(UO.statSync(t),e)}function HO(t,e){return t.isFile()&&uhe(t,e)}function uhe(t,e){var r=t.mode,i=t.uid,n=t.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=r&c||r&l&&n===o||r&a&&i===s||r&u&&s===0;return g}});var YO=E((o$e,jO)=>{var s$e=require("fs"),xE;process.platform==="win32"||global.TESTING_WINDOWS?xE=MO():xE=GO();jO.exports=db;db.sync=ghe;function db(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){db(t,e||{},function(s,o){s?n(s):i(o)})})}xE(t,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),r(i,n)})}function ghe(t,e){try{return xE.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var XO=E((a$e,qO)=>{var eu=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",JO=require("path"),fhe=eu?";":":",WO=YO(),zO=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),VO=(t,e)=>{let r=e.colon||fhe,i=t.match(/\//)||eu&&t.match(/\\/)?[""]:[...eu?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],n=eu?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=eu?n.split(r):[""];return eu&&t.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},_O=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=VO(t,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(zO(t));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=JO.join(h,t),d=!h&&/^\.[\\\/]/.test(t)?t.slice(0,2)+p:p;u(l(d,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];WO(c+p,{pathExt:s},(d,m)=>{if(!d&&m)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return r?a(0).then(c=>r(null,c),r):a(0)},hhe=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:i,pathExtExe:n}=VO(t,e),s=[];for(let o=0;o{"use strict";var ZO=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};Cb.exports=ZO;Cb.exports.default=ZO});var iK=E((l$e,eK)=>{"use strict";var tK=require("path"),phe=XO(),dhe=$O();function rK(t,e){let r=t.options.env||process.env,i=process.cwd(),n=t.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(t.options.cwd)}catch(a){}let o;try{o=phe.sync(t.command,{path:r[dhe({env:r})],pathExt:e?tK.delimiter:void 0})}catch(a){}finally{s&&process.chdir(i)}return o&&(o=tK.resolve(n?t.options.cwd:"",o)),o}function Che(t){return rK(t)||rK(t,!0)}eK.exports=Che});var nK=E((c$e,mb)=>{"use strict";var Eb=/([()\][%!^"`<>&|;, *?])/g;function mhe(t){return t=t.replace(Eb,"^$1"),t}function Ehe(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(Eb,"^$1"),e&&(t=t.replace(Eb,"^$1")),t}mb.exports.command=mhe;mb.exports.argument=Ehe});var oK=E((u$e,sK)=>{"use strict";sK.exports=/^#!(.*)/});var AK=E((g$e,aK)=>{"use strict";var Ihe=oK();aK.exports=(t="")=>{let e=t.match(Ihe);if(!e)return null;let[r,i]=e[0].replace(/#! ?/,"").split(" "),n=r.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var cK=E((f$e,lK)=>{"use strict";var Ib=require("fs"),yhe=AK();function whe(t){let e=150,r=Buffer.alloc(e),i;try{i=Ib.openSync(t,"r"),Ib.readSync(i,r,0,e,0),Ib.closeSync(i)}catch(n){}return yhe(r.toString())}lK.exports=whe});var hK=E((h$e,uK)=>{"use strict";var Bhe=require("path"),gK=iK(),fK=nK(),Qhe=cK(),bhe=process.platform==="win32",vhe=/\.(?:com|exe)$/i,She=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function xhe(t){t.file=gK(t);let e=t.file&&Qhe(t.file);return e?(t.args.unshift(t.file),t.command=e,gK(t)):t.file}function khe(t){if(!bhe)return t;let e=xhe(t),r=!vhe.test(e);if(t.options.forceShell||r){let i=She.test(e);t.command=Bhe.normalize(t.command),t.command=fK.command(t.command),t.args=t.args.map(s=>fK.argument(s,i));let n=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${n}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function Phe(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let i={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?i:khe(i)}uK.exports=Phe});var CK=E((p$e,pK)=>{"use strict";var yb=process.platform==="win32";function wb(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function Dhe(t,e){if(!yb)return;let r=t.emit;t.emit=function(i,n){if(i==="exit"){let s=dK(n,e,"spawn");if(s)return r.call(t,"error",s)}return r.apply(t,arguments)}}function dK(t,e){return yb&&t===1&&!e.file?wb(e.original,"spawn"):null}function Rhe(t,e){return yb&&t===1&&!e.file?wb(e.original,"spawnSync"):null}pK.exports={hookChildProcess:Dhe,verifyENOENT:dK,verifyENOENTSync:Rhe,notFoundError:wb}});var bb=E((d$e,tu)=>{"use strict";var mK=require("child_process"),Bb=hK(),Qb=CK();function EK(t,e,r){let i=Bb(t,e,r),n=mK.spawn(i.command,i.args,i.options);return Qb.hookChildProcess(n,i),n}function Fhe(t,e,r){let i=Bb(t,e,r),n=mK.spawnSync(i.command,i.args,i.options);return n.error=n.error||Qb.verifyENOENTSync(n.status,i),n}tu.exports=EK;tu.exports.spawn=EK;tu.exports.sync=Fhe;tu.exports._parse=Bb;tu.exports._enoent=Qb});var yK=E((y$e,IK)=>{"use strict";IK.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var Nb=E((w$e,wK)=>{var gh=yK(),BK={};for(let t of Object.keys(gh))BK[gh[t]]=t;var Xe={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};wK.exports=Xe;for(let t of Object.keys(Xe)){if(!("channels"in Xe[t]))throw new Error("missing channels property: "+t);if(!("labels"in Xe[t]))throw new Error("missing channel labels property: "+t);if(Xe[t].labels.length!==Xe[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=Xe[t];delete Xe[t].channels,delete Xe[t].labels,Object.defineProperty(Xe[t],"channels",{value:e}),Object.defineProperty(Xe[t],"labels",{value:r})}Xe.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.min(e,r,i),s=Math.max(e,r,i),o=s-n,a,l;s===n?a=0:e===s?a=(r-i)/o:r===s?a=2+(i-e)/o:i===s&&(a=4+(e-r)/o),a=Math.min(a*60,360),a<0&&(a+=360);let c=(n+s)/2;return s===n?l=0:c<=.5?l=o/(s+n):l=o/(2-s-n),[a,l*100,c*100]};Xe.rgb.hsv=function(t){let e,r,i,n,s,o=t[0]/255,a=t[1]/255,l=t[2]/255,c=Math.max(o,a,l),u=c-Math.min(o,a,l),g=function(f){return(c-f)/6/u+1/2};return u===0?(n=0,s=0):(s=u/c,e=g(o),r=g(a),i=g(l),o===c?n=i-r:a===c?n=1/3+e-i:l===c&&(n=2/3+r-e),n<0?n+=1:n>1&&(n-=1)),[n*360,s*100,c*100]};Xe.rgb.hwb=function(t){let e=t[0],r=t[1],i=t[2],n=Xe.rgb.hsl(t)[0],s=1/255*Math.min(e,Math.min(r,i));return i=1-1/255*Math.max(e,Math.max(r,i)),[n,s*100,i*100]};Xe.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.min(1-e,1-r,1-i),s=(1-e-n)/(1-n)||0,o=(1-r-n)/(1-n)||0,a=(1-i-n)/(1-n)||0;return[s*100,o*100,a*100,n*100]};function The(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}Xe.rgb.keyword=function(t){let e=BK[t];if(e)return e;let r=Infinity,i;for(let n of Object.keys(gh)){let s=gh[n],o=The(t,s);o.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,i=i>.04045?((i+.055)/1.055)**2.4:i/12.92;let n=e*.4124+r*.3576+i*.1805,s=e*.2126+r*.7152+i*.0722,o=e*.0193+r*.1192+i*.9505;return[n*100,s*100,o*100]};Xe.rgb.lab=function(t){let e=Xe.rgb.xyz(t),r=e[0],i=e[1],n=e[2];r/=95.047,i/=100,n/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;let s=116*i-16,o=500*(r-i),a=200*(i-n);return[s,o,a]};Xe.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100,n,s,o;if(r===0)return o=i*255,[o,o,o];i<.5?n=i*(1+r):n=i+r-i*r;let a=2*i-n,l=[0,0,0];for(let c=0;c<3;c++)s=e+1/3*-(c-1),s<0&&s++,s>1&&s--,6*s<1?o=a+(n-a)*6*s:2*s<1?o=n:3*s<2?o=a+(n-a)*(2/3-s)*6:o=a,l[c]=o*255;return l};Xe.hsl.hsv=function(t){let e=t[0],r=t[1]/100,i=t[2]/100,n=r,s=Math.max(i,.01);i*=2,r*=i<=1?i:2-i,n*=s<=1?s:2-s;let o=(i+r)/2,a=i===0?2*n/(s+n):2*r/(i+r);return[e,a*100,o*100]};Xe.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,i=t[2]/100,n=Math.floor(e)%6,s=e-Math.floor(e),o=255*i*(1-r),a=255*i*(1-r*s),l=255*i*(1-r*(1-s));switch(i*=255,n){case 0:return[i,l,o];case 1:return[a,i,o];case 2:return[o,i,l];case 3:return[o,a,i];case 4:return[l,o,i];case 5:return[i,o,a]}};Xe.hsv.hsl=function(t){let e=t[0],r=t[1]/100,i=t[2]/100,n=Math.max(i,.01),s,o;o=(2-r)*i;let a=(2-r)*n;return s=r*n,s/=a<=1?a:2-a,s=s||0,o/=2,[e,s*100,o*100]};Xe.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100,n=r+i,s;n>1&&(r/=n,i/=n);let o=Math.floor(6*e),a=1-i;s=6*e-o,(o&1)!=0&&(s=1-s);let l=r+s*(a-r),c,u,g;switch(o){default:case 6:case 0:c=a,u=l,g=r;break;case 1:c=l,u=a,g=r;break;case 2:c=r,u=a,g=l;break;case 3:c=r,u=l,g=a;break;case 4:c=l,u=r,g=a;break;case 5:c=a,u=r,g=l;break}return[c*255,u*255,g*255]};Xe.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,i=t[2]/100,n=t[3]/100,s=1-Math.min(1,e*(1-n)+n),o=1-Math.min(1,r*(1-n)+n),a=1-Math.min(1,i*(1-n)+n);return[s*255,o*255,a*255]};Xe.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,i=t[2]/100,n,s,o;return n=e*3.2406+r*-1.5372+i*-.4986,s=e*-.9689+r*1.8758+i*.0415,o=e*.0557+r*-.204+i*1.057,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,s=s>.0031308?1.055*s**(1/2.4)-.055:s*12.92,o=o>.0031308?1.055*o**(1/2.4)-.055:o*12.92,n=Math.min(Math.max(0,n),1),s=Math.min(Math.max(0,s),1),o=Math.min(Math.max(0,o),1),[n*255,s*255,o*255]};Xe.xyz.lab=function(t){let e=t[0],r=t[1],i=t[2];e/=95.047,r/=100,i/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;let n=116*r-16,s=500*(e-r),o=200*(r-i);return[n,s,o]};Xe.lab.xyz=function(t){let e=t[0],r=t[1],i=t[2],n,s,o;s=(e+16)/116,n=r/500+s,o=s-i/200;let a=s**3,l=n**3,c=o**3;return s=a>.008856?a:(s-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,o=c>.008856?c:(o-16/116)/7.787,n*=95.047,s*=100,o*=108.883,[n,s,o]};Xe.lab.lch=function(t){let e=t[0],r=t[1],i=t[2],n;n=Math.atan2(i,r)*360/2/Math.PI,n<0&&(n+=360);let o=Math.sqrt(r*r+i*i);return[e,o,n]};Xe.lch.lab=function(t){let e=t[0],r=t[1],n=t[2]/360*2*Math.PI,s=r*Math.cos(n),o=r*Math.sin(n);return[e,s,o]};Xe.rgb.ansi16=function(t,e=null){let[r,i,n]=t,s=e===null?Xe.rgb.hsv(t)[2]:e;if(s=Math.round(s/50),s===0)return 30;let o=30+(Math.round(n/255)<<2|Math.round(i/255)<<1|Math.round(r/255));return s===2&&(o+=60),o};Xe.hsv.ansi16=function(t){return Xe.rgb.ansi16(Xe.hsv.rgb(t),t[2])};Xe.rgb.ansi256=function(t){let e=t[0],r=t[1],i=t[2];return e===r&&r===i?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(i/255*5)};Xe.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,i=(e&1)*r*255,n=(e>>1&1)*r*255,s=(e>>2&1)*r*255;return[i,n,s]};Xe.ansi256.rgb=function(t){if(t>=232){let s=(t-232)*10+8;return[s,s,s]}t-=16;let e,r=Math.floor(t/36)/5*255,i=Math.floor((e=t%36)/6)/5*255,n=e%6/5*255;return[r,i,n]};Xe.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};Xe.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(a=>a+a).join(""));let i=parseInt(r,16),n=i>>16&255,s=i>>8&255,o=i&255;return[n,s,o]};Xe.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,i=t[2]/255,n=Math.max(Math.max(e,r),i),s=Math.min(Math.min(e,r),i),o=n-s,a,l;return o<1?a=s/(1-o):a=0,o<=0?l=0:n===e?l=(r-i)/o%6:n===r?l=2+(i-e)/o:l=4+(e-r)/o,l/=6,l%=1,[l*360,o*100,a*100]};Xe.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=r<.5?2*e*r:2*e*(1-r),n=0;return i<1&&(n=(r-.5*i)/(1-i)),[t[0],i*100,n*100]};Xe.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=e*r,n=0;return i<1&&(n=(r-i)/(1-i)),[t[0],i*100,n*100]};Xe.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,i=t[2]/100;if(r===0)return[i*255,i*255,i*255];let n=[0,0,0],s=e%1*6,o=s%1,a=1-o,l=0;switch(Math.floor(s)){case 0:n[0]=1,n[1]=o,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=o;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=o,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-r)*i,[(r*n[0]+l)*255,(r*n[1]+l)*255,(r*n[2]+l)*255]};Xe.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,i=e+r*(1-e),n=0;return i>0&&(n=e/i),[t[0],n*100,i*100]};Xe.hcg.hsl=function(t){let e=t[1]/100,i=t[2]/100*(1-e)+.5*e,n=0;return i>0&&i<.5?n=e/(2*i):i>=.5&&i<1&&(n=e/(2*(1-i))),[t[0],n*100,i*100]};Xe.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,i=e+r*(1-e);return[t[0],(i-e)*100,(1-i)*100]};Xe.hwb.hcg=function(t){let e=t[1]/100,r=t[2]/100,i=1-r,n=i-e,s=0;return n<1&&(s=(i-n)/(1-n)),[t[0],n*100,s*100]};Xe.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};Xe.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};Xe.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};Xe.gray.hsl=function(t){return[0,0,t[0]]};Xe.gray.hsv=Xe.gray.hsl;Xe.gray.hwb=function(t){return[0,100,t[0]]};Xe.gray.cmyk=function(t){return[0,0,0,t[0]]};Xe.gray.lab=function(t){return[t[0],0,0]};Xe.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,i=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(i.length)+i};Xe.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var bK=E((B$e,QK)=>{var kE=Nb();function Mhe(){let t={},e=Object.keys(kE);for(let r=e.length,i=0;i{var Lb=Nb(),Hhe=bK(),ru={},Ghe=Object.keys(Lb);function jhe(t){let e=function(...r){let i=r[0];return i==null?i:(i.length>1&&(r=i),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function Yhe(t){let e=function(...r){let i=r[0];if(i==null)return i;i.length>1&&(r=i);let n=t(r);if(typeof n=="object")for(let s=n.length,o=0;o{ru[t]={},Object.defineProperty(ru[t],"channels",{value:Lb[t].channels}),Object.defineProperty(ru[t],"labels",{value:Lb[t].labels});let e=Hhe(t);Object.keys(e).forEach(i=>{let n=e[i];ru[t][i]=Yhe(n),ru[t][i].raw=jhe(n)})});vK.exports=ru});var FK=E((b$e,xK)=>{"use strict";var kK=(t,e)=>(...r)=>`[${t(...r)+e}m`,PK=(t,e)=>(...r)=>{let i=t(...r);return`[${38+e};5;${i}m`},DK=(t,e)=>(...r)=>{let i=t(...r);return`[${38+e};2;${i[0]};${i[1]};${i[2]}m`},PE=t=>t,RK=(t,e,r)=>[t,e,r],iu=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let i=r();return Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0}),i},enumerable:!0,configurable:!0})},Tb,nu=(t,e,r,i)=>{Tb===void 0&&(Tb=SK());let n=i?10:0,s={};for(let[o,a]of Object.entries(Tb)){let l=o==="ansi16"?"ansi":o;o===e?s[l]=t(r,n):typeof a=="object"&&(s[l]=t(a[e],n))}return s};function qhe(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,i]of Object.entries(e)){for(let[n,s]of Object.entries(i))e[n]={open:`[${s[0]}m`,close:`[${s[1]}m`},i[n]=e[n],t.set(s[0],s[1]);Object.defineProperty(e,r,{value:i,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="",e.bgColor.close="",iu(e.color,"ansi",()=>nu(kK,"ansi16",PE,!1)),iu(e.color,"ansi256",()=>nu(PK,"ansi256",PE,!1)),iu(e.color,"ansi16m",()=>nu(DK,"rgb",RK,!1)),iu(e.bgColor,"ansi",()=>nu(kK,"ansi16",PE,!0)),iu(e.bgColor,"ansi256",()=>nu(PK,"ansi256",PE,!0)),iu(e.bgColor,"ansi16m",()=>nu(DK,"rgb",RK,!0)),e}Object.defineProperty(xK,"exports",{enumerable:!0,get:qhe})});var LK=E((v$e,NK)=>{"use strict";NK.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",i=e.indexOf(r+t),n=e.indexOf("--");return i!==-1&&(n===-1||i{"use strict";var Jhe=require("os"),MK=require("tty"),Wn=LK(),{env:Wr}=process,tA;Wn("no-color")||Wn("no-colors")||Wn("color=false")||Wn("color=never")?tA=0:(Wn("color")||Wn("colors")||Wn("color=true")||Wn("color=always"))&&(tA=1);"FORCE_COLOR"in Wr&&(Wr.FORCE_COLOR==="true"?tA=1:Wr.FORCE_COLOR==="false"?tA=0:tA=Wr.FORCE_COLOR.length===0?1:Math.min(parseInt(Wr.FORCE_COLOR,10),3));function Mb(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function Ob(t,e){if(tA===0)return 0;if(Wn("color=16m")||Wn("color=full")||Wn("color=truecolor"))return 3;if(Wn("color=256"))return 2;if(t&&!e&&tA===void 0)return 0;let r=tA||0;if(Wr.TERM==="dumb")return r;if(process.platform==="win32"){let i=Jhe.release().split(".");return Number(i[0])>=10&&Number(i[2])>=10586?Number(i[2])>=14931?3:2:1}if("CI"in Wr)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(i=>i in Wr)||Wr.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in Wr)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Wr.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in Wr)return 1;if(Wr.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Wr){let i=parseInt((Wr.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Wr.TERM_PROGRAM){case"iTerm.app":return i>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Wr.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Wr.TERM)||"COLORTERM"in Wr?1:r}function Whe(t){let e=Ob(t,t&&t.isTTY);return Mb(e)}TK.exports={supportsColor:Whe,stdout:Mb(Ob(!0,MK.isatty(1))),stderr:Mb(Ob(!0,MK.isatty(2)))}});var UK=E((x$e,KK)=>{"use strict";var zhe=(t,e,r)=>{let i=t.indexOf(e);if(i===-1)return t;let n=e.length,s=0,o="";do o+=t.substr(s,i-s)+e+r,s=i+n,i=t.indexOf(e,s);while(i!==-1);return o+=t.substr(s),o},Vhe=(t,e,r,i)=>{let n=0,s="";do{let o=t[i-1]==="\r";s+=t.substr(n,(o?i-1:i)-n)+e+(o?`\r -`:` -`)+r,n=i+1,i=t.indexOf(` -`,n)}while(i!==-1);return s+=t.substr(n),s};KK.exports={stringReplaceAll:zhe,stringEncaseCRLFWithFirstIndex:Vhe}});var qK=E((k$e,HK)=>{"use strict";var _he=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,GK=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Xhe=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,Zhe=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,$he=new Map([["n",` -`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function jK(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):$he.get(t)||t}function epe(t,e){let r=[],i=e.trim().split(/\s*,\s*/g),n;for(let s of i){let o=Number(s);if(!Number.isNaN(o))r.push(o);else if(n=s.match(Xhe))r.push(n[2].replace(Zhe,(a,l,c)=>l?jK(l):c));else throw new Error(`Invalid Chalk template style argument: ${s} (in style '${t}')`)}return r}function tpe(t){GK.lastIndex=0;let e=[],r;for(;(r=GK.exec(t))!==null;){let i=r[1];if(r[2]){let n=epe(i,r[2]);e.push([i].concat(n))}else e.push([i])}return e}function YK(t,e){let r={};for(let n of e)for(let s of n.styles)r[s[0]]=n.inverse?null:s.slice(1);let i=t;for(let[n,s]of Object.entries(r))if(!!Array.isArray(s)){if(!(n in i))throw new Error(`Unknown Chalk style: ${n}`);i=s.length>0?i[n](...s):i[n]}return i}HK.exports=(t,e)=>{let r=[],i=[],n=[];if(e.replace(_he,(s,o,a,l,c,u)=>{if(o)n.push(jK(o));else if(l){let g=n.join("");n=[],i.push(r.length===0?g:YK(t,r)(g)),r.push({inverse:a,styles:tpe(l)})}else if(c){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");i.push(YK(t,r)(n.join(""))),n=[],r.pop()}else n.push(u)}),i.push(n.join("")),r.length>0){let s=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(s)}return i.join("")}});var jb=E((P$e,JK)=>{"use strict";var fh=FK(),{stdout:Kb,stderr:Ub}=OK(),{stringReplaceAll:rpe,stringEncaseCRLFWithFirstIndex:ipe}=UK(),WK=["ansi","ansi","ansi256","ansi16m"],su=Object.create(null),npe=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=Kb?Kb.level:0;t.level=e.level===void 0?r:e.level},zK=class{constructor(e){return VK(e)}},VK=t=>{let e={};return npe(e,t),e.template=(...r)=>spe(e.template,...r),Object.setPrototypeOf(e,DE.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=zK,e.template};function DE(t){return VK(t)}for(let[t,e]of Object.entries(fh))su[t]={get(){let r=RE(this,Hb(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};su.visible={get(){let t=RE(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var _K=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of _K)su[t]={get(){let{level:e}=this;return function(...r){let i=Hb(fh.color[WK[e]][t](...r),fh.color.close,this._styler);return RE(this,i,this._isEmpty)}}};for(let t of _K){let e="bg"+t[0].toUpperCase()+t.slice(1);su[e]={get(){let{level:r}=this;return function(...i){let n=Hb(fh.bgColor[WK[r]][t](...i),fh.bgColor.close,this._styler);return RE(this,n,this._isEmpty)}}}}var ope=Object.defineProperties(()=>{},_(P({},su),{level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}})),Hb=(t,e,r)=>{let i,n;return r===void 0?(i=t,n=e):(i=r.openAll+t,n=e+r.closeAll),{open:t,close:e,openAll:i,closeAll:n,parent:r}},RE=(t,e,r)=>{let i=(...n)=>ape(i,n.length===1?""+n[0]:n.join(" "));return i.__proto__=ope,i._generator=t,i._styler=e,i._isEmpty=r,i},ape=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:i,closeAll:n}=r;if(e.indexOf("")!==-1)for(;r!==void 0;)e=rpe(e,r.close,r.open),r=r.parent;let s=e.indexOf(` -`);return s!==-1&&(e=ipe(e,n,i,s)),i+e+n},Gb,spe=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let i=e.slice(1),n=[r.raw[0]];for(let s=1;s{XK.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var ml=E(Dn=>{"use strict";var $K=ZK(),ro=process.env;Object.defineProperty(Dn,"_vendors",{value:$K.map(function(t){return t.constant})});Dn.name=null;Dn.isPR=null;$K.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(i){return e1(i)});if(Dn[t.constant]=r,r)switch(Dn.name=t.name,typeof t.pr){case"string":Dn.isPR=!!ro[t.pr];break;case"object":"env"in t.pr?Dn.isPR=t.pr.env in ro&&ro[t.pr.env]!==t.pr.ne:"any"in t.pr?Dn.isPR=t.pr.any.some(function(i){return!!ro[i]}):Dn.isPR=e1(t.pr);break;default:Dn.isPR=null}});Dn.isCI=!!(ro.CI||ro.CONTINUOUS_INTEGRATION||ro.BUILD_NUMBER||ro.RUN_ID||Dn.name);function e1(t){return typeof t=="string"?!!ro[t]:Object.keys(t).every(function(e){return ro[e]===t[e]})}});var FE=E(zn=>{"use strict";zn.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;zn.find=(t,e)=>t.nodes.find(r=>r.type===e);zn.exceedsLimit=(t,e,r=1,i)=>i===!1||!zn.isInteger(t)||!zn.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=i;zn.escapeNode=(t,e=0,r)=>{let i=t.nodes[e];!i||(r&&i.type===r||i.type==="open"||i.type==="close")&&i.escaped!==!0&&(i.value="\\"+i.value,i.escaped=!0)};zn.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0==0?(t.invalid=!0,!0):!1;zn.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:t.commas>>0+t.ranges>>0==0||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;zn.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;zn.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);zn.flatten=(...t)=>{let e=[],r=i=>{for(let n=0;n{"use strict";var r1=FE();t1.exports=(t,e={})=>{let r=(i,n={})=>{let s=e.escapeInvalid&&r1.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a="";if(i.value)return(s||o)&&r1.isOpenOrClose(i)?"\\"+i.value:i.value;if(i.value)return i.value;if(i.nodes)for(let l of i.nodes)a+=r(l);return a};return r(t)}});var n1=E((L$e,i1)=>{"use strict";i1.exports=function(t){return typeof t=="number"?t-t==0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var f1=E((T$e,s1)=>{"use strict";var o1=n1(),El=(t,e,r)=>{if(o1(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(o1(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let i=P({relaxZeros:!0},r);typeof i.strictZeros=="boolean"&&(i.relaxZeros=i.strictZeros===!1);let n=String(i.relaxZeros),s=String(i.shorthand),o=String(i.capture),a=String(i.wrap),l=t+":"+e+"="+n+s+o+a;if(El.cache.hasOwnProperty(l))return El.cache[l].result;let c=Math.min(t,e),u=Math.max(t,e);if(Math.abs(c-u)===1){let d=t+"|"+e;return i.capture?`(${d})`:i.wrap===!1?d:`(?:${d})`}let g=A1(t)||A1(e),f={min:t,max:e,a:c,b:u},h=[],p=[];if(g&&(f.isPadded=g,f.maxLen=String(f.max).length),c<0){let d=u<0?Math.abs(u):1;p=a1(d,Math.abs(c),f,i),c=f.a=0}return u>=0&&(h=a1(c,u,f,i)),f.negatives=p,f.positives=h,f.result=Ape(p,h,i),i.capture===!0?f.result=`(${f.result})`:i.wrap!==!1&&h.length+p.length>1&&(f.result=`(?:${f.result})`),El.cache[l]=f,f.result};function Ape(t,e,r){let i=Yb(t,e,"-",!1,r)||[],n=Yb(e,t,"",!1,r)||[],s=Yb(t,e,"-?",!0,r)||[];return i.concat(s).concat(n).join("|")}function cpe(t,e){let r=1,i=1,n=l1(t,r),s=new Set([e]);for(;t<=n&&n<=e;)s.add(n),r+=1,n=l1(t,r);for(n=c1(e+1,i)-1;t1&&a.count.pop(),a.count.push(u.count[0]),a.string=a.pattern+u1(a.count),o=c+1;continue}r.isPadded&&(g=hpe(c,r,i)),u.string=g+u.pattern+u1(u.count),s.push(u),o=c+1,a=u}return s}function Yb(t,e,r,i,n){let s=[];for(let o of t){let{string:a}=o;!i&&!g1(e,"string",a)&&s.push(r+a),i&&g1(e,"string",a)&&s.push(r+a)}return s}function upe(t,e){let r=[];for(let i=0;ie?1:e>t?-1:0}function g1(t,e,r){return t.some(i=>i[e]===r)}function l1(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function c1(t,e){return t-t%Math.pow(10,e)}function u1(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function gpe(t,e,r){return`[${t}${e-t==1?"":"-"}${e}]`}function A1(t){return/^-?(0+)\d/.test(t)}function hpe(t,e,r){if(!e.isPadded)return t;let i=Math.abs(e.maxLen-String(t).length),n=r.relaxZeros!==!1;switch(i){case 0:return"";case 1:return n?"0?":"0";case 2:return n?"0{0,2}":"00";default:return n?`0{0,${i}}`:`0{${i}}`}}El.cache={};El.clearCache=()=>El.cache={};s1.exports=El});var Wb=E((M$e,h1)=>{"use strict";var ppe=require("util"),p1=f1(),d1=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),dpe=t=>e=>t===!0?Number(e):String(e),qb=t=>typeof t=="number"||typeof t=="string"&&t!=="",ph=t=>Number.isInteger(+t),Jb=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},Cpe=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,mpe=(t,e,r)=>{if(e>0){let i=t[0]==="-"?"-":"";i&&(t=t.slice(1)),t=i+t.padStart(i?e-1:e,"0")}return r===!1?String(t):t},C1=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length{t.negatives.sort((o,a)=>oa?1:0),t.positives.sort((o,a)=>oa?1:0);let r=e.capture?"":"?:",i="",n="",s;return t.positives.length&&(i=t.positives.join("|")),t.negatives.length&&(n=`-(${r}${t.negatives.join("|")})`),i&&n?s=`${i}|${n}`:s=i||n,e.wrap?`(${r}${s})`:s},m1=(t,e,r,i)=>{if(r)return p1(t,e,P({wrap:!1},i));let n=String.fromCharCode(t);if(t===e)return n;let s=String.fromCharCode(e);return`[${n}-${s}]`},E1=(t,e,r)=>{if(Array.isArray(t)){let i=r.wrap===!0,n=r.capture?"":"?:";return i?`(${n}${t.join("|")})`:t.join("|")}return p1(t,e,r)},I1=(...t)=>new RangeError("Invalid range arguments: "+ppe.inspect(...t)),y1=(t,e,r)=>{if(r.strictRanges===!0)throw I1([t,e]);return[]},Ipe=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},ype=(t,e,r=1,i={})=>{let n=Number(t),s=Number(e);if(!Number.isInteger(n)||!Number.isInteger(s)){if(i.strictRanges===!0)throw I1([t,e]);return[]}n===0&&(n=0),s===0&&(s=0);let o=n>s,a=String(t),l=String(e),c=String(r);r=Math.max(Math.abs(r),1);let u=Jb(a)||Jb(l)||Jb(c),g=u?Math.max(a.length,l.length,c.length):0,f=u===!1&&Cpe(t,e,i)===!1,h=i.transform||dpe(f);if(i.toRegex&&r===1)return m1(C1(t,g),C1(e,g),!0,i);let p={negatives:[],positives:[]},d=B=>p[B<0?"negatives":"positives"].push(Math.abs(B)),m=[],I=0;for(;o?n>=s:n<=s;)i.toRegex===!0&&r>1?d(n):m.push(mpe(h(n,I),g,f)),n=o?n-r:n+r,I++;return i.toRegex===!0?r>1?Epe(p,i):E1(m,null,P({wrap:!1},i)):m},wpe=(t,e,r=1,i={})=>{if(!ph(t)&&t.length>1||!ph(e)&&e.length>1)return y1(t,e,i);let n=i.transform||(f=>String.fromCharCode(f)),s=`${t}`.charCodeAt(0),o=`${e}`.charCodeAt(0),a=s>o,l=Math.min(s,o),c=Math.max(s,o);if(i.toRegex&&r===1)return m1(l,c,!1,i);let u=[],g=0;for(;a?s>=o:s<=o;)u.push(n(s,g)),s=a?s-r:s+r,g++;return i.toRegex===!0?E1(u,null,{wrap:!1,options:i}):u},LE=(t,e,r,i={})=>{if(e==null&&qb(t))return[t];if(!qb(t)||!qb(e))return y1(t,e,i);if(typeof r=="function")return LE(t,e,1,{transform:r});if(d1(r))return LE(t,e,0,r);let n=P({},i);return n.capture===!0&&(n.wrap=!0),r=r||n.step||1,ph(r)?ph(t)&&ph(e)?ype(t,e,r,n):wpe(t,e,Math.max(Math.abs(r),1),n):r!=null&&!d1(r)?Ipe(r,n):LE(t,e,1,r)};h1.exports=LE});var Q1=E((O$e,w1)=>{"use strict";var Bpe=Wb(),B1=FE(),Qpe=(t,e={})=>{let r=(i,n={})=>{let s=B1.isInvalidBrace(n),o=i.invalid===!0&&e.escapeInvalid===!0,a=s===!0||o===!0,l=e.escapeInvalid===!0?"\\":"",c="";if(i.isOpen===!0||i.isClose===!0)return l+i.value;if(i.type==="open")return a?l+i.value:"(";if(i.type==="close")return a?l+i.value:")";if(i.type==="comma")return i.prev.type==="comma"?"":a?i.value:"|";if(i.value)return i.value;if(i.nodes&&i.ranges>0){let u=B1.reduce(i.nodes),g=Bpe(...u,_(P({},e),{wrap:!1,toRegex:!0}));if(g.length!==0)return u.length>1&&g.length>1?`(${g})`:g}if(i.nodes)for(let u of i.nodes)c+=r(u,i);return c};return r(t)};w1.exports=Qpe});var S1=E((K$e,b1)=>{"use strict";var bpe=Wb(),v1=NE(),ou=FE(),Il=(t="",e="",r=!1)=>{let i=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?ou.flatten(e).map(n=>`{${n}}`):e;for(let n of t)if(Array.isArray(n))for(let s of n)i.push(Il(s,e,r));else for(let s of e)r===!0&&typeof s=="string"&&(s=`{${s}}`),i.push(Array.isArray(s)?Il(n,s,r):n+s);return ou.flatten(i)},vpe=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,i=(n,s={})=>{n.queue=[];let o=s,a=s.queue;for(;o.type!=="brace"&&o.type!=="root"&&o.parent;)o=o.parent,a=o.queue;if(n.invalid||n.dollar){a.push(Il(a.pop(),v1(n,e)));return}if(n.type==="brace"&&n.invalid!==!0&&n.nodes.length===2){a.push(Il(a.pop(),["{}"]));return}if(n.nodes&&n.ranges>0){let g=ou.reduce(n.nodes);if(ou.exceedsLimit(...g,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let f=bpe(...g,e);f.length===0&&(f=v1(n,e)),a.push(Il(a.pop(),f)),n.nodes=[];return}let l=ou.encloseBrace(n),c=n.queue,u=n;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,c=u.queue;for(let g=0;g{"use strict";x1.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` -`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var N1=E((H$e,P1)=>{"use strict";var Spe=NE(),{MAX_LENGTH:D1,CHAR_BACKSLASH:zb,CHAR_BACKTICK:xpe,CHAR_COMMA:kpe,CHAR_DOT:Ppe,CHAR_LEFT_PARENTHESES:Dpe,CHAR_RIGHT_PARENTHESES:Rpe,CHAR_LEFT_CURLY_BRACE:Fpe,CHAR_RIGHT_CURLY_BRACE:Npe,CHAR_LEFT_SQUARE_BRACKET:R1,CHAR_RIGHT_SQUARE_BRACKET:F1,CHAR_DOUBLE_QUOTE:Lpe,CHAR_SINGLE_QUOTE:Tpe,CHAR_NO_BREAK_SPACE:Mpe,CHAR_ZERO_WIDTH_NOBREAK_SPACE:Ope}=k1(),Kpe=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},i=typeof r.maxLength=="number"?Math.min(D1,r.maxLength):D1;if(t.length>i)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${i})`);let n={type:"root",input:t,nodes:[]},s=[n],o=n,a=n,l=0,c=t.length,u=0,g=0,f,h={},p=()=>t[u++],d=m=>{if(m.type==="text"&&a.type==="dot"&&(a.type="text"),a&&a.type==="text"&&m.type==="text"){a.value+=m.value;return}return o.nodes.push(m),m.parent=o,m.prev=a,a=m,m};for(d({type:"bos"});u0){if(o.ranges>0){o.ranges=0;let m=o.nodes.shift();o.nodes=[m,{type:"text",value:Spe(o)}]}d({type:"comma",value:f}),o.commas++;continue}if(f===Ppe&&g>0&&o.commas===0){let m=o.nodes;if(g===0||m.length===0){d({type:"text",value:f});continue}if(a.type==="dot"){if(o.range=[],a.value+=f,a.type="range",o.nodes.length!==3&&o.nodes.length!==5){o.invalid=!0,o.ranges=0,a.type="text";continue}o.ranges++,o.args=[];continue}if(a.type==="range"){m.pop();let I=m[m.length-1];I.value+=a.value+f,a=I,o.ranges--;continue}d({type:"dot",value:f});continue}d({type:"text",value:f})}do if(o=s.pop(),o.type!=="root"){o.nodes.forEach(B=>{B.nodes||(B.type==="open"&&(B.isOpen=!0),B.type==="close"&&(B.isClose=!0),B.nodes||(B.type="text"),B.invalid=!0)});let m=s[s.length-1],I=m.nodes.indexOf(o);m.nodes.splice(I,1,...o.nodes)}while(s.length>0);return d({type:"eos"}),n};P1.exports=Kpe});var M1=E((G$e,L1)=>{"use strict";var T1=NE(),Upe=Q1(),Hpe=S1(),Gpe=N1(),Rn=(t,e={})=>{let r=[];if(Array.isArray(t))for(let i of t){let n=Rn.create(i,e);Array.isArray(n)?r.push(...n):r.push(n)}else r=[].concat(Rn.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};Rn.parse=(t,e={})=>Gpe(t,e);Rn.stringify=(t,e={})=>typeof t=="string"?T1(Rn.parse(t,e),e):T1(t,e);Rn.compile=(t,e={})=>(typeof t=="string"&&(t=Rn.parse(t,e)),Upe(t,e));Rn.expand=(t,e={})=>{typeof t=="string"&&(t=Rn.parse(t,e));let r=Hpe(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};Rn.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?Rn.compile(t,e):Rn.expand(t,e);L1.exports=Rn});var dh=E((j$e,O1)=>{"use strict";var jpe=require("path"),io="\\\\/",K1=`[^${io}]`,ea="\\.",Ype="\\+",qpe="\\?",TE="\\/",Jpe="(?=.)",U1="[^/]",Vb=`(?:${TE}|$)`,H1=`(?:^|${TE})`,_b=`${ea}{1,2}${Vb}`,Wpe=`(?!${ea})`,zpe=`(?!${H1}${_b})`,Vpe=`(?!${ea}{0,1}${Vb})`,_pe=`(?!${_b})`,Xpe=`[^.${TE}]`,Zpe=`${U1}*?`,G1={DOT_LITERAL:ea,PLUS_LITERAL:Ype,QMARK_LITERAL:qpe,SLASH_LITERAL:TE,ONE_CHAR:Jpe,QMARK:U1,END_ANCHOR:Vb,DOTS_SLASH:_b,NO_DOT:Wpe,NO_DOTS:zpe,NO_DOT_SLASH:Vpe,NO_DOTS_SLASH:_pe,QMARK_NO_DOT:Xpe,STAR:Zpe,START_ANCHOR:H1},$pe=_(P({},G1),{SLASH_LITERAL:`[${io}]`,QMARK:K1,STAR:`${K1}*?`,DOTS_SLASH:`${ea}{1,2}(?:[${io}]|$)`,NO_DOT:`(?!${ea})`,NO_DOTS:`(?!(?:^|[${io}])${ea}{1,2}(?:[${io}]|$))`,NO_DOT_SLASH:`(?!${ea}{0,1}(?:[${io}]|$))`,NO_DOTS_SLASH:`(?!${ea}{1,2}(?:[${io}]|$))`,QMARK_NO_DOT:`[^.${io}]`,START_ANCHOR:`(?:^|[${io}])`,END_ANCHOR:`(?:[${io}]|$)`}),ede={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};O1.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:ede,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:jpe.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?$pe:G1}}});var Ch=E(cn=>{"use strict";var tde=require("path"),rde=process.platform==="win32",{REGEX_BACKSLASH:ide,REGEX_REMOVE_BACKSLASH:nde,REGEX_SPECIAL_CHARS:sde,REGEX_SPECIAL_CHARS_GLOBAL:ode}=dh();cn.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);cn.hasRegexChars=t=>sde.test(t);cn.isRegexChar=t=>t.length===1&&cn.hasRegexChars(t);cn.escapeRegex=t=>t.replace(ode,"\\$1");cn.toPosixSlashes=t=>t.replace(ide,"/");cn.removeBackslashes=t=>t.replace(nde,e=>e==="\\"?"":e);cn.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};cn.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:rde===!0||tde.sep==="\\";cn.escapeLast=(t,e,r)=>{let i=t.lastIndexOf(e,r);return i===-1?t:t[i-1]==="\\"?cn.escapeLast(t,e,i-1):`${t.slice(0,i)}\\${t.slice(i)}`};cn.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};cn.wrapOutput=(t,e={},r={})=>{let i=r.contains?"":"^",n=r.contains?"":"$",s=`${i}(?:${t})${n}`;return e.negated===!0&&(s=`(?:^(?!${s}).*$)`),s}});var X1=E((q$e,j1)=>{"use strict";var Y1=Ch(),{CHAR_ASTERISK:Xb,CHAR_AT:ade,CHAR_BACKWARD_SLASH:mh,CHAR_COMMA:Ade,CHAR_DOT:Zb,CHAR_EXCLAMATION_MARK:q1,CHAR_FORWARD_SLASH:J1,CHAR_LEFT_CURLY_BRACE:$b,CHAR_LEFT_PARENTHESES:ev,CHAR_LEFT_SQUARE_BRACKET:lde,CHAR_PLUS:cde,CHAR_QUESTION_MARK:W1,CHAR_RIGHT_CURLY_BRACE:ude,CHAR_RIGHT_PARENTHESES:z1,CHAR_RIGHT_SQUARE_BRACKET:gde}=dh(),V1=t=>t===J1||t===mh,_1=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?Infinity:1)},fde=(t,e)=>{let r=e||{},i=t.length-1,n=r.parts===!0||r.scanToEnd===!0,s=[],o=[],a=[],l=t,c=-1,u=0,g=0,f=!1,h=!1,p=!1,d=!1,m=!1,I=!1,B=!1,b=!1,R=!1,H=0,L,K,J={value:"",depth:0,isGlob:!1},ne=()=>c>=i,q=()=>l.charCodeAt(c+1),A=()=>(L=K,l.charCodeAt(++c));for(;c0&&(W=l.slice(0,u),l=l.slice(u),g-=u),V&&p===!0&&g>0?(V=l.slice(0,g),X=l.slice(g)):p===!0?(V="",X=l):V=l,V&&V!==""&&V!=="/"&&V!==l&&V1(V.charCodeAt(V.length-1))&&(V=V.slice(0,-1)),r.unescape===!0&&(X&&(X=Y1.removeBackslashes(X)),V&&B===!0&&(V=Y1.removeBackslashes(V)));let F={prefix:W,input:t,start:u,base:V,glob:X,isBrace:f,isBracket:h,isGlob:p,isExtglob:d,isGlobstar:m,negated:b};if(r.tokens===!0&&(F.maxDepth=0,V1(K)||o.push(J),F.tokens=o),r.parts===!0||r.tokens===!0){let D;for(let he=0;he{"use strict";var ME=dh(),Fn=Ch(),{MAX_LENGTH:OE,POSIX_REGEX_SOURCE:hde,REGEX_NON_SPECIAL_CHARS:pde,REGEX_SPECIAL_CHARS_BACKREF:dde,REPLACEMENTS:$1}=ME,Cde=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch(i){return t.map(n=>Fn.escapeRegex(n)).join("..")}return r},au=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,eU=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=$1[t]||t;let r=P({},e),i=typeof r.maxLength=="number"?Math.min(OE,r.maxLength):OE,n=t.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);let s={type:"bos",value:"",output:r.prepend||""},o=[s],a=r.capture?"":"?:",l=Fn.isWindows(e),c=ME.globChars(l),u=ME.extglobChars(c),{DOT_LITERAL:g,PLUS_LITERAL:f,SLASH_LITERAL:h,ONE_CHAR:p,DOTS_SLASH:d,NO_DOT:m,NO_DOT_SLASH:I,NO_DOTS_SLASH:B,QMARK:b,QMARK_NO_DOT:R,STAR:H,START_ANCHOR:L}=c,K=G=>`(${a}(?:(?!${L}${G.dot?d:g}).)*?)`,J=r.dot?"":m,ne=r.dot?b:R,q=r.bash===!0?K(r):H;r.capture&&(q=`(${q})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let A={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:o};t=Fn.removePrefix(t,A),n=t.length;let V=[],W=[],X=[],F=s,D,he=()=>A.index===n-1,pe=A.peek=(G=1)=>t[A.index+G],Ne=A.advance=()=>t[++A.index],Pe=()=>t.slice(A.index+1),qe=(G="",Ce=0)=>{A.consumed+=G,A.index+=Ce},re=G=>{A.output+=G.output!=null?G.output:G.value,qe(G.value)},se=()=>{let G=1;for(;pe()==="!"&&(pe(2)!=="("||pe(3)==="?");)Ne(),A.start++,G++;return G%2==0?!1:(A.negated=!0,A.start++,!0)},be=G=>{A[G]++,X.push(G)},ae=G=>{A[G]--,X.pop()},Ae=G=>{if(F.type==="globstar"){let Ce=A.braces>0&&(G.type==="comma"||G.type==="brace"),ee=G.extglob===!0||V.length&&(G.type==="pipe"||G.type==="paren");G.type!=="slash"&&G.type!=="paren"&&!Ce&&!ee&&(A.output=A.output.slice(0,-F.output.length),F.type="star",F.value="*",F.output=q,A.output+=F.output)}if(V.length&&G.type!=="paren"&&!u[G.value]&&(V[V.length-1].inner+=G.value),(G.value||G.output)&&re(G),F&&F.type==="text"&&G.type==="text"){F.value+=G.value,F.output=(F.output||"")+G.value;return}G.prev=F,o.push(G),F=G},De=(G,Ce)=>{let ee=_(P({},u[Ce]),{conditions:1,inner:""});ee.prev=F,ee.parens=A.parens,ee.output=A.output;let Ue=(r.capture?"(":"")+ee.open;be("parens"),Ae({type:G,value:Ce,output:A.output?"":p}),Ae({type:"paren",extglob:!0,value:Ne(),output:Ue}),V.push(ee)},$=G=>{let Ce=G.close+(r.capture?")":"");if(G.type==="negate"){let ee=q;G.inner&&G.inner.length>1&&G.inner.includes("/")&&(ee=K(r)),(ee!==q||he()||/^\)+$/.test(Pe()))&&(Ce=G.close=`)$))${ee}`),G.prev.type==="bos"&&(A.negatedExtglob=!0)}Ae({type:"paren",extglob:!0,value:D,output:Ce}),ae("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let G=!1,Ce=t.replace(dde,(ee,Ue,Oe,vt,dt,ri)=>vt==="\\"?(G=!0,ee):vt==="?"?Ue?Ue+vt+(dt?b.repeat(dt.length):""):ri===0?ne+(dt?b.repeat(dt.length):""):b.repeat(Oe.length):vt==="."?g.repeat(Oe.length):vt==="*"?Ue?Ue+vt+(dt?q:""):q:Ue?ee:`\\${ee}`);return G===!0&&(r.unescape===!0?Ce=Ce.replace(/\\/g,""):Ce=Ce.replace(/\\+/g,ee=>ee.length%2==0?"\\\\":ee?"\\":"")),Ce===t&&r.contains===!0?(A.output=t,A):(A.output=Fn.wrapOutput(Ce,A,e),A)}for(;!he();){if(D=Ne(),D==="\0")continue;if(D==="\\"){let ee=pe();if(ee==="/"&&r.bash!==!0||ee==="."||ee===";")continue;if(!ee){D+="\\",Ae({type:"text",value:D});continue}let Ue=/^\\+/.exec(Pe()),Oe=0;if(Ue&&Ue[0].length>2&&(Oe=Ue[0].length,A.index+=Oe,Oe%2!=0&&(D+="\\")),r.unescape===!0?D=Ne()||"":D+=Ne()||"",A.brackets===0){Ae({type:"text",value:D});continue}}if(A.brackets>0&&(D!=="]"||F.value==="["||F.value==="[^")){if(r.posix!==!1&&D===":"){let ee=F.value.slice(1);if(ee.includes("[")&&(F.posix=!0,ee.includes(":"))){let Ue=F.value.lastIndexOf("["),Oe=F.value.slice(0,Ue),vt=F.value.slice(Ue+2),dt=hde[vt];if(dt){F.value=Oe+dt,A.backtrack=!0,Ne(),!s.output&&o.indexOf(F)===1&&(s.output=p);continue}}}(D==="["&&pe()!==":"||D==="-"&&pe()==="]")&&(D=`\\${D}`),D==="]"&&(F.value==="["||F.value==="[^")&&(D=`\\${D}`),r.posix===!0&&D==="!"&&F.value==="["&&(D="^"),F.value+=D,re({value:D});continue}if(A.quotes===1&&D!=='"'){D=Fn.escapeRegex(D),F.value+=D,re({value:D});continue}if(D==='"'){A.quotes=A.quotes===1?0:1,r.keepQuotes===!0&&Ae({type:"text",value:D});continue}if(D==="("){be("parens"),Ae({type:"paren",value:D});continue}if(D===")"){if(A.parens===0&&r.strictBrackets===!0)throw new SyntaxError(au("opening","("));let ee=V[V.length-1];if(ee&&A.parens===ee.parens+1){$(V.pop());continue}Ae({type:"paren",value:D,output:A.parens?")":"\\)"}),ae("parens");continue}if(D==="["){if(r.nobracket===!0||!Pe().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(au("closing","]"));D=`\\${D}`}else be("brackets");Ae({type:"bracket",value:D});continue}if(D==="]"){if(r.nobracket===!0||F&&F.type==="bracket"&&F.value.length===1){Ae({type:"text",value:D,output:`\\${D}`});continue}if(A.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(au("opening","["));Ae({type:"text",value:D,output:`\\${D}`});continue}ae("brackets");let ee=F.value.slice(1);if(F.posix!==!0&&ee[0]==="^"&&!ee.includes("/")&&(D=`/${D}`),F.value+=D,re({value:D}),r.literalBrackets===!1||Fn.hasRegexChars(ee))continue;let Ue=Fn.escapeRegex(F.value);if(A.output=A.output.slice(0,-F.value.length),r.literalBrackets===!0){A.output+=Ue,F.value=Ue;continue}F.value=`(${a}${Ue}|${F.value})`,A.output+=F.value;continue}if(D==="{"&&r.nobrace!==!0){be("braces");let ee={type:"brace",value:D,output:"(",outputIndex:A.output.length,tokensIndex:A.tokens.length};W.push(ee),Ae(ee);continue}if(D==="}"){let ee=W[W.length-1];if(r.nobrace===!0||!ee){Ae({type:"text",value:D,output:D});continue}let Ue=")";if(ee.dots===!0){let Oe=o.slice(),vt=[];for(let dt=Oe.length-1;dt>=0&&(o.pop(),Oe[dt].type!=="brace");dt--)Oe[dt].type!=="dots"&&vt.unshift(Oe[dt].value);Ue=Cde(vt,r),A.backtrack=!0}if(ee.comma!==!0&&ee.dots!==!0){let Oe=A.output.slice(0,ee.outputIndex),vt=A.tokens.slice(ee.tokensIndex);ee.value=ee.output="\\{",D=Ue="\\}",A.output=Oe;for(let dt of vt)A.output+=dt.output||dt.value}Ae({type:"brace",value:D,output:Ue}),ae("braces"),W.pop();continue}if(D==="|"){V.length>0&&V[V.length-1].conditions++,Ae({type:"text",value:D});continue}if(D===","){let ee=D,Ue=W[W.length-1];Ue&&X[X.length-1]==="braces"&&(Ue.comma=!0,ee="|"),Ae({type:"comma",value:D,output:ee});continue}if(D==="/"){if(F.type==="dot"&&A.index===A.start+1){A.start=A.index+1,A.consumed="",A.output="",o.pop(),F=s;continue}Ae({type:"slash",value:D,output:h});continue}if(D==="."){if(A.braces>0&&F.type==="dot"){F.value==="."&&(F.output=g);let ee=W[W.length-1];F.type="dots",F.output+=D,F.value+=D,ee.dots=!0;continue}if(A.braces+A.parens===0&&F.type!=="bos"&&F.type!=="slash"){Ae({type:"text",value:D,output:g});continue}Ae({type:"dot",value:D,output:g});continue}if(D==="?"){if(!(F&&F.value==="(")&&r.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){De("qmark",D);continue}if(F&&F.type==="paren"){let Ue=pe(),Oe=D;if(Ue==="<"&&!Fn.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(F.value==="("&&!/[!=<:]/.test(Ue)||Ue==="<"&&!/<([!=]|\w+>)/.test(Pe()))&&(Oe=`\\${D}`),Ae({type:"text",value:D,output:Oe});continue}if(r.dot!==!0&&(F.type==="slash"||F.type==="bos")){Ae({type:"qmark",value:D,output:R});continue}Ae({type:"qmark",value:D,output:b});continue}if(D==="!"){if(r.noextglob!==!0&&pe()==="("&&(pe(2)!=="?"||!/[!=<:]/.test(pe(3)))){De("negate",D);continue}if(r.nonegate!==!0&&A.index===0){se();continue}}if(D==="+"){if(r.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){De("plus",D);continue}if(F&&F.value==="("||r.regex===!1){Ae({type:"plus",value:D,output:f});continue}if(F&&(F.type==="bracket"||F.type==="paren"||F.type==="brace")||A.parens>0){Ae({type:"plus",value:D});continue}Ae({type:"plus",value:f});continue}if(D==="@"){if(r.noextglob!==!0&&pe()==="("&&pe(2)!=="?"){Ae({type:"at",extglob:!0,value:D,output:""});continue}Ae({type:"text",value:D});continue}if(D!=="*"){(D==="$"||D==="^")&&(D=`\\${D}`);let ee=pde.exec(Pe());ee&&(D+=ee[0],A.index+=ee[0].length),Ae({type:"text",value:D});continue}if(F&&(F.type==="globstar"||F.star===!0)){F.type="star",F.star=!0,F.value+=D,F.output=q,A.backtrack=!0,A.globstar=!0,qe(D);continue}let G=Pe();if(r.noextglob!==!0&&/^\([^?]/.test(G)){De("star",D);continue}if(F.type==="star"){if(r.noglobstar===!0){qe(D);continue}let ee=F.prev,Ue=ee.prev,Oe=ee.type==="slash"||ee.type==="bos",vt=Ue&&(Ue.type==="star"||Ue.type==="globstar");if(r.bash===!0&&(!Oe||G[0]&&G[0]!=="/")){Ae({type:"star",value:D,output:""});continue}let dt=A.braces>0&&(ee.type==="comma"||ee.type==="brace"),ri=V.length&&(ee.type==="pipe"||ee.type==="paren");if(!Oe&&ee.type!=="paren"&&!dt&&!ri){Ae({type:"star",value:D,output:""});continue}for(;G.slice(0,3)==="/**";){let ii=t[A.index+4];if(ii&&ii!=="/")break;G=G.slice(3),qe("/**",3)}if(ee.type==="bos"&&he()){F.type="globstar",F.value+=D,F.output=K(r),A.output=F.output,A.globstar=!0,qe(D);continue}if(ee.type==="slash"&&ee.prev.type!=="bos"&&!vt&&he()){A.output=A.output.slice(0,-(ee.output+F.output).length),ee.output=`(?:${ee.output}`,F.type="globstar",F.output=K(r)+(r.strictSlashes?")":"|$)"),F.value+=D,A.globstar=!0,A.output+=ee.output+F.output,qe(D);continue}if(ee.type==="slash"&&ee.prev.type!=="bos"&&G[0]==="/"){let ii=G[1]!==void 0?"|$":"";A.output=A.output.slice(0,-(ee.output+F.output).length),ee.output=`(?:${ee.output}`,F.type="globstar",F.output=`${K(r)}${h}|${h}${ii})`,F.value+=D,A.output+=ee.output+F.output,A.globstar=!0,qe(D+Ne()),Ae({type:"slash",value:"/",output:""});continue}if(ee.type==="bos"&&G[0]==="/"){F.type="globstar",F.value+=D,F.output=`(?:^|${h}|${K(r)}${h})`,A.output=F.output,A.globstar=!0,qe(D+Ne()),Ae({type:"slash",value:"/",output:""});continue}A.output=A.output.slice(0,-F.output.length),F.type="globstar",F.output=K(r),F.value+=D,A.output+=F.output,A.globstar=!0,qe(D);continue}let Ce={type:"star",value:D,output:q};if(r.bash===!0){Ce.output=".*?",(F.type==="bos"||F.type==="slash")&&(Ce.output=J+Ce.output),Ae(Ce);continue}if(F&&(F.type==="bracket"||F.type==="paren")&&r.regex===!0){Ce.output=D,Ae(Ce);continue}(A.index===A.start||F.type==="slash"||F.type==="dot")&&(F.type==="dot"?(A.output+=I,F.output+=I):r.dot===!0?(A.output+=B,F.output+=B):(A.output+=J,F.output+=J),pe()!=="*"&&(A.output+=p,F.output+=p)),Ae(Ce)}for(;A.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(au("closing","]"));A.output=Fn.escapeLast(A.output,"["),ae("brackets")}for(;A.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(au("closing",")"));A.output=Fn.escapeLast(A.output,"("),ae("parens")}for(;A.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(au("closing","}"));A.output=Fn.escapeLast(A.output,"{"),ae("braces")}if(r.strictSlashes!==!0&&(F.type==="star"||F.type==="bracket")&&Ae({type:"maybe_slash",value:"",output:`${h}?`}),A.backtrack===!0){A.output="";for(let G of A.tokens)A.output+=G.output!=null?G.output:G.value,G.suffix&&(A.output+=G.suffix)}return A};eU.fastpaths=(t,e)=>{let r=P({},e),i=typeof r.maxLength=="number"?Math.min(OE,r.maxLength):OE,n=t.length;if(n>i)throw new SyntaxError(`Input length: ${n}, exceeds maximum allowed length: ${i}`);t=$1[t]||t;let s=Fn.isWindows(e),{DOT_LITERAL:o,SLASH_LITERAL:a,ONE_CHAR:l,DOTS_SLASH:c,NO_DOT:u,NO_DOTS:g,NO_DOTS_SLASH:f,STAR:h,START_ANCHOR:p}=ME.globChars(s),d=r.dot?g:u,m=r.dot?f:u,I=r.capture?"":"?:",B={negated:!1,prefix:""},b=r.bash===!0?".*?":h;r.capture&&(b=`(${b})`);let R=J=>J.noglobstar===!0?b:`(${I}(?:(?!${p}${J.dot?c:o}).)*?)`,H=J=>{switch(J){case"*":return`${d}${l}${b}`;case".*":return`${o}${l}${b}`;case"*.*":return`${d}${b}${o}${l}${b}`;case"*/*":return`${d}${b}${a}${l}${m}${b}`;case"**":return d+R(r);case"**/*":return`(?:${d}${R(r)}${a})?${m}${l}${b}`;case"**/*.*":return`(?:${d}${R(r)}${a})?${m}${b}${o}${l}${b}`;case"**/.*":return`(?:${d}${R(r)}${a})?${o}${l}${b}`;default:{let ne=/^(.*?)\.(\w+)$/.exec(J);if(!ne)return;let q=H(ne[1]);return q?q+o+ne[2]:void 0}}},L=Fn.removePrefix(t,B),K=H(L);return K&&r.strictSlashes!==!0&&(K+=`${a}?`),K};Z1.exports=eU});var iU=E((W$e,rU)=>{"use strict";var mde=require("path"),Ede=X1(),tv=tU(),rv=Ch(),Ide=dh(),yde=t=>t&&typeof t=="object"&&!Array.isArray(t),Dr=(t,e,r=!1)=>{if(Array.isArray(t)){let u=t.map(f=>Dr(f,e,r));return f=>{for(let h of u){let p=h(f);if(p)return p}return!1}}let i=yde(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!i)throw new TypeError("Expected pattern to be a non-empty string");let n=e||{},s=rv.isWindows(e),o=i?Dr.compileRe(t,e):Dr.makeRe(t,e,!1,!0),a=o.state;delete o.state;let l=()=>!1;if(n.ignore){let u=_(P({},e),{ignore:null,onMatch:null,onResult:null});l=Dr(n.ignore,u,r)}let c=(u,g=!1)=>{let{isMatch:f,match:h,output:p}=Dr.test(u,o,e,{glob:t,posix:s}),d={glob:t,state:a,regex:o,posix:s,input:u,output:p,match:h,isMatch:f};return typeof n.onResult=="function"&&n.onResult(d),f===!1?(d.isMatch=!1,g?d:!1):l(u)?(typeof n.onIgnore=="function"&&n.onIgnore(d),d.isMatch=!1,g?d:!1):(typeof n.onMatch=="function"&&n.onMatch(d),g?d:!0)};return r&&(c.state=a),c};Dr.test=(t,e,r,{glob:i,posix:n}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let s=r||{},o=s.format||(n?rv.toPosixSlashes:null),a=t===i,l=a&&o?o(t):t;return a===!1&&(l=o?o(t):t,a=l===i),(a===!1||s.capture===!0)&&(s.matchBase===!0||s.basename===!0?a=Dr.matchBase(t,e,r,n):a=e.exec(l)),{isMatch:Boolean(a),match:a,output:l}};Dr.matchBase=(t,e,r,i=rv.isWindows(r))=>(e instanceof RegExp?e:Dr.makeRe(e,r)).test(mde.basename(t));Dr.isMatch=(t,e,r)=>Dr(e,r)(t);Dr.parse=(t,e)=>Array.isArray(t)?t.map(r=>Dr.parse(r,e)):tv(t,_(P({},e),{fastpaths:!1}));Dr.scan=(t,e)=>Ede(t,e);Dr.compileRe=(t,e,r=!1,i=!1)=>{if(r===!0)return t.output;let n=e||{},s=n.contains?"":"^",o=n.contains?"":"$",a=`${s}(?:${t.output})${o}`;t&&t.negated===!0&&(a=`^(?!${a}).*$`);let l=Dr.toRegex(a,e);return i===!0&&(l.state=t),l};Dr.makeRe=(t,e,r=!1,i=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let n=e||{},s={negated:!1,fastpaths:!0},o="",a;return t.startsWith("./")&&(t=t.slice(2),o=s.prefix="./"),n.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a=tv.fastpaths(t,e)),a===void 0?(s=tv(t,e),s.prefix=o+(s.prefix||"")):s.output=a,Dr.compileRe(s,e,r,i)};Dr.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Dr.constants=Ide;rU.exports=Dr});var iv=E((z$e,nU)=>{"use strict";nU.exports=iU()});var Nn=E((V$e,sU)=>{"use strict";var oU=require("util"),aU=M1(),no=iv(),nv=Ch(),AU=t=>typeof t=="string"&&(t===""||t==="./"),pr=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let i=new Set,n=new Set,s=new Set,o=0,a=u=>{s.add(u.output),r&&r.onResult&&r.onResult(u)};for(let u=0;u!i.has(u));if(r&&c.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(u=>u.replace(/\\/g,"")):e}return c};pr.match=pr;pr.matcher=(t,e)=>no(t,e);pr.isMatch=(t,e,r)=>no(e,r)(t);pr.any=pr.isMatch;pr.not=(t,e,r={})=>{e=[].concat(e).map(String);let i=new Set,n=[],s=a=>{r.onResult&&r.onResult(a),n.push(a.output)},o=pr(t,e,_(P({},r),{onResult:s}));for(let a of n)o.includes(a)||i.add(a);return[...i]};pr.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${oU.inspect(t)}"`);if(Array.isArray(e))return e.some(i=>pr.contains(t,i,r));if(typeof e=="string"){if(AU(t)||AU(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return pr.isMatch(t,e,_(P({},r),{contains:!0}))};pr.matchKeys=(t,e,r)=>{if(!nv.isObject(t))throw new TypeError("Expected the first argument to be an object");let i=pr(Object.keys(t),e,r),n={};for(let s of i)n[s]=t[s];return n};pr.some=(t,e,r)=>{let i=[].concat(t);for(let n of[].concat(e)){let s=no(String(n),r);if(i.some(o=>s(o)))return!0}return!1};pr.every=(t,e,r)=>{let i=[].concat(t);for(let n of[].concat(e)){let s=no(String(n),r);if(!i.every(o=>s(o)))return!1}return!0};pr.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${oU.inspect(t)}"`);return[].concat(e).every(i=>no(i,r)(t))};pr.capture=(t,e,r)=>{let i=nv.isWindows(r),s=no.makeRe(String(t),_(P({},r),{capture:!0})).exec(i?nv.toPosixSlashes(e):e);if(s)return s.slice(1).map(o=>o===void 0?"":o)};pr.makeRe=(...t)=>no.makeRe(...t);pr.scan=(...t)=>no.scan(...t);pr.parse=(t,e)=>{let r=[];for(let i of[].concat(t||[]))for(let n of aU(String(i),e))r.push(no.parse(n,e));return r};pr.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:aU(t,e)};pr.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return pr.braces(t,_(P({},e),{expand:!0}))};sU.exports=pr});var cU=E((_$e,lU)=>{"use strict";lU.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var gU=E((X$e,uU)=>{"use strict";var wde=cU();uU.exports=t=>typeof t=="string"?t.replace(wde(),""):t});var lu={};it(lu,{KeyRelationship:()=>Bl,applyCascade:()=>fv,base64RegExp:()=>CU,colorStringAlphaRegExp:()=>dU,colorStringRegExp:()=>pU,computeKey:()=>rA,getPrintable:()=>Mr,hasExactLength:()=>wU,hasForbiddenKeys:()=>eCe,hasKeyRelationship:()=>pv,hasMaxLength:()=>Mde,hasMinLength:()=>Tde,hasMutuallyExclusiveKeys:()=>tCe,hasRequiredKeys:()=>$de,hasUniqueItems:()=>Ode,isArray:()=>xde,isAtLeast:()=>Hde,isAtMost:()=>Gde,isBase64:()=>Xde,isBoolean:()=>bde,isDate:()=>Sde,isDict:()=>Pde,isEnum:()=>Yi,isHexColor:()=>_de,isISO8601:()=>Vde,isInExclusiveRange:()=>Yde,isInInclusiveRange:()=>jde,isInstanceOf:()=>Rde,isInteger:()=>qde,isJSON:()=>Zde,isLiteral:()=>Bde,isLowerCase:()=>Jde,isNegative:()=>Kde,isNullable:()=>Lde,isNumber:()=>vde,isObject:()=>Dde,isOneOf:()=>Fde,isOptional:()=>Nde,isPositive:()=>Ude,isString:()=>gv,isTuple:()=>kde,isUUID4:()=>zde,isUnknown:()=>yU,isUpperCase:()=>Wde,iso8601RegExp:()=>uv,makeCoercionFn:()=>wl,makeSetter:()=>IU,makeTrait:()=>EU,makeValidator:()=>Ct,matchesRegExp:()=>hv,plural:()=>GE,pushError:()=>at,simpleKeyRegExp:()=>hU,uuid4RegExp:()=>mU});function Ct({test:t}){return EU(t)()}function Mr(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":JSON.stringify(t)}function rA(t,e){var r,i,n;return typeof e=="number"?`${(r=t==null?void 0:t.p)!==null&&r!==void 0?r:"."}[${e}]`:hU.test(e)?`${(i=t==null?void 0:t.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=t==null?void 0:t.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function wl(t,e){return r=>{let i=t[e];return t[e]=r,wl(t,e).bind(null,i)}}function IU(t,e){return r=>{t[e]=r}}function GE(t,e,r){return t===1?e:r}function at({errors:t,p:e}={},r){return t==null||t.push(`${e!=null?e:"."}: ${r}`),!1}function Bde(t){return Ct({test:(e,r)=>e!==t?at(r,`Expected a literal (got ${Mr(t)})`):!0})}function Yi(t){let e=Array.isArray(t)?t:Object.values(t),r=new Set(e);return Ct({test:(i,n)=>r.has(i)?!0:at(n,`Expected a valid enumeration value (got ${Mr(i)})`)})}var hU,pU,dU,CU,mU,uv,EU,yU,gv,Qde,bde,vde,Sde,xde,kde,Pde,Dde,Rde,Fde,fv,Nde,Lde,Tde,Mde,wU,Ode,Kde,Ude,Hde,Gde,jde,Yde,qde,hv,Jde,Wde,zde,Vde,_de,Xde,Zde,$de,eCe,tCe,Bl,rCe,pv,Ss=Yfe(()=>{hU=/^[a-zA-Z_][a-zA-Z0-9_]*$/,pU=/^#[0-9a-f]{6}$/i,dU=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,CU=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,mU=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,uv=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,EU=t=>()=>t;yU=()=>Ct({test:(t,e)=>!0});gv=()=>Ct({test:(t,e)=>typeof t!="string"?at(e,`Expected a string (got ${Mr(t)})`):!0});Qde=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),bde=()=>Ct({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return at(e,"Unbound coercion result");let i=Qde.get(t);if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return at(e,`Expected a boolean (got ${Mr(t)})`)}return!0}}),vde=()=>Ct({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return at(e,"Unbound coercion result");let i;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch(s){}if(typeof n=="number")if(JSON.stringify(n)===t)i=n;else return at(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return at(e,`Expected a number (got ${Mr(t)})`)}return!0}}),Sde=()=>Ct({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof(e==null?void 0:e.coercions)!="undefined"){if(typeof(e==null?void 0:e.coercion)=="undefined")return at(e,"Unbound coercion result");let i;if(typeof t=="string"&&uv.test(t))i=new Date(t);else{let n;if(typeof t=="string"){let s;try{s=JSON.parse(t)}catch(o){}typeof s=="number"&&(n=s)}else typeof t=="number"&&(n=t);if(typeof n!="undefined")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return at(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof i!="undefined")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,i)]),!0}return at(e,`Expected a date (got ${Mr(t)})`)}return!0}}),xde=(t,{delimiter:e}={})=>Ct({test:(r,i)=>{var n;if(typeof r=="string"&&typeof e!="undefined"&&typeof(i==null?void 0:i.coercions)!="undefined"){if(typeof(i==null?void 0:i.coercion)=="undefined")return at(i,"Unbound coercion result");r=r.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,r)])}if(!Array.isArray(r))return at(i,`Expected an array (got ${Mr(r)})`);let s=!0;for(let o=0,a=r.length;o{let r=wU(t.length);return Ct({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e!="undefined"&&typeof(n==null?void 0:n.coercions)!="undefined"){if(typeof(n==null?void 0:n.coercion)=="undefined")return at(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return at(n,`Expected a tuple (got ${Mr(i)})`);let o=r(i,Object.assign({},n));for(let a=0,l=i.length;aCt({test:(r,i)=>{if(typeof r!="object"||r===null)return at(i,`Expected an object (got ${Mr(r)})`);let n=Object.keys(r),s=!0;for(let o=0,a=n.length;o{let r=Object.keys(t);return Ct({test:(i,n)=>{if(typeof i!="object"||i===null)return at(n,`Expected an object (got ${Mr(i)})`);let s=new Set([...r,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=at(Object.assign(Object.assign({},n),{p:rA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(t,l)?t[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c!="undefined"?a=c(u,Object.assign(Object.assign({},n),{p:rA(n,l),coercion:wl(i,l)}))&&a:e===null?a=at(Object.assign(Object.assign({},n),{p:rA(n,l)}),`Extraneous property (got ${Mr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:IU(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Rde=t=>Ct({test:(e,r)=>e instanceof t?!0:at(r,`Expected an instance of ${t.name} (got ${Mr(e)})`)}),Fde=(t,{exclusive:e=!1}={})=>Ct({test:(r,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)!="undefined"?[]:void 0;for(let c=0,u=t.length;c1?at(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),fv=(t,e)=>Ct({test:(r,i)=>{var n,s;let o={value:r},a=typeof(i==null?void 0:i.coercions)!="undefined"?wl(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)!="undefined"?[]:void 0;if(!t(r,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l!="undefined")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)!="undefined"){if(o.value!==r){if(typeof(i==null?void 0:i.coercion)=="undefined")return at(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Nde=t=>Ct({test:(e,r)=>typeof e=="undefined"?!0:t(e,r)}),Lde=t=>Ct({test:(e,r)=>e===null?!0:t(e,r)}),Tde=t=>Ct({test:(e,r)=>e.length>=t?!0:at(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)}),Mde=t=>Ct({test:(e,r)=>e.length<=t?!0:at(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)}),wU=t=>Ct({test:(e,r)=>e.length!==t?at(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0}),Ode=({map:t}={})=>Ct({test:(e,r)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sCt({test:(t,e)=>t<=0?!0:at(e,`Expected to be negative (got ${t})`)}),Ude=()=>Ct({test:(t,e)=>t>=0?!0:at(e,`Expected to be positive (got ${t})`)}),Hde=t=>Ct({test:(e,r)=>e>=t?!0:at(r,`Expected to be at least ${t} (got ${e})`)}),Gde=t=>Ct({test:(e,r)=>e<=t?!0:at(r,`Expected to be at most ${t} (got ${e})`)}),jde=(t,e)=>Ct({test:(r,i)=>r>=t&&r<=e?!0:at(i,`Expected to be in the [${t}; ${e}] range (got ${r})`)}),Yde=(t,e)=>Ct({test:(r,i)=>r>=t&&rCt({test:(e,r)=>e!==Math.round(e)?at(r,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:at(r,`Expected to be a safe integer (got ${e})`)}),hv=t=>Ct({test:(e,r)=>t.test(e)?!0:at(r,`Expected to match the pattern ${t.toString()} (got ${Mr(e)})`)}),Jde=()=>Ct({test:(t,e)=>t!==t.toLowerCase()?at(e,`Expected to be all-lowercase (got ${t})`):!0}),Wde=()=>Ct({test:(t,e)=>t!==t.toUpperCase()?at(e,`Expected to be all-uppercase (got ${t})`):!0}),zde=()=>Ct({test:(t,e)=>mU.test(t)?!0:at(e,`Expected to be a valid UUID v4 (got ${Mr(t)})`)}),Vde=()=>Ct({test:(t,e)=>uv.test(t)?!1:at(e,`Expected to be a valid ISO 8601 date string (got ${Mr(t)})`)}),_de=({alpha:t=!1})=>Ct({test:(e,r)=>(t?pU.test(e):dU.test(e))?!0:at(r,`Expected to be a valid hexadecimal color string (got ${Mr(e)})`)}),Xde=()=>Ct({test:(t,e)=>CU.test(t)?!0:at(e,`Expected to be a valid base 64 string (got ${Mr(t)})`)}),Zde=(t=yU())=>Ct({test:(e,r)=>{let i;try{i=JSON.parse(e)}catch(n){return at(r,`Expected to be a valid JSON string (got ${Mr(e)})`)}return t(i,r)}}),$de=t=>{let e=new Set(t);return Ct({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?at(i,`Missing required ${GE(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},eCe=t=>{let e=new Set(t);return Ct({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?at(i,`Forbidden ${GE(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tCe=t=>{let e=new Set(t);return Ct({test:(r,i)=>{let n=new Set(Object.keys(r)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?at(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Bl||(Bl={}));rCe={[Bl.Forbids]:{expect:!1,message:"forbids using"},[Bl.Requires]:{expect:!0,message:"requires using"}},pv=(t,e,r,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(r),o=rCe[e];return Ct({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(t)||n.has(a[t]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?at(l,`Property "${t}" ${o.message} ${GE(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var Sh=E(($et,OU)=>{var mCe="2.0.0",ECe=256,ICe=Number.MAX_SAFE_INTEGER||9007199254740991,yCe=16;OU.exports={SEMVER_SPEC_VERSION:mCe,MAX_LENGTH:ECe,MAX_SAFE_INTEGER:ICe,MAX_SAFE_COMPONENT_LENGTH:yCe}});var xh=E((ett,KU)=>{var wCe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};KU.exports=wCe});var Ql=E((iA,UU)=>{var{MAX_SAFE_COMPONENT_LENGTH:yv}=Sh(),BCe=xh();iA=UU.exports={};var QCe=iA.re=[],Je=iA.src=[],We=iA.t={},bCe=0,mt=(t,e,r)=>{let i=bCe++;BCe(i,e),We[t]=i,Je[i]=e,QCe[i]=new RegExp(e,r?"g":void 0)};mt("NUMERICIDENTIFIER","0|[1-9]\\d*");mt("NUMERICIDENTIFIERLOOSE","[0-9]+");mt("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");mt("MAINVERSION",`(${Je[We.NUMERICIDENTIFIER]})\\.(${Je[We.NUMERICIDENTIFIER]})\\.(${Je[We.NUMERICIDENTIFIER]})`);mt("MAINVERSIONLOOSE",`(${Je[We.NUMERICIDENTIFIERLOOSE]})\\.(${Je[We.NUMERICIDENTIFIERLOOSE]})\\.(${Je[We.NUMERICIDENTIFIERLOOSE]})`);mt("PRERELEASEIDENTIFIER",`(?:${Je[We.NUMERICIDENTIFIER]}|${Je[We.NONNUMERICIDENTIFIER]})`);mt("PRERELEASEIDENTIFIERLOOSE",`(?:${Je[We.NUMERICIDENTIFIERLOOSE]}|${Je[We.NONNUMERICIDENTIFIER]})`);mt("PRERELEASE",`(?:-(${Je[We.PRERELEASEIDENTIFIER]}(?:\\.${Je[We.PRERELEASEIDENTIFIER]})*))`);mt("PRERELEASELOOSE",`(?:-?(${Je[We.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${Je[We.PRERELEASEIDENTIFIERLOOSE]})*))`);mt("BUILDIDENTIFIER","[0-9A-Za-z-]+");mt("BUILD",`(?:\\+(${Je[We.BUILDIDENTIFIER]}(?:\\.${Je[We.BUILDIDENTIFIER]})*))`);mt("FULLPLAIN",`v?${Je[We.MAINVERSION]}${Je[We.PRERELEASE]}?${Je[We.BUILD]}?`);mt("FULL",`^${Je[We.FULLPLAIN]}$`);mt("LOOSEPLAIN",`[v=\\s]*${Je[We.MAINVERSIONLOOSE]}${Je[We.PRERELEASELOOSE]}?${Je[We.BUILD]}?`);mt("LOOSE",`^${Je[We.LOOSEPLAIN]}$`);mt("GTLT","((?:<|>)?=?)");mt("XRANGEIDENTIFIERLOOSE",`${Je[We.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);mt("XRANGEIDENTIFIER",`${Je[We.NUMERICIDENTIFIER]}|x|X|\\*`);mt("XRANGEPLAIN",`[v=\\s]*(${Je[We.XRANGEIDENTIFIER]})(?:\\.(${Je[We.XRANGEIDENTIFIER]})(?:\\.(${Je[We.XRANGEIDENTIFIER]})(?:${Je[We.PRERELEASE]})?${Je[We.BUILD]}?)?)?`);mt("XRANGEPLAINLOOSE",`[v=\\s]*(${Je[We.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Je[We.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Je[We.XRANGEIDENTIFIERLOOSE]})(?:${Je[We.PRERELEASELOOSE]})?${Je[We.BUILD]}?)?)?`);mt("XRANGE",`^${Je[We.GTLT]}\\s*${Je[We.XRANGEPLAIN]}$`);mt("XRANGELOOSE",`^${Je[We.GTLT]}\\s*${Je[We.XRANGEPLAINLOOSE]}$`);mt("COERCE",`(^|[^\\d])(\\d{1,${yv}})(?:\\.(\\d{1,${yv}}))?(?:\\.(\\d{1,${yv}}))?(?:$|[^\\d])`);mt("COERCERTL",Je[We.COERCE],!0);mt("LONETILDE","(?:~>?)");mt("TILDETRIM",`(\\s*)${Je[We.LONETILDE]}\\s+`,!0);iA.tildeTrimReplace="$1~";mt("TILDE",`^${Je[We.LONETILDE]}${Je[We.XRANGEPLAIN]}$`);mt("TILDELOOSE",`^${Je[We.LONETILDE]}${Je[We.XRANGEPLAINLOOSE]}$`);mt("LONECARET","(?:\\^)");mt("CARETTRIM",`(\\s*)${Je[We.LONECARET]}\\s+`,!0);iA.caretTrimReplace="$1^";mt("CARET",`^${Je[We.LONECARET]}${Je[We.XRANGEPLAIN]}$`);mt("CARETLOOSE",`^${Je[We.LONECARET]}${Je[We.XRANGEPLAINLOOSE]}$`);mt("COMPARATORLOOSE",`^${Je[We.GTLT]}\\s*(${Je[We.LOOSEPLAIN]})$|^$`);mt("COMPARATOR",`^${Je[We.GTLT]}\\s*(${Je[We.FULLPLAIN]})$|^$`);mt("COMPARATORTRIM",`(\\s*)${Je[We.GTLT]}\\s*(${Je[We.LOOSEPLAIN]}|${Je[We.XRANGEPLAIN]})`,!0);iA.comparatorTrimReplace="$1$2$3";mt("HYPHENRANGE",`^\\s*(${Je[We.XRANGEPLAIN]})\\s+-\\s+(${Je[We.XRANGEPLAIN]})\\s*$`);mt("HYPHENRANGELOOSE",`^\\s*(${Je[We.XRANGEPLAINLOOSE]})\\s+-\\s+(${Je[We.XRANGEPLAINLOOSE]})\\s*$`);mt("STAR","(<|>)?=?\\s*\\*");mt("GTE0","^\\s*>=\\s*0.0.0\\s*$");mt("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var kh=E((ttt,HU)=>{var vCe=["includePrerelease","loose","rtl"],SCe=t=>t?typeof t!="object"?{loose:!0}:vCe.filter(e=>t[e]).reduce((e,r)=>(e[r]=!0,e),{}):{};HU.exports=SCe});var zE=E((rtt,GU)=>{var jU=/^[0-9]+$/,YU=(t,e)=>{let r=jU.test(t),i=jU.test(e);return r&&i&&(t=+t,e=+e),t===e?0:r&&!i?-1:i&&!r?1:tYU(e,t);GU.exports={compareIdentifiers:YU,rcompareIdentifiers:xCe}});var bi=E((itt,qU)=>{var VE=xh(),{MAX_LENGTH:JU,MAX_SAFE_INTEGER:_E}=Sh(),{re:WU,t:zU}=Ql(),kCe=kh(),{compareIdentifiers:Ph}=zE(),_n=class{constructor(e,r){if(r=kCe(r),e instanceof _n){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>JU)throw new TypeError(`version is longer than ${JU} characters`);VE("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let i=e.trim().match(r.loose?WU[zU.LOOSE]:WU[zU.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>_E||this.major<0)throw new TypeError("Invalid major version");if(this.minor>_E||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>_E||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<_E)return s}return n}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(e){if(VE("SemVer.compare",this.version,this.options,e),!(e instanceof _n)){if(typeof e=="string"&&e===this.version)return 0;e=new _n(e,this.options)}return e.version===this.version?0:this.compareMain(e)||this.comparePre(e)}compareMain(e){return e instanceof _n||(e=new _n(e,this.options)),Ph(this.major,e.major)||Ph(this.minor,e.minor)||Ph(this.patch,e.patch)}comparePre(e){if(e instanceof _n||(e=new _n(e,this.options)),this.prerelease.length&&!e.prerelease.length)return-1;if(!this.prerelease.length&&e.prerelease.length)return 1;if(!this.prerelease.length&&!e.prerelease.length)return 0;let r=0;do{let i=this.prerelease[r],n=e.prerelease[r];if(VE("prerelease compare",r,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return Ph(i,n)}while(++r)}compareBuild(e){e instanceof _n||(e=new _n(e,this.options));let r=0;do{let i=this.build[r],n=e.build[r];if(VE("prerelease compare",r,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return Ph(i,n)}while(++r)}inc(e,r){switch(e){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r),this.inc("pre",r);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r),this.inc("pre",r);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":if(this.prerelease.length===0)this.prerelease=[0];else{let i=this.prerelease.length;for(;--i>=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}r&&(this.prerelease[0]===r?isNaN(this.prerelease[1])&&(this.prerelease=[r,0]):this.prerelease=[r,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};qU.exports=_n});var bl=E((ntt,VU)=>{var{MAX_LENGTH:PCe}=Sh(),{re:_U,t:XU}=Ql(),ZU=bi(),DCe=kh(),RCe=(t,e)=>{if(e=DCe(e),t instanceof ZU)return t;if(typeof t!="string"||t.length>PCe||!(e.loose?_U[XU.LOOSE]:_U[XU.FULL]).test(t))return null;try{return new ZU(t,e)}catch(i){return null}};VU.exports=RCe});var e2=E((stt,$U)=>{var FCe=bl(),NCe=(t,e)=>{let r=FCe(t,e);return r?r.version:null};$U.exports=NCe});var r2=E((ott,t2)=>{var LCe=bl(),TCe=(t,e)=>{let r=LCe(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};t2.exports=TCe});var n2=E((att,i2)=>{var MCe=bi(),OCe=(t,e,r,i)=>{typeof r=="string"&&(i=r,r=void 0);try{return new MCe(t,r).inc(e,i).version}catch(n){return null}};i2.exports=OCe});var Xn=E((Att,s2)=>{var o2=bi(),KCe=(t,e,r)=>new o2(t,r).compare(new o2(e,r));s2.exports=KCe});var XE=E((ltt,a2)=>{var UCe=Xn(),HCe=(t,e,r)=>UCe(t,e,r)===0;a2.exports=HCe});var c2=E((ctt,A2)=>{var l2=bl(),GCe=XE(),jCe=(t,e)=>{if(GCe(t,e))return null;{let r=l2(t),i=l2(e),n=r.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in r)if((a==="major"||a==="minor"||a==="patch")&&r[a]!==i[a])return s+a;return o}};A2.exports=jCe});var g2=E((utt,u2)=>{var YCe=bi(),qCe=(t,e)=>new YCe(t,e).major;u2.exports=qCe});var h2=E((gtt,f2)=>{var JCe=bi(),WCe=(t,e)=>new JCe(t,e).minor;f2.exports=WCe});var d2=E((ftt,p2)=>{var zCe=bi(),VCe=(t,e)=>new zCe(t,e).patch;p2.exports=VCe});var m2=E((htt,C2)=>{var _Ce=bl(),XCe=(t,e)=>{let r=_Ce(t,e);return r&&r.prerelease.length?r.prerelease:null};C2.exports=XCe});var I2=E((ptt,E2)=>{var ZCe=Xn(),$Ce=(t,e,r)=>ZCe(e,t,r);E2.exports=$Ce});var w2=E((dtt,y2)=>{var eme=Xn(),tme=(t,e)=>eme(t,e,!0);y2.exports=tme});var ZE=E((Ctt,B2)=>{var Q2=bi(),rme=(t,e,r)=>{let i=new Q2(t,r),n=new Q2(e,r);return i.compare(n)||i.compareBuild(n)};B2.exports=rme});var v2=E((mtt,b2)=>{var ime=ZE(),nme=(t,e)=>t.sort((r,i)=>ime(r,i,e));b2.exports=nme});var x2=E((Ett,S2)=>{var sme=ZE(),ome=(t,e)=>t.sort((r,i)=>sme(i,r,e));S2.exports=ome});var Dh=E((Itt,k2)=>{var ame=Xn(),Ame=(t,e,r)=>ame(t,e,r)>0;k2.exports=Ame});var $E=E((ytt,P2)=>{var lme=Xn(),cme=(t,e,r)=>lme(t,e,r)<0;P2.exports=cme});var wv=E((wtt,D2)=>{var ume=Xn(),gme=(t,e,r)=>ume(t,e,r)!==0;D2.exports=gme});var eI=E((Btt,R2)=>{var fme=Xn(),hme=(t,e,r)=>fme(t,e,r)>=0;R2.exports=hme});var tI=E((Qtt,F2)=>{var pme=Xn(),dme=(t,e,r)=>pme(t,e,r)<=0;F2.exports=dme});var Bv=E((btt,N2)=>{var Cme=XE(),mme=wv(),Eme=Dh(),Ime=eI(),yme=$E(),wme=tI(),Bme=(t,e,r,i)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return Cme(t,r,i);case"!=":return mme(t,r,i);case">":return Eme(t,r,i);case">=":return Ime(t,r,i);case"<":return yme(t,r,i);case"<=":return wme(t,r,i);default:throw new TypeError(`Invalid operator: ${e}`)}};N2.exports=Bme});var T2=E((vtt,L2)=>{var Qme=bi(),bme=bl(),{re:rI,t:iI}=Ql(),vme=(t,e)=>{if(t instanceof Qme)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(rI[iI.COERCE]);else{let i;for(;(i=rI[iI.COERCERTL].exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||i.index+i[0].length!==r.index+r[0].length)&&(r=i),rI[iI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;rI[iI.COERCERTL].lastIndex=-1}return r===null?null:bme(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,e)};L2.exports=vme});var O2=E((Stt,M2)=>{"use strict";M2.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var Rh=E((xtt,K2)=>{"use strict";K2.exports=Pt;Pt.Node=vl;Pt.create=Pt;function Pt(t){var e=this;if(e instanceof Pt||(e=new Pt),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var r=0,i=arguments.length;r1)r=e;else if(this.head)i=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)r=t(r,i.value,n),i=i.next;return r};Pt.prototype.reduceReverse=function(t,e){var r,i=this.tail;if(arguments.length>1)r=e;else if(this.tail)i=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)r=t(r,i.value,n),i=i.prev;return r};Pt.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};Pt.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};Pt.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Pt;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>t;i--,n=n.prev)r.push(n.value);return r};Pt.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var i=0,n=this.head;n!==null&&i{"use strict";var Pme=Rh(),Sl=Symbol("max"),ra=Symbol("length"),uu=Symbol("lengthCalculator"),Fh=Symbol("allowStale"),xl=Symbol("maxAge"),ia=Symbol("dispose"),H2=Symbol("noDisposeOnSet"),si=Symbol("lruList"),ks=Symbol("cache"),G2=Symbol("updateAgeOnGet"),Qv=()=>1,j2=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[Sl]=e.max||Infinity,i=e.length||Qv;if(this[uu]=typeof i!="function"?Qv:i,this[Fh]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[xl]=e.maxAge||0,this[ia]=e.dispose,this[H2]=e.noDisposeOnSet||!1,this[G2]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[Sl]=e||Infinity,Nh(this)}get max(){return this[Sl]}set allowStale(e){this[Fh]=!!e}get allowStale(){return this[Fh]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[xl]=e,Nh(this)}get maxAge(){return this[xl]}set lengthCalculator(e){typeof e!="function"&&(e=Qv),e!==this[uu]&&(this[uu]=e,this[ra]=0,this[si].forEach(r=>{r.length=this[uu](r.value,r.key),this[ra]+=r.length})),Nh(this)}get lengthCalculator(){return this[uu]}get length(){return this[ra]}get itemCount(){return this[si].length}rforEach(e,r){r=r||this;for(let i=this[si].tail;i!==null;){let n=i.prev;q2(this,e,i,r),i=n}}forEach(e,r){r=r||this;for(let i=this[si].head;i!==null;){let n=i.next;q2(this,e,i,r),i=n}}keys(){return this[si].toArray().map(e=>e.key)}values(){return this[si].toArray().map(e=>e.value)}reset(){this[ia]&&this[si]&&this[si].length&&this[si].forEach(e=>this[ia](e.key,e.value)),this[ks]=new Map,this[si]=new Pme,this[ra]=0}dump(){return this[si].map(e=>nI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[si]}set(e,r,i){if(i=i||this[xl],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[uu](r,e);if(this[ks].has(e)){if(s>this[Sl])return gu(this,this[ks].get(e)),!1;let l=this[ks].get(e).value;return this[ia]&&(this[H2]||this[ia](e,l.value)),l.now=n,l.maxAge=i,l.value=r,this[ra]+=s-l.length,l.length=s,this.get(e),Nh(this),!0}let o=new Y2(e,r,s,n,i);return o.length>this[Sl]?(this[ia]&&this[ia](e,r),!1):(this[ra]+=o.length,this[si].unshift(o),this[ks].set(e,this[si].head),Nh(this),!0)}has(e){if(!this[ks].has(e))return!1;let r=this[ks].get(e).value;return!nI(this,r)}get(e){return bv(this,e,!0)}peek(e){return bv(this,e,!1)}pop(){let e=this[si].tail;return e?(gu(this,e),e.value):null}del(e){gu(this,this[ks].get(e))}load(e){this.reset();let r=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-r;o>0&&this.set(n.k,n.v,o)}}}prune(){this[ks].forEach((e,r)=>bv(this,r,!1))}},bv=(t,e,r)=>{let i=t[ks].get(e);if(i){let n=i.value;if(nI(t,n)){if(gu(t,i),!t[Fh])return}else r&&(t[G2]&&(i.value.now=Date.now()),t[si].unshiftNode(i));return n.value}},nI=(t,e)=>{if(!e||!e.maxAge&&!t[xl])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[xl]&&r>t[xl]},Nh=t=>{if(t[ra]>t[Sl])for(let e=t[si].tail;t[ra]>t[Sl]&&e!==null;){let r=e.prev;gu(t,e),e=r}},gu=(t,e)=>{if(e){let r=e.value;t[ia]&&t[ia](r.key,r.value),t[ra]-=r.length,t[ks].delete(r.key),t[si].removeNode(e)}},Y2=class{constructor(e,r,i,n,s){this.key=e,this.value=r,this.length=i,this.now=n,this.maxAge=s||0}},q2=(t,e,r,i)=>{let n=r.value;nI(t,n)&&(gu(t,r),t[Fh]||(n=void 0)),n&&e.call(i,n.value,n.key,t)};U2.exports=j2});var Zn=E((Ptt,W2)=>{var fu=class{constructor(e,r){if(r=Dme(r),e instanceof fu)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new fu(e.raw,r);if(e instanceof vv)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!V2(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&Tme(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=z2.get(i);if(n)return n;let s=this.options.loose,o=s?vi[di.HYPHENRANGELOOSE]:vi[di.HYPHENRANGE];e=e.replace(o,Kme(this.options.includePrerelease)),Rr("hyphen replace",e),e=e.replace(vi[di.COMPARATORTRIM],Fme),Rr("comparator trim",e,vi[di.COMPARATORTRIM]),e=e.replace(vi[di.TILDETRIM],Nme),e=e.replace(vi[di.CARETTRIM],Lme),e=e.split(/\s+/).join(" ");let a=s?vi[di.COMPARATORLOOSE]:vi[di.COMPARATOR],l=e.split(" ").map(f=>Mme(f,this.options)).join(" ").split(/\s+/).map(f=>Ome(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new vv(f,this.options)),c=l.length,u=new Map;for(let f of l){if(V2(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return z2.set(i,g),g}intersects(e,r){if(!(e instanceof fu))throw new TypeError("a Range is required");return this.set.some(i=>_2(i,r)&&e.set.some(n=>_2(n,r)&&i.every(s=>n.every(o=>s.intersects(o,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new Rme(e,this.options)}catch(r){return!1}for(let r=0;rt.value==="<0.0.0-0",Tme=t=>t.value==="",_2=(t,e)=>{let r=!0,i=t.slice(),n=i.pop();for(;r&&i.length;)r=i.every(s=>n.intersects(s,e)),n=i.pop();return r},Mme=(t,e)=>(Rr("comp",t,e),t=jme(t,e),Rr("caret",t),t=Gme(t,e),Rr("tildes",t),t=Yme(t,e),Rr("xrange",t),t=qme(t,e),Rr("stars",t),t),Ji=t=>!t||t.toLowerCase()==="x"||t==="*",Gme=(t,e)=>t.trim().split(/\s+/).map(r=>Jme(r,e)).join(" "),Jme=(t,e)=>{let r=e.loose?vi[di.TILDELOOSE]:vi[di.TILDE];return t.replace(r,(i,n,s,o,a)=>{Rr("tilde",t,i,n,s,o,a);let l;return Ji(n)?l="":Ji(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:Ji(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Rr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Rr("tilde return",l),l})},jme=(t,e)=>t.trim().split(/\s+/).map(r=>Wme(r,e)).join(" "),Wme=(t,e)=>{Rr("caret",t,e);let r=e.loose?vi[di.CARETLOOSE]:vi[di.CARET],i=e.includePrerelease?"-0":"";return t.replace(r,(n,s,o,a,l)=>{Rr("caret",t,n,s,o,a,l);let c;return Ji(s)?c="":Ji(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:Ji(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Rr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Rr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Rr("caret return",c),c})},Yme=(t,e)=>(Rr("replaceXRanges",t,e),t.split(/\s+/).map(r=>zme(r,e)).join(" ")),zme=(t,e)=>{t=t.trim();let r=e.loose?vi[di.XRANGELOOSE]:vi[di.XRANGE];return t.replace(r,(i,n,s,o,a,l)=>{Rr("xRange",t,i,n,s,o,a,l);let c=Ji(s),u=c||Ji(o),g=u||Ji(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Rr("xRange return",i),i})},qme=(t,e)=>(Rr("replaceStars",t,e),t.trim().replace(vi[di.STAR],"")),Ome=(t,e)=>(Rr("replaceGTE0",t,e),t.trim().replace(vi[e.includePrerelease?di.GTE0PRE:di.GTE0],"")),Kme=t=>(e,r,i,n,s,o,a,l,c,u,g,f,h)=>(Ji(i)?r="":Ji(n)?r=`>=${i}.0.0${t?"-0":""}`:Ji(s)?r=`>=${i}.${n}.0${t?"-0":""}`:o?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,Ji(c)?l="":Ji(u)?l=`<${+c+1}.0.0-0`:Ji(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:t?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${r} ${l}`.trim()),Ume=(t,e,r)=>{for(let i=0;i0){let n=t[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Lh=E((Dtt,X2)=>{var Th=Symbol("SemVer ANY"),Mh=class{static get ANY(){return Th}constructor(e,r){if(r=Vme(r),e instanceof Mh){if(e.loose===!!r.loose)return e;e=e.value}xv("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Th?this.value="":this.value=this.operator+this.semver.version,xv("comp",this)}parse(e){let r=this.options.loose?Z2[$2.COMPARATORLOOSE]:Z2[$2.COMPARATOR],i=e.match(r);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new eH(i[2],this.options.loose):this.semver=Th}toString(){return this.value}test(e){if(xv("Comparator.test",e,this.options.loose),this.semver===Th||e===Th)return!0;if(typeof e=="string")try{e=new eH(e,this.options)}catch(r){return!1}return Sv(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof Mh))throw new TypeError("a Comparator is required");if((!r||typeof r!="object")&&(r={loose:!!r,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new tH(e.value,r).test(this.value);if(e.operator==="")return e.value===""?!0:new tH(this.value,r).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=Sv(this.semver,"<",e.semver,r)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=Sv(this.semver,">",e.semver,r)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};X2.exports=Mh;var Vme=kh(),{re:Z2,t:$2}=Ql(),Sv=Bv(),xv=xh(),eH=bi(),tH=Zn()});var Oh=E((Rtt,rH)=>{var _me=Zn(),Xme=(t,e,r)=>{try{e=new _me(e,r)}catch(i){return!1}return e.test(t)};rH.exports=Xme});var nH=E((Ftt,iH)=>{var Zme=Zn(),$me=(t,e)=>new Zme(t,e).set.map(r=>r.map(i=>i.value).join(" ").trim().split(" "));iH.exports=$me});var oH=E((Ntt,sH)=>{var eEe=bi(),tEe=Zn(),rEe=(t,e,r)=>{let i=null,n=null,s=null;try{s=new tEe(e,r)}catch(o){return null}return t.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new eEe(i,r))}),i};sH.exports=rEe});var AH=E((Ltt,aH)=>{var iEe=bi(),nEe=Zn(),sEe=(t,e,r)=>{let i=null,n=null,s=null;try{s=new nEe(e,r)}catch(o){return null}return t.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new iEe(i,r))}),i};aH.exports=sEe});var uH=E((Ttt,lH)=>{var kv=bi(),oEe=Zn(),cH=Dh(),aEe=(t,e)=>{t=new oEe(t,e);let r=new kv("0.0.0");if(t.test(r)||(r=new kv("0.0.0-0"),t.test(r)))return r;r=null;for(let i=0;i{let a=new kv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||cH(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!r||cH(r,s))&&(r=s)}return r&&t.test(r)?r:null};lH.exports=aEe});var fH=E((Mtt,gH)=>{var AEe=Zn(),lEe=(t,e)=>{try{return new AEe(t,e).range||"*"}catch(r){return null}};gH.exports=lEe});var sI=E((Ott,hH)=>{var cEe=bi(),pH=Lh(),{ANY:uEe}=pH,gEe=Zn(),fEe=Oh(),dH=Dh(),CH=$E(),hEe=tI(),pEe=eI(),dEe=(t,e,r,i)=>{t=new cEe(t,i),e=new gEe(e,i);let n,s,o,a,l;switch(r){case">":n=dH,s=hEe,o=CH,a=">",l=">=";break;case"<":n=CH,s=pEe,o=dH,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(fEe(t,e,i))return!1;for(let c=0;c{h.semver===uEe&&(h=new pH(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(t,f.semver))return!1;if(f.operator===l&&o(t,f.semver))return!1}return!0};hH.exports=dEe});var EH=E((Ktt,mH)=>{var CEe=sI(),mEe=(t,e,r)=>CEe(t,e,">",r);mH.exports=mEe});var yH=E((Utt,IH)=>{var EEe=sI(),IEe=(t,e,r)=>EEe(t,e,"<",r);IH.exports=IEe});var QH=E((Htt,wH)=>{var BH=Zn(),yEe=(t,e,r)=>(t=new BH(t,r),e=new BH(e,r),t.intersects(e));wH.exports=yEe});var vH=E((Gtt,bH)=>{var wEe=Oh(),BEe=Xn();bH.exports=(t,e,r)=>{let i=[],n=null,s=null,o=t.sort((u,g)=>BEe(u,g,r));for(let u of o)wEe(u,e,r)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var xH=Zn(),oI=Lh(),{ANY:Pv}=oI,Kh=Oh(),Dv=Xn(),bEe=(t,e,r={})=>{if(t===e)return!0;t=new xH(t,r),e=new xH(e,r);let i=!1;e:for(let n of t.set){for(let s of e.set){let o=QEe(n,s,r);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},QEe=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===Pv){if(e.length===1&&e[0].semver===Pv)return!0;r.includePrerelease?t=[new oI(">=0.0.0-0")]:t=[new oI(">=0.0.0")]}if(e.length===1&&e[0].semver===Pv){if(r.includePrerelease)return!0;e=[new oI(">=0.0.0")]}let i=new Set,n,s;for(let h of t)h.operator===">"||h.operator===">="?n=kH(n,h,r):h.operator==="<"||h.operator==="<="?s=PH(s,h,r):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=Dv(n.semver,s.semver,r),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!Kh(h,String(n),r)||s&&!Kh(h,String(s),r))return null;for(let p of e)if(!Kh(h,String(p),r))return!1;return!0}let a,l,c,u,g=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=kH(n,h,r),a===h&&a!==n)return!1}else if(n.operator===">="&&!Kh(n.semver,String(h),r))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=PH(s,h,r),l===h&&l!==s)return!1}else if(s.operator==="<="&&!Kh(s.semver,String(h),r))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},kH=(t,e,r)=>{if(!t)return e;let i=Dv(t.semver,e.semver,r);return i>0?t:i<0||e.operator===">"&&t.operator===">="?e:t},PH=(t,e,r)=>{if(!t)return e;let i=Dv(t.semver,e.semver,r);return i<0?t:i>0||e.operator==="<"&&t.operator==="<="?e:t};SH.exports=bEe});var Or=E((Ytt,RH)=>{var Rv=Ql();RH.exports={re:Rv.re,src:Rv.src,tokens:Rv.t,SEMVER_SPEC_VERSION:Sh().SEMVER_SPEC_VERSION,SemVer:bi(),compareIdentifiers:zE().compareIdentifiers,rcompareIdentifiers:zE().rcompareIdentifiers,parse:bl(),valid:e2(),clean:r2(),inc:n2(),diff:c2(),major:g2(),minor:h2(),patch:d2(),prerelease:m2(),compare:Xn(),rcompare:I2(),compareLoose:w2(),compareBuild:ZE(),sort:v2(),rsort:x2(),gt:Dh(),lt:$E(),eq:XE(),neq:wv(),gte:eI(),lte:tI(),cmp:Bv(),coerce:T2(),Comparator:Lh(),Range:Zn(),satisfies:Oh(),toComparators:nH(),maxSatisfying:oH(),minSatisfying:AH(),minVersion:uH(),validRange:fH(),outside:sI(),gtr:EH(),ltr:yH(),intersects:QH(),simplifyRange:vH(),subset:DH()}});var Uv=E(AI=>{"use strict";Object.defineProperty(AI,"__esModule",{value:!0});AI.VERSION=void 0;AI.VERSION="9.1.0"});var Dt=E((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(t,e,r){if(r||arguments.length===2)for(var i=0,n=e.length,s;i{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof lI=="object"&&lI.exports?lI.exports=e():t.regexpToAst=e()})(typeof self!="undefined"?self:YH,function(){function t(){}t.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},t.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},t.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var d=this.disjunction();this.consumeChar("/");for(var m={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(m,"global");break;case"i":o(m,"ignoreCase");break;case"m":o(m,"multiLine");break;case"u":o(m,"unicode");break;case"y":o(m,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:m,value:d,loc:this.loc(0)}},t.prototype.disjunction=function(){var p=[],d=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(d)}},t.prototype.alternative=function(){for(var p=[],d=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(d)}},t.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},t.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var d;switch(this.popChar()){case"=":d="Lookahead";break;case"!":d="NegativeLookahead";break}a(d);var m=this.disjunction();return this.consumeChar(")"),{type:d,value:m,loc:this.loc(p)}}l()},t.prototype.quantifier=function(p){var d,m=this.idx;switch(this.popChar()){case"*":d={atLeast:0,atMost:Infinity};break;case"+":d={atLeast:1,atMost:Infinity};break;case"?":d={atLeast:0,atMost:1};break;case"{":var I=this.integerIncludingZero();switch(this.popChar()){case"}":d={atLeast:I,atMost:I};break;case",":var B;this.isDigit()?(B=this.integerIncludingZero(),d={atLeast:I,atMost:B}):d={atLeast:I,atMost:Infinity},this.consumeChar("}");break}if(p===!0&&d===void 0)return;a(d);break}if(!(p===!0&&d===void 0))return a(d),this.peekChar(0)==="?"?(this.consumeChar("?"),d.greedy=!1):d.greedy=!0,d.type="Quantifier",d.loc=this.loc(m),d},t.prototype.atom=function(){var p,d=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(d),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},t.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` -`),n("\r"),n("\u2028"),n("\u2029")]}},t.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},t.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},t.prototype.characterClassEscape=function(){var p,d=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,d=!0;break;case"s":p=f;break;case"S":p=f,d=!0;break;case"w":p=g;break;case"W":p=g,d=!0;break}return a(p),{type:"Set",value:p,complement:d}},t.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` -`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},t.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var d=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:d}},t.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},t.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},t.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},t.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},t.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` -`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},t.prototype.characterClass=function(){var p=[],d=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),d=!0);this.isClassAtom();){var m=this.classAtom(),I=m.type==="Character";if(I&&this.isRangeDash()){this.consumeChar("-");var B=this.classAtom(),b=B.type==="Character";if(b){if(B.value=this.input.length)throw Error("Unexpected end of input");this.idx++},t.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,r=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,d){p.length!==void 0?p.forEach(function(m){d.push(m)}):d.push(p)}function o(p,d){if(p[d]===!0)throw"duplicate flag "+d;p[d]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` -`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var d in p){var m=p[d];p.hasOwnProperty(d)&&(m.type!==void 0?this.visit(m):Array.isArray(m)&&m.forEach(function(I){this.visit(I)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:t,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var gI=E(Eu=>{"use strict";Object.defineProperty(Eu,"__esModule",{value:!0});Eu.clearRegExpParserCache=Eu.getRegExpAst=void 0;var FEe=cI(),uI={},NEe=new FEe.RegExpParser;function LEe(t){var e=t.toString();if(uI.hasOwnProperty(e))return uI[e];var r=NEe.pattern(e);return uI[e]=r,r}Eu.getRegExpAst=LEe;function TEe(){uI={}}Eu.clearRegExpParserCache=TEe});var VH=E(fn=>{"use strict";var MEe=fn&&fn.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(fn,"__esModule",{value:!0});fn.canMatchCharCode=fn.firstCharOptimizedIndices=fn.getOptimizedStartCodesIndices=fn.failedOptimizationPrefixMsg=void 0;var qH=cI(),$n=Dt(),JH=gI(),sa=Hv(),WH="Complement Sets are not supported for first char optimization";fn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: -`;function OEe(t,e){e===void 0&&(e=!1);try{var r=(0,JH.getRegExpAst)(t),i=fI(r.value,{},r.flags.ignoreCase);return i}catch(s){if(s.message===WH)e&&(0,$n.PRINT_WARNING)(""+fn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+t.toString()+` > -`)+` Complement Sets cannot be automatically optimized. - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` - This will disable the lexer's first char optimizations. - See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,$n.PRINT_ERROR)(fn.failedOptimizationPrefixMsg+` -`+(" Failed parsing: < "+t.toString()+` > -`)+(" Using the regexp-to-ast library version: "+qH.VERSION+` -`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}fn.getOptimizedStartCodesIndices=OEe;function fI(t,e,r){switch(t.type){case"Disjunction":for(var i=0;i=sa.minOptimizationVal)for(var f=u.from>=sa.minOptimizationVal?u.from:sa.minOptimizationVal,h=u.to,p=(0,sa.charCodeToOptimizedIndex)(f),d=(0,sa.charCodeToOptimizedIndex)(h),m=p;m<=d;m++)e[m]=m}}});break;case"Group":fI(o.value,e,r);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&Gv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,$n.values)(e)}fn.firstCharOptimizedIndices=fI;function hI(t,e,r){var i=(0,sa.charCodeToOptimizedIndex)(t);e[i]=i,r===!0&&KEe(t,e)}function KEe(t,e){var r=String.fromCharCode(t),i=r.toUpperCase();if(i!==r){var n=(0,sa.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=r.toLowerCase();if(s!==r){var n=(0,sa.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function zH(t,e){return(0,$n.find)(t.value,function(r){if(typeof r=="number")return(0,$n.contains)(e,r);var i=r;return(0,$n.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function Gv(t){return t.quantifier&&t.quantifier.atLeast===0?!0:t.value?(0,$n.isArray)(t.value)?(0,$n.every)(t.value,Gv):Gv(t.value):!1}var UEe=function(t){MEe(e,t);function e(r){var i=t.call(this)||this;return i.targetCharCodes=r,i.found=!1,i}return e.prototype.visitChildren=function(r){if(this.found!==!0){switch(r.type){case"Lookahead":this.visitLookahead(r);return;case"NegativeLookahead":this.visitNegativeLookahead(r);return}t.prototype.visitChildren.call(this,r)}},e.prototype.visitCharacter=function(r){(0,$n.contains)(this.targetCharCodes,r.value)&&(this.found=!0)},e.prototype.visitSet=function(r){r.complement?zH(r,this.targetCharCodes)===void 0&&(this.found=!0):zH(r,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(qH.BaseRegExpVisitor);function HEe(t,e){if(e instanceof RegExp){var r=(0,JH.getRegExpAst)(e),i=new UEe(t);return i.visit(r),i.found}else return(0,$n.find)(e,function(n){return(0,$n.contains)(t,n.charCodeAt(0))})!==void 0}fn.canMatchCharCode=HEe});var Hv=E(je=>{"use strict";var _H=je&&je.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(je,"__esModule",{value:!0});je.charCodeToOptimizedIndex=je.minOptimizationVal=je.buildLineBreakIssueMessage=je.LineTerminatorOptimizedTester=je.isShortPattern=je.isCustomPattern=je.cloneEmptyGroups=je.performWarningRuntimeChecks=je.performRuntimeChecks=je.addStickyFlag=je.addStartOfInput=je.findUnreachablePatterns=je.findModesThatDoNotExist=je.findInvalidGroupType=je.findDuplicatePatterns=je.findUnsupportedFlags=je.findStartOfInputAnchor=je.findEmptyMatchRegExps=je.findEndOfInputAnchor=je.findInvalidPatterns=je.findMissingPatterns=je.validatePatterns=je.analyzeTokenTypes=je.enableSticky=je.disableSticky=je.SUPPORT_STICKY=je.MODES=je.DEFAULT_MODE=void 0;var XH=cI(),zt=Gh(),Ie=Dt(),Iu=VH(),ZH=gI(),ao="PATTERN";je.DEFAULT_MODE="defaultMode";je.MODES="modes";je.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function GEe(){je.SUPPORT_STICKY=!1}je.disableSticky=GEe;function jEe(){je.SUPPORT_STICKY=!0}je.enableSticky=jEe;function qEe(t,e){e=(0,Ie.defaults)(e,{useSticky:je.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` -`],tracer:function(B,b){return b()}});var r=e.tracer;r("initCharCodeToOptimizedIndexMap",function(){YEe()});var i;r("Reject Lexer.NA",function(){i=(0,Ie.reject)(t,function(B){return B[ao]===zt.Lexer.NA})});var n=!1,s;r("Transform Patterns",function(){n=!1,s=(0,Ie.map)(i,function(B){var b=B[ao];if((0,Ie.isRegExp)(b)){var R=b.source;return R.length===1&&R!=="^"&&R!=="$"&&R!=="."&&!b.ignoreCase?R:R.length===2&&R[0]==="\\"&&!(0,Ie.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],R[1])?R[1]:e.useSticky?Yv(b):jv(b)}else{if((0,Ie.isFunction)(b))return n=!0,{exec:b};if((0,Ie.has)(b,"exec"))return n=!0,b;if(typeof b=="string"){if(b.length===1)return b;var H=b.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),L=new RegExp(H);return e.useSticky?Yv(L):jv(L)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;r("misc mapping",function(){o=(0,Ie.map)(i,function(B){return B.tokenTypeIdx}),a=(0,Ie.map)(i,function(B){var b=B.GROUP;if(b!==zt.Lexer.SKIPPED){if((0,Ie.isString)(b))return b;if((0,Ie.isUndefined)(b))return!1;throw Error("non exhaustive match")}}),l=(0,Ie.map)(i,function(B){var b=B.LONGER_ALT;if(b){var R=(0,Ie.isArray)(b)?(0,Ie.map)(b,function(H){return(0,Ie.indexOf)(i,H)}):[(0,Ie.indexOf)(i,b)];return R}}),c=(0,Ie.map)(i,function(B){return B.PUSH_MODE}),u=(0,Ie.map)(i,function(B){return(0,Ie.has)(B,"POP_MODE")})});var g;r("Line Terminator Handling",function(){var B=tG(e.lineTerminatorCharacters);g=(0,Ie.map)(i,function(b){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,Ie.map)(i,function(b){if((0,Ie.has)(b,"LINE_BREAKS"))return b.LINE_BREAKS;if(eG(b,B)===!1)return(0,Iu.canMatchCharCode)(B,b.PATTERN)}))});var f,h,p,d;r("Misc Mapping #2",function(){f=(0,Ie.map)(i,qv),h=(0,Ie.map)(s,$H),p=(0,Ie.reduce)(i,function(B,b){var R=b.GROUP;return(0,Ie.isString)(R)&&R!==zt.Lexer.SKIPPED&&(B[R]=[]),B},{}),d=(0,Ie.map)(s,function(B,b){return{pattern:s[b],longerAlt:l[b],canLineTerminator:g[b],isCustom:f[b],short:h[b],group:a[b],push:c[b],pop:u[b],tokenTypeIdx:o[b],tokenType:i[b]}})});var m=!0,I=[];return e.safeMode||r("First Char Optimization",function(){I=(0,Ie.reduce)(i,function(B,b,R){if(typeof b.PATTERN=="string"){var H=b.PATTERN.charCodeAt(0),L=Wv(H);Jv(B,L,d[R])}else if((0,Ie.isArray)(b.START_CHARS_HINT)){var K;(0,Ie.forEach)(b.START_CHARS_HINT,function(ne){var q=typeof ne=="string"?ne.charCodeAt(0):ne,A=Wv(q);K!==A&&(K=A,Jv(B,A,d[R]))})}else if((0,Ie.isRegExp)(b.PATTERN))if(b.PATTERN.unicode)m=!1,e.ensureOptimizations&&(0,Ie.PRINT_ERROR)(""+Iu.failedOptimizationPrefixMsg+(" Unable to analyze < "+b.PATTERN.toString()+` > pattern. -`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. - This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var J=(0,Iu.getOptimizedStartCodesIndices)(b.PATTERN,e.ensureOptimizations);(0,Ie.isEmpty)(J)&&(m=!1),(0,Ie.forEach)(J,function(ne){Jv(B,ne,d[R])})}else e.ensureOptimizations&&(0,Ie.PRINT_ERROR)(""+Iu.failedOptimizationPrefixMsg+(" TokenType: <"+b.name+`> is using a custom token pattern without providing parameter. -`)+` This will disable the lexer's first char optimizations. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),m=!1;return B},[])}),r("ArrayPacking",function(){I=(0,Ie.packArray)(I)}),{emptyGroups:p,patternIdxToConfig:d,charCodeToPatternIdxToConfig:I,hasCustom:n,canBeOptimized:m}}je.analyzeTokenTypes=qEe;function WEe(t,e){var r=[],i=rG(t);r=r.concat(i.errors);var n=iG(i.valid),s=n.valid;return r=r.concat(n.errors),r=r.concat(JEe(s)),r=r.concat(nG(s)),r=r.concat(sG(s,e)),r=r.concat(oG(s)),r}je.validatePatterns=WEe;function JEe(t){var e=[],r=(0,Ie.filter)(t,function(i){return(0,Ie.isRegExp)(i[ao])});return e=e.concat(aG(r)),e=e.concat(lG(r)),e=e.concat(cG(r)),e=e.concat(uG(r)),e=e.concat(AG(r)),e}function rG(t){var e=(0,Ie.filter)(t,function(n){return!(0,Ie.has)(n,ao)}),r=(0,Ie.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:zt.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,Ie.difference)(t,e);return{errors:r,valid:i}}je.findMissingPatterns=rG;function iG(t){var e=(0,Ie.filter)(t,function(n){var s=n[ao];return!(0,Ie.isRegExp)(s)&&!(0,Ie.isFunction)(s)&&!(0,Ie.has)(s,"exec")&&!(0,Ie.isString)(s)}),r=(0,Ie.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:zt.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,Ie.difference)(t,e);return{errors:r,valid:i}}je.findInvalidPatterns=iG;var zEe=/[^\\][\$]/;function aG(t){var e=function(n){_H(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(XH.BaseRegExpVisitor),r=(0,Ie.filter)(t,function(n){var s=n[ao];try{var o=(0,ZH.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return zEe.test(s.source)}}),i=(0,Ie.map)(r,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' - See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:zt.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}je.findEndOfInputAnchor=aG;function AG(t){var e=(0,Ie.filter)(t,function(i){var n=i[ao];return n.test("")}),r=(0,Ie.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:zt.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return r}je.findEmptyMatchRegExps=AG;var VEe=/[^\\[][\^]|^\^/;function lG(t){var e=function(n){_H(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(XH.BaseRegExpVisitor),r=(0,Ie.filter)(t,function(n){var s=n[ao];try{var o=(0,ZH.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch(l){return VEe.test(s.source)}}),i=(0,Ie.map)(r,function(n){return{message:`Unexpected RegExp Anchor Error: - Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:zt.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}je.findStartOfInputAnchor=lG;function cG(t){var e=(0,Ie.filter)(t,function(i){var n=i[ao];return n instanceof RegExp&&(n.multiline||n.global)}),r=(0,Ie.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:zt.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return r}je.findUnsupportedFlags=cG;function uG(t){var e=[],r=(0,Ie.map)(t,function(s){return(0,Ie.reduce)(t,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,Ie.contains)(e,a)&&a.PATTERN!==zt.Lexer.NA&&(e.push(a),o.push(a)),o},[])});r=(0,Ie.compact)(r);var i=(0,Ie.filter)(r,function(s){return s.length>1}),n=(0,Ie.map)(i,function(s){var o=(0,Ie.map)(s,function(l){return l.name}),a=(0,Ie.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:zt.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}je.findDuplicatePatterns=uG;function nG(t){var e=(0,Ie.filter)(t,function(i){if(!(0,Ie.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==zt.Lexer.SKIPPED&&n!==zt.Lexer.NA&&!(0,Ie.isString)(n)}),r=(0,Ie.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:zt.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return r}je.findInvalidGroupType=nG;function sG(t,e){var r=(0,Ie.filter)(t,function(n){return n.PUSH_MODE!==void 0&&!(0,Ie.contains)(e,n.PUSH_MODE)}),i=(0,Ie.map)(r,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:zt.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}je.findModesThatDoNotExist=sG;function oG(t){var e=[],r=(0,Ie.reduce)(t,function(i,n,s){var o=n.PATTERN;return o===zt.Lexer.NA||((0,Ie.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,Ie.isRegExp)(o)&&XEe(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,Ie.forEach)(t,function(i,n){(0,Ie.forEach)(r,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. -See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:zt.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}je.findUnreachablePatterns=oG;function _Ee(t,e){if((0,Ie.isRegExp)(e)){var r=e.exec(t);return r!==null&&r.index===0}else{if((0,Ie.isFunction)(e))return e(t,0,[],{});if((0,Ie.has)(e,"exec"))return e.exec(t,0,[],{});if(typeof e=="string")return e===t;throw Error("non exhaustive match")}}function XEe(t){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,Ie.find)(e,function(r){return t.source.indexOf(r)!==-1})===void 0}function jv(t){var e=t.ignoreCase?"i":"";return new RegExp("^(?:"+t.source+")",e)}je.addStartOfInput=jv;function Yv(t){var e=t.ignoreCase?"iy":"y";return new RegExp(""+t.source,e)}je.addStickyFlag=Yv;function ZEe(t,e,r){var i=[];return(0,Ie.has)(t,je.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+je.DEFAULT_MODE+`> property in its definition -`,type:zt.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,Ie.has)(t,je.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+je.MODES+`> property in its definition -`,type:zt.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,Ie.has)(t,je.MODES)&&(0,Ie.has)(t,je.DEFAULT_MODE)&&!(0,Ie.has)(t.modes,t.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+je.DEFAULT_MODE+": <"+t.defaultMode+`>which does not exist -`,type:zt.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,Ie.has)(t,je.MODES)&&(0,Ie.forEach)(t.modes,function(n,s){(0,Ie.forEach)(n,function(o,a){(0,Ie.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> -`),type:zt.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}je.performRuntimeChecks=ZEe;function $Ee(t,e,r){var i=[],n=!1,s=(0,Ie.compact)((0,Ie.flatten)((0,Ie.mapValues)(t.modes,function(l){return l}))),o=(0,Ie.reject)(s,function(l){return l[ao]===zt.Lexer.NA}),a=tG(r);return e&&(0,Ie.forEach)(o,function(l){var c=eG(l,a);if(c!==!1){var u=gG(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,Ie.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Iu.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. - This Lexer has been defined to track line and column information, - But none of the Token Types can be identified as matching a line terminator. - See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS - for details.`,type:zt.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}je.performWarningRuntimeChecks=$Ee;function eIe(t){var e={},r=(0,Ie.keys)(t);return(0,Ie.forEach)(r,function(i){var n=t[i];if((0,Ie.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}je.cloneEmptyGroups=eIe;function qv(t){var e=t.PATTERN;if((0,Ie.isRegExp)(e))return!1;if((0,Ie.isFunction)(e))return!0;if((0,Ie.has)(e,"exec"))return!0;if((0,Ie.isString)(e))return!1;throw Error("non exhaustive match")}je.isCustomPattern=qv;function $H(t){return(0,Ie.isString)(t)&&t.length===1?t.charCodeAt(0):!1}je.isShortPattern=$H;je.LineTerminatorOptimizedTester={test:function(t){for(var e=t.length,r=this.lastIndex;r Token Type -`)+(" Root cause: "+e.errMsg+`. -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===zt.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. -`+(" The problem is in the <"+t.name+`> Token Type -`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}je.buildLineBreakIssueMessage=gG;function tG(t){var e=(0,Ie.map)(t,function(r){return(0,Ie.isString)(r)&&r.length>0?r.charCodeAt(0):r});return e}function Jv(t,e,r){t[e]===void 0?t[e]=[r]:t[e].push(r)}je.minOptimizationVal=256;var pI=[];function Wv(t){return t255?255+~~(t/255):t}}});var yu=E(Bt=>{"use strict";Object.defineProperty(Bt,"__esModule",{value:!0});Bt.isTokenType=Bt.hasExtendingTokensTypesMapProperty=Bt.hasExtendingTokensTypesProperty=Bt.hasCategoriesProperty=Bt.hasShortKeyProperty=Bt.singleAssignCategoriesToksMap=Bt.assignCategoriesMapProp=Bt.assignCategoriesTokensProp=Bt.assignTokenDefaultProps=Bt.expandCategories=Bt.augmentTokenTypes=Bt.tokenIdxToClass=Bt.tokenShortNameIdx=Bt.tokenStructuredMatcherNoCategories=Bt.tokenStructuredMatcher=void 0;var Kr=Dt();function tIe(t,e){var r=t.tokenTypeIdx;return r===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[r]===!0}Bt.tokenStructuredMatcher=tIe;function rIe(t,e){return t.tokenTypeIdx===e.tokenTypeIdx}Bt.tokenStructuredMatcherNoCategories=rIe;Bt.tokenShortNameIdx=1;Bt.tokenIdxToClass={};function iIe(t){var e=fG(t);hG(e),dG(e),pG(e),(0,Kr.forEach)(e,function(r){r.isParent=r.categoryMatches.length>0})}Bt.augmentTokenTypes=iIe;function fG(t){for(var e=(0,Kr.cloneArr)(t),r=t,i=!0;i;){r=(0,Kr.compact)((0,Kr.flatten)((0,Kr.map)(r,function(s){return s.CATEGORIES})));var n=(0,Kr.difference)(r,e);e=e.concat(n),(0,Kr.isEmpty)(n)?i=!1:r=n}return e}Bt.expandCategories=fG;function hG(t){(0,Kr.forEach)(t,function(e){CG(e)||(Bt.tokenIdxToClass[Bt.tokenShortNameIdx]=e,e.tokenTypeIdx=Bt.tokenShortNameIdx++),zv(e)&&!(0,Kr.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),zv(e)||(e.CATEGORIES=[]),mG(e)||(e.categoryMatches=[]),EG(e)||(e.categoryMatchesMap={})})}Bt.assignTokenDefaultProps=hG;function pG(t){(0,Kr.forEach)(t,function(e){e.categoryMatches=[],(0,Kr.forEach)(e.categoryMatchesMap,function(r,i){e.categoryMatches.push(Bt.tokenIdxToClass[i].tokenTypeIdx)})})}Bt.assignCategoriesTokensProp=pG;function dG(t){(0,Kr.forEach)(t,function(e){Vv([],e)})}Bt.assignCategoriesMapProp=dG;function Vv(t,e){(0,Kr.forEach)(t,function(r){e.categoryMatchesMap[r.tokenTypeIdx]=!0}),(0,Kr.forEach)(e.CATEGORIES,function(r){var i=t.concat(e);(0,Kr.contains)(i,r)||Vv(i,r)})}Bt.singleAssignCategoriesToksMap=Vv;function CG(t){return(0,Kr.has)(t,"tokenTypeIdx")}Bt.hasShortKeyProperty=CG;function zv(t){return(0,Kr.has)(t,"CATEGORIES")}Bt.hasCategoriesProperty=zv;function mG(t){return(0,Kr.has)(t,"categoryMatches")}Bt.hasExtendingTokensTypesProperty=mG;function EG(t){return(0,Kr.has)(t,"categoryMatchesMap")}Bt.hasExtendingTokensTypesMapProperty=EG;function nIe(t){return(0,Kr.has)(t,"tokenTypeIdx")}Bt.isTokenType=nIe});var _v=E(dI=>{"use strict";Object.defineProperty(dI,"__esModule",{value:!0});dI.defaultLexerErrorProvider=void 0;dI.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(t){return"Unable to pop Lexer Mode after encountering Token ->"+t.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(t,e,r,i,n){return"unexpected character: ->"+t.charAt(e)+"<- at offset: "+e+","+(" skipped "+r+" characters.")}}});var Gh=E(Rl=>{"use strict";Object.defineProperty(Rl,"__esModule",{value:!0});Rl.Lexer=Rl.LexerDefinitionErrorType=void 0;var Ps=Hv(),Vt=Dt(),sIe=yu(),oIe=_v(),aIe=gI(),AIe;(function(t){t[t.MISSING_PATTERN=0]="MISSING_PATTERN",t[t.INVALID_PATTERN=1]="INVALID_PATTERN",t[t.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",t[t.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",t[t.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",t[t.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",t[t.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",t[t.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",t[t.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",t[t.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",t[t.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",t[t.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",t[t.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",t[t.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",t[t.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",t[t.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",t[t.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(AIe=Rl.LexerDefinitionErrorType||(Rl.LexerDefinitionErrorType={}));var jh={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` -`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:oIe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(jh);var lIe=function(){function t(e,r){var i=this;if(r===void 0&&(r=jh),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof r=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. -a boolean 2nd argument is no longer supported`);this.config=(0,Vt.merge)(jh,r);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=Infinity,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===jh.lineTerminatorsPattern)i.config.lineTerminatorsPattern=Ps.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===jh.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. - For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(r.safeMode&&r.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,Vt.isArray)(e)?(s={modes:{}},s.modes[Ps.DEFAULT_MODE]=(0,Vt.cloneArr)(e),s[Ps.DEFAULT_MODE]=Ps.DEFAULT_MODE):(o=!1,s=(0,Vt.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Ps.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,Ps.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,Vt.forEach)(s.modes,function(u,g){s.modes[g]=(0,Vt.reject)(u,function(f){return(0,Vt.isUndefined)(f)})});var a=(0,Vt.keys)(s.modes);if((0,Vt.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,Ps.validatePatterns)(u,a))}),(0,Vt.isEmpty)(i.lexerDefinitionErrors)){(0,sIe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,Ps.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:r.positionTracking,ensureOptimizations:r.ensureOptimizations,safeMode:r.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,Vt.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,Vt.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,Vt.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- -`);throw new Error(`Errors detected in definition of Lexer: -`+c)}(0,Vt.forEach)(i.lexerDefinitionWarning,function(u){(0,Vt.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(Ps.SUPPORT_STICKY?(i.chopInput=Vt.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=Vt.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=Vt.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=Vt.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=Vt.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,Vt.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(r.ensureOptimizations&&!(0,Vt.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. - Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. - Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,aIe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,Vt.toFastProperties)(i)})})}return t.prototype.tokenize=function(e,r){if(r===void 0&&(r=this.defaultMode),!(0,Vt.isEmpty)(this.lexerDefinitionErrors)){var i=(0,Vt.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- -`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: -`+n)}var s=this.tokenizeInternal(e,r);return s},t.prototype.tokenizeInternal=function(e,r){var i=this,n,s,o,a,l,c,u,g,f,h,p,d,m,I,B,b,R=e,H=R.length,L=0,K=0,J=this.hasCustom?0:Math.floor(e.length/10),ne=new Array(J),q=[],A=this.trackStartLines?1:void 0,V=this.trackStartLines?1:void 0,W=(0,Ps.cloneEmptyGroups)(this.emptyGroups),X=this.trackStartLines,F=this.config.lineTerminatorsPattern,D=0,he=[],pe=[],Ne=[],Pe=[];Object.freeze(Pe);var qe=void 0;function re(){return he}function se(wr){var Ui=(0,Ps.charCodeToOptimizedIndex)(wr),ws=pe[Ui];return ws===void 0?Pe:ws}var be=function(wr){if(Ne.length===1&&wr.tokenType.PUSH_MODE===void 0){var Ui=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(wr);q.push({offset:wr.startOffset,line:wr.startLine!==void 0?wr.startLine:void 0,column:wr.startColumn!==void 0?wr.startColumn:void 0,length:wr.image.length,message:Ui})}else{Ne.pop();var ws=(0,Vt.last)(Ne);he=i.patternIdxToConfig[ws],pe=i.charCodeToPatternIdxToConfig[ws],D=he.length;var Tf=i.canModeBeOptimized[ws]&&i.config.safeMode===!1;pe&&Tf?qe=se:qe=re}};function ae(wr){Ne.push(wr),pe=this.charCodeToPatternIdxToConfig[wr],he=this.patternIdxToConfig[wr],D=he.length,D=he.length;var Ui=this.canModeBeOptimized[wr]&&this.config.safeMode===!1;pe&&Ui?qe=se:qe=re}ae.call(this,r);for(var Ae;Lc.length){c=a,u=g,Ae=Oe;break}}}break}}if(c!==null){if(f=c.length,h=Ae.group,h!==void 0&&(p=Ae.tokenTypeIdx,d=this.createTokenInstance(c,L,p,Ae.tokenType,A,V,f),this.handlePayload(d,u),h===!1?K=this.addToken(ne,K,d):W[h].push(d)),e=this.chopInput(e,f),L=L+f,V=this.computeNewColumn(V,f),X===!0&&Ae.canLineTerminator===!0){var dt=0,ri=void 0,ii=void 0;F.lastIndex=0;do ri=F.test(c),ri===!0&&(ii=F.lastIndex-1,dt++);while(ri===!0);dt!==0&&(A=A+dt,V=f-ii,this.updateTokenEndLineColumnLocation(d,h,ii,dt,A,V,f))}this.handleModes(Ae,be,ae,d)}else{for(var an=L,yr=A,Ki=V,Qi=!1;!Qi&&L <"+e+">");var n=(0,Vt.timer)(r),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return r()},t.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",t.NA=/NOT_APPLICABLE/,t}();Rl.Lexer=lIe});var nA=E(Ci=>{"use strict";Object.defineProperty(Ci,"__esModule",{value:!0});Ci.tokenMatcher=Ci.createTokenInstance=Ci.EOF=Ci.createToken=Ci.hasTokenLabel=Ci.tokenName=Ci.tokenLabel=void 0;var Ds=Dt(),cIe=Gh(),Xv=yu();function uIe(t){return IG(t)?t.LABEL:t.name}Ci.tokenLabel=uIe;function gIe(t){return t.name}Ci.tokenName=gIe;function IG(t){return(0,Ds.isString)(t.LABEL)&&t.LABEL!==""}Ci.hasTokenLabel=IG;var fIe="parent",yG="categories",wG="label",BG="group",QG="push_mode",bG="pop_mode",vG="longer_alt",SG="line_breaks",xG="start_chars_hint";function kG(t){return hIe(t)}Ci.createToken=kG;function hIe(t){var e=t.pattern,r={};if(r.name=t.name,(0,Ds.isUndefined)(e)||(r.PATTERN=e),(0,Ds.has)(t,fIe))throw`The parent property is no longer supported. -See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,Ds.has)(t,yG)&&(r.CATEGORIES=t[yG]),(0,Xv.augmentTokenTypes)([r]),(0,Ds.has)(t,wG)&&(r.LABEL=t[wG]),(0,Ds.has)(t,BG)&&(r.GROUP=t[BG]),(0,Ds.has)(t,bG)&&(r.POP_MODE=t[bG]),(0,Ds.has)(t,QG)&&(r.PUSH_MODE=t[QG]),(0,Ds.has)(t,vG)&&(r.LONGER_ALT=t[vG]),(0,Ds.has)(t,SG)&&(r.LINE_BREAKS=t[SG]),(0,Ds.has)(t,xG)&&(r.START_CHARS_HINT=t[xG]),r}Ci.EOF=kG({name:"EOF",pattern:cIe.Lexer.NA});(0,Xv.augmentTokenTypes)([Ci.EOF]);function pIe(t,e,r,i,n,s,o,a){return{image:e,startOffset:r,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:t.tokenTypeIdx,tokenType:t}}Ci.createTokenInstance=pIe;function dIe(t,e){return(0,Xv.tokenStructuredMatcher)(t,e)}Ci.tokenMatcher=dIe});var hn=E(Tt=>{"use strict";var oa=Tt&&Tt.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Tt,"__esModule",{value:!0});Tt.serializeProduction=Tt.serializeGrammar=Tt.Terminal=Tt.Alternation=Tt.RepetitionWithSeparator=Tt.Repetition=Tt.RepetitionMandatoryWithSeparator=Tt.RepetitionMandatory=Tt.Option=Tt.Alternative=Tt.Rule=Tt.NonTerminal=Tt.AbstractProduction=void 0;var $t=Dt(),CIe=nA(),Ao=function(){function t(e){this._definition=e}return Object.defineProperty(t.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),t.prototype.accept=function(e){e.visit(this),(0,$t.forEach)(this.definition,function(r){r.accept(e)})},t}();Tt.AbstractProduction=Ao;var PG=function(t){oa(e,t);function e(r){var i=t.call(this,[])||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(r){},enumerable:!1,configurable:!0}),e.prototype.accept=function(r){r.visit(this)},e}(Ao);Tt.NonTerminal=PG;var DG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.orgText="",(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.Rule=DG;var RG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.ignoreAmbiguities=!1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.Alternative=RG;var FG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.Option=FG;var NG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.RepetitionMandatory=NG;var LG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.RepetitionMandatoryWithSeparator=LG;var TG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.Repetition=TG;var MG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return e}(Ao);Tt.RepetitionWithSeparator=MG;var OG=function(t){oa(e,t);function e(r){var i=t.call(this,r.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,$t.assign)(i,(0,$t.pick)(r,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(r){this._definition=r},enumerable:!1,configurable:!0}),e}(Ao);Tt.Alternation=OG;var CI=function(){function t(e){this.idx=1,(0,$t.assign)(this,(0,$t.pick)(e,function(r){return r!==void 0}))}return t.prototype.accept=function(e){e.visit(this)},t}();Tt.Terminal=CI;function mIe(t){return(0,$t.map)(t,Yh)}Tt.serializeGrammar=mIe;function Yh(t){function e(s){return(0,$t.map)(s,Yh)}if(t instanceof PG){var r={type:"NonTerminal",name:t.nonTerminalName,idx:t.idx};return(0,$t.isString)(t.label)&&(r.label=t.label),r}else{if(t instanceof RG)return{type:"Alternative",definition:e(t.definition)};if(t instanceof FG)return{type:"Option",idx:t.idx,definition:e(t.definition)};if(t instanceof NG)return{type:"RepetitionMandatory",idx:t.idx,definition:e(t.definition)};if(t instanceof LG)return{type:"RepetitionMandatoryWithSeparator",idx:t.idx,separator:Yh(new CI({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof MG)return{type:"RepetitionWithSeparator",idx:t.idx,separator:Yh(new CI({terminalType:t.separator})),definition:e(t.definition)};if(t instanceof TG)return{type:"Repetition",idx:t.idx,definition:e(t.definition)};if(t instanceof OG)return{type:"Alternation",idx:t.idx,definition:e(t.definition)};if(t instanceof CI){var i={type:"Terminal",name:t.terminalType.name,label:(0,CIe.tokenLabel)(t.terminalType),idx:t.idx};(0,$t.isString)(t.label)&&(i.terminalLabel=t.label);var n=t.terminalType.PATTERN;return t.terminalType.PATTERN&&(i.pattern=(0,$t.isRegExp)(n)?n.source:n),i}else{if(t instanceof DG)return{type:"Rule",name:t.name,orgText:t.orgText,definition:e(t.definition)};throw Error("non exhaustive match")}}}Tt.serializeProduction=Yh});var EI=E(mI=>{"use strict";Object.defineProperty(mI,"__esModule",{value:!0});mI.RestWalker=void 0;var Zv=Dt(),pn=hn(),EIe=function(){function t(){}return t.prototype.walk=function(e,r){var i=this;r===void 0&&(r=[]),(0,Zv.forEach)(e.definition,function(n,s){var o=(0,Zv.drop)(e.definition,s+1);if(n instanceof pn.NonTerminal)i.walkProdRef(n,o,r);else if(n instanceof pn.Terminal)i.walkTerminal(n,o,r);else if(n instanceof pn.Alternative)i.walkFlat(n,o,r);else if(n instanceof pn.Option)i.walkOption(n,o,r);else if(n instanceof pn.RepetitionMandatory)i.walkAtLeastOne(n,o,r);else if(n instanceof pn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,r);else if(n instanceof pn.RepetitionWithSeparator)i.walkManySep(n,o,r);else if(n instanceof pn.Repetition)i.walkMany(n,o,r);else if(n instanceof pn.Alternation)i.walkOr(n,o,r);else throw Error("non exhaustive match")})},t.prototype.walkTerminal=function(e,r,i){},t.prototype.walkProdRef=function(e,r,i){},t.prototype.walkFlat=function(e,r,i){var n=r.concat(i);this.walk(e,n)},t.prototype.walkOption=function(e,r,i){var n=r.concat(i);this.walk(e,n)},t.prototype.walkAtLeastOne=function(e,r,i){var n=[new pn.Option({definition:e.definition})].concat(r,i);this.walk(e,n)},t.prototype.walkAtLeastOneSep=function(e,r,i){var n=KG(e,r,i);this.walk(e,n)},t.prototype.walkMany=function(e,r,i){var n=[new pn.Option({definition:e.definition})].concat(r,i);this.walk(e,n)},t.prototype.walkManySep=function(e,r,i){var n=KG(e,r,i);this.walk(e,n)},t.prototype.walkOr=function(e,r,i){var n=this,s=r.concat(i);(0,Zv.forEach)(e.definition,function(o){var a=new pn.Alternative({definition:[o]});n.walk(a,s)})},t}();mI.RestWalker=EIe;function KG(t,e,r){var i=[new pn.Option({definition:[new pn.Terminal({terminalType:t.separator})].concat(t.definition)})],n=i.concat(e,r);return n}});var wu=E(II=>{"use strict";Object.defineProperty(II,"__esModule",{value:!0});II.GAstVisitor=void 0;var lo=hn(),IIe=function(){function t(){}return t.prototype.visit=function(e){var r=e;switch(r.constructor){case lo.NonTerminal:return this.visitNonTerminal(r);case lo.Alternative:return this.visitAlternative(r);case lo.Option:return this.visitOption(r);case lo.RepetitionMandatory:return this.visitRepetitionMandatory(r);case lo.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(r);case lo.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(r);case lo.Repetition:return this.visitRepetition(r);case lo.Alternation:return this.visitAlternation(r);case lo.Terminal:return this.visitTerminal(r);case lo.Rule:return this.visitRule(r);default:throw Error("non exhaustive match")}},t.prototype.visitNonTerminal=function(e){},t.prototype.visitAlternative=function(e){},t.prototype.visitOption=function(e){},t.prototype.visitRepetition=function(e){},t.prototype.visitRepetitionMandatory=function(e){},t.prototype.visitRepetitionMandatoryWithSeparator=function(e){},t.prototype.visitRepetitionWithSeparator=function(e){},t.prototype.visitAlternation=function(e){},t.prototype.visitTerminal=function(e){},t.prototype.visitRule=function(e){},t}();II.GAstVisitor=IIe});var Jh=E(Si=>{"use strict";var yIe=Si&&Si.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Si,"__esModule",{value:!0});Si.collectMethods=Si.DslMethodsCollectorVisitor=Si.getProductionDslName=Si.isBranchingProd=Si.isOptionalProd=Si.isSequenceProd=void 0;var qh=Dt(),dr=hn(),wIe=wu();function BIe(t){return t instanceof dr.Alternative||t instanceof dr.Option||t instanceof dr.Repetition||t instanceof dr.RepetitionMandatory||t instanceof dr.RepetitionMandatoryWithSeparator||t instanceof dr.RepetitionWithSeparator||t instanceof dr.Terminal||t instanceof dr.Rule}Si.isSequenceProd=BIe;function $v(t,e){e===void 0&&(e=[]);var r=t instanceof dr.Option||t instanceof dr.Repetition||t instanceof dr.RepetitionWithSeparator;return r?!0:t instanceof dr.Alternation?(0,qh.some)(t.definition,function(i){return $v(i,e)}):t instanceof dr.NonTerminal&&(0,qh.contains)(e,t)?!1:t instanceof dr.AbstractProduction?(t instanceof dr.NonTerminal&&e.push(t),(0,qh.every)(t.definition,function(i){return $v(i,e)})):!1}Si.isOptionalProd=$v;function QIe(t){return t instanceof dr.Alternation}Si.isBranchingProd=QIe;function bIe(t){if(t instanceof dr.NonTerminal)return"SUBRULE";if(t instanceof dr.Option)return"OPTION";if(t instanceof dr.Alternation)return"OR";if(t instanceof dr.RepetitionMandatory)return"AT_LEAST_ONE";if(t instanceof dr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(t instanceof dr.RepetitionWithSeparator)return"MANY_SEP";if(t instanceof dr.Repetition)return"MANY";if(t instanceof dr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Si.getProductionDslName=bIe;var UG=function(t){yIe(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.separator="-",r.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},r}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(r){var i=r.terminalType.name+this.separator+"Terminal";(0,qh.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(r)},e.prototype.visitNonTerminal=function(r){var i=r.nonTerminalName+this.separator+"Terminal";(0,qh.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(r)},e.prototype.visitOption=function(r){this.dslMethods.option.push(r)},e.prototype.visitRepetitionWithSeparator=function(r){this.dslMethods.repetitionWithSeparator.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.dslMethods.repetitionMandatory.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.dslMethods.repetitionMandatoryWithSeparator.push(r)},e.prototype.visitRepetition=function(r){this.dslMethods.repetition.push(r)},e.prototype.visitAlternation=function(r){this.dslMethods.alternation.push(r)},e}(wIe.GAstVisitor);Si.DslMethodsCollectorVisitor=UG;var yI=new UG;function vIe(t){yI.reset(),t.accept(yI);var e=yI.dslMethods;return yI.reset(),e}Si.collectMethods=vIe});var tS=E(co=>{"use strict";Object.defineProperty(co,"__esModule",{value:!0});co.firstForTerminal=co.firstForBranching=co.firstForSequence=co.first=void 0;var wI=Dt(),HG=hn(),eS=Jh();function BI(t){if(t instanceof HG.NonTerminal)return BI(t.referencedRule);if(t instanceof HG.Terminal)return YG(t);if((0,eS.isSequenceProd)(t))return GG(t);if((0,eS.isBranchingProd)(t))return jG(t);throw Error("non exhaustive match")}co.first=BI;function GG(t){for(var e=[],r=t.definition,i=0,n=r.length>i,s,o=!0;n&&o;)s=r[i],o=(0,eS.isOptionalProd)(s),e=e.concat(BI(s)),i=i+1,n=r.length>i;return(0,wI.uniq)(e)}co.firstForSequence=GG;function jG(t){var e=(0,wI.map)(t.definition,function(r){return BI(r)});return(0,wI.uniq)((0,wI.flatten)(e))}co.firstForBranching=jG;function YG(t){return[t.terminalType]}co.firstForTerminal=YG});var rS=E(QI=>{"use strict";Object.defineProperty(QI,"__esModule",{value:!0});QI.IN=void 0;QI.IN="_~IN~_"});var VG=E(es=>{"use strict";var SIe=es&&es.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(es,"__esModule",{value:!0});es.buildInProdFollowPrefix=es.buildBetweenProdsFollowPrefix=es.computeAllProdsFollows=es.ResyncFollowsWalker=void 0;var xIe=EI(),kIe=tS(),qG=Dt(),JG=rS(),PIe=hn(),zG=function(t){SIe(e,t);function e(r){var i=t.call(this)||this;return i.topProd=r,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(r,i,n){},e.prototype.walkProdRef=function(r,i,n){var s=WG(r.referencedRule,r.idx)+this.topProd.name,o=i.concat(n),a=new PIe.Alternative({definition:o}),l=(0,kIe.first)(a);this.follows[s]=l},e}(xIe.RestWalker);es.ResyncFollowsWalker=zG;function DIe(t){var e={};return(0,qG.forEach)(t,function(r){var i=new zG(r).startWalking();(0,qG.assign)(e,i)}),e}es.computeAllProdsFollows=DIe;function WG(t,e){return t.name+e+JG.IN}es.buildBetweenProdsFollowPrefix=WG;function RIe(t){var e=t.terminalType.name;return e+t.idx+JG.IN}es.buildInProdFollowPrefix=RIe});var Wh=E(aa=>{"use strict";Object.defineProperty(aa,"__esModule",{value:!0});aa.defaultGrammarValidatorErrorProvider=aa.defaultGrammarResolverErrorProvider=aa.defaultParserErrorProvider=void 0;var Bu=nA(),FIe=Dt(),Rs=Dt(),iS=hn(),_G=Jh();aa.defaultParserErrorProvider={buildMismatchTokenMessage:function(t){var e=t.expected,r=t.actual,i=t.previous,n=t.ruleName,s=(0,Bu.hasTokenLabel)(e),o=s?"--> "+(0,Bu.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+r.image+"' <--";return a},buildNotAllInputParsedMessage:function(t){var e=t.firstRedundant,r=t.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(t){var e=t.expectedPathsPerAlt,r=t.actual,i=t.previous,n=t.customUserDescription,s=t.ruleName,o="Expecting: ",a=(0,Rs.first)(r).image,l=` -but found: '`+a+"'";if(n)return o+n+l;var c=(0,Rs.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,Rs.map)(c,function(h){return"["+(0,Rs.map)(h,function(p){return(0,Bu.tokenLabel)(p)}).join(", ")+"]"}),g=(0,Rs.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: -`+g.join(` -`);return o+f+l},buildEarlyExitMessage:function(t){var e=t.expectedIterationPaths,r=t.actual,i=t.customUserDescription,n=t.ruleName,s="Expecting: ",o=(0,Rs.first)(r).image,a=` -but found: '`+o+"'";if(i)return s+i+a;var l=(0,Rs.map)(e,function(u){return"["+(0,Rs.map)(u,function(g){return(0,Bu.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: - `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(aa.defaultParserErrorProvider);aa.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(t,e){var r="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- -inside top level rule: ->`+t.name+"<-";return r}};aa.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(t,e){function r(u){return u instanceof iS.Terminal?u.terminalType.name:u instanceof iS.NonTerminal?u.nonTerminalName:""}var i=t.name,n=(0,Rs.first)(e),s=n.idx,o=(0,_G.getProductionDslName)(n),a=r(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` - appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. - For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES - `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` -`),c},buildNamespaceConflictError:function(t){var e=`Namespace conflict found in grammar. -`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+t.name+`>. -`)+`To resolve this make sure each Terminal and Non-Terminal names are unique -This is easy to accomplish by using the convention that Terminal names start with an uppercase letter -and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(t){var e=(0,Rs.map)(t.prefixPath,function(n){return(0,Bu.tokenLabel)(n)}).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,i="Ambiguous alternatives: <"+t.ambiguityIndices.join(" ,")+`> due to common lookahead prefix -`+("in inside <"+t.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX -For Further details.`;return i},buildAlternationAmbiguityError:function(t){var e=(0,Rs.map)(t.prefixPath,function(n){return(0,Bu.tokenLabel)(n)}).join(", "),r=t.alternation.idx===0?"":t.alternation.idx,i="Ambiguous Alternatives Detected: <"+t.ambiguityIndices.join(" ,")+"> in "+(" inside <"+t.topLevelRule.name+`> Rule, -`)+("<"+e+`> may appears as a prefix path in all these alternatives. -`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES -For Further details.`,i},buildEmptyRepetitionError:function(t){var e=(0,_G.getProductionDslName)(t.repetition);t.repetition.idx!==0&&(e+=t.repetition.idx);var r="The repetition <"+e+"> within Rule <"+t.topLevelRule.name+`> can never consume any tokens. -This could lead to an infinite loop.`;return r},buildTokenNameError:function(t){return"deprecated"},buildEmptyAlternationError:function(t){var e="Ambiguous empty alternative: <"+(t.emptyChoiceIdx+1)+">"+(" in inside <"+t.topLevelRule.name+`> Rule. -`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(t){var e=`An Alternation cannot have more than 256 alternatives: -`+(" inside <"+t.topLevelRule.name+`> Rule. - has `+(t.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(t){var e=t.topLevelRule.name,r=FIe.map(t.leftRecursionPath,function(s){return s.name}),i=e+" --> "+r.concat([e]).join(" --> "),n=`Left Recursion found in grammar. -`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) -`)+(`without consuming any Tokens. The grammar path that causes this is: - `+i+` -`)+` To fix this refactor your grammar to remove the left recursion. -see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(t){return"deprecated"},buildDuplicateRuleNameError:function(t){var e;t.topLevelRule instanceof iS.Rule?e=t.topLevelRule.name:e=t.topLevelRule;var r="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+t.grammarName+"<-";return r}}});var $G=E(sA=>{"use strict";var NIe=sA&&sA.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(sA,"__esModule",{value:!0});sA.GastRefResolverVisitor=sA.resolveGrammar=void 0;var LIe=Tn(),XG=Dt(),TIe=wu();function MIe(t,e){var r=new ZG(t,e);return r.resolveRefs(),r.errors}sA.resolveGrammar=MIe;var ZG=function(t){NIe(e,t);function e(r,i){var n=t.call(this)||this;return n.nameToTopRule=r,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var r=this;(0,XG.forEach)((0,XG.values)(this.nameToTopRule),function(i){r.currTopLevel=i,i.accept(r)})},e.prototype.visitNonTerminal=function(r){var i=this.nameToTopRule[r.nonTerminalName];if(i)r.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,r);this.errors.push({message:n,type:LIe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:r.nonTerminalName})}},e}(TIe.GAstVisitor);sA.GastRefResolverVisitor=ZG});var Vh=E(Br=>{"use strict";var Fl=Br&&Br.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Br,"__esModule",{value:!0});Br.nextPossibleTokensAfter=Br.possiblePathsFrom=Br.NextTerminalAfterAtLeastOneSepWalker=Br.NextTerminalAfterAtLeastOneWalker=Br.NextTerminalAfterManySepWalker=Br.NextTerminalAfterManyWalker=Br.AbstractNextTerminalAfterProductionWalker=Br.NextAfterTokenWalker=Br.AbstractNextPossibleTokensWalker=void 0;var ej=EI(),xt=Dt(),OIe=tS(),It=hn(),tj=function(t){Fl(e,t);function e(r,i){var n=t.call(this)||this;return n.topProd=r,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,xt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,xt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(r,i){i===void 0&&(i=[]),this.found||t.prototype.walk.call(this,r,i)},e.prototype.walkProdRef=function(r,i,n){if(r.referencedRule.name===this.nextProductionName&&r.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(r.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,xt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(ej.RestWalker);Br.AbstractNextPossibleTokensWalker=tj;var KIe=function(t){Fl(e,t);function e(r,i){var n=t.call(this,r,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(r,i,n){if(this.isAtEndOfPath&&r.terminalType.name===this.nextTerminalName&&r.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new It.Alternative({definition:s});this.possibleTokTypes=(0,OIe.first)(o),this.found=!0}},e}(tj);Br.NextAfterTokenWalker=KIe;var zh=function(t){Fl(e,t);function e(r,i){var n=t.call(this)||this;return n.topRule=r,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(ej.RestWalker);Br.AbstractNextTerminalAfterProductionWalker=zh;var UIe=function(t){Fl(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkMany=function(r,i,n){if(r.idx===this.occurrence){var s=(0,xt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof It.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkMany.call(this,r,i,n)},e}(zh);Br.NextTerminalAfterManyWalker=UIe;var HIe=function(t){Fl(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkManySep=function(r,i,n){if(r.idx===this.occurrence){var s=(0,xt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof It.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkManySep.call(this,r,i,n)},e}(zh);Br.NextTerminalAfterManySepWalker=HIe;var GIe=function(t){Fl(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(r,i,n){if(r.idx===this.occurrence){var s=(0,xt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof It.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkAtLeastOne.call(this,r,i,n)},e}(zh);Br.NextTerminalAfterAtLeastOneWalker=GIe;var jIe=function(t){Fl(e,t);function e(){return t!==null&&t.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(r,i,n){if(r.idx===this.occurrence){var s=(0,xt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof It.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else t.prototype.walkAtLeastOneSep.call(this,r,i,n)},e}(zh);Br.NextTerminalAfterAtLeastOneSepWalker=jIe;function rj(t,e,r){r===void 0&&(r=[]),r=(0,xt.cloneArr)(r);var i=[],n=0;function s(c){return c.concat((0,xt.drop)(t,n+1))}function o(c){var u=rj(s(c),e,r);return i.concat(u)}for(;r.length=0;W--){var X=I.definition[W],F={idx:p,def:X.definition.concat((0,xt.drop)(h)),ruleStack:d,occurrenceStack:m};g.push(F),g.push(o)}else if(I instanceof It.Alternative)g.push({idx:p,def:I.definition.concat((0,xt.drop)(h)),ruleStack:d,occurrenceStack:m});else if(I instanceof It.Rule)g.push(YIe(I,p,d,m));else throw Error("non exhaustive match")}}return u}Br.nextPossibleTokensAfter=qIe;function YIe(t,e,r,i){var n=(0,xt.cloneArr)(r);n.push(t.name);var s=(0,xt.cloneArr)(i);return s.push(1),{idx:e,def:t.definition,ruleStack:n,occurrenceStack:s}}});var _h=E(Gt=>{"use strict";var ij=Gt&&Gt.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Gt,"__esModule",{value:!0});Gt.areTokenCategoriesNotUsed=Gt.isStrictPrefixOfPath=Gt.containsPath=Gt.getLookaheadPathsForOptionalProd=Gt.getLookaheadPathsForOr=Gt.lookAheadSequenceFromAlternatives=Gt.buildSingleAlternativeLookaheadFunction=Gt.buildAlternativesLookAheadFunc=Gt.buildLookaheadFuncForOptionalProd=Gt.buildLookaheadFuncForOr=Gt.getProdType=Gt.PROD_TYPE=void 0;var _t=Dt(),nj=Vh(),JIe=EI(),bI=yu(),oA=hn(),WIe=wu(),zr;(function(t){t[t.OPTION=0]="OPTION",t[t.REPETITION=1]="REPETITION",t[t.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",t[t.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",t[t.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",t[t.ALTERNATION=5]="ALTERNATION"})(zr=Gt.PROD_TYPE||(Gt.PROD_TYPE={}));function zIe(t){if(t instanceof oA.Option)return zr.OPTION;if(t instanceof oA.Repetition)return zr.REPETITION;if(t instanceof oA.RepetitionMandatory)return zr.REPETITION_MANDATORY;if(t instanceof oA.RepetitionMandatoryWithSeparator)return zr.REPETITION_MANDATORY_WITH_SEPARATOR;if(t instanceof oA.RepetitionWithSeparator)return zr.REPETITION_WITH_SEPARATOR;if(t instanceof oA.Alternation)return zr.ALTERNATION;throw Error("non exhaustive match")}Gt.getProdType=zIe;function VIe(t,e,r,i,n,s){var o=sj(t,e,r),a=nS(o)?bI.tokenStructuredMatcherNoCategories:bI.tokenStructuredMatcher;return s(o,i,a,n)}Gt.buildLookaheadFuncForOr=VIe;function _Ie(t,e,r,i,n,s){var o=oj(t,e,n,r),a=nS(o)?bI.tokenStructuredMatcherNoCategories:bI.tokenStructuredMatcher;return s(o[0],a,i)}Gt.buildLookaheadFuncForOptionalProd=_Ie;function XIe(t,e,r,i){var n=t.length,s=(0,_t.every)(t,function(l){return(0,_t.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,_t.map)(l,function(b){return b.GATE}),u=0;u{"use strict";var aS=Mt&&Mt.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(Mt,"__esModule",{value:!0});Mt.checkPrefixAlternativesAmbiguities=Mt.validateSomeNonEmptyLookaheadPath=Mt.validateTooManyAlts=Mt.RepetionCollector=Mt.validateAmbiguousAlternationAlternatives=Mt.validateEmptyOrAlternative=Mt.getFirstNoneTerminal=Mt.validateNoLeftRecursion=Mt.validateRuleIsOverridden=Mt.validateRuleDoesNotAlreadyExist=Mt.OccurrenceValidationCollector=Mt.identifyProductionForDuplicates=Mt.validateGrammar=void 0;var jt=Dt(),Cr=Dt(),uo=Tn(),AS=Jh(),Qu=_h(),rye=Vh(),Fs=hn(),lS=wu();function sye(t,e,r,i,n){var s=jt.map(t,function(h){return iye(h,i)}),o=jt.map(t,function(h){return cS(h,h,i)}),a=[],l=[],c=[];(0,Cr.every)(o,Cr.isEmpty)&&(a=(0,Cr.map)(t,function(h){return uj(h,i)}),l=(0,Cr.map)(t,function(h){return gj(h,e,i)}),c=hj(t,e,i));var u=nye(t,r,i),g=(0,Cr.map)(t,function(h){return fj(h,i)}),f=(0,Cr.map)(t,function(h){return cj(h,t,n,i)});return jt.flatten(s.concat(c,o,a,l,u,g,f))}Mt.validateGrammar=sye;function iye(t,e){var r=new Cj;t.accept(r);var i=r.allProductions,n=jt.groupBy(i,pj),s=jt.pick(n,function(a){return a.length>1}),o=jt.map(jt.values(s),function(a){var l=jt.first(a),c=e.buildDuplicateFoundError(t,a),u=(0,AS.getProductionDslName)(l),g={message:c,type:uo.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:t.name,dslName:u,occurrence:l.idx},f=dj(l);return f&&(g.parameter=f),g});return o}function pj(t){return(0,AS.getProductionDslName)(t)+"_#_"+t.idx+"_#_"+dj(t)}Mt.identifyProductionForDuplicates=pj;function dj(t){return t instanceof Fs.Terminal?t.terminalType.name:t instanceof Fs.NonTerminal?t.nonTerminalName:""}var Cj=function(t){aS(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.allProductions=[],r}return e.prototype.visitNonTerminal=function(r){this.allProductions.push(r)},e.prototype.visitOption=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetition=function(r){this.allProductions.push(r)},e.prototype.visitAlternation=function(r){this.allProductions.push(r)},e.prototype.visitTerminal=function(r){this.allProductions.push(r)},e}(lS.GAstVisitor);Mt.OccurrenceValidationCollector=Cj;function cj(t,e,r,i){var n=[],s=(0,Cr.reduce)(e,function(a,l){return l.name===t.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:t,grammarName:r});n.push({message:o,type:uo.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:t.name})}return n}Mt.validateRuleDoesNotAlreadyExist=cj;function oye(t,e,r){var i=[],n;return jt.contains(e,t)||(n="Invalid rule override, rule: ->"+t+"<- cannot be overridden in the grammar: ->"+r+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:uo.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:t})),i}Mt.validateRuleIsOverridden=oye;function cS(t,e,r,i){i===void 0&&(i=[]);var n=[],s=Xh(e.definition);if(jt.isEmpty(s))return[];var o=t.name,a=jt.contains(s,t);a&&n.push({message:r.buildLeftRecursionError({topLevelRule:t,leftRecursionPath:i}),type:uo.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=jt.difference(s,i.concat([t])),c=jt.map(l,function(u){var g=jt.cloneArr(i);return g.push(u),cS(t,u,r,g)});return n.concat(jt.flatten(c))}Mt.validateNoLeftRecursion=cS;function Xh(t){var e=[];if(jt.isEmpty(t))return e;var r=jt.first(t);if(r instanceof Fs.NonTerminal)e.push(r.referencedRule);else if(r instanceof Fs.Alternative||r instanceof Fs.Option||r instanceof Fs.RepetitionMandatory||r instanceof Fs.RepetitionMandatoryWithSeparator||r instanceof Fs.RepetitionWithSeparator||r instanceof Fs.Repetition)e=e.concat(Xh(r.definition));else if(r instanceof Fs.Alternation)e=jt.flatten(jt.map(r.definition,function(o){return Xh(o.definition)}));else if(!(r instanceof Fs.Terminal))throw Error("non exhaustive match");var i=(0,AS.isOptionalProd)(r),n=t.length>1;if(i&&n){var s=jt.drop(t);return e.concat(Xh(s))}else return e}Mt.getFirstNoneTerminal=Xh;var uS=function(t){aS(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.alternations=[],r}return e.prototype.visitAlternation=function(r){this.alternations.push(r)},e}(lS.GAstVisitor);function uj(t,e){var r=new uS;t.accept(r);var i=r.alternations,n=jt.reduce(i,function(s,o){var a=jt.dropRight(o.definition),l=jt.map(a,function(c,u){var g=(0,rye.nextPossibleTokensAfter)([c],[],null,1);return jt.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:t,alternation:o,emptyChoiceIdx:u}),type:uo.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:t.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(jt.compact(l))},[]);return n}Mt.validateEmptyOrAlternative=uj;function gj(t,e,r){var i=new uS;t.accept(i);var n=i.alternations;n=(0,Cr.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=jt.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,Qu.getLookaheadPathsForOr)(l,t,c,a),g=aye(u,a,t,r),f=mj(u,a,t,r);return o.concat(g,f)},[]);return s}Mt.validateAmbiguousAlternationAlternatives=gj;var Ej=function(t){aS(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.allProductions=[],r}return e.prototype.visitRepetitionWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatory=function(r){this.allProductions.push(r)},e.prototype.visitRepetitionMandatoryWithSeparator=function(r){this.allProductions.push(r)},e.prototype.visitRepetition=function(r){this.allProductions.push(r)},e}(lS.GAstVisitor);Mt.RepetionCollector=Ej;function fj(t,e){var r=new uS;t.accept(r);var i=r.alternations,n=jt.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:t,alternation:o}),type:uo.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:t.name,occurrence:o.idx}),s},[]);return n}Mt.validateTooManyAlts=fj;function hj(t,e,r){var i=[];return(0,Cr.forEach)(t,function(n){var s=new Ej;n.accept(s);var o=s.allProductions;(0,Cr.forEach)(o,function(a){var l=(0,Qu.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,Qu.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,Cr.isEmpty)((0,Cr.flatten)(f))){var h=r.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:uo.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}Mt.validateSomeNonEmptyLookaheadPath=hj;function aye(t,e,r,i){var n=[],s=(0,Cr.reduce)(t,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,Cr.forEach)(l,function(u){var g=[c];(0,Cr.forEach)(t,function(f,h){c!==h&&(0,Qu.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,Qu.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=jt.map(s,function(a){var l=(0,Cr.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:r,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:uo.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:r.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function mj(t,e,r,i){var n=[],s=(0,Cr.reduce)(t,function(o,a,l){var c=(0,Cr.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,Cr.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,Cr.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(bu,"__esModule",{value:!0});bu.validateGrammar=bu.resolveGrammar=void 0;var fS=Dt(),Aye=$G(),lye=gS(),Ij=Wh();function cye(t){t=(0,fS.defaults)(t,{errMsgProvider:Ij.defaultGrammarResolverErrorProvider});var e={};return(0,fS.forEach)(t.rules,function(r){e[r.name]=r}),(0,Aye.resolveGrammar)(e,t.errMsgProvider)}bu.resolveGrammar=cye;function uye(t){return t=(0,fS.defaults)(t,{errMsgProvider:Ij.defaultGrammarValidatorErrorProvider}),(0,lye.validateGrammar)(t.rules,t.maxLookahead,t.tokenTypes,t.errMsgProvider,t.grammarName)}bu.validateGrammar=uye});var vu=E(dn=>{"use strict";var Zh=dn&&dn.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(dn,"__esModule",{value:!0});dn.EarlyExitException=dn.NotAllInputParsedException=dn.NoViableAltException=dn.MismatchedTokenException=dn.isRecognitionException=void 0;var gye=Dt(),wj="MismatchedTokenException",Bj="NoViableAltException",Qj="EarlyExitException",bj="NotAllInputParsedException",vj=[wj,Bj,Qj,bj];Object.freeze(vj);function fye(t){return(0,gye.contains)(vj,t.name)}dn.isRecognitionException=fye;var vI=function(t){Zh(e,t);function e(r,i){var n=this.constructor,s=t.call(this,r)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),hye=function(t){Zh(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=wj,s}return e}(vI);dn.MismatchedTokenException=hye;var pye=function(t){Zh(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=Bj,s}return e}(vI);dn.NoViableAltException=pye;var dye=function(t){Zh(e,t);function e(r,i){var n=t.call(this,r,i)||this;return n.name=bj,n}return e}(vI);dn.NotAllInputParsedException=dye;var Cye=function(t){Zh(e,t);function e(r,i,n){var s=t.call(this,r,i)||this;return s.previousToken=n,s.name=Qj,s}return e}(vI);dn.EarlyExitException=Cye});var pS=E(xi=>{"use strict";Object.defineProperty(xi,"__esModule",{value:!0});xi.attemptInRepetitionRecovery=xi.Recoverable=xi.InRuleRecoveryException=xi.IN_RULE_RECOVERY_EXCEPTION=xi.EOF_FOLLOW_KEY=void 0;var SI=nA(),ts=Dt(),mye=vu(),Eye=rS(),Iye=Tn();xi.EOF_FOLLOW_KEY={};xi.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function hS(t){this.name=xi.IN_RULE_RECOVERY_EXCEPTION,this.message=t}xi.InRuleRecoveryException=hS;hS.prototype=Error.prototype;var yye=function(){function t(){}return t.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,ts.has)(e,"recoveryEnabled")?e.recoveryEnabled:Iye.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=Sj)},t.prototype.getTokenToInsert=function(e){var r=(0,SI.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return r.isInsertedInRecovery=!0,r},t.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},t.prototype.tryInRepetitionRecovery=function(e,r,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),d=new mye.MismatchedTokenException(p,u,s.LA(0));d.resyncedTokens=(0,ts.dropRight)(l),s.SAVE_ERROR(d)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,r);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},t.prototype.shouldInRepetitionRecoveryBeTried=function(e,r,i){return!(i===!1||e===void 0||r===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,r)))},t.prototype.getFollowsForInRuleRecovery=function(e,r){var i=this.getCurrentGrammarPath(e,r),n=this.getNextPossibleTokenTypes(i);return n},t.prototype.tryInRuleRecovery=function(e,r){if(this.canRecoverWithSingleTokenInsertion(e,r)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new hS("sad sad panda")},t.prototype.canPerformInRuleRecovery=function(e,r){return this.canRecoverWithSingleTokenInsertion(e,r)||this.canRecoverWithSingleTokenDeletion(e)},t.prototype.canRecoverWithSingleTokenInsertion=function(e,r){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,ts.isEmpty)(r))return!1;var n=this.LA(1),s=(0,ts.find)(r,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},t.prototype.canRecoverWithSingleTokenDeletion=function(e){var r=this.tokenMatcher(this.LA(2),e);return r},t.prototype.isInCurrentRuleReSyncSet=function(e){var r=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(r);return(0,ts.contains)(i,e)},t.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),r=this.LA(1),i=2;;){var n=r.tokenType;if((0,ts.contains)(e,n))return n;r=this.LA(i),i++}},t.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return xi.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),r=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:r,inRule:this.shortRuleNameToFullName(i)}},t.prototype.buildFullFollowKeyStack=function(){var e=this,r=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,ts.map)(r,function(n,s){return s===0?xi.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(r[s-1])}})},t.prototype.flattenFollowSet=function(){var e=this,r=(0,ts.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,ts.flatten)(r)},t.prototype.getFollowSetFromFollowKey=function(e){if(e===xi.EOF_FOLLOW_KEY)return[SI.EOF];var r=e.ruleName+e.idxInCallingRule+Eye.IN+e.inRule;return this.resyncFollows[r]},t.prototype.addToResyncTokens=function(e,r){return this.tokenMatcher(e,SI.EOF)||r.push(e),r},t.prototype.reSyncTo=function(e){for(var r=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,r);return(0,ts.dropRight)(r)},t.prototype.attemptInRepetitionRecovery=function(e,r,i,n,s,o,a){},t.prototype.getCurrentGrammarPath=function(e,r){var i=this.getHumanReadableRuleStack(),n=(0,ts.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:r};return s},t.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,ts.map)(this.RULE_STACK,function(r){return e.shortRuleNameToFullName(r)})},t}();xi.Recoverable=yye;function Sj(t,e,r,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=SI.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(t,e,r,f)}xi.attemptInRepetitionRecovery=Sj});var xI=E(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.getKeyForAutomaticLookahead=Nt.AT_LEAST_ONE_SEP_IDX=Nt.MANY_SEP_IDX=Nt.AT_LEAST_ONE_IDX=Nt.MANY_IDX=Nt.OPTION_IDX=Nt.OR_IDX=Nt.BITS_FOR_ALT_IDX=Nt.BITS_FOR_RULE_IDX=Nt.BITS_FOR_OCCURRENCE_IDX=Nt.BITS_FOR_METHOD_TYPE=void 0;Nt.BITS_FOR_METHOD_TYPE=4;Nt.BITS_FOR_OCCURRENCE_IDX=8;Nt.BITS_FOR_RULE_IDX=12;Nt.BITS_FOR_ALT_IDX=8;Nt.OR_IDX=1<{"use strict";Object.defineProperty(kI,"__esModule",{value:!0});kI.LooksAhead=void 0;var Aa=_h(),Ns=Dt(),xj=Tn(),la=xI(),Nl=Jh(),Bye=function(){function t(){}return t.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,Ns.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:xj.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,Ns.has)(e,"maxLookahead")?e.maxLookahead:xj.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,Ns.isES2015MapSupported)()?new Map:[],(0,Ns.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},t.prototype.preComputeLookaheadFunctions=function(e){var r=this;(0,Ns.forEach)(e,function(i){r.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,Nl.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,Ns.forEach)(s,function(g){var f=g.idx===0?"":g.idx;r.TRACE_INIT(""+(0,Nl.getProductionDslName)(g)+f,function(){var h=(0,Aa.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||r.maxLookahead,g.hasPredicates,r.dynamicTokensEnabled,r.lookAheadBuilderForAlternatives),p=(0,la.getKeyForAutomaticLookahead)(r.fullRuleNameToShort[i.name],la.OR_IDX,g.idx);r.setLaFuncCache(p,h)})}),(0,Ns.forEach)(o,function(g){r.computeLookaheadFunc(i,g.idx,la.MANY_IDX,Aa.PROD_TYPE.REPETITION,g.maxLookahead,(0,Nl.getProductionDslName)(g))}),(0,Ns.forEach)(a,function(g){r.computeLookaheadFunc(i,g.idx,la.OPTION_IDX,Aa.PROD_TYPE.OPTION,g.maxLookahead,(0,Nl.getProductionDslName)(g))}),(0,Ns.forEach)(l,function(g){r.computeLookaheadFunc(i,g.idx,la.AT_LEAST_ONE_IDX,Aa.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,Nl.getProductionDslName)(g))}),(0,Ns.forEach)(c,function(g){r.computeLookaheadFunc(i,g.idx,la.AT_LEAST_ONE_SEP_IDX,Aa.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,Nl.getProductionDslName)(g))}),(0,Ns.forEach)(u,function(g){r.computeLookaheadFunc(i,g.idx,la.MANY_SEP_IDX,Aa.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,Nl.getProductionDslName)(g))})})})},t.prototype.computeLookaheadFunc=function(e,r,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(r===0?"":r),function(){var l=(0,Aa.buildLookaheadFuncForOptionalProd)(r,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,la.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,r);a.setLaFuncCache(c,l)})},t.prototype.lookAheadBuilderForOptional=function(e,r,i){return(0,Aa.buildSingleAlternativeLookaheadFunction)(e,r,i)},t.prototype.lookAheadBuilderForAlternatives=function(e,r,i,n){return(0,Aa.buildAlternativesLookAheadFunc)(e,r,i,n)},t.prototype.getKeyForAutomaticLookahead=function(e,r){var i=this.getLastExplicitRuleShortName();return(0,la.getKeyForAutomaticLookahead)(i,e,r)},t.prototype.getLaFuncFromCache=function(e){},t.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},t.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},t.prototype.setLaFuncCache=function(e,r){},t.prototype.setLaFuncCacheUsingMap=function(e,r){this.lookAheadFuncsCache.set(e,r)},t.prototype.setLaFuncUsingObj=function(e,r){this.lookAheadFuncsCache[e]=r},t}();kI.LooksAhead=Bye});var Pj=E(go=>{"use strict";Object.defineProperty(go,"__esModule",{value:!0});go.addNoneTerminalToCst=go.addTerminalToCst=go.setNodeLocationFull=go.setNodeLocationOnlyOffset=void 0;function Qye(t,e){isNaN(t.startOffset)===!0?(t.startOffset=e.startOffset,t.endOffset=e.endOffset):t.endOffset{"use strict";Object.defineProperty(aA,"__esModule",{value:!0});aA.defineNameProp=aA.functionName=aA.classNameFromInstance=void 0;var xye=Dt();function kye(t){return Dj(t.constructor)}aA.classNameFromInstance=kye;var Rj="name";function Dj(t){var e=t.name;return e||"anonymous"}aA.functionName=Dj;function Pye(t,e){var r=Object.getOwnPropertyDescriptor(t,Rj);return(0,xye.isUndefined)(r)||r.configurable?(Object.defineProperty(t,Rj,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}aA.defineNameProp=Pye});var Mj=E(mi=>{"use strict";Object.defineProperty(mi,"__esModule",{value:!0});mi.validateRedundantMethods=mi.validateMissingCstMethods=mi.validateVisitor=mi.CstVisitorDefinitionError=mi.createBaseVisitorConstructorWithDefaults=mi.createBaseSemanticVisitorConstructor=mi.defaultVisit=void 0;var rs=Dt(),$h=dS();function Fj(t,e){for(var r=(0,rs.keys)(t),i=r.length,n=0;n: - `+(""+s.join(` - -`).replace(/\n/g,` - `)))}}};return r.prototype=i,r.prototype.constructor=r,r._RULE_NAMES=e,r}mi.createBaseSemanticVisitorConstructor=Dye;function Rye(t,e,r){var i=function(){};(0,$h.defineNameProp)(i,t+"BaseSemanticsWithDefaults");var n=Object.create(r.prototype);return(0,rs.forEach)(e,function(s){n[s]=Fj}),i.prototype=n,i.prototype.constructor=i,i}mi.createBaseVisitorConstructorWithDefaults=Rye;var CS;(function(t){t[t.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",t[t.MISSING_METHOD=1]="MISSING_METHOD"})(CS=mi.CstVisitorDefinitionError||(mi.CstVisitorDefinitionError={}));function Nj(t,e){var r=Lj(t,e),i=Tj(t,e);return r.concat(i)}mi.validateVisitor=Nj;function Lj(t,e){var r=(0,rs.map)(e,function(i){if(!(0,rs.isFunction)(t[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,$h.functionName)(t.constructor)+" CST Visitor.",type:CS.MISSING_METHOD,methodName:i}});return(0,rs.compact)(r)}mi.validateMissingCstMethods=Lj;var Fye=["constructor","visit","validateVisitor"];function Tj(t,e){var r=[];for(var i in t)(0,rs.isFunction)(t[i])&&!(0,rs.contains)(Fye,i)&&!(0,rs.contains)(e,i)&&r.push({msg:"Redundant visitor method: <"+i+"> on "+(0,$h.functionName)(t.constructor)+` CST Visitor -There is no Grammar Rule corresponding to this method's name. -`,type:CS.REDUNDANT_METHOD,methodName:i});return r}mi.validateRedundantMethods=Tj});var Kj=E(PI=>{"use strict";Object.defineProperty(PI,"__esModule",{value:!0});PI.TreeBuilder=void 0;var Su=Pj(),Ur=Dt(),Oj=Mj(),Nye=Tn(),Lye=function(){function t(){}return t.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Ur.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:Nye.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Ur.NOOP,this.cstFinallyStateUpdate=Ur.NOOP,this.cstPostTerminal=Ur.NOOP,this.cstPostNonTerminal=Ur.NOOP,this.cstPostRule=Ur.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Su.setNodeLocationFull,this.setNodeLocationFromNode=Su.setNodeLocationFull,this.cstPostRule=Ur.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Ur.NOOP,this.setNodeLocationFromNode=Ur.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=Su.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=Su.setNodeLocationOnlyOffset,this.cstPostRule=Ur.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Ur.NOOP,this.setNodeLocationFromNode=Ur.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Ur.NOOP,this.setNodeLocationFromNode=Ur.NOOP,this.cstPostRule=Ur.NOOP,this.setInitialNodeLocation=Ur.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},t.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},t.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},t.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.setInitialNodeLocationFullRegular=function(e){var r=this.LA(1);e.location={startOffset:r.startOffset,startLine:r.startLine,startColumn:r.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},t.prototype.cstInvocationStateUpdate=function(e,r){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},t.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},t.prototype.cstPostRuleFull=function(e){var r=this.LA(0),i=e.location;i.startOffset<=r.startOffset?(i.endOffset=r.endOffset,i.endLine=r.endLine,i.endColumn=r.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},t.prototype.cstPostRuleOnlyOffset=function(e){var r=this.LA(0),i=e.location;i.startOffset<=r.startOffset?i.endOffset=r.endOffset:i.startOffset=NaN},t.prototype.cstPostTerminal=function(e,r){var i=this.CST_STACK[this.CST_STACK.length-1];(0,Su.addTerminalToCst)(i,r,e),this.setNodeLocationFromToken(i.location,r)},t.prototype.cstPostNonTerminal=function(e,r){var i=this.CST_STACK[this.CST_STACK.length-1];(0,Su.addNoneTerminalToCst)(i,r,e),this.setNodeLocationFromNode(i.location,e.location)},t.prototype.getBaseCstVisitorConstructor=function(){if((0,Ur.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,Oj.createBaseSemanticVisitorConstructor)(this.className,(0,Ur.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},t.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Ur.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,Oj.createBaseVisitorConstructorWithDefaults)(this.className,(0,Ur.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},t.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},t.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},t.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},t}();PI.TreeBuilder=Lye});var Hj=E(DI=>{"use strict";Object.defineProperty(DI,"__esModule",{value:!0});DI.LexerAdapter=void 0;var Uj=Tn(),Tye=function(){function t(){}return t.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(t.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),t.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):Uj.END_OF_FILE},t.prototype.LA=function(e){var r=this.currIdx+e;return r<0||this.tokVectorLength<=r?Uj.END_OF_FILE:this.tokVector[r]},t.prototype.consumeToken=function(){this.currIdx++},t.prototype.exportLexerState=function(){return this.currIdx},t.prototype.importLexerState=function(e){this.currIdx=e},t.prototype.resetLexerState=function(){this.currIdx=-1},t.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},t.prototype.getLexerPosition=function(){return this.exportLexerState()},t}();DI.LexerAdapter=Tye});var jj=E(RI=>{"use strict";Object.defineProperty(RI,"__esModule",{value:!0});RI.RecognizerApi=void 0;var Gj=Dt(),Mye=vu(),mS=Tn(),Oye=Wh(),Kye=gS(),Uye=hn(),Hye=function(){function t(){}return t.prototype.ACTION=function(e){return e.call(this)},t.prototype.consume=function(e,r,i){return this.consumeInternal(r,e,i)},t.prototype.subrule=function(e,r,i){return this.subruleInternal(r,e,i)},t.prototype.option=function(e,r){return this.optionInternal(r,e)},t.prototype.or=function(e,r){return this.orInternal(r,e)},t.prototype.many=function(e,r){return this.manyInternal(e,r)},t.prototype.atLeastOne=function(e,r){return this.atLeastOneInternal(e,r)},t.prototype.CONSUME=function(e,r){return this.consumeInternal(e,0,r)},t.prototype.CONSUME1=function(e,r){return this.consumeInternal(e,1,r)},t.prototype.CONSUME2=function(e,r){return this.consumeInternal(e,2,r)},t.prototype.CONSUME3=function(e,r){return this.consumeInternal(e,3,r)},t.prototype.CONSUME4=function(e,r){return this.consumeInternal(e,4,r)},t.prototype.CONSUME5=function(e,r){return this.consumeInternal(e,5,r)},t.prototype.CONSUME6=function(e,r){return this.consumeInternal(e,6,r)},t.prototype.CONSUME7=function(e,r){return this.consumeInternal(e,7,r)},t.prototype.CONSUME8=function(e,r){return this.consumeInternal(e,8,r)},t.prototype.CONSUME9=function(e,r){return this.consumeInternal(e,9,r)},t.prototype.SUBRULE=function(e,r){return this.subruleInternal(e,0,r)},t.prototype.SUBRULE1=function(e,r){return this.subruleInternal(e,1,r)},t.prototype.SUBRULE2=function(e,r){return this.subruleInternal(e,2,r)},t.prototype.SUBRULE3=function(e,r){return this.subruleInternal(e,3,r)},t.prototype.SUBRULE4=function(e,r){return this.subruleInternal(e,4,r)},t.prototype.SUBRULE5=function(e,r){return this.subruleInternal(e,5,r)},t.prototype.SUBRULE6=function(e,r){return this.subruleInternal(e,6,r)},t.prototype.SUBRULE7=function(e,r){return this.subruleInternal(e,7,r)},t.prototype.SUBRULE8=function(e,r){return this.subruleInternal(e,8,r)},t.prototype.SUBRULE9=function(e,r){return this.subruleInternal(e,9,r)},t.prototype.OPTION=function(e){return this.optionInternal(e,0)},t.prototype.OPTION1=function(e){return this.optionInternal(e,1)},t.prototype.OPTION2=function(e){return this.optionInternal(e,2)},t.prototype.OPTION3=function(e){return this.optionInternal(e,3)},t.prototype.OPTION4=function(e){return this.optionInternal(e,4)},t.prototype.OPTION5=function(e){return this.optionInternal(e,5)},t.prototype.OPTION6=function(e){return this.optionInternal(e,6)},t.prototype.OPTION7=function(e){return this.optionInternal(e,7)},t.prototype.OPTION8=function(e){return this.optionInternal(e,8)},t.prototype.OPTION9=function(e){return this.optionInternal(e,9)},t.prototype.OR=function(e){return this.orInternal(e,0)},t.prototype.OR1=function(e){return this.orInternal(e,1)},t.prototype.OR2=function(e){return this.orInternal(e,2)},t.prototype.OR3=function(e){return this.orInternal(e,3)},t.prototype.OR4=function(e){return this.orInternal(e,4)},t.prototype.OR5=function(e){return this.orInternal(e,5)},t.prototype.OR6=function(e){return this.orInternal(e,6)},t.prototype.OR7=function(e){return this.orInternal(e,7)},t.prototype.OR8=function(e){return this.orInternal(e,8)},t.prototype.OR9=function(e){return this.orInternal(e,9)},t.prototype.MANY=function(e){this.manyInternal(0,e)},t.prototype.MANY1=function(e){this.manyInternal(1,e)},t.prototype.MANY2=function(e){this.manyInternal(2,e)},t.prototype.MANY3=function(e){this.manyInternal(3,e)},t.prototype.MANY4=function(e){this.manyInternal(4,e)},t.prototype.MANY5=function(e){this.manyInternal(5,e)},t.prototype.MANY6=function(e){this.manyInternal(6,e)},t.prototype.MANY7=function(e){this.manyInternal(7,e)},t.prototype.MANY8=function(e){this.manyInternal(8,e)},t.prototype.MANY9=function(e){this.manyInternal(9,e)},t.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},t.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},t.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},t.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},t.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},t.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},t.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},t.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},t.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},t.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},t.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},t.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},t.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},t.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},t.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},t.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},t.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},t.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},t.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},t.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},t.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},t.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},t.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},t.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},t.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},t.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},t.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},t.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},t.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},t.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},t.prototype.RULE=function(e,r,i){if(i===void 0&&(i=mS.DEFAULT_RULE_CONFIG),(0,Gj.contains)(this.definedRulesNames,e)){var n=Oye.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:mS.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,r,i);return this[e]=o,o},t.prototype.OVERRIDE_RULE=function(e,r,i){i===void 0&&(i=mS.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,Kye.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,r,i);return this[e]=s,s},t.prototype.BACKTRACK=function(e,r){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,r),!0}catch(n){if((0,Mye.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},t.prototype.getGAstProductions=function(){return this.gastProductionsCache},t.prototype.getSerializedGastProductions=function(){return(0,Uye.serializeGrammar)((0,Gj.values)(this.gastProductionsCache))},t}();RI.RecognizerApi=Hye});var Wj=E(FI=>{"use strict";Object.defineProperty(FI,"__esModule",{value:!0});FI.RecognizerEngine=void 0;var Er=Dt(),Mn=xI(),NI=vu(),Yj=_h(),xu=Vh(),qj=Tn(),Gye=pS(),Jj=nA(),ep=yu(),jye=dS(),Yye=function(){function t(){}return t.prototype.initRecognizerEngine=function(e,r){if(this.className=(0,jye.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=ep.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Er.has)(r,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 - For Further details.`);if((0,Er.isArray)(e)){if((0,Er.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. - Note that the first argument for the parser constructor - is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. - See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 - For Further details.`)}if((0,Er.isArray)(e))this.tokensMap=(0,Er.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Er.has)(e,"modes")&&(0,Er.every)((0,Er.flatten)((0,Er.values)(e.modes)),ep.isTokenType)){var i=(0,Er.flatten)((0,Er.values)(e.modes)),n=(0,Er.uniq)(i);this.tokensMap=(0,Er.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Er.isObject)(e))this.tokensMap=(0,Er.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=Jj.EOF;var s=(0,Er.every)((0,Er.values)(e),function(o){return(0,Er.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?ep.tokenStructuredMatcherNoCategories:ep.tokenStructuredMatcher,(0,ep.augmentTokenTypes)((0,Er.values)(this.tokensMap))},t.prototype.defineRule=function(e,r,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' -Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Er.has)(i,"resyncEnabled")?i.resyncEnabled:qj.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Er.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:qj.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<r},t.prototype.orInternal=function(e,r){var i=this.getKeyForAutomaticLookahead(Mn.OR_IDX,r),n=(0,Er.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(r,e.ERR_MSG)},t.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),r=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new NI.NotAllInputParsedException(r,e))}},t.prototype.subruleInternal=function(e,r,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,r,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},t.prototype.subruleInternalError=function(e,r,i){throw(0,NI.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,r!==void 0&&r.LABEL!==void 0?r.LABEL:i),delete e.partialCstResult),e},t.prototype.consumeInternal=function(e,r,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,r,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},t.prototype.consumeInternalError=function(e,r,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:r,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new NI.MismatchedTokenException(n,r,s))},t.prototype.consumeInternalRecovery=function(e,r,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,r);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===Gye.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},t.prototype.saveRecogState=function(){var e=this.errors,r=(0,Er.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:r,CST_STACK:this.CST_STACK}},t.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},t.prototype.ruleInvocationStateUpdate=function(e,r,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(r,e)},t.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},t.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},t.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},t.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),Jj.EOF)},t.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},t}();FI.RecognizerEngine=Yye});var Vj=E(LI=>{"use strict";Object.defineProperty(LI,"__esModule",{value:!0});LI.ErrorHandler=void 0;var ES=vu(),IS=Dt(),zj=_h(),qye=Tn(),Jye=function(){function t(){}return t.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,IS.has)(e,"errorMessageProvider")?e.errorMessageProvider:qye.DEFAULT_PARSER_CONFIG.errorMessageProvider},t.prototype.SAVE_ERROR=function(e){if((0,ES.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,IS.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(t.prototype,"errors",{get:function(){return(0,IS.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),t.prototype.raiseEarlyExitException=function(e,r,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,zj.getLookaheadPathsForOptionalProd)(e,s,r,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new ES.EarlyExitException(u,this.LA(1),this.LA(0)))},t.prototype.raiseNoAltException=function(e,r){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,zj.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:r,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new ES.NoViableAltException(c,this.LA(1),l))},t}();LI.ErrorHandler=Jye});var Zj=E(TI=>{"use strict";Object.defineProperty(TI,"__esModule",{value:!0});TI.ContentAssist=void 0;var _j=Vh(),Xj=Dt(),Wye=function(){function t(){}return t.prototype.initContentAssist=function(){},t.prototype.computeContentAssist=function(e,r){var i=this.gastProductionsCache[e];if((0,Xj.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,_j.nextPossibleTokensAfter)([i],r,this.tokenMatcher,this.maxLookahead)},t.prototype.getNextPossibleTokenTypes=function(e){var r=(0,Xj.first)(e.ruleStack),i=this.getGAstProductions(),n=i[r],s=new _j.NextAfterTokenWalker(n,e).startWalking();return s},t}();TI.ContentAssist=Wye});var oY=E(MI=>{"use strict";Object.defineProperty(MI,"__esModule",{value:!0});MI.GastRecorder=void 0;var Cn=Dt(),fo=hn(),zye=Gh(),$j=yu(),eY=nA(),Vye=Tn(),_ye=xI(),OI={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(OI);var tY=!0,rY=Math.pow(2,_ye.BITS_FOR_OCCURRENCE_IDX)-1,iY=(0,eY.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:zye.Lexer.NA});(0,$j.augmentTokenTypes)([iY]);var nY=(0,eY.createTokenInstance)(iY,`This IToken indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(nY);var Xye={name:`This CSTNode indicates the Parser is in Recording Phase - See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},$ye=function(){function t(){}return t.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},t.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var r=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)r(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},t.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var r=0;r<10;r++){var i=r>0?r:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},t.prototype.ACTION_RECORD=function(e){},t.prototype.BACKTRACK_RECORD=function(e,r){return function(){return!0}},t.prototype.LA_RECORD=function(e){return Vye.END_OF_FILE},t.prototype.topLevelRuleRecord=function(e,r){try{var i=new fo.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),r.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` - This error was thrown during the "grammar recording phase" For more info see: - https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch(s){throw n}throw n}},t.prototype.optionInternalRecord=function(e,r){return tp.call(this,fo.Option,e,r)},t.prototype.atLeastOneInternalRecord=function(e,r){tp.call(this,fo.RepetitionMandatory,r,e)},t.prototype.atLeastOneSepFirstInternalRecord=function(e,r){tp.call(this,fo.RepetitionMandatoryWithSeparator,r,e,tY)},t.prototype.manyInternalRecord=function(e,r){tp.call(this,fo.Repetition,r,e)},t.prototype.manySepFirstInternalRecord=function(e,r){tp.call(this,fo.RepetitionWithSeparator,r,e,tY)},t.prototype.orInternalRecord=function(e,r){return Zye.call(this,e,r)},t.prototype.subruleInternalRecord=function(e,r,i){if(KI(r),!e||(0,Cn.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,Cn.peek)(this.recordingProdStack),o=e.ruleName,a=new fo.NonTerminal({idx:r,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?Xye:OI},t.prototype.consumeInternalRecord=function(e,r,i){if(KI(r),!(0,$j.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` - inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,Cn.peek)(this.recordingProdStack),o=new fo.Terminal({idx:r,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),nY},t}();MI.GastRecorder=$ye;function tp(t,e,r,i){i===void 0&&(i=!1),KI(r);var n=(0,Cn.peek)(this.recordingProdStack),s=(0,Cn.isFunction)(e)?e:e.DEF,o=new t({definition:[],idx:r});return i&&(o.separator=e.SEP),(0,Cn.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),OI}function Zye(t,e){var r=this;KI(e);var i=(0,Cn.peek)(this.recordingProdStack),n=(0,Cn.isArray)(t)===!1,s=n===!1?t:t.DEF,o=new fo.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&t.IGNORE_AMBIGUITIES===!0});(0,Cn.has)(t,"MAX_LOOKAHEAD")&&(o.maxLookahead=t.MAX_LOOKAHEAD);var a=(0,Cn.some)(s,function(l){return(0,Cn.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,Cn.forEach)(s,function(l){var c=new fo.Alternative({definition:[]});o.definition.push(c),(0,Cn.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,Cn.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),r.recordingProdStack.push(c),l.ALT.call(r),r.recordingProdStack.pop()}),OI}function sY(t){return t===0?"":""+t}function KI(t){if(t<0||t>rY){var e=new Error("Invalid DSL Method idx value: <"+t+`> - `+("Idx value must be a none negative value smaller than "+(rY+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var AY=E(UI=>{"use strict";Object.defineProperty(UI,"__esModule",{value:!0});UI.PerformanceTracer=void 0;var aY=Dt(),ewe=Tn(),twe=function(){function t(){}return t.prototype.initPerformanceTracer=function(e){if((0,aY.has)(e,"traceInitPerf")){var r=e.traceInitPerf,i=typeof r=="number";this.traceInitMaxIdent=i?r:Infinity,this.traceInitPerf=i?r>0:r}else this.traceInitMaxIdent=0,this.traceInitPerf=ewe.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},t.prototype.TRACE_INIT=function(e,r){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,aY.timer)(r),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return r()},t}();UI.PerformanceTracer=twe});var lY=E(HI=>{"use strict";Object.defineProperty(HI,"__esModule",{value:!0});HI.applyMixins=void 0;function rwe(t,e){e.forEach(function(r){var i=r.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(t.prototype,n,s):t.prototype[n]=r.prototype[n]}})})}HI.applyMixins=rwe});var Tn=E(or=>{"use strict";var cY=or&&or.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function i(){this.constructor=e}e.prototype=r===null?Object.create(r):(i.prototype=r.prototype,new i)}}();Object.defineProperty(or,"__esModule",{value:!0});or.EmbeddedActionsParser=or.CstParser=or.Parser=or.EMPTY_ALT=or.ParserDefinitionErrorType=or.DEFAULT_RULE_CONFIG=or.DEFAULT_PARSER_CONFIG=or.END_OF_FILE=void 0;var Wi=Dt(),iwe=VG(),uY=nA(),gY=Wh(),fY=yj(),nwe=pS(),swe=kj(),owe=Kj(),awe=Hj(),Awe=jj(),lwe=Wj(),cwe=Vj(),uwe=Zj(),gwe=oY(),fwe=AY(),hwe=lY();or.END_OF_FILE=(0,uY.createTokenInstance)(uY.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(or.END_OF_FILE);or.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:gY.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});or.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var pwe;(function(t){t[t.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",t[t.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",t[t.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",t[t.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",t[t.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",t[t.LEFT_RECURSION=5]="LEFT_RECURSION",t[t.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",t[t.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",t[t.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",t[t.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",t[t.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",t[t.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",t[t.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(pwe=or.ParserDefinitionErrorType||(or.ParserDefinitionErrorType={}));function dwe(t){return t===void 0&&(t=void 0),function(){return t}}or.EMPTY_ALT=dwe;var GI=function(){function t(e,r){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(r),i.initLexerAdapter(),i.initLooksAhead(r),i.initRecognizerEngine(e,r),i.initRecoverable(r),i.initTreeBuilder(r),i.initContentAssist(),i.initGastRecorder(r),i.initPerformanceTracer(r),(0,Wi.has)(r,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. - Please use the flag on the relevant DSL method instead. - See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES - For further details.`);this.skipValidations=(0,Wi.has)(r,"skipValidations")?r.skipValidations:or.DEFAULT_PARSER_CONFIG.skipValidations}return t.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},t.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var r;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,Wi.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,Wi.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,fY.resolveGrammar)({rules:(0,Wi.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,Wi.isEmpty)(n)&&e.skipValidations===!1){var s=(0,fY.validateGrammar)({rules:(0,Wi.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,Wi.values)(e.tokensMap),errMsgProvider:gY.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,Wi.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,iwe.computeAllProdsFollows)((0,Wi.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,Wi.values)(e.gastProductionsCache))})),!t.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,Wi.isEmpty)(e.definitionErrors))throw r=(0,Wi.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: - `+r.join(` -------------------------------- -`))})},t.DEFER_DEFINITION_ERRORS_HANDLING=!1,t}();or.Parser=GI;(0,hwe.applyMixins)(GI,[nwe.Recoverable,swe.LooksAhead,owe.TreeBuilder,awe.LexerAdapter,lwe.RecognizerEngine,Awe.RecognizerApi,cwe.ErrorHandler,uwe.ContentAssist,gwe.GastRecorder,fwe.PerformanceTracer]);var Cwe=function(t){cY(e,t);function e(r,i){i===void 0&&(i=or.DEFAULT_PARSER_CONFIG);var n=this,s=(0,Wi.cloneObj)(i);return s.outputCst=!0,n=t.call(this,r,s)||this,n}return e}(GI);or.CstParser=Cwe;var mwe=function(t){cY(e,t);function e(r,i){i===void 0&&(i=or.DEFAULT_PARSER_CONFIG);var n=this,s=(0,Wi.cloneObj)(i);return s.outputCst=!1,n=t.call(this,r,s)||this,n}return e}(GI);or.EmbeddedActionsParser=mwe});var pY=E(jI=>{"use strict";Object.defineProperty(jI,"__esModule",{value:!0});jI.createSyntaxDiagramsCode=void 0;var hY=Uv();function Ewe(t,e){var r=e===void 0?{}:e,i=r.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+hY.VERSION+"/diagrams/":i,s=r.css,o=s===void 0?"https://unpkg.com/chevrotain@"+hY.VERSION+"/diagrams/diagrams.css":s,a=` - - - - - -`,l=` - -`,c=` - - - - -`,u=` -

-`,g=` - -`,f=` - -`;return a+l+c+u+g+f}jI.createSyntaxDiagramsCode=Ewe});var mY=E(He=>{"use strict";Object.defineProperty(He,"__esModule",{value:!0});He.Parser=He.createSyntaxDiagramsCode=He.clearCache=He.GAstVisitor=He.serializeProduction=He.serializeGrammar=He.Terminal=He.Rule=He.RepetitionWithSeparator=He.RepetitionMandatoryWithSeparator=He.RepetitionMandatory=He.Repetition=He.Option=He.NonTerminal=He.Alternative=He.Alternation=He.defaultLexerErrorProvider=He.NoViableAltException=He.NotAllInputParsedException=He.MismatchedTokenException=He.isRecognitionException=He.EarlyExitException=He.defaultParserErrorProvider=He.tokenName=He.tokenMatcher=He.tokenLabel=He.EOF=He.createTokenInstance=He.createToken=He.LexerDefinitionErrorType=He.Lexer=He.EMPTY_ALT=He.ParserDefinitionErrorType=He.EmbeddedActionsParser=He.CstParser=He.VERSION=void 0;var Iwe=Uv();Object.defineProperty(He,"VERSION",{enumerable:!0,get:function(){return Iwe.VERSION}});var YI=Tn();Object.defineProperty(He,"CstParser",{enumerable:!0,get:function(){return YI.CstParser}});Object.defineProperty(He,"EmbeddedActionsParser",{enumerable:!0,get:function(){return YI.EmbeddedActionsParser}});Object.defineProperty(He,"ParserDefinitionErrorType",{enumerable:!0,get:function(){return YI.ParserDefinitionErrorType}});Object.defineProperty(He,"EMPTY_ALT",{enumerable:!0,get:function(){return YI.EMPTY_ALT}});var dY=Gh();Object.defineProperty(He,"Lexer",{enumerable:!0,get:function(){return dY.Lexer}});Object.defineProperty(He,"LexerDefinitionErrorType",{enumerable:!0,get:function(){return dY.LexerDefinitionErrorType}});var ku=nA();Object.defineProperty(He,"createToken",{enumerable:!0,get:function(){return ku.createToken}});Object.defineProperty(He,"createTokenInstance",{enumerable:!0,get:function(){return ku.createTokenInstance}});Object.defineProperty(He,"EOF",{enumerable:!0,get:function(){return ku.EOF}});Object.defineProperty(He,"tokenLabel",{enumerable:!0,get:function(){return ku.tokenLabel}});Object.defineProperty(He,"tokenMatcher",{enumerable:!0,get:function(){return ku.tokenMatcher}});Object.defineProperty(He,"tokenName",{enumerable:!0,get:function(){return ku.tokenName}});var ywe=Wh();Object.defineProperty(He,"defaultParserErrorProvider",{enumerable:!0,get:function(){return ywe.defaultParserErrorProvider}});var rp=vu();Object.defineProperty(He,"EarlyExitException",{enumerable:!0,get:function(){return rp.EarlyExitException}});Object.defineProperty(He,"isRecognitionException",{enumerable:!0,get:function(){return rp.isRecognitionException}});Object.defineProperty(He,"MismatchedTokenException",{enumerable:!0,get:function(){return rp.MismatchedTokenException}});Object.defineProperty(He,"NotAllInputParsedException",{enumerable:!0,get:function(){return rp.NotAllInputParsedException}});Object.defineProperty(He,"NoViableAltException",{enumerable:!0,get:function(){return rp.NoViableAltException}});var wwe=_v();Object.defineProperty(He,"defaultLexerErrorProvider",{enumerable:!0,get:function(){return wwe.defaultLexerErrorProvider}});var ho=hn();Object.defineProperty(He,"Alternation",{enumerable:!0,get:function(){return ho.Alternation}});Object.defineProperty(He,"Alternative",{enumerable:!0,get:function(){return ho.Alternative}});Object.defineProperty(He,"NonTerminal",{enumerable:!0,get:function(){return ho.NonTerminal}});Object.defineProperty(He,"Option",{enumerable:!0,get:function(){return ho.Option}});Object.defineProperty(He,"Repetition",{enumerable:!0,get:function(){return ho.Repetition}});Object.defineProperty(He,"RepetitionMandatory",{enumerable:!0,get:function(){return ho.RepetitionMandatory}});Object.defineProperty(He,"RepetitionMandatoryWithSeparator",{enumerable:!0,get:function(){return ho.RepetitionMandatoryWithSeparator}});Object.defineProperty(He,"RepetitionWithSeparator",{enumerable:!0,get:function(){return ho.RepetitionWithSeparator}});Object.defineProperty(He,"Rule",{enumerable:!0,get:function(){return ho.Rule}});Object.defineProperty(He,"Terminal",{enumerable:!0,get:function(){return ho.Terminal}});var CY=hn();Object.defineProperty(He,"serializeGrammar",{enumerable:!0,get:function(){return CY.serializeGrammar}});Object.defineProperty(He,"serializeProduction",{enumerable:!0,get:function(){return CY.serializeProduction}});var Bwe=wu();Object.defineProperty(He,"GAstVisitor",{enumerable:!0,get:function(){return Bwe.GAstVisitor}});function Qwe(){console.warn(`The clearCache function was 'soft' removed from the Chevrotain API. - It performs no action other than printing this message. - Please avoid using it as it will be completely removed in the future`)}He.clearCache=Qwe;var bwe=pY();Object.defineProperty(He,"createSyntaxDiagramsCode",{enumerable:!0,get:function(){return bwe.createSyntaxDiagramsCode}});var vwe=function(){function t(){throw new Error(`The Parser class has been deprecated, use CstParser or EmbeddedActionsParser instead. -See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_7-0-0`)}return t}();He.Parser=vwe});var yY=E((Trt,EY)=>{var qI=mY(),ca=qI.createToken,IY=qI.tokenMatcher,yS=qI.Lexer,Swe=qI.EmbeddedActionsParser;EY.exports=t=>{let e=ca({name:"LogicalOperator",pattern:yS.NA}),r=ca({name:"Or",pattern:/\|/,categories:e}),i=ca({name:"Xor",pattern:/\^/,categories:e}),n=ca({name:"And",pattern:/&/,categories:e}),s=ca({name:"Not",pattern:/!/}),o=ca({name:"LParen",pattern:/\(/}),a=ca({name:"RParen",pattern:/\)/}),l=ca({name:"Query",pattern:t}),u=[ca({name:"WhiteSpace",pattern:/\s+/,group:yS.SKIPPED}),r,i,n,o,a,s,e,l],g=new yS(u);class f extends Swe{constructor(p){super(u);this.RULE("expression",()=>this.SUBRULE(this.logicalExpression)),this.RULE("logicalExpression",()=>{let m=this.SUBRULE(this.atomicExpression);return this.MANY(()=>{let I=m,B=this.CONSUME(e),b=this.SUBRULE2(this.atomicExpression);IY(B,r)?m=R=>I(R)||b(R):IY(B,i)?m=R=>!!(I(R)^b(R)):m=R=>I(R)&&b(R)}),m}),this.RULE("atomicExpression",()=>this.OR([{ALT:()=>this.SUBRULE(this.parenthesisExpression)},{ALT:()=>{let{image:d}=this.CONSUME(l);return m=>m(d)}},{ALT:()=>{this.CONSUME(s);let d=this.SUBRULE(this.atomicExpression);return m=>!d(m)}}])),this.RULE("parenthesisExpression",()=>{let d;return this.CONSUME(o),d=this.SUBRULE(this.expression),this.CONSUME(a),d}),this.performSelfAnalysis()}}return{TinylogicLexer:g,TinylogicParser:f}}});var wY=E(JI=>{var xwe=yY();JI.makeParser=(t=/[a-z]+/)=>{let{TinylogicLexer:e,TinylogicParser:r}=xwe(t),i=new r;return(n,s)=>{let o=e.tokenize(n);return i.input=o.tokens,i.expression()(s)}};JI.parse=JI.makeParser()});var QY=E((Ort,BY)=>{"use strict";BY.exports=(...t)=>[...new Set([].concat(...t))]});var wS=E((Krt,bY)=>{"use strict";var kwe=require("stream"),vY=kwe.PassThrough,Pwe=Array.prototype.slice;bY.exports=Dwe;function Dwe(){let t=[],e=!1,r=Pwe.call(arguments),i=r[r.length-1];i&&!Array.isArray(i)&&i.pipe==null?r.pop():i={};let n=i.end!==!1;i.objectMode==null&&(i.objectMode=!0),i.highWaterMark==null&&(i.highWaterMark=64*1024);let s=vY(i);function o(){for(let c=0,u=arguments.length;c0||(e=!1,a())}function f(h){function p(){h.removeListener("merge2UnpipeEnd",p),h.removeListener("end",p),g()}if(h._readableState.endEmitted)return g();h.on("merge2UnpipeEnd",p),h.on("end",p),h.pipe(s,{end:!1}),h.resume()}for(let h=0;h{"use strict";Object.defineProperty(WI,"__esModule",{value:!0});function Rwe(t){return t.reduce((e,r)=>[].concat(e,r),[])}WI.flatten=Rwe;function Fwe(t,e){let r=[[]],i=0;for(let n of t)e(n)?(i++,r[i]=[]):r[i].push(n);return r}WI.splitWhen=Fwe});var kY=E(BS=>{"use strict";Object.defineProperty(BS,"__esModule",{value:!0});function Nwe(t){return t.code==="ENOENT"}BS.isEnoentCodeError=Nwe});var DY=E(QS=>{"use strict";Object.defineProperty(QS,"__esModule",{value:!0});var PY=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function Lwe(t,e){return new PY(t,e)}QS.createDirentFromStats=Lwe});var RY=E(Pu=>{"use strict";Object.defineProperty(Pu,"__esModule",{value:!0});var Twe=require("path"),Mwe=2,Owe=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function Kwe(t){return t.replace(/\\/g,"/")}Pu.unixify=Kwe;function Uwe(t,e){return Twe.resolve(t,e)}Pu.makeAbsolute=Uwe;function Hwe(t){return t.replace(Owe,"\\$2")}Pu.escape=Hwe;function Gwe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(Mwe)}return t}Pu.removeLeadingDotSegment=Gwe});var NY=E((Yrt,FY)=>{FY.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var TY=E((qrt,LY)=>{var jwe=NY(),Ywe={"{":"}","(":")","[":"]"},qwe=/\\(.)|(^!|\*|[\].+)]\?|\[[^\\\]]+\]|\{[^\\}]+\}|\(\?[:!=][^\\)]+\)|\([^|]+\|[^\\)]+\))/,Jwe=/\\(.)|(^!|[*?{}()[\]]|\(\?)/;LY.exports=function(e,r){if(typeof e!="string"||e==="")return!1;if(jwe(e))return!0;var i=qwe,n;for(r&&r.strict===!1&&(i=Jwe);n=i.exec(e);){if(n[2])return!0;var s=n.index+n[0].length,o=n[1],a=o?Ywe[o]:null;if(o&&a){var l=e.indexOf(a,s);l!==-1&&(s=l+1)}e=e.slice(s)}return!1}});var OY=E((Jrt,MY)=>{"use strict";var Wwe=TY(),zwe=require("path").posix.dirname,Vwe=require("os").platform()==="win32",bS="/",_we=/\\/g,Xwe=/[\{\[].*[\}\]]$/,Zwe=/(^|[^\\])([\{\[]|\([^\)]+$)/,$we=/\\([\!\*\?\|\[\]\(\)\{\}])/g;MY.exports=function(e,r){var i=Object.assign({flipBackslashes:!0},r);i.flipBackslashes&&Vwe&&e.indexOf(bS)<0&&(e=e.replace(_we,bS)),Xwe.test(e)&&(e+=bS),e+="a";do e=zwe(e);while(Wwe(e)||Zwe.test(e));return e.replace($we,"$1")}});var WY=E(Hr=>{"use strict";Object.defineProperty(Hr,"__esModule",{value:!0});var eBe=require("path"),tBe=OY(),KY=Nn(),rBe=iv(),UY="**",iBe="\\",nBe=/[*?]|^!/,sBe=/\[.*]/,oBe=/(?:^|[^!*+?@])\(.*\|.*\)/,aBe=/[!*+?@]\(.*\)/,ABe=/{.*(?:,|\.\.).*}/;function GY(t,e={}){return!HY(t,e)}Hr.isStaticPattern=GY;function HY(t,e={}){return!!(e.caseSensitiveMatch===!1||t.includes(iBe)||nBe.test(t)||sBe.test(t)||oBe.test(t)||e.extglob!==!1&&aBe.test(t)||e.braceExpansion!==!1&&ABe.test(t))}Hr.isDynamicPattern=HY;function lBe(t){return zI(t)?t.slice(1):t}Hr.convertToPositivePattern=lBe;function cBe(t){return"!"+t}Hr.convertToNegativePattern=cBe;function zI(t){return t.startsWith("!")&&t[1]!=="("}Hr.isNegativePattern=zI;function jY(t){return!zI(t)}Hr.isPositivePattern=jY;function uBe(t){return t.filter(zI)}Hr.getNegativePatterns=uBe;function gBe(t){return t.filter(jY)}Hr.getPositivePatterns=gBe;function fBe(t){return tBe(t,{flipBackslashes:!1})}Hr.getBaseDirectory=fBe;function hBe(t){return t.includes(UY)}Hr.hasGlobStar=hBe;function YY(t){return t.endsWith("/"+UY)}Hr.endsWithSlashGlobStar=YY;function pBe(t){let e=eBe.basename(t);return YY(t)||GY(e)}Hr.isAffectDepthOfReadingPattern=pBe;function dBe(t){return t.reduce((e,r)=>e.concat(qY(r)),[])}Hr.expandPatternsWithBraceExpansion=dBe;function qY(t){return KY.braces(t,{expand:!0,nodupes:!0})}Hr.expandBraceExpansion=qY;function CBe(t,e){let r=rBe.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.parts.length===0?[t]:r.parts}Hr.getPatternParts=CBe;function JY(t,e){return KY.makeRe(t,e)}Hr.makeRe=JY;function mBe(t,e){return t.map(r=>JY(r,e))}Hr.convertPatternsToRe=mBe;function EBe(t,e){return e.some(r=>r.test(t))}Hr.matchAny=EBe});var VY=E(vS=>{"use strict";Object.defineProperty(vS,"__esModule",{value:!0});var IBe=wS();function yBe(t){let e=IBe(t);return t.forEach(r=>{r.once("error",i=>e.emit("error",i))}),e.once("close",()=>zY(t)),e.once("end",()=>zY(t)),e}vS.merge=yBe;function zY(t){t.forEach(e=>e.emit("close"))}});var _Y=E(VI=>{"use strict";Object.defineProperty(VI,"__esModule",{value:!0});function wBe(t){return typeof t=="string"}VI.isString=wBe;function BBe(t){return t===""}VI.isEmpty=BBe});var ga=E(ua=>{"use strict";Object.defineProperty(ua,"__esModule",{value:!0});var QBe=xY();ua.array=QBe;var bBe=kY();ua.errno=bBe;var vBe=DY();ua.fs=vBe;var SBe=RY();ua.path=SBe;var xBe=WY();ua.pattern=xBe;var kBe=VY();ua.stream=kBe;var PBe=_Y();ua.string=PBe});var tq=E(fa=>{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});var Ll=ga();function DBe(t,e){let r=XY(t),i=ZY(t,e.ignore),n=r.filter(l=>Ll.pattern.isStaticPattern(l,e)),s=r.filter(l=>Ll.pattern.isDynamicPattern(l,e)),o=SS(n,i,!1),a=SS(s,i,!0);return o.concat(a)}fa.generate=DBe;function SS(t,e,r){let i=$Y(t);return"."in i?[xS(".",t,e,r)]:eq(i,e,r)}fa.convertPatternsToTasks=SS;function XY(t){return Ll.pattern.getPositivePatterns(t)}fa.getPositivePatterns=XY;function ZY(t,e){return Ll.pattern.getNegativePatterns(t).concat(e).map(Ll.pattern.convertToPositivePattern)}fa.getNegativePatternsAsPositive=ZY;function $Y(t){let e={};return t.reduce((r,i)=>{let n=Ll.pattern.getBaseDirectory(i);return n in r?r[n].push(i):r[n]=[i],r},e)}fa.groupPatternsByBaseDirectory=$Y;function eq(t,e,r){return Object.keys(t).map(i=>xS(i,t[i],e,r))}fa.convertPatternGroupsToTasks=eq;function xS(t,e,r,i){return{dynamic:i,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(Ll.pattern.convertToNegativePattern))}}fa.convertPatternGroupToTask=xS});var iq=E(_I=>{"use strict";Object.defineProperty(_I,"__esModule",{value:!0});_I.read=void 0;function RBe(t,e,r){e.fs.lstat(t,(i,n)=>{if(i!==null){rq(r,i);return}if(!n.isSymbolicLink()||!e.followSymbolicLink){kS(r,n);return}e.fs.stat(t,(s,o)=>{if(s!==null){if(e.throwErrorOnBrokenSymbolicLink){rq(r,s);return}kS(r,n);return}e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),kS(r,o)})})}_I.read=RBe;function rq(t,e){t(e)}function kS(t,e){t(null,e)}});var nq=E(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.read=void 0;function FBe(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let i=e.fs.statSync(t);return e.markSymbolicLink&&(i.isSymbolicLink=()=>!0),i}catch(i){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw i}}XI.read=FBe});var sq=E(AA=>{"use strict";Object.defineProperty(AA,"__esModule",{value:!0});AA.createFileSystemAdapter=AA.FILE_SYSTEM_ADAPTER=void 0;var ZI=require("fs");AA.FILE_SYSTEM_ADAPTER={lstat:ZI.lstat,stat:ZI.stat,lstatSync:ZI.lstatSync,statSync:ZI.statSync};function NBe(t){return t===void 0?AA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},AA.FILE_SYSTEM_ADAPTER),t)}AA.createFileSystemAdapter=NBe});var aq=E(PS=>{"use strict";Object.defineProperty(PS,"__esModule",{value:!0});var LBe=sq(),oq=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=LBe.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e!=null?e:r}};PS.default=oq});var Tl=E(lA=>{"use strict";Object.defineProperty(lA,"__esModule",{value:!0});lA.statSync=lA.stat=lA.Settings=void 0;var Aq=iq(),TBe=nq(),DS=aq();lA.Settings=DS.default;function MBe(t,e,r){if(typeof e=="function"){Aq.read(t,RS(),e);return}Aq.read(t,RS(e),r)}lA.stat=MBe;function OBe(t,e){let r=RS(e);return TBe.read(t,r)}lA.statSync=OBe;function RS(t={}){return t instanceof DS.default?t:new DS.default(t)}});var cq=E((iit,lq)=>{lq.exports=KBe;function KBe(t,e){var r,i,n,s=!0;Array.isArray(t)?(r=[],i=t.length):(n=Object.keys(t),r={},i=n.length);function o(l){function c(){e&&e(l,r),e=null}s?process.nextTick(c):c()}function a(l,c,u){r[l]=u,(--i==0||c)&&o(c)}i?n?n.forEach(function(l){t[l](function(c,u){a(l,c,u)})}):t.forEach(function(l,c){l(function(u,g){a(c,u,g)})}):o(null),s=!1}});var FS=E($I=>{"use strict";Object.defineProperty($I,"__esModule",{value:!0});$I.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var ey=process.versions.node.split(".");if(ey[0]===void 0||ey[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var uq=Number.parseInt(ey[0],10),UBe=Number.parseInt(ey[1],10),gq=10,HBe=10,GBe=uq>gq,jBe=uq===gq&&UBe>=HBe;$I.IS_SUPPORT_READDIR_WITH_FILE_TYPES=GBe||jBe});var hq=E(ty=>{"use strict";Object.defineProperty(ty,"__esModule",{value:!0});ty.createDirentFromStats=void 0;var fq=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function YBe(t,e){return new fq(t,e)}ty.createDirentFromStats=YBe});var NS=E(ry=>{"use strict";Object.defineProperty(ry,"__esModule",{value:!0});ry.fs=void 0;var qBe=hq();ry.fs=qBe});var LS=E(iy=>{"use strict";Object.defineProperty(iy,"__esModule",{value:!0});iy.joinPathSegments=void 0;function JBe(t,e,r){return t.endsWith(r)?t+e:t+r+e}iy.joinPathSegments=JBe});var Iq=E(cA=>{"use strict";Object.defineProperty(cA,"__esModule",{value:!0});cA.readdir=cA.readdirWithFileTypes=cA.read=void 0;var WBe=Tl(),pq=cq(),zBe=FS(),dq=NS(),Cq=LS();function VBe(t,e,r){if(!e.stats&&zBe.IS_SUPPORT_READDIR_WITH_FILE_TYPES){mq(t,e,r);return}Eq(t,e,r)}cA.read=VBe;function mq(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(i,n)=>{if(i!==null){ny(r,i);return}let s=n.map(a=>({dirent:a,name:a.name,path:Cq.joinPathSegments(t,a.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){TS(r,s);return}let o=s.map(a=>_Be(a,e));pq(o,(a,l)=>{if(a!==null){ny(r,a);return}TS(r,l)})})}cA.readdirWithFileTypes=mq;function _Be(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(i,n)=>{if(i!==null){if(e.throwErrorOnBrokenSymbolicLink){r(i);return}r(null,t);return}t.dirent=dq.fs.createDirentFromStats(t.name,n),r(null,t)})}}function Eq(t,e,r){e.fs.readdir(t,(i,n)=>{if(i!==null){ny(r,i);return}let s=n.map(o=>{let a=Cq.joinPathSegments(t,o,e.pathSegmentSeparator);return l=>{WBe.stat(a,e.fsStatSettings,(c,u)=>{if(c!==null){l(c);return}let g={name:o,path:a,dirent:dq.fs.createDirentFromStats(o,u)};e.stats&&(g.stats=u),l(null,g)})}});pq(s,(o,a)=>{if(o!==null){ny(r,o);return}TS(r,a)})})}cA.readdir=Eq;function ny(t,e){t(e)}function TS(t,e){t(null,e)}});var bq=E(uA=>{"use strict";Object.defineProperty(uA,"__esModule",{value:!0});uA.readdir=uA.readdirWithFileTypes=uA.read=void 0;var XBe=Tl(),ZBe=FS(),yq=NS(),wq=LS();function $Be(t,e){return!e.stats&&ZBe.IS_SUPPORT_READDIR_WITH_FILE_TYPES?Bq(t,e):Qq(t,e)}uA.read=$Be;function Bq(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(i=>{let n={dirent:i,name:i.name,path:wq.joinPathSegments(t,i.name,e.pathSegmentSeparator)};if(n.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let s=e.fs.statSync(n.path);n.dirent=yq.fs.createDirentFromStats(n.name,s)}catch(s){if(e.throwErrorOnBrokenSymbolicLink)throw s}return n})}uA.readdirWithFileTypes=Bq;function Qq(t,e){return e.fs.readdirSync(t).map(i=>{let n=wq.joinPathSegments(t,i,e.pathSegmentSeparator),s=XBe.statSync(n,e.fsStatSettings),o={name:i,path:n,dirent:yq.fs.createDirentFromStats(i,s)};return e.stats&&(o.stats=s),o})}uA.readdir=Qq});var vq=E(gA=>{"use strict";Object.defineProperty(gA,"__esModule",{value:!0});gA.createFileSystemAdapter=gA.FILE_SYSTEM_ADAPTER=void 0;var Du=require("fs");gA.FILE_SYSTEM_ADAPTER={lstat:Du.lstat,stat:Du.stat,lstatSync:Du.lstatSync,statSync:Du.statSync,readdir:Du.readdir,readdirSync:Du.readdirSync};function e0e(t){return t===void 0?gA.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},gA.FILE_SYSTEM_ADAPTER),t)}gA.createFileSystemAdapter=e0e});var xq=E(MS=>{"use strict";Object.defineProperty(MS,"__esModule",{value:!0});var t0e=require("path"),r0e=Tl(),i0e=vq(),Sq=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=i0e.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,t0e.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new r0e.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e!=null?e:r}};MS.default=Sq});var sy=E(fA=>{"use strict";Object.defineProperty(fA,"__esModule",{value:!0});fA.Settings=fA.scandirSync=fA.scandir=void 0;var kq=Iq(),n0e=bq(),OS=xq();fA.Settings=OS.default;function s0e(t,e,r){if(typeof e=="function"){kq.read(t,KS(),e);return}kq.read(t,KS(e),r)}fA.scandir=s0e;function o0e(t,e){let r=KS(e);return n0e.read(t,r)}fA.scandirSync=o0e;function KS(t={}){return t instanceof OS.default?t:new OS.default(t)}});var Dq=E((fit,Pq)=>{"use strict";function a0e(t){var e=new t,r=e;function i(){var s=e;return s.next?e=s.next:(e=new t,r=e),s.next=null,s}function n(s){r.next=s,r=s}return{get:i,release:n}}Pq.exports=a0e});var Fq=E((hit,US)=>{"use strict";var A0e=Dq();function Rq(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),r<1)throw new Error("fastqueue concurrency must be greater than 1");var i=A0e(l0e),n=null,s=null,o=0,a=null,l={push:d,drain:po,saturated:po,pause:u,paused:!1,concurrency:r,running:c,resume:h,idle:p,length:g,getQueue:f,unshift:m,empty:po,kill:B,killAndDrain:b,error:R};return l;function c(){return o}function u(){l.paused=!0}function g(){for(var H=n,L=0;H;)H=H.next,L++;return L}function f(){for(var H=n,L=[];H;)L.push(H.value),H=H.next;return L}function h(){if(!!l.paused){l.paused=!1;for(var H=0;H{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.joinPathSegments=Co.replacePathSegmentSeparator=Co.isAppliedFilter=Co.isFatalError=void 0;function u0e(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}Co.isFatalError=u0e;function g0e(t,e){return t===null||t(e)}Co.isAppliedFilter=g0e;function f0e(t,e){return t.split(/[/\\]/).join(e)}Co.replacePathSegmentSeparator=f0e;function h0e(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}Co.joinPathSegments=h0e});var GS=E(HS=>{"use strict";Object.defineProperty(HS,"__esModule",{value:!0});var p0e=oy(),Nq=class{constructor(e,r){this._root=e,this._settings=r,this._root=p0e.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};HS.default=Nq});var YS=E(jS=>{"use strict";Object.defineProperty(jS,"__esModule",{value:!0});var d0e=require("events"),C0e=sy(),m0e=Fq(),ay=oy(),E0e=GS(),Lq=class extends E0e.default{constructor(e,r){super(e,r);this._settings=r,this._scandir=C0e.scandir,this._emitter=new d0e.EventEmitter,this._queue=m0e(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let i={directory:e,base:r};this._queue.push(i,n=>{n!==null&&this._handleError(n)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(i,n)=>{if(i!==null){r(i,void 0);return}for(let s of n)this._handleEntry(s,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!ay.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let i=e.path;r!==void 0&&(e.path=ay.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),ay.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&ay.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};jS.default=Lq});var Mq=E(qS=>{"use strict";Object.defineProperty(qS,"__esModule",{value:!0});var I0e=YS(),Tq=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new I0e.default(this._root,this._settings),this._storage=new Set}read(e){this._reader.onError(r=>{y0e(e,r)}),this._reader.onEntry(r=>{this._storage.add(r)}),this._reader.onEnd(()=>{w0e(e,[...this._storage])}),this._reader.read()}};qS.default=Tq;function y0e(t,e){t(e)}function w0e(t,e){t(null,e)}});var Kq=E(JS=>{"use strict";Object.defineProperty(JS,"__esModule",{value:!0});var B0e=require("stream"),Q0e=YS(),Oq=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Q0e.default(this._root,this._settings),this._stream=new B0e.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};JS.default=Oq});var Hq=E(WS=>{"use strict";Object.defineProperty(WS,"__esModule",{value:!0});var b0e=sy(),Ay=oy(),v0e=GS(),Uq=class extends v0e.default{constructor(){super(...arguments);this._scandir=b0e.scandirSync,this._storage=new Set,this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),[...this._storage]}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let i=this._scandir(e,this._settings.fsScandirSettings);for(let n of i)this._handleEntry(n,r)}catch(i){this._handleError(i)}}_handleError(e){if(!!Ay.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let i=e.path;r!==void 0&&(e.path=Ay.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),Ay.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&Ay.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(i,e.path)}_pushToStorage(e){this._storage.add(e)}};WS.default=Uq});var jq=E(zS=>{"use strict";Object.defineProperty(zS,"__esModule",{value:!0});var S0e=Hq(),Gq=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new S0e.default(this._root,this._settings)}read(){return this._reader.read()}};zS.default=Gq});var qq=E(VS=>{"use strict";Object.defineProperty(VS,"__esModule",{value:!0});var x0e=require("path"),k0e=sy(),Yq=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,x0e.sep),this.fsScandirSettings=new k0e.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e!=null?e:r}};VS.default=Yq});var XS=E(mo=>{"use strict";Object.defineProperty(mo,"__esModule",{value:!0});mo.Settings=mo.walkStream=mo.walkSync=mo.walk=void 0;var Jq=Mq(),P0e=Kq(),D0e=jq(),_S=qq();mo.Settings=_S.default;function R0e(t,e,r){if(typeof e=="function"){new Jq.default(t,ly()).read(e);return}new Jq.default(t,ly(e)).read(r)}mo.walk=R0e;function F0e(t,e){let r=ly(e);return new D0e.default(t,r).read()}mo.walkSync=F0e;function N0e(t,e){let r=ly(e);return new P0e.default(t,r).read()}mo.walkStream=N0e;function ly(t={}){return t instanceof _S.default?t:new _S.default(t)}});var $S=E(ZS=>{"use strict";Object.defineProperty(ZS,"__esModule",{value:!0});var L0e=require("path"),T0e=Tl(),Wq=ga(),zq=class{constructor(e){this._settings=e,this._fsStatSettings=new T0e.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return L0e.resolve(this._settings.cwd,e)}_makeEntry(e,r){let i={name:r,path:r,dirent:Wq.fs.createDirentFromStats(r,e)};return this._settings.stats&&(i.stats=e),i}_isFatalError(e){return!Wq.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};ZS.default=zq});var tx=E(ex=>{"use strict";Object.defineProperty(ex,"__esModule",{value:!0});var M0e=require("stream"),O0e=Tl(),K0e=XS(),U0e=$S(),Vq=class extends U0e.default{constructor(){super(...arguments);this._walkStream=K0e.walkStream,this._stat=O0e.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let i=e.map(this._getFullEntryPath,this),n=new M0e.PassThrough({objectMode:!0});n._write=(s,o,a)=>this._getEntry(i[s],e[s],r).then(l=>{l!==null&&r.entryFilter(l)&&n.push(l),s===i.length-1&&n.end(),a()}).catch(a);for(let s=0;sthis._makeEntry(n,r)).catch(n=>{if(i.errorFilter(n))return null;throw n})}_getStat(e){return new Promise((r,i)=>{this._stat(e,this._fsStatSettings,(n,s)=>n===null?r(s):i(n))})}};ex.default=Vq});var Xq=E(rx=>{"use strict";Object.defineProperty(rx,"__esModule",{value:!0});var Ru=ga(),_q=class{constructor(e,r,i){this._patterns=e,this._settings=r,this._micromatchOptions=i,this._storage=[],this._fillStorage()}_fillStorage(){let e=Ru.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let r of e){let i=this._getPatternSegments(r),n=this._splitSegmentsIntoSections(i);this._storage.push({complete:n.length<=1,pattern:r,segments:i,sections:n})}}_getPatternSegments(e){return Ru.pattern.getPatternParts(e,this._micromatchOptions).map(i=>Ru.pattern.isDynamicPattern(i,this._settings)?{dynamic:!0,pattern:i,patternRe:Ru.pattern.makeRe(i,this._micromatchOptions)}:{dynamic:!1,pattern:i})}_splitSegmentsIntoSections(e){return Ru.array.splitWhen(e,r=>r.dynamic&&Ru.pattern.hasGlobStar(r.pattern))}};rx.default=_q});var $q=E(ix=>{"use strict";Object.defineProperty(ix,"__esModule",{value:!0});var H0e=Xq(),Zq=class extends H0e.default{match(e){let r=e.split("/"),i=r.length,n=this._storage.filter(s=>!s.complete||s.segments.length>i);for(let s of n){let o=s.sections[0];if(!s.complete&&i>o.length||r.every((l,c)=>{let u=s.segments[c];return!!(u.dynamic&&u.patternRe.test(l)||!u.dynamic&&u.pattern===l)}))return!0}return!1}};ix.default=Zq});var tJ=E(nx=>{"use strict";Object.defineProperty(nx,"__esModule",{value:!0});var cy=ga(),G0e=$q(),eJ=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,i){let n=this._getMatcher(r),s=this._getNegativePatternsRe(i);return o=>this._filter(e,o,n,s)}_getMatcher(e){return new G0e.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(cy.pattern.isAffectDepthOfReadingPattern);return cy.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,i,n){let s=this._getEntryLevel(e,r.path);if(this._isSkippedByDeep(s)||this._isSkippedSymbolicLink(r))return!1;let o=cy.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(o,i)?!1:this._isSkippedByNegativePatterns(o,n)}_isSkippedByDeep(e){return e>=this._settings.deep}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_getEntryLevel(e,r){let i=e.split("/").length;return r.split("/").length-(e===""?0:i)}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!cy.pattern.matchAny(e,r)}};nx.default=eJ});var iJ=E(sx=>{"use strict";Object.defineProperty(sx,"__esModule",{value:!0});var ip=ga(),rJ=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let i=ip.pattern.convertPatternsToRe(e,this._micromatchOptions),n=ip.pattern.convertPatternsToRe(r,this._micromatchOptions);return s=>this._filter(s,i,n)}_filter(e,r,i){if(this._settings.unique){if(this._isDuplicateEntry(e))return!1;this._createIndexRecord(e)}if(this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e,i))return!1;let n=this._settings.baseNameMatch?e.name:e.path;return this._isMatchToPatterns(n,r)&&!this._isMatchToPatterns(e.path,i)}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let i=ip.path.makeAbsolute(this._settings.cwd,e.path);return this._isMatchToPatterns(i,r)}_isMatchToPatterns(e,r){let i=ip.path.removeLeadingDotSegment(e);return ip.pattern.matchAny(i,r)}};sx.default=rJ});var sJ=E(ox=>{"use strict";Object.defineProperty(ox,"__esModule",{value:!0});var j0e=ga(),nJ=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return j0e.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};ox.default=nJ});var AJ=E(ax=>{"use strict";Object.defineProperty(ax,"__esModule",{value:!0});var oJ=ga(),aJ=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=oJ.path.makeAbsolute(this._settings.cwd,r),r=oJ.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};ax.default=aJ});var uy=E(Ax=>{"use strict";Object.defineProperty(Ax,"__esModule",{value:!0});var Y0e=require("path"),q0e=tJ(),J0e=iJ(),W0e=sJ(),z0e=AJ(),lJ=class{constructor(e){this._settings=e,this.errorFilter=new W0e.default(this._settings),this.entryFilter=new J0e.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new q0e.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new z0e.default(this._settings)}_getRootDirectory(e){return Y0e.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};Ax.default=lJ});var uJ=E(lx=>{"use strict";Object.defineProperty(lx,"__esModule",{value:!0});var V0e=tx(),_0e=uy(),cJ=class extends _0e.default{constructor(){super(...arguments);this._reader=new V0e.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e),n=[];return new Promise((s,o)=>{let a=this.api(r,e,i);a.once("error",o),a.on("data",l=>n.push(i.transform(l))),a.once("end",()=>s(n))})}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};lx.default=cJ});var fJ=E(cx=>{"use strict";Object.defineProperty(cx,"__esModule",{value:!0});var X0e=require("stream"),Z0e=tx(),$0e=uy(),gJ=class extends $0e.default{constructor(){super(...arguments);this._reader=new Z0e.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e),n=this.api(r,e,i),s=new X0e.Readable({objectMode:!0,read:()=>{}});return n.once("error",o=>s.emit("error",o)).on("data",o=>s.emit("data",i.transform(o))).once("end",()=>s.emit("end")),s.once("close",()=>n.destroy()),s}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};cx.default=gJ});var pJ=E(ux=>{"use strict";Object.defineProperty(ux,"__esModule",{value:!0});var eQe=Tl(),tQe=XS(),rQe=$S(),hJ=class extends rQe.default{constructor(){super(...arguments);this._walkSync=tQe.walkSync,this._statSync=eQe.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let i=[];for(let n of e){let s=this._getFullEntryPath(n),o=this._getEntry(s,n,r);o===null||!r.entryFilter(o)||i.push(o)}return i}_getEntry(e,r,i){try{let n=this._getStat(e);return this._makeEntry(n,r)}catch(n){if(i.errorFilter(n))return null;throw n}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};ux.default=hJ});var CJ=E(gx=>{"use strict";Object.defineProperty(gx,"__esModule",{value:!0});var iQe=pJ(),nQe=uy(),dJ=class extends nQe.default{constructor(){super(...arguments);this._reader=new iQe.default(this._settings)}read(e){let r=this._getRootDirectory(e),i=this._getReaderOptions(e);return this.api(r,e,i).map(i.transform)}api(e,r,i){return r.dynamic?this._reader.dynamic(e,i):this._reader.static(r.patterns,i)}};gx.default=dJ});var EJ=E(np=>{"use strict";Object.defineProperty(np,"__esModule",{value:!0});var Fu=require("fs"),sQe=require("os"),oQe=sQe.cpus().length;np.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:Fu.lstat,lstatSync:Fu.lstatSync,stat:Fu.stat,statSync:Fu.statSync,readdir:Fu.readdir,readdirSync:Fu.readdirSync};var mJ=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,oQe),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,Infinity),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},np.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};np.default=mJ});var gy=E((Oit,IJ)=>{"use strict";var yJ=tq(),aQe=uJ(),AQe=fJ(),lQe=CJ(),fx=EJ(),Ml=ga();async function px(t,e){Nu(t);let r=hx(t,aQe.default,e),i=await Promise.all(r);return Ml.array.flatten(i)}(function(t){function e(o,a){Nu(o);let l=hx(o,lQe.default,a);return Ml.array.flatten(l)}t.sync=e;function r(o,a){Nu(o);let l=hx(o,AQe.default,a);return Ml.stream.merge(l)}t.stream=r;function i(o,a){Nu(o);let l=[].concat(o),c=new fx.default(a);return yJ.generate(l,c)}t.generateTasks=i;function n(o,a){Nu(o);let l=new fx.default(a);return Ml.pattern.isDynamicPattern(o,l)}t.isDynamicPattern=n;function s(o){return Nu(o),Ml.path.escape(o)}t.escapePath=s})(px||(px={}));function hx(t,e,r){let i=[].concat(t),n=new fx.default(r),s=yJ.generate(i,n),o=new e(n);return s.map(o.read,o)}function Nu(t){if(![].concat(t).every(i=>Ml.string.isString(i)&&!Ml.string.isEmpty(i)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}IJ.exports=px});var BJ=E(Ol=>{"use strict";var{promisify:cQe}=require("util"),wJ=require("fs");async function dx(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return(await cQe(wJ[t])(r))[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}function Cx(t,e,r){if(typeof r!="string")throw new TypeError(`Expected a string, got ${typeof r}`);try{return wJ[t](r)[e]()}catch(i){if(i.code==="ENOENT")return!1;throw i}}Ol.isFile=dx.bind(null,"stat","isFile");Ol.isDirectory=dx.bind(null,"stat","isDirectory");Ol.isSymlink=dx.bind(null,"lstat","isSymbolicLink");Ol.isFileSync=Cx.bind(null,"statSync","isFile");Ol.isDirectorySync=Cx.bind(null,"statSync","isDirectory");Ol.isSymlinkSync=Cx.bind(null,"lstatSync","isSymbolicLink")});var xJ=E((Uit,mx)=>{"use strict";var Kl=require("path"),QJ=BJ(),bJ=t=>t.length>1?`{${t.join(",")}}`:t[0],vJ=(t,e)=>{let r=t[0]==="!"?t.slice(1):t;return Kl.isAbsolute(r)?r:Kl.join(e,r)},uQe=(t,e)=>Kl.extname(t)?`**/${t}`:`**/${t}.${bJ(e)}`,SJ=(t,e)=>{if(e.files&&!Array.isArray(e.files))throw new TypeError(`Expected \`files\` to be of type \`Array\` but received type \`${typeof e.files}\``);if(e.extensions&&!Array.isArray(e.extensions))throw new TypeError(`Expected \`extensions\` to be of type \`Array\` but received type \`${typeof e.extensions}\``);return e.files&&e.extensions?e.files.map(r=>Kl.posix.join(t,uQe(r,e.extensions))):e.files?e.files.map(r=>Kl.posix.join(t,`**/${r}`)):e.extensions?[Kl.posix.join(t,`**/*.${bJ(e.extensions)}`)]:[Kl.posix.join(t,"**")]};mx.exports=async(t,e)=>{if(e=P({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=await Promise.all([].concat(t).map(async i=>await QJ.isDirectory(vJ(i,e.cwd))?SJ(i,e):i));return[].concat.apply([],r)};mx.exports.sync=(t,e)=>{if(e=P({cwd:process.cwd()},e),typeof e.cwd!="string")throw new TypeError(`Expected \`cwd\` to be of type \`string\` but received type \`${typeof e.cwd}\``);let r=[].concat(t).map(i=>QJ.isDirectorySync(vJ(i,e.cwd))?SJ(i,e):i);return[].concat.apply([],r)}});var TJ=E((Hit,kJ)=>{function PJ(t){return Array.isArray(t)?t:[t]}var gQe=/^\s+$/,fQe=/^\\!/,hQe=/^\\#/,pQe=/\r?\n/g,dQe=/^\.*\/|^\.+$/,Ex="/",DJ=typeof Symbol!="undefined"?Symbol.for("node-ignore"):"node-ignore",CQe=(t,e,r)=>Object.defineProperty(t,e,{value:r}),mQe=/([0-z])-([0-z])/g,EQe=t=>t.replace(mQe,(e,r,i)=>r.charCodeAt(0)<=i.charCodeAt(0)?e:""),IQe=[[/\\?\s+$/,t=>t.indexOf("\\")===0?" ":""],[/\\\s/g,()=>" "],[/[\\^$.|*+(){]/g,t=>`\\${t}`],[/\[([^\]/]*)($|\])/g,(t,e,r)=>r==="]"?`[${EQe(e)}]`:`\\${t}`],[/(?!\\)\?/g,()=>"[^/]"],[/^\//,()=>"^"],[/\//g,()=>"\\/"],[/^\^*\\\*\\\*\\\//,()=>"^(?:.*\\/)?"],[/(?:[^*])$/,t=>/\/$/.test(t)?`${t}$`:`${t}(?=$|\\/$)`],[/^(?=[^^])/,function(){return/\/(?!$)/.test(this)?"^":"(?:^|\\/)"}],[/\\\/\\\*\\\*(?=\\\/|$)/g,(t,e,r)=>e+6`${e}[^\\/]*`],[/(\^|\\\/)?\\\*$/,(t,e)=>`${e?`${e}[^/]+`:"[^/]*"}(?=$|\\/$)`],[/\\\\\\/g,()=>"\\"]],RJ=Object.create(null),yQe=(t,e,r)=>{let i=RJ[t];if(i)return i;let n=IQe.reduce((s,o)=>s.replace(o[0],o[1].bind(t)),t);return RJ[t]=r?new RegExp(n,"i"):new RegExp(n)},Ix=t=>typeof t=="string",wQe=t=>t&&Ix(t)&&!gQe.test(t)&&t.indexOf("#")!==0,BQe=t=>t.split(pQe),FJ=class{constructor(e,r,i,n){this.origin=e,this.pattern=r,this.negative=i,this.regex=n}},QQe=(t,e)=>{let r=t,i=!1;t.indexOf("!")===0&&(i=!0,t=t.substr(1)),t=t.replace(fQe,"!").replace(hQe,"#");let n=yQe(t,i,e);return new FJ(r,t,i,n)},bQe=(t,e)=>{throw new e(t)},ha=(t,e,r)=>Ix(t)?t?ha.isNotRelative(t)?r(`path should be a \`path.relative()\`d string, but got "${e}"`,RangeError):!0:r("path must not be empty",TypeError):r(`path must be a string, but got \`${e}\``,TypeError),NJ=t=>dQe.test(t);ha.isNotRelative=NJ;ha.convert=t=>t;var LJ=class{constructor({ignorecase:e=!0}={}){this._rules=[],this._ignorecase=e,CQe(this,DJ,!0),this._initCache()}_initCache(){this._ignoreCache=Object.create(null),this._testCache=Object.create(null)}_addPattern(e){if(e&&e[DJ]){this._rules=this._rules.concat(e._rules),this._added=!0;return}if(wQe(e)){let r=QQe(e,this._ignorecase);this._added=!0,this._rules.push(r)}}add(e){return this._added=!1,PJ(Ix(e)?BQe(e):e).forEach(this._addPattern,this),this._added&&this._initCache(),this}addPattern(e){return this.add(e)}_testOne(e,r){let i=!1,n=!1;return this._rules.forEach(s=>{let{negative:o}=s;if(n===o&&i!==n||o&&!i&&!n&&!r)return;s.regex.test(e)&&(i=!o,n=o)}),{ignored:i,unignored:n}}_test(e,r,i,n){let s=e&&ha.convert(e);return ha(s,e,bQe),this._t(s,r,i,n)}_t(e,r,i,n){if(e in r)return r[e];if(n||(n=e.split(Ex)),n.pop(),!n.length)return r[e]=this._testOne(e,i);let s=this._t(n.join(Ex)+Ex,r,i,n);return r[e]=s.ignored?s:this._testOne(e,i)}ignores(e){return this._test(e,this._ignoreCache,!1).ignored}createFilter(){return e=>!this.ignores(e)}filter(e){return PJ(e).filter(this.createFilter())}test(e){return this._test(e,this._testCache,!0)}},fy=t=>new LJ(t),vQe=()=>!1,SQe=t=>ha(t&&ha.convert(t),t,vQe);fy.isPathValid=SQe;fy.default=fy;kJ.exports=fy;if(typeof process!="undefined"&&(process.env&&process.env.IGNORE_TEST_WIN32||process.platform==="win32")){let t=r=>/^\\\\\?\\/.test(r)||/["<>|\u0000-\u001F]+/u.test(r)?r:r.replace(/\\/g,"/");ha.convert=t;let e=/^[a-z]:\//i;ha.isNotRelative=r=>e.test(r)||NJ(r)}});var OJ=E((Git,MJ)=>{"use strict";MJ.exports=t=>{let e=/^\\\\\?\\/.test(t),r=/[^\u0000-\u0080]+/.test(t);return e||r?t:t.replace(/\\/g,"/")}});var qJ=E((jit,yx)=>{"use strict";var{promisify:xQe}=require("util"),KJ=require("fs"),pa=require("path"),UJ=gy(),kQe=TJ(),sp=OJ(),HJ=["**/node_modules/**","**/flow-typed/**","**/coverage/**","**/.git"],PQe=xQe(KJ.readFile),DQe=t=>e=>e.startsWith("!")?"!"+pa.posix.join(t,e.slice(1)):pa.posix.join(t,e),RQe=(t,e)=>{let r=sp(pa.relative(e.cwd,pa.dirname(e.fileName)));return t.split(/\r?\n/).filter(Boolean).filter(i=>!i.startsWith("#")).map(DQe(r))},GJ=t=>{let e=kQe();for(let r of t)e.add(RQe(r.content,{cwd:r.cwd,fileName:r.filePath}));return e},FQe=(t,e)=>{if(t=sp(t),pa.isAbsolute(e)){if(sp(e).startsWith(t))return e;throw new Error(`Path ${e} is not in cwd ${t}`)}return pa.join(t,e)},jJ=(t,e)=>r=>t.ignores(sp(pa.relative(e,FQe(e,r.path||r)))),NQe=async(t,e)=>{let r=pa.join(e,t),i=await PQe(r,"utf8");return{cwd:e,filePath:r,content:i}},LQe=(t,e)=>{let r=pa.join(e,t),i=KJ.readFileSync(r,"utf8");return{cwd:e,filePath:r,content:i}},YJ=({ignore:t=[],cwd:e=sp(process.cwd())}={})=>({ignore:t,cwd:e});yx.exports=async t=>{t=YJ(t);let e=await UJ("**/.gitignore",{ignore:HJ.concat(t.ignore),cwd:t.cwd}),r=await Promise.all(e.map(n=>NQe(n,t.cwd))),i=GJ(r);return jJ(i,t.cwd)};yx.exports.sync=t=>{t=YJ(t);let r=UJ.sync("**/.gitignore",{ignore:HJ.concat(t.ignore),cwd:t.cwd}).map(n=>LQe(n,t.cwd)),i=GJ(r);return jJ(i,t.cwd)}});var VJ=E((Yit,JJ)=>{"use strict";var{Transform:TQe}=require("stream"),wx=class extends TQe{constructor(){super({objectMode:!0})}},WJ=class extends wx{constructor(e){super();this._filter=e}_transform(e,r,i){this._filter(e)&&this.push(e),i()}},zJ=class extends wx{constructor(){super();this._pushed=new Set}_transform(e,r,i){this._pushed.has(e)||(this.push(e),this._pushed.add(e)),i()}};JJ.exports={FilterStream:WJ,UniqueStream:zJ}});var vx=E((qit,Ul)=>{"use strict";var _J=require("fs"),hy=QY(),MQe=wS(),py=gy(),dy=xJ(),Bx=qJ(),{FilterStream:OQe,UniqueStream:KQe}=VJ(),XJ=()=>!1,ZJ=t=>t[0]==="!",UQe=t=>{if(!t.every(e=>typeof e=="string"))throw new TypeError("Patterns must be a string or an array of strings")},HQe=(t={})=>{if(!t.cwd)return;let e;try{e=_J.statSync(t.cwd)}catch{return}if(!e.isDirectory())throw new Error("The `cwd` option must be a path to a directory")},GQe=t=>t.stats instanceof _J.Stats?t.path:t,Cy=(t,e)=>{t=hy([].concat(t)),UQe(t),HQe(e);let r=[];e=P({ignore:[],expandDirectories:!0},e);for(let[i,n]of t.entries()){if(ZJ(n))continue;let s=t.slice(i).filter(a=>ZJ(a)).map(a=>a.slice(1)),o=_(P({},e),{ignore:e.ignore.concat(s)});r.push({pattern:n,options:o})}return r},jQe=(t,e)=>{let r={};return t.options.cwd&&(r.cwd=t.options.cwd),Array.isArray(t.options.expandDirectories)?r=_(P({},r),{files:t.options.expandDirectories}):typeof t.options.expandDirectories=="object"&&(r=P(P({},r),t.options.expandDirectories)),e(t.pattern,r)},Qx=(t,e)=>t.options.expandDirectories?jQe(t,e):[t.pattern],$J=t=>t&&t.gitignore?Bx.sync({cwd:t.cwd,ignore:t.ignore}):XJ,bx=t=>e=>{let{options:r}=t;return r.ignore&&Array.isArray(r.ignore)&&r.expandDirectories&&(r.ignore=dy.sync(r.ignore)),{pattern:e,options:r}};Ul.exports=async(t,e)=>{let r=Cy(t,e),i=async()=>e&&e.gitignore?Bx({cwd:e.cwd,ignore:e.ignore}):XJ,n=async()=>{let l=await Promise.all(r.map(async c=>{let u=await Qx(c,dy);return Promise.all(u.map(bx(c)))}));return hy(...l)},[s,o]=await Promise.all([i(),n()]),a=await Promise.all(o.map(l=>py(l.pattern,l.options)));return hy(...a).filter(l=>!s(GQe(l)))};Ul.exports.sync=(t,e)=>{let r=Cy(t,e),i=[];for(let o of r){let a=Qx(o,dy.sync).map(bx(o));i.push(...a)}let n=$J(e),s=[];for(let o of i)s=hy(s,py.sync(o.pattern,o.options));return s.filter(o=>!n(o))};Ul.exports.stream=(t,e)=>{let r=Cy(t,e),i=[];for(let a of r){let l=Qx(a,dy.sync).map(bx(a));i.push(...l)}let n=$J(e),s=new OQe(a=>!n(a)),o=new KQe;return MQe(i.map(a=>py.stream(a.pattern,a.options))).pipe(s).pipe(o)};Ul.exports.generateGlobTasks=Cy;Ul.exports.hasMagic=(t,e)=>[].concat(t).some(r=>py.isDynamicPattern(r,e));Ul.exports.gitignore=Bx});var Ca=E((da,Dy)=>{"use strict";Object.defineProperty(da,"__esModule",{value:!0});var A3=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function ibe(t){return A3.includes(t)}var nbe=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...A3];function sbe(t){return nbe.includes(t)}var obe=["null","undefined","string","number","bigint","boolean","symbol"];function abe(t){return obe.includes(t)}function Hu(t){return e=>typeof e===t}var{toString:l3}=Object.prototype,mp=t=>{let e=l3.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&j.domElement(t))return"HTMLElement";if(sbe(e))return e},er=t=>e=>mp(e)===t;function j(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(j.observable(t))return"Observable";if(j.array(t))return"Array";if(j.buffer(t))return"Buffer";let e=mp(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}j.undefined=Hu("undefined");j.string=Hu("string");var Abe=Hu("number");j.number=t=>Abe(t)&&!j.nan(t);j.bigint=Hu("bigint");j.function_=Hu("function");j.null_=t=>t===null;j.class_=t=>j.function_(t)&&t.toString().startsWith("class ");j.boolean=t=>t===!0||t===!1;j.symbol=Hu("symbol");j.numericString=t=>j.string(t)&&!j.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));j.array=(t,e)=>Array.isArray(t)?j.function_(e)?t.every(e):!0:!1;j.buffer=t=>{var e,r,i,n;return(n=(i=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||i===void 0?void 0:i.call(r,t))!==null&&n!==void 0?n:!1};j.nullOrUndefined=t=>j.null_(t)||j.undefined(t);j.object=t=>!j.null_(t)&&(typeof t=="object"||j.function_(t));j.iterable=t=>{var e;return j.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};j.asyncIterable=t=>{var e;return j.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};j.generator=t=>j.iterable(t)&&j.function_(t.next)&&j.function_(t.throw);j.asyncGenerator=t=>j.asyncIterable(t)&&j.function_(t.next)&&j.function_(t.throw);j.nativePromise=t=>er("Promise")(t);var lbe=t=>{var e,r;return j.function_((e=t)===null||e===void 0?void 0:e.then)&&j.function_((r=t)===null||r===void 0?void 0:r.catch)};j.promise=t=>j.nativePromise(t)||lbe(t);j.generatorFunction=er("GeneratorFunction");j.asyncGeneratorFunction=t=>mp(t)==="AsyncGeneratorFunction";j.asyncFunction=t=>mp(t)==="AsyncFunction";j.boundFunction=t=>j.function_(t)&&!t.hasOwnProperty("prototype");j.regExp=er("RegExp");j.date=er("Date");j.error=er("Error");j.map=t=>er("Map")(t);j.set=t=>er("Set")(t);j.weakMap=t=>er("WeakMap")(t);j.weakSet=t=>er("WeakSet")(t);j.int8Array=er("Int8Array");j.uint8Array=er("Uint8Array");j.uint8ClampedArray=er("Uint8ClampedArray");j.int16Array=er("Int16Array");j.uint16Array=er("Uint16Array");j.int32Array=er("Int32Array");j.uint32Array=er("Uint32Array");j.float32Array=er("Float32Array");j.float64Array=er("Float64Array");j.bigInt64Array=er("BigInt64Array");j.bigUint64Array=er("BigUint64Array");j.arrayBuffer=er("ArrayBuffer");j.sharedArrayBuffer=er("SharedArrayBuffer");j.dataView=er("DataView");j.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;j.urlInstance=t=>er("URL")(t);j.urlString=t=>{if(!j.string(t))return!1;try{return new URL(t),!0}catch(e){return!1}};j.truthy=t=>Boolean(t);j.falsy=t=>!t;j.nan=t=>Number.isNaN(t);j.primitive=t=>j.null_(t)||abe(typeof t);j.integer=t=>Number.isInteger(t);j.safeInteger=t=>Number.isSafeInteger(t);j.plainObject=t=>{if(l3.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};j.typedArray=t=>ibe(mp(t));var cbe=t=>j.safeInteger(t)&&t>=0;j.arrayLike=t=>!j.nullOrUndefined(t)&&!j.function_(t)&&cbe(t.length);j.inRange=(t,e)=>{if(j.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(j.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var ube=1,gbe=["innerHTML","ownerDocument","style","attributes","nodeValue"];j.domElement=t=>j.object(t)&&t.nodeType===ube&&j.string(t.nodeName)&&!j.plainObject(t)&&gbe.every(e=>e in t);j.observable=t=>{var e,r,i,n;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((n=(i=t)["@@observable"])===null||n===void 0?void 0:n.call(i)):!1};j.nodeStream=t=>j.object(t)&&j.function_(t.pipe)&&!j.observable(t);j.infinite=t=>t===Infinity||t===-Infinity;var c3=t=>e=>j.integer(e)&&Math.abs(e%2)===t;j.evenInteger=c3(0);j.oddInteger=c3(1);j.emptyArray=t=>j.array(t)&&t.length===0;j.nonEmptyArray=t=>j.array(t)&&t.length>0;j.emptyString=t=>j.string(t)&&t.length===0;j.nonEmptyString=t=>j.string(t)&&t.length>0;var fbe=t=>j.string(t)&&!/\S/.test(t);j.emptyStringOrWhitespace=t=>j.emptyString(t)||fbe(t);j.emptyObject=t=>j.object(t)&&!j.map(t)&&!j.set(t)&&Object.keys(t).length===0;j.nonEmptyObject=t=>j.object(t)&&!j.map(t)&&!j.set(t)&&Object.keys(t).length>0;j.emptySet=t=>j.set(t)&&t.size===0;j.nonEmptySet=t=>j.set(t)&&t.size>0;j.emptyMap=t=>j.map(t)&&t.size===0;j.nonEmptyMap=t=>j.map(t)&&t.size>0;j.propertyKey=t=>j.any([j.string,j.number,j.symbol],t);j.formData=t=>er("FormData")(t);j.urlSearchParams=t=>er("URLSearchParams")(t);var u3=(t,e,r)=>{if(!j.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};j.any=(t,...e)=>(j.array(t)?t:[t]).some(i=>u3(Array.prototype.some,i,e));j.all=(t,...e)=>u3(Array.prototype.every,t,e);var Te=(t,e,r,i={})=>{if(!t){let{multipleValues:n}=i,s=n?`received values of types ${[...new Set(r.map(o=>`\`${j(o)}\``))].join(", ")}`:`received value of type \`${j(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${s}.`)}};da.assert={undefined:t=>Te(j.undefined(t),"undefined",t),string:t=>Te(j.string(t),"string",t),number:t=>Te(j.number(t),"number",t),bigint:t=>Te(j.bigint(t),"bigint",t),function_:t=>Te(j.function_(t),"Function",t),null_:t=>Te(j.null_(t),"null",t),class_:t=>Te(j.class_(t),"Class",t),boolean:t=>Te(j.boolean(t),"boolean",t),symbol:t=>Te(j.symbol(t),"symbol",t),numericString:t=>Te(j.numericString(t),"string with a number",t),array:(t,e)=>{Te(j.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>Te(j.buffer(t),"Buffer",t),nullOrUndefined:t=>Te(j.nullOrUndefined(t),"null or undefined",t),object:t=>Te(j.object(t),"Object",t),iterable:t=>Te(j.iterable(t),"Iterable",t),asyncIterable:t=>Te(j.asyncIterable(t),"AsyncIterable",t),generator:t=>Te(j.generator(t),"Generator",t),asyncGenerator:t=>Te(j.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>Te(j.nativePromise(t),"native Promise",t),promise:t=>Te(j.promise(t),"Promise",t),generatorFunction:t=>Te(j.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>Te(j.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>Te(j.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>Te(j.boundFunction(t),"Function",t),regExp:t=>Te(j.regExp(t),"RegExp",t),date:t=>Te(j.date(t),"Date",t),error:t=>Te(j.error(t),"Error",t),map:t=>Te(j.map(t),"Map",t),set:t=>Te(j.set(t),"Set",t),weakMap:t=>Te(j.weakMap(t),"WeakMap",t),weakSet:t=>Te(j.weakSet(t),"WeakSet",t),int8Array:t=>Te(j.int8Array(t),"Int8Array",t),uint8Array:t=>Te(j.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>Te(j.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>Te(j.int16Array(t),"Int16Array",t),uint16Array:t=>Te(j.uint16Array(t),"Uint16Array",t),int32Array:t=>Te(j.int32Array(t),"Int32Array",t),uint32Array:t=>Te(j.uint32Array(t),"Uint32Array",t),float32Array:t=>Te(j.float32Array(t),"Float32Array",t),float64Array:t=>Te(j.float64Array(t),"Float64Array",t),bigInt64Array:t=>Te(j.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>Te(j.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>Te(j.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>Te(j.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>Te(j.dataView(t),"DataView",t),urlInstance:t=>Te(j.urlInstance(t),"URL",t),urlString:t=>Te(j.urlString(t),"string with a URL",t),truthy:t=>Te(j.truthy(t),"truthy",t),falsy:t=>Te(j.falsy(t),"falsy",t),nan:t=>Te(j.nan(t),"NaN",t),primitive:t=>Te(j.primitive(t),"primitive",t),integer:t=>Te(j.integer(t),"integer",t),safeInteger:t=>Te(j.safeInteger(t),"integer",t),plainObject:t=>Te(j.plainObject(t),"plain object",t),typedArray:t=>Te(j.typedArray(t),"TypedArray",t),arrayLike:t=>Te(j.arrayLike(t),"array-like",t),domElement:t=>Te(j.domElement(t),"HTMLElement",t),observable:t=>Te(j.observable(t),"Observable",t),nodeStream:t=>Te(j.nodeStream(t),"Node.js Stream",t),infinite:t=>Te(j.infinite(t),"infinite number",t),emptyArray:t=>Te(j.emptyArray(t),"empty array",t),nonEmptyArray:t=>Te(j.nonEmptyArray(t),"non-empty array",t),emptyString:t=>Te(j.emptyString(t),"empty string",t),nonEmptyString:t=>Te(j.nonEmptyString(t),"non-empty string",t),emptyStringOrWhitespace:t=>Te(j.emptyStringOrWhitespace(t),"empty string or whitespace",t),emptyObject:t=>Te(j.emptyObject(t),"empty object",t),nonEmptyObject:t=>Te(j.nonEmptyObject(t),"non-empty object",t),emptySet:t=>Te(j.emptySet(t),"empty set",t),nonEmptySet:t=>Te(j.nonEmptySet(t),"non-empty set",t),emptyMap:t=>Te(j.emptyMap(t),"empty map",t),nonEmptyMap:t=>Te(j.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>Te(j.propertyKey(t),"PropertyKey",t),formData:t=>Te(j.formData(t),"FormData",t),urlSearchParams:t=>Te(j.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>Te(j.evenInteger(t),"even integer",t),oddInteger:t=>Te(j.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>Te(j.directInstanceOf(t,e),"T",t),inRange:(t,e)=>Te(j.inRange(t,e),"in range",t),any:(t,...e)=>Te(j.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>Te(j.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(j,{class:{value:j.class_},function:{value:j.function_},null:{value:j.null_}});Object.defineProperties(da.assert,{class:{value:da.assert.class_},function:{value:da.assert.function_},null:{value:da.assert.null_}});da.default=j;Dy.exports=j;Dy.exports.default=j;Dy.exports.assert=da.assert});var g3=E((gnt,Ux)=>{"use strict";var Hx=class extends Error{constructor(e){super(e||"Promise was canceled");this.name="CancelError"}get isCanceled(){return!0}},Ep=class{static fn(e){return(...r)=>new Ep((i,n,s)=>{r.push(s),e(...r).then(i,n)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,i)=>{this._reject=i;let n=a=>{this._isPending=!1,r(a)},s=a=>{this._isPending=!1,i(a)},o=a=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(a)};return Object.defineProperties(o,{shouldReject:{get:()=>this._rejectOnCancel,set:a=>{this._rejectOnCancel=a}}}),e(n,s,o)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Hx(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(Ep.prototype,Promise.prototype);Ux.exports=Ep;Ux.exports.CancelError=Hx});var f3=E((Gx,jx)=>{"use strict";Object.defineProperty(Gx,"__esModule",{value:!0});var hbe=require("tls"),Yx=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let i=typeof r.connect=="function",n=typeof r.secureConnect=="function",s=typeof r.close=="function",o=()=>{i&&r.connect(),t instanceof hbe.TLSSocket&&n&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),s&&t.once("close",r.close)};t.writable&&!t.connecting?o():t.connecting?t.once("connect",o):t.destroyed&&s&&r.close(t._hadError)};Gx.default=Yx;jx.exports=Yx;jx.exports.default=Yx});var h3=E((qx,Jx)=>{"use strict";Object.defineProperty(qx,"__esModule",{value:!0});var pbe=f3(),dbe=Number(process.versions.node.split(".")[0]),Wx=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=o=>{let a=o.emit.bind(o);o.emit=(l,...c)=>(l==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,o.emit=a),a(l,...c))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||dbe>=13)&&(e.phases.total=Date.now()-e.start)});let i=o=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let a=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};o.prependOnceListener("lookup",a),pbe.default(o,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(o.removeListener("lookup",a),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?i(t.socket):t.prependOnceListener("socket",i);let n=()=>{var o;e.upload=Date.now(),e.phases.request=e.upload-(o=e.secureConnect,o!=null?o:e.connect)};return(()=>typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))()?n():t.prependOnceListener("finish",n),t.prependOnceListener("response",o=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,o.timings=e,r(o),o.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};qx.default=Wx;Jx.exports=Wx;Jx.exports.default=Wx});var y3=E((fnt,zx)=>{"use strict";var{V4MAPPED:Cbe,ADDRCONFIG:mbe,ALL:p3,promises:{Resolver:d3},lookup:Ebe}=require("dns"),{promisify:Vx}=require("util"),Ibe=require("os"),Gu=Symbol("cacheableLookupCreateConnection"),_x=Symbol("cacheableLookupInstance"),C3=Symbol("expires"),ybe=typeof p3=="number",m3=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},wbe=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},E3=()=>{let t=!1,e=!1;for(let r of Object.values(Ibe.networkInterfaces()))for(let i of r)if(!i.internal&&(i.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},Bbe=t=>Symbol.iterator in t,I3={ttl:!0},Qbe={all:!0},Xx=class{constructor({cache:e=new Map,maxTtl:r=Infinity,fallbackDuration:i=3600,errorTtl:n=.15,resolver:s=new d3,lookup:o=Ebe}={}){if(this.maxTtl=r,this.errorTtl=n,this._cache=e,this._resolver=s,this._dnsLookup=Vx(o),this._resolver instanceof d3?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=Vx(this._resolver.resolve4.bind(this._resolver)),this._resolve6=Vx(this._resolver.resolve6.bind(this._resolver))),this._iface=E3(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,i<1)this._fallback=!1;else{this._fallback=!0;let a=setInterval(()=>{this._hostnamesToFallback.clear()},i*1e3);a.unref&&a.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,i){if(typeof r=="function"?(i=r,r={}):typeof r=="number"&&(r={family:r}),!i)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(n=>{r.all?i(null,n):i(null,n.address,n.family,n.expires,n.ttl)},i)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let i=await this.query(e);if(r.family===6){let n=i.filter(s=>s.family===6);r.hints&Cbe&&(ybe&&r.hints&p3||n.length===0)?wbe(i):i=n}else r.family===4&&(i=i.filter(n=>n.family===4));if(r.hints&mbe){let{_iface:n}=this;i=i.filter(s=>s.family===6?n.has6:n.has4)}if(i.length===0){let n=new Error(`cacheableLookup ENOTFOUND ${e}`);throw n.code="ENOTFOUND",n.hostname=e,n}return r.all?i:i[0]}async query(e){let r=await this._cache.get(e);if(!r){let i=this._pending[e];if(i)r=await i;else{let n=this.queryAndCache(e);this._pending[e]=n,r=await n}}return r=r.map(i=>P({},i)),r}async _resolve(e){let r=async c=>{try{return await c}catch(u){if(u.code==="ENODATA"||u.code==="ENOTFOUND")return[];throw u}},[i,n]=await Promise.all([this._resolve4(e,I3),this._resolve6(e,I3)].map(c=>r(c))),s=0,o=0,a=0,l=Date.now();for(let c of i)c.family=4,c.expires=l+c.ttl*1e3,s=Math.max(s,c.ttl);for(let c of n)c.family=6,c.expires=l+c.ttl*1e3,o=Math.max(o,c.ttl);return i.length>0?n.length>0?a=Math.min(s,o):a=s:a=o,{entries:[...i,...n],cacheTtl:a}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch(r){return{entries:[],cacheTtl:0}}}async _set(e,r,i){if(this.maxTtl>0&&i>0){i=Math.min(i,this.maxTtl)*1e3,r[C3]=Date.now()+i;try{await this._cache.set(e,r,i)}catch(n){this.lookupAsync=async()=>{let s=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw s.cause=n,s}}Bbe(this._cache)&&this._tick(i)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Qbe);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let i=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,i),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e{this._nextRemovalTime=!1;let i=Infinity,n=Date.now();for(let[s,o]of this._cache){let a=o[C3];n>=a?this._cache.delete(s):a("lookup"in r||(r.lookup=this.lookup),e[Gu](r,i))}uninstall(e){if(m3(e),e[Gu]){if(e[_x]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Gu],delete e[Gu],delete e[_x]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=E3(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};zx.exports=Xx;zx.exports.default=Xx});var Q3=E((hnt,Zx)=>{"use strict";var bbe=typeof URL=="undefined"?require("url").URL:URL,vbe="text/plain",Sbe="us-ascii",w3=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),xbe=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let i=r[1].split(";"),n=r[2],s=e?"":r[3],o=!1;i[i.length-1]==="base64"&&(i.pop(),o=!0);let a=(i.shift()||"").toLowerCase(),c=[...i.map(u=>{let[g,f=""]=u.split("=").map(h=>h.trim());return g==="charset"&&(f=f.toLowerCase(),f===Sbe)?"":`${g}${f?`=${f}`:""}`}).filter(Boolean)];return o&&c.push("base64"),(c.length!==0||a&&a!==vbe)&&c.unshift(a),`data:${c.join(";")},${o?n.trim():n}${s?`#${s}`:""}`},B3=(t,e)=>{if(e=P({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return xbe(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new bbe(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripAuthentication&&(n.username="",n.password=""),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?!:).|^)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];w3(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])w3(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),e.removeTrailingSlash&&(n.pathname=n.pathname.replace(/\/$/,"")),t=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&n.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};Zx.exports=B3;Zx.exports.default=B3});var S3=E((pnt,b3)=>{b3.exports=v3;function v3(t,e){if(t&&e)return v3(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(i){r[i]=t[i]}),r;function r(){for(var i=new Array(arguments.length),n=0;n{var x3=S3();$x.exports=x3(Ry);$x.exports.strict=x3(k3);Ry.proto=Ry(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return Ry(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return k3(this)},configurable:!0})});function Ry(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function k3(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var tk=E((Cnt,P3)=>{var kbe=ek(),Pbe=function(){},Dbe=function(t){return t.setHeader&&typeof t.abort=="function"},Rbe=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},D3=function(t,e,r){if(typeof e=="function")return D3(t,null,e);e||(e={}),r=kbe(r||Pbe);var i=t._writableState,n=t._readableState,s=e.readable||e.readable!==!1&&t.readable,o=e.writable||e.writable!==!1&&t.writable,a=function(){t.writable||l()},l=function(){o=!1,s||r.call(t)},c=function(){s=!1,o||r.call(t)},u=function(p){r.call(t,p?new Error("exited with error code: "+p):null)},g=function(p){r.call(t,p)},f=function(){if(s&&!(n&&n.ended))return r.call(t,new Error("premature close"));if(o&&!(i&&i.ended))return r.call(t,new Error("premature close"))},h=function(){t.req.on("finish",l)};return Dbe(t)?(t.on("complete",l),t.on("abort",f),t.req?h():t.on("request",h)):o&&!i&&(t.on("end",a),t.on("close",a)),Rbe(t)&&t.on("exit",u),t.on("end",c),t.on("finish",l),e.error!==!1&&t.on("error",g),t.on("close",f),function(){t.removeListener("complete",l),t.removeListener("abort",f),t.removeListener("request",h),t.req&&t.req.removeListener("finish",l),t.removeListener("end",a),t.removeListener("close",a),t.removeListener("finish",l),t.removeListener("exit",u),t.removeListener("end",c),t.removeListener("error",g),t.removeListener("close",f)}};P3.exports=D3});var N3=E((mnt,R3)=>{var Fbe=ek(),Nbe=tk(),rk=require("fs"),Ip=function(){},Lbe=/^v?\.0/.test(process.version),Fy=function(t){return typeof t=="function"},Tbe=function(t){return!Lbe||!rk?!1:(t instanceof(rk.ReadStream||Ip)||t instanceof(rk.WriteStream||Ip))&&Fy(t.close)},Mbe=function(t){return t.setHeader&&Fy(t.abort)},Obe=function(t,e,r,i){i=Fbe(i);var n=!1;t.on("close",function(){n=!0}),Nbe(t,{readable:e,writable:r},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,Tbe(t))return t.close(Ip);if(Mbe(t))return t.abort();if(Fy(t.destroy))return t.destroy();i(o||new Error("stream was destroyed"))}}},F3=function(t){t()},Kbe=function(t,e){return t.pipe(e)},Ube=function(){var t=Array.prototype.slice.call(arguments),e=Fy(t[t.length-1]||Ip)&&t.pop()||Ip;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,i=t.map(function(n,s){var o=s0;return Obe(n,o,a,function(l){r||(r=l),l&&i.forEach(F3),!o&&(i.forEach(F3),e(r))})});return t.reduce(Kbe)};R3.exports=Ube});var T3=E((Ent,L3)=>{"use strict";var{PassThrough:Hbe}=require("stream");L3.exports=t=>{t=P({},t);let{array:e}=t,{encoding:r}=t,i=r==="buffer",n=!1;e?n=!(r||i):r=r||"utf8",i&&(r=null);let s=new Hbe({objectMode:n});r&&s.setEncoding(r);let o=0,a=[];return s.on("data",l=>{a.push(l),n?o=a.length:o+=l.length}),s.getBufferedValue=()=>e?a:i?Buffer.concat(a,o):a.join(""),s.getBufferedLength=()=>o,s}});var M3=E((Int,ju)=>{"use strict";var Gbe=N3(),jbe=T3(),ik=class extends Error{constructor(){super("maxBuffer exceeded");this.name="MaxBufferError"}};async function Ny(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e=P({maxBuffer:Infinity},e);let{maxBuffer:r}=e,i;return await new Promise((n,s)=>{let o=a=>{a&&(a.bufferedData=i.getBufferedValue()),s(a)};i=Gbe(t,jbe(e),a=>{if(a){o(a);return}n()}),i.on("data",()=>{i.getBufferedLength()>r&&o(new ik)})}),i.getBufferedValue()}ju.exports=Ny;ju.exports.default=Ny;ju.exports.buffer=(t,e)=>Ny(t,_(P({},e),{encoding:"buffer"}));ju.exports.array=(t,e)=>Ny(t,_(P({},e),{array:!0}));ju.exports.MaxBufferError=ik});var K3=E((wnt,O3)=>{"use strict";var Ybe=[200,203,204,206,300,301,404,405,410,414,501],qbe=[200,203,204,300,301,302,303,307,308,404,405,410,414,501],Jbe={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Wbe={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function nk(t){let e={};if(!t)return e;let r=t.trim().split(/\s*,\s*/);for(let i of r){let[n,s]=i.split(/\s*=\s*/,2);e[n]=s===void 0?!0:s.replace(/^"|"$/g,"")}return e}function zbe(t){let e=[];for(let r in t){let i=t[r];e.push(i===!0?r:r+"="+i)}if(!!e.length)return e.join(", ")}O3.exports=class{constructor(e,r,{shared:i,cacheHeuristic:n,immutableMinTimeToLive:s,ignoreCargoCult:o,trustServerDate:a,_fromObject:l}={}){if(l){this._fromObject(l);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=i!==!1,this._trustServerDate=a!==void 0?a:!0,this._cacheHeuristic=n!==void 0?n:.1,this._immutableMinTtl=s!==void 0?s:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=nk(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=nk(e.headers["cache-control"]),o&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":zbe(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),!r.headers["cache-control"]&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&qbe.indexOf(this._status)!==-1&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc.public||this._rescc["max-age"]||this._rescc["s-maxage"]||Ybe.indexOf(this._status)!==-1))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=nk(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let i of r)if(e.headers[i]!==this._reqHeaders[i])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let i in e)Jbe[i]||(r[i]=e[i]);if(e.connection){let i=e.connection.trim().split(/\s*,\s*/);for(let n of i)delete r[n]}if(r.warning){let i=r.warning.split(/,/).filter(n=>!/^\s*1[0-9][0-9]/.test(n));i.length?r.warning=i.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){return this._trustServerDate?this._serverDate():this._responseTime}_serverDate(){let e=Date.parse(this._resHeaders.date);if(isFinite(e)){let r=8*3600*1e3;if(Math.abs(this._responseTime-e)e&&(e=i)}let r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){let e=parseInt(this._resHeaders.age);return isFinite(e)?e:0}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return parseInt(this._rescc["s-maxage"],10)}if(this._rescc["max-age"])return parseInt(this._rescc["max-age"],10);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this._serverDate();if(this._resHeaders.expires){let i=Date.parse(this._resHeaders.expires);return Number.isNaN(i)||ii)return Math.max(e,(r-i)/1e3*this._cacheHeuristic)}return e}timeToLive(){return Math.max(0,this.maxAge()-this.age())*1e3}stale(){return this.maxAge()<=this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let n=r["if-none-match"].split(/,/).filter(s=>!/^\s*W\//.test(s));n.length?r["if-none-match"]=n.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),!r||!r.headers)throw Error("Response headers missing");let i=!1;if(r.status!==void 0&&r.status!=304?i=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?i=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?i=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?i=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(i=!0),!i)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let n={};for(let o in this._resHeaders)n[o]=o in r.headers&&!Wbe[o]?r.headers[o]:this._resHeaders[o];let s=Object.assign({},r,{status:this._status,method:this._method,headers:n});return{policy:new this.constructor(e,s,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl,trustServerDate:this._trustServerDate}),modified:!1,matches:!0}}}});var Ly=E((Bnt,U3)=>{"use strict";U3.exports=t=>{let e={};for(let[r,i]of Object.entries(t))e[r.toLowerCase()]=i;return e}});var j3=E((Qnt,H3)=>{"use strict";var Vbe=require("stream").Readable,_be=Ly(),G3=class extends Vbe{constructor(e,r,i,n){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(i instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof n!="string")throw new TypeError("Argument `url` should be a string");super();this.statusCode=e,this.headers=_be(r),this.body=i,this.url=n}_read(){this.push(this.body),this.push(null)}};H3.exports=G3});var q3=E((bnt,Y3)=>{"use strict";var Xbe=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];Y3.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(Xbe));for(let i of r)i in e||(e[i]=typeof t[i]=="function"?t[i].bind(t):t[i])}});var W3=E((vnt,J3)=>{"use strict";var Zbe=require("stream").PassThrough,$be=q3(),eve=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new Zbe;return $be(t,e),t.pipe(e)};J3.exports=eve});var z3=E(sk=>{sk.stringify=function t(e){if(typeof e=="undefined")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",i=Array.isArray(e);r=i?"[":"{";var n=!0;for(var s in e){var o=typeof e[s]=="function"||!i&&typeof e[s]=="undefined";Object.hasOwnProperty.call(e,s)&&!o&&(n||(r+=","),n=!1,i?e[s]==null?r+="null":r+=t(e[s]):e[s]!==void 0&&(r+=t(s)+":"+t(e[s])))}return r+=i?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e=="undefined"?"null":JSON.stringify(e)};sk.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var Z3=E((xnt,V3)=>{"use strict";var tve=require("events"),_3=z3(),rve=t=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(t.adapter||t.uri){let r=t.adapter||/^[^:]*/.exec(t.uri)[0];return new(require(e[r]))(t)}return new Map},X3=class extends tve{constructor(e,r){super();if(this.opts=Object.assign({namespace:"keyv",serialize:_3.stringify,deserialize:_3.parse},typeof e=="string"?{uri:e}:e,r),!this.opts.store){let i=Object.assign({},this.opts);this.opts.store=rve(i)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",i=>this.emit("error",i)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,r){e=this._getKeyPrefix(e);let{store:i}=this.opts;return Promise.resolve().then(()=>i.get(e)).then(n=>typeof n=="string"?this.opts.deserialize(n):n).then(n=>{if(n!==void 0){if(typeof n.expires=="number"&&Date.now()>n.expires){this.delete(e);return}return r&&r.raw?n:n.value}})}set(e,r,i){e=this._getKeyPrefix(e),typeof i=="undefined"&&(i=this.opts.ttl),i===0&&(i=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let s=typeof i=="number"?Date.now()+i:null;return r={value:r,expires:s},this.opts.serialize(r)}).then(s=>n.set(e,s,i)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:r}=this.opts;return Promise.resolve().then(()=>r.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};V3.exports=X3});var tW=E((knt,$3)=>{"use strict";var ive=require("events"),Ty=require("url"),nve=Q3(),sve=M3(),ok=K3(),eW=j3(),ove=Ly(),ave=W3(),Ave=Z3(),yo=class{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Ave({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,i)=>{let n;if(typeof r=="string")n=ak(Ty.parse(r)),r={};else if(r instanceof Ty.URL)n=ak(Ty.parse(r.toString())),r={};else{let[g,...f]=(r.path||"").split("?"),h=f.length>0?`?${f.join("?")}`:"";n=ak(_(P({},r),{pathname:g,search:h}))}r=P(P({headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1},r),lve(n)),r.headers=ove(r.headers);let s=new ive,o=nve(Ty.format(n),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),a=`${r.method}:${o}`,l=!1,c=!1,u=g=>{c=!0;let f=!1,h,p=new Promise(m=>{h=()=>{f||(f=!0,m())}}),d=m=>{if(l&&!g.forceRefresh){m.status=m.statusCode;let B=ok.fromObject(l.cachePolicy).revalidatedPolicy(g,m);if(!B.modified){let b=B.policy.responseHeaders();m=new eW(l.statusCode,b,l.body,l.url),m.cachePolicy=B.policy,m.fromCache=!0}}m.fromCache||(m.cachePolicy=new ok(g,m,g),m.fromCache=!1);let I;g.cache&&m.cachePolicy.storable()?(I=ave(m),(async()=>{try{let B=sve.buffer(m);if(await Promise.race([p,new Promise(L=>m.once("end",L))]),f)return;let b=await B,R={cachePolicy:m.cachePolicy.toObject(),url:m.url,statusCode:m.fromCache?l.statusCode:m.statusCode,body:b},H=g.strictTtl?m.cachePolicy.timeToLive():void 0;g.maxTtl&&(H=H?Math.min(H,g.maxTtl):g.maxTtl),await this.cache.set(a,R,H)}catch(B){s.emit("error",new yo.CacheError(B))}})()):g.cache&&l&&(async()=>{try{await this.cache.delete(a)}catch(B){s.emit("error",new yo.CacheError(B))}})(),s.emit("response",I||m),typeof i=="function"&&i(I||m)};try{let m=e(g,d);m.once("error",h),m.once("abort",h),s.emit("request",m)}catch(m){s.emit("error",new yo.RequestError(m))}};return(async()=>{let g=async h=>{await Promise.resolve();let p=h.cache?await this.cache.get(a):void 0;if(typeof p=="undefined")return u(h);let d=ok.fromObject(p.cachePolicy);if(d.satisfiesWithoutRevalidation(h)&&!h.forceRefresh){let m=d.responseHeaders(),I=new eW(p.statusCode,m,p.body,p.url);I.cachePolicy=d,I.fromCache=!0,s.emit("response",I),typeof i=="function"&&i(I)}else l=p,h.headers=d.revalidationHeaders(h),u(h)},f=h=>s.emit("error",new yo.CacheError(h));this.cache.once("error",f),s.on("response",()=>this.cache.removeListener("error",f));try{await g(r)}catch(h){r.automaticFailover&&!c&&u(r),s.emit("error",new yo.CacheError(h))}})(),s}}};function lve(t){let e=P({},t);return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function ak(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}yo.RequestError=class extends Error{constructor(t){super(t.message);this.name="RequestError",Object.assign(this,t)}};yo.CacheError=class extends Error{constructor(t){super(t.message);this.name="CacheError",Object.assign(this,t)}};$3.exports=yo});var iW=E((Pnt,rW)=>{"use strict";var cve=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];rW.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(cve)),i={};for(let n of r)n in e||(i[n]={get(){let s=t[n];return typeof s=="function"?s.bind(t):s},set(s){t[n]=s},enumerable:!0,configurable:!1});return Object.defineProperties(e,i),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var sW=E((Dnt,nW)=>{"use strict";var{Transform:uve,PassThrough:gve}=require("stream"),Ak=require("zlib"),fve=iW();nW.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof Ak.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let i=!0,n=new uve({transform(a,l,c){i=!1,c(null,a)},flush(a){a()}}),s=new gve({autoDestroy:!1,destroy(a,l){t.destroy(),l(a)}}),o=r?Ak.createBrotliDecompress():Ak.createUnzip();return o.once("error",a=>{if(i&&!t.readable){s.end();return}s.destroy(a)}),fve(t,s),t.pipe(n).pipe(o).pipe(s),s}});var lk=E((Rnt,oW)=>{"use strict";var aW=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[i,n]of this.oldCache.entries())this.onEviction(i,n);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};oW.exports=aW});var uk=E((Fnt,AW)=>{"use strict";var hve=require("events"),pve=require("tls"),dve=require("http2"),Cve=lk(),_i=Symbol("currentStreamsCount"),lW=Symbol("request"),ns=Symbol("cachedOriginSet"),Yu=Symbol("gracefullyClosing"),mve=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Eve=(t,e,r)=>{let i=0,n=t.length;for(;i>>1;r(t[s],e)?i=s+1:n=s}return i},Ive=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,ck=(t,e)=>{for(let r of t)r[ns].lengthe[ns].includes(i))&&r[_i]+e[_i]<=e.remoteSettings.maxConcurrentStreams&&cW(r)},yve=(t,e)=>{for(let r of t)e[ns].lengthr[ns].includes(i))&&e[_i]+r[_i]<=r.remoteSettings.maxConcurrentStreams&&cW(e)},uW=({agent:t,isFree:e})=>{let r={};for(let i in t.sessions){let s=t.sessions[i].filter(o=>{let a=o[ma.kCurrentStreamsCount]{t[Yu]=!0,t[_i]===0&&t.close()},ma=class extends hve{constructor({timeout:e=6e4,maxSessions:r=Infinity,maxFreeSessions:i=10,maxCachedTlsSessions:n=100}={}){super();this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=i,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new Cve({maxSize:n})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let i of mve)e[i]&&(r+=`:${e[i]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let i=this.queue[e][r];this._sessionsCount{Array.isArray(i)?(i=[...i],n()):i=[{resolve:n,reject:s}];let o=this.normalizeOptions(r),a=ma.normalizeOrigin(e,r&&r.servername);if(a===void 0){for(let{reject:u}of i)u(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(o in this.sessions){let u=this.sessions[o],g=-1,f=-1,h;for(let p of u){let d=p.remoteSettings.maxConcurrentStreams;if(d=d||p[Yu]||p.destroyed)continue;h||(g=d),m>f&&(h=p,f=m)}}if(h){if(i.length!==1){for(let{reject:p}of i){let d=new Error(`Expected the length of listeners to be 1, got ${i.length}. -Please report this to https://github.com/szmarczak/http2-wrapper/`);p(d)}return}i[0].resolve(h);return}}if(o in this.queue){if(a in this.queue[o]){this.queue[o][a].listeners.push(...i),this._tryToCreateNewSession(o,a);return}}else this.queue[o]={};let l=()=>{o in this.queue&&this.queue[o][a]===c&&(delete this.queue[o][a],Object.keys(this.queue[o]).length===0&&delete this.queue[o])},c=()=>{let u=`${a}:${o}`,g=!1;try{let f=dve.connect(e,P({createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(u)},r));f[_i]=0,f[Yu]=!1;let h=()=>f[_i]{this.tlsSessionCache.set(u,m)}),f.once("error",m=>{for(let{reject:I}of i)I(m);this.tlsSessionCache.delete(u)}),f.setTimeout(this.timeout,()=>{f.destroy()}),f.once("close",()=>{if(g){p&&this._freeSessionsCount--,this._sessionsCount--;let m=this.sessions[o];m.splice(m.indexOf(f),1),m.length===0&&delete this.sessions[o]}else{let m=new Error("Session closed without receiving a SETTINGS frame");m.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:I}of i)I(m);l()}this._tryToCreateNewSession(o,a)});let d=()=>{if(!(!(o in this.queue)||!h())){for(let m of f[ns])if(m in this.queue[o]){let{listeners:I}=this.queue[o][m];for(;I.length!==0&&h();)I.shift().resolve(f);let B=this.queue[o];if(B[m].listeners.length===0&&(delete B[m],Object.keys(B).length===0)){delete this.queue[o];break}if(!h())break}}};f.on("origin",()=>{f[ns]=f.originSet,!!h()&&(d(),ck(this.sessions[o],f))}),f.once("remoteSettings",()=>{if(f.ref(),f.unref(),this._sessionsCount++,c.destroyed){let m=new Error("Agent has been destroyed");for(let I of i)I.reject(m);f.destroy();return}f[ns]=f.originSet;{let m=this.sessions;if(o in m){let I=m[o];I.splice(Eve(I,f,Ive),0,f)}else m[o]=[f]}this._freeSessionsCount+=1,g=!0,this.emit("session",f),d(),l(),f[_i]===0&&this._freeSessionsCount>this.maxFreeSessions&&f.close(),i.length!==0&&(this.getSession(a,r,i),i.length=0),f.on("remoteSettings",()=>{d(),ck(this.sessions[o],f)})}),f[lW]=f.request,f.request=(m,I)=>{if(f[Yu])throw new Error("The session is gracefully closing. No new streams are allowed.");let B=f[lW](m,I);return f.ref(),++f[_i],f[_i]===f.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,B.once("close",()=>{if(p=h(),--f[_i],!f.destroyed&&!f.closed&&(yve(this.sessions[o],f),h()&&!f.closed)){p||(this._freeSessionsCount++,p=!0);let b=f[_i]===0;b&&f.unref(),b&&(this._freeSessionsCount>this.maxFreeSessions||f[Yu])?f.close():(ck(this.sessions[o],f),d())}}),B}}catch(f){for(let h of i)h.reject(f);l()}};c.listeners=i,c.completed=!1,c.destroyed=!1,this.queue[o][a]=c,this._tryToCreateNewSession(o,a)})}request(e,r,i,n){return new Promise((s,o)=>{this.getSession(e,r,[{reject:o,resolve:a=>{try{s(a.request(i,n))}catch(l){o(l)}}}])})}createConnection(e,r){return ma.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let i=e.port||443,n=e.hostname||e.host;return typeof r.servername=="undefined"&&(r.servername=n),pve.connect(i,n,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[_i]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let i of r)i.destroy(e);for(let r of Object.values(this.queue))for(let i of Object.values(r))i.destroyed=!0;this.queue={}}get freeSessions(){return uW({agent:this,isFree:!0})}get busySessions(){return uW({agent:this,isFree:!1})}};ma.kCurrentStreamsCount=_i;ma.kGracefullyClosing=Yu;AW.exports={Agent:ma,globalAgent:new ma}});var gk=E((Nnt,gW)=>{"use strict";var{Readable:wve}=require("stream"),fW=class extends wve{constructor(e,r){super({highWaterMark:r,autoDestroy:!1});this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};gW.exports=fW});var fk=E((Lnt,hW)=>{"use strict";hW.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var dW=E((Tnt,pW)=>{"use strict";pW.exports=(t,e,r)=>{for(let i of r)t.on(i,(...n)=>e.emit(i,...n))}});var mW=E((Mnt,CW)=>{"use strict";CW.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var IW=E((Knt,EW)=>{"use strict";var qu=(t,e,r)=>{EW.exports[e]=class extends t{constructor(...n){super(typeof r=="string"?r:r(n));this.name=`${super.name} [${e}]`,this.code=e}}};qu(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],i=Array.isArray(r);return i&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${i?"one of":"of"} type ${r}. Received ${typeof t[2]}`});qu(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);qu(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);qu(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);qu(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);qu(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var Ck=E((Unt,yW)=>{"use strict";var Bve=require("http2"),{Writable:Qve}=require("stream"),{Agent:wW,globalAgent:bve}=uk(),vve=gk(),Sve=fk(),xve=dW(),kve=mW(),{ERR_INVALID_ARG_TYPE:hk,ERR_INVALID_PROTOCOL:Pve,ERR_HTTP_HEADERS_SENT:BW,ERR_INVALID_HTTP_TOKEN:Dve,ERR_HTTP_INVALID_HEADER_VALUE:Rve,ERR_INVALID_CHAR:Fve}=IW(),{HTTP2_HEADER_STATUS:QW,HTTP2_HEADER_METHOD:bW,HTTP2_HEADER_PATH:vW,HTTP2_METHOD_CONNECT:Nve}=Bve.constants,Pi=Symbol("headers"),pk=Symbol("origin"),dk=Symbol("session"),SW=Symbol("options"),My=Symbol("flushedHeaders"),yp=Symbol("jobs"),Lve=/^[\^`\-\w!#$%&*+.|~]+$/,Tve=/[^\t\u0020-\u007E\u0080-\u00FF]/,xW=class extends Qve{constructor(e,r,i){super({autoDestroy:!1});let n=typeof e=="string"||e instanceof URL;if(n&&(e=Sve(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(i=r,r=n?e:P({},e)):r=P(P({},e),r),r.h2session)this[dk]=r.h2session;else if(r.agent===!1)this.agent=new wW({maxFreeSessions:0});else if(typeof r.agent=="undefined"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new wW({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=bve;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new hk("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new Pve(r.protocol,"https:");let s=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,o=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:a}=r;if(r.timeout=void 0,this[Pi]=Object.create(null),this[yp]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[l,c]of Object.entries(r.headers))this.setHeader(l,c);r.auth&&!("authorization"in this[Pi])&&(this[Pi].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[SW]=r,s===443?(this[pk]=`https://${o}`,":authority"in this[Pi]||(this[Pi][":authority"]=o)):(this[pk]=`https://${o}:${s}`,":authority"in this[Pi]||(this[Pi][":authority"]=`${o}:${s}`)),a&&this.setTimeout(a),i&&this.once("response",i),this[My]=!1}get method(){return this[Pi][bW]}set method(e){e&&(this[Pi][bW]=e.toUpperCase())}get path(){return this[Pi][vW]}set path(e){e&&(this[Pi][vW]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,i){if(this._mustNotHaveABody){i(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let n=()=>this._request.write(e,r,i);this._request?n():this[yp].push(n)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[yp].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[My]||this.destroyed)return;this[My]=!0;let e=this.method===Nve,r=i=>{if(this._request=i,this.destroyed){i.destroy();return}e||xve(i,this,["timeout","continue","close","error"]);let n=o=>(...a)=>{!this.writable&&!this.destroyed?o(...a):this.once("finish",()=>{o(...a)})};i.once("response",n((o,a,l)=>{let c=new vve(this.socket,i.readableHighWaterMark);this.res=c,c.req=this,c.statusCode=o[QW],c.headers=o,c.rawHeaders=l,c.once("end",()=>{this.aborted?(c.aborted=!0,c.emit("aborted")):(c.complete=!0,c.socket=null,c.connection=null)}),e?(c.upgrade=!0,this.emit("connect",c,i,Buffer.alloc(0))?this.emit("close"):i.destroy()):(i.on("data",u=>{!c._dumped&&!c.push(u)&&i.pause()}),i.once("end",()=>{c.push(null)}),this.emit("response",c)||c._dump())})),i.once("headers",n(o=>this.emit("information",{statusCode:o[QW]}))),i.once("trailers",n((o,a,l)=>{let{res:c}=this;c.trailers=o,c.rawTrailers=l}));let{socket:s}=i.session;this.socket=s,this.connection=s;for(let o of this[yp])o();this.emit("socket",this.socket)};if(this[dk])try{r(this[dk].request(this[Pi]))}catch(i){this.emit("error",i)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[pk],this[SW],this[Pi]))}catch(i){this.emit("error",i)}}}getHeader(e){if(typeof e!="string")throw new hk("name","string",e);return this[Pi][e.toLowerCase()]}get headersSent(){return this[My]}removeHeader(e){if(typeof e!="string")throw new hk("name","string",e);if(this.headersSent)throw new BW("remove");delete this[Pi][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new BW("set");if(typeof e!="string"||!Lve.test(e)&&!kve(e))throw new Dve("Header name",e);if(typeof r=="undefined")throw new Rve(r,e);if(Tve.test(r))throw new Fve("header content",e);this[Pi][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let i=()=>this._request.setTimeout(e,r);return this._request?i():this[yp].push(i),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};yW.exports=xW});var PW=E((Hnt,kW)=>{"use strict";var Mve=require("tls");kW.exports=(t={})=>new Promise((e,r)=>{let i=Mve.connect(t,()=>{t.resolveSocket?(i.off("error",r),e({alpnProtocol:i.alpnProtocol,socket:i})):(i.destroy(),e({alpnProtocol:i.alpnProtocol}))});i.on("error",r)})});var RW=E((Gnt,DW)=>{"use strict";var Ove=require("net");DW.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),Ove.isIP(e)?"":e}});var LW=E((jnt,mk)=>{"use strict";var FW=require("http"),Ek=require("https"),Kve=PW(),Uve=lk(),Hve=Ck(),Gve=RW(),jve=fk(),Oy=new Uve({maxSize:100}),wp=new Map,NW=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let i=()=>{t.emit("free",e,r)};e.on("free",i);let n=()=>{t.removeSocket(e,r)};e.on("close",n);let s=()=>{t.removeSocket(e,r),e.off("close",n),e.off("free",i),e.off("agentRemove",s)};e.on("agentRemove",s),t.emit("free",e,r)},Yve=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!Oy.has(e)){if(wp.has(e))return(await wp.get(e)).alpnProtocol;let{path:r,agent:i}=t;t.path=t.socketPath;let n=Kve(t);wp.set(e,n);try{let{socket:s,alpnProtocol:o}=await n;if(Oy.set(e,o),t.path=r,o==="h2")s.destroy();else{let{globalAgent:a}=Ek,l=Ek.Agent.prototype.createConnection;i?i.createConnection===l?NW(i,s,t):s.destroy():a.createConnection===l?NW(a,s,t):s.destroy()}return wp.delete(e),o}catch(s){throw wp.delete(e),s}}return Oy.get(e)};mk.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=jve(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e=_(P(P({ALPNProtocols:["h2","http/1.1"]},t),e),{resolveSocket:!0}),!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let i=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||Gve(e),e.port=e.port||(i?443:80),e._defaultAgent=i?Ek.globalAgent:FW.globalAgent;let n=e.agent;if(n){if(n.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=n[i?"https":"http"]}return i&&await Yve(e)==="h2"?(n&&(e.agent=n.http2),new Hve(e,r)):FW.request(e,r)};mk.exports.protocolCache=Oy});var MW=E((Ynt,TW)=>{"use strict";var qve=require("http2"),Jve=uk(),Ik=Ck(),Wve=gk(),zve=LW(),Vve=(t,e,r)=>new Ik(t,e,r),_ve=(t,e,r)=>{let i=new Ik(t,e,r);return i.end(),i};TW.exports=_(P(_(P({},qve),{ClientRequest:Ik,IncomingMessage:Wve}),Jve),{request:Vve,get:_ve,auto:zve})});var wk=E(yk=>{"use strict";Object.defineProperty(yk,"__esModule",{value:!0});var OW=Ca();yk.default=t=>OW.default.nodeStream(t)&&OW.default.function_(t.getBoundary)});var GW=E(Bk=>{"use strict";Object.defineProperty(Bk,"__esModule",{value:!0});var KW=require("fs"),UW=require("util"),HW=Ca(),Xve=wk(),Zve=UW.promisify(KW.stat);Bk.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(HW.default.string(t))return Buffer.byteLength(t);if(HW.default.buffer(t))return t.length;if(Xve.default(t))return UW.promisify(t.getLength.bind(t))();if(t instanceof KW.ReadStream){let{size:r}=await Zve(t.path);return r===0?void 0:r}}});var bk=E(Qk=>{"use strict";Object.defineProperty(Qk,"__esModule",{value:!0});function $ve(t,e,r){let i={};for(let n of r)i[n]=(...s)=>{e.emit(n,...s)},t.on(n,i[n]);return()=>{for(let n of r)t.off(n,i[n])}}Qk.default=$ve});var jW=E(vk=>{"use strict";Object.defineProperty(vk,"__esModule",{value:!0});vk.default=()=>{let t=[];return{once(e,r,i){e.once(r,i),t.push({origin:e,event:r,fn:i})},unhandleAll(){for(let e of t){let{origin:r,event:i,fn:n}=e;r.removeListener(i,n)}t.length=0}}}});var qW=E(Bp=>{"use strict";Object.defineProperty(Bp,"__esModule",{value:!0});Bp.TimeoutError=void 0;var eSe=require("net"),tSe=jW(),YW=Symbol("reentry"),rSe=()=>{},Sk=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`);this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};Bp.TimeoutError=Sk;Bp.default=(t,e,r)=>{if(YW in t)return rSe;t[YW]=!0;let i=[],{once:n,unhandleAll:s}=tSe.default(),o=(g,f,h)=>{var p;let d=setTimeout(f,g,g,h);(p=d.unref)===null||p===void 0||p.call(d);let m=()=>{clearTimeout(d)};return i.push(m),m},{host:a,hostname:l}=r,c=(g,f)=>{t.destroy(new Sk(g,f))},u=()=>{for(let g of i)g();s()};if(t.once("error",g=>{if(u(),t.listenerCount("error")===0)throw g}),t.once("close",u),n(t,"response",g=>{n(g,"end",u)}),typeof e.request!="undefined"&&o(e.request,c,"request"),typeof e.socket!="undefined"){let g=()=>{c(e.socket,"socket")};t.setTimeout(e.socket,g),i.push(()=>{t.removeListener("timeout",g)})}return n(t,"socket",g=>{var f;let{socketPath:h}=t;if(g.connecting){let p=Boolean(h!=null?h:eSe.isIP((f=l!=null?l:a)!==null&&f!==void 0?f:"")!==0);if(typeof e.lookup!="undefined"&&!p&&typeof g.address().address=="undefined"){let d=o(e.lookup,c,"lookup");n(g,"lookup",d)}if(typeof e.connect!="undefined"){let d=()=>o(e.connect,c,"connect");p?n(g,"connect",d()):n(g,"lookup",m=>{m===null&&n(g,"connect",d())})}typeof e.secureConnect!="undefined"&&r.protocol==="https:"&&n(g,"connect",()=>{let d=o(e.secureConnect,c,"secureConnect");n(g,"secureConnect",d)})}if(typeof e.send!="undefined"){let p=()=>o(e.send,c,"send");g.connecting?n(g,"connect",()=>{n(t,"upload-complete",p())}):n(t,"upload-complete",p())}}),typeof e.response!="undefined"&&n(t,"upload-complete",()=>{let g=o(e.response,c,"response");n(t,"response",g)}),u}});var WW=E(xk=>{"use strict";Object.defineProperty(xk,"__esModule",{value:!0});var JW=Ca();xk.default=t=>{t=t;let e={protocol:t.protocol,hostname:JW.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return JW.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var zW=E(kk=>{"use strict";Object.defineProperty(kk,"__esModule",{value:!0});var iSe=require("url"),nSe=["protocol","host","hostname","port","pathname","search"];kk.default=(t,e)=>{var r,i;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(i=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&i!==void 0?i:""}`}let n=new iSe.URL(t);if(e.path){let s=e.path.indexOf("?");s===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,s),e.search=e.path.slice(s+1)),delete e.path}for(let s of nSe)e[s]&&(n[s]=e[s].toString());return n}});var _W=E(Pk=>{"use strict";Object.defineProperty(Pk,"__esModule",{value:!0});var VW=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};Pk.default=VW});var Rk=E(Dk=>{"use strict";Object.defineProperty(Dk,"__esModule",{value:!0});var sSe=async t=>{let e=[],r=0;for await(let i of t)e.push(i),r+=Buffer.byteLength(i);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};Dk.default=sSe});var ZW=E(ql=>{"use strict";Object.defineProperty(ql,"__esModule",{value:!0});ql.dnsLookupIpVersionToFamily=ql.isDnsLookupIpVersion=void 0;var XW={auto:0,ipv4:4,ipv6:6};ql.isDnsLookupIpVersion=t=>t in XW;ql.dnsLookupIpVersionToFamily=t=>{if(ql.isDnsLookupIpVersion(t))return XW[t];throw new Error("Invalid DNS lookup IP version")}});var Fk=E(Ky=>{"use strict";Object.defineProperty(Ky,"__esModule",{value:!0});Ky.isResponseOk=void 0;Ky.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var e8=E(Nk=>{"use strict";Object.defineProperty(Nk,"__esModule",{value:!0});var $W=new Set;Nk.default=t=>{$W.has(t)||($W.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var t8=E(Lk=>{"use strict";Object.defineProperty(Lk,"__esModule",{value:!0});var ar=Ca(),oSe=(t,e)=>{if(ar.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");ar.assert.any([ar.default.string,ar.default.undefined],t.encoding),ar.assert.any([ar.default.boolean,ar.default.undefined],t.resolveBodyOnly),ar.assert.any([ar.default.boolean,ar.default.undefined],t.methodRewriting),ar.assert.any([ar.default.boolean,ar.default.undefined],t.isStream),ar.assert.any([ar.default.string,ar.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry=P({},e.retry):t.retry={calculateDelay:i=>i.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},ar.default.object(r)?(t.retry=P(P({},t.retry),r),t.retry.methods=[...new Set(t.retry.methods.map(i=>i.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):ar.default.number(r)&&(t.retry.limit=r),ar.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(ar.default.number))),ar.default.object(t.pagination)){e&&(t.pagination=P(P({},e.pagination),t.pagination));let{pagination:i}=t;if(!ar.default.function_(i.transform))throw new Error("`options.pagination.transform` must be implemented");if(!ar.default.function_(i.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!ar.default.function_(i.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!ar.default.function_(i.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};Lk.default=oSe});var r8=E(Qp=>{"use strict";Object.defineProperty(Qp,"__esModule",{value:!0});Qp.retryAfterStatusCodes=void 0;Qp.retryAfterStatusCodes=new Set([413,429,503]);var aSe=({attemptCount:t,retryOptions:e,error:r,retryAfter:i})=>{if(t>e.limit)return 0;let n=e.methods.includes(r.options.method),s=e.errorCodes.includes(r.code),o=r.response&&e.statusCodes.includes(r.response.statusCode);if(!n||!s&&!o)return 0;if(r.response){if(i)return e.maxRetryAfter===void 0||i>e.maxRetryAfter?0:i;if(r.response.statusCode===413)return 0}let a=Math.random()*100;return 2**(t-1)*1e3+a};Qp.default=aSe});var vp=E(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});Rt.UnsupportedProtocolError=Rt.ReadError=Rt.TimeoutError=Rt.UploadError=Rt.CacheError=Rt.HTTPError=Rt.MaxRedirectsError=Rt.RequestError=Rt.setNonEnumerableProperties=Rt.knownHookEvents=Rt.withoutBody=Rt.kIsNormalizedAlready=void 0;var i8=require("util"),n8=require("stream"),ASe=require("fs"),dA=require("url"),s8=require("http"),Tk=require("http"),lSe=require("https"),cSe=h3(),uSe=y3(),o8=tW(),gSe=sW(),fSe=MW(),hSe=Ly(),ce=Ca(),pSe=GW(),a8=wk(),dSe=bk(),A8=qW(),CSe=WW(),l8=zW(),mSe=_W(),ESe=Rk(),c8=ZW(),ISe=Fk(),CA=e8(),ySe=t8(),wSe=r8(),Mk,Ei=Symbol("request"),Uy=Symbol("response"),Ju=Symbol("responseSize"),Wu=Symbol("downloadedSize"),zu=Symbol("bodySize"),Vu=Symbol("uploadedSize"),Hy=Symbol("serverResponsesPiped"),u8=Symbol("unproxyEvents"),g8=Symbol("isFromCache"),Ok=Symbol("cancelTimeouts"),f8=Symbol("startedReading"),_u=Symbol("stopReading"),Gy=Symbol("triggerRead"),mA=Symbol("body"),bp=Symbol("jobs"),h8=Symbol("originalResponse"),p8=Symbol("retryTimeout");Rt.kIsNormalizedAlready=Symbol("isNormalizedAlready");var BSe=ce.default.string(process.versions.brotli);Rt.withoutBody=new Set(["GET","HEAD"]);Rt.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function QSe(t){for(let e in t){let r=t[e];if(!ce.default.string(r)&&!ce.default.number(r)&&!ce.default.boolean(r)&&!ce.default.null_(r)&&!ce.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function bSe(t){return ce.default.object(t)&&!("statusCode"in t)}var Kk=new mSe.default,vSe=async t=>new Promise((e,r)=>{let i=n=>{r(n)};t.pending||e(),t.once("error",i),t.once("ready",()=>{t.off("error",i),e()})}),SSe=new Set([300,301,302,303,304,307,308]),xSe=["context","body","json","form"];Rt.setNonEnumerableProperties=(t,e)=>{let r={};for(let i of t)if(!!i)for(let n of xSe)n in i&&(r[n]={writable:!0,configurable:!0,enumerable:!1,value:i[n]});Object.defineProperties(e,r)};var _r=class extends Error{constructor(e,r,i){var n;super(e);if(Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,i instanceof Uk?(Object.defineProperty(this,"request",{enumerable:!1,value:i}),Object.defineProperty(this,"response",{enumerable:!1,value:i[Uy]}),Object.defineProperty(this,"options",{enumerable:!1,value:i.options})):Object.defineProperty(this,"options",{enumerable:!1,value:i}),this.timings=(n=this.request)===null||n===void 0?void 0:n.timings,ce.default.string(r.stack)&&ce.default.string(this.stack)){let s=this.stack.indexOf(this.message)+this.message.length,o=this.stack.slice(s).split(` -`).reverse(),a=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` -`).reverse();for(;a.length!==0&&a[0]===o[0];)o.shift();this.stack=`${this.stack.slice(0,s)}${o.reverse().join(` -`)}${a.reverse().join(` -`)}`}}};Rt.RequestError=_r;var Hk=class extends _r{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e);this.name="MaxRedirectsError"}};Rt.MaxRedirectsError=Hk;var Gk=class extends _r{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request);this.name="HTTPError"}};Rt.HTTPError=Gk;var jk=class extends _r{constructor(e,r){super(e.message,e,r);this.name="CacheError"}};Rt.CacheError=jk;var Yk=class extends _r{constructor(e,r){super(e.message,e,r);this.name="UploadError"}};Rt.UploadError=Yk;var qk=class extends _r{constructor(e,r,i){super(e.message,e,i);this.name="TimeoutError",this.event=e.event,this.timings=r}};Rt.TimeoutError=qk;var jy=class extends _r{constructor(e,r){super(e.message,e,r);this.name="ReadError"}};Rt.ReadError=jy;var Jk=class extends _r{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e);this.name="UnsupportedProtocolError"}};Rt.UnsupportedProtocolError=Jk;var kSe=["socket","connect","continue","information","upgrade","timeout"],Uk=class extends n8.Duplex{constructor(e,r={},i){super({autoDestroy:!1,highWaterMark:0});this[Wu]=0,this[Vu]=0,this.requestInitialized=!1,this[Hy]=new Set,this.redirects=[],this[_u]=!1,this[Gy]=!1,this[bp]=[],this.retryCount=0,this._progressCallbacks=[];let n=()=>this._unlockWrite(),s=()=>this._lockWrite();this.on("pipe",c=>{c.prependListener("data",n),c.on("data",s),c.prependListener("end",n),c.on("end",s)}),this.on("unpipe",c=>{c.off("data",n),c.off("data",s),c.off("end",n),c.off("end",s)}),this.on("pipe",c=>{c instanceof Tk.IncomingMessage&&(this.options.headers=P(P({},c.headers),this.options.headers))});let{json:o,body:a,form:l}=r;if((o||a||l)&&this._lockWrite(),Rt.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,i)}catch(c){ce.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(c);return}(async()=>{var c;try{this.options.body instanceof ASe.ReadStream&&await vSe(this.options.body);let{url:u}=this.options;if(!u)throw new TypeError("Missing `url` property");if(this.requestUrl=u.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(c=this[Ei])===null||c===void 0||c.destroy();return}for(let g of this[bp])g();this[bp].length=0,this.requestInitialized=!0}catch(u){if(u instanceof _r){this._beforeError(u);return}this.destroyed||this.destroy(u)}})()}static normalizeArguments(e,r,i){var n,s,o,a,l;let c=r;if(ce.default.object(e)&&!ce.default.urlInstance(e))r=P(P(P({},i),e),r);else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r=P(P({},i),r),e!==void 0&&(r.url=e),ce.default.urlInstance(r.url)&&(r.url=new dA.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),ce.assert.any([ce.default.string,ce.default.undefined],r.method),ce.assert.any([ce.default.object,ce.default.undefined],r.headers),ce.assert.any([ce.default.string,ce.default.urlInstance,ce.default.undefined],r.prefixUrl),ce.assert.any([ce.default.object,ce.default.undefined],r.cookieJar),ce.assert.any([ce.default.object,ce.default.string,ce.default.undefined],r.searchParams),ce.assert.any([ce.default.object,ce.default.string,ce.default.undefined],r.cache),ce.assert.any([ce.default.object,ce.default.number,ce.default.undefined],r.timeout),ce.assert.any([ce.default.object,ce.default.undefined],r.context),ce.assert.any([ce.default.object,ce.default.undefined],r.hooks),ce.assert.any([ce.default.boolean,ce.default.undefined],r.decompress),ce.assert.any([ce.default.boolean,ce.default.undefined],r.ignoreInvalidCookies),ce.assert.any([ce.default.boolean,ce.default.undefined],r.followRedirect),ce.assert.any([ce.default.number,ce.default.undefined],r.maxRedirects),ce.assert.any([ce.default.boolean,ce.default.undefined],r.throwHttpErrors),ce.assert.any([ce.default.boolean,ce.default.undefined],r.http2),ce.assert.any([ce.default.boolean,ce.default.undefined],r.allowGetBody),ce.assert.any([ce.default.string,ce.default.undefined],r.localAddress),ce.assert.any([c8.isDnsLookupIpVersion,ce.default.undefined],r.dnsLookupIpVersion),ce.assert.any([ce.default.object,ce.default.undefined],r.https),ce.assert.any([ce.default.boolean,ce.default.undefined],r.rejectUnauthorized),r.https&&(ce.assert.any([ce.default.boolean,ce.default.undefined],r.https.rejectUnauthorized),ce.assert.any([ce.default.function_,ce.default.undefined],r.https.checkServerIdentity),ce.assert.any([ce.default.string,ce.default.object,ce.default.array,ce.default.undefined],r.https.certificateAuthority),ce.assert.any([ce.default.string,ce.default.object,ce.default.array,ce.default.undefined],r.https.key),ce.assert.any([ce.default.string,ce.default.object,ce.default.array,ce.default.undefined],r.https.certificate),ce.assert.any([ce.default.string,ce.default.undefined],r.https.passphrase),ce.assert.any([ce.default.string,ce.default.buffer,ce.default.array,ce.default.undefined],r.https.pfx)),ce.assert.any([ce.default.object,ce.default.undefined],r.cacheOptions),ce.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===(i==null?void 0:i.headers)?r.headers=P({},r.headers):r.headers=hSe(P(P({},i==null?void 0:i.headers),r.headers)),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==(i==null?void 0:i.searchParams)){let h;if(ce.default.string(r.searchParams)||r.searchParams instanceof dA.URLSearchParams)h=new dA.URLSearchParams(r.searchParams);else{QSe(r.searchParams),h=new dA.URLSearchParams;for(let p in r.searchParams){let d=r.searchParams[p];d===null?h.append(p,""):d!==void 0&&h.append(p,d)}}(n=i==null?void 0:i.searchParams)===null||n===void 0||n.forEach((p,d)=>{h.has(d)||h.append(d,p)}),r.searchParams=h}if(r.username=(s=r.username)!==null&&s!==void 0?s:"",r.password=(o=r.password)!==null&&o!==void 0?o:"",ce.default.undefined(r.prefixUrl)?r.prefixUrl=(a=i==null?void 0:i.prefixUrl)!==null&&a!==void 0?a:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),ce.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=l8.default(r.prefixUrl+r.url,r)}else(ce.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=l8.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:h}=r;Object.defineProperty(r,"prefixUrl",{set:d=>{let m=r.url;if(!m.href.startsWith(d))throw new Error(`Cannot change \`prefixUrl\` from ${h} to ${d}: ${m.href}`);r.url=new dA.URL(d+m.href.slice(h.length)),h=d},get:()=>h});let{protocol:p}=r.url;if(p==="unix:"&&(p="http:",r.url=new dA.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),p!=="http:"&&p!=="https:")throw new Jk(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:u}=r;if(u){let{setCookie:h,getCookieString:p}=u;ce.assert.function_(h),ce.assert.function_(p),h.length===4&&p.length===0&&(h=i8.promisify(h.bind(r.cookieJar)),p=i8.promisify(p.bind(r.cookieJar)),r.cookieJar={setCookie:h,getCookieString:p})}let{cache:g}=r;if(g&&(Kk.has(g)||Kk.set(g,new o8((h,p)=>{let d=h[Ei](h,p);return ce.default.promise(d)&&(d.once=(m,I)=>{if(m==="error")d.catch(I);else if(m==="abort")(async()=>{try{(await d).once("abort",I)}catch(B){}})();else throw new Error(`Unknown HTTP2 promise event: ${m}`);return d}),d},g))),r.cacheOptions=P({},r.cacheOptions),r.dnsCache===!0)Mk||(Mk=new uSe.default),r.dnsCache=Mk;else if(!ce.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${ce.default(r.dnsCache)}`);ce.default.number(r.timeout)?r.timeout={request:r.timeout}:i&&r.timeout!==i.timeout?r.timeout=P(P({},i.timeout),r.timeout):r.timeout=P({},r.timeout),r.context||(r.context={});let f=r.hooks===(i==null?void 0:i.hooks);r.hooks=P({},r.hooks);for(let h of Rt.knownHookEvents)if(h in r.hooks)if(ce.default.array(r.hooks[h]))r.hooks[h]=[...r.hooks[h]];else throw new TypeError(`Parameter \`${h}\` must be an Array, got ${ce.default(r.hooks[h])}`);else r.hooks[h]=[];if(i&&!f)for(let h of Rt.knownHookEvents)i.hooks[h].length>0&&(r.hooks[h]=[...i.hooks[h],...r.hooks[h]]);if("family"in r&&CA.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),(i==null?void 0:i.https)&&(r.https=P(P({},i.https),r.https)),"rejectUnauthorized"in r&&CA.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&CA.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&CA.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&CA.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&CA.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&CA.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&CA.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let h in r.agent)if(h!=="http"&&h!=="https"&&h!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${h}\``)}return r.maxRedirects=(l=r.maxRedirects)!==null&&l!==void 0?l:0,Rt.setNonEnumerableProperties([i,c],r),ySe.default(r,i)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,i=!ce.default.undefined(e.form),n=!ce.default.undefined(e.json),s=!ce.default.undefined(e.body),o=i||n||s,a=Rt.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=a,o){if(a)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([s,i,n].filter(l=>l).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(s&&!(e.body instanceof n8.Readable)&&!ce.default.string(e.body)&&!ce.default.buffer(e.body)&&!a8.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(i&&!ce.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let l=!ce.default.string(r["content-type"]);s?(a8.default(e.body)&&l&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[mA]=e.body):i?(l&&(r["content-type"]="application/x-www-form-urlencoded"),this[mA]=new dA.URLSearchParams(e.form).toString()):(l&&(r["content-type"]="application/json"),this[mA]=e.stringifyJson(e.json));let c=await pSe.default(this[mA],e.headers);ce.default.undefined(r["content-length"])&&ce.default.undefined(r["transfer-encoding"])&&!a&&!ce.default.undefined(c)&&(r["content-length"]=String(c))}}else a?this._lockWrite():this._unlockWrite();this[zu]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:i}=r;this[h8]=e,r.decompress&&(e=gSe(e));let n=e.statusCode,s=e;s.statusMessage=s.statusMessage?s.statusMessage:s8.STATUS_CODES[n],s.url=r.url.toString(),s.requestUrl=this.requestUrl,s.redirectUrls=this.redirects,s.request=this,s.isFromCache=e.fromCache||!1,s.ip=this.ip,s.retryCount=this.retryCount,this[g8]=s.isFromCache,this[Ju]=Number(e.headers["content-length"])||void 0,this[Uy]=e,e.once("end",()=>{this[Ju]=this[Wu],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",a=>{e.destroy(),this._beforeError(new jy(a,this))}),e.once("aborted",()=>{this._beforeError(new jy({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let o=e.headers["set-cookie"];if(ce.default.object(r.cookieJar)&&o){let a=o.map(async l=>r.cookieJar.setCookie(l,i.toString()));r.ignoreInvalidCookies&&(a=a.map(async l=>l.catch(()=>{})));try{await Promise.all(a)}catch(l){this._beforeError(l);return}}if(r.followRedirect&&e.headers.location&&SSe.has(n)){if(e.resume(),this[Ei]&&(this[Ok](),delete this[Ei],this[u8]()),(n===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[mA]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new Hk(this));return}try{let l=Buffer.from(e.headers.location,"binary").toString(),c=new dA.URL(l,i),u=c.toString();decodeURI(u),c.hostname!==i.hostname||c.port!==i.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(c.username=r.username,c.password=r.password),this.redirects.push(u),r.url=c;for(let g of r.hooks.beforeRedirect)await g(r,s);this.emit("redirect",s,r),await this._makeRequest()}catch(l){this._beforeError(l);return}return}if(r.isStream&&r.throwHttpErrors&&!ISe.isResponseOk(s)){this._beforeError(new Gk(s));return}e.on("readable",()=>{this[Gy]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let a of this[Hy])if(!a.headersSent){for(let l in e.headers){let c=r.decompress?l!=="content-encoding":!0,u=e.headers[l];c&&a.setHeader(l,u)}a.statusCode=n}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:i,url:n}=r;cSe.default(e),this[Ok]=A8.default(e,i,n);let s=r.cache?"cacheableResponse":"response";e.once(s,l=>{this._onResponse(l)}),e.once("error",l=>{var c;e.destroy(),(c=e.res)===null||c===void 0||c.removeAllListeners("end"),l=l instanceof A8.TimeoutError?new qk(l,this.timings,this):new _r(l.message,l,this),this._beforeError(l)}),this[u8]=dSe.default(e,this,kSe),this[Ei]=e,this.emit("uploadProgress",this.uploadProgress);let o=this[mA],a=this.redirects.length===0?this:e;ce.default.nodeStream(o)?(o.pipe(a),o.once("error",l=>{this._beforeError(new Yk(l,this))})):(this._unlockWrite(),ce.default.undefined(o)?(this._cannotHaveBody||this._noPipe)&&(a.end(),this._lockWrite()):(this._writeRequest(o,void 0,()=>{}),a.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((i,n)=>{Object.assign(r,CSe.default(e)),delete r.url;let s,o=Kk.get(r.cache)(r,async a=>{a._readableState.autoDestroy=!1,s&&(await s).emit("cacheableResponse",a),i(a)});r.url=e,o.once("error",n),o.once("request",async a=>{s=a,i(s)})})}async _makeRequest(){var e,r,i,n,s;let{options:o}=this,{headers:a}=o;for(let I in a)if(ce.default.undefined(a[I]))delete a[I];else if(ce.default.null_(a[I]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${I}\` header`);if(o.decompress&&ce.default.undefined(a["accept-encoding"])&&(a["accept-encoding"]=BSe?"gzip, deflate, br":"gzip, deflate"),o.cookieJar){let I=await o.cookieJar.getCookieString(o.url.toString());ce.default.nonEmptyString(I)&&(o.headers.cookie=I)}for(let I of o.hooks.beforeRequest){let B=await I(o);if(!ce.default.undefined(B)){o.request=()=>B;break}}o.body&&this[mA]!==o.body&&(this[mA]=o.body);let{agent:l,request:c,timeout:u,url:g}=o;if(o.dnsCache&&!("lookup"in o)&&(o.lookup=o.dnsCache.lookup),g.hostname==="unix"){let I=/(?.+?):(?.+)/.exec(`${g.pathname}${g.search}`);if(I==null?void 0:I.groups){let{socketPath:B,path:b}=I.groups;Object.assign(o,{socketPath:B,path:b,host:""})}}let f=g.protocol==="https:",h;o.http2?h=fSe.auto:h=f?lSe.request:s8.request;let p=(e=o.request)!==null&&e!==void 0?e:h,d=o.cache?this._createCacheableRequest:p;l&&!o.http2&&(o.agent=l[f?"https":"http"]),o[Ei]=p,delete o.request,delete o.timeout;let m=o;if(m.shared=(r=o.cacheOptions)===null||r===void 0?void 0:r.shared,m.cacheHeuristic=(i=o.cacheOptions)===null||i===void 0?void 0:i.cacheHeuristic,m.immutableMinTimeToLive=(n=o.cacheOptions)===null||n===void 0?void 0:n.immutableMinTimeToLive,m.ignoreCargoCult=(s=o.cacheOptions)===null||s===void 0?void 0:s.ignoreCargoCult,o.dnsLookupIpVersion!==void 0)try{m.family=c8.dnsLookupIpVersionToFamily(o.dnsLookupIpVersion)}catch(I){throw new Error("Invalid `dnsLookupIpVersion` option value")}o.https&&("rejectUnauthorized"in o.https&&(m.rejectUnauthorized=o.https.rejectUnauthorized),o.https.checkServerIdentity&&(m.checkServerIdentity=o.https.checkServerIdentity),o.https.certificateAuthority&&(m.ca=o.https.certificateAuthority),o.https.certificate&&(m.cert=o.https.certificate),o.https.key&&(m.key=o.https.key),o.https.passphrase&&(m.passphrase=o.https.passphrase),o.https.pfx&&(m.pfx=o.https.pfx));try{let I=await d(g,m);ce.default.undefined(I)&&(I=h(g,m)),o.request=c,o.timeout=u,o.agent=l,o.https&&("rejectUnauthorized"in o.https&&delete m.rejectUnauthorized,o.https.checkServerIdentity&&delete m.checkServerIdentity,o.https.certificateAuthority&&delete m.ca,o.https.certificate&&delete m.cert,o.https.key&&delete m.key,o.https.passphrase&&delete m.passphrase,o.https.pfx&&delete m.pfx),bSe(I)?this._onRequest(I):this.writable?(this.once("finish",()=>{this._onResponse(I)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(I)}catch(I){throw I instanceof o8.CacheError?new jk(I,this):new _r(I.message,I,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new _r(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[_u])return;let{options:r}=this,i=this.retryCount+1;this[_u]=!0,e instanceof _r||(e=new _r(e.message,e,this));let n=e,{response:s}=n;(async()=>{if(s&&!s.body){s.setEncoding(this._readableState.encoding);try{s.rawBody=await ESe.default(s),s.body=s.rawBody.toString()}catch(o){}}if(this.listenerCount("retry")!==0){let o;try{let a;s&&"retry-after"in s.headers&&(a=Number(s.headers["retry-after"]),Number.isNaN(a)?(a=Date.parse(s.headers["retry-after"])-Date.now(),a<=0&&(a=1)):a*=1e3),o=await r.retry.calculateDelay({attemptCount:i,retryOptions:r.retry,error:n,retryAfter:a,computedValue:wSe.default({attemptCount:i,retryOptions:r.retry,error:n,retryAfter:a,computedValue:0})})}catch(a){this._error(new _r(a.message,a,this));return}if(o){let a=async()=>{try{for(let l of this.options.hooks.beforeRetry)await l(this.options,n,i)}catch(l){this._error(new _r(l.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",i,e))};this[p8]=setTimeout(a,o);return}}this._error(n)})()}_read(){this[Gy]=!0;let e=this[Uy];if(e&&!this[_u]){e.readableLength&&(this[Gy]=!1);let r;for(;(r=e.read())!==null;){this[Wu]+=r.length,this[f8]=!0;let i=this.downloadProgress;i.percent<1&&this.emit("downloadProgress",i),this.push(r)}}}_write(e,r,i){let n=()=>{this._writeRequest(e,r,i)};this.requestInitialized?n():this[bp].push(n)}_writeRequest(e,r,i){this[Ei].destroyed||(this._progressCallbacks.push(()=>{this[Vu]+=Buffer.byteLength(e,r);let n=this.uploadProgress;n.percent<1&&this.emit("uploadProgress",n)}),this[Ei].write(e,r,n=>{!n&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),i(n)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Ei in this)){e();return}if(this[Ei].destroyed){e();return}this[Ei].end(i=>{i||(this[zu]=this[Vu],this.emit("uploadProgress",this.uploadProgress),this[Ei].emit("upload-complete")),e(i)})};this.requestInitialized?r():this[bp].push(r)}_destroy(e,r){var i;this[_u]=!0,clearTimeout(this[p8]),Ei in this&&(this[Ok](),((i=this[Uy])===null||i===void 0?void 0:i.complete)||this[Ei].destroy()),e!==null&&!ce.default.undefined(e)&&!(e instanceof _r)&&(e=new _r(e.message,e,this)),r(e)}get _isAboutToError(){return this[_u]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,i;return((r=(e=this[Ei])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!((i=this[h8])===null||i===void 0?void 0:i.complete)}get socket(){var e,r;return(r=(e=this[Ei])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[Ju]?e=this[Wu]/this[Ju]:this[Ju]===this[Wu]?e=1:e=0,{percent:e,transferred:this[Wu],total:this[Ju]}}get uploadProgress(){let e;return this[zu]?e=this[Vu]/this[zu]:this[zu]===this[Vu]?e=1:e=0,{percent:e,transferred:this[Vu],total:this[zu]}}get timings(){var e;return(e=this[Ei])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[g8]}pipe(e,r){if(this[f8])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof Tk.ServerResponse&&this[Hy].add(e),super.pipe(e,r)}unpipe(e){return e instanceof Tk.ServerResponse&&this[Hy].delete(e),super.unpipe(e),this}};Rt.default=Uk});var Sp=E(Ms=>{"use strict";var PSe=Ms&&Ms.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),DSe=Ms&&Ms.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&PSe(e,t,r)};Object.defineProperty(Ms,"__esModule",{value:!0});Ms.CancelError=Ms.ParseError=void 0;var d8=vp(),C8=class extends d8.RequestError{constructor(e,r){let{options:i}=r.request;super(`${e.message} in "${i.url.toString()}"`,e,r.request);this.name="ParseError"}};Ms.ParseError=C8;var m8=class extends d8.RequestError{constructor(e){super("Promise was canceled",{},e);this.name="CancelError"}get isCanceled(){return!0}};Ms.CancelError=m8;DSe(vp(),Ms)});var I8=E(Wk=>{"use strict";Object.defineProperty(Wk,"__esModule",{value:!0});var E8=Sp(),RSe=(t,e,r,i)=>{let{rawBody:n}=t;try{if(e==="text")return n.toString(i);if(e==="json")return n.length===0?"":r(n.toString());if(e==="buffer")return n;throw new E8.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(s){throw new E8.ParseError(s,t)}};Wk.default=RSe});var zk=E(EA=>{"use strict";var FSe=EA&&EA.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),NSe=EA&&EA.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&FSe(e,t,r)};Object.defineProperty(EA,"__esModule",{value:!0});var LSe=require("events"),TSe=Ca(),MSe=g3(),Yy=Sp(),y8=I8(),w8=vp(),OSe=bk(),KSe=Rk(),B8=Fk(),USe=["request","response","redirect","uploadProgress","downloadProgress"];function Q8(t){let e,r,i=new LSe.EventEmitter,n=new MSe((o,a,l)=>{let c=u=>{let g=new w8.default(void 0,t);g.retryCount=u,g._noPipe=!0,l(()=>g.destroy()),l.shouldReject=!1,l(()=>a(new Yy.CancelError(g))),e=g,g.once("response",async p=>{var d;if(p.retryCount=u,p.request.aborted)return;let m;try{m=await KSe.default(g),p.rawBody=m}catch(R){return}if(g._isAboutToError)return;let I=((d=p.headers["content-encoding"])!==null&&d!==void 0?d:"").toLowerCase(),B=["gzip","deflate","br"].includes(I),{options:b}=g;if(B&&!b.decompress)p.body=m;else try{p.body=y8.default(p,b.responseType,b.parseJson,b.encoding)}catch(R){if(p.body=m.toString(),B8.isResponseOk(p)){g._beforeError(R);return}}try{for(let[R,H]of b.hooks.afterResponse.entries())p=await H(p,async L=>{let K=w8.default.normalizeArguments(void 0,_(P({},L),{retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1}),b);K.hooks.afterResponse=K.hooks.afterResponse.slice(0,R);for(let ne of K.hooks.beforeRetry)await ne(K);let J=Q8(K);return l(()=>{J.catch(()=>{}),J.cancel()}),J})}catch(R){g._beforeError(new Yy.RequestError(R.message,R,g));return}if(!B8.isResponseOk(p)){g._beforeError(new Yy.HTTPError(p));return}r=p,o(g.options.resolveBodyOnly?p.body:p)});let f=p=>{if(n.isCanceled)return;let{options:d}=g;if(p instanceof Yy.HTTPError&&!d.throwHttpErrors){let{response:m}=p;o(g.options.resolveBodyOnly?m.body:m);return}a(p)};g.once("error",f);let h=g.options.body;g.once("retry",(p,d)=>{var m,I;if(h===((m=d.request)===null||m===void 0?void 0:m.options.body)&&TSe.default.nodeStream((I=d.request)===null||I===void 0?void 0:I.options.body)){f(d);return}c(p)}),OSe.default(g,i,USe)};c(0)});n.on=(o,a)=>(i.on(o,a),n);let s=o=>{let a=(async()=>{await n;let{options:l}=r.request;return y8.default(r,o,l.parseJson,l.encoding)})();return Object.defineProperties(a,Object.getOwnPropertyDescriptors(n)),a};return n.json=()=>{let{headers:o}=e.options;return!e.writableFinished&&o.accept===void 0&&(o.accept="application/json"),s("json")},n.buffer=()=>s("buffer"),n.text=()=>s("text"),n}EA.default=Q8;NSe(Sp(),EA)});var b8=E(Vk=>{"use strict";Object.defineProperty(Vk,"__esModule",{value:!0});var HSe=Sp();function GSe(t,...e){let r=(async()=>{if(t instanceof HSe.RequestError)try{for(let n of e)if(n)for(let s of n)t=await s(t)}catch(n){t=n}throw t})(),i=()=>r;return r.json=i,r.text=i,r.buffer=i,r.on=i,r}Vk.default=GSe});var x8=E(_k=>{"use strict";Object.defineProperty(_k,"__esModule",{value:!0});var v8=Ca();function S8(t){for(let e of Object.values(t))(v8.default.plainObject(e)||v8.default.array(e))&&S8(e);return Object.freeze(t)}_k.default=S8});var P8=E(k8=>{"use strict";Object.defineProperty(k8,"__esModule",{value:!0})});var Xk=E(ss=>{"use strict";var jSe=ss&&ss.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),YSe=ss&&ss.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&jSe(e,t,r)};Object.defineProperty(ss,"__esModule",{value:!0});ss.defaultHandler=void 0;var D8=Ca(),os=zk(),qSe=b8(),qy=vp(),JSe=x8(),WSe={RequestError:os.RequestError,CacheError:os.CacheError,ReadError:os.ReadError,HTTPError:os.HTTPError,MaxRedirectsError:os.MaxRedirectsError,TimeoutError:os.TimeoutError,ParseError:os.ParseError,CancelError:os.CancelError,UnsupportedProtocolError:os.UnsupportedProtocolError,UploadError:os.UploadError},zSe=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:Jy}=qy.default,R8=(...t)=>{let e;for(let r of t)e=Jy(void 0,r,e);return e},VSe=t=>t.isStream?new qy.default(void 0,t):os.default(t),_Se=t=>"defaults"in t&&"options"in t.defaults,XSe=["get","post","put","patch","head","delete"];ss.defaultHandler=(t,e)=>e(t);var F8=(t,e)=>{if(t)for(let r of t)r(e)},N8=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(i=>(n,s)=>{let o,a=i(n,l=>(o=s(l),o));if(a!==o&&!n.isStream&&o){let l=a,{then:c,catch:u,finally:g}=l;Object.setPrototypeOf(l,Object.getPrototypeOf(o)),Object.defineProperties(l,Object.getOwnPropertyDescriptors(o)),l.then=c,l.catch=u,l.finally=g}return a});let e=(i,n={},s)=>{var o,a;let l=0,c=u=>t.handlers[l++](u,l===t.handlers.length?VSe:c);if(D8.default.plainObject(i)){let u=P(P({},i),n);qy.setNonEnumerableProperties([i,n],u),n=u,i=void 0}try{let u;try{F8(t.options.hooks.init,n),F8((o=n.hooks)===null||o===void 0?void 0:o.init,n)}catch(f){u=f}let g=Jy(i,n,s!=null?s:t.options);if(g[qy.kIsNormalizedAlready]=!0,u)throw new os.RequestError(u.message,u,g);return c(g)}catch(u){if(n.isStream)throw u;return qSe.default(u,t.options.hooks.beforeError,(a=n.hooks)===null||a===void 0?void 0:a.beforeError)}};e.extend=(...i)=>{let n=[t.options],s=[...t._rawHandlers],o;for(let a of i)_Se(a)?(n.push(a.defaults.options),s.push(...a.defaults._rawHandlers),o=a.defaults.mutableDefaults):(n.push(a),"handlers"in a&&s.push(...a.handlers),o=a.mutableDefaults);return s=s.filter(a=>a!==ss.defaultHandler),s.length===0&&s.push(ss.defaultHandler),N8({options:R8(...n),handlers:s,mutableDefaults:Boolean(o)})};let r=async function*(i,n){let s=Jy(i,n,t.options);s.resolveBodyOnly=!1;let o=s.pagination;if(!D8.default.object(o))throw new TypeError("`options.pagination` must be implemented");let a=[],{countLimit:l}=o,c=0;for(;c{let s=[];for await(let o of r(i,n))s.push(o);return s},e.paginate.each=r,e.stream=(i,n)=>e(i,_(P({},n),{isStream:!0}));for(let i of XSe)e[i]=(n,s)=>e(n,_(P({},s),{method:i})),e.stream[i]=(n,s)=>e(n,_(P({},s),{method:i,isStream:!0}));return Object.assign(e,WSe),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:JSe.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=R8,e};ss.default=N8;YSe(P8(),ss)});var zy=E((Ea,Wy)=>{"use strict";var ZSe=Ea&&Ea.__createBinding||(Object.create?function(t,e,r,i){i===void 0&&(i=r),Object.defineProperty(t,i,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,i){i===void 0&&(i=r),t[i]=e[r]}),L8=Ea&&Ea.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&ZSe(e,t,r)};Object.defineProperty(Ea,"__esModule",{value:!0});var $Se=require("url"),T8=Xk(),exe={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let i of e){let n=i.split(";");if(n[1].includes("next")){r=n[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new $Se.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:Infinity,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[T8.defaultHandler],mutableDefaults:!1},Zk=T8.default(exe);Ea.default=Zk;Wy.exports=Zk;Wy.exports.default=Zk;Wy.exports.__esModule=!0;L8(Xk(),Ea);L8(zk(),Ea)});var U8=E(Xu=>{"use strict";var fst=require("net"),txe=require("tls"),$k=require("http"),M8=require("https"),rxe=require("events"),hst=require("assert"),ixe=require("util");Xu.httpOverHttp=nxe;Xu.httpsOverHttp=sxe;Xu.httpOverHttps=oxe;Xu.httpsOverHttps=axe;function nxe(t){var e=new Ia(t);return e.request=$k.request,e}function sxe(t){var e=new Ia(t);return e.request=$k.request,e.createSocket=O8,e.defaultPort=443,e}function oxe(t){var e=new Ia(t);return e.request=M8.request,e}function axe(t){var e=new Ia(t);return e.request=M8.request,e.createSocket=O8,e.defaultPort=443,e}function Ia(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||$k.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(i,n,s,o){for(var a=K8(n,s,o),l=0,c=e.requests.length;l=this.maxSockets){s.requests.push(o);return}s.createSocket(o,function(a){a.on("free",l),a.on("close",c),a.on("agentRemove",c),e.onSocket(a);function l(){s.emit("free",a,o)}function c(u){s.removeSocket(a),a.removeListener("free",l),a.removeListener("close",c),a.removeListener("agentRemove",c)}})};Ia.prototype.createSocket=function(e,r){var i=this,n={};i.sockets.push(n);var s=eP({},i.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(s.localAddress=e.localAddress),s.proxyAuth&&(s.headers=s.headers||{},s.headers["Proxy-Authorization"]="Basic "+new Buffer(s.proxyAuth).toString("base64")),IA("making CONNECT request");var o=i.request(s);o.useChunkedEncodingByDefault=!1,o.once("response",a),o.once("upgrade",l),o.once("connect",c),o.once("error",u),o.end();function a(g){g.upgrade=!0}function l(g,f,h){process.nextTick(function(){c(g,f,h)})}function c(g,f,h){if(o.removeAllListeners(),f.removeAllListeners(),g.statusCode!==200){IA("tunneling socket could not be established, statusCode=%d",g.statusCode),f.destroy();var p=new Error("tunneling socket could not be established, statusCode="+g.statusCode);p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}if(h.length>0){IA("got illegal response body from proxy"),f.destroy();var p=new Error("got illegal response body from proxy");p.code="ECONNRESET",e.request.emit("error",p),i.removeSocket(n);return}return IA("tunneling connection has established"),i.sockets[i.sockets.indexOf(n)]=f,r(f)}function u(g){o.removeAllListeners(),IA(`tunneling socket could not be established, cause=%s -`,g.message,g.stack);var f=new Error("tunneling socket could not be established, cause="+g.message);f.code="ECONNRESET",e.request.emit("error",f),i.removeSocket(n)}};Ia.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var i=this.requests.shift();i&&this.createSocket(i,function(n){i.request.onSocket(n)})}};function O8(t,e){var r=this;Ia.prototype.createSocket.call(r,t,function(i){var n=t.request.getHeader("host"),s=eP({},r.options,{socket:i,servername:n?n.replace(/:.*$/,""):t.host}),o=txe.connect(0,s);r.sockets[r.sockets.indexOf(i)]=o,e(o)})}function K8(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function eP(t){for(var e=1,r=arguments.length;e{H8.exports=U8()});var b4=E((xot,sP)=>{var e4=Object.assign({},require("fs")),oe=typeof oe!="undefined"?oe:{},kp={},wA;for(wA in oe)oe.hasOwnProperty(wA)&&(kp[wA]=oe[wA]);var oP=[],t4="./this.program",r4=function(t,e){throw e},i4=!1,Wl=!0,Pp="";function dxe(t){return oe.locateFile?oe.locateFile(t,Pp):Pp+t}var Xy,aP,Zy,AP;Wl&&(i4?Pp=require("path").dirname(Pp)+"/":Pp=__dirname+"/",Xy=function(e,r){var i=s4(e);return i?r?i:i.toString():(Zy||(Zy=e4),AP||(AP=require("path")),e=AP.normalize(e),Zy.readFileSync(e,r?null:"utf8"))},aP=function(e){var r=Xy(e,!0);return r.buffer||(r=new Uint8Array(r)),n4(r.buffer),r},process.argv.length>1&&(t4=process.argv[1].replace(/\\/g,"/")),oP=process.argv.slice(2),typeof sP!="undefined"&&(sP.exports=oe),r4=function(t){process.exit(t)},oe.inspect=function(){return"[Emscripten Module object]"});var $y=oe.print||console.log.bind(console),Di=oe.printErr||console.warn.bind(console);for(wA in kp)kp.hasOwnProperty(wA)&&(oe[wA]=kp[wA]);kp=null;oe.arguments&&(oP=oe.arguments);oe.thisProgram&&(t4=oe.thisProgram);oe.quit&&(r4=oe.quit);var Cxe=16;function mxe(t,e){return e||(e=Cxe),Math.ceil(t/e)*e}var Exe=0,Ixe=function(t){Exe=t},lP;oe.wasmBinary&&(lP=oe.wasmBinary);var Pst=oe.noExitRuntime||!0;typeof WebAssembly!="object"&&Gr("no native wasm support detected");function yxe(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return Zi[t>>0];case"i8":return Zi[t>>0];case"i16":return cP[t>>1];case"i32":return _e[t>>2];case"i64":return _e[t>>2];case"float":return o4[t>>2];case"double":return a4[t>>3];default:Gr("invalid type for getValue: "+e)}return null}var ew,A4=!1,wxe;function n4(t,e){t||Gr("Assertion failed: "+e)}function l4(t){var e=oe["_"+t];return n4(e,"Cannot call unknown function "+t+", make sure it is exported"),e}function vxe(t,e,r,i,n){var s={string:function(h){var p=0;if(h!=null&&h!==0){var d=(h.length<<2)+1;p=g4(d),u4(h,p,d)}return p},array:function(h){var p=g4(h.length);return Bxe(h,p),p}};function o(h){return e==="string"?c4(h):e==="boolean"?Boolean(h):h}var a=l4(t),l=[],c=0;if(i)for(var u=0;u=i);)++n;if(n-e>16&&t.subarray&&f4)return f4.decode(t.subarray(e,n));for(var s="";e>10,56320|c&1023)}}return s}function c4(t,e){return t?Zu($u,t,e):""}function tw(t,e,r,i){if(!(i>0))return 0;for(var n=r,s=r+i-1,o=0;o=55296&&a<=57343){var l=t.charCodeAt(++o);a=65536+((a&1023)<<10)|l&1023}if(a<=127){if(r>=s)break;e[r++]=a}else if(a<=2047){if(r+1>=s)break;e[r++]=192|a>>6,e[r++]=128|a&63}else if(a<=65535){if(r+2>=s)break;e[r++]=224|a>>12,e[r++]=128|a>>6&63,e[r++]=128|a&63}else{if(r+3>=s)break;e[r++]=240|a>>18,e[r++]=128|a>>12&63,e[r++]=128|a>>6&63,e[r++]=128|a&63}}return e[r]=0,r-n}function u4(t,e,r){return tw(t,$u,e,r)}function rw(t){for(var e=0,r=0;r=55296&&i<=57343&&(i=65536+((i&1023)<<10)|t.charCodeAt(++r)&1023),i<=127?++e:i<=2047?e+=2:i<=65535?e+=3:e+=4}return e}function uP(t){var e=rw(t)+1,r=h4(e);return r&&tw(t,Zi,r,e),r}function Bxe(t,e){Zi.set(t,e)}function xxe(t,e){return t%e>0&&(t+=e-t%e),t}var gP,Zi,$u,cP,kxe,_e,Pxe,o4,a4;function p4(t){gP=t,oe.HEAP8=Zi=new Int8Array(t),oe.HEAP16=cP=new Int16Array(t),oe.HEAP32=_e=new Int32Array(t),oe.HEAPU8=$u=new Uint8Array(t),oe.HEAPU16=kxe=new Uint16Array(t),oe.HEAPU32=Pxe=new Uint32Array(t),oe.HEAPF32=o4=new Float32Array(t),oe.HEAPF64=a4=new Float64Array(t)}var Dst=oe.INITIAL_MEMORY||16777216,fP,d4=[],C4=[],m4=[],Dxe=!1;function Fxe(){if(oe.preRun)for(typeof oe.preRun=="function"&&(oe.preRun=[oe.preRun]);oe.preRun.length;)Rxe(oe.preRun.shift());hP(d4)}function Nxe(){Dxe=!0,!oe.noFSInit&&!y.init.initialized&&y.init(),BA.init(),hP(C4)}function Txe(){if(oe.postRun)for(typeof oe.postRun=="function"&&(oe.postRun=[oe.postRun]);oe.postRun.length;)Lxe(oe.postRun.shift());hP(m4)}function Rxe(t){d4.unshift(t)}function Mxe(t){C4.unshift(t)}function Lxe(t){m4.unshift(t)}var zl=0,pP=null,Dp=null;function Oxe(t){return t}function E4(t){zl++,oe.monitorRunDependencies&&oe.monitorRunDependencies(zl)}function dP(t){if(zl--,oe.monitorRunDependencies&&oe.monitorRunDependencies(zl),zl==0&&(pP!==null&&(clearInterval(pP),pP=null),Dp)){var e=Dp;Dp=null,e()}}oe.preloadedImages={};oe.preloadedAudios={};function Gr(t){oe.onAbort&&oe.onAbort(t),t+="",Di(t),A4=!0,wxe=1,t="abort("+t+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(t);throw e}var I4="data:application/octet-stream;base64,";function y4(t){return t.startsWith(I4)}var Rp="data:application/octet-stream;base64,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AkEEaiEBIAIoAgAiA0F/cyADQYGChAhrcUGAgYKEeHFFDQALIANB/wFxRQRAIAIgAGsPCwNAIAItAAEhAyACQQFqIgEhAiADDQALCyABIABrC2EBAX8jAEEQayICIAA2AgggAiABNwMAAkAgAikDACACKAIIKQMIVgRAIAIoAghBADoAACACQX82AgwMAQsgAigCCEEBOgAAIAIoAgggAikDADcDECACQQA2AgwLIAIoAgwL7wEBAX8jAEEgayICJAAgAiAANgIYIAIgATcDECACIAIoAhhCCBAeNgIMAkAgAigCDEUEQCACQX82AhwMAQsgAigCDCACKQMQQv8BgzwAACACKAIMIAIpAxBCCIhC/wGDPAABIAIoAgwgAikDEEIQiEL/AYM8AAIgAigCDCACKQMQQhiIQv8BgzwAAyACKAIMIAIpAxBCIIhC/wGDPAAEIAIoAgwgAikDEEIoiEL/AYM8AAUgAigCDCACKQMQQjCIQv8BgzwABiACKAIMIAIpAxBCOIhC/wGDPAAHIAJBADYCHAsgAigCHBogAkEgaiQAC4cDAQF/IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNwMYAkAgAygCJC0AKEEBcQRAIANCfzcDKAwBCwJAAkAgAygCJCgCIEUNACADKQMYQv///////////wBWDQAgAykDGFANASADKAIgDQELIAMoAiRBDGpBEkEAEBQgA0J/NwMoDAELIAMoAiQtADVBAXEEQCADQn83AygMAQsCfyMAQRBrIgAgAygCJDYCDCAAKAIMLQA0QQFxCwRAIANCADcDKAwBCyADKQMYUARAIANCADcDKAwBCyADQgA3AxADQCADKQMQIAMpAxhUBEAgAyADKAIkIAMoAiAgAykDEKdqIAMpAxggAykDEH1BARAhIgI3AwggAkIAUwRAIAMoAiRBAToANSADKQMQUARAIANCfzcDKAwECyADIAMpAxA3AygMAwsgAykDCFAEQCADKAIkQQE6ADQFIAMgAykDCCADKQMQfDcDEAwCCwsLIAMgAykDEDcDKAsgAykDKCECIANBMGokACACCzYBAX8jAEEQayIBIAA2AgwCfiABKAIMLQAAQQFxBEAgASgCDCkDCCABKAIMKQMQfQwBC0IACwuyAQIBfwF+IwBBEGsiASQAIAEgADYCBCABIAEoAgRC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AkEBNgIQIAJBADYCCANAAkAgAigCCCACKAIYLwEETw0AAkAgAigCDCACKAIIai0AAEEfSwRAIAIoAgwgAigCCGotAABBgAFJDQELIAIoAgwgAigCCGotAABBDUYNACACKAIMIAIoAghqLQAAQQpGDQAgAigCDCACKAIIai0AAEEJRgRADAELIAJBAzYCEAJAIAIoAgwgAigCCGotAABB4AFxQcABRgRAIAJBATYCAAwBCwJAIAIoAgwgAigCCGotAABB8AFxQeABRgRAIAJBAjYCAAwBCwJAIAIoAgwgAigCCGotAABB+AFxQfABRgRAIAJBAzYCAAwBCyACQQQ2AhAMBAsLCyACKAIYLwEEIAIoAgggAigCAGpNBEAgAkEENgIQDAILIAJBATYCBANAIAIoAgQgAigCAE0EQCACKAIMIAIoAgggAigCBGpqLQAAQcABcUGAAUcEQCACQQQ2AhAMBgUgAiACKAIEQQFqNgIEDAILAAsLIAIgAigCACACKAIIajYCCAsgAiACKAIIQQFqNgIIDAELCwsgAigCGCACKAIQNgIIIAIoAhQEQAJAIAIoAhRBAkcNACACKAIQQQNHDQAgAkECNgIQIAIoAhhBAjYCCAsCQCACKAIUIAIoAhBGDQAgAigCEEEBRg0AIAJBBTYCHAwCCwsgAiACKAIQNgIcCyACKAIcC2oBAX8jAEEQayIBIAA2AgwgASgCDEIANwMAIAEoAgxBADYCCCABKAIMQn83AxAgASgCDEEANgIsIAEoAgxBfzYCKCABKAIMQgA3AxggASgCDEIANwMgIAEoAgxBADsBMCABKAIMQQA7ATILUgECf0GQlwEoAgAiASAAQQNqQXxxIgJqIQACQCACQQAgACABTRsNACAAPwBBEHRLBEAgABATRQ0BC0GQlwEgADYCACABDwtBtJsBQTA2AgBBfwuNBQEDfyMAQRBrIgEkACABIAA2AgwgASgCDARAIAEoAgwoAgAEQCABKAIMKAIAEDEaIAEoAgwoAgAQGwsgASgCDCgCHBAVIAEoAgwoAiAQJSABKAIMKAIkECUgASgCDCgCUCECIwBBEGsiACQAIAAgAjYCDCAAKAIMBEAgACgCDCgCEARAIABBADYCCANAIAAoAgggACgCDCgCAEkEQCAAKAIMKAIQIAAoAghBAnRqKAIABEAgACgCDCgC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A3EQHwsgAygCpAEoAhQgA0GeAWogA0GcAWoQgQEgAygCTCADLwGeARAfIAMoAkwgAy8BnAEQHwJAAkAgAy0AhQFBAXFFDQAgAygCpAEpAyhCFFoNACADKAJMQQAQIAwBCyADKAJMIAMoAqQBKAIYECALAkACQCADKAKgAUGAAnFBgAJHDQAgAygCpAEpAyBC/////w9UBEAgAygCpAEpAyhC/////w9UDQELIAMoAkxBfxAgIAMoAkxBfxAgDAELAkAgAygCpAEpAyBC/////w9UBEAgAygCTCADKAKkASkDIKcQIAwBCyADKAJMQX8QIAsCQCADKAKkASkDKEL/////D1QEQCADKAJMIAMoAqQBKQMopxAgDAELIAMoAkxBfxAgCwsgAygCTCADKAKkASgCMBBTQf//A3EQHyADIAMoAqQBKAI0IAMoAqABEIYBQf//A3EgAygCkAFBgAYQhgFB//8DcWo2AogBIAMoAkwgAygCiAFB//8DcRAfIAMoAqABQYACcUUEQCADKAJMIAMoAqQBKAI4EFNB//8DcRAfIAMoAkwgAygCpAEoAjxB//8DcRAfIAMoAkwgAygCpAEvAUAQHyADKAJMIAMoAqQBKAJEECACQCADKAKkASkDSEL/////D1QEQCADKAJMIAMoAqQBKQNIpxAgDAELIAMoAkxBfxAgCwsCfyMAQRBrIgAgAygCTDYCDCAAKAIMLQAAQQFxRQsEQCADKAKoAUEIakEUQQAQFCADKAJMEBYgAygCkAEQIyADQX82AqwBDAELIAMoAqgBIANB0ABqAn4jAEEQayIAIAMoAkw2AgwCfiAAKAIMLQAAQQFxBEAgACgCDCkDEAwBC0IACwsQNUEASARAIAMoAkwQFiADKAKQARAjIANBfzYCrAEMAQsgAygCTBAWIAMoAqQBKAIwBEAgAygCqAEgAygCpAEoAjAQigFBAEgEQCADKAKQARAjIANBfzYCrAEMAgsLIAMoApABBEAgAygCqAEgAygCkAFBgAYQhQFBAEgEQCADKAKQARAjIANBfzYCrAEMAgsLIAMoApABECMgAygCpAEoAjQEQCADKAKoASADKAKkASgCNCADKAKgARCFAUEASARAIANBfzYCrAEMAgsLIAMoAqABQYACcUUEQCADKAKkASgCOARAIAMoAqgBIAMoAqQBKAI4EIoB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HCAAIAAoAhRBAWo2AhQMAQsLIAAoAggQR0EBcUUEQCAAKAIgQRRBABAUIAAoAggQFiAAQX82AiwMAQsgACgCCBAWIAAgACgCHDYCLAsgACgCLCECIABBMGokACADIAIiADYCBCAAQQBIBEAgA0IANwMoDAELIAMpAwggAygCBK18Qv///////////wBWBEAgAygCFEEEQRYQFCADQgA3AygMAQsgAyADKQMIIAMoAgStfDcDKAsgAykDKCEBIANBMGokACABC20BAX8jAEEgayIEJAAgBCAANgIYIAQgATYCFCAEIAI2AhAgBCADNgIMAkAgBCgCGEUEQCAEQQA2AhwMAQsgBCAEKAIUIAQoAhAgBCgCDCAEKAIYQQhqEJIBNgIcCyAEKAIcIQAgBEEgaiQAIAALVQEBfyMAQRBrIgEkACABIAA2AgwCQAJAIAEoAgwoAiRBAUYNACABKAIMKAIkQQJGDQAMAQsgASgCDEEAQgBBChAhGiABKAIMQQA2AiQLIAFBEGokAAumAQEBfyMAQRBrIgIkACACIAA2AgggAiABNgIEAkAgAigCCC0AKEEBcQRAIAJBfzYCDAwBCyACKAIIKAIABEAgAigCCCgCACACKAIEEGhBAEgEQCACKAIIQQxqIAIoAggoAgAQFyACQX82AgwMAgsLIAIoAgggAkEEakIEQRMQIUIAUwRAIAJBfzYCDAwBCyACQQA2AgwLIAIoAgwhACACQRBqJAAgAAuNCAIBfwF+IwBBkAFrIgMkACADIAA2AoQBIAMgATYCgAEgAyACNgJ8IAMQTwJAIAMoAoABKQMIQgBSBEAgAyADKAKAASgCACgCACkDSDcDYCADIAMoAoABKAIAKAIAKQNINwNoDAELIANCADcDYCADQgA3A2gLIANCADcDcAJAA0AgAykDcCADKAKAASkDCFQEQCADKAKAASgCACADKQNwp0EEdGooAgApA0ggAykDaFQEQCADIAMoAoABKAIAIAMpA3CnQQR0aigCACkDSDcDaAsgAykDaCADKAKAASkDIFYEQCADKAJ8QRNBABAUIANCfzcDiAEMAwsgAyADKAKAASgCACADKQNwp0EEdGooAgApA0ggAygCgAEoAgAgAykDcKdBBHRqKAIAKQMgfCADKAKAASgCACADKQNwp0EEdGooAgAoAjAQU0H//wNxrXxC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DEECdGooAgBBAnRqLwEASA0AAkAgAygCGCADKAIQQQJ0ai8BACADKAIYIAMoAhxB3BZqIAMoAgxBAnRqKAIAQQJ0ai8BAEcNACADKAIQIAMoAhxB2Chqai0AACADKAIcQdwWaiADKAIMQQJ0aigCACADKAIcQdgoamotAABKDQAMAQsgAygCHEHcFmogAygCFEECdGogAygCHEHcFmogAygCDEECdGooAgA2AgAgAyADKAIMNgIUIAMgAygCDEEBdDYCDAwBCwsgAygCHEHcFmogAygCFEECdGogAygCEDYCAAvXEwEDfyMAQTBrIgIkACACIAA2AiwgAiABNgIoIAIgAigCKCgCADYCJCACIAIoAigoAggoAgA2AiAgAiACKAIoKAIIKAIMNgIcIAJBfzYCECACKAIsQQA2AtAoIAIoAixBvQQ2AtQoIAJBADYCGANAIAIoAhggAigCHEgEQAJAIAIoAiQgAigCGEECdGovAQAEQCACIAIoAhgiATYCECACKAIsQdwWaiEDIAIoAiwiBCgC0ChBAWohACAEIAA2AtAoIABBAnQgA2ogATYCACACKAIYIAIoAixB2ChqakEAOgAADAELIAIoAiQgAigCGEECdGpBADsBAgsgAiACKAIYQQFqNgIYDAELCwNAIAIoAiwoAtAoQQJIBEACQCACKAIQQQJIBEAgAiACKAIQQQFqIgA2AhAMAQtBACEACyACKAIsQdwWaiEDIAIoAiwiBCgC0ChBAWohASAEIAE2AtAoIAFBAnQgA2ogADYCACACIAA2AgwgAigCJCACKAIMQQJ0akEBOwEAIAIoAgwgAigCLEHYKGpqQQA6AAAgAigCLCIAIAAoAqgtQQFrNgKoLSACKAIgBEAgAigCLCIAIAAoAqwtIAIoAiAgAigCDEECdGovAQJrNgKsLQsMAQsLIAIoAiggAigCEDYCBCACIAIoAiwoAtAoQQJtNgIYA0AgAigCGEEBTgRAIAIoAiwgAigCJCACKAIYEHogAiACKAIYQQFrNgIYDAELCyACIAIoAhw2AgwDQCACIAIoAiwoAuAWNgIYIAIoAixB3BZqIQEgAigCLCIDKALQKCEAIAMgAEEBazYC0CggAigCLCAAQQJ0IAFqKAIANgLgFiACKAIsIAIoAiRBARB6IAIgAigCLCgC4BY2AhQgAigCGCEBIAIoAixB3BZqIQMgAigCLCIEKALUKEEBayEAIAQgADYC1CggAEECdCADaiABNgIAIAIoAhQhASACKAIsQdwWaiEDIAIoAiwiBCgC1ChBAWshACAEIAA2AtQoIABBAnQgA2ogATYCACACKAIkIAIoAgxBAnRqIAIoAiQgAigCGEECdGovAQAgAigCJCACKAIUQQJ0ai8BAGo7AQAgAigCDCACKAIsQdgoamoCfyACKAIYIAIoAixB2Chqai0AACACKAIUIAIoAixB2Chqai0AAE4EQCACKAIYIAIoAixB2Chqai0AAAwBCyACKAIUIAIoAixB2Chqai0AAAtBAWo6AAAgAigCJCACKAIUQQJ0aiACKAIMIgA7AQIgAigCJCACKAIYQQJ0aiAAOwECIAIgAigCDCIAQQFqNgIMIAIoAiwgADYC4BYgAigCLCACKAIkQQEQeiACKAIsKALQKEECTg0ACyACKAIsKALgFiEBIAIoAixB3BZqIQMgAigCLCIEKALUKEEBayEAIAQgADYC1CggAEECdCADaiABNgIAIAIoAighASMAQUBqIgAgAigCLDYCPCAAIAE2AjggACAAKAI4KAIANgI0IAAgACgCOCgCBDYCMCAAIAAoAjgoAggoAgA2AiwgACAAKAI4KAIIKAIENgIoIAAgACgCOCgCCCgCCDYCJCAAIAAoAjgoAggoAhA2AiAgAEEANgIEIABBADYCEANAIAAoAhBBD0wEQCAAKAI8QbwWaiAAKAIQQQF0akEAOwEAIAAgACgCEEEBajYCEAwBCwsgACgCNCAAKAI8QdwWaiAAKAI8KALUKEECdGooAgBBAnRqQQA7AQIgACAAKAI8KALUKEEBajYCHANAIAAoAhxBvQRIBEAgACAAKAI8QdwWaiAAKAIcQQJ0aigCADYCGCAAIAAoAjQgACgCNCAAKAIYQQJ0ai8BAkECdGovAQJBAWo2AhAgACgCECAAKAIgSgRAIAAgACgCIDYCECAAIAAoAgRBAWo2AgQLIAAoAjQgACgCGEECdGogACgCEDsBAiAAKAIYIAAoAjBMBEAgACgCPCAAKAIQQQF0akG8FmoiASABLwEAQQFqOwEAIABBADYCDCAAKAIYIAAoAiROBEAgACAAKAIoIAAoAhggACgCJGtBAnRqKAIANgIMCyAAIAAoAjQgACgCGEECdGovAQA7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EANAIAMpAxAgAykDCFpFBEAgAygCKCgCACADKQMQp0EEdGoQkAEgAyADKQMQQgF8NwMQDAELCyADKAIoIAMpAwgiATcDECADKAIoIAE3AwggA0EBOgAvCyADLQAvQQFxIQAgA0EwaiQAIAALzAEBAX8jAEEgayICJAAgAiAANwMQIAIgATYCDCACQTAQGCIBNgIIAkAgAUUEQCACKAIMQQ5BABAUIAJBADYCHAwBCyACKAIIQQA2AgAgAigCCEIANwMQIAIoAghCADcDCCACKAIIQgA3AyAgAigCCEIANwMYIAIoAghBADYCKCACKAIIQQA6ACwgAigCCCACKQMQIAIoAgwQgwFBAXFFBEAgAigCCBAkIAJBADYCHAwBCyACIAIoAgg2AhwLIAIoAhwhASACQSBqJAAgAQvWAgEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIANBDGpCBBApNgIIAkAgAygCCEUEQCADQX82AhwMAQsDQCADKAIUBEAgAygCFCgCBCADKAIQcUGABnEEQCADKAIIQgAQLBogAygCCCADKAIULwEIEB8gAygCCCADKAIULwEKEB8CfyMAQRBrIgAgAygCCDYCDCAAKAIMLQAAQQFxRQsEQCADKAIYQQhqQRRBABAUIAMoAggQFiADQX82AhwMBAsgAygCGCADQQxqQgQQNUEASARAIAMoAggQFiADQX82AhwMBAsgAygCFC8BCgRAIAMoAhggAygCFCgCDCADKAIULwEKrRA1QQBIBEAgAygCCBAWIANBfzYCHAwFCwsLIAMgAygCFCgCADYCFAwBCwsgAygCCBAWIANBADYCHAsgAygCHCEAIANBIGokACAAC2gBAX8jAEEQayICIAA2AgwgAiABNgIIIAJBADsBBgNAIAIoAgwEQCACKAIMKAIEIAIoAghxQYAGcQRAIAIgAigCDC8BCiACLwEGQQRqajsBBgsgAiACKAIMKAIANgIMDAELCyACLwEGC/ABAQF/IwBBEGsiASQAIAEgADYCDCABIAEoAgw2AgggAUEANgIEA0AgASgCDARAAkACQCABKAIMLwEIQfXGAUYNACABKAIMLwEIQfXgAUYNACABKAIMLwEIQYGyAkYNACABKAIMLwEIQQFHDQELIAEgASgCDCgCADYCACABKAIIIAEoAgxGBEAg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IAEpA4ABIAEpAzB8IAEpA5gBIAEpAzh8VgRAIAEoApABQRVBABAUIAFBADYCrAEMAQsCQCABKAKUAUEEcUUNACABKQOAASABKQMwfCABKQOYASABKQM4fFENACABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEpAyggASkDMEIugFYEQCABKAKQAUEVQQAQFCABQQA2AqwBDAELIAEgASkDKCABKAKQARCEASIFNgKMASAFRQRAIAFBADYCrAEMAQsgASgCjAFBAToALCABKAKMASABKQMwNwMYIAEoAowBIAEpA4ABNwMgIAEgASgCjAE2AqwBCyABKAKsASEFIAFBsAFqJAAgACAFNgJQDAELIAAoAmQgACkDMBAsGiAAKAJkIQUgACkDWCEJIAAoAmgoAhQhBiAAKAJUIQcjAEHQAGsiASQAIAEgBTYCSCABIAk3A0AgASAGNgI8IAEgBzYCOAJAIAEoAkgQL0IWVARAIAEoAjhBFUEAEBQgAUEANgJMDAELIwBBEGsiBSABKAJINgIMIAECfiAFKAIMLQAAQQFxBEAgBSgCDCkDEAwBC0IACzcDCCABKAJIQgQQHhogASgCSBAqBEAgASgCOEEBQQAQFCABQQA2AkwMAQsgASABKAJIEB1B//8Dca03AyggASABKAJIEB1B//8Dca03AyAgASkDICABKQMoUgRAIAEoAjhBE0EAEBQgAUEANgJMDAELIAEgASgCSBAqrTcDGCABIAEoAkgQKq03AxAgASkDECABKQMQIAEpAxh8VgRAIAEoAjhBBEEWEBQgAUEANgJMDAELIAEpAxAgASkDGHwgASkDQCABKQMIfFYEQCABKAI4QRVBABAUIAFBADYCTAwBCwJAIAEoAjxBBHFFDQAgASkDECABKQMYfCABKQNAIAEpAwh8UQ0AIAEoAjhBFUEAEBQgAUEANgJMDAELIAEgASkDICABKAI4EIQBIgU2AjQgBUUEQCABQQA2AkwMAQsgASgCNEEAOgAsIAEoAjQgASkDGDcDGCABKAI0IAEpAxA3AyAgASABKAI0NgJMCyABKAJMIQUgAUHQAGokACAAIAU2AlALIAAoAlBFBEAgAEEANgJsDAELIAAoAmQgACkDMEIUfBAsGiAAIAAoAmQQHTsBTiAAKAJQKQMgIAAoAlApAxh8IAApA1ggACkDMHxWBEAg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IAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACIAIoAiwiAEEBajYCLCAALQABIQEgAiACKAIoIgBBAWo2AihBACAALQABIAFHDQAaIAIgAigCLCIAQQFqNgIsIAAtAAEhASACIAIoAigiAEEBajYCKEEAIAAtAAEgAUcNABogAiACKAIsIgBBAWo2AiwgAC0AASEBIAIgAigCKCIAQQFqNgIoQQAgAC0AASABRw0AGiACKAIsIAIoAgxJC0EBcQ0ACyACQYICIAIoAgwgAigCLGtrNgIkIAIgAigCDEGCAms2AiwgAigCJCACKAIgSgRAIAIoAjggAigCNDYCcCACIAIoAiQ2AiAgAigCJCACKAIcTg0CIAIgAigCLCACKAIgQQFrai0AADoACyACIAIoAiwgAigCIGotAAA6AAoLCyACIAIoAhQgAigCNCACKAIQcUEBdGovAQAiATYCNEEAIQAgASACKAIYSwR/IAIgAigCMEEBayIANgIwIABBAEcFQQALQQFxDQELCwJAIAIoAiAgAigCOCgCdE0EQCACIAIoAiA2AjwMAQsgAiACKAI4KAJ0NgI8CyACKAI8C5IQAQF/IwBBMGsiAiQAIAIgADYCKCACIAE2AiQgAgJ/IAIoAigoAiwgAigCKCgCDEEFa0kEQCACKAIoKAIsDAELIAIoAigoAgxBBWsLNgIgIAJBADYCECACIAIoAigoAgAoAgQ2AgwDQAJAIAJB//8DNgIcIAIgAigCKCgCvC1BKmpBA3U2AhQgAigCKCgCACgCECACKAIUSQ0AIAIgAigCKCgCACgCECACKAIUazYCFCACIAIoAigoAmwgAigCKCgCXGs2AhggAigCHCACKAIYIAIoAigoAgAoAgRqSwRAIAIgAigCGCACKAIoKAIAKAIEajYCHAsgAigCHCACKAIUSwRAIAIgAigCFDYCHAsCQCACKAIcIAIoAiBPDQACQCACKAIcRQRAIAIoAiRBBEcNAQsgAigCJEUNACACKAIcIAIoAhggAigCKCgCACgCBGpGDQELDAELQQAhACACIAIoAiRBBEYEfyACKAIcIAIoAhggAigCKCgCACgCBGpGBUEAC0EBcTYCECACKAIoQQBBACACKAIQEFwgAigCKCgCCCACKAIoKAIUQQRraiACKAIcOgAAIAIoAigoAgggAigCKCgCFEEDa2ogAigCHEEIdjoAACACKAIoKAIIIAIoAigoAhRBAmtqIAIoAhxBf3M6AAAgAigCKCgCCCACKAIoKAIUQQFraiACKAIcQX9zQQh2OgAAIAIoAigoAgAQHCACKAIYBEAgAigCGCACKAIcSwRAIAIgAigCHDYCGAsgAigCKCgCACgCDCACKAIoKAI4IAIoAigoAlxqIAIoAhgQGRogAigCKCgCACIAIAIoAhggACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCGGs2AhAgAigCKCgCACIAIAIoAhggACgCFGo2AhQgAigCKCIAIAIoAhggACgCXGo2AlwgAiACKAIcIAIoAhhrNgIcCyACKAIcBEAgAigCKCgCACACKAIoKAIAKAIMIAIoAhwQeBogAigCKCgCACIAIAIoAhwgACgCDGo2AgwgAigCKCgCACIAIAAoAhAgAigCHGs2AhAgAigCKCgCACIAIAIoAhwgACgCFGo2AhQLIAIoAhBFDQELCyACIAIoAgwgAigCKCgCACgCBGs2AgwgAigCDARAAkAgAigCDCACKAIoKAIsTwRAIAIoAihBAjYCsC0gAigCKCgCOCACKAIoKAIAKAIAIAIoAigoAixrIAIoAigoAiwQGRogAigCKCACKAIoKAIsNgJsDAELIAIoAgwgAigCKCgCPCACKAIoKAJsa08EQCACKAIoIgAgACgCbCACKAIoKAIsazYCbCACKAIoKAI4IAIoAigoAjggAigCKCgCLGogAigCKCgCbBAZGiACKAIoKAKwLUECSQRAIAIoAigiACAAKAKwLUEBajYCsC0LCyACKAIoKAI4IAIoAigoAmxqIAIoAigoAgAoAgAgAigCDGsgAigCDBAZGiACKAIoIgAgAigCDCAAKAJsajYCbAsgAigCKCACKAIoKAJsNgJcIAIoAigiAQJ/IAIoAgwgAigCKCgCLCACKAIoKAK0LWtLBEAgAigCKCgCLCACKAIoKAK0LWsMAQsgAigCDAsgASgCtC1qNgK0LQsgAigCKCgCwC0gAigCKCgCbEkEQCACKAIoIAIoAigoAmw2AsAtCwJAIAIoAhAEQCACQQM2AiwMAQsCQCACKAIkRQ0AIAIoAiRBBEYNACACKAIoKAIAKAIEDQAgAigCKCgCbCACKAIoKAJcRw0AIAJBATYCLAwBCyACIAIoAigoAjwgAigCKCgCbGtBAWs2AhQCQCACKAIoKAIAKAIEIAIoAhRNDQAgAigCKCgCXCACKAIoKAIsSA0AIAIoAigiACAAKAJcIAIoAigoAixrNgJcIAIoAigiACAAKAJsIAIoAigoAixrNgJsIAIoAigoAjggAigCKCgCOCACKAIoKAIsaiACKAIoKAJsEBkaIAIoAigoArAtQQJJBEAgAigCKCIAIAAoArAtQQFqNgKwLQsgAiACKAIoKAIsIAIoAhRqNgIUCyACKAIUIAIoAigoAgAoAgRLBEAgAiACKAIoKAIAKAIENgIUCyACKAIUBEAgAigCKCgCACACKAIoKAI4IAIoAigoAmxqIAIoAhQQeBogAigCKCIAIAIoAhQgACgCbGo2AmwLIAIoAigoAsAtIAIoAigoAmxJBEAgAigCKCACKAIoKAJsNgLALQsgAiACKAIoKAK8LUEqakEDdTYCFCACIAIoAigoAgwgAigCFGtB//8DSwR/Qf//AwUgAigCKCgCDCACKAIUaws2AhQgAgJ/IAIoAhQgAigCKCgCLEsEQCACKAIoKAIsDAELIAIoAhQLNgIgIAIgAigCKCgCbCACKAIoKAJcazYCGAJAIAIoAhggAigCIEkEQCACKAIYRQRAIAIoAiRBBEcNAgsgAigCJEUNASACKAIoKAIAKAIEDQEgAigCGCACKAIUSw0BCyACAn8gAigCGCACKAIUSwRAIAIoAhQMAQsgAigCGAs2AhwgAgJ/QQAgAigCJEEERw0AGkEAIAIoAigoAgAoAgQNABogAigCHCACKAIYRgtBAXE2AhAgAigCKCACKAIoKAI4IAIoAigoAlxqIAIoAhwgAigCEBBcIAIoAigiACACKAIcIAAoAlxqNgJcIAIoAigoAgAQHAsgAkECQQAgAigCEBs2AiwLIAIoAiwhACACQTBqJAAgAAuyAgEBfyMAQRBrIgEkACABIAA2AggCQCABKAIIEHkEQCABQX42AgwMAQsgASABKAIIKAIcKAIENgIEIAEoAggoAhwoAggEQCABKAIIKAIoIAEoAggoAhwoAgggASgCCCgCJBEEAAsgASgCCCgCHCgCRARAIAEoAggoAiggASgCCCgCHCgCRCABKAIIKAIkEQQACyABKAIIKAIcKAJABEAgASgCCCgCKCABKAIIKAIcKAJAIAEoAggoAiQRBAALIAEoAggoAhwoAjgEQCABKAIIKAIoIAEoAggoAhwoAjggASgCCCgCJBEEAAsgASgCCCgCKCABKAIIKAIcIAEoAggoAiQRBAAgASgCCEEANgIcIAFBfUEAIAEoAgRB8QBGGzYCDAsgASgCDCEAIAFBEGokACAAC+sXAQJ/IwBB8ABrIgMgADYCbCADIAE2AmggAyACNgJkIANBfzYCXCADIAMoAmgvAQI2AlQgA0EANgJQIANBBzYCTCADQQQ2AkggAygCVEUEQCADQYoBNgJMIANBAzYCSAsgA0EANgJgA0AgAygCYCADKAJkSkUEQCADIAMoAlQ2AlggAyADKAJoIAMoAmBBAWpBAnRqLwECNgJUIAMgAygCUEEBaiIANgJQAkACQCADKAJMIABMDQAgAygCWCADKAJURw0ADAELAkAgAygCUCADKAJISARAA0AgAyADKAJsQfwUaiADKAJYQQJ0ai8BAjYCRAJAIAMoAmwoArwtQRAgAygCRGtKBEAgAyADKAJsQfwUaiADKAJYQQJ0ai8BADYCQCADKAJsIgAgAC8BuC0gAygCQEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAJAQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCREEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsQfwUaiADKAJYQQJ0ai8BACADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCRCAAKAK8LWo2ArwtCyADIAMoAlBBAWsiADYCUCAADQALDAELAkAgAygCWARAIAMoAlggAygCXEcEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwECNgI8AkAgAygCbCgCvC1BECADKAI8a0oEQCADIAMoAmxB/BRqIAMoAlhBAnRqLwEANgI4IAMoAmwiACAALwG4LSADKAI4Qf//A3EgAygCbCgCvC10cjsBuC0gAygCbC8BuC1B/wFxIQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbC8BuC1BCHYhASADKAJsKAIIIQIgAygCbCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJsIAMoAjhB//8DcUEQIAMoAmwoArwta3U7AbgtIAMoAmwiACAAKAK8LSADKAI8QRBrajYCvC0MAQsgAygCbCIAIAAvAbgtIAMoAmxB/BRqIAMoAlhBAnRqLwEAIAMoAmwoArwtdHI7AbgtIAMoAmwiACADKAI8IAAoArwtajYCvC0LIAMgAygCUEEBazYCUAsgAyADKAJsLwG+FTYCNAJAIAMoAmwoArwtQRAgAygCNGtKBEAgAyADKAJsLwG8FTYCMCADKAJsIgAgAC8BuC0gAygCMEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIwQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCNEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwG8FSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCNCAAKAK8LWo2ArwtCyADQQI2AiwCQCADKAJsKAK8LUEQIAMoAixrSgRAIAMgAygCUEEDazYCKCADKAJsIgAgAC8BuC0gAygCKEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIoQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAiwgACgCvC1qNgK8LQsMAQsCQCADKAJQQQpMBEAgAyADKAJsLwHCFTYCJAJAIAMoAmwoArwtQRAgAygCJGtKBEAgAyADKAJsLwHAFTYCICADKAJsIgAgAC8BuC0gAygCIEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIgQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHAFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCJCAAKAK8LWo2ArwtCyADQQM2AhwCQCADKAJsKAK8LUEQIAMoAhxrSgRAIAMgAygCUEEDazYCGCADKAJsIgAgAC8BuC0gAygCGEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIYQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCHEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQNrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAhwgACgCvC1qNgK8LQsMAQsgAyADKAJsLwHGFTYCFAJAIAMoAmwoArwtQRAgAygCFGtKBEAgAyADKAJsLwHEFTYCECADKAJsIgAgAC8BuC0gAygCEEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIQQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJsLwHEFSADKAJsKAK8LXRyOwG4LSADKAJsIgAgAygCFCAAKAK8LWo2ArwtCyADQQc2AgwCQCADKAJsKAK8LUEQIAMoAgxrSgRAIAMgAygCUEELazYCCCADKAJsIgAgAC8BuC0gAygCCEH//wNxIAMoAmwoArwtdHI7AbgtIAMoAmwvAbgtQf8BcSEBIAMoAmwoAgghAiADKAJsIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAmwvAbgtQQh2IQEgAygCbCgCCCECIAMoAmwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCbCADKAIIQf//A3FBECADKAJsKAK8LWt1OwG4LSADKAJsIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAmwiACAALwG4LSADKAJQQQtrQf//A3EgAygCbCgCvC10cjsBuC0gAygCbCIAIAMoAgwgACgCvC1qNgK8LQsLCwsgA0EANgJQIAMgAygCWDYCXAJAIAMoAlRFBEAgA0GKATYCTCADQQM2AkgMAQsCQCADKAJYIAMoAlRGBEAgA0EGNgJMIANBAzYCSAwBCyADQQc2AkwgA0EENgJICwsLIAMgAygCYEEBajYCYAwBCwsLkQQBAX8jAEEwayIDIAA2AiwgAyABNgIoIAMgAjYCJCADQX82AhwgAyADKAIoLwECNgIUIANBADYCECADQQc2AgwgA0EENgIIIAMoAhRFBEAgA0GKATYCDCADQQM2AggLIAMoAiggAygCJEEBakECdGpB//8DOwECIANBADYCIANAIAMoAiAgAygCJEpFBEAgAyADKAIUNgIYIAMgAygCKCADKAIgQQFqQQJ0ai8BAjYCFCADIAMoAhBBAWoiADYCEAJAAkAgAygCDCAATA0AIAMoAhggAygCFEcNAAwBCwJAIAMoAhAgAygCCEgEQCADKAIsQfwUaiADKAIYQQJ0aiIAIAMoAhAgAC8BAGo7AQAMAQsCQCADKAIYBEAgAygCGCADKAIcRwRAIAMoAiwgAygCGEECdGpB/BRqIgAgAC8BAEEBajsBAAsgAygCLCIAIABBvBVqLwEAQQFqOwG8FQwBCwJAIAMoAhBBCkwEQCADKAIsIgAgAEHAFWovAQBBAWo7AcAVDAELIAMoAiwiACAAQcQVai8BAEEBajsBxBULCwsgA0EANgIQIAMgAygCGDYCHAJAIAMoAhRFBEAgA0GKATYCDCADQQM2AggMAQsCQCADKAIYIAMoAhRGBEAgA0EGNgIMIANBAzYCCAwBCyADQQc2AgwgA0EENgIICwsLIAMgAygCIEEBajYCIAwBCwsLpxIBAn8jAEHQAGsiAyAANgJMIAMgATYCSCADIAI2AkQgA0EANgI4IAMoAkwoAqAtBEADQCADIAMoAkwoAqQtIAMoAjhBAXRqLwEANgJAIAMoAkwoApgtIQAgAyADKAI4IgFBAWo2AjggAyAAIAFqLQAANgI8AkAgAygCQEUEQCADIAMoAkggAygCPEECdGovAQI2AiwCQCADKAJMKAK8LUEQIAMoAixrSgRAIAMgAygCSCADKAI8QQJ0ai8BADYCKCADKAJMIgAgAC8BuC0gAygCKEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIoQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCLEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjxBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIsIAAoArwtajYCvC0LDAELIAMgAygCPC0A0F02AjQgAyADKAJIIAMoAjRBgQJqQQJ0ai8BAjYCJAJAIAMoAkwoArwtQRAgAygCJGtKBEAgAyADKAJIIAMoAjRBgQJqQQJ0ai8BADYCICADKAJMIgAgAC8BuC0gAygCIEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIgQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCJEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJIIAMoAjRBgQJqQQJ0ai8BACADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCJCAAKAK8LWo2ArwtCyADIAMoAjRBAnRBkOoAaigCADYCMCADKAIwBEAgAyADKAI8IAMoAjRBAnRBgO0AaigCAGs2AjwgAyADKAIwNgIcAkAgAygCTCgCvC1BECADKAIca0oEQCADIAMoAjw2AhggAygCTCIAIAAvAbgtIAMoAhhB//8DcSADKAJMKAK8LXRyOwG4LSADKAJMLwG4LUH/AXEhASADKAJMKAIIIQIgAygCTCIEKAIUIQAgBCAAQQFqNgIUIAAgAmogAToAACADKAJMLwG4LUEIdiEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwgAygCGEH//wNxQRAgAygCTCgCvC1rdTsBuC0gAygCTCIAIAAoArwtIAMoAhxBEGtqNgK8LQwBCyADKAJMIgAgAC8BuC0gAygCPEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIcIAAoArwtajYCvC0LCyADIAMoAkBBAWs2AkAgAwJ/IAMoAkBBgAJJBEAgAygCQC0A0FkMAQsgAygCQEEHdkGAAmotANBZCzYCNCADIAMoAkQgAygCNEECdGovAQI2AhQCQCADKAJMKAK8LUEQIAMoAhRrSgRAIAMgAygCRCADKAI0QQJ0ai8BADYCECADKAJMIgAgAC8BuC0gAygCEEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIQQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCFEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJEIAMoAjRBAnRqLwEAIAMoAkwoArwtdHI7AbgtIAMoAkwiACADKAIUIAAoArwtajYCvC0LIAMgAygCNEECdEGQ6wBqKAIANgIwIAMoAjAEQCADIAMoAkAgAygCNEECdEGA7gBqKAIAazYCQCADIAMoAjA2AgwCQCADKAJMKAK8LUEQIAMoAgxrSgRAIAMgAygCQDYCCCADKAJMIgAgAC8BuC0gAygCCEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIIQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCDEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJAQf//A3EgAygCTCgCvC10cjsBuC0gAygCTCIAIAMoAgwgACgCvC1qNgK8LQsLCyADKAI4IAMoAkwoAqAtSQ0ACwsgAyADKAJILwGCCDYCBAJAIAMoAkwoArwtQRAgAygCBGtKBEAgAyADKAJILwGACDYCACADKAJMIgAgAC8BuC0gAygCAEH//wNxIAMoAkwoArwtdHI7AbgtIAMoAkwvAbgtQf8BcSEBIAMoAkwoAgghAiADKAJMIgQoAhQhACAEIABBAWo2AhQgACACaiABOgAAIAMoAkwvAbgtQQh2IQEgAygCTCgCCCECIAMoAkwiBCgCFCEAIAQgAEEBajYCFCAAIAJqIAE6AAAgAygCTCADKAIAQf//A3FBECADKAJMKAK8LWt1OwG4LSADKAJMIgAgACgCvC0gAygCBEEQa2o2ArwtDAELIAMoAkwiACAALwG4LSADKAJILwGACCADKAJMKAK8LXRyOwG4LSADKAJMIgAgAygCBCAAKAK8LWo2ArwtCwuXAgEEfyMAQRBrIgEgADYCDAJAIAEoAgwoArwtQRBGBEAgASgCDC8BuC1B/wFxIQIgASgCDCgCCCEDIAEoAgwiBCgCFCEAIAQgAEEBajYCFCAAIANqIAI6AAAgASgCDC8BuC1BCHYhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMQQA7AbgtIAEoAgxBADYCvC0MAQsgASgCDCgCvC1BCE4EQCABKAIMLwG4LSECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAAIAEoAgwiACAALwG4LUEIdjsBuC0gASgCDCIAIAAoArwtQQhrNgK8LQsLC+8BAQR/IwBBEGsiASAANgIMAkAgASgCDCgCvC1BCEoEQCABKAIMLwG4LUH/AXEhAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAACABKAIMLwG4LUEIdiECIAEoAgwoAgghAyABKAIMIgQoAhQhACAEIABBAWo2AhQgACADaiACOgAADAELIAEoAgwoArwtQQBKBEAgASgCDC8BuC0hAiABKAIMKAIIIQMgASgCDCIEKAIUIQAgBCAAQQFqNgIUIAAgA2ogAjoAAAsLIAEoAgxBADsBuC0gASgCDEEANgK8LQv8AQEBfyMAQRBrIgEgADYCDCABQQA2AggDQCABKAIIQZ4CTkUEQCABKAIMQZQBaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgAUEANgIIA0AgASgCCEEeTkUEQCABKAIMQYgTaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgAUEANgIIA0AgASgCCEETTkUEQCABKAIMQfwUaiABKAIIQQJ0akEAOwEAIAEgASgCCEEBajYCCAwBCwsgASgCDEEBOwGUCSABKAIMQQA2AqwtIAEoAgxBADYCqC0gASgCDEEANgKwLSABKAIMQQA2AqAtCyIBAX8jAEEQayIBJAAgASAANgIMIAEoAgwQFSABQRBqJAAL6QEBAX8jAEEwayICIAA2AiQgAiABNwMYIAJCADcDECACIAIoAiQpAwhCAX03AwgCQANAIAIpAxAgAikDCFQEQCACIAIpAxAgAikDCCACKQMQfUIBiHw3AwACQCACKAIkKAIEIAIpAwCnQQN0aikDACACKQMYVgRAIAIgAikDAEIBfTcDCAwBCwJAIAIpAwAgAigCJCkDCFIEQCACKAIkKAIEIAIpAwBCAXynQQN0aikDACACKQMYWA0BCyACIAIpAwA3AygMBAsgAiACKQMAQgF8NwMQCwwBCwsgAiACKQMQNwMoCyACKQMoC6cBAQF/IwBBMGsiBCQAIAQgADYCKCAEIAE2AiQgBCACNwMYIAQgAzYCFCAEIAQoAigpAzggBCgCKCkDMCAEKAIkIAQpAxggBCgCFBCRATcDCAJAIAQpAwhCAFMEQCAEQX82AiwMAQsgBCgCKCAEKQMINwM4IAQoAiggBCgCKCkDOBC/ASECIAQoAiggAjcDQCAEQQA2AiwLIAQoAiwhACAEQTBqJAAgAAvrAQEBfyMAQSBrIgMkACADIAA2AhggAyABNwMQIAMgAjYCDAJAIAMpAxAgAygCGCkDEFQEQCADQQE6AB8MAQsgAyADKAIYKAIAIAMpAxBCBIanEEgiADYCCCAARQRAIAMoAgxBDkEAEBQgA0EAOgAfDAELIAMoAhggAygCCDYCACADIAMoAhgoAgQgAykDEEIBfEIDhqcQSCIANgIEIABFBEAgAygCDEEOQQAQFCADQQA6AB8MAQsgAygCGCADKAIENgIEIAMoAhggAykDEDcDECADQQE6AB8LIAMtAB9BAXEhACADQSBqJAAgAAvOAgEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQAJAIAQoAigNACAEKQMgUA0AIAQoAhhBEkEAEBQgBEEANgIsDAELIAQgBCgCKCAEKQMgIAQoAhwgBCgCGBBNIgA2AgwgAEUEQCAEQQA2AiwMAQsgBEEYEBgiADYCFCAARQRAIAQoAhhBDkEAEBQgBCgCDBAzIARBADYCLAwBCyAEKAIUIAQoAgw2AhAgBCgCFEEANgIUQQAQASEAIAQoAhQgADYCDCMAQRBrIgAgBCgCFDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCAEQQIgBCgCFCAEKAIYEJQBIgA2AhAgAEUEQCAEKAIUKAIQEDMgBCgCFBAVIARBADYCLAwBCyAEIAQoAhA2AiwLIAQoAiwhACAEQTBqJAAgAAupAQEBfyMAQTBrIgQkACAEIAA2AiggBCABNwMgIAQgAjYCHCAEIAM2AhgCQCAEKAIoRQRAIAQpAyBCAFIEQCAEKAIYQRJBABAUIARBADYCLAwCCyAEQQBCACAEKAIcIAQoAhgQwgE2AiwMAQsgBCAEKAIoNgIIIAQgBCkDIDcDECAEIARBCGpCASAEKAIcIAQoAhgQwgE2AiwLIAQoAiwhACAEQTBqJAAgAAtGAQF/IwBBIGsiAyQAIAMgADYCHCADIAE3AxAgAyACNgIMIAMoAhwgAykDECADKAIMIAMoAhxBCGoQTiEAIANBIGokACAAC40CAQF/IwBBMGsiAyQAIAMgADYCKCADIAE7ASYgAyACNgIgIAMgAygCKCgCNCADQR5qIAMvASZBgAZBABBfNgIQAkAgAygCEEUNACADLwEeQQVJDQACQCADKAIQLQAAQQFGDQAMAQsgAyADKAIQIAMvAR6tECkiADYCFCAARQRADAELIAMoAhQQjwEaIAMgAygCFBAqNgIYIAMoAiAQjAEgAygCGEYEQCADIAMoAhQQLz0BDiADIAMoAhQgAy8BDq0QHiADLwEOQYAQQQAQUjYCCCADKAIIBEAgAygCIBAlIAMgAygCCDYCIAsLIAMoAhQQFgsgAyADKAIgNgIsIAMoAiwhACADQTBqJAAgAAvaFwIBfwF+IwBBgAFrIgUkACAFIAA2AnQgBSABNgJwIAUgAjYCbCAFIAM6AGsgBSAENgJkIAUgBSgCbEEARzoAHSAFQR5BLiAFLQBrQQFxGzYCKAJAAkAgBSgCbARAIAUoAmwQLyAFKAIorVQEQCAFKAJkQRNBABAUIAVCfzcDeAwDCwwBCyAFIAUoAnAgBSgCKK0gBUEwaiAFKAJkEEEiADYCbCAARQRAIAVCfzcDeAwCCwsgBSgCbEIEEB4hAEHxEkH2EiAFLQBrQQFxGygAACAAKAAARwRAIAUoAmRBE0EAEBQgBS0AHUEBcUUEQCAFKAJsEBYLIAVCfzcDeAwBCyAFKAJ0EE8CQCAFLQBrQQFxRQRAIAUoAmwQHSEAIAUoAnQgADsBCAwBCyAFKAJ0QQA7AQgLIAUoAmwQHSEAIAUoAnQgADsBCiAFKAJsEB0hACAFKAJ0IAA7AQwgBSgCbBAdQf//A3EhACAFKAJ0IAA2AhAgBSAFKAJsEB07AS4gBSAFKAJsEB07ASwgBS8BLiEBIAUvASwhAiMAQTBrIgAkACAAIAE7AS4gACACOwEsIABCADcCACAAQQA2AiggAEIANwIgIABCADcCGCAAQgA3AhAgAEIANwIIIABBADYCICAAIAAvASxBCXZB0ABqNgIUIAAgAC8BLEEFdkEPcUEBazYCECAAIAAvASxBH3E2AgwgACAALwEuQQt2NgIIIAAgAC8BLkEFdkE/cTYCBCAAIAAvAS5BAXRBPnE2AgAgABAMIQEgAEEwaiQAIAEhACAFKAJ0IAA2AhQgBSgCbBAqIQAgBSgCdCAANgIYIAUoAmwQKq0hBiAFKAJ0IAY3AyAgBSgCbBAqrSEGIAUoAnQgBjcDKCAFIAUoAmwQHTsBIiAFIAUoAmwQHTsBHgJAIAUtAGtBAXEEQCAFQQA7ASAgBSgCdEEANgI8IAUoAnRBADsBQCAFKAJ0QQA2AkQgBSgCdEIANwNIDAELIAUgBSgCbBAdOwEgIAUoAmwQHUH//wNxIQAgBSgCdCAANgI8IAUoAmwQHSEAIAUoAnQgADsBQCAFKAJsECohACAFKAJ0IAA2AkQgBSgCbBAqrSEGIAUoAnQgBjcDSAsCfyMAQRBrIgAgBSgCbDYCDCAAKAIMLQAAQQFxRQsEQCAFKAJkQRRBABAUIAUtAB1BAXFFBEAgBSgCbBAWCyAFQn83A3gMAQsCQCAFKAJ0LwEMQQFxBEAgBSgCdC8BDEHAAHEEQCAFKAJ0Qf//AzsBUgwCCyAFKAJ0QQE7AVIMAQsgBSgCdEEAOwFSCyAFKAJ0QQA2AjAgBSgCdEEANgI0IAUoAnRBADYCOCAFIAUvASAgBS8BIiAFLwEeamo2AiQCQCAFLQAdQQFxBEAgBSgCbBAvIAUoAiStVARAIAUoAmRBFUEAEBQgBUJ/NwN4DAMLDAELIAUoAmwQFiAFIAUoAnAgBSgCJK1BACAFKAJkEEEiADYCbCAARQRAIAVCfzcDeAwCCwsgBS8BIgRAIAUoAmwgBSgCcCAFLwEiQQEgBSgCZBCNASEAIAUoAnQgADYCMCAFKAJ0KAIwRQRAAn8jAEEQayIAIAUoAmQ2AgwgACgCDCgCAEERRgsEQCAFKAJkQRVBABAUCyAFLQAdQQFxRQRAIAUoAmwQFgsgBUJ/NwN4DAILIAUoAnQvAQxBgBBxBEAgBSgCdCgCMEECEDpBBUYEQCAFKAJkQRVBABAUIAUtAB1BAXFFBEAgBSgCbBAWCyAFQn83A3gMAwsLCyAFLwEeBEAgBSAFKAJsIAUoAnAgBS8BHkEAIAUoAmQQYDYCGCAFKAIYRQRAIAUtAB1BAXFFBEAgBSgCbBAWCyAFQn83A3gMAgsgBSgCGCAFLwEeQYACQYAEIAUtAGtBAXEbIAUoAnRBNGogBSgCZBCIAUEBcUUEQCAFKAIYEBUgBS0AHUEBcUUEQCAFKAJsEBYLIAVCfzcDeAwCCyAFKAIYEBUgBS0Aa0EBcQRAIAUoAnRBAToABAsLIAUvASAEQCAFKAJsIAUoAnAgBS8BIEEAIAUoAmQQjQEhACAFKAJ0IAA2AjggBSgCdCgCOEUEQCAFLQAdQQFxRQRAIAUoAmwQFgsgBUJ/NwN4DAILIAUoAnQvAQxBgBBxBEAgBSgCdCgCOEECEDpBBUYEQCAFKAJkQRVBABAUIAUtAB1BAXFFBEAgBSgCbBAWCyAFQn83A3gMAwsLCyAFKAJ0QfXgASAFKAJ0KAIwEMUBIQAgBSgCdCAANgIwIAUoAnRB9cYBIAUoAnQoAjgQxQEhACAFKAJ0IAA2AjgCQAJAIAUoAnQpAyhC/////w9RDQAgBSgCdCkDIEL/////D1ENACAFKAJ0KQNIQv////8PUg0BCyAFIAUoAnQoAjQgBUEWakEBQYACQYAEIAUtAGtBAXEbIAUoAmQQXzYCDCAFKAIMRQRAIAUtAB1BAXFFBEAgBSgCbBAWCyAFQn83A3gMAgsgBSAFKAIMIAUvARatECkiADYCECAARQRAIAUoAmRBDkEAEBQgBS0AHUEBcUUEQCAFKAJsEBYLIAVCfzcDeAwCCwJAIAUoAnQpAyhC/////w9RBEAgBSgCEBAwIQYgBSgCdCAGNwMoDAELIAUtAGtBAXEEQCAFKAIQIQEjAEEgayIAJAAgACABNgIYIABCCDcDECAAIAAoAhgpAxAgACkDEHw3AwgCQCAAKQMIIAAoAhgpAxBUBEAgACgCGEEAOgAAIABBfzYCHAwBCyAAIAAoAhggACkDCBAsNgIcCyAAKAIcGiAAQSBqJAALCyAFKAJ0KQMgQv////8PUQRAIAUoAhAQMCEGIAUoAnQgBjcDIAsgBS0Aa0EBcUUEQCAFKAJ0KQNIQv////8PUQRAIAUoAhAQMCEGIAUoAnQgBjcDSAsgBSgCdCgCPEH//wNGBEAgBSgCEBAqIQAgBSgCdCAANgI8CwsgBSgCEBBHQQFxRQRAIAUoAmRBFUEAEBQgBSgCEBAWIAUtAB1BAXFFBEAgBSgCbBAWCyAFQn83A3gMAgsgBSgCEBAWCwJ/IwBBEGsiACAFKAJsNgIMIAAoAgwtAABBAXFFCwRAIAUoAmRBFEEAEBQgBS0AHUEBcUUEQCAFKAJsEBYLIAVCfzcDeAwBCyAFLQAdQQFxRQRAIAUoAmwQFgsgBSgCdCkDSEL///////////8AVgRAIAUoAmRBBEEWEBQgBUJ/NwN4DAELAn8gBSgCdCEBIAUoAmQhAiMAQSBrIgAkACAAIAE2AhggACACNgIUAkAgACgCGCgCEEHjAEcEQCAAQQE6AB8MAQsgACAAKAIYKAI0IABBEmpBgbICQYAGQQAQXzYCCAJAIAAoAggEQCAALwESQQdPDQELIAAoAhRBFUEAEBQgAEEAOgAfDAELIAAgACgCCCAALwESrRApIgE2AgwgAUUEQCAAKAIUQRRBABAUIABBADoAHwwBCyAAQQE6AAcCQAJAAkAgACgCDBAdQQFrDgICAAELIAAoAhgpAyhCFFQEQCAAQQA6AAcLDAELIAAoAhRBGEEAEBQgACgCDBAWIABBADoAHwwBCyAAKAIMQgIQHi8AAEHBigFHBEAgACgCFEEYQQAQFCAAKAIMEBYgAEEAOgAfDAELAkACQAJAAkACQCAAKAIMEI8BQQFrDgMAAQIDCyAAQYECOwEEDAMLIABBggI7AQQMAgsgAEGDAjsBBAwBCyAAKAIUQRhBABAUIAAoAgwQFiAAQQA6AB8MAQsgAC8BEkEHRwRAIAAoAhRBFUEAEBQgACgCDBAWIABBADoAHwwBCyAAKAIYIAAtAAdBAXE6AAYgACgCGCAALwEEOwFSIAAoAgwQHUH//wNxIQEgACgCGCABNgIQIAAoAgwQFiAAQQE6AB8LIAAtAB9BAXEhASAAQSBqJAAgAUEBcUULBEAgBUJ/NwN4DAELIAUoAnQoAjQQhwEhACAFKAJ0IAA2AjQgBSAFKAIoIAUoAiRqrTcDeAsgBSkDeCEGIAVBgAFqJAAgBgsYAEGomwFCADcCAEGwmwFBADYCAEGomwELCABBAUEMEHYLBwAgACgCLAsHACAAKAIoCwcAIAAoAhgLtQkBAX8jAEHgwABrIgUkACAFIAA2AtRAIAUgATYC0EAgBSACNgLMQCAFIAM3A8BAIAUgBDYCvEAgBSAFKALQQDYCuEACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBSgCvEAOEQMEAAYBAgUJCgoKCgoKCAoHCgsgBUIANwPYQAwKCyAFIAUoArhAQeQAaiAFKALMQCAFKQPAQBBCNwPYQAwJCyAFKAK4QBAVIAVCADcD2EAMCAsgBSgCuEAoAhAEQCAFIAUoArhAKAIQIAUoArhAKQMYIAUoArhAQeQAahBlIgM3A5hAIANQBEAgBUJ/NwPYQAwJCyAFKAK4QCkDCCAFKAK4QCkDCCAFKQOYQHxWBEAgBSgCuEBB5ABqQRVBABAUIAVCfzcD2EAMCQsgBSgCuEAiACAFKQOYQCAAKQMAfDcDACAFKAK4QCIAIAUpA5hAIAApAwh8NwMIIAUoArhAQQA2AhALIAUoArhALQB4QQFxRQRAIAVCADcDqEADQCAFKQOoQCAFKAK4QCkDAFQEQCAFIAUoArhAKQMAIAUpA6hAfUKAwABWBH5CgMAABSAFKAK4QCkDACAFKQOoQH0LNwOgQCAFIAUoAtRAIAVBEGogBSkDoEAQLiIDNwOwQCADQgBTBEAgBSgCuEBB5ABqIAUoAtRAEBcgBUJ/NwPYQAwLCyAFKQOwQFAEQCAFKAK4QEHkAGpBEUEAEBQgBUJ/NwPYQAwLBSAFIAUpA7BAIAUpA6hAfDcDqEAMAgsACwsLIAUoArhAIAUoArhAKQMANwMgIAVCADcD2EAMBwsgBSkDwEAgBSgCuEApAwggBSgCuEApAyB9VgRAIAUgBSgCuEApAwggBSgCuEApAyB9NwPAQAsgBSkDwEBQBEAgBUIANwPYQAwHCyAFKAK4QC0AeEEBcQRAIAUoAtRAIAUoArhAKQMgQQAQJ0EASARAIAUoArhAQeQAaiAFKALUQBAXIAVCfzcD2EAMCAsLIAUgBSgC1EAgBSgCzEAgBSkDwEAQLiIDNwOwQCADQgBTBEAgBSgCuEBB5ABqQRFBABAUIAVCfzcD2EAMBwsgBSgCuEAiACAFKQOwQCAAKQMgfDcDICAFKQOwQFAEQCAFKAK4QCkDICAFKAK4QCkDCFQEQCAFKAK4QEHkAGpBEUEAEBQgBUJ/NwPYQAwICwsgBSAFKQOwQDcD2EAMBgsgBSAFKAK4QCkDICAFKAK4QCkDAH0gBSgCuEApAwggBSgCuEApAwB9IAUoAsxAIAUpA8BAIAUoArhAQeQAahCRATcDCCAFKQMIQgBTBEAgBUJ/NwPYQAwGCyAFKAK4QCAFKQMIIAUoArhAKQMAfDcDICAFQgA3A9hADAULIAUgBSgCzEA2AgQgBSgCBCAFKAK4QEEoaiAFKAK4QEHkAGoQlQFBAEgEQCAFQn83A9hADAULIAVCADcD2EAMBAsgBSAFKAK4QCwAYKw3A9hADAMLIAUgBSgCuEApA3A3A9hADAILIAUgBSgCuEApAyAgBSgCuEApAwB9NwPYQAwBCyAFKAK4QEHkAGpBHEEAEBQgBUJ/NwPYQAsgBSkD2EAhAyAFQeDAAGokACADCwcAIAAoAhALIgEBfyMAQRBrIgEgADYCDCABKAIMIgAgACgCMEEBajYCMAsHACAAKAIICxQAIAAgAa0gAq1CIIaEIAMgBBB/CxMBAX4gABBKIgFCIIinEAAgAacLEgAgACABrSACrUIghoQgAxAnCx8BAX4gACABIAKtIAOtQiCGhBAuIgRCIIinEAAgBKcLFQAgACABrSACrUIghoQgAyAEEMMBCxQAIAAgASACrSADrUIghoQgBBB+C60EAQF/IwBBIGsiBSQAIAUgADYCGCAFIAGtIAKtQiCGhDcDECAFIAM2AgwgBSAENgIIAkACQCAFKQMQIAUoAhgpAzBUBEAgBSgCCEEJTQ0BCyAFKAIYQQhqQRJBABAUIAVBfzYCHAwBCyAFKAIYKAIYQQJxBEAgBSgCGEEIakEZQQAQFCAFQX82AhwMAQsCfyAFKAIMIQEjAEEQayIAJAAgACABNgIIIABBAToABwJAIAAoAghFBEAgAEEBOgAPDAELIAAgACgCCCAALQAHQQFxELMBQQBHOgAPCyAALQAPQQFxIQEgAEEQaiQAIAFFCwRAIAUoAhhBCGpBEEEAEBQgBUF/NgIcDAELIAUgBSgCGCgCQCAFKQMQp0EEdGo2AgQgBSAFKAIEKAIABH8gBSgCBCgCACgCEAVBfws2AgACQCAFKAIMIAUoAgBGBEAgBSgCBCgCBARAIAUoAgQoAgQiACAAKAIAQX5xNgIAIAUoAgQoAgRBADsBUCAFKAIEKAIEKAIARQRAIAUoAgQoAgQQOSAFKAIEQQA2AgQLCwwBCyAFKAIEKAIERQRAIAUoAgQoAgAQPyEAIAUoAgQgADYCBCAARQRAIAUoAhhBCGpBDkEAEBQgBUF/NgIcDAMLCyAFKAIEKAIEIAUoAgw2AhAgBSgCBCgCBCAFKAIIOwFQIAUoAgQoAgQiACAAKAIAQQFyNgIACyAFQQA2AhwLIAUoAhwhACAFQSBqJAAgAAsXAQF+IAAgASACEHMiA0IgiKcQACADpwuuAQIBfwF+An8jAEEgayICIAA2AhQgAiABNgIQAkAgAigCFEUEQCACQn83AxgMAQsgAigCEEEIcQRAIAIgAigCFCkDMDcDCANAIAIpAwhCAFIEfyACKAIUKAJAIAIpAwhCAX2nQQR0aigCAAVBAQtFBEAgAiACKQMIQgF9NwMIDAELCyACIAIpAwg3AxgMAQsgAiACKAIUKQMwNwMYCyACKQMYIgNCIIinCxAAIAOnCxMAIAAgAa0gAq1CIIaEIAMQxAELiAICAX8BfgJ/IwBBIGsiBCQAIAQgADYCFCAEIAE2AhAgBCACrSADrUIghoQ3AwgCQCAEKAIURQRAIARCfzcDGAwBCyAEKAIUKAIEBEAgBEJ/NwMYDAELIAQpAwhC////////////AFYEQCAEKAIUQQRqQRJBABAUIARCfzcDGAwBCwJAIAQoAhQtABBBAXFFBEAgBCkDCFBFDQELIARCADcDGAwBCyAEIAQoAhQoAhQgBCgCECAEKQMIEC4iBTcDACAFQgBTBEAgBCgCFEEEaiAEKAIUKAIUEBcgBEJ/NwMYDAELIAQgBCkDADcDGAsgBCkDGCEFIARBIGokACAFQiCIpwsQACAFpwtPAQF/IwBBIGsiBCQAIAQgADYCHCAEIAGtIAKtQiCGhDcDECAEIAM2AgwgBCgCHCAEKQMQIAQoAgwgBCgCHCgCHBCtASEAIARBIGokACAAC9kDAQF/IwBBIGsiBSQAIAUgADYCGCAFIAGtIAKtQiCGhDcDECAFIAM2AgwgBSAENgIIAkAgBSgCGCAFKQMQQQBBABBFRQRAIAVBfzYCHAwBCyAFKAIYKAIYQQJxBEAgBSgCGEEIakEZQQAQFCAFQX82AhwMAQsgBSgCGCgCQCAFKQMQp0EEdGooAggEQCAFKAIYKAJAIAUpAxCnQQR0aigCCCAFKAIMEGhBAEgEQCAFKAIYQQhqQQ9BABAUIAVBfzYCHAwCCyAFQQA2AhwMAQsgBSAFKAIYKAJAIAUpAxCnQQR0ajYCBCAFIAUoAgQoAgAEfyAFKAIMIAUoAgQoAgAoAhRHBUEBC0EBcTYCAAJAIAUoAgAEQCAFKAIEKAIERQRAIAUoAgQoAgAQPyEAIAUoAgQgADYCBCAARQRAIAUoAhhBCGpBDkEAEBQgBUF/NgIcDAQLCyAFKAIEKAIEIAUoAgw2AhQgBSgCBCgCBCIAIAAoAgBBIHI2AgAMAQsgBSgCBCgCBARAIAUoAgQoAgQiACAAKAIAQV9xNgIAIAUoAgQoAgQoAgBFBEAgBSgCBCgCBBA5IAUoAgRBADYCBAsLCyAFQQA2AhwLIAUoAhwhACAFQSBqJAAgAAsXACAAIAGtIAKtQiCGhCADIAQgBRCZAQsXACAAIAGtIAKtQiCGhCADIAQgBRCXAQuPAQIBfwF+An8jAEEgayIEJAAgBCAANgIUIAQgATYCECAEIAI2AgwgBCADNgIIAkACQCAEKAIQBEAgBCgCDA0BCyAEKAIUQQhqQRJBABAUIARCfzcDGAwBCyAEIAQoAhQgBCgCECAEKAIMIAQoAggQmgE3AxgLIAQpAxghBSAEQSBqJAAgBUIgiKcLEAAgBacLiAEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCMAQRBrIgAgAigCDDYCDCAAKAIMQQA2AgAgACgCDEEANgIEIAAoAgxBADYCCCACKAIMIAIoAgg2AgACQCACKAIMEJYBQQFGBEAgAigCDEG0mwEoAgA2AgQMAQsgAigCDEEANgIECyACQRBqJAALhQUCAX8BfgJ/IwBBMGsiAyQAIAMgADYCJCADIAE2AiAgAyACNgIcAkAgAygCJCgCGEECcQRAIAMoAiRBCGpBGUEAEBQgA0J/NwMoDAELIAMoAiBFBEAgAygCJEEIakESQQAQFCADQn83AygMAQsgA0EANgIMIAMgAygCIBArNgIYIAMoAiAgAygCGEEBa2osAABBL0cEQCADIAMoAhhBAmoQGCIANgIMIABFBEAgAygCJEEIakEOQQAQFCADQn83AygMAgsCQAJAIAMoAgwiASADKAIgIgBzQQNxDQAgAEEDcQRAA0AgASAALQAAIgI6AAAgAkUNAyABQQFqIQEgAEEBaiIAQQNxDQALCyAAKAIAIgJBf3MgAkGBgoQIa3FBgIGChHhxDQADQCABIAI2AgAgACgCBCECIAFBBGohASAAQQRqIQAgAkGBgoQIayACQX9zcUGAgYKEeHFFDQALCyABIAAtAAAiAjoAACACRQ0AA0AgASAALQABIgI6AAEgAUEBaiEBIABBAWohACACDQALCyADKAIMIAMoAhhqQS86AAAgAygCDCADKAIYQQFqakEAOgAACyADIAMoAiRBAEIAQQAQfiIANgIIIABFBEAgAygCDBAVIANCfzcDKAwBCyADIAMoAiQCfyADKAIMBEAgAygCDAwBCyADKAIgCyADKAIIIAMoAhwQmgE3AxAgAygCDBAVAkAgAykDEEIAUwRAIAMoAggQGwwBCyADKAIkIAMpAxBBAEEDQYCA/I8EEJkBQQBIBEAgAygCJCADKQMQEJgBGiADQn83AygMAgsLIAMgAykDEDcDKAsgAykDKCEEIANBMGokACAEQiCIpwsQACAEpwsRACAAIAGtIAKtQiCGhBCYAQt/AgF/AX4jAEEgayIDJAAgAyAANgIYIAMgATYCFCADIAI2AhAgAyADKAIYIAMoAhQgAygCEBBzIgQ3AwgCQCAEQgBTBEAgA0EANgIcDAELIAMgAygCGCADKQMIIAMoAhAgAygCGCgCHBCtATYCHAsgAygCHCEAIANBIGokACAAC8QBAQF/IwBBMGsiASQAIAEgADYCKCABQQA2AiQgAUIANwMYAkADQCABKQMYIAEoAigpAzBUBEAgASABKAIoIAEpAxhBACABQRdqIAFBEGoQlwE2AgwgASgCDEF/RgRAIAFBfzYCLAwDBQJAIAEtABdBA0cNACABKAIQQRB2QYDgA3FBgMACRw0AIAEgASgCJEEBajYCJAsgASABKQMYQgF8NwMYDAILAAsLIAEgASgCJDYCLAsgASgCLCEAIAFBMGokACAACxAAIwAgAGtBcHEiACQAIAALBgAgACQACwQAIwALggECAX8BfiMAQSBrIgQkACAEIAA2AhggBCABNgIUIAQgAjYCECAEIAM2AgwgBCAEKAIYIAQoAhQgBCgCEBBzIgU3AwACQCAFQgBTBEAgBEF/NgIcDAELIAQgBCgCGCAEKQMAIAQoAhAgBCgCDBB/NgIcCyAEKAIcIQAgBEEgaiQAIAAL0EUDBn8BfgJ8IwBB4ABrIgEkACABIAA2AlgCQCABKAJYRQRAIAFBfzYCXAwBCyMAQSBrIgAgASgCWDYCHCAAIAFBQGs2AhggAEEANgIUIABCADcDAAJAIAAoAhwtAChBAXFFBEAgACgCHCgCGCAAKAIcKAIURg0BCyAAQQE2AhQLIABCADcDCANAIAApAwggACgCHCkDMFQEQAJAAkAgACgCHCgCQCAAKQMIp0EEdGooAggNACAAKAIcKAJAIAApAwinQQR0ai0ADEEBcQ0AIAAoAhwoAkAgACkDCKdBBHRqKAIERQ0BIAAoAhwoAkAgACkDCKdBBHRqKAIEKAIARQ0BCyAAQQE2AhQLIAAoAhwoAkAgACkDCKdBBHRqLQAMQQFxRQRAIAAgACkDAEIBfDcDAAsgACAAKQMIQgF8NwMIDAELCyAAKAIYBEAgACgCGCAAKQMANwMACyABIAAoAhQ2AiQgASkDQFAEQAJAIAEoAlgoAgRBCHFFBEAgASgCJEUNAQsCfyABKAJYKAIAIQIjAEEQayIAJAAgACACNgIIAkAgACgCCCgCJEEDRgRAIABBADYCDAwBCyAAKAIIKAIgBEAgACgCCBAxQQBIBEAgAEF/NgIMDAILCyAAKAIIKAIkBEAgACgCCBBnCyAAKAIIQQBCAEEPECFCAFMEQCAAQX82AgwMAQsgACgCCEEDNgIkIABBADYCDAsgACgCDCECIABBEGokACACQQBICwRAAkACfyMAQRBrIgAgASgCWCgCADYCDCMAQRBrIgIgACgCDEEMajYCDCACKAIMKAIAQRZGCwRAIwBBEGsiACABKAJYKAIANgIMIwBBEGsiAiAAKAIMQQxqNgIMIAIoAgwoAgRBLEYNAQsgASgCWEEIaiABKAJYKAIAEBcgAUF/NgJcDAQLCwsgASgCWBA9IAFBADYCXAwBCyABKAIkRQRAIAEoAlgQPSABQQA2AlwMAQsgASkDQCABKAJYKQMwVgRAIAEoAlhBCGpBFEEAEBQgAUF/NgJcDAELIAEgASkDQKdBA3QQGCIANgIoIABFBEAgAUF/NgJcDAELIAFCfzcDOCABQgA3A0ggAUIANwNQA0AgASkDUCABKAJYKQMwVARAAkAgASgCWCgCQCABKQNQp0EEdGooAgBFDQACQCABKAJYKAJAIAEpA1CnQQR0aigCCA0AIAEoAlgoAkAgASkDUKdBBHRqLQAMQQFxDQAgASgCWCgCQCABKQNQp0EEdGooAgRFDQEgASgCWCgCQCABKQNQp0EEdGooAgQoAgBFDQELIAECfiABKQM4IAEoAlgoAkAgASkDUKdBBHRqKAIAKQNIVARAIAEpAzgMAQsgASgCWCgCQCABKQNQp0EEdGooAgApA0gLNwM4CyABKAJYKAJAIAEpA1CnQQR0ai0ADEEBcUUEQCABKQNIIAEpA0BaBEAgASgCKBAVIAEoAlhBCGpBFEEAEBQgAUF/NgJcDAQLIAEoAiggASkDSKdBA3RqIAEpA1A3AwAgASABKQNIQgF8NwNICyABIAEpA1BCAXw3A1AMAQsLIAEpA0ggASkDQFQEQCABKAIoEBUgASgCWEEIakEUQQAQFCABQX82AlwMAQsCQAJ/IwBBEGsiACABKAJYKAIANgIMIAAoAgwpAxhCgIAIg1ALBEAgAUIANwM4DAELIAEpAzhCf1EEQCABQn83AxggAUIANwM4IAFCADcDUANAIAEpA1AgASgCWCkDMFQEQCABKAJYKAJAIAEpA1CnQQR0aigCAARAIAEoAlgoAkAgASkDUKdBBHRqKAIAKQNIIAEpAzhaBEAgASABKAJYKAJAIAEpA1CnQQR0aigCACkDSDcDOCABIAEpA1A3AxgLCyABIAEpA1BCAXw3A1AMAQsLIAEpAxhCf1IEQCABKAJYIQIgASkDGCEHIAEoAlhBCGohAyMAQTBrIgAkACAAIAI2AiQgACAHNwMYIAAgAzYCFCAAIAAoAiQgACkDGCAAKAIUEGUiBzcDCAJAIAdQBEAgAEIANwMoDAELIAAgACgCJCgCQCAAKQMYp0EEdGooAgA2AgQCQCAAKQMIIAApAwggACgCBCkDIHxYBEAgACkDCCAAKAIEKQMgfEL///////////8AWA0BCyAAKAIUQQRBFhAUIABCADcDKAwBCyAAIAAoAgQpAyAgACkDCHw3AwggACgCBC8BDEEIcQRAIAAoAiQoAgAgACkDCEEAECdBAEgEQCAAKAIUIAAoAiQoAgAQFyAAQgA3AygMAgsgACgCJCgCACAAQgQQLkIEUgRAIAAoAhQgACgCJCgCABAXIABCADcDKAwCCyAAKAAAQdCWncAARgRAIAAgACkDCEIEfDcDCAsgACAAKQMIQgx8NwMIIAAoAgRBABBeQQFxBEAgACAAKQMIQgh8NwMICyAAKQMIQv///////////wBWBEAgACgCFEEEQRYQFCAAQgA3AygMAgsLIAAgACkDCDcDKAsgACkDKCEHIABBMGokACABIAc3AzggB1AEQCABKAIoEBUgAUF/NgJcDAQLCwsgASkDOEIAUgRAAn8gASgCWCgCACECIAEpAzghByMAQRBrIgAkACAAIAI2AgggACAHNwMAAkAgACgCCCgCJEEBRgRAIAAoAghBDGpBEkEAEBQgAEF/NgIMDAELIAAoAghBACAAKQMAQREQIUIAUwRAIABBfzYCDAwBCyAAKAIIQQE2AiQgAEEANgIMCyAAKAIMIQIgAEEQaiQAIAJBAEgLBEAgAUIANwM4CwsLIAEpAzhQBEACfyABKAJYKAIAIQIjAEEQayIAJAAgACACNgIIAkAgACgCCCgCJEEBRgRAIAAoAghBDGpBEkEAEBQgAEF/NgIMDAELIAAoAghBAEIAQQgQIUIAUwRAIABBfzYCDAwBCyAAKAIIQQE2AiQgAEEANgIMCyAAKAIMIQIgAEEQaiQAIAJBAEgLBEAgASgCWEEIaiABKAJYKAIAEBcgASgCKBAVIAFBfzYCXAwCCwsgASgCWCgCVCECIwBBEGsiACQAIAAgAjYCDCAAKAIMBEAgACgCDEQAAAAAAAAAADkDGCAAKAIMKAIARAAAAAAAAAAAIAAoAgwoAgwgACgCDCgCBBEWAAsgAEEQaiQAIAFBADYCLCABQgA3A0gDQAJAIAEpA0ggASkDQFoNACABKAJYKAJUIQIgASkDSCIHuiABKQNAuiIIoyEJIwBBIGsiACQAIAAgAjYCHCAAIAk5AxAgACAHQgF8uiAIozkDCCAAKAIcBEAgACgCHCAAKwMQOQMgIAAoAhwgACsDCDkDKCAAKAIcRAAAAAAAAAAAEFYLIABBIGokACABIAEoAiggASkDSKdBA3RqKQMANwNQIAEgASgCWCgCQCABKQNQp0EEdGo2AhACQAJAIAEoAhAoAgBFDQAgASgCECgCACkDSCABKQM4Wg0ADAELIAECf0EBIAEoAhAoAggNABogASgCECgCBARAQQEgASgCECgCBCgCAEEBcQ0BGgsgASgCECgCBAR/IAEoAhAoAgQoAgBBwABxQQBHBUEACwtBAXE2AhQgASgCECgCBEUEQCABKAIQKAIAED8hACABKAIQIAA2AgQgAEUEQCABKAJYQQhqQQ5BABAUIAFBATYCLAwDCwsgASABKAIQKAIENgIMAn8gASgCWCECIAEpA1AhByMAQTBrIgAkACAAIAI2AiggACAHNwMgAkAgACkDICAAKAIoKQMwWgRAIAAoAihBCGpBEkEAEBQgAEF/NgIsDAELIAAgACgCKCgCQCAAKQMgp0EEdGo2AhwCQCAAKAIcKAIABEAgACgCHCgCAC0ABEEBcUUNAQsgAEEANgIsDAELIAAoAhwoAgApA0hCGnxC////////////AFYEQCAAKAIoQQhqQQRBFhAUIABBfzYCLAwBCyAAKAIoKAIAIAAoAhwoAgApA0hCGnxBABAnQQBIBEAgACgCKEEIaiAAKAIoKAIAEBcgAEF/NgIsDAELIAAgACgCKCgCAEIEIABBGGogACgCKEEIahBBIgI2AhQgAkUEQCAAQX82AiwMAQsgACAAKAIUEB07ARIgACAAKAIUEB07ARAgACgCFBBHQQFxRQRAIAAoAhQQFiAAKAIoQQhqQRRBABAUIABBfzYCLAwBCyAAKAIUEBYgAC8BEARAIAAoAigoAgAgAC8BEq1BARAnQQBIBEAgACgCKEEIakEEQbSbASgCABAUIABBfzYCLAwCCyAAQQAgACgCKCgCACAALwEQQQAgACgCKEEIahBgNgIIIAAoAghFBEAgAEF/NgIsDAILIAAoAgggAC8BEEGAAiAAQQxqIAAoAihBCGoQiAFBAXFFBEAgACgCCBAVIABBfzYCLAwCCyAAKAIIEBUgACgCDARAIAAgACgCDBCHATYCDCAAKAIcKAIAKAI0IAAoAgwQiQEhAiAAKAIcKAIAIAI2AjQLCyAAKAIcKAIAQQE6AAQCQCAAKAIcKAIERQ0AIAAoAhwoAgQtAARBAXENACAAKAIcKAIEIAAoAhwoAgAoAjQ2AjQgACgCHCgCBEEBOgAECyAAQQA2AiwLIAAoAiwhAiAAQTBqJAAgAkEASAsEQCABQQE2AiwMAgsgASABKAJYKAIAEDQiBzcDMCAHQgBTBEAgAUEBNgIsDAILIAEoAgwgASkDMDcDSAJAIAEoAhQEQCABQQA2AgggASgCECgCCEUEQCABIAEoAlggASgCWCABKQNQQQhBABCuASIANgIIIABFBEAgAUEBNgIsDAULCwJ/IAEoAlghAgJ/IAEoAggEQCABKAIIDAELIAEoAhAoAggLIQMgASgCDCEEIwBBoAFrIgAkACAAIAI2ApgBIAAgAzYClAEgACAENgKQAQJAIAAoApQBIABBOGoQOEEASARAIAAoApgBQQhqIAAoApQBEBcgAEF/NgKcAQwBCyAAKQM4QsAAg1AEQCAAIAApAzhCwACENwM4IABBADsBaAsCQAJAIAAoApABKAIQQX9HBEAgACgCkAEoAhBBfkcNAQsgAC8BaEUNACAAKAKQASAALwFoNgIQDAELAkACQCAAKAKQASgCEA0AIAApAzhCBINQDQAgACAAKQM4QgiENwM4IAAgACkDUDcDWAwBCyAAIAApAzhC9////w+DNwM4CwsgACkDOEKAAYNQBEAgACAAKQM4QoABhDcDOCAAQQA7AWoLIABBgAI2AiQCQCAAKQM4QgSDUARAIAAgACgCJEGACHI2AiQgAEJ/NwNwDAELIAAoApABIAApA1A3AyggACAAKQNQNwNwAkAgACkDOEIIg1AEQAJAAkACQAJAAkACfwJAIAAoApABKAIQQX9HBEAgACgCkAEoAhBBfkcNAQtBCAwBCyAAKAKQASgCEAtB//8DcQ4NAgMDAwMDAwMBAwMDAAMLIABClMLk8w83AxAMAwsgAEKDg7D/DzcDEAwCCyAAQv////8PNwMQDAELIABCADcDEAsgACkDUCAAKQMQVgRAIAAgACgCJEGACHI2AiQLDAELIAAoApABIAApA1g3AyALCyAAIAAoApgBKAIAEDQiBzcDiAEgB0IAUwRAIAAoApgBQQhqIAAoApgBKAIAEBcgAEF/NgKcAQwBCyAAKAKQASICIAIvAQxB9/8DcTsBDCAAIAAoApgBIAAoApABIAAoAiQQUCICNgIoIAJBAEgEQCAAQX82ApwBDAELIAAgAC8BaAJ/AkAgACgCkAEoAhBBf0cEQCAAKAKQASgCEEF+Rw0BC0EIDAELIAAoApABKAIQC0H//wNxRzoAIiAAIAAtACJBAXEEfyAALwFoQQBHBUEAC0EBcToAISAAIAAvAWgEfyAALQAhBUEBC0EBcToAICAAIAAtACJBAXEEfyAAKAKQASgCEEEARwVBAAtBAXE6AB8gAAJ/QQEgAC0AIkEBcQ0AGkEBIAAoApABKAIAQYABcQ0AGiAAKAKQAS8BUiAALwFqRwtBAXE6AB4gACAALQAeQQFxBH8gAC8BakEARwVBAAtBAXE6AB0gACAALQAeQQFxBH8gACgCkAEvAVJBAEcFQQALQQFxOgAcIAAgACgClAE2AjQjAEEQayICIAAoAjQ2AgwgAigCDCICIAIoAjBBAWo2AjAgAC0AHUEBcQRAIAAgAC8BakEAEHwiAjYCDCACRQRAIAAoApgBQQhqQRhBABAUIAAoAjQQGyAAQX82ApwBDAILIAAgACgCmAEgACgCNCAALwFqQQAgACgCmAEoAhwgACgCDBEFACICNgIwIAJFBEAgACgCNBAbIABBfzYCnAEMAgsgACgCNBAbIAAgACgCMDYCNAsgAC0AIUEBcQRAIAAgACgCmAEgACgCNCAALwFoELABIgI2AjAgAkUEQCAAKAI0EBsgAEF/NgKcAQwCCyAAKAI0EBsgACAAKAIwNgI0CyAALQAgQQFxBEAgACAAKAKYASAAKAI0QQAQrwEiAjYCMCACRQRAIAAoAjQQGyAAQX82ApwBDAILIAAoAjQQGyAAIAAoAjA2AjQLIAAtAB9BAXEEQCAAKAKYASEDIAAoAjQhBCAAKAKQASgCECEFIAAoApABLwFQIQYjAEEQayICJAAgAiADNgIMIAIgBDYCCCACIAU2AgQgAiAGNgIAIAIoAgwgAigCCCACKAIEQQEgAigCABCyASEDIAJBEGokACAAIAMiAjYCMCACRQRAIAAoAjQQGyAAQX82ApwBDAILIAAoAjQQGyAAIAAoAjA2AjQLIAAtABxBAXEEQCAAQQA2AgQCQCAAKAKQASgCVARAIAAgACgCkAEoAlQ2AgQMAQsgACgCmAEoAhwEQCAAIAAoApgBKAIcNgIECwsgACAAKAKQAS8BUkEBEHwiAjYCCCACRQRAIAAoApgBQQhqQRhBABAUIAAoAjQQGyAAQX82ApwBDAILIAAgACgCmAEgACgCNCAAKAKQAS8BUkEBIAAoAgQgACgCCBEFACICNgIwIAJFBEAgACgCNBAbIABBfzYCnAEMAgsgACgCNBAbIAAgACgCMDYCNAsgACAAKAKYASgCABA0Igc3A4ABIAdCAFMEQCAAKAKYAUEIaiAAKAKYASgCABAXIABBfzYCnAEMAQsgACgCmAEhAyAAKAI0IQQgACkDcCEHIwBBwMAAayICJAAgAiADNgK4QCACIAQ2ArRAIAIgBzcDqEACQCACKAK0QBBJQQBIBEAgAigCuEBBCGogAigCtEAQFyACQX82ArxADAELIAJBADYCDCACQgA3AxADQAJAIAIgAigCtEAgAkEgakKAwAAQLiIHNwMYIAdCAFcNACACKAK4QCACQSBqIAIpAxgQNUEASARAIAJBfzYCDAUgAikDGEKAwABSDQIgAigCuEAoAlRFDQIgAikDqEBCAFcNAiACIAIpAxggAikDEHw3AxAgAigCuEAoAlQgAikDELkgAikDqEC5oxBWDAILCwsgAikDGEIAUwRAIAIoArhAQQhqIAIoArRAEBcgAkF/NgIMCyACKAK0QBAxGiACIAIoAgw2ArxACyACKAK8QCEDIAJBwMAAaiQAIAAgAzYCLCAAKAI0IABBOGoQOEEASARAIAAoApgBQQhqIAAoAjQQFyAAQX82AiwLIAAoAjQhAyMAQRBrIgIkACACIAM2AggCQANAIAIoAggEQCACKAIIKQMYQoCABINCAFIEQCACIAIoAghBAEIAQRAQITcDACACKQMAQgBTBEAgAkH/AToADwwECyACKQMAQgNVBEAgAigCCEEMakEUQQAQFCACQf8BOgAPDAQLIAIgAikDADwADwwDBSACIAIoAggoAgA2AggMAgsACwsgAkEAOgAPCyACLAAPIQMgAkEQaiQAIAAgAyICOgAjIAJBGHRBGHVBAEgEQCAAKAKYAUEIaiAAKAI0EBcgAEF/NgIsCyAAKAI0EBsgACgCLEEASARAIABBfzYCnAEMAQsgACAAKAKYASgCABA0Igc3A3ggB0IAUwRAIAAoApgBQQhqIAAoApgBKAIAEBcgAEF/NgKcAQwBCyAAKAKYASgCACAAKQOIARCbAUEASARAIAAoApgBQQhqIAAoApgBKAIAEBcgAEF/NgKcAQwBCyAAKQM4QuQAg0LkAFIEQCAAKAKYAUEIakEUQQAQFCAAQX82ApwBDAELIAAoApABKAIAQSBxRQRAAkAgACkDOEIQg0IAUgRAIAAoApABIAAoAmA2AhQMAQsgACgCkAFBFGoQARoLCyAAKAKQASAALwFoNgIQIAAoApABIAAoAmQ2AhggACgCkAEgACkDUDcDKCAAKAKQASAAKQN4IAApA4ABfTcDICAAKAKQASAAKAKQAS8BDEH5/wNxIAAtACNBAXRyOwEMIAAoApABIQMgACgCJEGACHFBAEchBCMAQRBrIgIkACACIAM2AgwgAiAEOgALAkAgAigCDCgCEEEORgRAIAIoAgxBPzsBCgwBCyACKAIMKAIQQQxGBEAgAigCDEEuOwEKDAELAkAgAi0AC0EBcUUEQCACKAIMQQAQXkEBcUUNAQsgAigCDEEtOwEKDAELAkAgAigCDCgCEEEIRwRAIAIoAgwvAVJBAUcNAQsgAigCDEEUOwEKDAELIAIgAigCDCgCMBBTIgM7AQggA0H//wNxBEAgAigCDCgCMCgCACACLwEIQQFrai0AAEEvRgRAIAIoAgxBFDsBCgwCCwsgAigCDEEKOwEKCyACQRBqJAAgACAAKAKYASAAKAKQASAAKAIkEFAiAjYCLCACQQBIBEAgAEF/NgKcAQwBCyAAKAIoIAAoAixHBEAgACgCmAFBCGpBFEEAEBQgAEF/NgKcAQwBCyAAKAKYASgCACAAKQN4EJsBQQBIBEAgACgCmAFBCGogACgCmAEoAgAQFyAAQX82ApwBDAELIABBADYCnAELIAAoApwBIQIgAEGgAWokACACQQBICwRAIAFBATYCLCABKAIIBEAgASgCCBAbCwwECyABKAIIBEAgASgCCBAbCwwBCyABKAIMIgAgAC8BDEH3/wNxOwEMIAEoAlggASgCDEGAAhBQQQBIBEAgAUEBNgIsDAMLIAEgASgCWCABKQNQIAEoAlhBCGoQZSIHNwMAIAdQBEAgAUEBNgIsDAMLIAEoAlgoAgAgASkDAEEAECdBAEgEQCABKAJYQQhqIAEoAlgoAgAQFyABQQE2AiwMAwsCfyABKAJYIQIgASgCDCkDICEHIwBBoMAAayIAJAAgACACNgKYQCAAIAc3A5BAIAAgACkDkEC6OQMAAkADQCAAKQOQQFBFBEAgACAAKQOQQEKAwABWBH5CgMAABSAAKQOQQAs+AgwgACgCmEAoAgAgAEEQaiAAKAIMrSAAKAKYQEEIahBhQQBIBEAgAEF/NgKcQAwDCyAAKAKYQCAAQRBqIAAoAgytEDVBAEgEQCAAQX82ApxADAMFIAAgACkDkEAgADUCDH03A5BAIAAoAphAKAJUIAArAwAgACkDkEC6oSAAKwMAoxBWDAILAAsLIABBADYCnEALIAAoApxAIQIgAEGgwABqJAAgAkEASAsEQCABQQE2AiwMAwsLCyABIAEpA0hCAXw3A0gMAQsLIAEoAixFBEACfyABKAJYIQAgASgCKCEDIAEpA0AhByMAQTBrIgIkACACIAA2AiggAiADNgIkIAIgBzcDGCACIAIoAigoAgAQNCIHNwMQAkAgB0IAUwRAIAJBfzYCLAwBCyACKAIoIQMgAigCJCEEIAIpAxghByMAQcABayIAJAAgACADNgK0ASAAIAQ2ArABIAAgBzcDqAEgACAAKAK0ASgCABA0Igc3AyACQCAHQgBTBEAgACgCtAFBCGogACgCtAEoAgAQFyAAQn83A7gBDAELIAAgACkDIDcDoAEgAEEAOgAXIABCADcDGANAIAApAxggACkDqAFUBEAgACAAKAK0ASgCQCAAKAKwASAAKQMYp0EDdGopAwCnQQR0ajYCDCAAIAAoArQBAn8gACgCDCgCBARAIAAoAgwoAgQMAQsgACgCDCgCAAtBgAQQUCIDNgIQIANBAEgEQCAAQn83A7gBDAMLIAAoAhAEQCAAQQE6ABcLIAAgACkDGEIBfDcDGAwBCwsgACAAKAK0ASgCABA0Igc3AyAgB0IAUwRAIAAoArQBQQhqIAAoArQBKAIAEBcgAEJ/NwO4AQwBCyAAIAApAyAgACkDoAF9NwOYAQJAIAApA6ABQv////8PWARAIAApA6gBQv//A1gNAQsgAEEBOgAXCyAAIABBMGpC4gAQKSIDNgIsIANFBEAgACgCtAFBCGpBDkEAEBQgAEJ/NwO4AQwBCyAALQAXQQFxBEAgACgCLEHnEkEEEEAgACgCLEIsEC0gACgCLEEtEB8gACgCLEEtEB8gACgCLEEAECAgACgCLEEAECAgACgCLCAAKQOoARAtIAAoAiwgACkDqAEQLSAAKAIsIAApA5gBEC0gACgCLCAAKQOgARAtIAAoAixB4hJBBBBAIAAoAixBABAgIAAoAiwgACkDoAEgACkDmAF8EC0gACgCLEEBECALIAAoAixB7BJBBBBAIAAoAixBABAgIAAoAiwgACkDqAFC//8DWgR+Qv//AwUgACkDqAELp0H//wNxEB8gACgCLCAAKQOoAUL//wNaBH5C//8DBSAAKQOoAQunQf//A3EQHyAAKAIsIAApA5gBQv////8PWgR/QX8FIAApA5gBpwsQICAAKAIsIAApA6ABQv////8PWgR/QX8FIAApA6ABpwsQICAAAn8gACgCtAEtAChBAXEEQCAAKAK0ASgCJAwBCyAAKAK0ASgCIAs2ApQBIAAoAiwCfyAAKAKUAQRAIAAoApQBLwEEDAELQQALQf//A3EQHwJ/IwBBEGsiAyAAKAIsNgIMIAMoAgwtAABBAXFFCwRAIAAoArQBQQhqQRRBABAUIAAoAiwQFiAAQn83A7gBDAELIAAoArQBAn8jAEEQayIDIAAoAiw2AgwgAygCDCgCBAsCfiMAQRBrIgMgACgCLDYCDAJ+IAMoAgwtAABBAXEEQCADKAIMKQMQDAELQgALCxA1QQBIBEAgACgCLBAWIABCfzcDuAEMAQsgACgCLBAWIAAoApQBBEAgACgCtAEgACgClAEoAgAgACgClAEvAQStEDVBAEgEQCAAQn83A7gBDAILCyAAIAApA5gBNwO4AQsgACkDuAEhByAAQcABaiQAIAIgBzcDACAHQgBTBEAgAkF/NgIsDAELIAIgAigCKCgCABA0Igc3AwggB0IAUwRAIAJBfzYCLAwBCyACQQA2AiwLIAIoAiwhACACQTBqJAAgAEEASAsEQCABQQE2AiwLCyABKAIoEBUgASgCLEUEQAJ/IAEoAlgoAgAhAiMAQRBrIgAkACAAIAI2AggCQCAAKAIIKAIkQQFHBEAgACgCCEEMakESQQAQFCAAQX82AgwMAQsgACgCCCgCIEEBSwRAIAAoAghBDGpBHUEAEBQgAEF/NgIMDAELIAAoAggoAiAEQCAAKAIIEDFBAEgEQCAAQX82AgwMAgsLIAAoAghBAEIAQQkQIUIAUwRAIAAoAghBAjYCJCAAQX82AgwMAQsgACgCCEEANgIkIABBADYCDAsgACgCDCECIABBEGokACACCwRAIAEoAlhBCGogASgCWCgCABAXIAFBATYCLAsLIAEoAlgoAlQhAiMAQRBrIgAkACAAIAI2AgwgACgCDEQAAAAAAADwPxBWIABBEGokACABKAIsBEAgASgCWCgCABBnIAFBfzYCXAwBCyABKAJYED0gAUEANgJcCyABKAJcIQAgAUHgAGokACAAC9IOAgd/An4jAEEwayIDJAAgAyAANgIoIAMgATYCJCADIAI2AiAjAEEQayIAIANBCGo2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggAygCKCEAIwBBIGsiBCQAIAQgADYCGCAEQgA3AxAgBEJ/NwMIIAQgA0EIajYCBAJAAkAgBCgCGARAIAQpAwhCf1kNAQsgBCgCBEESQQAQFCAEQQA2AhwMAQsgBCgCGCEAIAQpAxAhCiAEKQMIIQsgBCgCBCEBIwBBoAFrIgIkACACIAA2ApgBIAJBADYClAEgAiAKNwOIASACIAs3A4ABIAJBADYCfCACIAE2AngCQAJAIAIoApQBDQAgAigCmAENACACKAJ4QRJBABAUIAJBADYCnAEMAQsgAikDgAFCAFMEQCACQgA3A4ABCwJAIAIpA4gBQv///////////wBYBEAgAikDiAEgAikDiAEgAikDgAF8WA0BCyACKAJ4QRJBABAUIAJBADYCnAEMAQsgAkGIARAYIgA2AnQgAEUEQCACKAJ4QQ5BABAUIAJBADYCnAEMAQsgAigCdEEANgIYIAIoApgBBEAgAigCmAEiABArQQFqIgEQGCIFBH8gBSAAIAEQGQVBAAshACACKAJ0IAA2AhggAEUEQCACKAJ4QQ5BABAUIAIoAnQQFSACQQA2ApwBDAILCyACKAJ0IAIoApQBNgIcIAIoAnQgAikDiAE3A2ggAigCdCACKQOAATcDcAJAIAIoAnwEQCACKAJ0IgAgAigCfCIBKQMANwMgIAAgASkDMDcDUCAAIAEpAyg3A0ggACABKQMgNwNAIAAgASkDGDcDOCAAIAEpAxA3AzAgACABKQMINwMoIAIoAnRBADYCKCACKAJ0IgAgACkDIEL+////D4M3AyAMAQsgAigCdEEgahA7CyACKAJ0KQNwQgBSBEAgAigCdCACKAJ0KQNwNwM4IAIoAnQiACAAKQMgQgSENwMgCyMAQRBrIgAgAigCdEHYAGo2AgwgACgCDEEANgIAIAAoAgxBADYCBCAAKAIMQQA2AgggAigCdEEANgKAASACKAJ0QQA2AoQBIwBBEGsiACACKAJ0NgIMIAAoAgxBADYCACAAKAIMQQA2AgQgACgCDEEANgIIIAJBfzYCBCACQQc2AgBBDiACEDZCP4QhCiACKAJ0IAo3AxACQCACKAJ0KAIYBEAgAiACKAJ0KAIYIAJBGGoQpgFBAE46ABcgAi0AF0EBcUUEQAJAIAIoAnQpA2hQRQ0AIAIoAnQpA3BQRQ0AIAIoAnRC//8DNwMQCwsMAQsCQCACKAJ0KAIcIgAoAkxBAEgNAAsgACgCPCEAQQAhBSMAQSBrIgYkAAJ/AkAgACACQRhqIgkQCiIBQXhGBEAjAEEgayIHJAAgACAHQQhqEAkiCAR/QbSbASAINgIAQQAFQQELIQggB0EgaiQAIAgNAQsgAUGBYE8Ef0G0mwFBACABazYCAEF/BSABCwwBCwNAIAUgBmoiASAFQccSai0AADoAACAFQQ5HIQcgBUEBaiEFIAcNAAsCQCAABEBBDyEFIAAhAQNAIAFBCk8EQCAFQQFqIQUgAUEKbiEBDAELCyAFIAZqQQA6AAADQCAGIAVBAWsiBWogACAAQQpuIgFBCmxrQTByOgAAIABBCUshByABIQAgBw0ACwwBCyABQTA6AAAgBkEAOgAPCyAGIAkQAiIAQYFgTwR/QbSbAUEAIABrNgIAQX8FIAALCyEAIAZBIGokACACIABBAE46ABcLAkAgAi0AF0EBcUUEQCACKAJ0QdgAakEFQbSbASgCABAUDAELIAIoAnQpAyBCEINQBEAgAigCdCACKAJYNgJIIAIoAnQiACAAKQMgQhCENwMgCyACKAIkQYDgA3FBgIACRgRAIAIoAnRC/4EBNwMQIAIpA0AgAigCdCkDaCACKAJ0KQNwfFQEQCACKAJ4QRJBABAUIAIoAnQoAhgQFSACKAJ0EBUgAkEANgKcAQwDCyACKAJ0KQNwUARAIAIoAnQgAikDQCACKAJ0KQNofTcDOCACKAJ0IgAgACkDIEIEhDcDIAJAIAIoAnQoAhhFDQAgAikDiAFQRQ0AIAIoAnRC//8DNwMQCwsLCyACKAJ0IgAgACkDEEKAgBCENwMQIAJBHiACKAJ0IAIoAngQlAEiADYCcCAARQRAIAIoAnQoAhgQFSACKAJ0EBUgAkEANgKcAQwBCyACIAIoAnA2ApwBCyACKAKcASEAIAJBoAFqJAAgBCAANgIcCyAEKAIcIQAgBEEgaiQAIAMgADYCGAJAIABFBEAgAygCICADQQhqEJ0BIANBCGoQNyADQQA2AiwMAQsgAyADKAIYIAMoAiQgA0EIahCcASIANgIcIABFBEAgAygCGBAbIAMoAiAgA0EIahCdASADQQhqEDcgA0EANgIsDAELIANBCGoQNyADIAMoAhw2AiwLIAMoAiwhACADQTBqJAAgAAsYAQF/IwBBEGsiASAANgIMIAEoAgxBDGoLkh8BBn8jAEHgAGsiBCQAIAQgADYCVCAEIAE2AlAgBCACNwNIIAQgAzYCRCAEIAQoAlQ2AkAgBCAEKAJQNgI8AkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgBCgCRA4TBgcCDAQFCg4BAwkQCw8NCBERABELIARCADcDWAwRCyAEKAJAKAIYRQRAIAQoAkBBHEEAEBQgBEJ/NwNYDBELIAQoAkAhACMAQYABayIBJAAgASAANgJ4IAEgASgCeCgCGBArQQhqEBgiADYCdAJAIABFBEAgASgCeEEOQQAQFCABQX82AnwMAQsCQCABKAJ4KAIYIAFBEGoQpgFFBEAgASABKAIcNgJsDAELIAFBfzYCbAsgASgCdCEAIAEgASgCeCgCGDYCACAAQasSIAEQcCABKAJ0IQMgASgCbCEHIwBBMGsiACQAIAAgAzYCKCAAIAc2AiQgAEEANgIQIAAgACgCKCAAKAIoECtqNgIYIAAgACgCGEEBazYCHANAIAAoAhwgACgCKE8EfyAAKAIcLAAAQdgARgVBAAtBAXEEQCAAIAAoAhBBAWo2AhAgACAAKAIcQQFrNgIcDAELCwJAIAAoAhBFBEBBtJsBQRw2AgAgAEF/NgIsDAELIAAgACgCHEEBajYCHANAIwBBEGsiByQAAkACfyMAQRBrIgMkACADIAdBCGo2AgggA0EEOwEGIANB6AtBAEEAEG0iBTYCAAJAIAVBAEgEQCADQQA6AA8MAQsCfyADKAIAIQYgAygCCCEIIAMvAQYhCSMAQRBrIgUkACAFIAk2AgwgBSAINgIIIAYgBUEIakEBIAVBBGoQBiIGBH9BtJsBIAY2AgBBfwVBAAshBiAFKAIEIQggBUEQaiQAIAMvAQZBfyAIIAYbRwsEQCADKAIAEGwgA0EAOgAPDAELIAMoAgAQbCADQQE6AA8LIAMtAA9BAXEhBSADQRBqJAAgBQsEQCAHIAcoAgg2AgwMAQtBwKABLQAAQQFxRQRAQQAQASEGAkBByJkBKAIAIgNFBEBBzJkBKAIAIAY2AgAMAQtB0JkBQQNBA0EBIANBB0YbIANBH0YbNgIAQbygAUEANgIAQcyZASgCACEFIANBAU4EQCAGrSECQQAhBgNAIAUgBkECdGogAkKt/tXk1IX9qNgAfkIBfCICQiCIPgIAIAZBAWoiBiADRw0ACwsgBSAFKAIAQQFyNgIACwtBzJkBKAIAIQMCQEHImQEoAgAiBUUEQCADIAMoAgBB7ZyZjgRsQbngAGpB/////wdxIgM2AgAMAQsgA0HQmQEoAgAiBkECdGoiCCAIKAIAIANBvKABKAIAIghBAnRqKAIAaiIDNgIAQbygAUEAIAhBAWoiCCAFIAhGGzYCAEHQmQFBACAGQQFqIgYgBSAGRhs2AgAgA0EBdiEDCyAHIAM2AgwLIAcoAgwhAyAHQRBqJAAgACADNgIMIAAgACgCHDYCFANAIAAoAhQgACgCGEkEQCAAIAAoAgxBJHA6AAsCfyAALAALQQpIBEAgACwAC0EwagwBCyAALAALQdcAagshAyAAIAAoAhQiB0EBajYCFCAHIAM6AAAgACAAKAIMQSRuNgIMDAELCyAAKAIoIQMgACAAKAIkQX9GBH9BtgMFIAAoAiQLNgIAIAAgA0HCgSAgABBtIgM2AiAgA0EATgRAIAAoAiRBf0cEQCAAKAIoIAAoAiQQDyIDQYFgTwR/QbSbAUEAIANrNgIAQQAFIAMLGgsgACAAKAIgNgIsDAILQbSbASgCAEEURg0ACyAAQX82AiwLIAAoAiwhAyAAQTBqJAAgASADIgA2AnAgAEF/RgRAIAEoAnhBDEG0mwEoAgAQFCABKAJ0EBUgAUF/NgJ8DAELIAEgASgCcEGjEhChASIANgJoIABFBEAgASgCeEEMQbSbASgCABAUIAEoAnAQbCABKAJ0EG4aIAEoAnQQFSABQX82AnwMAQsgASgCeCABKAJoNgKEASABKAJ4IAEoAnQ2AoABIAFBADYCfAsgASgCfCEAIAFBgAFqJAAgBCAArDcDWAwQCyAEKAJAKAIYBEAgBCgCQCgCHBBVGiAEKAJAQQA2AhwLIARCADcDWAwPCyAEKAJAKAKEARBVQQBIBEAgBCgCQEEANgKEASAEKAJAQQZBtJsBKAIAEBQLIAQoAkBBADYChAEgBCgCQCgCgAEgBCgCQCgCGBAIIgBBgWBPBH9BtJsBQQAgAGs2AgBBfwUgAAtBAEgEQCAEKAJAQQJBtJsBKAIAEBQgBEJ/NwNYDA8LIAQoAkAoAoABEBUgBCgCQEEANgKAASAEQgA3A1gMDgsgBCAEKAJAIAQoAlAgBCkDSBBCNwNYDA0LIAQoAkAoAhgQFSAEKAJAKAKAARAVIAQoAkAoAhwEQCAEKAJAKAIcEFUaCyAEKAJAEBUgBEIANwNYDAwLIAQoAkAoAhgEQCAEKAJAKAIYIQEjAEEgayIAJAAgACABNgIYIABBADoAFyAAQYCAIDYCDAJAIAAtABdBAXEEQCAAIAAoAgxBAnI2AgwMAQsgACAAKAIMNgIMCyAAKAIYIQEgACgCDCEDIABBtgM2AgAgACABIAMgABBtIgE2AhACQCABQQBIBEAgAEEANgIcDAELIAAgACgCEEGjEkGgEiAALQAXQQFxGxChASIBNgIIIAFFBEAgAEEANgIcDAELIAAgACgCCDYCHAsgACgCHCEBIABBIGokACAEKAJAIAE2AhwgAUUEQCAEKAJAQQtBtJsBKAIAEBQgBEJ/NwNYDA0LCyAEKAJAKQNoQgBSBEAgBCgCQCgCHCAEKAJAKQNoIAQoAkAQnwFBAEgEQCAEQn83A1gMDQsLIAQoAkBCADcDeCAEQgA3A1gMCwsCQCAEKAJAKQNwQgBSBEAgBCAEKAJAKQNwIAQoAkApA3h9NwMwIAQpAzAgBCkDSFYEQCAEIAQpA0g3AzALDAELIAQgBCkDSDcDMAsgBCkDMEL/////D1YEQCAEQv////8PNwMwCyAEAn8gBCgCPCEHIAQpAzCnIQAgBCgCQCgCHCIDKAJMGiADIAMtAEoiAUEBayABcjoASiADKAIIIAMoAgQiBWsiAUEBSAR/IAAFIAcgBSABIAAgACABSxsiARAZGiADIAMoAgQgAWo2AgQgASAHaiEHIAAgAWsLIgEEQANAAkACfyADIAMtAEoiBUEBayAFcjoASiADKAIUIAMoAhxLBEAgA0EAQQAgAygCJBEBABoLIANBADYCHCADQgA3AxAgAygCACIFQQRxBEAgAyAFQSByNgIAQX8MAQsgAyADKAIsIAMoAjBqIgY2AgggAyAGNgIEIAVBG3RBH3ULRQRAIAMgByABIAMoAiARAQAiBUEBakEBSw0BCyAAIAFrDAMLIAUgB2ohByABIAVrIgENAAsLIAALIgA2AiwgAEUEQAJ/IAQoAkAoAhwiACgCTEF/TARAIAAoAgAMAQsgACgCAAtBBXZBAXEEQCAEKAJAQQVBtJsBKAIAEBQgBEJ/NwNYDAwLCyAEKAJAIgAgACkDeCAEKAIsrXw3A3ggBCAEKAIsrTcDWAwKCyAEKAJAKAIYEG5BAEgEQCAEKAJAQRZBtJsBKAIAEBQgBEJ/NwNYDAoLIARCADcDWAwJCyAEKAJAKAKEAQRAIAQoAkAoAoQBEFUaIAQoAkBBADYChAELIAQoAkAoAoABEG4aIAQoAkAoAoABEBUgBCgCQEEANgKAASAEQgA3A1gMCAsgBAJ/IAQpA0hCEFQEQCAEKAJAQRJBABAUQQAMAQsgBCgCUAs2AhggBCgCGEUEQCAEQn83A1gMCAsgBEEBNgIcAkACQAJAAkACQCAEKAIYKAIIDgMAAgEDCyAEIAQoAhgpAwA3AyAMAwsCQCAEKAJAKQNwUARAIAQoAkAoAhwgBCgCGCkDAEECIAQoAkAQa0EASARAIARCfzcDWAwNCyAEIAQoAkAoAhwQowEiAjcDICACQgBTBEAgBCgCQEEEQbSbASgCABAUIARCfzcDWAwNCyAEIAQpAyAgBCgCQCkDaH03AyAgBEEANgIcDAELIAQgBCgCQCkDcCAEKAIYKQMAfDcDIAsMAgsgBCAEKAJAKQN4IAQoAhgpAwB8NwMgDAELIAQoAkBBEkEAEBQgBEJ/NwNYDAgLAkACQCAEKQMgQgBTDQAgBCgCQCkDcEIAUgRAIAQpAyAgBCgCQCkDcFYNAQsgBCgCQCkDaCAEKQMgIAQoAkApA2h8WA0BCyAEKAJAQRJBABAUIARCfzcDWAwICyAEKAJAIAQpAyA3A3ggBCgCHARAIAQoAkAoAhwgBCgCQCkDeCAEKAJAKQNofCAEKAJAEJ8BQQBIBEAgBEJ/NwNYDAkLCyAEQgA3A1gMBwsgBAJ/IAQpA0hCEFQEQCAEKAJAQRJBABAUQQAMAQsgBCgCUAs2AhQgBCgCFEUEQCAEQn83A1gMBwsgBCgCQCgChAEgBCgCFCkDACAEKAIUKAIIIAQoAkAQa0EASARAIARCfzcDWAwHCyAEQgA3A1gMBgsgBCkDSEI4VARAIARCfzcDWAwGCwJ/IwBBEGsiACAEKAJAQdgAajYCDCAAKAIMKAIACwRAIAQoAkACfyMAQRBrIgAgBCgCQEHYAGo2AgwgACgCDCgCAAsCfyMAQRBrIgAgBCgCQEHYAGo2AgwgACgCDCgCBAsQFCAEQn83A1gMBgsgBCgCUCIAIAQoAkAiASkAIDcAACAAIAEpAFA3ADAgACABKQBINwAoIAAgASkAQDcAICAAIAEpADg3ABggACABKQAwNwAQIAAgASkAKDcACCAEQjg3A1gMBQsgBCAEKAJAKQMQNwNYDAQLIAQgBCgCQCkDeDcDWAwDCyAEIAQoAkAoAoQBEKMBNwMIIAQpAwhCAFMEQCAEKAJAQR5BtJsBKAIAEBQgBEJ/NwNYDAMLIAQgBCkDCDcDWAwCCyAEKAJAKAKEASIAKAJMQQBOGiAAIAAoAgBBT3E2AgAgBAJ/IAQoAlAhASAEKQNIpyIAIAACfyAEKAJAKAKEASIDKAJMQX9MBEAgASAAIAMQcgwBCyABIAAgAxByCyIBRg0AGiABCzYCBAJAIAQpA0ggBCgCBK1RBEACfyAEKAJAKAKEASIAKAJMQX9MBEAgACgCAAwBCyAAKAIAC0EFdkEBcUUNAQsgBCgCQEEGQbSbASgCABAUIARCfzcDWAwCCyAEIAQoAgStNwNYDAELIAQoAkBBHEEAEBQgBEJ/NwNYCyAEKQNYIQIgBEHgAGokACACCwkAIAAoAjwQBQvkAQEEfyMAQSBrIgMkACADIAE2AhAgAyACIAAoAjAiBEEAR2s2AhQgACgCLCEFIAMgBDYCHCADIAU2AhhBfyEEAkACQCAAKAI8IANBEGpBAiADQQxqEAYiBQR/QbSbASAFNgIAQX8FQQALRQRAIAMoAgwiBEEASg0BCyAAIAAoAgAgBEEwcUEQc3I2AgAMAQsgBCADKAIUIgZNDQAgACAAKAIsIgU2AgQgACAFIAQgBmtqNgIIIAAoAjAEQCAAIAVBAWo2AgQgASACakEBayAFLQAAOgAACyACIQQLIANBIGokACAEC/QCAQd/IwBBIGsiAyQAIAMgACgCHCIFNgIQIAAoAhQhBCADIAI2AhwgAyABNgIYIAMgBCAFayIBNgIUIAEgAmohBUECIQcgA0EQaiEBAn8CQAJAIAAoAjwgA0EQakECIANBDGoQAyIEBH9BtJsBIAQ2AgBBfwVBAAtFBEADQCAFIAMoAgwiBEYNAiAEQX9MDQMgASAEIAEoAgQiCEsiBkEDdGoiCSAEIAhBACAGG2siCCAJKAIAajYCACABQQxBBCAGG2oiCSAJKAIAIAhrNgIAIAUgBGshBSAAKAI8IAFBCGogASAGGyIBIAcgBmsiByADQQxqEAMiBAR/QbSbASAENgIAQX8FQQALRQ0ACwsgBUF/Rw0BCyAAIAAoAiwiATYCHCAAIAE2AhQgACABIAAoAjBqNgIQIAIMAQsgAEEANgIcIABCADcDECAAIAAoAgBBIHI2AgBBACAHQQJGDQAaIAIgASgCBGsLIQAgA0EgaiQAIAALUgEBfyMAQRBrIgMkACAAKAI8IAGnIAFCIIinIAJB/wFxIANBCGoQDSIABH9BtJsBIAA2AgBBfwVBAAshACADKQMIIQEgA0EQaiQAQn8gASAAGwtFAEGgmwFCADcDAEGYmwFCADcDAEGQmwFCADcDAEGImwFCADcDAEGAmwFCADcDAEH4mgFCADcDAEHwmgFCADcDAEHwmgEL1QQBBX8jAEGwAWsiASQAIAEgADYCqAEgASgCqAEQNwJAAkAgASgCqAEoAgBBAE4EQCABKAKoASgCAEGAFCgCAEgNAQsgASABKAKoASgCADYCECABQSBqQY8SIAFBEGoQcCABQQA2AqQBIAEgAUEgajYCoAEMAQsgASABKAKoASgCAEECdEGAE2ooAgA2AqQBAkACQAJAAkAgASgCqAEoAgBBAnRBkBRqKAIAQQFrDgIAAQILIAEoAqgBKAIEIQJBkJkBKAIAIQRBACEAAkACQANAIAIgAEGgiAFqLQAARwRAQdcAIQMgAEEBaiIAQdcARw0BDAILCyAAIgMNAEGAiQEhAgwBC0GAiQEhAANAIAAtAAAhBSAAQQFqIgIhACAFDQAgAiEAIANBAWsiAw0ACwsgBCgCFBogASACNgKgAQwCCyMAQRBrIgAgASgCqAEoAgQ2AgwgAUEAIAAoAgxrQQJ0QajZAGooAgA2AqABDAELIAFBADYCoAELCwJAIAEoAqABRQRAIAEgASgCpAE2AqwBDAELIAEgASgCoAEQKwJ/IAEoAqQBBEAgASgCpAEQK0ECagwBC0EAC2pBAWoQGCIANgIcIABFBEAgAUG4EygCADYCrAEMAQsgASgCHCEAAn8gASgCpAEEQCABKAKkAQwBC0H6EgshA0HfEkH6EiABKAKkARshAiABIAEoAqABNgIIIAEgAjYCBCABIAM2AgAgAEG+CiABEHAgASgCqAEgASgCHDYCCCABIAEoAhw2AqwBCyABKAKsASEAIAFBsAFqJAAgAAszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQGRogACAAKAIUIAFqNgIUIAILjwUCBn4BfyABIAEoAgBBD2pBcHEiAUEQajYCACAAAnwgASkDACEDIAEpAwghBiMAQSBrIggkAAJAIAZC////////////AIMiBEKAgICAgIDAgDx9IARCgICAgICAwP/DAH1UBEAgBkIEhiADQjyIhCEEIANC//////////8PgyIDQoGAgICAgICACFoEQCAEQoGAgICAgICAwAB8IQIMAgsgBEKAgICAgICAgEB9IQIgA0KAgICAgICAgAiFQgBSDQEgAiAEQgGDfCECDAELIANQIARCgICAgICAwP//AFQgBEKAgICAgIDA//8AURtFBEAgBkIEhiADQjyIhEL/////////A4NCgICAgICAgPz/AIQhAgwBC0KAgICAgICA+P8AIQIgBEL///////+//8MAVg0AQgAhAiAEQjCIpyIAQZH3AEkNACADIQIgBkL///////8/g0KAgICAgIDAAIQiBSEHAkAgAEGB9wBrIgFBwABxBEAgAiABQUBqrYYhB0IAIQIMAQsgAUUNACAHIAGtIgSGIAJBwAAgAWutiIQhByACIASGIQILIAggAjcDECAIIAc3AxgCQEGB+AAgAGsiAEHAAHEEQCAFIABBQGqtiCEDQgAhBQwBCyAARQ0AIAVBwAAgAGuthiADIACtIgKIhCEDIAUgAoghBQsgCCADNwMAIAggBTcDCCAIKQMIQgSGIAgpAwAiA0I8iIQhAiAIKQMQIAgpAxiEQgBSrSADQv//////////D4OEIgNCgYCAgICAgIAIWgRAIAJCAXwhAgwBCyADQoCAgICAgICACIVCAFINACACQgGDIAJ8IQILIAhBIGokACACIAZCgICAgICAgICAf4OEvws5AwALrRcDEn8CfgF8IwBBsARrIgkkACAJQQA2AiwCQCABvSIYQn9XBEBBASESQa4IIRMgAZoiAb0hGAwBCyAEQYAQcQRAQQEhEkGxCCETDAELQbQIQa8IIARBAXEiEhshEyASRSEXCwJAIBhCgICAgICAgPj/AINCgICAgICAgPj/AFEEQCAAQSAgAiASQQNqIg0gBEH//3txECYgACATIBIQIiAAQeQLQbUSIAVBIHEiAxtBjw1BuRIgAxsgASABYhtBAxAiDAELIAlBEGohEAJAAn8CQCABIAlBLGoQqQEiASABoCIBRAAAAAAAAAAAYgRAIAkgCSgCLCIGQQFrNgIsIAVBIHIiFEHhAEcNAQwDCyAFQSByIhRB4QBGDQIgCSgCLCELQQYgAyADQQBIGwwBCyAJIAZBHWsiCzYCLCABRAAAAAAAALBBoiEBQQYgAyADQQBIGwshCiAJQTBqIAlB0AJqIAtBAEgbIg4hBwNAIAcCfyABRAAAAAAAAPBBYyABRAAAAAAAAAAAZnEEQCABqwwBC0EACyIDNgIAIAdBBGohByABIAO4oUQA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HCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCHCECIAEgASgCGCIDQQFqNgIYQQAgAy0AASACRw0AGiABKAIcIQIgASABKAIYIgNBAWo2AhhBACADLQABIAJHDQAaIAEoAhwhAiABIAEoAhgiA0EBajYCGEEAIAMtAAEgAkcNABogASgCGCABKAIUSQtBAXENAAsgASgCKEGCAiABKAIUIAEoAhhrazYCYCABKAIoKAJgIAEoAigoAnRLBEAgASgCKCABKAIoKAJ0NgJgCwsLAkAgASgCKCgCYEEDTwRAIAEgASgCKCgCYEEDazoAEyABQQE7ARAgASgCKCICKAKkLSACKAKgLUEBdGogAS8BEDsBACABLQATIQMgASgCKCICKAKYLSEEIAIgAigCoC0iAkEBajYCoC0gAiAEaiADOgAAIAEgAS8BEEEBazsBECABKAIoIAEtABNB0N0Aai0AAEECdGpBmAlqIgIgAi8BAEEBajsBACABKAIoQYgTagJ/IAEvARBBgAJJBEAgAS8BEC0A0FkMAQsgAS8BEEEHdkGAAmotANBZC0ECdGoiAiACLwEAQQFqOwEAIAEgASgCKCgCoC0gASgCKCgCnC1BAWtGNgIgIAEoAigiAiACKAJ0IAEoAigoAmBrNgJ0IAEoAigiAiABKAIoKAJgIAIoAmxqNgJsIAEoAihBADYCYAwBCyABIAEoAigiAigCOCACKAJsai0AADoADyABKAIoIgIoAqQtIAIoAqAtQQF0akEAOwEAIAEtAA8hAyABKAIoIgIoApgtIQQgAiACKAKgLSICQQFqNgKgLSACIARqIAM6AAAgASgCKCABLQAPQQJ0aiICIAIvAZQBQQFqOwGUASABIAEoAigoAqAtIAEoAigoApwtQQFrRjYCICABKAIoIgIgAigCdEEBazYCdCABKAIoIgIgAigCbEEBajYCbAsgASgCIARAIAEoAigCfyABKAIoKAJcQQBOBEAgASgCKCgCOCABKAIoKAJcagwBC0EACyABKAIoKAJsIAEoAigoAlxrQQAQKCABKAIoIAEoAigoAmw2AlwgASgCKCgCABAcIAEoAigo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QCABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiQgASgCLCABKAIccUECdGooAQA2ARACQAJAA0AgASABLQARNgIMIAEgASgCLCABKAIMdjYCLCABIAEoAiggASgCDGs2AiggASABLQAQNgIMIAEoAgxFBEAgAS8BEiECIAEgASgCSCIDQQFqNgJIIAMgAjoAAAwCCyABKAIMQRBxBEAgASABLwESNgIIIAEgASgCDEEPcTYCDCABKAIMBEAgASgCKCABKAIMSQRAIAEgASgCUCICQQFqNgJQIAEgASgCLCACLQAAIAEoAih0ajYCLCABIAEoAihBCGo2AigLIAEgASgCCCABKAIsQQEgASgCDHRBAWtxajYCCCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoCyABKAIoQQ9JBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABIAEoAlAiAkEBajYCUCABIAEoAiwgAi0AACABKAIodGo2AiwgASABKAIoQQhqNgIoCyABIAEoAiAgASgCLCABKAIYcUECdGooAQA2ARACQANAIAEgAS0AETYCDCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgAS0AEDYCDCABKAIMQRBxBEAgASABLwESNgIEIAEgASgCDEEPcTYCDCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKCABKAIoIAEoAgxJBEAgASABKAJQIgJBAWo2AlAgASABKAIsIAItAAAgASgCKHRqNgIsIAEgASgCKEEIajYCKAsLIAEgASgCBCABKAIsQQEgASgCDHRBAWtxajYCBCABIAEoAiwgASgCDHY2AiwgASABKAIoIAEoAgxrNgIoIAEgASgCSCABKAJEazYCDAJAIAEoAgQgASgCDEsEQCABIAEoAgQgASgCDGs2AgwgASgCDCABKAI4SwRAIAEoAlQoAsQ3BEAgASgCXEHdDDYCGCABKAJUQdH+ADYCBAwKCwsgASABKAIwNgIAAkAgASgCNEUEQCABIAEoAgAgASgCPCABKAIMa2o2AgAgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAkggASgCBGs2AgALDAELAkAgASgCNCABKAIMSQRAIAEgASgCACABKAI8IAEoAjRqIAEoAgxrajYCACABIAEoAgwgASgCNGs2AgwgASgCDCABKAIISQRAIAEgASgCCCABKAIMazYCCANAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIMQQFrIgI2AgwgAg0ACyABIAEoAjA2AgAgASgCNCABKAIISQRAIAEgASgCNDYCDCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsMAQsgASABKAIAIAEoAjQgASgCDGtqNgIAIAEoAgwgASgCCEkEQCABIAEoAgggASgCDGs2AggDQCABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCDEEBayICNgIMIAINAAsgASABKAJIIAEoAgRrNgIACwsLA0AgASgCCEECSwRAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgiA0EBajYCSCADIAI6AAAgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCCEEDazYCCAwBCwsMAQsgASABKAJIIAEoAgRrNgIAA0AgASABKAIAIgJBAWo2AgAgAi0AACECIAEgASgCSCIDQQFqNgJIIAMgAjoAACABIAEoAgAiAkEBajYCACACLQAAIQIgASABKAJIIgNBAWo2AkggAyACOgAAIAEgASgCACICQQFqNgIAIAItAAAhAiABIAEoAkgi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ZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AbmFuAC9kZXYvdXJhbmRvbQBpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2sAaW5jb3JyZWN0IGhlYWRlciBjaGVjawBpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrAGluY29ycmVjdCBkYXRhIGNoZWNrAGludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrAGhlYWRlciBjcmMgbWlzbWF0Y2gAaW5mAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRlZABPcGVyYXRpb24gbm90IHN1cHBvcnRlZABFbmNyeXB0aW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAENvbXByZXNzaW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAEVudHJ5IGhhcyBiZWVuIGRlbGV0ZWQAQ29udGFpbmluZyB6aXAgYXJjaGl2ZSB3YXMgY2xvc2VkAENsb3NpbmcgemlwIGFyY2hpdmUgZmFpbGVkAFJlbmFtaW5nIHRlbXBvcmFyeSBmaWxlIGZhaWxlZABFbnRyeSBoYXMgYmVlbiBjaGFuZ2VkAE5vIHBhc3N3b3JkIHByb3ZpZGVkAFdyb25nIHBhc3N3b3JkIHByb3ZpZGVkAFVua25vd24gZXJyb3IgJWQAcmIAcitiAHJ3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CADcAAgAPAAIALwACAB8AAgA/AAIAAIACACCAAgAQgAIAMIACAAiAAgAogAIAGIACADiAAgAEgAIAJIACABSAAgA0gAIADIACACyAAgAcgAIAPIACAAKAAgAigAIAEoACADKAAgAKgAIAKoACABqAAgA6gAIABoACACaAAgAWgAIANoACAA6AAgAugAIAHoACAD6AAgABgAIAIYACABGAAgAxgAIACYACACmAAgAZgAIAOYACAAWAAgAlgAIAFYACADWAAgANgAIALYACAB2AAgA9gAIAA4ACACOAAgATgAIAM4ACAAuAAgArgAIAG4ACADuAAgAHgAIAJ4ACABeAAgA3gAIAD4ACAC+AAgAfgAIAP4ACAABAAgAgQAIAEEACADBAAgAIQAIAKEACABhAAgA4QAIABEACACRAAgAUQAIANEACAAxAAgAsQAIAHEACADxAAgACQAIAIkACABJAAgAyQAIACkACACpAAgAaQAIAOkACAAZAAgAmQAIAFkACADZAAgAOQAIALkACAB5AAgA+QAIAAUACACFAAgARQAIAMUACAAlAAgApQAIAGUACADlAAgAFQAIAJUACABVAAgA1QAIADUACAC1AAgAdQAIAPUACAANAAgAjQAIAE0ACADNAAgALQAIAK0ACABtAAgA7QAIAB0ACACdAAgAXQAIAN0ACAA9AAgAvQAIAH0ACAD9AAgAEwAJABMBCQCTAAkAkwEJAFMACQBTAQkA0wAJANMBCQAzAAkAMwEJALMACQCzAQkAcwAJAHMBCQDzAAkA8wEJAAsACQALAQkAiwAJAIsBCQBLAAkASwEJAMsACQDLAQkAKwAJACsBCQCrAAkAqwEJAGsACQBrAQkA6wAJAOsBCQAbAAkAGwEJAJsACQCbAQkAWwAJAFsBCQDbAAkA2wEJADsACQA7AQkAuwAJALsBCQB7AAkAewEJAPsACQD7AQkABwAJAAcBCQCHAAkAhwEJAEcACQBHAQkAxwAJAMcBCQAnAAkAJwEJAKcACQCnAQkAZwAJAGcBCQDnAAkA5wEJABcACQAXAQkAlwAJAJcBCQBXAAkAVwEJANcACQDXAQkANwAJADcBCQC3AAkAtwEJAHcACQB3AQkA9wAJAPcBCQAPAAkADwEJAI8ACQCPAQkATwAJAE8BCQDPAAkAzwEJAC8ACQAvAQkArwAJAK8BCQBvAAkAbwEJAO8ACQDvAQkAHwAJAB8BCQCfAAkAnwEJAF8ACQBfAQkA3wAJAN8BCQA/AAkAPwEJAL8ACQC/AQkAfwAJAH8BCQD/AAkA/wEJAAAABwBAAAcAIAAHAGAABwAQAAcAUAAHADAABwBwAAcACAAHAEgABwAoAAcAaAAHABgABwBYAAcAOAAHAHgABwAEAAcARAAHACQABwBkAAcAFAAHAFQABwA0AAcAdAAHAAMACACDAAgAQwAIAMMACAAjAAgAowAIAGMACADjAAgAAAAFABAABQAIAAUAGAAFAAQABQAUAAUADAAFABwABQACAAUAEgAFAAoABQAaAAUABgAFABYABQAOAAUAHgAFAAEABQARAAUACQAFABkABQAFAAUAFQAFAA0ABQAdAAUAAwAFABMABQALAAUAGwAFAAcABQAXAAUAQbDqAAtNAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAABAAAAAQAAAAEAAAABAAAAAUAAAAFAAAABQAAAAUAQaDrAAtlAQAAAAEAAAACAAAAAgAAAAMAAAADAAAABAAAAAQAAAAFAAAABQAAAAYAAAAGAAAABwAAAAcAAAAIAAAACAAAAAkAAAAJAAAACgAAAAoAAAALAAAACwAAAAwAAAAMAAAADQAAAA0AQdDsAAsjAgAAAAMAAAAHAAAAAAAAABAREgAIBwkGCgULBAwDDQIOAQ8AQYTtAAtpAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAEGE7gALegEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAMS4yLjExAEGI7wALbQcAAAAEAAQACAAEAAgAAAAEAAUAEAAIAAgAAAAEAAYAIAAgAAgAAAAEAAQAEAAQAAkAAAAIABAAIAAgAAkAAAAIABAAgACAAAkAAAAIACAAgAAAAQkAAAAgAIAAAgEABAkAAAAgAAIBAgEAEAkAQYDwAAulAgMABAAFAAYABwAIAAkACgALAA0ADwARABMAFwAbAB8AIwArADMAOwBDAFMAYwBzAIMAowDDAOMAAgEAAAAAAAAQABAAEAAQABAAEAAQABAAEQARABEAEQASABIAEgASABMAEwATABMAFAAUABQAFAAVABUAFQAVABAATQDKAAAAAQACAAMABAAFAAcACQANABEAGQAhADEAQQBhAIEAwQABAYEBAQIBAwEEAQYBCAEMARABGAEgATABQAFgAAAAABAAEAAQABAAEQARABIAEgATABMAFAAUABUAFQAWABYAFwAXABgAGAAZABkAGgAaABsAGwAcABwAHQAdAEAAQAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEGw8gALwRFgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnAABAHCgAACGAAAAggAAAJoAAACAAAAAiAAAAIQAAACeAAEAcGAAAIWAAACBgAAAmQABMHOwAACHgAAAg4AAAJ0AARBxEAAAhoAAAIKAAACbAAAAgIAAAIiAAACEgAAAnwABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACcgAEQcNAAAIZAAACCQAAAmoAAAIBAAACIQAAAhEAAAJ6AAQBwgAAAhcAAAIHAAACZgAFAdTAAAIfAAACDwAAAnYABIHFwAACGwAAAgsAAAJuAAACAwAAAiMAAAITAAACfgAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxAARBwsAAAhiAAAIIgAACaQAAAgCAAAIggAACEIAAAnkABAHBwAACFoAAAgaAAAJlAAUB0MAAAh6AAAIOgAACdQAEgcTAAAIagAACCoAAAm0AAAICgAACIoAAAhKAAAJ9AAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnMABEHDwAACGYAAAgmAAAJrAAACAYAAAiGAAAIRgAACewAEAcJAAAIXgAACB4AAAmcABQHYwAACH4AAAg+AAAJ3AASBxsAAAhuAAAILgAACbwAAAgOAAAIjgAACE4AAAn8AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcIAEAcKAAAIYQAACCEAAAmiAAAIAQAACIEAAAhBAAAJ4gAQBwYAAAhZAAAIGQAACZIAEwc7AAAIeQAACDkAAAnSABEHEQAACGkAAAgpAAAJsgAACAkAAAiJAAAISQAACfIAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJygARBw0AAAhlAAAIJQAACaoAAAgFAAAIhQAACEUAAAnqABAHCAAACF0AAAgdAAAJmgAUB1MAAAh9AAAIPQAACdoAEgcXAAAIbQAACC0AAAm6AAAIDQAACI0AAAhNAAAJ+gAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnGABEHCwAACGMAAAgjAAAJpgAACAMAAAiDAAAIQwAACeYAEAcHAAAIWwAACBsAAAmWABQHQwAACHsAAAg7AAAJ1gASBxMAAAhrAAAIKwAACbYAAAgLAAAIiwAACEsAAAn2ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc4AEQcPAAAIZwAACCcAAAmuAAAIBwAACIcAAAhHAAAJ7gAQBwkAAAhfAAAIHwAACZ4AFAdjAAAIfwAACD8AAAneABIHGwAACG8AAAgvAAAJvgAACA8AAAiPAAAITwAACf4AYAcAAAAIUAAACBAAFAhzABIHHwAACHAAAAgwAAAJwQAQBwoAAAhgAAAIIAAACaEAAAgAAAAIgAAACEAAAAnhABAHBgAACFgAAAgYAAAJkQATBzsAAAh4AAAIOAAACdEAEQcRAAAIaAAACCgAAAmxAAAICAAACIgAAAhIAAAJ8QAQBwQAAAhUAAAIFAAVCOMAEwcrAAAIdAAACDQAAAnJABEHDQAACGQAAAgkAAAJqQAACAQAAAiEAAAIRAAACekAEAcIAAAIXAAACBwAAAmZABQHUwAACHwAAAg8AAAJ2QASBxcAAAhsAAAILAAACbkAAAgMAAAIjAAACEwAAAn5ABAHAwAACFIAAAgSABUIowATByMAAAhyAAAIMgAACcUAEQcLAAAIYgAACCIAAAmlAAAIAgAACIIAAAhCAAAJ5QAQBwcAAAhaAAAIGgAACZUAFAdDAAAIegAACDoAAAnVABIHEwAACGoAAAgqAAAJtQAACAoAAAiKAAAISgAACfUAEAcFAAAIVgAACBYAQAgAABMHMwAACHYAAAg2AAAJzQARBw8AAAhmAAAIJgAACa0AAAgGAAAIhgAACEYAAAntABAHCQAACF4AAAgeAAAJnQAUB2MAAAh+AAAIPgAACd0AEgcbAAAIbgAACC4AAAm9AAAIDgAACI4AAAhOAAAJ/QBgBwAAAAhRAAAIEQAVCIMAEgcfAAAIcQAACDEAAAnDABAHCgAACGEAAAghAAAJowAACAEAAAiBAAAIQQAACeMAEAcGAAAIWQAACBkAAAmTABMHOwAACHkAAAg5AAAJ0wARBxEAAAhpAAAIKQAACbMAAAgJAAAIiQAACEkAAAnzABAHBAAACFUAAAgVABAIAgETBysAAAh1AAAINQAACcsAEQcNAAAIZQAACCUAAAmrAAAIBQAACIUAAAhFAAAJ6wAQBwgAAAhdAAAIHQAACZsAFAdTAAAIfQAACD0AAAnbABIHFwAACG0AAAgtAAAJuwAACA0AAAiNAAAITQAACfsAEAcDAAAIUwAACBMAFQjDABMHIwAACHMAAAgzAAAJxwARBwsAAAhjAAAIIwAACacAAAgDAAAIgwAACEMAAAnnABAHBwAACFsAAAgbAAAJlwAUB0MAAAh7AAAIOwAACdcAEgcTAAAIawAACCsAAAm3AAAICwAACIsAAAhLAAAJ9wAQBwUAAAhXAAAIFwBACAAAEwczAAAIdwAACDcAAAnPABEHDwAACGcAAAgnAAAJrwAACAcAAAiHAAAIRwAACe8AEAcJAAAIXwAACB8AAAmfABQHYwAACH8AAAg/AAAJ3wASBxsAAAhvAAAILwAACb8AAAgPAAAIjwAACE8AAAn/ABAFAQAXBQEBEwURABsFARARBQUAGQUBBBUFQQAdBQFAEAUDABgFAQIUBSEAHAUBIBIFCQAaBQEIFgWBAEAFAAAQBQIAFwWBARMFGQAbBQEYEQUHABkFAQYVBWEAHQUBYBAFBAAYBQEDFAUxABwFATASBQ0AGgUBDBYFwQBABQAAEQAKABEREQAAAAAFAAAAAAAACQAAAAALAAAAAAAAAAARAA8KERERAwoHAAEACQsLAAAJBgsAAAsABhEAAAAREREAQYGEAQshCwAAAAAAAAAAEQAKChEREQAKAAACAAkLAAAACQALAAALAEG7hAELAQwAQceEAQsVDAAAAAAMAAAAAAkMAAAAAAAMAAAMAEH1hAELAQ4AQYGFAQsVDQAAAAQNAAAAAAkOAAAAAAAOAAAOAEGvhQELARAAQbuFAQseDwAAAAAPAAAAAAkQAAAAAAAQAAAQAAASAAAAEhISAEHyhQELDhIAAAASEhIAAAAAAAAJAEGjhgELAQsAQa+GAQsVCgAAAAAKAAAAAAkLAAAAAAALAAALAEHdhgELAQwAQemGAQsnDAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAwMTIzNDU2Nzg5QUJDREVGAEG0hwELARkAQduHAQsF//////8AQaCIAQtXGRJEOwI/LEcUPTMwChsGRktFNw9JDo4XA0AdPGkrNh9KLRwBICUpIQgMFRYiLhA4Pgs0MRhkdHV2L0EJfzkRI0MyQomKiwUEJignDSoeNYwHGkiTE5SVAEGAiQELig5JbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgBBkJcBC1JQUFAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAAAEAAAAIAAAAlEsAALRLAEGQmQELAgxQAEHImQELCR8AAADkTAAAAwBB5JkBC4wBLfRRWM+MscBG9rXLKTEDxwRbcDC0Xf0geH+LmthZKVBoSImrp1YDbP+3zYg/1He0K6WjcPG65Kj8QYP92W/hinovLXSWBx8NCV4Ddixw90ClLKdvV0GoqnTfoFhkA0rHxDxTrq9fGAQVseNtKIarDKS/Q/DpUIE5VxZSN/////////////////////8=";y4(Rp)||(Rp=dxe(Rp));function Kxe(t){try{if(t==Rp&&lP)return new Uint8Array(lP);var e=s4(t);if(e)return e;if(aP)return aP(t);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(r){Gr(r)}}function Uxe(t,e){var r,i,n;try{n=Kxe(t),i=new WebAssembly.Module(n),r=new WebAssembly.Instance(i,e)}catch(o){var s=o.toString();throw Di("failed to compile wasm module: "+s),(s.includes("imported Memory")||s.includes("memory import"))&&Di("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),o}return[r,i]}function Gxe(){var t={a:Hxe};function e(n,s){var o=n.exports;oe.asm=o,ew=oe.asm.u,p4(ew.buffer),fP=oe.asm.za,Mxe(oe.asm.v),dP("wasm-instantiate")}if(E4("wasm-instantiate"),oe.instantiateWasm)try{var r=oe.instantiateWasm(t,e);return r}catch(n){return Di("Module.instantiateWasm callback failed with error: "+n),!1}var i=Uxe(Rp,t);return e(i[0]),oe.asm}var ai,ya;function hP(t){for(;t.length>0;){var e=t.shift();if(typeof e=="function"){e(oe);continue}var r=e.func;typeof r=="number"?e.arg===void 0?fP.get(r)():fP.get(r)(e.arg):r(e.arg===void 0?null:e.arg)}}function iw(t,e){var r=new Date(_e[t>>2]*1e3);_e[e>>2]=r.getUTCSeconds(),_e[e+4>>2]=r.getUTCMinutes(),_e[e+8>>2]=r.getUTCHours(),_e[e+12>>2]=r.getUTCDate(),_e[e+16>>2]=r.getUTCMonth(),_e[e+20>>2]=r.getUTCFullYear()-1900,_e[e+24>>2]=r.getUTCDay(),_e[e+36>>2]=0,_e[e+32>>2]=0;var i=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),n=(r.getTime()-i)/(1e3*60*60*24)|0;return _e[e+28>>2]=n,iw.GMTString||(iw.GMTString=uP("GMT")),_e[e+40>>2]=iw.GMTString,e}function jxe(t,e){return iw(t,e)}var yt={splitPath:function(t){var e=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return e.exec(t).slice(1)},normalizeArray:function(t,e){for(var r=0,i=t.length-1;i>=0;i--){var n=t[i];n==="."?t.splice(i,1):n===".."?(t.splice(i,1),r++):r&&(t.splice(i,1),r--)}if(e)for(;r;r--)t.unshift("..");return t},normalize:function(t){var e=t.charAt(0)==="/",r=t.substr(-1)==="/";return t=yt.normalizeArray(t.split("/").filter(function(i){return!!i}),!e).join("/"),!t&&!e&&(t="."),t&&r&&(t+="/"),(e?"/":"")+t},dirname:function(t){var e=yt.splitPath(t),r=e[0],i=e[1];return!r&&!i?".":(i&&(i=i.substr(0,i.length-1)),r+i)},basename:function(t){if(t==="/")return"/";t=yt.normalize(t),t=t.replace(/\/$/,"");var e=t.lastIndexOf("/");return e===-1?t:t.substr(e+1)},extname:function(t){return yt.splitPath(t)[3]},join:function(){var t=Array.prototype.slice.call(arguments,0);return yt.normalize(t.join("/"))},join2:function(t,e){return yt.normalize(t+"/"+e)}};function Yxe(){if(typeof crypto=="object"&&typeof crypto.getRandomValues=="function"){var t=new Uint8Array(1);return function(){return crypto.getRandomValues(t),t[0]}}else if(Wl)try{var e=require("crypto");return function(){return e.randomBytes(1)[0]}}catch(r){}return function(){Gr("randomDevice")}}var wa={resolve:function(){for(var t="",e=!1,r=arguments.length-1;r>=-1&&!e;r--){var i=r>=0?arguments[r]:y.cwd();if(typeof i!="string")throw new TypeError("Arguments to path.resolve must be strings");if(!i)return"";t=i+"/"+t,e=i.charAt(0)==="/"}return t=yt.normalizeArray(t.split("/").filter(function(n){return!!n}),!e).join("/"),(e?"/":"")+t||"."},relative:function(t,e){t=wa.resolve(t).substr(1),e=wa.resolve(e).substr(1);function r(c){for(var u=0;u=0&&c[g]==="";g--);return u>g?[]:c.slice(u,g-u+1)}for(var i=r(t.split("/")),n=r(e.split("/")),s=Math.min(i.length,n.length),o=s,a=0;a0?e=i.slice(0,n).toString("utf-8"):e=null}else typeof window!="undefined"&&typeof window.prompt=="function"?(e=window.prompt("Input: "),e!==null&&(e+=` -`)):typeof readline=="function"&&(e=readline(),e!==null&&(e+=` -`));if(!e)return null;t.input=CP(e,!0)}return t.input.shift()},put_char:function(t,e){e===null||e===10?($y(Zu(t.output,0)),t.output=[]):e!=0&&t.output.push(e)},flush:function(t){t.output&&t.output.length>0&&($y(Zu(t.output,0)),t.output=[])}},default_tty1_ops:{put_char:function(t,e){e===null||e===10?(Di(Zu(t.output,0)),t.output=[]):e!=0&&t.output.push(e)},flush:function(t){t.output&&t.output.length>0&&(Di(Zu(t.output,0)),t.output=[])}}};function mP(t){for(var e=mxe(t,65536),r=h4(e);t=e)){var i=1024*1024;e=Math.max(e,r*(r>>0),r!=0&&(e=Math.max(e,256));var n=t.contents;t.contents=new Uint8Array(e),t.usedBytes>0&&t.contents.set(n.subarray(0,t.usedBytes),0)}},resizeFileStorage:function(t,e){if(t.usedBytes!=e)if(e==0)t.contents=null,t.usedBytes=0;else{var r=t.contents;t.contents=new Uint8Array(e),r&&t.contents.set(r.subarray(0,Math.min(e,t.usedBytes))),t.usedBytes=e}},node_ops:{getattr:function(t){var e={};return e.dev=y.isChrdev(t.mode)?t.id:1,e.ino=t.id,e.mode=t.mode,e.nlink=1,e.uid=0,e.gid=0,e.rdev=t.rdev,y.isDir(t.mode)?e.size=4096:y.isFile(t.mode)?e.size=t.usedBytes:y.isLink(t.mode)?e.size=t.link.length:e.size=0,e.atime=new Date(t.timestamp),e.mtime=new Date(t.timestamp),e.ctime=new Date(t.timestamp),e.blksize=4096,e.blocks=Math.ceil(e.size/e.blksize),e},setattr:function(t,e){e.mode!==void 0&&(t.mode=e.mode),e.timestamp!==void 0&&(t.timestamp=e.timestamp),e.size!==void 0&&pt.resizeFileStorage(t,e.size)},lookup:function(t,e){throw y.genericErrors[44]},mknod:function(t,e,r,i){return pt.createNode(t,e,r,i)},rename:function(t,e,r){if(y.isDir(t.mode)){var i;try{i=y.lookupNode(e,r)}catch(s){}if(i)for(var n in i.contents)throw new y.ErrnoError(55)}delete t.parent.contents[t.name],t.parent.timestamp=Date.now(),t.name=r,e.contents[r]=t,e.timestamp=t.parent.timestamp,t.parent=e},unlink:function(t,e){delete t.contents[e],t.timestamp=Date.now()},rmdir:function(t,e){var r=y.lookupNode(t,e);for(var i in r.contents)throw new y.ErrnoError(55);delete t.contents[e],t.timestamp=Date.now()},readdir:function(t){var e=[".",".."];for(var r in t.contents)!t.contents.hasOwnProperty(r)||e.push(r);return e},symlink:function(t,e,r){var i=pt.createNode(t,e,511|40960,0);return i.link=r,i},readlink:function(t){if(!y.isLink(t.mode))throw new y.ErrnoError(28);return t.link}},stream_ops:{read:function(t,e,r,i,n){var s=t.node.contents;if(n>=t.node.usedBytes)return 0;var o=Math.min(t.node.usedBytes-n,i);if(o>8&&s.subarray)e.set(s.subarray(n,n+o),r);else for(var a=0;a0||i+r>2)}catch(r){throw r.code?new y.ErrnoError(tt.convertNodeCode(r)):r}return e.mode},realPath:function(t){for(var e=[];t.parent!==t;)e.push(t.name),t=t.parent;return e.push(t.mount.opts.root),e.reverse(),yt.join.apply(null,e)},flagsForNode:function(t){t&=~2097152,t&=~2048,t&=~32768,t&=~524288;var e=0;for(var r in tt.flagsForNodeMap)t&r&&(e|=tt.flagsForNodeMap[r],t^=r);if(t)throw new y.ErrnoError(28);return e},node_ops:{getattr:function(t){var e=tt.realPath(t),r;try{r=ft.lstatSync(e)}catch(i){throw i.code?new y.ErrnoError(tt.convertNodeCode(i)):i}return tt.isWindows&&!r.blksize&&(r.blksize=4096),tt.isWindows&&!r.blocks&&(r.blocks=(r.size+r.blksize-1)/r.blksize|0),{dev:r.dev,ino:r.ino,mode:r.mode,nlink:r.nlink,uid:r.uid,gid:r.gid,rdev:r.rdev,size:r.size,atime:r.atime,mtime:r.mtime,ctime:r.ctime,blksize:r.blksize,blocks:r.blocks}},setattr:function(t,e){var r=tt.realPath(t);try{if(e.mode!==void 0&&(ft.chmodSync(r,e.mode),t.mode=e.mode),e.timestamp!==void 0){var i=new Date(e.timestamp);ft.utimesSync(r,i,i)}e.size!==void 0&&ft.truncateSync(r,e.size)}catch(n){throw n.code?new y.ErrnoError(tt.convertNodeCode(n)):n}},lookup:function(t,e){var r=yt.join2(tt.realPath(t),e),i=tt.getMode(r);return tt.createNode(t,e,i)},mknod:function(t,e,r,i){var n=tt.createNode(t,e,r,i),s=tt.realPath(n);try{y.isDir(n.mode)?ft.mkdirSync(s,n.mode):ft.writeFileSync(s,"",{mode:n.mode})}catch(o){throw o.code?new y.ErrnoError(tt.convertNodeCode(o)):o}return n},rename:function(t,e,r){var i=tt.realPath(t),n=yt.join2(tt.realPath(e),r);try{ft.renameSync(i,n)}catch(s){throw s.code?new y.ErrnoError(tt.convertNodeCode(s)):s}t.name=r},unlink:function(t,e){var r=yt.join2(tt.realPath(t),e);try{ft.unlinkSync(r)}catch(i){throw i.code?new y.ErrnoError(tt.convertNodeCode(i)):i}},rmdir:function(t,e){var r=yt.join2(tt.realPath(t),e);try{ft.rmdirSync(r)}catch(i){throw i.code?new y.ErrnoError(tt.convertNodeCode(i)):i}},readdir:function(t){var e=tt.realPath(t);try{return ft.readdirSync(e)}catch(r){throw r.code?new y.ErrnoError(tt.convertNodeCode(r)):r}},symlink:function(t,e,r){var i=yt.join2(tt.realPath(t),e);try{ft.symlinkSync(r,i)}catch(n){throw n.code?new y.ErrnoError(tt.convertNodeCode(n)):n}},readlink:function(t){var e=tt.realPath(t);try{return e=ft.readlinkSync(e),e=EP.relative(EP.resolve(t.mount.opts.root),e),e}catch(r){throw r.code?new y.ErrnoError(tt.convertNodeCode(r)):r}}},stream_ops:{open:function(t){var e=tt.realPath(t.node);try{y.isFile(t.node.mode)&&(t.nfd=ft.openSync(e,tt.flagsForNode(t.flags)))}catch(r){throw r.code?new y.ErrnoError(tt.convertNodeCode(r)):r}},close:function(t){try{y.isFile(t.node.mode)&&t.nfd&&ft.closeSync(t.nfd)}catch(e){throw e.code?new y.ErrnoError(tt.convertNodeCode(e)):e}},read:function(t,e,r,i,n){if(i===0)return 0;try{return ft.readSync(t.nfd,tt.bufferFrom(e.buffer),r,i,n)}catch(s){throw new y.ErrnoError(tt.convertNodeCode(s))}},write:function(t,e,r,i,n){try{return ft.writeSync(t.nfd,tt.bufferFrom(e.buffer),r,i,n)}catch(s){throw new y.ErrnoError(tt.convertNodeCode(s))}},llseek:function(t,e,r){var i=e;if(r===1)i+=t.position;else if(r===2&&y.isFile(t.node.mode))try{var n=ft.fstatSync(t.nfd);i+=n.size}catch(s){throw new y.ErrnoError(tt.convertNodeCode(s))}if(i<0)throw new y.ErrnoError(28);return i},mmap:function(t,e,r,i,n,s){if(e!==0)throw new y.ErrnoError(28);if(!y.isFile(t.node.mode))throw new y.ErrnoError(43);var o=mP(r);return tt.stream_ops.read(t,Zi,o,r,i),{ptr:o,allocated:!0}},msync:function(t,e,r,i,n){if(!y.isFile(t.node.mode))throw new y.ErrnoError(43);if(n&2)return 0;var s=tt.stream_ops.write(t,e,0,i,r,!1);return 0}}},w4={lookupPath:function(t){return{path:t,node:{mode:tt.getMode(t)}}},createStandardStreams:function(){y.streams[0]={fd:0,nfd:0,position:0,path:"",flags:0,tty:!0,seekable:!1};for(var t=1;t<3;t++)y.streams[t]={fd:t,nfd:t,position:0,path:"",flags:577,tty:!0,seekable:!1}},cwd:function(){return process.cwd()},chdir:function(){process.chdir.apply(void 0,arguments)},mknod:function(t,e){y.isDir(t)?ft.mkdirSync(t,e):ft.writeFileSync(t,"",{mode:e})},mkdir:function(){ft.mkdirSync.apply(void 0,arguments)},symlink:function(){ft.symlinkSync.apply(void 0,arguments)},rename:function(){ft.renameSync.apply(void 0,arguments)},rmdir:function(){ft.rmdirSync.apply(void 0,arguments)},readdir:function(){ft.readdirSync.apply(void 0,arguments)},unlink:function(){ft.unlinkSync.apply(void 0,arguments)},readlink:function(){return ft.readlinkSync.apply(void 0,arguments)},stat:function(){return ft.statSync.apply(void 0,arguments)},lstat:function(){return ft.lstatSync.apply(void 0,arguments)},chmod:function(){ft.chmodSync.apply(void 0,arguments)},fchmod:function(){ft.fchmodSync.apply(void 0,arguments)},chown:function(){ft.chownSync.apply(void 0,arguments)},fchown:function(){ft.fchownSync.apply(void 0,arguments)},truncate:function(){ft.truncateSync.apply(void 0,arguments)},ftruncate:function(t,e){if(e<0)throw new y.ErrnoError(28);ft.ftruncateSync.apply(void 0,arguments)},utime:function(){ft.utimesSync.apply(void 0,arguments)},open:function(t,e,r,i){typeof e=="string"&&(e=Vl.modeStringToFlags(e));var n=ft.openSync(t,tt.flagsForNode(e),r),s=i!=null?i:y.nextfd(n),o={fd:s,nfd:n,position:0,path:t,flags:e,seekable:!0};return y.streams[s]=o,o},close:function(t){t.stream_ops||ft.closeSync(t.nfd),y.closeStream(t.fd)},llseek:function(t,e,r){if(t.stream_ops)return Vl.llseek(t,e,r);var i=e;if(r===1)i+=t.position;else if(r===2)i+=ft.fstatSync(t.nfd).size;else if(r!==0)throw new y.ErrnoError(eg.EINVAL);if(i<0)throw new y.ErrnoError(eg.EINVAL);return t.position=i,i},read:function(t,e,r,i,n){if(t.stream_ops)return Vl.read(t,e,r,i,n);var s=typeof n!="undefined";!s&&t.seekable&&(n=t.position);var o=ft.readSync(t.nfd,tt.bufferFrom(e.buffer),r,i,n);return s||(t.position+=o),o},write:function(t,e,r,i,n){if(t.stream_ops)return Vl.write(t,e,r,i,n);t.flags&+"1024"&&y.llseek(t,0,+"2");var s=typeof n!="undefined";!s&&t.seekable&&(n=t.position);var o=ft.writeSync(t.nfd,tt.bufferFrom(e.buffer),r,i,n);return s||(t.position+=o),o},allocate:function(){throw new y.ErrnoError(eg.EOPNOTSUPP)},mmap:function(t,e,r,i,n,s){if(t.stream_ops)return Vl.mmap(t,e,r,i,n,s);if(e!==0)throw new y.ErrnoError(28);var o=mP(r);return y.read(t,Zi,o,r,i),{ptr:o,allocated:!0}},msync:function(t,e,r,i,n){return t.stream_ops?Vl.msync(t,e,r,i,n):(n&2||y.write(t,e,0,i,r),0)},munmap:function(){return 0},ioctl:function(){throw new y.ErrnoError(eg.ENOTTY)}},y={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:function(t,e){if(t=wa.resolve(y.cwd(),t),e=e||{},!t)return{path:"",node:null};var r={follow_mount:!0,recurse_count:0};for(var i in r)e[i]===void 0&&(e[i]=r[i]);if(e.recurse_count>8)throw new y.ErrnoError(32);for(var n=yt.normalizeArray(t.split("/").filter(function(f){return!!f}),!1),s=y.root,o="/",a=0;a40)throw new y.ErrnoError(32)}}return{path:o,node:s}},getPath:function(t){for(var e;;){if(y.isRoot(t)){var r=t.mount.mountpoint;return e?r[r.length-1]!=="/"?r+"/"+e:r+e:r}e=e?t.name+"/"+e:t.name,t=t.parent}},hashName:function(t,e){for(var r=0,i=0;i>>0)%y.nameTable.length},hashAddNode:function(t){var e=y.hashName(t.parent.id,t.name);t.name_next=y.nameTable[e],y.nameTable[e]=t},hashRemoveNode:function(t){var e=y.hashName(t.parent.id,t.name);if(y.nameTable[e]===t)y.nameTable[e]=t.name_next;else for(var r=y.nameTable[e];r;){if(r.name_next===t){r.name_next=t.name_next;break}r=r.name_next}},lookupNode:function(t,e){var r=y.mayLookup(t);if(r)throw new y.ErrnoError(r,t);for(var i=y.hashName(t.id,e),n=y.nameTable[i];n;n=n.name_next){var s=n.name;if(n.parent.id===t.id&&s===e)return n}return y.lookup(t,e)},createNode:function(t,e,r,i){var n=new y.FSNode(t,e,r,i);return y.hashAddNode(n),n},destroyNode:function(t){y.hashRemoveNode(t)},isRoot:function(t){return t===t.parent},isMountpoint:function(t){return!!t.mounted},isFile:function(t){return(t&61440)==32768},isDir:function(t){return(t&61440)==16384},isLink:function(t){return(t&61440)==40960},isChrdev:function(t){return(t&61440)==8192},isBlkdev:function(t){return(t&61440)==24576},isFIFO:function(t){return(t&61440)==4096},isSocket:function(t){return(t&49152)==49152},flagModes:{r:0,"r+":2,w:577,"w+":578,a:1089,"a+":1090},modeStringToFlags:function(t){var e=y.flagModes[t];if(typeof e=="undefined")throw new Error("Unknown file open mode: "+t);return e},flagsToPermissionString:function(t){var e=["r","w","rw"][t&3];return t&512&&(e+="w"),e},nodePermissions:function(t,e){return y.ignorePermissions?0:e.includes("r")&&!(t.mode&292)||e.includes("w")&&!(t.mode&146)||e.includes("x")&&!(t.mode&73)?2:0},mayLookup:function(t){var e=y.nodePermissions(t,"x");return e||(t.node_ops.lookup?0:2)},mayCreate:function(t,e){try{var r=y.lookupNode(t,e);return 20}catch(i){}return y.nodePermissions(t,"wx")},mayDelete:function(t,e,r){var i;try{i=y.lookupNode(t,e)}catch(s){return s.errno}var n=y.nodePermissions(t,"wx");if(n)return n;if(r){if(!y.isDir(i.mode))return 54;if(y.isRoot(i)||y.getPath(i)===y.cwd())return 10}else if(y.isDir(i.mode))return 31;return 0},mayOpen:function(t,e){return t?y.isLink(t.mode)?32:y.isDir(t.mode)&&(y.flagsToPermissionString(e)!=="r"||e&512)?31:y.nodePermissions(t,y.flagsToPermissionString(e)):44},MAX_OPEN_FDS:4096,nextfd:function(t,e){t=t||0,e=e||y.MAX_OPEN_FDS;for(var r=t;r<=e;r++)if(!y.streams[r])return r;throw new y.ErrnoError(33)},getStream:function(t){return y.streams[t]},createStream:function(t,e,r){y.FSStream||(y.FSStream=function(){},y.FSStream.prototype={object:{get:function(){return this.node},set:function(o){this.node=o}},isRead:{get:function(){return(this.flags&2097155)!=1}},isWrite:{get:function(){return(this.flags&2097155)!=0}},isAppend:{get:function(){return this.flags&1024}}});var i=new y.FSStream;for(var n in t)i[n]=t[n];t=i;var s=y.nextfd(e,r);return t.fd=s,y.streams[s]=t,t},closeStream:function(t){y.streams[t]=null},chrdev_stream_ops:{open:function(t){var e=y.getDevice(t.node.rdev);t.stream_ops=e.stream_ops,t.stream_ops.open&&t.stream_ops.open(t)},llseek:function(){throw new y.ErrnoError(70)}},major:function(t){return t>>8},minor:function(t){return t&255},makedev:function(t,e){return t<<8|e},registerDevice:function(t,e){y.devices[t]={stream_ops:e}},getDevice:function(t){return y.devices[t]},getMounts:function(t){for(var e=[],r=[t];r.length;){var i=r.pop();e.push(i),r.push.apply(r,i.mounts)}return e},syncfs:function(t,e){typeof t=="function"&&(e=t,t=!1),y.syncFSRequests++,y.syncFSRequests>1&&Di("warning: "+y.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var r=y.getMounts(y.root.mount),i=0;function n(o){return y.syncFSRequests--,e(o)}function s(o){if(o)return s.errored?void 0:(s.errored=!0,n(o));++i>=r.length&&n(null)}r.forEach(function(o){if(!o.type.syncfs)return s(null);o.type.syncfs(o,t,s)})},mount:function(t,e,r){var i=r==="/",n=!r,s;if(i&&y.root)throw new y.ErrnoError(10);if(!i&&!n){var o=y.lookupPath(r,{follow_mount:!1});if(r=o.path,s=o.node,y.isMountpoint(s))throw new y.ErrnoError(10);if(!y.isDir(s.mode))throw new y.ErrnoError(54)}var a={type:t,opts:e,mountpoint:r,mounts:[]},l=t.mount(a);return l.mount=a,a.root=l,i?y.root=l:s&&(s.mounted=a,s.mount&&s.mount.mounts.push(a)),l},unmount:function(t){var e=y.lookupPath(t,{follow_mount:!1});if(!y.isMountpoint(e.node))throw new y.ErrnoError(28);var r=e.node,i=r.mounted,n=y.getMounts(i);Object.keys(y.nameTable).forEach(function(o){for(var a=y.nameTable[o];a;){var l=a.name_next;n.includes(a.mount)&&y.destroyNode(a),a=l}}),r.mounted=null;var s=r.mount.mounts.indexOf(i);r.mount.mounts.splice(s,1)},lookup:function(t,e){return t.node_ops.lookup(t,e)},mknod:function(t,e,r){var i=y.lookupPath(t,{parent:!0}),n=i.node,s=yt.basename(t);if(!s||s==="."||s==="..")throw new y.ErrnoError(28);var o=y.mayCreate(n,s);if(o)throw new y.ErrnoError(o);if(!n.node_ops.mknod)throw new y.ErrnoError(63);return n.node_ops.mknod(n,s,e,r)},create:function(t,e){return e=e!==void 0?e:438,e&=4095,e|=32768,y.mknod(t,e,0)},mkdir:function(t,e){return e=e!==void 0?e:511,e&=511|512,e|=16384,y.mknod(t,e,0)},mkdirTree:function(t,e){for(var r=t.split("/"),i="",n=0;nthis.length-1||f<0)){var h=f%this.chunkSize,p=f/this.chunkSize|0;return this.getter(p)[h]}},s.prototype.setDataGetter=function(f){this.getter=f},s.prototype.cacheLength=function(){var f=new XMLHttpRequest;if(f.open("HEAD",r,!1),f.send(null),!(f.status>=200&&f.status<300||f.status===304))throw new Error("Couldn't load "+r+". Status: "+f.status);var h=Number(f.getResponseHeader("Content-length")),p,d=(p=f.getResponseHeader("Accept-Ranges"))&&p==="bytes",m=(p=f.getResponseHeader("Content-Encoding"))&&p==="gzip",I=1024*1024;d||(I=h);var B=function(R,H){if(R>H)throw new Error("invalid range ("+R+", "+H+") or no bytes requested!");if(H>h-1)throw new Error("only "+h+" bytes available! programmer error!");var L=new XMLHttpRequest;if(L.open("GET",r,!1),h!==I&&L.setRequestHeader("Range","bytes="+R+"-"+H),typeof Uint8Array!="undefined"&&(L.responseType="arraybuffer"),L.overrideMimeType&&L.overrideMimeType("text/plain; charset=x-user-defined"),L.send(null),!(L.status>=200&&L.status<300||L.status===304))throw new Error("Couldn't load "+r+". Status: "+L.status);return L.response!==void 0?new Uint8Array(L.response||[]):CP(L.responseText||"",!0)},b=this;b.setDataGetter(function(R){var H=R*I,L=(R+1)*I-1;if(L=Math.min(L,h-1),typeof b.chunks[R]=="undefined"&&(b.chunks[R]=B(H,L)),typeof b.chunks[R]=="undefined")throw new Error("doXHR failed!");return b.chunks[R]}),(m||!h)&&(I=h=1,h=this.getter(0).length,I=h,$y("LazyFiles on gzip forces download of the whole file when length is accessed")),this._length=h,this._chunkSize=I,this.lengthKnown=!0},typeof XMLHttpRequest!="undefined"){if(!i4)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var o=new s;Object.defineProperties(o,{length:{get:function(){return this.lengthKnown||this.cacheLength(),this._length}},chunkSize:{get:function(){return this.lengthKnown||this.cacheLength(),this._chunkSize}}});var a={isDevice:!1,contents:o}}else var a={isDevice:!1,url:r};var l=y.createFile(t,e,a,i,n);a.contents?l.contents=a.contents:a.url&&(l.contents=null,l.url=a.url),Object.defineProperties(l,{usedBytes:{get:function(){return this.contents.length}}});var c={},u=Object.keys(l.stream_ops);return u.forEach(function(g){var f=l.stream_ops[g];c[g]=function(){return y.forceLoadFile(l),f.apply(null,arguments)}}),c.read=function(f,h,p,d,m){y.forceLoadFile(l);var I=f.node.contents;if(m>=I.length)return 0;var B=Math.min(I.length-m,d);if(I.slice)for(var b=0;b>2]=i.dev,_e[r+4>>2]=0,_e[r+8>>2]=i.ino,_e[r+12>>2]=i.mode,_e[r+16>>2]=i.nlink,_e[r+20>>2]=i.uid,_e[r+24>>2]=i.gid,_e[r+28>>2]=i.rdev,_e[r+32>>2]=0,ya=[i.size>>>0,(ai=i.size,+Math.abs(ai)>=1?ai>0?(Math.min(+Math.floor(ai/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ai-+(~~ai>>>0))/4294967296)>>>0:0)],_e[r+40>>2]=ya[0],_e[r+44>>2]=ya[1],_e[r+48>>2]=4096,_e[r+52>>2]=i.blocks,_e[r+56>>2]=i.atime.getTime()/1e3|0,_e[r+60>>2]=0,_e[r+64>>2]=i.mtime.getTime()/1e3|0,_e[r+68>>2]=0,_e[r+72>>2]=i.ctime.getTime()/1e3|0,_e[r+76>>2]=0,ya=[i.ino>>>0,(ai=i.ino,+Math.abs(ai)>=1?ai>0?(Math.min(+Math.floor(ai/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ai-+(~~ai>>>0))/4294967296)>>>0:0)],_e[r+80>>2]=ya[0],_e[r+84>>2]=ya[1],0},doMsync:function(t,e,r,i,n){var s=$u.slice(t,t+r);y.msync(e,s,n,r,i)},doMkdir:function(t,e){return t=yt.normalize(t),t[t.length-1]==="/"&&(t=t.substr(0,t.length-1)),y.mkdir(t,e,0),0},doMknod:function(t,e,r){switch(e&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}return y.mknod(t,e,r),0},doReadlink:function(t,e,r){if(r<=0)return-28;var i=y.readlink(t),n=Math.min(r,rw(i)),s=Zi[e+n];return u4(i,e,r+1),Zi[e+n]=s,n},doAccess:function(t,e){if(e&~7)return-28;var r,i=y.lookupPath(t,{follow:!0});if(r=i.node,!r)return-44;var n="";return e&4&&(n+="r"),e&2&&(n+="w"),e&1&&(n+="x"),n&&y.nodePermissions(r,n)?-2:0},doDup:function(t,e,r){var i=y.getStream(r);return i&&y.close(i),y.open(t,e,0,r,r).fd},doReadv:function(t,e,r,i){for(var n=0,s=0;s>2],a=_e[e+(s*8+4)>>2],l=y.read(t,Zi,o,a,i);if(l<0)return-1;if(n+=l,l>2],a=_e[e+(s*8+4)>>2],l=y.write(t,Zi,o,a,i);if(l<0)return-1;n+=l}return n},varargs:void 0,get:function(){Ot.varargs+=4;var t=_e[Ot.varargs-4>>2];return t},getStr:function(t){var e=c4(t);return e},getStreamFromFD:function(t){var e=y.getStream(t);if(!e)throw new y.ErrnoError(8);return e},get64:function(t,e){return t}};function qxe(t,e){try{return t=Ot.getStr(t),y.chmod(t,e),0}catch(r){return(typeof y=="undefined"||!(r instanceof y.ErrnoError))&&Gr(r),-r.errno}}function Wxe(t){return _e[Jxe()>>2]=t,t}function zxe(t,e,r){Ot.varargs=r;try{var i=Ot.getStreamFromFD(t);switch(e){case 0:{var n=Ot.get();if(n<0)return-28;var s;return s=y.open(i.path,i.flags,0,n),s.fd}case 1:case 2:return 0;case 3:return i.flags;case 4:{var n=Ot.get();return i.flags|=n,0}case 12:{var n=Ot.get(),o=0;return cP[n+o>>1]=2,0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:return Wxe(28),-1;default:return-28}}catch(a){return(typeof y=="undefined"||!(a instanceof y.ErrnoError))&&Gr(a),-a.errno}}function Vxe(t,e){try{var r=Ot.getStreamFromFD(t);return Ot.doStat(y.stat,r.path,e)}catch(i){return(typeof y=="undefined"||!(i instanceof y.ErrnoError))&&Gr(i),-i.errno}}function _xe(t,e,r){Ot.varargs=r;try{var i=Ot.getStreamFromFD(t);switch(e){case 21509:case 21505:return i.tty?0:-59;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return i.tty?0:-59;case 21519:{if(!i.tty)return-59;var n=Ot.get();return _e[n>>2]=0,0}case 21520:return i.tty?-28:-59;case 21531:{var n=Ot.get();return y.ioctl(i,e,n)}case 21523:return i.tty?0:-59;case 21524:return i.tty?0:-59;default:Gr("bad ioctl syscall "+e)}}catch(s){return(typeof y=="undefined"||!(s instanceof y.ErrnoError))&&Gr(s),-s.errno}}function Xxe(t,e,r){Ot.varargs=r;try{var i=Ot.getStr(t),n=r?Ot.get():0,s=y.open(i,e,n);return s.fd}catch(o){return(typeof y=="undefined"||!(o instanceof y.ErrnoError))&&Gr(o),-o.errno}}function Zxe(t,e){try{return t=Ot.getStr(t),e=Ot.getStr(e),y.rename(t,e),0}catch(r){return(typeof y=="undefined"||!(r instanceof y.ErrnoError))&&Gr(r),-r.errno}}function $xe(t){try{return t=Ot.getStr(t),y.rmdir(t),0}catch(e){return(typeof y=="undefined"||!(e instanceof y.ErrnoError))&&Gr(e),-e.errno}}function eke(t,e){try{return t=Ot.getStr(t),Ot.doStat(y.stat,t,e)}catch(r){return(typeof y=="undefined"||!(r instanceof y.ErrnoError))&&Gr(r),-r.errno}}function tke(t){try{return t=Ot.getStr(t),y.unlink(t),0}catch(e){return(typeof y=="undefined"||!(e instanceof y.ErrnoError))&&Gr(e),-e.errno}}function rke(t,e,r){$u.copyWithin(t,e,e+r)}function ike(t){try{return ew.grow(t-gP.byteLength+65535>>>16),p4(ew.buffer),1}catch(e){}}function nke(t){var e=$u.length;t=t>>>0;var r=2147483648;if(t>r)return!1;for(var i=1;i<=4;i*=2){var n=e*(1+.2/i);n=Math.min(n,t+100663296);var s=Math.min(r,xxe(Math.max(t,n),65536)),o=ike(s);if(o)return!0}return!1}function ske(t){try{var e=Ot.getStreamFromFD(t);return y.close(e),0}catch(r){return(typeof y=="undefined"||!(r instanceof y.ErrnoError))&&Gr(r),r.errno}}function oke(t,e){try{var r=Ot.getStreamFromFD(t),i=r.tty?2:y.isDir(r.mode)?3:y.isLink(r.mode)?7:4;return Zi[e>>0]=i,0}catch(n){return(typeof y=="undefined"||!(n instanceof y.ErrnoError))&&Gr(n),n.errno}}function ake(t,e,r,i){try{var n=Ot.getStreamFromFD(t),s=Ot.doReadv(n,e,r);return _e[i>>2]=s,0}catch(o){return(typeof y=="undefined"||!(o instanceof y.ErrnoError))&&Gr(o),o.errno}}function Ake(t,e,r,i,n){try{var s=Ot.getStreamFromFD(t),o=4294967296,a=r*o+(e>>>0),l=9007199254740992;return a<=-l||a>=l?-61:(y.llseek(s,a,i),ya=[s.position>>>0,(ai=s.position,+Math.abs(ai)>=1?ai>0?(Math.min(+Math.floor(ai/4294967296),4294967295)|0)>>>0:~~+Math.ceil((ai-+(~~ai>>>0))/4294967296)>>>0:0)],_e[n>>2]=ya[0],_e[n+4>>2]=ya[1],s.getdents&&a===0&&i===0&&(s.getdents=null),0)}catch(c){return(typeof y=="undefined"||!(c instanceof y.ErrnoError))&&Gr(c),c.errno}}function lke(t,e,r,i){try{var n=Ot.getStreamFromFD(t),s=Ot.doWritev(n,e,r);return _e[i>>2]=s,0}catch(o){return(typeof y=="undefined"||!(o instanceof y.ErrnoError))&&Gr(o),o.errno}}function cke(t){Ixe(t)}function uke(t){var e=Date.now()/1e3|0;return t&&(_e[t>>2]=e),e}function IP(){if(IP.called)return;IP.called=!0;var t=new Date().getFullYear(),e=new Date(t,0,1),r=new Date(t,6,1),i=e.getTimezoneOffset(),n=r.getTimezoneOffset(),s=Math.max(i,n);_e[fke()>>2]=s*60,_e[gke()>>2]=Number(i!=n);function o(g){var f=g.toTimeString().match(/\(([A-Za-z ]+)\)$/);return f?f[1]:"GMT"}var a=o(e),l=o(r),c=uP(a),u=uP(l);n>2]=c,_e[nw()+4>>2]=u):(_e[nw()>>2]=u,_e[nw()+4>>2]=c)}function hke(t){IP();var e=Date.UTC(_e[t+20>>2]+1900,_e[t+16>>2],_e[t+12>>2],_e[t+8>>2],_e[t+4>>2],_e[t>>2],0),r=new Date(e);_e[t+24>>2]=r.getUTCDay();var i=Date.UTC(r.getUTCFullYear(),0,1,0,0,0,0),n=(r.getTime()-i)/(1e3*60*60*24)|0;return _e[t+28>>2]=n,r.getTime()/1e3|0}var B4=function(t,e,r,i){t||(t=this),this.parent=t,this.mount=t.mount,this.mounted=null,this.id=y.nextInode++,this.name=e,this.mode=r,this.node_ops={},this.stream_ops={},this.rdev=i},sw=292|73,ow=146;Object.defineProperties(B4.prototype,{read:{get:function(){return(this.mode&sw)===sw},set:function(t){t?this.mode|=sw:this.mode&=~sw}},write:{get:function(){return(this.mode&ow)===ow},set:function(t){t?this.mode|=ow:this.mode&=~ow}},isFolder:{get:function(){return y.isDir(this.mode)}},isDevice:{get:function(){return y.isChrdev(this.mode)}}});y.FSNode=B4;y.staticInit();Wl&&(ft=e4,EP=require("path"),tt.staticInit());var ft,EP;if(Wl){Q4=function(t){return function(){try{return t.apply(this,arguments)}catch(e){throw e.code?new y.ErrnoError(eg[e.code]):e}}},Vl=Object.assign({},y);for(yP in w4)y[yP]=Q4(w4[yP])}else throw new Error("NODERAWFS is currently only supported on Node.js environment.");var Q4,Vl,yP;function CP(t,e,r){var i=r>0?r:rw(t)+1,n=new Array(i),s=tw(t,n,0,n.length);return e&&(n.length=s),n}var pke=typeof atob=="function"?atob:function(t){var e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",r="",i,n,s,o,a,l,c,u=0;t=t.replace(/[^A-Za-z0-9\+\/\=]/g,"");do o=e.indexOf(t.charAt(u++)),a=e.indexOf(t.charAt(u++)),l=e.indexOf(t.charAt(u++)),c=e.indexOf(t.charAt(u++)),i=o<<2|a>>4,n=(a&15)<<4|l>>2,s=(l&3)<<6|c,r=r+String.fromCharCode(i),l!==64&&(r=r+String.fromCharCode(n)),c!==64&&(r=r+String.fromCharCode(s));while(u0||(Fxe(),zl>0))return;function e(){aw||(aw=!0,oe.calledRun=!0,!A4&&(Nxe(),oe.onRuntimeInitialized&&oe.onRuntimeInitialized(),Txe()))}oe.setStatus?(oe.setStatus("Running..."),setTimeout(function(){setTimeout(function(){oe.setStatus("")},1),e()},1)):e()}oe.run=wP;if(oe.preInit)for(typeof oe.preInit=="function"&&(oe.preInit=[oe.preInit]);oe.preInit.length>0;)oe.preInit.pop()();wP()});var x4=E((Dot,S4)=>{"use strict";function Cke(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function _l(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,_l)}Cke(_l,Error);_l.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ee=At(">>",!1),Ue=">&",Oe=At(">&",!1),vt=">",dt=At(">",!1),ri="<<<",ii=At("<<<",!1),an="<&",yr=At("<&",!1),Ki="<",Qi=At("<",!1),Go=function(C){return{type:"argument",segments:[].concat(...C)}},wr=function(C){return C},Ui="'",ws=At("'",!1),Tf=function(C){return[{type:"text",text:C}]},Mf='"',Rm=At('"',!1),Fm=function(C){return C},Nm=function(C){return{type:"arithmetic",arithmetic:C,quoted:!0}},DQ=function(C){return{type:"shell",shell:C,quoted:!0}},RQ=function(C){return _(P({type:"variable"},C),{quoted:!0})},Of=function(C){return{type:"text",text:C}},FQ=function(C){return{type:"arithmetic",arithmetic:C,quoted:!1}},NQ=function(C){return{type:"shell",shell:C,quoted:!1}},Lm=function(C){return _(P({type:"variable"},C),{quoted:!1})},LQ=function(C){return{type:"glob",pattern:C}},Va="\\",jo=At("\\",!1),Tm=/^[\\']/,Mm=Qs(["\\","'"],!1,!1),te=function(C){return C},Om=/^[^']/,Km=Qs(["'"],!0,!1),il=function(C){return C.join("")},Um=/^[\\$"]/,Hm=Qs(["\\","$",'"'],!1,!1),Kf=/^[^$"]/,Gm=Qs(["$",'"'],!0,!1),jm="\\0",TQ=At("\\0",!1),MQ=function(){return"\0"},Ym="\\a",qm=At("\\a",!1),Jm=function(){return"a"},Wm="\\b",zm=At("\\b",!1),Vm=function(){return"\b"},Uf="\\e",OQ=At("\\e",!1),KQ=function(){return""},_m="\\f",UQ=At("\\f",!1),HQ=function(){return"\f"},O="\\n",ht=At("\\n",!1),Vc=function(){return` -`},xn="\\r",Hf=At("\\r",!1),Ye=function(){return"\r"},nl="\\t",Xm=At("\\t",!1),MM=function(){return" "},GQ="\\v",OM=At("\\v",!1),fr=function(){return"\v"},Bs="\\x",jQ=At("\\x",!1),Zm=function(C){return String.fromCharCode(parseInt(C,16))},Yo="\\u",$m=At("\\u",!1),_a="\\U",et=At("\\U",!1),YQ=function(C){return String.fromCodePoint(parseInt(C,16))},eE=/^[0-9a-fA-f]/,tE=Qs([["0","9"],["a","f"],["A","f"]],!1,!1),Xa=Cfe(),sl="-",ol=At("-",!1),al="+",qo=At("+",!1),Al=".",qQ=At(".",!1),rE=function(C,Q,k){return{type:"number",value:(C==="-"?-1:1)*parseFloat(Q.join("")+"."+k.join(""))}},iE=function(C,Q){return{type:"number",value:(C==="-"?-1:1)*parseInt(Q.join(""))}},JQ=function(C){return P({type:"variable"},C)},ll=function(C){return{type:"variable",name:C}},WQ=function(C){return C},nE="*",Gf=At("*",!1),_c="/",jf=At("/",!1),sE=function(C,Q,k){return{type:Q==="*"?"multiplication":"division",right:k}},cl=function(C,Q){return Q.reduce((k,N)=>P({left:k},N),C)},oE=function(C,Q,k){return{type:Q==="+"?"addition":"subtraction",right:k}},Yf="$((",Xc=At("$((",!1),xr="))",KM=At("))",!1),Jo=function(C){return C},Zs="$(",aE=At("$(",!1),Zc=function(C){return C},x="${",U=At("${",!1),le=":-",xe=At(":-",!1),Qe=function(C,Q){return{name:C,defaultValue:Q}},Ge=":-}",ct=At(":-}",!1),sr=function(C){return{name:C,defaultValue:[]}},Wo=function(C){return{name:C}},Afe="$",lfe=At("$",!1),cfe=function(C){return e.isGlobPattern(C)},ufe=function(C){return C},UM=/^[a-zA-Z0-9_]/,HM=Qs([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),GM=function(){return dfe()},jM=/^[$@*?#a-zA-Z0-9_\-]/,YM=Qs(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),gfe=/^[(){}<>$|&; \t"']/,ffe=Qs(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),hfe=/^[<>&; \t"']/,pfe=Qs(["<",">","&",";"," "," ",'"',"'"],!1,!1),qM=/^[ \t]/,JM=Qs([" "," "],!1,!1),w=0,Re=0,AE=[{line:1,column:1}],$s=0,zQ=[],we=0,lE;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function dfe(){return t.substring(Re,w)}function P_e(){return qf(Re,w)}function D_e(C,Q){throw Q=Q!==void 0?Q:qf(Re,w),zM([Efe(C)],t.substring(Re,w),Q)}function R_e(C,Q){throw Q=Q!==void 0?Q:qf(Re,w),Ife(C,Q)}function At(C,Q){return{type:"literal",text:C,ignoreCase:Q}}function Qs(C,Q,k){return{type:"class",parts:C,inverted:Q,ignoreCase:k}}function Cfe(){return{type:"any"}}function mfe(){return{type:"end"}}function Efe(C){return{type:"other",description:C}}function WM(C){var Q=AE[C],k;if(Q)return Q;for(k=C-1;!AE[k];)k--;for(Q=AE[k],Q={line:Q.line,column:Q.column};k$s&&($s=w,zQ=[]),zQ.push(C))}function Ife(C,Q){return new _l(C,null,null,Q)}function zM(C,Q,k){return new _l(_l.buildMessage(C,Q),C,Q,k)}function VM(){var C,Q;return C=w,Q=Jf(),Q===r&&(Q=null),Q!==r&&(Re=C,Q=s(Q)),C=Q,C}function Jf(){var C,Q,k,N,Z;if(C=w,Q=VQ(),Q!==r){for(k=[],N=ke();N!==r;)k.push(N),N=ke();k!==r?(N=_M(),N!==r?(Z=yfe(),Z===r&&(Z=null),Z!==r?(Re=C,Q=o(Q,N,Z),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r)}else w=C,C=r;if(C===r)if(C=w,Q=VQ(),Q!==r){for(k=[],N=ke();N!==r;)k.push(N),N=ke();k!==r?(N=_M(),N===r&&(N=null),N!==r?(Re=C,Q=a(Q,N),C=Q):(w=C,C=r)):(w=C,C=r)}else w=C,C=r;return C}function yfe(){var C,Q,k,N,Z;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r)if(k=Jf(),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();N!==r?(Re=C,Q=l(k),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r;return C}function _M(){var C;return t.charCodeAt(w)===59?(C=c,w++):(C=r,we===0&&ve(u)),C===r&&(t.charCodeAt(w)===38?(C=g,w++):(C=r,we===0&&ve(f))),C}function VQ(){var C,Q,k;return C=w,Q=XM(),Q!==r?(k=wfe(),k===r&&(k=null),k!==r?(Re=C,Q=h(Q,k),C=Q):(w=C,C=r)):(w=C,C=r),C}function wfe(){var C,Q,k,N,Z,Ee,ot;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r)if(k=Bfe(),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();if(N!==r)if(Z=VQ(),Z!==r){for(Ee=[],ot=ke();ot!==r;)Ee.push(ot),ot=ke();Ee!==r?(Re=C,Q=p(k,Z),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r;return C}function Bfe(){var C;return t.substr(w,2)===d?(C=d,w+=2):(C=r,we===0&&ve(m)),C===r&&(t.substr(w,2)===I?(C=I,w+=2):(C=r,we===0&&ve(B))),C}function XM(){var C,Q,k;return C=w,Q=vfe(),Q!==r?(k=Qfe(),k===r&&(k=null),k!==r?(Re=C,Q=b(Q,k),C=Q):(w=C,C=r)):(w=C,C=r),C}function Qfe(){var C,Q,k,N,Z,Ee,ot;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r)if(k=bfe(),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();if(N!==r)if(Z=XM(),Z!==r){for(Ee=[],ot=ke();ot!==r;)Ee.push(ot),ot=ke();Ee!==r?(Re=C,Q=R(k,Z),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r;return C}function bfe(){var C;return t.substr(w,2)===H?(C=H,w+=2):(C=r,we===0&&ve(L)),C===r&&(t.charCodeAt(w)===124?(C=K,w++):(C=r,we===0&&ve(J))),C}function cE(){var C,Q,k,N,Z,Ee;if(C=w,Q=oO(),Q!==r)if(t.charCodeAt(w)===61?(k=ne,w++):(k=r,we===0&&ve(q)),k!==r)if(N=$M(),N!==r){for(Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();Z!==r?(Re=C,Q=A(Q,N),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r;else w=C,C=r;if(C===r)if(C=w,Q=oO(),Q!==r)if(t.charCodeAt(w)===61?(k=ne,w++):(k=r,we===0&&ve(q)),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();N!==r?(Re=C,Q=V(Q),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r;return C}function vfe(){var C,Q,k,N,Z,Ee,ot,ut,Tr,ni,Yn;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r)if(t.charCodeAt(w)===40?(k=W,w++):(k=r,we===0&&ve(X)),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();if(N!==r)if(Z=Jf(),Z!==r){for(Ee=[],ot=ke();ot!==r;)Ee.push(ot),ot=ke();if(Ee!==r)if(t.charCodeAt(w)===41?(ot=F,w++):(ot=r,we===0&&ve(D)),ot!==r){for(ut=[],Tr=ke();Tr!==r;)ut.push(Tr),Tr=ke();if(ut!==r){for(Tr=[],ni=Wf();ni!==r;)Tr.push(ni),ni=Wf();if(Tr!==r){for(ni=[],Yn=ke();Yn!==r;)ni.push(Yn),Yn=ke();ni!==r?(Re=C,Q=he(Z,Tr),C=Q):(w=C,C=r)}else w=C,C=r}else w=C,C=r}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r;if(C===r){for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r)if(t.charCodeAt(w)===123?(k=pe,w++):(k=r,we===0&&ve(Ne)),k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();if(N!==r)if(Z=Jf(),Z!==r){for(Ee=[],ot=ke();ot!==r;)Ee.push(ot),ot=ke();if(Ee!==r)if(t.charCodeAt(w)===125?(ot=Pe,w++):(ot=r,we===0&&ve(qe)),ot!==r){for(ut=[],Tr=ke();Tr!==r;)ut.push(Tr),Tr=ke();if(ut!==r){for(Tr=[],ni=Wf();ni!==r;)Tr.push(ni),ni=Wf();if(Tr!==r){for(ni=[],Yn=ke();Yn!==r;)ni.push(Yn),Yn=ke();ni!==r?(Re=C,Q=re(Z,Tr),C=Q):(w=C,C=r)}else w=C,C=r}else w=C,C=r}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r}else w=C,C=r;else w=C,C=r;if(C===r){for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r){for(k=[],N=cE();N!==r;)k.push(N),N=cE();if(k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();if(N!==r){if(Z=[],Ee=ZM(),Ee!==r)for(;Ee!==r;)Z.push(Ee),Ee=ZM();else Z=r;if(Z!==r){for(Ee=[],ot=ke();ot!==r;)Ee.push(ot),ot=ke();Ee!==r?(Re=C,Q=se(k,Z),C=Q):(w=C,C=r)}else w=C,C=r}else w=C,C=r}else w=C,C=r}else w=C,C=r;if(C===r){for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r){if(k=[],N=cE(),N!==r)for(;N!==r;)k.push(N),N=cE();else k=r;if(k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();N!==r?(Re=C,Q=be(k),C=Q):(w=C,C=r)}else w=C,C=r}else w=C,C=r}}}return C}function Sfe(){var C,Q,k,N,Z;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r){if(k=[],N=uE(),N!==r)for(;N!==r;)k.push(N),N=uE();else k=r;if(k!==r){for(N=[],Z=ke();Z!==r;)N.push(Z),Z=ke();N!==r?(Re=C,Q=ae(k),C=Q):(w=C,C=r)}else w=C,C=r}else w=C,C=r;return C}function ZM(){var C,Q,k;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();if(Q!==r?(k=Wf(),k!==r?(Re=C,Q=Ae(k),C=Q):(w=C,C=r)):(w=C,C=r),C===r){for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();Q!==r?(k=uE(),k!==r?(Re=C,Q=Ae(k),C=Q):(w=C,C=r)):(w=C,C=r)}return C}function Wf(){var C,Q,k,N,Z;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();return Q!==r?(De.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve($)),k===r&&(k=null),k!==r?(N=xfe(),N!==r?(Z=uE(),Z!==r?(Re=C,Q=G(k,N,Z),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C}function xfe(){var C;return t.substr(w,2)===Ce?(C=Ce,w+=2):(C=r,we===0&&ve(ee)),C===r&&(t.substr(w,2)===Ue?(C=Ue,w+=2):(C=r,we===0&&ve(Oe)),C===r&&(t.charCodeAt(w)===62?(C=vt,w++):(C=r,we===0&&ve(dt)),C===r&&(t.substr(w,3)===ri?(C=ri,w+=3):(C=r,we===0&&ve(ii)),C===r&&(t.substr(w,2)===an?(C=an,w+=2):(C=r,we===0&&ve(yr)),C===r&&(t.charCodeAt(w)===60?(C=Ki,w++):(C=r,we===0&&ve(Qi))))))),C}function uE(){var C,Q,k;for(C=w,Q=[],k=ke();k!==r;)Q.push(k),k=ke();return Q!==r?(k=$M(),k!==r?(Re=C,Q=Ae(k),C=Q):(w=C,C=r)):(w=C,C=r),C}function $M(){var C,Q,k;if(C=w,Q=[],k=eO(),k!==r)for(;k!==r;)Q.push(k),k=eO();else Q=r;return Q!==r&&(Re=C,Q=Go(Q)),C=Q,C}function eO(){var C,Q;return C=w,Q=kfe(),Q!==r&&(Re=C,Q=wr(Q)),C=Q,C===r&&(C=w,Q=Pfe(),Q!==r&&(Re=C,Q=wr(Q)),C=Q,C===r&&(C=w,Q=Dfe(),Q!==r&&(Re=C,Q=wr(Q)),C=Q)),C}function kfe(){var C,Q,k,N;return C=w,t.charCodeAt(w)===39?(Q=Ui,w++):(Q=r,we===0&&ve(ws)),Q!==r?(k=Rfe(),k!==r?(t.charCodeAt(w)===39?(N=Ui,w++):(N=r,we===0&&ve(ws)),N!==r?(Re=C,Q=Tf(k),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C}function Pfe(){var C,Q,k,N;if(C=w,t.charCodeAt(w)===34?(Q=Mf,w++):(Q=r,we===0&&ve(Rm)),Q!==r){for(k=[],N=tO();N!==r;)k.push(N),N=tO();k!==r?(t.charCodeAt(w)===34?(N=Mf,w++):(N=r,we===0&&ve(Rm)),N!==r?(Re=C,Q=Fm(k),C=Q):(w=C,C=r)):(w=C,C=r)}else w=C,C=r;return C}function Dfe(){var C,Q,k;if(C=w,Q=[],k=rO(),k!==r)for(;k!==r;)Q.push(k),k=rO();else Q=r;return Q!==r&&(Re=C,Q=Fm(Q)),C=Q,C}function tO(){var C,Q;return C=w,Q=nO(),Q!==r&&(Re=C,Q=Nm(Q)),C=Q,C===r&&(C=w,Q=sO(),Q!==r&&(Re=C,Q=DQ(Q)),C=Q,C===r&&(C=w,Q=ZQ(),Q!==r&&(Re=C,Q=RQ(Q)),C=Q,C===r&&(C=w,Q=Ffe(),Q!==r&&(Re=C,Q=Of(Q)),C=Q))),C}function rO(){var C,Q;return C=w,Q=nO(),Q!==r&&(Re=C,Q=FQ(Q)),C=Q,C===r&&(C=w,Q=sO(),Q!==r&&(Re=C,Q=NQ(Q)),C=Q,C===r&&(C=w,Q=ZQ(),Q!==r&&(Re=C,Q=Lm(Q)),C=Q,C===r&&(C=w,Q=Lfe(),Q!==r&&(Re=C,Q=LQ(Q)),C=Q,C===r&&(C=w,Q=Nfe(),Q!==r&&(Re=C,Q=Of(Q)),C=Q)))),C}function Rfe(){var C,Q,k,N,Z;for(C=w,Q=[],k=gE(),k===r&&(k=fE(),k===r&&(k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(Tm.test(t.charAt(w))?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Mm)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(Om.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(Km)))));k!==r;)Q.push(k),k=gE(),k===r&&(k=fE(),k===r&&(k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(Tm.test(t.charAt(w))?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Mm)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(Om.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(Km)))));return Q!==r&&(Re=C,Q=il(Q)),C=Q,C}function Ffe(){var C,Q,k,N,Z;if(C=w,Q=[],k=gE(),k===r&&(k=fE(),k===r&&(k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(Um.test(t.charAt(w))?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Hm)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(Kf.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(Gm))))),k!==r)for(;k!==r;)Q.push(k),k=gE(),k===r&&(k=fE(),k===r&&(k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(Um.test(t.charAt(w))?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Hm)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(Kf.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(Gm)))));else Q=r;return Q!==r&&(Re=C,Q=il(Q)),C=Q,C}function gE(){var C,Q;return C=w,t.substr(w,2)===jm?(Q=jm,w+=2):(Q=r,we===0&&ve(TQ)),Q!==r&&(Re=C,Q=MQ()),C=Q,C===r&&(C=w,t.substr(w,2)===Ym?(Q=Ym,w+=2):(Q=r,we===0&&ve(qm)),Q!==r&&(Re=C,Q=Jm()),C=Q,C===r&&(C=w,t.substr(w,2)===Wm?(Q=Wm,w+=2):(Q=r,we===0&&ve(zm)),Q!==r&&(Re=C,Q=Vm()),C=Q,C===r&&(C=w,t.substr(w,2)===Uf?(Q=Uf,w+=2):(Q=r,we===0&&ve(OQ)),Q!==r&&(Re=C,Q=KQ()),C=Q,C===r&&(C=w,t.substr(w,2)===_m?(Q=_m,w+=2):(Q=r,we===0&&ve(UQ)),Q!==r&&(Re=C,Q=HQ()),C=Q,C===r&&(C=w,t.substr(w,2)===O?(Q=O,w+=2):(Q=r,we===0&&ve(ht)),Q!==r&&(Re=C,Q=Vc()),C=Q,C===r&&(C=w,t.substr(w,2)===xn?(Q=xn,w+=2):(Q=r,we===0&&ve(Hf)),Q!==r&&(Re=C,Q=Ye()),C=Q,C===r&&(C=w,t.substr(w,2)===nl?(Q=nl,w+=2):(Q=r,we===0&&ve(Xm)),Q!==r&&(Re=C,Q=MM()),C=Q,C===r&&(C=w,t.substr(w,2)===GQ?(Q=GQ,w+=2):(Q=r,we===0&&ve(OM)),Q!==r&&(Re=C,Q=fr()),C=Q)))))))),C}function fE(){var C,Q,k,N,Z,Ee,ot,ut,Tr,ni,Yn,$Q;return C=w,t.substr(w,2)===Bs?(Q=Bs,w+=2):(Q=r,we===0&&ve(jQ)),Q!==r?(k=w,N=w,Z=An(),Z!==r?(Ee=An(),Ee!==r?(Z=[Z,Ee],N=Z):(w=N,N=r)):(w=N,N=r),N!==r?k=t.substring(k,w):k=N,k!==r?(Re=C,Q=Zm(k),C=Q):(w=C,C=r)):(w=C,C=r),C===r&&(C=w,t.substr(w,2)===Yo?(Q=Yo,w+=2):(Q=r,we===0&&ve($m)),Q!==r?(k=w,N=w,Z=An(),Z!==r?(Ee=An(),Ee!==r?(ot=An(),ot!==r?(ut=An(),ut!==r?(Z=[Z,Ee,ot,ut],N=Z):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r),N!==r?k=t.substring(k,w):k=N,k!==r?(Re=C,Q=Zm(k),C=Q):(w=C,C=r)):(w=C,C=r),C===r&&(C=w,t.substr(w,2)===_a?(Q=_a,w+=2):(Q=r,we===0&&ve(et)),Q!==r?(k=w,N=w,Z=An(),Z!==r?(Ee=An(),Ee!==r?(ot=An(),ot!==r?(ut=An(),ut!==r?(Tr=An(),Tr!==r?(ni=An(),ni!==r?(Yn=An(),Yn!==r?($Q=An(),$Q!==r?(Z=[Z,Ee,ot,ut,Tr,ni,Yn,$Q],N=Z):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r)):(w=N,N=r),N!==r?k=t.substring(k,w):k=N,k!==r?(Re=C,Q=YQ(k),C=Q):(w=C,C=r)):(w=C,C=r))),C}function An(){var C;return eE.test(t.charAt(w))?(C=t.charAt(w),w++):(C=r,we===0&&ve(tE)),C}function Nfe(){var C,Q,k,N,Z;if(C=w,Q=[],k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(k=w,N=w,we++,Z=aO(),we--,Z===r?N=void 0:(w=N,N=r),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r)),k!==r)for(;k!==r;)Q.push(k),k=w,t.charCodeAt(w)===92?(N=Va,w++):(N=r,we===0&&ve(jo)),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k===r&&(k=w,N=w,we++,Z=aO(),we--,Z===r?N=void 0:(w=N,N=r),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r));else Q=r;return Q!==r&&(Re=C,Q=il(Q)),C=Q,C}function _Q(){var C,Q,k,N,Z,Ee;if(C=w,t.charCodeAt(w)===45?(Q=sl,w++):(Q=r,we===0&&ve(ol)),Q===r&&(t.charCodeAt(w)===43?(Q=al,w++):(Q=r,we===0&&ve(qo))),Q===r&&(Q=null),Q!==r){if(k=[],De.test(t.charAt(w))?(N=t.charAt(w),w++):(N=r,we===0&&ve($)),N!==r)for(;N!==r;)k.push(N),De.test(t.charAt(w))?(N=t.charAt(w),w++):(N=r,we===0&&ve($));else k=r;if(k!==r)if(t.charCodeAt(w)===46?(N=Al,w++):(N=r,we===0&&ve(qQ)),N!==r){if(Z=[],De.test(t.charAt(w))?(Ee=t.charAt(w),w++):(Ee=r,we===0&&ve($)),Ee!==r)for(;Ee!==r;)Z.push(Ee),De.test(t.charAt(w))?(Ee=t.charAt(w),w++):(Ee=r,we===0&&ve($));else Z=r;Z!==r?(Re=C,Q=rE(Q,k,Z),C=Q):(w=C,C=r)}else w=C,C=r;else w=C,C=r}else w=C,C=r;if(C===r){if(C=w,t.charCodeAt(w)===45?(Q=sl,w++):(Q=r,we===0&&ve(ol)),Q===r&&(t.charCodeAt(w)===43?(Q=al,w++):(Q=r,we===0&&ve(qo))),Q===r&&(Q=null),Q!==r){if(k=[],De.test(t.charAt(w))?(N=t.charAt(w),w++):(N=r,we===0&&ve($)),N!==r)for(;N!==r;)k.push(N),De.test(t.charAt(w))?(N=t.charAt(w),w++):(N=r,we===0&&ve($));else k=r;k!==r?(Re=C,Q=iE(Q,k),C=Q):(w=C,C=r)}else w=C,C=r;if(C===r&&(C=w,Q=ZQ(),Q!==r&&(Re=C,Q=JQ(Q)),C=Q,C===r&&(C=w,Q=zf(),Q!==r&&(Re=C,Q=ll(Q)),C=Q,C===r)))if(C=w,t.charCodeAt(w)===40?(Q=W,w++):(Q=r,we===0&&ve(X)),Q!==r){for(k=[],N=ke();N!==r;)k.push(N),N=ke();if(k!==r)if(N=iO(),N!==r){for(Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();Z!==r?(t.charCodeAt(w)===41?(Ee=F,w++):(Ee=r,we===0&&ve(D)),Ee!==r?(Re=C,Q=WQ(N),C=Q):(w=C,C=r)):(w=C,C=r)}else w=C,C=r;else w=C,C=r}else w=C,C=r}return C}function XQ(){var C,Q,k,N,Z,Ee,ot,ut;if(C=w,Q=_Q(),Q!==r){for(k=[],N=w,Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();if(Z!==r)if(t.charCodeAt(w)===42?(Ee=nE,w++):(Ee=r,we===0&&ve(Gf)),Ee===r&&(t.charCodeAt(w)===47?(Ee=_c,w++):(Ee=r,we===0&&ve(jf))),Ee!==r){for(ot=[],ut=ke();ut!==r;)ot.push(ut),ut=ke();ot!==r?(ut=_Q(),ut!==r?(Re=N,Z=sE(Q,Ee,ut),N=Z):(w=N,N=r)):(w=N,N=r)}else w=N,N=r;else w=N,N=r;for(;N!==r;){for(k.push(N),N=w,Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();if(Z!==r)if(t.charCodeAt(w)===42?(Ee=nE,w++):(Ee=r,we===0&&ve(Gf)),Ee===r&&(t.charCodeAt(w)===47?(Ee=_c,w++):(Ee=r,we===0&&ve(jf))),Ee!==r){for(ot=[],ut=ke();ut!==r;)ot.push(ut),ut=ke();ot!==r?(ut=_Q(),ut!==r?(Re=N,Z=sE(Q,Ee,ut),N=Z):(w=N,N=r)):(w=N,N=r)}else w=N,N=r;else w=N,N=r}k!==r?(Re=C,Q=cl(Q,k),C=Q):(w=C,C=r)}else w=C,C=r;return C}function iO(){var C,Q,k,N,Z,Ee,ot,ut;if(C=w,Q=XQ(),Q!==r){for(k=[],N=w,Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();if(Z!==r)if(t.charCodeAt(w)===43?(Ee=al,w++):(Ee=r,we===0&&ve(qo)),Ee===r&&(t.charCodeAt(w)===45?(Ee=sl,w++):(Ee=r,we===0&&ve(ol))),Ee!==r){for(ot=[],ut=ke();ut!==r;)ot.push(ut),ut=ke();ot!==r?(ut=XQ(),ut!==r?(Re=N,Z=oE(Q,Ee,ut),N=Z):(w=N,N=r)):(w=N,N=r)}else w=N,N=r;else w=N,N=r;for(;N!==r;){for(k.push(N),N=w,Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();if(Z!==r)if(t.charCodeAt(w)===43?(Ee=al,w++):(Ee=r,we===0&&ve(qo)),Ee===r&&(t.charCodeAt(w)===45?(Ee=sl,w++):(Ee=r,we===0&&ve(ol))),Ee!==r){for(ot=[],ut=ke();ut!==r;)ot.push(ut),ut=ke();ot!==r?(ut=XQ(),ut!==r?(Re=N,Z=oE(Q,Ee,ut),N=Z):(w=N,N=r)):(w=N,N=r)}else w=N,N=r;else w=N,N=r}k!==r?(Re=C,Q=cl(Q,k),C=Q):(w=C,C=r)}else w=C,C=r;return C}function nO(){var C,Q,k,N,Z,Ee;if(C=w,t.substr(w,3)===Yf?(Q=Yf,w+=3):(Q=r,we===0&&ve(Xc)),Q!==r){for(k=[],N=ke();N!==r;)k.push(N),N=ke();if(k!==r)if(N=iO(),N!==r){for(Z=[],Ee=ke();Ee!==r;)Z.push(Ee),Ee=ke();Z!==r?(t.substr(w,2)===xr?(Ee=xr,w+=2):(Ee=r,we===0&&ve(KM)),Ee!==r?(Re=C,Q=Jo(N),C=Q):(w=C,C=r)):(w=C,C=r)}else w=C,C=r;else w=C,C=r}else w=C,C=r;return C}function sO(){var C,Q,k,N;return C=w,t.substr(w,2)===Zs?(Q=Zs,w+=2):(Q=r,we===0&&ve(aE)),Q!==r?(k=Jf(),k!==r?(t.charCodeAt(w)===41?(N=F,w++):(N=r,we===0&&ve(D)),N!==r?(Re=C,Q=Zc(k),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C}function ZQ(){var C,Q,k,N,Z,Ee;return C=w,t.substr(w,2)===x?(Q=x,w+=2):(Q=r,we===0&&ve(U)),Q!==r?(k=zf(),k!==r?(t.substr(w,2)===le?(N=le,w+=2):(N=r,we===0&&ve(xe)),N!==r?(Z=Sfe(),Z!==r?(t.charCodeAt(w)===125?(Ee=Pe,w++):(Ee=r,we===0&&ve(qe)),Ee!==r?(Re=C,Q=Qe(k,Z),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C===r&&(C=w,t.substr(w,2)===x?(Q=x,w+=2):(Q=r,we===0&&ve(U)),Q!==r?(k=zf(),k!==r?(t.substr(w,3)===Ge?(N=Ge,w+=3):(N=r,we===0&&ve(ct)),N!==r?(Re=C,Q=sr(k),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C===r&&(C=w,t.substr(w,2)===x?(Q=x,w+=2):(Q=r,we===0&&ve(U)),Q!==r?(k=zf(),k!==r?(t.charCodeAt(w)===125?(N=Pe,w++):(N=r,we===0&&ve(qe)),N!==r?(Re=C,Q=Wo(k),C=Q):(w=C,C=r)):(w=C,C=r)):(w=C,C=r),C===r&&(C=w,t.charCodeAt(w)===36?(Q=Afe,w++):(Q=r,we===0&&ve(lfe)),Q!==r?(k=zf(),k!==r?(Re=C,Q=Wo(k),C=Q):(w=C,C=r)):(w=C,C=r)))),C}function Lfe(){var C,Q,k;return C=w,Q=Tfe(),Q!==r?(Re=w,k=cfe(Q),k?k=void 0:k=r,k!==r?(Re=C,Q=ufe(Q),C=Q):(w=C,C=r)):(w=C,C=r),C}function Tfe(){var C,Q,k,N,Z;if(C=w,Q=[],k=w,N=w,we++,Z=AO(),we--,Z===r?N=void 0:(w=N,N=r),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r),k!==r)for(;k!==r;)Q.push(k),k=w,N=w,we++,Z=AO(),we--,Z===r?N=void 0:(w=N,N=r),N!==r?(t.length>w?(Z=t.charAt(w),w++):(Z=r,we===0&&ve(Xa)),Z!==r?(Re=k,N=te(Z),k=N):(w=k,k=r)):(w=k,k=r);else Q=r;return Q!==r&&(Re=C,Q=il(Q)),C=Q,C}function oO(){var C,Q,k;if(C=w,Q=[],UM.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(HM)),k!==r)for(;k!==r;)Q.push(k),UM.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(HM));else Q=r;return Q!==r&&(Re=C,Q=GM()),C=Q,C}function zf(){var C,Q,k;if(C=w,Q=[],jM.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(YM)),k!==r)for(;k!==r;)Q.push(k),jM.test(t.charAt(w))?(k=t.charAt(w),w++):(k=r,we===0&&ve(YM));else Q=r;return Q!==r&&(Re=C,Q=GM()),C=Q,C}function aO(){var C;return gfe.test(t.charAt(w))?(C=t.charAt(w),w++):(C=r,we===0&&ve(ffe)),C}function AO(){var C;return hfe.test(t.charAt(w))?(C=t.charAt(w),w++):(C=r,we===0&&ve(pfe)),C}function ke(){var C,Q;if(C=[],qM.test(t.charAt(w))?(Q=t.charAt(w),w++):(Q=r,we===0&&ve(JM)),Q!==r)for(;Q!==r;)C.push(Q),qM.test(t.charAt(w))?(Q=t.charAt(w),w++):(Q=r,we===0&&ve(JM));else C=r;return C}if(lE=n(),lE!==r&&w===t.length)return lE;throw lE!==r&&w{"use strict";function Eke(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Xl(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Xl)}Eke(Xl,Error);Xl.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=B,L=[]),L.push($))}function qe($,G){return new Xl($,null,null,G)}function re($,G,Ce){return new Xl(Xl.buildMessage($,G),$,G,Ce)}function se(){var $,G,Ce,ee;return $=B,G=be(),G!==r?(t.charCodeAt(B)===47?(Ce=s,B++):(Ce=r,K===0&&Pe(o)),Ce!==r?(ee=be(),ee!==r?(b=$,G=a(G,ee),$=G):(B=$,$=r)):(B=$,$=r)):(B=$,$=r),$===r&&($=B,G=be(),G!==r&&(b=$,G=l(G)),$=G),$}function be(){var $,G,Ce,ee;return $=B,G=ae(),G!==r?(t.charCodeAt(B)===64?(Ce=c,B++):(Ce=r,K===0&&Pe(u)),Ce!==r?(ee=De(),ee!==r?(b=$,G=g(G,ee),$=G):(B=$,$=r)):(B=$,$=r)):(B=$,$=r),$===r&&($=B,G=ae(),G!==r&&(b=$,G=f(G)),$=G),$}function ae(){var $,G,Ce,ee,Ue;return $=B,t.charCodeAt(B)===64?(G=c,B++):(G=r,K===0&&Pe(u)),G!==r?(Ce=Ae(),Ce!==r?(t.charCodeAt(B)===47?(ee=s,B++):(ee=r,K===0&&Pe(o)),ee!==r?(Ue=Ae(),Ue!==r?(b=$,G=h(),$=G):(B=$,$=r)):(B=$,$=r)):(B=$,$=r)):(B=$,$=r),$===r&&($=B,G=Ae(),G!==r&&(b=$,G=h()),$=G),$}function Ae(){var $,G,Ce;if($=B,G=[],p.test(t.charAt(B))?(Ce=t.charAt(B),B++):(Ce=r,K===0&&Pe(d)),Ce!==r)for(;Ce!==r;)G.push(Ce),p.test(t.charAt(B))?(Ce=t.charAt(B),B++):(Ce=r,K===0&&Pe(d));else G=r;return G!==r&&(b=$,G=h()),$=G,$}function De(){var $,G,Ce;if($=B,G=[],m.test(t.charAt(B))?(Ce=t.charAt(B),B++):(Ce=r,K===0&&Pe(I)),Ce!==r)for(;Ce!==r;)G.push(Ce),m.test(t.charAt(B))?(Ce=t.charAt(B),B++):(Ce=r,K===0&&Pe(I));else G=r;return G!==r&&(b=$,G=h()),$=G,$}if(J=n(),J!==r&&B===t.length)return J;throw J!==r&&B{"use strict";function F4(t){return typeof t=="undefined"||t===null}function yke(t){return typeof t=="object"&&t!==null}function wke(t){return Array.isArray(t)?t:F4(t)?[]:[t]}function Bke(t,e){var r,i,n,s;if(e)for(s=Object.keys(e),r=0,i=s.length;r{"use strict";function Lp(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Lp.prototype=Object.create(Error.prototype);Lp.prototype.constructor=Lp;Lp.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};N4.exports=Lp});var M4=E((Vot,L4)=>{"use strict";var T4=$l();function kP(t,e,r,i,n){this.name=t,this.buffer=e,this.position=r,this.line=i,this.column=n}kP.prototype.getSnippet=function(e,r){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,r=r||75,i="",n=this.position;n>0&&`\0\r -\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>r/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;or/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),T4.repeat(" ",e)+i+a+s+` -`+T4.repeat(" ",e+this.position-n+i.length)+"^"};kP.prototype.toString=function(e){var r,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(i+=`: -`+r)),i};L4.exports=kP});var Xr=E((_ot,O4)=>{"use strict";var K4=ng(),vke=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Ske=["scalar","sequence","mapping"];function xke(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(i){e[String(i)]=r})}),e}function kke(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(vke.indexOf(r)===-1)throw new K4('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=xke(e.styleAliases||null),Ske.indexOf(this.kind)===-1)throw new K4('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}O4.exports=kke});var ec=E((Xot,U4)=>{"use strict";var H4=$l(),hw=ng(),Pke=Xr();function PP(t,e,r){var i=[];return t.include.forEach(function(n){r=PP(n,e,r)}),t[e].forEach(function(n){r.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),r.push(n)}),r.filter(function(n,s){return i.indexOf(s)===-1})}function Dke(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function i(n){t[n.kind][n.tag]=t.fallback[n.tag]=n}for(e=0,r=arguments.length;e{"use strict";var Rke=Xr();G4.exports=new Rke("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var q4=E(($ot,Y4)=>{"use strict";var Fke=Xr();Y4.exports=new Fke("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var W4=E((eat,J4)=>{"use strict";var Nke=Xr();J4.exports=new Nke("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var pw=E((tat,z4)=>{"use strict";var Lke=ec();z4.exports=new Lke({explicit:[j4(),q4(),W4()]})});var _4=E((rat,V4)=>{"use strict";var Tke=Xr();function Mke(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function Oke(){return null}function Kke(t){return t===null}V4.exports=new Tke("tag:yaml.org,2002:null",{kind:"scalar",resolve:Mke,construct:Oke,predicate:Kke,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var Z4=E((iat,X4)=>{"use strict";var Uke=Xr();function Hke(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function Gke(t){return t==="true"||t==="True"||t==="TRUE"}function jke(t){return Object.prototype.toString.call(t)==="[object Boolean]"}X4.exports=new Uke("tag:yaml.org,2002:bool",{kind:"scalar",resolve:Hke,construct:Gke,predicate:jke,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var ez=E((nat,$4)=>{"use strict";var Yke=$l(),qke=Xr();function Jke(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function Wke(t){return 48<=t&&t<=55}function zke(t){return 48<=t&&t<=57}function Vke(t){if(t===null)return!1;var e=t.length,r=0,i=!1,n;if(!e)return!1;if(n=t[r],(n==="-"||n==="+")&&(n=t[++r]),n==="0"){if(r+1===e)return!0;if(n=t[++r],n==="b"){for(r++;r=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var iz=E((sat,tz)=>{"use strict";var rz=$l(),Zke=Xr(),$ke=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function ePe(t){return!(t===null||!$ke.test(t)||t[t.length-1]==="_")}function tPe(t){var e,r,i,n;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),r*e):r*parseFloat(e,10)}var rPe=/^[-+]?[0-9]+e/;function iPe(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(rz.isNegativeZero(t))return"-0.0";return r=t.toString(10),rPe.test(r)?r.replace("e",".e"):r}function nPe(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!=0||rz.isNegativeZero(t))}tz.exports=new Zke("tag:yaml.org,2002:float",{kind:"scalar",resolve:ePe,construct:tPe,predicate:nPe,represent:iPe,defaultStyle:"lowercase"})});var DP=E((oat,nz)=>{"use strict";var sPe=ec();nz.exports=new sPe({include:[pw()],implicit:[_4(),Z4(),ez(),iz()]})});var RP=E((aat,sz)=>{"use strict";var oPe=ec();sz.exports=new oPe({include:[DP()]})});var lz=E((Aat,oz)=>{"use strict";var aPe=Xr(),az=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),Az=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function APe(t){return t===null?!1:az.exec(t)!==null||Az.exec(t)!==null}function lPe(t){var e,r,i,n,s,o,a,l=0,c=null,u,g,f;if(e=az.exec(t),e===null&&(e=Az.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(r,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(r,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function cPe(t){return t.toISOString()}oz.exports=new aPe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:APe,construct:lPe,instanceOf:Date,represent:cPe})});var uz=E((lat,cz)=>{"use strict";var uPe=Xr();function gPe(t){return t==="<<"||t===null}cz.exports=new uPe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:gPe})});var hz=E((cat,gz)=>{"use strict";var tc;try{fz=require,tc=fz("buffer").Buffer}catch(t){}var fz,fPe=Xr(),FP=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= -\r`;function hPe(t){if(t===null)return!1;var e,r,i=0,n=t.length,s=FP;for(r=0;r64)){if(e<0)return!1;i+=6}return i%8==0}function pPe(t){var e,r,i=t.replace(/[\r\n=]/g,""),n=i.length,s=FP,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return r=n%4*6,r===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):r===18?(a.push(o>>10&255),a.push(o>>2&255)):r===12&&a.push(o>>4&255),tc?tc.from?tc.from(a):new tc(a):a}function dPe(t){var e="",r=0,i,n,s=t.length,o=FP;for(i=0;i>18&63],e+=o[r>>12&63],e+=o[r>>6&63],e+=o[r&63]),r=(r<<8)+t[i];return n=s%3,n===0?(e+=o[r>>18&63],e+=o[r>>12&63],e+=o[r>>6&63],e+=o[r&63]):n===2?(e+=o[r>>10&63],e+=o[r>>4&63],e+=o[r<<2&63],e+=o[64]):n===1&&(e+=o[r>>2&63],e+=o[r<<4&63],e+=o[64],e+=o[64]),e}function CPe(t){return tc&&tc.isBuffer(t)}gz.exports=new fPe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:hPe,construct:pPe,predicate:CPe,represent:dPe})});var dz=E((uat,pz)=>{"use strict";var mPe=Xr(),EPe=Object.prototype.hasOwnProperty,IPe=Object.prototype.toString;function yPe(t){if(t===null)return!0;var e=[],r,i,n,s,o,a=t;for(r=0,i=a.length;r{"use strict";var BPe=Xr(),QPe=Object.prototype.toString;function bPe(t){if(t===null)return!0;var e,r,i,n,s,o=t;for(s=new Array(o.length),e=0,r=o.length;e{"use strict";var SPe=Xr(),xPe=Object.prototype.hasOwnProperty;function kPe(t){if(t===null)return!0;var e,r=t;for(e in r)if(xPe.call(r,e)&&r[e]!==null)return!1;return!0}function PPe(t){return t!==null?t:{}}Ez.exports=new SPe("tag:yaml.org,2002:set",{kind:"mapping",resolve:kPe,construct:PPe})});var og=E((hat,yz)=>{"use strict";var DPe=ec();yz.exports=new DPe({include:[RP()],implicit:[lz(),uz()],explicit:[hz(),dz(),mz(),Iz()]})});var Bz=E((pat,wz)=>{"use strict";var RPe=Xr();function FPe(){return!0}function NPe(){}function LPe(){return""}function TPe(t){return typeof t=="undefined"}wz.exports=new RPe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:FPe,construct:NPe,predicate:TPe,represent:LPe})});var bz=E((dat,Qz)=>{"use strict";var MPe=Xr();function OPe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),i="";return!(e[0]==="/"&&(r&&(i=r[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function KPe(t){var e=t,r=/\/([gim]*)$/.exec(t),i="";return e[0]==="/"&&(r&&(i=r[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function UPe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function HPe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}Qz.exports=new MPe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:OPe,construct:KPe,predicate:HPe,represent:UPe})});var xz=E((Cat,vz)=>{"use strict";var dw;try{Sz=require,dw=Sz("esprima")}catch(t){typeof window!="undefined"&&(dw=window.esprima)}var Sz,GPe=Xr();function jPe(t){if(t===null)return!1;try{var e="("+t+")",r=dw.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch(i){return!1}}function YPe(t){var e="("+t+")",r=dw.parse(e,{range:!0}),i=[],n;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function qPe(t){return t.toString()}function JPe(t){return Object.prototype.toString.call(t)==="[object Function]"}vz.exports=new GPe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:jPe,construct:YPe,predicate:JPe,represent:qPe})});var Tp=E((mat,kz)=>{"use strict";var Pz=ec();kz.exports=Pz.DEFAULT=new Pz({include:[og()],explicit:[Bz(),bz(),xz()]})});var Vz=E((Eat,Mp)=>{"use strict";var Ba=$l(),Dz=ng(),WPe=M4(),Rz=og(),zPe=Tp(),QA=Object.prototype.hasOwnProperty,Cw=1,Fz=2,Nz=3,mw=4,NP=1,VPe=2,Lz=3,_Pe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,XPe=/[\x85\u2028\u2029]/,ZPe=/[,\[\]\{\}]/,Tz=/^(?:!|!!|![a-z\-]+!)$/i,Mz=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function Oz(t){return Object.prototype.toString.call(t)}function wo(t){return t===10||t===13}function rc(t){return t===9||t===32}function yn(t){return t===9||t===32||t===10||t===13}function ag(t){return t===44||t===91||t===93||t===123||t===125}function $Pe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function eDe(t){return t===120?2:t===117?4:t===85?8:0}function tDe(t){return 48<=t&&t<=57?t-48:-1}function Kz(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` -`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function rDe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var Uz=new Array(256),Hz=new Array(256);for(var Ag=0;Ag<256;Ag++)Uz[Ag]=Kz(Ag)?1:0,Hz[Ag]=Kz(Ag);function iDe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||zPe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function Gz(t,e){return new Dz(e,new WPe(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function st(t,e){throw Gz(t,e)}function Ew(t,e){t.onWarning&&t.onWarning.call(null,Gz(t,e))}var jz={YAML:function(e,r,i){var n,s,o;e.version!==null&&st(e,"duplication of %YAML directive"),i.length!==1&&st(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&st(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&st(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&Ew(e,"unsupported YAML version of the document")},TAG:function(e,r,i){var n,s;i.length!==2&&st(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],Tz.test(n)||st(e,"ill-formed tag handle (first argument) of the TAG directive"),QA.call(e.tagMap,n)&&st(e,'there is a previously declared suffix for "'+n+'" tag handle'),Mz.test(s)||st(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function bA(t,e,r,i){var n,s,o,a;if(e1&&(t.result+=Ba.repeat(` -`,e-1))}function nDe(t,e,r){var i,n,s,o,a,l,c,u,g=t.kind,f=t.result,h;if(h=t.input.charCodeAt(t.position),yn(h)||ag(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=t.input.charCodeAt(t.position+1),yn(n)||r&&ag(n)))return!1;for(t.kind="scalar",t.result="",s=o=t.position,a=!1;h!==0;){if(h===58){if(n=t.input.charCodeAt(t.position+1),yn(n)||r&&ag(n))break}else if(h===35){if(i=t.input.charCodeAt(t.position-1),yn(i))break}else{if(t.position===t.lineStart&&Iw(t)||r&&ag(h))break;if(wo(h))if(l=t.line,c=t.lineStart,u=t.lineIndent,jr(t,!1,-1),t.lineIndent>=e){a=!0,h=t.input.charCodeAt(t.position);continue}else{t.position=o,t.line=l,t.lineStart=c,t.lineIndent=u;break}}a&&(bA(t,s,o,!1),TP(t,t.line-l),s=o=t.position,a=!1),rc(h)||(o=t.position+1),h=t.input.charCodeAt(++t.position)}return bA(t,s,o,!1),t.result?!0:(t.kind=g,t.result=f,!1)}function sDe(t,e){var r,i,n;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,i=n=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(bA(t,i,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)i=t.position,t.position++,n=t.position;else return!0;else wo(r)?(bA(t,i,n,!0),TP(t,jr(t,!1,e)),i=n=t.position):t.position===t.lineStart&&Iw(t)?st(t,"unexpected end of the document within a single quoted scalar"):(t.position++,n=t.position);st(t,"unexpected end of the stream within a single quoted scalar")}function oDe(t,e){var r,i,n,s,o,a;if(a=t.input.charCodeAt(t.position),a!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=i=t.position;(a=t.input.charCodeAt(t.position))!==0;){if(a===34)return bA(t,r,t.position,!0),t.position++,!0;if(a===92){if(bA(t,r,t.position,!0),a=t.input.charCodeAt(++t.position),wo(a))jr(t,!1,e);else if(a<256&&Uz[a])t.result+=Hz[a],t.position++;else if((o=eDe(a))>0){for(n=o,s=0;n>0;n--)a=t.input.charCodeAt(++t.position),(o=$Pe(a))>=0?s=(s<<4)+o:st(t,"expected hexadecimal character");t.result+=rDe(s),t.position++}else st(t,"unknown escape sequence");r=i=t.position}else wo(a)?(bA(t,r,i,!0),TP(t,jr(t,!1,e)),r=i=t.position):t.position===t.lineStart&&Iw(t)?st(t,"unexpected end of the document within a double quoted scalar"):(t.position++,i=t.position)}st(t,"unexpected end of the stream within a double quoted scalar")}function aDe(t,e){var r=!0,i,n=t.tag,s,o=t.anchor,a,l,c,u,g,f={},h,p,d,m;if(m=t.input.charCodeAt(t.position),m===91)l=93,g=!1,s=[];else if(m===123)l=125,g=!0,s={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=s),m=t.input.charCodeAt(++t.position);m!==0;){if(jr(t,!0,e),m=t.input.charCodeAt(t.position),m===l)return t.position++,t.tag=n,t.anchor=o,t.kind=g?"mapping":"sequence",t.result=s,!0;r||st(t,"missed comma between flow collection entries"),p=h=d=null,c=u=!1,m===63&&(a=t.input.charCodeAt(t.position+1),yn(a)&&(c=u=!0,t.position++,jr(t,!0,e))),i=t.line,cg(t,e,Cw,!1,!0),p=t.tag,h=t.result,jr(t,!0,e),m=t.input.charCodeAt(t.position),(u||t.line===i)&&m===58&&(c=!0,m=t.input.charCodeAt(++t.position),jr(t,!0,e),cg(t,e,Cw,!1,!0),d=t.result),g?lg(t,s,f,p,h,d):c?s.push(lg(t,null,f,p,h,d)):s.push(h),jr(t,!0,e),m=t.input.charCodeAt(t.position),m===44?(r=!0,m=t.input.charCodeAt(++t.position)):r=!1}st(t,"unexpected end of the stream within a flow collection")}function ADe(t,e){var r,i,n=NP,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=t.input.charCodeAt(t.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(t.kind="scalar",t.result="";g!==0;)if(g=t.input.charCodeAt(++t.position),g===43||g===45)NP===n?n=g===43?Lz:VPe:st(t,"repeat of a chomping mode identifier");else if((u=tDe(g))>=0)u===0?st(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?st(t,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(rc(g)){do g=t.input.charCodeAt(++t.position);while(rc(g));if(g===35)do g=t.input.charCodeAt(++t.position);while(!wo(g)&&g!==0)}for(;g!==0;){for(LP(t),t.lineIndent=0,g=t.input.charCodeAt(t.position);(!o||t.lineIndenta&&(a=t.lineIndent),wo(g)){l++;continue}if(t.lineIndente)&&l!==0)st(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(cg(t,e,mw,!0,n)&&(p?f=t.result:h=t.result),p||(lg(t,c,u,g,f,h,s,o),g=f=h=null),jr(t,!0,-1),m=t.input.charCodeAt(t.position)),t.lineIndent>e&&m!==0)st(t,"bad indentation of a mapping entry");else if(t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndente?l=1:t.lineIndent===e?l=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),g=0,f=t.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+t.kind+'"'),h.resolve(t.result)?(t.result=h.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):st(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):st(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||u}function fDe(t){var e=t.position,r,i,n,s=!1,o;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(o=t.input.charCodeAt(t.position))!==0&&(jr(t,!0,-1),o=t.input.charCodeAt(t.position),!(t.lineIndent>0||o!==37));){for(s=!0,o=t.input.charCodeAt(++t.position),r=t.position;o!==0&&!yn(o);)o=t.input.charCodeAt(++t.position);for(i=t.input.slice(r,t.position),n=[],i.length<1&&st(t,"directive name must not be less than one character in length");o!==0;){for(;rc(o);)o=t.input.charCodeAt(++t.position);if(o===35){do o=t.input.charCodeAt(++t.position);while(o!==0&&!wo(o));break}if(wo(o))break;for(r=t.position;o!==0&&!yn(o);)o=t.input.charCodeAt(++t.position);n.push(t.input.slice(r,t.position))}o!==0&&LP(t),QA.call(jz,i)?jz[i](t,i,n):Ew(t,'unknown document directive "'+i+'"')}if(jr(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,jr(t,!0,-1)):s&&st(t,"directives end mark is expected"),cg(t,t.lineIndent-1,mw,!1,!0),jr(t,!0,-1),t.checkLineBreaks&&XPe.test(t.input.slice(e,t.position))&&Ew(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&Iw(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,jr(t,!0,-1));return}if(t.position{"use strict";var Op=$l(),Kp=ng(),dDe=Tp(),CDe=og(),_z=Object.prototype.toString,Xz=Object.prototype.hasOwnProperty,mDe=9,Up=10,EDe=13,IDe=32,yDe=33,wDe=34,Zz=35,BDe=37,QDe=38,bDe=39,vDe=42,$z=44,SDe=45,e5=58,xDe=61,kDe=62,PDe=63,DDe=64,t5=91,r5=93,RDe=96,i5=123,FDe=124,n5=125,Ri={};Ri[0]="\\0";Ri[7]="\\a";Ri[8]="\\b";Ri[9]="\\t";Ri[10]="\\n";Ri[11]="\\v";Ri[12]="\\f";Ri[13]="\\r";Ri[27]="\\e";Ri[34]='\\"';Ri[92]="\\\\";Ri[133]="\\N";Ri[160]="\\_";Ri[8232]="\\L";Ri[8233]="\\P";var NDe=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function LDe(t,e){var r,i,n,s,o,a,l;if(e===null)return{};for(r={},i=Object.keys(e),n=0,s=i.length;n0?t.charCodeAt(s-1):null,f=f&&a5(o,a)}else{for(s=0;si&&t[g+1]!==" ",g=s);else if(!ug(o))return yw;a=s>0?t.charCodeAt(s-1):null,f=f&&a5(o,a)}c=c||u&&s-g-1>i&&t[g+1]!==" "}return!l&&!c?f&&!n(t)?l5:c5:r>9&&A5(t)?yw:c?g5:u5}function jDe(t,e,r,i){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&NDe.indexOf(e)!==-1)return"'"+e+"'";var n=t.indent*Math.max(1,r),s=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-n),o=i||t.flowLevel>-1&&r>=t.flowLevel;function a(l){return MDe(t,l)}switch(UDe(e,o,t.indent,s,a)){case l5:return e;case c5:return"'"+e.replace(/'/g,"''")+"'";case u5:return"|"+f5(e,t.indent)+h5(o5(e,n));case g5:return">"+f5(e,t.indent)+h5(o5(HDe(e,s),n));case yw:return'"'+GDe(e,s)+'"';default:throw new Kp("impossible error: invalid scalar style")}}()}function f5(t,e){var r=A5(t)?String(e):"",i=t[t.length-1]===` -`,n=i&&(t[t.length-2]===` -`||t===` -`),s=n?"+":i?"":"-";return r+s+` -`}function h5(t){return t[t.length-1]===` -`?t.slice(0,-1):t}function HDe(t,e){for(var r=/(\n+)([^\n]*)/g,i=function(){var c=t.indexOf(` -`);return c=c!==-1?c:t.length,r.lastIndex=c,p5(t.slice(0,c),e)}(),n=t[0]===` -`||t[0]===" ",s,o;o=r.exec(t);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` -`:"")+p5(l,e),n=s}return i}function p5(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=r.exec(t);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` -`+t.slice(n,s),n=s+1),o=a;return l+=` -`,t.length-n>e&&o>n?l+=t.slice(n,o)+` -`+t.slice(o+1):l+=t.slice(n),l.slice(1)}function GDe(t){for(var e="",r,i,n,s=0;s=55296&&r<=56319&&(i=t.charCodeAt(s+1),i>=56320&&i<=57343)){e+=s5((r-55296)*1024+i-56320+65536),s++;continue}n=Ri[r],e+=!n&&ug(r)?t[s]:n||s5(r)}return e}function YDe(t,e,r){var i="",n=t.tag,s,o;for(s=0,o=r.length;s1024&&(u+="? "),u+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),!!ic(t,e,c,!1,!1)&&(u+=t.dump,i+=u));t.tag=n,t.dump="{"+i+"}"}function WDe(t,e,r,i){var n="",s=t.tag,o=Object.keys(r),a,l,c,u,g,f;if(t.sortKeys===!0)o.sort();else if(typeof t.sortKeys=="function")o.sort(t.sortKeys);else if(t.sortKeys)throw new Kp("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(t.dump&&Up===t.dump.charCodeAt(0)?f+="?":f+="? "),f+=t.dump,g&&(f+=OP(t,e)),!!ic(t,e+1,u,!0,g)&&(t.dump&&Up===t.dump.charCodeAt(0)?f+=":":f+=": ",f+=t.dump,n+=f));t.tag=s,t.dump=n||"{}"}function d5(t,e,r){var i,n,s,o,a,l;for(n=r?t.explicitTypes:t.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');t.dump=i}return!0}return!1}function ic(t,e,r,i,n,s){t.tag=null,t.dump=r,d5(t,r,!1)||d5(t,r,!0);var o=_z.call(t.dump);i&&(i=t.flowLevel<0||t.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=t.duplicates.indexOf(r),c=l!==-1),(t.tag!==null&&t.tag!=="?"||c||t.indent!==2&&e>0)&&(n=!1),c&&t.usedDuplicates[l])t.dump="*ref_"+l;else{if(a&&c&&!t.usedDuplicates[l]&&(t.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(t.dump).length!==0?(WDe(t,e,t.dump,n),c&&(t.dump="&ref_"+l+t.dump)):(JDe(t,e,t.dump),c&&(t.dump="&ref_"+l+" "+t.dump));else if(o==="[object Array]"){var u=t.noArrayIndent&&e>0?e-1:e;i&&t.dump.length!==0?(qDe(t,u,t.dump,n),c&&(t.dump="&ref_"+l+t.dump)):(YDe(t,u,t.dump),c&&(t.dump="&ref_"+l+" "+t.dump))}else if(o==="[object String]")t.tag!=="?"&&jDe(t,t.dump,e,s);else{if(t.skipInvalid)return!1;throw new Kp("unacceptable kind of an object to dump "+o)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function zDe(t,e){var r=[],i=[],n,s;for(UP(t,r,i),n=0,s=i.length;n{"use strict";var ww=Vz(),E5=m5();function Bw(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}Qr.exports.Type=Xr();Qr.exports.Schema=ec();Qr.exports.FAILSAFE_SCHEMA=pw();Qr.exports.JSON_SCHEMA=DP();Qr.exports.CORE_SCHEMA=RP();Qr.exports.DEFAULT_SAFE_SCHEMA=og();Qr.exports.DEFAULT_FULL_SCHEMA=Tp();Qr.exports.load=ww.load;Qr.exports.loadAll=ww.loadAll;Qr.exports.safeLoad=ww.safeLoad;Qr.exports.safeLoadAll=ww.safeLoadAll;Qr.exports.dump=E5.dump;Qr.exports.safeDump=E5.safeDump;Qr.exports.YAMLException=ng();Qr.exports.MINIMAL_SCHEMA=pw();Qr.exports.SAFE_SCHEMA=og();Qr.exports.DEFAULT_SCHEMA=Tp();Qr.exports.scan=Bw("scan");Qr.exports.parse=Bw("parse");Qr.exports.compose=Bw("compose");Qr.exports.addConstructor=Bw("addConstructor")});var w5=E((wat,y5)=>{"use strict";var _De=I5();y5.exports=_De});var Q5=E((Bat,B5)=>{"use strict";function XDe(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function nc(t,e,r,i){this.message=t,this.expected=e,this.found=r,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,nc)}XDe(nc,Error);nc.buildMessage=function(t,e){var r={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[xe]:le})))},H=function(x){return x},L=function(x){return x},K=Yo("correct indentation"),J=" ",ne=fr(" ",!1),q=function(x){return x.length===Zc*aE},A=function(x){return x.length===(Zc+1)*aE},V=function(){return Zc++,!0},W=function(){return Zc--,!0},X=function(){return Xm()},F=Yo("pseudostring"),D=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,he=Bs(["\r",` -`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),pe=/^[^\r\n\t ,\][{}:#"']/,Ne=Bs(["\r",` -`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Pe=function(){return Xm().replace(/^ *| *$/g,"")},qe="--",re=fr("--",!1),se=/^[a-zA-Z\/0-9]/,be=Bs([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),ae=/^[^\r\n\t :,]/,Ae=Bs(["\r",` -`," "," ",":",","],!0,!1),De="null",$=fr("null",!1),G=function(){return null},Ce="true",ee=fr("true",!1),Ue=function(){return!0},Oe="false",vt=fr("false",!1),dt=function(){return!1},ri=Yo("string"),ii='"',an=fr('"',!1),yr=function(){return""},Ki=function(x){return x},Qi=function(x){return x.join("")},Go=/^[^"\\\0-\x1F\x7F]/,wr=Bs(['"',"\\",["\0",""],"\x7F"],!0,!1),Ui='\\"',ws=fr('\\"',!1),Tf=function(){return'"'},Mf="\\\\",Rm=fr("\\\\",!1),Fm=function(){return"\\"},Nm="\\/",DQ=fr("\\/",!1),RQ=function(){return"/"},Of="\\b",FQ=fr("\\b",!1),NQ=function(){return"\b"},Lm="\\f",LQ=fr("\\f",!1),Va=function(){return"\f"},jo="\\n",Tm=fr("\\n",!1),Mm=function(){return` -`},te="\\r",Om=fr("\\r",!1),Km=function(){return"\r"},il="\\t",Um=fr("\\t",!1),Hm=function(){return" "},Kf="\\u",Gm=fr("\\u",!1),jm=function(x,U,le,xe){return String.fromCharCode(parseInt(`0x${x}${U}${le}${xe}`))},TQ=/^[0-9a-fA-F]/,MQ=Bs([["0","9"],["a","f"],["A","F"]],!1,!1),Ym=Yo("blank space"),qm=/^[ \t]/,Jm=Bs([" "," "],!1,!1),Wm=Yo("white space"),zm=/^[ \t\n\r]/,Vm=Bs([" "," ",` -`,"\r"],!1,!1),Uf=`\r -`,OQ=fr(`\r -`,!1),KQ=` -`,_m=fr(` -`,!1),UQ="\r",HQ=fr("\r",!1),O=0,ht=0,Vc=[{line:1,column:1}],xn=0,Hf=[],Ye=0,nl;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function Xm(){return t.substring(ht,O)}function MM(){return _a(ht,O)}function GQ(x,U){throw U=U!==void 0?U:_a(ht,O),eE([Yo(x)],t.substring(ht,O),U)}function OM(x,U){throw U=U!==void 0?U:_a(ht,O),YQ(x,U)}function fr(x,U){return{type:"literal",text:x,ignoreCase:U}}function Bs(x,U,le){return{type:"class",parts:x,inverted:U,ignoreCase:le}}function jQ(){return{type:"any"}}function Zm(){return{type:"end"}}function Yo(x){return{type:"other",description:x}}function $m(x){var U=Vc[x],le;if(U)return U;for(le=x-1;!Vc[le];)le--;for(U=Vc[le],U={line:U.line,column:U.column};lexn&&(xn=O,Hf=[]),Hf.push(x))}function YQ(x,U){return new nc(x,null,null,U)}function eE(x,U,le){return new nc(nc.buildMessage(x,U),x,U,le)}function tE(){var x;return x=ol(),x}function Xa(){var x,U,le;for(x=O,U=[],le=sl();le!==r;)U.push(le),le=sl();return U!==r&&(ht=x,U=s(U)),x=U,x}function sl(){var x,U,le,xe,Qe;return x=O,U=Al(),U!==r?(t.charCodeAt(O)===45?(le=o,O++):(le=r,Ye===0&&et(a)),le!==r?(xe=xr(),xe!==r?(Qe=qo(),Qe!==r?(ht=x,U=l(Qe),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r),x}function ol(){var x,U,le;for(x=O,U=[],le=al();le!==r;)U.push(le),le=al();return U!==r&&(ht=x,U=c(U)),x=U,x}function al(){var x,U,le,xe,Qe,Ge,ct,sr,Wo;if(x=O,U=xr(),U===r&&(U=null),U!==r){if(le=O,t.charCodeAt(O)===35?(xe=u,O++):(xe=r,Ye===0&&et(g)),xe!==r){if(Qe=[],Ge=O,ct=O,Ye++,sr=Zs(),Ye--,sr===r?ct=void 0:(O=ct,ct=r),ct!==r?(t.length>O?(sr=t.charAt(O),O++):(sr=r,Ye===0&&et(f)),sr!==r?(ct=[ct,sr],Ge=ct):(O=Ge,Ge=r)):(O=Ge,Ge=r),Ge!==r)for(;Ge!==r;)Qe.push(Ge),Ge=O,ct=O,Ye++,sr=Zs(),Ye--,sr===r?ct=void 0:(O=ct,ct=r),ct!==r?(t.length>O?(sr=t.charAt(O),O++):(sr=r,Ye===0&&et(f)),sr!==r?(ct=[ct,sr],Ge=ct):(O=Ge,Ge=r)):(O=Ge,Ge=r);else Qe=r;Qe!==r?(xe=[xe,Qe],le=xe):(O=le,le=r)}else O=le,le=r;if(le===r&&(le=null),le!==r){if(xe=[],Qe=Jo(),Qe!==r)for(;Qe!==r;)xe.push(Qe),Qe=Jo();else xe=r;xe!==r?(ht=x,U=h(),x=U):(O=x,x=r)}else O=x,x=r}else O=x,x=r;if(x===r&&(x=O,U=Al(),U!==r?(le=JQ(),le!==r?(xe=xr(),xe===r&&(xe=null),xe!==r?(t.charCodeAt(O)===58?(Qe=p,O++):(Qe=r,Ye===0&&et(d)),Qe!==r?(Ge=xr(),Ge===r&&(Ge=null),Ge!==r?(ct=qo(),ct!==r?(ht=x,U=m(le,ct),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r),x===r&&(x=O,U=Al(),U!==r?(le=ll(),le!==r?(xe=xr(),xe===r&&(xe=null),xe!==r?(t.charCodeAt(O)===58?(Qe=p,O++):(Qe=r,Ye===0&&et(d)),Qe!==r?(Ge=xr(),Ge===r&&(Ge=null),Ge!==r?(ct=qo(),ct!==r?(ht=x,U=m(le,ct),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r),x===r))){if(x=O,U=Al(),U!==r)if(le=ll(),le!==r)if(xe=xr(),xe!==r)if(Qe=nE(),Qe!==r){if(Ge=[],ct=Jo(),ct!==r)for(;ct!==r;)Ge.push(ct),ct=Jo();else Ge=r;Ge!==r?(ht=x,U=m(le,Qe),x=U):(O=x,x=r)}else O=x,x=r;else O=x,x=r;else O=x,x=r;else O=x,x=r;if(x===r)if(x=O,U=Al(),U!==r)if(le=ll(),le!==r){if(xe=[],Qe=O,Ge=xr(),Ge===r&&(Ge=null),Ge!==r?(t.charCodeAt(O)===44?(ct=I,O++):(ct=r,Ye===0&&et(B)),ct!==r?(sr=xr(),sr===r&&(sr=null),sr!==r?(Wo=ll(),Wo!==r?(ht=Qe,Ge=b(le,Wo),Qe=Ge):(O=Qe,Qe=r)):(O=Qe,Qe=r)):(O=Qe,Qe=r)):(O=Qe,Qe=r),Qe!==r)for(;Qe!==r;)xe.push(Qe),Qe=O,Ge=xr(),Ge===r&&(Ge=null),Ge!==r?(t.charCodeAt(O)===44?(ct=I,O++):(ct=r,Ye===0&&et(B)),ct!==r?(sr=xr(),sr===r&&(sr=null),sr!==r?(Wo=ll(),Wo!==r?(ht=Qe,Ge=b(le,Wo),Qe=Ge):(O=Qe,Qe=r)):(O=Qe,Qe=r)):(O=Qe,Qe=r)):(O=Qe,Qe=r);else xe=r;xe!==r?(Qe=xr(),Qe===r&&(Qe=null),Qe!==r?(t.charCodeAt(O)===58?(Ge=p,O++):(Ge=r,Ye===0&&et(d)),Ge!==r?(ct=xr(),ct===r&&(ct=null),ct!==r?(sr=qo(),sr!==r?(ht=x,U=R(le,xe,sr),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)}else O=x,x=r;else O=x,x=r}return x}function qo(){var x,U,le,xe,Qe,Ge,ct;if(x=O,U=O,Ye++,le=O,xe=Zs(),xe!==r?(Qe=qQ(),Qe!==r?(t.charCodeAt(O)===45?(Ge=o,O++):(Ge=r,Ye===0&&et(a)),Ge!==r?(ct=xr(),ct!==r?(xe=[xe,Qe,Ge,ct],le=xe):(O=le,le=r)):(O=le,le=r)):(O=le,le=r)):(O=le,le=r),Ye--,le!==r?(O=U,U=void 0):U=r,U!==r?(le=Jo(),le!==r?(xe=rE(),xe!==r?(Qe=Xa(),Qe!==r?(Ge=iE(),Ge!==r?(ht=x,U=H(Qe),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r),x===r&&(x=O,U=Zs(),U!==r?(le=rE(),le!==r?(xe=ol(),xe!==r?(Qe=iE(),Qe!==r?(ht=x,U=H(xe),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r),x===r))if(x=O,U=WQ(),U!==r){if(le=[],xe=Jo(),xe!==r)for(;xe!==r;)le.push(xe),xe=Jo();else le=r;le!==r?(ht=x,U=L(U),x=U):(O=x,x=r)}else O=x,x=r;return x}function Al(){var x,U,le;for(Ye++,x=O,U=[],t.charCodeAt(O)===32?(le=J,O++):(le=r,Ye===0&&et(ne));le!==r;)U.push(le),t.charCodeAt(O)===32?(le=J,O++):(le=r,Ye===0&&et(ne));return U!==r?(ht=O,le=q(U),le?le=void 0:le=r,le!==r?(U=[U,le],x=U):(O=x,x=r)):(O=x,x=r),Ye--,x===r&&(U=r,Ye===0&&et(K)),x}function qQ(){var x,U,le;for(x=O,U=[],t.charCodeAt(O)===32?(le=J,O++):(le=r,Ye===0&&et(ne));le!==r;)U.push(le),t.charCodeAt(O)===32?(le=J,O++):(le=r,Ye===0&&et(ne));return U!==r?(ht=O,le=A(U),le?le=void 0:le=r,le!==r?(U=[U,le],x=U):(O=x,x=r)):(O=x,x=r),x}function rE(){var x;return ht=O,x=V(),x?x=void 0:x=r,x}function iE(){var x;return ht=O,x=W(),x?x=void 0:x=r,x}function JQ(){var x;return x=cl(),x===r&&(x=Gf()),x}function ll(){var x,U,le;if(x=cl(),x===r){if(x=O,U=[],le=_c(),le!==r)for(;le!==r;)U.push(le),le=_c();else U=r;U!==r&&(ht=x,U=X()),x=U}return x}function WQ(){var x;return x=jf(),x===r&&(x=sE(),x===r&&(x=cl(),x===r&&(x=Gf()))),x}function nE(){var x;return x=jf(),x===r&&(x=cl(),x===r&&(x=_c())),x}function Gf(){var x,U,le,xe,Qe,Ge;if(Ye++,x=O,D.test(t.charAt(O))?(U=t.charAt(O),O++):(U=r,Ye===0&&et(he)),U!==r){for(le=[],xe=O,Qe=xr(),Qe===r&&(Qe=null),Qe!==r?(pe.test(t.charAt(O))?(Ge=t.charAt(O),O++):(Ge=r,Ye===0&&et(Ne)),Ge!==r?(Qe=[Qe,Ge],xe=Qe):(O=xe,xe=r)):(O=xe,xe=r);xe!==r;)le.push(xe),xe=O,Qe=xr(),Qe===r&&(Qe=null),Qe!==r?(pe.test(t.charAt(O))?(Ge=t.charAt(O),O++):(Ge=r,Ye===0&&et(Ne)),Ge!==r?(Qe=[Qe,Ge],xe=Qe):(O=xe,xe=r)):(O=xe,xe=r);le!==r?(ht=x,U=Pe(),x=U):(O=x,x=r)}else O=x,x=r;return Ye--,x===r&&(U=r,Ye===0&&et(F)),x}function _c(){var x,U,le,xe,Qe;if(x=O,t.substr(O,2)===qe?(U=qe,O+=2):(U=r,Ye===0&&et(re)),U===r&&(U=null),U!==r)if(se.test(t.charAt(O))?(le=t.charAt(O),O++):(le=r,Ye===0&&et(be)),le!==r){for(xe=[],ae.test(t.charAt(O))?(Qe=t.charAt(O),O++):(Qe=r,Ye===0&&et(Ae));Qe!==r;)xe.push(Qe),ae.test(t.charAt(O))?(Qe=t.charAt(O),O++):(Qe=r,Ye===0&&et(Ae));xe!==r?(ht=x,U=Pe(),x=U):(O=x,x=r)}else O=x,x=r;else O=x,x=r;return x}function jf(){var x,U;return x=O,t.substr(O,4)===De?(U=De,O+=4):(U=r,Ye===0&&et($)),U!==r&&(ht=x,U=G()),x=U,x}function sE(){var x,U;return x=O,t.substr(O,4)===Ce?(U=Ce,O+=4):(U=r,Ye===0&&et(ee)),U!==r&&(ht=x,U=Ue()),x=U,x===r&&(x=O,t.substr(O,5)===Oe?(U=Oe,O+=5):(U=r,Ye===0&&et(vt)),U!==r&&(ht=x,U=dt()),x=U),x}function cl(){var x,U,le,xe;return Ye++,x=O,t.charCodeAt(O)===34?(U=ii,O++):(U=r,Ye===0&&et(an)),U!==r?(t.charCodeAt(O)===34?(le=ii,O++):(le=r,Ye===0&&et(an)),le!==r?(ht=x,U=yr(),x=U):(O=x,x=r)):(O=x,x=r),x===r&&(x=O,t.charCodeAt(O)===34?(U=ii,O++):(U=r,Ye===0&&et(an)),U!==r?(le=oE(),le!==r?(t.charCodeAt(O)===34?(xe=ii,O++):(xe=r,Ye===0&&et(an)),xe!==r?(ht=x,U=Ki(le),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)),Ye--,x===r&&(U=r,Ye===0&&et(ri)),x}function oE(){var x,U,le;if(x=O,U=[],le=Yf(),le!==r)for(;le!==r;)U.push(le),le=Yf();else U=r;return U!==r&&(ht=x,U=Qi(U)),x=U,x}function Yf(){var x,U,le,xe,Qe,Ge;return Go.test(t.charAt(O))?(x=t.charAt(O),O++):(x=r,Ye===0&&et(wr)),x===r&&(x=O,t.substr(O,2)===Ui?(U=Ui,O+=2):(U=r,Ye===0&&et(ws)),U!==r&&(ht=x,U=Tf()),x=U,x===r&&(x=O,t.substr(O,2)===Mf?(U=Mf,O+=2):(U=r,Ye===0&&et(Rm)),U!==r&&(ht=x,U=Fm()),x=U,x===r&&(x=O,t.substr(O,2)===Nm?(U=Nm,O+=2):(U=r,Ye===0&&et(DQ)),U!==r&&(ht=x,U=RQ()),x=U,x===r&&(x=O,t.substr(O,2)===Of?(U=Of,O+=2):(U=r,Ye===0&&et(FQ)),U!==r&&(ht=x,U=NQ()),x=U,x===r&&(x=O,t.substr(O,2)===Lm?(U=Lm,O+=2):(U=r,Ye===0&&et(LQ)),U!==r&&(ht=x,U=Va()),x=U,x===r&&(x=O,t.substr(O,2)===jo?(U=jo,O+=2):(U=r,Ye===0&&et(Tm)),U!==r&&(ht=x,U=Mm()),x=U,x===r&&(x=O,t.substr(O,2)===te?(U=te,O+=2):(U=r,Ye===0&&et(Om)),U!==r&&(ht=x,U=Km()),x=U,x===r&&(x=O,t.substr(O,2)===il?(U=il,O+=2):(U=r,Ye===0&&et(Um)),U!==r&&(ht=x,U=Hm()),x=U,x===r&&(x=O,t.substr(O,2)===Kf?(U=Kf,O+=2):(U=r,Ye===0&&et(Gm)),U!==r?(le=Xc(),le!==r?(xe=Xc(),xe!==r?(Qe=Xc(),Qe!==r?(Ge=Xc(),Ge!==r?(ht=x,U=jm(le,xe,Qe,Ge),x=U):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)):(O=x,x=r)))))))))),x}function Xc(){var x;return TQ.test(t.charAt(O))?(x=t.charAt(O),O++):(x=r,Ye===0&&et(MQ)),x}function xr(){var x,U;if(Ye++,x=[],qm.test(t.charAt(O))?(U=t.charAt(O),O++):(U=r,Ye===0&&et(Jm)),U!==r)for(;U!==r;)x.push(U),qm.test(t.charAt(O))?(U=t.charAt(O),O++):(U=r,Ye===0&&et(Jm));else x=r;return Ye--,x===r&&(U=r,Ye===0&&et(Ym)),x}function KM(){var x,U;if(Ye++,x=[],zm.test(t.charAt(O))?(U=t.charAt(O),O++):(U=r,Ye===0&&et(Vm)),U!==r)for(;U!==r;)x.push(U),zm.test(t.charAt(O))?(U=t.charAt(O),O++):(U=r,Ye===0&&et(Vm));else x=r;return Ye--,x===r&&(U=r,Ye===0&&et(Wm)),x}function Jo(){var x,U,le,xe,Qe,Ge;if(x=O,U=Zs(),U!==r){for(le=[],xe=O,Qe=xr(),Qe===r&&(Qe=null),Qe!==r?(Ge=Zs(),Ge!==r?(Qe=[Qe,Ge],xe=Qe):(O=xe,xe=r)):(O=xe,xe=r);xe!==r;)le.push(xe),xe=O,Qe=xr(),Qe===r&&(Qe=null),Qe!==r?(Ge=Zs(),Ge!==r?(Qe=[Qe,Ge],xe=Qe):(O=xe,xe=r)):(O=xe,xe=r);le!==r?(U=[U,le],x=U):(O=x,x=r)}else O=x,x=r;return x}function Zs(){var x;return t.substr(O,2)===Uf?(x=Uf,O+=2):(x=r,Ye===0&&et(OQ)),x===r&&(t.charCodeAt(O)===10?(x=KQ,O++):(x=r,Ye===0&&et(_m)),x===r&&(t.charCodeAt(O)===13?(x=UQ,O++):(x=r,Ye===0&&et(HQ)))),x}let aE=2,Zc=0;if(nl=n(),nl!==r&&O===t.length)return nl;throw nl!==r&&O{var fRe=typeof global=="object"&&global&&global.Object===Object&&global;V5.exports=fRe});var Ks=E((Zat,_5)=>{var hRe=WP(),pRe=typeof self=="object"&&self&&self.Object===Object&&self,dRe=hRe||pRe||Function("return this")();_5.exports=dRe});var ac=E(($at,X5)=>{var CRe=Ks(),mRe=CRe.Symbol;X5.exports=mRe});var $5=E((eAt,Z5)=>{function ERe(t,e){for(var r=-1,i=t==null?0:t.length,n=Array(i);++r{var IRe=Array.isArray;e6.exports=IRe});var n6=E((rAt,t6)=>{var r6=ac(),i6=Object.prototype,yRe=i6.hasOwnProperty,wRe=i6.toString,Jp=r6?r6.toStringTag:void 0;function BRe(t){var e=yRe.call(t,Jp),r=t[Jp];try{t[Jp]=void 0;var i=!0}catch(s){}var n=wRe.call(t);return i&&(e?t[Jp]=r:delete t[Jp]),n}t6.exports=BRe});var o6=E((iAt,s6)=>{var QRe=Object.prototype,bRe=QRe.toString;function vRe(t){return bRe.call(t)}s6.exports=vRe});var Ac=E((nAt,a6)=>{var A6=ac(),SRe=n6(),xRe=o6(),kRe="[object Null]",PRe="[object Undefined]",l6=A6?A6.toStringTag:void 0;function DRe(t){return t==null?t===void 0?PRe:kRe:l6&&l6 in Object(t)?SRe(t):xRe(t)}a6.exports=DRe});var Qo=E((sAt,c6)=>{function RRe(t){return t!=null&&typeof t=="object"}c6.exports=RRe});var Nw=E((oAt,u6)=>{var FRe=Ac(),NRe=Qo(),LRe="[object Symbol]";function TRe(t){return typeof t=="symbol"||NRe(t)&&FRe(t)==LRe}u6.exports=TRe});var C6=E((aAt,g6)=>{var f6=ac(),MRe=$5(),ORe=As(),KRe=Nw(),URe=1/0,h6=f6?f6.prototype:void 0,p6=h6?h6.toString:void 0;function d6(t){if(typeof t=="string")return t;if(ORe(t))return MRe(t,d6)+"";if(KRe(t))return p6?p6.call(t):"";var e=t+"";return e=="0"&&1/t==-URe?"-0":e}g6.exports=d6});var gg=E((AAt,m6)=>{var HRe=C6();function GRe(t){return t==null?"":HRe(t)}m6.exports=GRe});var zP=E((lAt,E6)=>{function jRe(t,e,r){var i=-1,n=t.length;e<0&&(e=-e>n?0:n+e),r=r>n?n:r,r<0&&(r+=n),n=e>r?0:r-e>>>0,e>>>=0;for(var s=Array(n);++i{var YRe=zP();function qRe(t,e,r){var i=t.length;return r=r===void 0?i:r,!e&&r>=i?t:YRe(t,e,r)}I6.exports=qRe});var VP=E((uAt,w6)=>{var JRe="\\ud800-\\udfff",WRe="\\u0300-\\u036f",zRe="\\ufe20-\\ufe2f",VRe="\\u20d0-\\u20ff",_Re=WRe+zRe+VRe,XRe="\\ufe0e\\ufe0f",ZRe="\\u200d",$Re=RegExp("["+ZRe+JRe+_Re+XRe+"]");function eFe(t){return $Re.test(t)}w6.exports=eFe});var Q6=E((gAt,B6)=>{function tFe(t){return t.split("")}B6.exports=tFe});var R6=E((fAt,b6)=>{var v6="\\ud800-\\udfff",rFe="\\u0300-\\u036f",iFe="\\ufe20-\\ufe2f",nFe="\\u20d0-\\u20ff",sFe=rFe+iFe+nFe,oFe="\\ufe0e\\ufe0f",aFe="["+v6+"]",_P="["+sFe+"]",XP="\\ud83c[\\udffb-\\udfff]",AFe="(?:"+_P+"|"+XP+")",S6="[^"+v6+"]",x6="(?:\\ud83c[\\udde6-\\uddff]){2}",k6="[\\ud800-\\udbff][\\udc00-\\udfff]",lFe="\\u200d",P6=AFe+"?",D6="["+oFe+"]?",cFe="(?:"+lFe+"(?:"+[S6,x6,k6].join("|")+")"+D6+P6+")*",uFe=D6+P6+cFe,gFe="(?:"+[S6+_P+"?",_P,x6,k6,aFe].join("|")+")",fFe=RegExp(XP+"(?="+XP+")|"+gFe+uFe,"g");function hFe(t){return t.match(fFe)||[]}b6.exports=hFe});var N6=E((hAt,F6)=>{var pFe=Q6(),dFe=VP(),CFe=R6();function mFe(t){return dFe(t)?CFe(t):pFe(t)}F6.exports=mFe});var T6=E((pAt,L6)=>{var EFe=y6(),IFe=VP(),yFe=N6(),wFe=gg();function BFe(t){return function(e){e=wFe(e);var r=IFe(e)?yFe(e):void 0,i=r?r[0]:e.charAt(0),n=r?EFe(r,1).join(""):e.slice(1);return i[t]()+n}}L6.exports=BFe});var O6=E((dAt,M6)=>{var QFe=T6(),bFe=QFe("toUpperCase");M6.exports=bFe});var ZP=E((CAt,K6)=>{var vFe=gg(),SFe=O6();function xFe(t){return SFe(vFe(t).toLowerCase())}K6.exports=xFe});var H6=E((mAt,U6)=>{"use strict";U6.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var Wp=E((EAt,$P)=>{"use strict";var kFe=H6(),G6=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,i=()=>{r--,e.length>0&&e.shift()()},n=(a,l,...c)=>{r++;let u=kFe(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{rnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),o};$P.exports=G6;$P.exports.default=G6});var X6=E((FAt,Mw)=>{function PFe(){var t=0,e=1,r=2,i=3,n=4,s=5,o=6,a=7,l=8,c=9,u=10,g=11,f=12,h=13,p=14,d=15,m=16,I=17,B=0,b=1,R=2,H=3,L=4;function K(A,V){return 55296<=A.charCodeAt(V)&&A.charCodeAt(V)<=56319&&56320<=A.charCodeAt(V+1)&&A.charCodeAt(V+1)<=57343}function J(A,V){V===void 0&&(V=0);var W=A.charCodeAt(V);if(55296<=W&&W<=56319&&V=1){var X=A.charCodeAt(V-1),F=W;return 55296<=X&&X<=56319?(X-55296)*1024+(F-56320)+65536:F}return W}function ne(A,V,W){var X=[A].concat(V).concat([W]),F=X[X.length-2],D=W,he=X.lastIndexOf(p);if(he>1&&X.slice(1,he).every(function(Pe){return Pe==i})&&[i,h,I].indexOf(A)==-1)return R;var pe=X.lastIndexOf(n);if(pe>0&&X.slice(1,pe).every(function(Pe){return Pe==n})&&[f,n].indexOf(F)==-1)return X.filter(function(Pe){return Pe==n}).length%2==1?H:L;if(F==t&&D==e)return B;if(F==r||F==t||F==e)return D==p&&V.every(function(Pe){return Pe==i})?R:b;if(D==r||D==t||D==e)return b;if(F==o&&(D==o||D==a||D==c||D==u))return B;if((F==c||F==a)&&(D==a||D==l))return B;if((F==u||F==l)&&D==l)return B;if(D==i||D==d)return B;if(D==s)return B;if(F==f)return B;var Ne=X.indexOf(i)!=-1?X.lastIndexOf(i)-1:X.length-2;return[h,I].indexOf(X[Ne])!=-1&&X.slice(Ne+1,-1).every(function(Pe){return Pe==i})&&D==p||F==d&&[m,I].indexOf(D)!=-1?B:V.indexOf(n)!=-1?R:F==n&&D==n?B:b}this.nextBreak=function(A,V){if(V===void 0&&(V=0),V<0)return 0;if(V>=A.length-1)return A.length;for(var W=q(J(A,V)),X=[],F=V+1;F{var DFe=X6(),RFe=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,FFe=new DFe;Z6.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let i=r-e,n="",s=0,o=0;for(;t.length>0;){let a=t.match(RFe)||[t,t,void 0],l=FFe.splitGraphemes(a[1]),c=Math.min(e-s,l.length);l=l.slice(c);let u=Math.min(i-o,l.length);n+=l.slice(0,u).join(""),s+=c,o+=u,typeof a[2]!="undefined"&&(n+=a[2]),t=t.slice(a[0].length)}return n}});var fg=E((alt,f9)=>{"use strict";var h9=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]),olt=f9.exports=t=>t?Object.keys(t).map(e=>[h9.has(e)?h9.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var hg=E((Alt,p9)=>{"use strict";var JFe=require("events"),d9=require("stream"),_p=Rh(),C9=require("string_decoder").StringDecoder,va=Symbol("EOF"),Xp=Symbol("maybeEmitEnd"),xA=Symbol("emittedEnd"),Gw=Symbol("emittingEnd"),jw=Symbol("closed"),m9=Symbol("read"),iD=Symbol("flush"),E9=Symbol("flushChunk"),Bn=Symbol("encoding"),Sa=Symbol("decoder"),Yw=Symbol("flowing"),Zp=Symbol("paused"),$p=Symbol("resume"),rn=Symbol("bufferLength"),I9=Symbol("bufferPush"),nD=Symbol("bufferShift"),Ni=Symbol("objectMode"),Li=Symbol("destroyed"),y9=global._MP_NO_ITERATOR_SYMBOLS_!=="1",WFe=y9&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),zFe=y9&&Symbol.iterator||Symbol("iterator not implemented"),w9=t=>t==="end"||t==="finish"||t==="prefinish",VFe=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,_Fe=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t);p9.exports=class B9 extends d9{constructor(e){super();this[Yw]=!1,this[Zp]=!1,this.pipes=new _p,this.buffer=new _p,this[Ni]=e&&e.objectMode||!1,this[Ni]?this[Bn]=null:this[Bn]=e&&e.encoding||null,this[Bn]==="buffer"&&(this[Bn]=null),this[Sa]=this[Bn]?new C9(this[Bn]):null,this[va]=!1,this[xA]=!1,this[Gw]=!1,this[jw]=!1,this.writable=!0,this.readable=!0,this[rn]=0,this[Li]=!1}get bufferLength(){return this[rn]}get encoding(){return this[Bn]}set encoding(e){if(this[Ni])throw new Error("cannot set encoding in objectMode");if(this[Bn]&&e!==this[Bn]&&(this[Sa]&&this[Sa].lastNeed||this[rn]))throw new Error("cannot change encoding");this[Bn]!==e&&(this[Sa]=e?new C9(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[Sa].write(r)))),this[Bn]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Ni]}set objectMode(e){this[Ni]=this[Ni]||!!e}write(e,r,i){if(this[va])throw new Error("write after end");return this[Li]?(this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0):(typeof r=="function"&&(i=r,r="utf8"),r||(r="utf8"),!this[Ni]&&!Buffer.isBuffer(e)&&(_Fe(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):VFe(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),!this.objectMode&&!e.length?(this[rn]!==0&&this.emit("readable"),i&&i(),this.flowing):(typeof e=="string"&&!this[Ni]&&!(r===this[Bn]&&!this[Sa].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[Bn]&&(e=this[Sa].write(e)),this.flowing?(this[rn]!==0&&this[iD](!0),this.emit("data",e)):this[I9](e),this[rn]!==0&&this.emit("readable"),i&&i(),this.flowing))}read(e){if(this[Li])return null;try{return this[rn]===0||e===0||e>this[rn]?null:(this[Ni]&&(e=null),this.buffer.length>1&&!this[Ni]&&(this.encoding?this.buffer=new _p([Array.from(this.buffer).join("")]):this.buffer=new _p([Buffer.concat(Array.from(this.buffer),this[rn])])),this[m9](e||null,this.buffer.head.value))}finally{this[Xp]()}}[m9](e,r){return e===r.length||e===null?this[nD]():(this.buffer.head.value=r.slice(e),r=r.slice(0,e),this[rn]-=e),this.emit("data",r),!this.buffer.length&&!this[va]&&this.emit("drain"),r}end(e,r,i){return typeof e=="function"&&(i=e,e=null),typeof r=="function"&&(i=r,r="utf8"),e&&this.write(e,r),i&&this.once("end",i),this[va]=!0,this.writable=!1,(this.flowing||!this[Zp])&&this[Xp](),this}[$p](){this[Li]||(this[Zp]=!1,this[Yw]=!0,this.emit("resume"),this.buffer.length?this[iD]():this[va]?this[Xp]():this.emit("drain"))}resume(){return this[$p]()}pause(){this[Yw]=!1,this[Zp]=!0}get destroyed(){return this[Li]}get flowing(){return this[Yw]}get paused(){return this[Zp]}[I9](e){return this[Ni]?this[rn]+=1:this[rn]+=e.length,this.buffer.push(e)}[nD](){return this.buffer.length&&(this[Ni]?this[rn]-=1:this[rn]-=this.buffer.head.value.length),this.buffer.shift()}[iD](e){do;while(this[E9](this[nD]()));!e&&!this.buffer.length&&!this[va]&&this.emit("drain")}[E9](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Li])return;let i=this[xA];r=r||{},e===process.stdout||e===process.stderr?r.end=!1:r.end=r.end!==!1;let n={dest:e,opts:r,ondrain:s=>this[$p]()};return this.pipes.push(n),e.on("drain",n.ondrain),this[$p](),i&&n.opts.end&&n.dest.end(),e}addListener(e,r){return this.on(e,r)}on(e,r){try{return super.on(e,r)}finally{e==="data"&&!this.pipes.length&&!this.flowing?this[$p]():w9(e)&&this[xA]&&(super.emit(e),this.removeAllListeners(e))}}get emittedEnd(){return this[xA]}[Xp](){!this[Gw]&&!this[xA]&&!this[Li]&&this.buffer.length===0&&this[va]&&(this[Gw]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[jw]&&this.emit("close"),this[Gw]=!1)}emit(e,r){if(e!=="error"&&e!=="close"&&e!==Li&&this[Li])return;if(e==="data"){if(!r)return;this.pipes.length&&this.pipes.forEach(n=>n.dest.write(r)===!1&&this.pause())}else if(e==="end"){if(this[xA]===!0)return;this[xA]=!0,this.readable=!1,this[Sa]&&(r=this[Sa].end(),r&&(this.pipes.forEach(n=>n.dest.write(r)),super.emit("data",r))),this.pipes.forEach(n=>{n.dest.removeListener("drain",n.ondrain),n.opts.end&&n.dest.end()})}else if(e==="close"&&(this[jw]=!0,!this[xA]&&!this[Li]))return;let i=new Array(arguments.length);if(i[0]=e,i[1]=r,arguments.length>2)for(let n=2;n{e.push(i),this[Ni]||(e.dataLength+=i.length)}),r.then(()=>e)}concat(){return this[Ni]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Ni]?Promise.reject(new Error("cannot concat in objectMode")):this[Bn]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Li,()=>r(new Error("stream destroyed"))),this.on("end",()=>e()),this.on("error",i=>r(i))})}[WFe](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[va])return Promise.resolve({done:!0});let i=null,n=null,s=c=>{this.removeListener("data",o),this.removeListener("end",a),n(c)},o=c=>{this.removeListener("error",s),this.removeListener("end",a),this.pause(),i({value:c,done:!!this[va]})},a=()=>{this.removeListener("error",s),this.removeListener("data",o),i({done:!0})},l=()=>s(new Error("stream destroyed"));return new Promise((c,u)=>{n=u,i=c,this.once(Li,l),this.once("error",s),this.once("end",a),this.once("data",o)})}}}[zFe](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Li]?(e?this.emit("error",e):this.emit(Li),this):(this[Li]=!0,this.buffer=new _p,this[rn]=0,typeof this.close=="function"&&!this[jw]&&this.close(),e?this.emit("error",e):this.emit(Li),this)}static isStream(e){return!!e&&(e instanceof B9||e instanceof d9||e instanceof JFe&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var b9=E((llt,Q9)=>{var XFe=require("zlib").constants||{ZLIB_VERNUM:4736};Q9.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:Infinity,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},XFe))});var fD=E(Un=>{"use strict";var sD=require("assert"),kA=require("buffer").Buffer,v9=require("zlib"),uc=Un.constants=b9(),ZFe=hg(),S9=kA.concat,gc=Symbol("_superWrite"),ed=class extends Error{constructor(e){super("zlib: "+e.message);this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},$Fe=Symbol("opts"),td=Symbol("flushFlag"),x9=Symbol("finishFlushFlag"),oD=Symbol("fullFlushFlag"),tr=Symbol("handle"),qw=Symbol("onError"),pg=Symbol("sawError"),aD=Symbol("level"),AD=Symbol("strategy"),lD=Symbol("ended"),clt=Symbol("_defaultFullFlush"),cD=class extends ZFe{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e);this[pg]=!1,this[lD]=!1,this[$Fe]=e,this[td]=e.flush,this[x9]=e.finishFlush;try{this[tr]=new v9[r](e)}catch(i){throw new ed(i)}this[qw]=i=>{this[pg]||(this[pg]=!0,this.close(),this.emit("error",i))},this[tr].on("error",i=>this[qw](new ed(i))),this.once("end",()=>this.close)}close(){this[tr]&&(this[tr].close(),this[tr]=null,this.emit("close"))}reset(){if(!this[pg])return sD(this[tr],"zlib binding closed"),this[tr].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[oD]),this.write(Object.assign(kA.alloc(0),{[td]:e})))}end(e,r,i){return e&&this.write(e,r),this.flush(this[x9]),this[lD]=!0,super.end(null,null,i)}get ended(){return this[lD]}write(e,r,i){if(typeof r=="function"&&(i=r,r="utf8"),typeof e=="string"&&(e=kA.from(e,r)),this[pg])return;sD(this[tr],"zlib binding closed");let n=this[tr]._handle,s=n.close;n.close=()=>{};let o=this[tr].close;this[tr].close=()=>{},kA.concat=c=>c;let a;try{let c=typeof e[td]=="number"?e[td]:this[td];a=this[tr]._processChunk(e,c),kA.concat=S9}catch(c){kA.concat=S9,this[qw](new ed(c))}finally{this[tr]&&(this[tr]._handle=n,n.close=s,this[tr].close=o,this[tr].removeAllListeners("error"))}this[tr]&&this[tr].on("error",c=>this[qw](new ed(c)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[gc](kA.from(a[0]));for(let c=1;c{this.flush(n),s()};try{this[tr].params(e,r)}finally{this[tr].flush=i}this[tr]&&(this[aD]=e,this[AD]=r)}}}},k9=class extends PA{constructor(e){super(e,"Deflate")}},P9=class extends PA{constructor(e){super(e,"Inflate")}},uD=Symbol("_portable"),D9=class extends PA{constructor(e){super(e,"Gzip");this[uD]=e&&!!e.portable}[gc](e){return this[uD]?(this[uD]=!1,e[9]=255,super[gc](e)):super[gc](e)}},R9=class extends PA{constructor(e){super(e,"Gunzip")}},F9=class extends PA{constructor(e){super(e,"DeflateRaw")}},N9=class extends PA{constructor(e){super(e,"InflateRaw")}},L9=class extends PA{constructor(e){super(e,"Unzip")}},gD=class extends cD{constructor(e,r){e=e||{},e.flush=e.flush||uc.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||uc.BROTLI_OPERATION_FINISH,super(e,r),this[oD]=uc.BROTLI_OPERATION_FLUSH}},T9=class extends gD{constructor(e){super(e,"BrotliCompress")}},M9=class extends gD{constructor(e){super(e,"BrotliDecompress")}};Un.Deflate=k9;Un.Inflate=P9;Un.Gzip=D9;Un.Gunzip=R9;Un.DeflateRaw=F9;Un.InflateRaw=N9;Un.Unzip=L9;typeof v9.BrotliCompress=="function"?(Un.BrotliCompress=T9,Un.BrotliDecompress=M9):Un.BrotliCompress=Un.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var rd=E(Jw=>{"use strict";Jw.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);Jw.code=new Map(Array.from(Jw.name).map(t=>[t[1],t[0]]))});var id=E((plt,O9)=>{"use strict";var flt=rd(),eNe=hg(),hD=Symbol("slurp");O9.exports=class extends eNe{constructor(e,r,i){super();switch(this.pause(),this.extended=r,this.globalExtended=i,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,r&&this[hD](r),i&&this[hD](i,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let i=this.remain,n=this.blockRemain;return this.remain=Math.max(0,i-r),this.blockRemain=Math.max(0,n-r),this.ignore?!0:i>=r?super.write(e):super.write(e.slice(0,i))}[hD](e,r){for(let i in e)e[i]!==null&&e[i]!==void 0&&!(r&&i==="path")&&(this[i]=e[i])}}});var H9=E(pD=>{"use strict";var dlt=pD.encode=(t,e)=>{if(Number.isSafeInteger(t))t<0?rNe(t,e):tNe(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},tNe=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},rNe=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var i=e.length;i>1;i--){var n=t&255;t=Math.floor(t/256),r?e[i-1]=K9(n):n===0?e[i-1]=0:(r=!0,e[i-1]=U9(n))}},Clt=pD.parse=t=>{var e=t[t.length-1],r=t[0],i;if(r===128)i=nNe(t.slice(1,t.length));else if(r===255)i=iNe(t);else throw Error("invalid base256 encoding");if(!Number.isSafeInteger(i))throw Error("parsed number outside of javascript safe integer range");return i},iNe=t=>{for(var e=t.length,r=0,i=!1,n=e-1;n>-1;n--){var s=t[n],o;i?o=K9(s):s===0?o=s:(i=!0,o=U9(s)),o!==0&&(r-=o*Math.pow(256,e-n-1))}return r},nNe=t=>{for(var e=t.length,r=0,i=e-1;i>-1;i--){var n=t[i];n!==0&&(r+=n*Math.pow(256,e-i-1))}return r},K9=t=>(255^t)&255,U9=t=>(255^t)+1&255});var Cg=E((Elt,G9)=>{"use strict";var dD=rd(),dg=require("path").posix,j9=H9(),CD=Symbol("slurp"),Hn=Symbol("type"),Y9=class{constructor(e,r,i,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Hn]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,i,n):e&&this.set(e)}decode(e,r,i,n){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=fc(e,r,100),this.mode=DA(e,r+100,8),this.uid=DA(e,r+108,8),this.gid=DA(e,r+116,8),this.size=DA(e,r+124,12),this.mtime=mD(e,r+136,12),this.cksum=DA(e,r+148,12),this[CD](i),this[CD](n,!0),this[Hn]=fc(e,r+156,1),this[Hn]===""&&(this[Hn]="0"),this[Hn]==="0"&&this.path.substr(-1)==="/"&&(this[Hn]="5"),this[Hn]==="5"&&(this.size=0),this.linkpath=fc(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=fc(e,r+265,32),this.gname=fc(e,r+297,32),this.devmaj=DA(e,r+329,8),this.devmin=DA(e,r+337,8),e[r+475]!==0){let o=fc(e,r+345,155);this.path=o+"/"+this.path}else{let o=fc(e,r+345,130);o&&(this.path=o+"/"+this.path),this.atime=mD(e,r+476,12),this.ctime=mD(e,r+488,12)}let s=8*32;for(let o=r;o=r+512))throw new Error("need 512 bytes for header");let i=this.ctime||this.atime?130:155,n=sNe(this.path||"",i),s=n[0],o=n[1];this.needPax=n[2],this.needPax=hc(e,r,100,s)||this.needPax,this.needPax=RA(e,r+100,8,this.mode)||this.needPax,this.needPax=RA(e,r+108,8,this.uid)||this.needPax,this.needPax=RA(e,r+116,8,this.gid)||this.needPax,this.needPax=RA(e,r+124,12,this.size)||this.needPax,this.needPax=ED(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[Hn].charCodeAt(0),this.needPax=hc(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=hc(e,r+265,32,this.uname)||this.needPax,this.needPax=hc(e,r+297,32,this.gname)||this.needPax,this.needPax=RA(e,r+329,8,this.devmaj)||this.needPax,this.needPax=RA(e,r+337,8,this.devmin)||this.needPax,this.needPax=hc(e,r+345,i,o)||this.needPax,e[r+475]!==0?this.needPax=hc(e,r+345,155,o)||this.needPax:(this.needPax=hc(e,r+345,130,o)||this.needPax,this.needPax=ED(e,r+476,12,this.atime)||this.needPax,this.needPax=ED(e,r+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=r;l{let r=100,i=t,n="",s,o=dg.parse(t).root||".";if(Buffer.byteLength(i)r&&Buffer.byteLength(n)<=e?s=[i.substr(0,r-1),n,!0]:(i=dg.join(dg.basename(n),i),n=dg.dirname(n));while(n!==o&&!s);s||(s=[t.substr(0,r-1),"",!0])}return s},fc=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),mD=(t,e,r)=>oNe(DA(t,e,r)),oNe=t=>t===null?null:new Date(t*1e3),DA=(t,e,r)=>t[e]&128?j9.parse(t.slice(e,e+r)):aNe(t,e,r),ANe=t=>isNaN(t)?null:t,aNe=(t,e,r)=>ANe(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),lNe={12:8589934591,8:2097151},RA=(t,e,r,i)=>i===null?!1:i>lNe[r]||i<0?(j9.encode(i,t.slice(e,e+r)),!0):(cNe(t,e,r,i),!1),cNe=(t,e,r,i)=>t.write(uNe(i,r),e,r,"ascii"),uNe=(t,e)=>gNe(Math.floor(t).toString(8),e),gNe=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",ED=(t,e,r,i)=>i===null?!1:RA(t,e,r,i.getTime()/1e3),fNe=new Array(156).join("\0"),hc=(t,e,r,i)=>i===null?!1:(t.write(i+fNe,e,r,"utf8"),i.length!==Buffer.byteLength(i)||i.length>r);G9.exports=Y9});var zw=E((Ilt,q9)=>{"use strict";var hNe=Cg(),pNe=require("path"),Ww=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),i=512*Math.ceil(1+r/512),n=Buffer.allocUnsafe(i);for(let s=0;s<512;s++)n[s]=0;new hNe({path:("PaxHeader/"+pNe.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,r,"utf8");for(let s=r+512;s=Math.pow(10,s)&&(s+=1),s+n+i}};Ww.parse=(t,e,r)=>new Ww(dNe(CNe(t),e),r);var dNe=(t,e)=>e?Object.keys(t).reduce((r,i)=>(r[i]=t[i],r),e):t,CNe=t=>t.replace(/\n$/,"").split(` -`).reduce(mNe,Object.create(null)),mNe=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let i=e.split("="),n=i.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return t;let s=i.join("=");return t[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(s*1e3):/^[0-9]+$/.test(s)?+s:s,t};q9.exports=Ww});var Vw=E((ylt,J9)=>{"use strict";J9.exports=t=>class extends t{warn(e,r,i={}){this.file&&(i.file=this.file),this.cwd&&(i.cwd=this.cwd),i.code=r instanceof Error&&r.code||e,i.tarCode=e,!this.strict&&i.recoverable!==!1?(r instanceof Error&&(i=Object.assign(r,i),r=r.message),this.emit("warn",i.tarCode,r,i)):r instanceof Error?this.emit("error",Object.assign(r,i)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),i))}}});var yD=E((wlt,W9)=>{"use strict";var _w=["|","<",">","?",":"],ID=_w.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),ENe=new Map(_w.map((t,e)=>[t,ID[e]])),INe=new Map(ID.map((t,e)=>[t,_w[e]]));W9.exports={encode:t=>_w.reduce((e,r)=>e.split(r).join(ENe.get(r)),t),decode:t=>ID.reduce((e,r)=>e.split(r).join(INe.get(r)),t)}});var V9=E((Blt,z9)=>{"use strict";z9.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&~18),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var xD=E((xlt,_9)=>{"use strict";var X9=hg(),Z9=zw(),$9=Cg(),Qlt=id(),bo=require("fs"),mg=require("path"),blt=rd(),yNe=16*1024*1024,eV=Symbol("process"),tV=Symbol("file"),rV=Symbol("directory"),wD=Symbol("symlink"),iV=Symbol("hardlink"),nd=Symbol("header"),Xw=Symbol("read"),BD=Symbol("lstat"),Zw=Symbol("onlstat"),QD=Symbol("onread"),bD=Symbol("onreadlink"),vD=Symbol("openfile"),SD=Symbol("onopenfile"),pc=Symbol("close"),$w=Symbol("mode"),nV=Vw(),wNe=yD(),sV=V9(),eB=nV(class extends X9{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=e,this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||yNe,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=r.cwd||process.cwd(),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let i=!1;if(!this.preservePaths&&mg.win32.isAbsolute(e)){let n=mg.win32.parse(e);this.path=e.substr(n.root.length),i=n.root}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=wNe.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=r.absolute||mg.resolve(this.cwd,e),this.path===""&&(this.path="./"),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.statCache.has(this.absolute)?this[Zw](this.statCache.get(this.absolute)):this[BD]()}[BD](){bo.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[Zw](r)})}[Zw](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=BNe(e),this.emit("stat",e),this[eV]()}[eV](){switch(this.type){case"File":return this[tV]();case"Directory":return this[rV]();case"SymbolicLink":return this[wD]();default:return this.end()}}[$w](e){return sV(e,this.type==="Directory",this.portable)}[nd](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new $9({path:this.path,linkpath:this.linkpath,mode:this[$w](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new Z9({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[rV](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[nd](),this.end()}[wD](){bo.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[bD](r)})}[bD](e){this.linkpath=e.replace(/\\/g,"/"),this[nd](),this.end()}[iV](e){this.type="Link",this.linkpath=mg.relative(this.cwd,e).replace(/\\/g,"/"),this.stat.size=0,this[nd](),this.end()}[tV](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[iV](r)}this.linkCache.set(e,this.absolute)}if(this[nd](),this.stat.size===0)return this.end();this[vD]()}[vD](){bo.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[SD](r)})}[SD](e){let r=512*Math.ceil(this.stat.size/512),i=Math.min(r,this.maxReadSize),n=Buffer.allocUnsafe(i);this[Xw](e,n,0,n.length,0,this.stat.size,r)}[Xw](e,r,i,n,s,o,a){bo.read(e,r,i,n,s,(l,c)=>{if(l)return this[pc](e,()=>this.emit("error",l));this[QD](e,r,i,n,s,o,a,c)})}[pc](e,r){bo.close(e,r)}[QD](e,r,i,n,s,o,a,l){if(l<=0&&o>0){let u=new Error("encountered unexpected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[pc](e,()=>this.emit("error",u))}if(l>o){let u=new Error("did not encounter expected EOF");return u.path=this.absolute,u.syscall="read",u.code="EOF",this[pc](e,()=>this.emit("error",u))}if(l===o)for(let u=l;uu?this.emit("error",u):this.end());i>=n&&(r=Buffer.allocUnsafe(n),i=0),n=r.length-i,this[Xw](e,r,i,n,s,o,a)}}),oV=class extends eB{constructor(e,r){super(e,r)}[BD](){this[Zw](bo.lstatSync(this.absolute))}[wD](){this[bD](bo.readlinkSync(this.absolute))}[vD](){this[SD](bo.openSync(this.absolute,"r"))}[Xw](e,r,i,n,s,o,a){let l=!0;try{let c=bo.readSync(e,r,i,n,s);this[QD](e,r,i,n,s,o,a,c),l=!1}finally{if(l)try{this[pc](e,()=>{})}catch(c){}}}[pc](e,r){bo.closeSync(e),r()}},QNe=nV(class extends X9{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[$w](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let i=!1;if(mg.isAbsolute(this.path)&&!this.preservePaths){let n=mg.parse(this.path);i=n.root,this.path=this.path.substr(n.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new $9({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),i&&this.warn("TAR_ENTRY_INFO",`stripping ${i} from absolute path`,{entry:this,path:i+this.path}),this.header.encode()&&!this.noPax&&super.write(new Z9({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[$w](e){return sV(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&this.write(Buffer.alloc(this.blockRemain)),super.end()}});eB.Sync=oV;eB.Tar=QNe;var BNe=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";_9.exports=eB});var AB=E((Plt,aV)=>{"use strict";var kD=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},bNe=hg(),vNe=fD(),SNe=id(),PD=xD(),xNe=PD.Sync,kNe=PD.Tar,PNe=Rh(),AV=Buffer.alloc(1024),tB=Symbol("onStat"),rB=Symbol("ended"),vo=Symbol("queue"),Eg=Symbol("current"),dc=Symbol("process"),iB=Symbol("processing"),lV=Symbol("processJob"),So=Symbol("jobs"),DD=Symbol("jobDone"),nB=Symbol("addFSEntry"),cV=Symbol("addTarEntry"),RD=Symbol("stat"),FD=Symbol("readdir"),sB=Symbol("onreaddir"),oB=Symbol("pipe"),uV=Symbol("entry"),ND=Symbol("entryOpt"),LD=Symbol("writeEntryClass"),gV=Symbol("write"),TD=Symbol("ondrain"),aB=require("fs"),fV=require("path"),DNe=Vw(),MD=DNe(class extends bNe{constructor(e){super(e);e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||"").replace(/(\\|\/)+$/,""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[LD]=PD,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new vNe.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[TD]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[TD]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[vo]=new PNe,this[So]=0,this.jobs=+e.jobs||4,this[iB]=!1,this[rB]=!1}[gV](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[rB]=!0,this[dc](),this}write(e){if(this[rB])throw new Error("write after end");return e instanceof SNe?this[cV](e):this[nB](e),this.flowing}[cV](e){let r=fV.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+"/"+e.path.replace(/^\.(\/+|$)/,"")),!this.filter(e.path,e))e.resume();else{let i=new kD(e.path,r,!1);i.entry=new kNe(e,this[ND](i)),i.entry.on("end",n=>this[DD](i)),this[So]+=1,this[vo].push(i)}this[dc]()}[nB](e){let r=fV.resolve(this.cwd,e);this.prefix&&(e=this.prefix+"/"+e.replace(/^\.(\/+|$)/,"")),this[vo].push(new kD(e,r)),this[dc]()}[RD](e){e.pending=!0,this[So]+=1;let r=this.follow?"stat":"lstat";aB[r](e.absolute,(i,n)=>{e.pending=!1,this[So]-=1,i?this.emit("error",i):this[tB](e,n)})}[tB](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[dc]()}[FD](e){e.pending=!0,this[So]+=1,aB.readdir(e.absolute,(r,i)=>{if(e.pending=!1,this[So]-=1,r)return this.emit("error",r);this[sB](e,i)})}[sB](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[dc]()}[dc](){if(!this[iB]){this[iB]=!0;for(let e=this[vo].head;e!==null&&this[So]this.warn(r,i,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[uV](e){this[So]+=1;try{return new this[LD](e.path,this[ND](e)).on("end",()=>this[DD](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[TD](){this[Eg]&&this[Eg].entry&&this[Eg].entry.resume()}[oB](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[nB](o+n)});let r=e.entry,i=this.zip;i?r.on("data",n=>{i.write(n)||r.pause()}):r.on("data",n=>{super.write(n)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),hV=class extends MD{constructor(e){super(e);this[LD]=xNe}pause(){}resume(){}[RD](e){let r=this.follow?"statSync":"lstatSync";this[tB](e,aB[r](e.absolute))}[FD](e,r){this[sB](e,aB.readdirSync(e.absolute))}[oB](e){let r=e.entry,i=this.zip;e.readdir&&e.readdir.forEach(n=>{let s=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,o=s==="./"?"":s.replace(/\/*$/,"/");this[nB](o+n)}),i?r.on("data",n=>{i.write(n)}):r.on("data",n=>{super[gV](n)})}};MD.Sync=hV;aV.exports=MD});var bg=E(sd=>{"use strict";var RNe=hg(),FNe=require("events").EventEmitter,ls=require("fs"),lB=process.binding("fs"),Dlt=lB.writeBuffers,NNe=lB.FSReqWrap||lB.FSReqCallback,Ig=Symbol("_autoClose"),xo=Symbol("_close"),od=Symbol("_ended"),Jt=Symbol("_fd"),pV=Symbol("_finished"),Cc=Symbol("_flags"),OD=Symbol("_flush"),KD=Symbol("_handleChunk"),UD=Symbol("_makeBuf"),HD=Symbol("_mode"),cB=Symbol("_needDrain"),yg=Symbol("_onerror"),wg=Symbol("_onopen"),GD=Symbol("_onread"),mc=Symbol("_onwrite"),FA=Symbol("_open"),NA=Symbol("_path"),Ec=Symbol("_pos"),ko=Symbol("_queue"),Bg=Symbol("_read"),dV=Symbol("_readSize"),LA=Symbol("_reading"),uB=Symbol("_remain"),CV=Symbol("_size"),gB=Symbol("_write"),Qg=Symbol("_writing"),fB=Symbol("_defaultFlag"),jD=class extends RNe{constructor(e,r){if(r=r||{},super(r),this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[Jt]=typeof r.fd=="number"?r.fd:null,this[NA]=e,this[dV]=r.readSize||16*1024*1024,this[LA]=!1,this[CV]=typeof r.size=="number"?r.size:Infinity,this[uB]=this[CV],this[Ig]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[Jt]=="number"?this[Bg]():this[FA]()}get fd(){return this[Jt]}get path(){return this[NA]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[FA](){ls.open(this[NA],"r",(e,r)=>this[wg](e,r))}[wg](e,r){e?this[yg](e):(this[Jt]=r,this.emit("open",r),this[Bg]())}[UD](){return Buffer.allocUnsafe(Math.min(this[dV],this[uB]))}[Bg](){if(!this[LA]){this[LA]=!0;let e=this[UD]();if(e.length===0)return process.nextTick(()=>this[GD](null,0,e));ls.read(this[Jt],e,0,e.length,null,(r,i,n)=>this[GD](r,i,n))}}[GD](e,r,i){this[LA]=!1,e?this[yg](e):this[KD](r,i)&&this[Bg]()}[xo](){this[Ig]&&typeof this[Jt]=="number"&&(ls.close(this[Jt],e=>this.emit("close")),this[Jt]=null)}[yg](e){this[LA]=!0,this[xo](),this.emit("error",e)}[KD](e,r){let i=!1;return this[uB]-=e,e>0&&(i=super.write(ethis[wg](e,r))}[wg](e,r){this[fB]&&this[Cc]==="r+"&&e&&e.code==="ENOENT"?(this[Cc]="w",this[FA]()):e?this[yg](e):(this[Jt]=r,this.emit("open",r),this[OD]())}end(e,r){e&&this.write(e,r),this[od]=!0,!this[Qg]&&!this[ko].length&&typeof this[Jt]=="number"&&this[mc](null,0)}write(e,r){return typeof e=="string"&&(e=new Buffer(e,r)),this[od]?(this.emit("error",new Error("write() after end()")),!1):this[Jt]===null||this[Qg]||this[ko].length?(this[ko].push(e),this[cB]=!0,!1):(this[Qg]=!0,this[gB](e),!0)}[gB](e){ls.write(this[Jt],e,0,e.length,this[Ec],(r,i)=>this[mc](r,i))}[mc](e,r){e?this[yg](e):(this[Ec]!==null&&(this[Ec]+=r),this[ko].length?this[OD]():(this[Qg]=!1,this[od]&&!this[pV]?(this[pV]=!0,this[xo](),this.emit("finish")):this[cB]&&(this[cB]=!1,this.emit("drain"))))}[OD](){if(this[ko].length===0)this[od]&&this[mc](null,0);else if(this[ko].length===1)this[gB](this[ko].pop());else{let e=this[ko];this[ko]=[],LNe(this[Jt],e,this[Ec],(r,i)=>this[mc](r,i))}}[xo](){this[Ig]&&typeof this[Jt]=="number"&&(ls.close(this[Jt],e=>this.emit("close")),this[Jt]=null)}},EV=class extends YD{[FA](){let e;try{e=ls.openSync(this[NA],this[Cc],this[HD])}catch(r){if(this[fB]&&this[Cc]==="r+"&&r&&r.code==="ENOENT")return this[Cc]="w",this[FA]();throw r}this[wg](null,e)}[xo](){if(this[Ig]&&typeof this[Jt]=="number"){try{ls.closeSync(this[Jt])}catch(e){}this[Jt]=null,this.emit("close")}}[gB](e){try{this[mc](null,ls.writeSync(this[Jt],e,0,e.length,this[Ec]))}catch(r){this[mc](r,0)}}},LNe=(t,e,r,i)=>{let n=(o,a)=>i(o,a,e),s=new NNe;s.oncomplete=n,lB.writeBuffers(t,e,r,s)};sd.ReadStream=jD;sd.ReadStreamSync=mV;sd.WriteStream=YD;sd.WriteStreamSync=EV});var ld=E((Llt,IV)=>{"use strict";var TNe=Vw(),Flt=require("path"),MNe=Cg(),ONe=require("events"),KNe=Rh(),UNe=1024*1024,HNe=id(),yV=zw(),GNe=fD(),qD=Buffer.from([31,139]),cs=Symbol("state"),Ic=Symbol("writeEntry"),xa=Symbol("readEntry"),JD=Symbol("nextEntry"),wV=Symbol("processEntry"),us=Symbol("extendedHeader"),ad=Symbol("globalExtendedHeader"),TA=Symbol("meta"),BV=Symbol("emitMeta"),Ar=Symbol("buffer"),ka=Symbol("queue"),yc=Symbol("ended"),QV=Symbol("emittedEnd"),wc=Symbol("emit"),Qn=Symbol("unzip"),hB=Symbol("consumeChunk"),pB=Symbol("consumeChunkSub"),WD=Symbol("consumeBody"),bV=Symbol("consumeMeta"),vV=Symbol("consumeHeader"),dB=Symbol("consuming"),zD=Symbol("bufferConcat"),VD=Symbol("maybeEnd"),Ad=Symbol("writing"),MA=Symbol("aborted"),CB=Symbol("onDone"),Bc=Symbol("sawValidEntry"),mB=Symbol("sawNullBlock"),EB=Symbol("sawEOF"),jNe=t=>!0;IV.exports=TNe(class extends ONe{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Bc]=null,this.on(CB,r=>{(this[cs]==="begin"||this[Bc]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(CB,e.ondone):this.on(CB,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||UNe,this.filter=typeof e.filter=="function"?e.filter:jNe,this.writable=!0,this.readable=!1,this[ka]=new KNe,this[Ar]=null,this[xa]=null,this[Ic]=null,this[cs]="begin",this[TA]="",this[us]=null,this[ad]=null,this[yc]=!1,this[Qn]=null,this[MA]=!1,this[mB]=!1,this[EB]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[vV](e,r){this[Bc]===null&&(this[Bc]=!1);let i;try{i=new MNe(e,r,this[us],this[ad])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(i.nullBlock)this[mB]?(this[EB]=!0,this[cs]==="begin"&&(this[cs]="header"),this[wc]("eof")):(this[mB]=!0,this[wc]("nullBlock"));else if(this[mB]=!1,!i.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:i});else if(!i.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:i});else{let n=i.type;if(/^(Symbolic)?Link$/.test(n)&&!i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:i});else if(!/^(Symbolic)?Link$/.test(n)&&i.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:i});else{let s=this[Ic]=new HNe(i,this[us],this[ad]);if(!this[Bc])if(s.remain){let o=()=>{s.invalid||(this[Bc]=!0)};s.on("end",o)}else this[Bc]=!0;s.meta?s.size>this.maxMetaEntrySize?(s.ignore=!0,this[wc]("ignoredEntry",s),this[cs]="ignore",s.resume()):s.size>0&&(this[TA]="",s.on("data",o=>this[TA]+=o),this[cs]="meta"):(this[us]=null,s.ignore=s.ignore||!this.filter(s.path,s),s.ignore?(this[wc]("ignoredEntry",s),this[cs]=s.remain?"ignore":"header",s.resume()):(s.remain?this[cs]="body":(this[cs]="header",s.end()),this[xa]?this[ka].push(s):(this[ka].push(s),this[JD]())))}}}[wV](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[xa]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",i=>this[JD]()),r=!1)):(this[xa]=null,r=!1),r}[JD](){do;while(this[wV](this[ka].shift()));if(!this[ka].length){let e=this[xa];!e||e.flowing||e.size===e.remain?this[Ad]||this.emit("drain"):e.once("drain",i=>this.emit("drain"))}}[WD](e,r){let i=this[Ic],n=i.blockRemain,s=n>=e.length&&r===0?e:e.slice(r,r+n);return i.write(s),i.blockRemain||(this[cs]="header",this[Ic]=null,i.end()),s.length}[bV](e,r){let i=this[Ic],n=this[WD](e,r);return this[Ic]||this[BV](i),n}[wc](e,r,i){!this[ka].length&&!this[xa]?this.emit(e,r,i):this[ka].push([e,r,i])}[BV](e){switch(this[wc]("meta",this[TA]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[us]=yV.parse(this[TA],this[us],!1);break;case"GlobalExtendedHeader":this[ad]=yV.parse(this[TA],this[ad],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[us]=this[us]||Object.create(null),this[us].path=this[TA].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[us]=this[us]||Object.create(null),this[us].linkpath=this[TA].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[MA]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[MA])return;if(this[Qn]===null&&e){if(this[Ar]&&(e=Buffer.concat([this[Ar],e]),this[Ar]=null),e.lengththis[hB](s)),this[Qn].on("error",s=>this.abort(s)),this[Qn].on("end",s=>{this[yc]=!0,this[hB]()}),this[Ad]=!0;let n=this[Qn][i?"end":"write"](e);return this[Ad]=!1,n}}this[Ad]=!0,this[Qn]?this[Qn].write(e):this[hB](e),this[Ad]=!1;let r=this[ka].length?!1:this[xa]?this[xa].flowing:!0;return!r&&!this[ka].length&&this[xa].once("drain",i=>this.emit("drain")),r}[zD](e){e&&!this[MA]&&(this[Ar]=this[Ar]?Buffer.concat([this[Ar],e]):e)}[VD](){if(this[yc]&&!this[QV]&&!this[MA]&&!this[dB]){this[QV]=!0;let e=this[Ic];if(e&&e.blockRemain){let r=this[Ar]?this[Ar].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[Ar]&&e.write(this[Ar]),e.end()}this[wc](CB)}}[hB](e){if(this[dB])this[zD](e);else if(!e&&!this[Ar])this[VD]();else{if(this[dB]=!0,this[Ar]){this[zD](e);let r=this[Ar];this[Ar]=null,this[pB](r)}else this[pB](e);for(;this[Ar]&&this[Ar].length>=512&&!this[MA]&&!this[EB];){let r=this[Ar];this[Ar]=null,this[pB](r)}this[dB]=!1}(!this[Ar]||this[yc])&&this[VD]()}[pB](e){let r=0,i=e.length;for(;r+512<=i&&!this[MA]&&!this[EB];)switch(this[cs]){case"begin":case"header":this[vV](e,r),r+=512;break;case"ignore":case"body":r+=this[WD](e,r);break;case"meta":r+=this[bV](e,r);break;default:throw new Error("invalid state: "+this[cs])}r{"use strict";var YNe=fg(),xV=ld(),vg=require("fs"),qNe=bg(),kV=require("path"),Tlt=SV.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let i=YNe(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&WNe(i,e),i.noResume||JNe(i),i.file&&i.sync?zNe(i):i.file?VNe(i,r):PV(i)},JNe=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},WNe=(t,e)=>{let r=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=t.filter,n=(s,o)=>{let a=o||kV.parse(s).root||".",l=s===a?!1:r.has(s)?r.get(s):n(kV.dirname(s),a);return r.set(s,l),l};t.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},zNe=t=>{let e=PV(t),r=t.file,i=!0,n;try{let s=vg.statSync(r),o=t.maxReadSize||16*1024*1024;if(s.size{let r=new xV(t),i=t.maxReadSize||16*1024*1024,n=t.file,s=new Promise((o,a)=>{r.on("error",a),r.on("end",o),vg.stat(n,(l,c)=>{if(l)a(l);else{let u=new qNe.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(r)}})});return e?s.then(e,e):s},PV=t=>new xV(t)});var TV=E((Ult,DV)=>{"use strict";var _Ne=fg(),yB=AB(),Olt=require("fs"),RV=bg(),FV=IB(),NV=require("path"),Klt=DV.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let i=_Ne(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return i.file&&i.sync?XNe(i,e):i.file?ZNe(i,e,r):i.sync?$Ne(i,e):eLe(i,e)},XNe=(t,e)=>{let r=new yB.Sync(t),i=new RV.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(i),LV(r,e)},ZNe=(t,e,r)=>{let i=new yB(t),n=new RV.WriteStream(t.file,{mode:t.mode||438});i.pipe(n);let s=new Promise((o,a)=>{n.on("error",a),n.on("close",o),i.on("error",a)});return _D(i,e),r?s.then(r,r):s},LV=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?FV({file:NV.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:i=>t.add(i)}):t.add(r)}),t.end()},_D=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return FV({file:NV.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:i=>t.add(i)}).then(i=>_D(t,e));t.add(r)}t.end()},$Ne=(t,e)=>{let r=new yB.Sync(t);return LV(r,e),r},eLe=(t,e)=>{let r=new yB(t);return _D(r,e),r}});var XD=E((jlt,MV)=>{"use strict";var tLe=fg(),OV=AB(),Hlt=ld(),gs=require("fs"),KV=bg(),UV=IB(),HV=require("path"),GV=Cg(),Glt=MV.exports=(t,e,r)=>{let i=tLe(t);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),i.sync?rLe(i,e):iLe(i,e,r)},rLe=(t,e)=>{let r=new OV.Sync(t),i=!0,n,s;try{try{n=gs.openSync(t.file,"r+")}catch(l){if(l.code==="ENOENT")n=gs.openSync(t.file,"w+");else throw l}let o=gs.fstatSync(n),a=Buffer.alloc(512);e:for(s=0;so.size)break;s+=c,t.mtimeCache&&t.mtimeCache.set(l.path,l.mtime)}i=!1,nLe(t,r,s,n,e)}finally{if(i)try{gs.closeSync(n)}catch(o){}}},nLe=(t,e,r,i,n)=>{let s=new KV.WriteStreamSync(t.file,{fd:i,start:r});e.pipe(s),sLe(e,n)},iLe=(t,e,r)=>{e=Array.from(e);let i=new OV(t),n=(o,a,l)=>{let c=(p,d)=>{p?gs.close(o,m=>l(p)):l(null,d)},u=0;if(a===0)return c(null,0);let g=0,f=Buffer.alloc(512),h=(p,d)=>{if(p)return c(p);if(g+=d,g<512&&d)return gs.read(o,f,g,f.length-g,u+g,h);if(u===0&&f[0]===31&&f[1]===139)return c(new Error("cannot append to compressed archives"));if(g<512)return c(null,u);let m=new GV(f);if(!m.cksumValid)return c(null,u);let I=512*Math.ceil(m.size/512);if(u+I+512>a||(u+=I+512,u>=a))return c(null,u);t.mtimeCache&&t.mtimeCache.set(m.path,m.mtime),g=0,gs.read(o,f,0,512,u,h)};gs.read(o,f,0,512,u,h)},s=new Promise((o,a)=>{i.on("error",a);let l="r+",c=(u,g)=>{if(u&&u.code==="ENOENT"&&l==="r+")return l="w+",gs.open(t.file,l,c);if(u)return a(u);gs.fstat(g,(f,h)=>{if(f)return a(f);n(g,h.size,(p,d)=>{if(p)return a(p);let m=new KV.WriteStream(t.file,{fd:g,start:d});i.pipe(m),m.on("error",a),m.on("close",o),jV(i,e)})})};gs.open(t.file,l,c)});return r?s.then(r,r):s},sLe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?UV({file:HV.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:i=>t.add(i)}):t.add(r)}),t.end()},jV=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return UV({file:HV.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:i=>t.add(i)}).then(i=>jV(t,e));t.add(r)}t.end()}});var qV=E((qlt,YV)=>{"use strict";var oLe=fg(),aLe=XD(),Ylt=YV.exports=(t,e,r)=>{let i=oLe(t);if(!i.file)throw new TypeError("file is required");if(i.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),ALe(i),aLe(i,e,r)},ALe=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,i)=>e(r,i)&&!(t.mtimeCache.get(r)>i.mtime):(r,i)=>!(t.mtimeCache.get(r)>i.mtime)}});var zV=E((Jlt,JV)=>{var{promisify:WV}=require("util"),OA=require("fs"),lLe=t=>{if(!t)t={mode:511,fs:OA};else if(typeof t=="object")t=P({mode:511,fs:OA},t);else if(typeof t=="number")t={mode:t,fs:OA};else if(typeof t=="string")t={mode:parseInt(t,8),fs:OA};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||OA.mkdir,t.mkdirAsync=WV(t.mkdir),t.stat=t.stat||t.fs.stat||OA.stat,t.statAsync=WV(t.stat),t.statSync=t.statSync||t.fs.statSync||OA.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||OA.mkdirSync,t};JV.exports=lLe});var _V=E((Wlt,VV)=>{var cLe=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:uLe,parse:gLe}=require("path"),fLe=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=uLe(t),cLe==="win32"){let e=/[*|"<>?:]/,{root:r}=gLe(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};VV.exports=fLe});var t7=E((zlt,XV)=>{var{dirname:ZV}=require("path"),$V=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(i=>i.isDirectory()?r:void 0,i=>i.code==="ENOENT"?$V(t,ZV(e),e):void 0),e7=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(i){return i.code==="ENOENT"?e7(t,ZV(e),e):void 0}};XV.exports={findMade:$V,findMadeSync:e7}});var eR=E((Vlt,r7)=>{var{dirname:i7}=require("path"),ZD=(t,e,r)=>{e.recursive=!1;let i=i7(t);return i===t?e.mkdirAsync(t,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(t,e).then(()=>r||t,n=>{if(n.code==="ENOENT")return ZD(i,e).then(s=>ZD(t,e,s));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(t).then(s=>{if(s.isDirectory())return r;throw n},()=>{throw n})})},$D=(t,e,r)=>{let i=i7(t);if(e.recursive=!1,i===t)try{return e.mkdirSync(t,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(t,e),r||t}catch(n){if(n.code==="ENOENT")return $D(t,e,$D(i,e,r));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(t).isDirectory())throw n}catch(s){throw n}}};r7.exports={mkdirpManual:ZD,mkdirpManualSync:$D}});var o7=E((_lt,n7)=>{var{dirname:s7}=require("path"),{findMade:hLe,findMadeSync:pLe}=t7(),{mkdirpManual:dLe,mkdirpManualSync:CLe}=eR(),mLe=(t,e)=>(e.recursive=!0,s7(t)===t?e.mkdirAsync(t,e):hLe(e,t).then(i=>e.mkdirAsync(t,e).then(()=>i).catch(n=>{if(n.code==="ENOENT")return dLe(t,e);throw n}))),ELe=(t,e)=>{if(e.recursive=!0,s7(t)===t)return e.mkdirSync(t,e);let i=pLe(e,t);try{return e.mkdirSync(t,e),i}catch(n){if(n.code==="ENOENT")return CLe(t,e);throw n}};n7.exports={mkdirpNative:mLe,mkdirpNativeSync:ELe}});var c7=E((Xlt,a7)=>{var A7=require("fs"),ILe=process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version,tR=ILe.replace(/^v/,"").split("."),l7=+tR[0]>10||+tR[0]==10&&+tR[1]>=12,yLe=l7?t=>t.mkdir===A7.mkdir:()=>!1,wLe=l7?t=>t.mkdirSync===A7.mkdirSync:()=>!1;a7.exports={useNative:yLe,useNativeSync:wLe}});var d7=E((Zlt,u7)=>{var Sg=zV(),xg=_V(),{mkdirpNative:g7,mkdirpNativeSync:f7}=o7(),{mkdirpManual:h7,mkdirpManualSync:p7}=eR(),{useNative:BLe,useNativeSync:QLe}=c7(),kg=(t,e)=>(t=xg(t),e=Sg(e),BLe(e)?g7(t,e):h7(t,e)),bLe=(t,e)=>(t=xg(t),e=Sg(e),QLe(e)?f7(t,e):p7(t,e));kg.sync=bLe;kg.native=(t,e)=>g7(xg(t),Sg(e));kg.manual=(t,e)=>h7(xg(t),Sg(e));kg.nativeSync=(t,e)=>f7(xg(t),Sg(e));kg.manualSync=(t,e)=>p7(xg(t),Sg(e));u7.exports=kg});var B7=E(($lt,C7)=>{"use strict";var fs=require("fs"),Qc=require("path"),vLe=fs.lchown?"lchown":"chown",SLe=fs.lchownSync?"lchownSync":"chownSync",m7=fs.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),E7=(t,e,r)=>{try{return fs[SLe](t,e,r)}catch(i){if(i.code!=="ENOENT")throw i}},xLe=(t,e,r)=>{try{return fs.chownSync(t,e,r)}catch(i){if(i.code!=="ENOENT")throw i}},kLe=m7?(t,e,r,i)=>n=>{!n||n.code!=="EISDIR"?i(n):fs.chown(t,e,r,i)}:(t,e,r,i)=>i,rR=m7?(t,e,r)=>{try{return E7(t,e,r)}catch(i){if(i.code!=="EISDIR")throw i;xLe(t,e,r)}}:(t,e,r)=>E7(t,e,r),PLe=process.version,I7=(t,e,r)=>fs.readdir(t,e,r),DLe=(t,e)=>fs.readdirSync(t,e);/^v4\./.test(PLe)&&(I7=(t,e,r)=>fs.readdir(t,r));var wB=(t,e,r,i)=>{fs[vLe](t,e,r,kLe(t,e,r,n=>{i(n&&n.code!=="ENOENT"?n:null)}))},y7=(t,e,r,i,n)=>{if(typeof e=="string")return fs.lstat(Qc.resolve(t,e),(s,o)=>{if(s)return n(s.code!=="ENOENT"?s:null);o.name=e,y7(t,o,r,i,n)});if(e.isDirectory())iR(Qc.resolve(t,e.name),r,i,s=>{if(s)return n(s);let o=Qc.resolve(t,e.name);wB(o,r,i,n)});else{let s=Qc.resolve(t,e.name);wB(s,r,i,n)}},iR=(t,e,r,i)=>{I7(t,{withFileTypes:!0},(n,s)=>{if(n){if(n.code==="ENOENT")return i();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return i(n)}if(n||!s.length)return wB(t,e,r,i);let o=s.length,a=null,l=c=>{if(!a){if(c)return i(a=c);if(--o==0)return wB(t,e,r,i)}};s.forEach(c=>y7(t,c,e,r,l))})},RLe=(t,e,r,i)=>{if(typeof e=="string")try{let n=fs.lstatSync(Qc.resolve(t,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&w7(Qc.resolve(t,e.name),r,i),rR(Qc.resolve(t,e.name),r,i)},w7=(t,e,r)=>{let i;try{i=DLe(t,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return rR(t,e,r);throw n}return i&&i.length&&i.forEach(n=>RLe(t,n,e,r)),rR(t,e,r)};C7.exports=iR;iR.sync=w7});var S7=E((rct,nR)=>{"use strict";var Q7=d7(),hs=require("fs"),BB=require("path"),b7=B7(),sR=class extends Error{constructor(e,r){super("Cannot extract through symbolic link");this.path=r,this.symlink=e}get name(){return"SylinkError"}},cd=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'");this.path=e,this.code=r}get name(){return"CwdError"}},ect=nR.exports=(t,e,r)=>{let i=e.umask,n=e.mode|448,s=(n&i)!=0,o=e.uid,a=e.gid,l=typeof o=="number"&&typeof a=="number"&&(o!==e.processUid||a!==e.processGid),c=e.preserve,u=e.unlink,g=e.cache,f=e.cwd,h=(m,I)=>{m?r(m):(g.set(t,!0),I&&l?b7(I,o,a,B=>h(B)):s?hs.chmod(t,n,r):r())};if(g&&g.get(t)===!0)return h();if(t===f)return hs.stat(t,(m,I)=>{(m||!I.isDirectory())&&(m=new cd(t,m&&m.code||"ENOTDIR")),h(m)});if(c)return Q7(t,{mode:n}).then(m=>h(null,m),h);let d=BB.relative(f,t).split(/\/|\\/);QB(f,d,n,g,u,f,null,h)},QB=(t,e,r,i,n,s,o,a)=>{if(!e.length)return a(null,o);let l=e.shift(),c=t+"/"+l;if(i.get(c))return QB(c,e,r,i,n,s,o,a);hs.mkdir(c,r,v7(c,e,r,i,n,s,o,a))},v7=(t,e,r,i,n,s,o,a)=>l=>{if(l){if(l.path&&BB.dirname(l.path)===s&&(l.code==="ENOTDIR"||l.code==="ENOENT"))return a(new cd(s,l.code));hs.lstat(t,(c,u)=>{if(c)a(c);else if(u.isDirectory())QB(t,e,r,i,n,s,o,a);else if(n)hs.unlink(t,g=>{if(g)return a(g);hs.mkdir(t,r,v7(t,e,r,i,n,s,o,a))});else{if(u.isSymbolicLink())return a(new sR(t,t+"/"+e.join("/")));a(l)}})}else o=o||t,QB(t,e,r,i,n,s,o,a)},tct=nR.exports.sync=(t,e)=>{let r=e.umask,i=e.mode|448,n=(i&r)!=0,s=e.uid,o=e.gid,a=typeof s=="number"&&typeof o=="number"&&(s!==e.processUid||o!==e.processGid),l=e.preserve,c=e.unlink,u=e.cache,g=e.cwd,f=m=>{u.set(t,!0),m&&a&&b7.sync(m,s,o),n&&hs.chmodSync(t,i)};if(u&&u.get(t)===!0)return f();if(t===g){let m=!1,I="ENOTDIR";try{m=hs.statSync(t).isDirectory()}catch(B){I=B.code}finally{if(!m)throw new cd(t,I)}f();return}if(l)return f(Q7.sync(t,i));let p=BB.relative(g,t).split(/\/|\\/),d=null;for(let m=p.shift(),I=g;m&&(I+="/"+m);m=p.shift())if(!u.get(I))try{hs.mkdirSync(I,i),d=d||I,u.set(I,!0)}catch(B){if(B.path&&BB.dirname(B.path)===g&&(B.code==="ENOTDIR"||B.code==="ENOENT"))return new cd(g,B.code);let b=hs.lstatSync(I);if(b.isDirectory()){u.set(I,!0);continue}else if(c){hs.unlinkSync(I),hs.mkdirSync(I,i),d=d||I,u.set(I,!0);continue}else if(b.isSymbolicLink())return new sR(I,I+"/"+p.join("/"))}return f(d)}});var P7=E((ict,x7)=>{var k7=require("assert");x7.exports=()=>{let t=new Map,e=new Map,{join:r}=require("path"),i=u=>r(u).split(/[\\\/]/).slice(0,-1).reduce((g,f)=>g.length?g.concat(r(g[g.length-1],f)):[f],[]),n=new Set,s=u=>{let g=e.get(u);if(!g)throw new Error("function does not have any path reservations");return{paths:g.paths.map(f=>t.get(f)),dirs:[...g.dirs].map(f=>t.get(f))}},o=u=>{let{paths:g,dirs:f}=s(u);return g.every(h=>h[0]===u)&&f.every(h=>h[0]instanceof Set&&h[0].has(u))},a=u=>n.has(u)||!o(u)?!1:(n.add(u),u(()=>l(u)),!0),l=u=>{if(!n.has(u))return!1;let{paths:g,dirs:f}=e.get(u),h=new Set;return g.forEach(p=>{let d=t.get(p);k7.equal(d[0],u),d.length===1?t.delete(p):(d.shift(),typeof d[0]=="function"?h.add(d[0]):d[0].forEach(m=>h.add(m)))}),f.forEach(p=>{let d=t.get(p);k7(d[0]instanceof Set),d[0].size===1&&d.length===1?t.delete(p):d[0].size===1?(d.shift(),h.add(d[0])):d[0].delete(u)}),n.delete(u),h.forEach(p=>a(p)),!0};return{check:o,reserve:(u,g)=>{let f=new Set(u.map(h=>i(h)).reduce((h,p)=>h.concat(p)));return e.set(g,{dirs:f,paths:u}),u.forEach(h=>{let p=t.get(h);p?p.push(g):t.set(h,[g])}),f.forEach(h=>{let p=t.get(h);p?p[p.length-1]instanceof Set?p[p.length-1].add(g):p.push(new Set([g])):t.set(h,[new Set([g])])}),a(g)}}}});var F7=E((nct,D7)=>{var FLe=process.env.__FAKE_PLATFORM__||process.platform,NLe=FLe==="win32",LLe=global.__FAKE_TESTING_FS__||require("fs"),{O_CREAT:TLe,O_TRUNC:MLe,O_WRONLY:OLe,UV_FS_O_FILEMAP:R7=0}=LLe.constants,KLe=NLe&&!!R7,ULe=512*1024,HLe=R7|MLe|TLe|OLe;D7.exports=KLe?t=>t"w"});var hR=E((Act,N7)=>{"use strict";var GLe=require("assert"),sct=require("events").EventEmitter,jLe=ld(),Ut=require("fs"),YLe=bg(),Pa=require("path"),oR=S7(),oct=oR.sync,L7=yD(),qLe=P7(),T7=Symbol("onEntry"),aR=Symbol("checkFs"),M7=Symbol("checkFs2"),AR=Symbol("isReusable"),Da=Symbol("makeFs"),lR=Symbol("file"),cR=Symbol("directory"),bB=Symbol("link"),O7=Symbol("symlink"),K7=Symbol("hardlink"),U7=Symbol("unsupported"),act=Symbol("unknown"),H7=Symbol("checkPath"),Pg=Symbol("mkdir"),nn=Symbol("onError"),vB=Symbol("pending"),G7=Symbol("pend"),Dg=Symbol("unpend"),uR=Symbol("ended"),gR=Symbol("maybeClose"),fR=Symbol("skip"),ud=Symbol("doChown"),gd=Symbol("uid"),fd=Symbol("gid"),j7=require("crypto"),Y7=F7(),SB=()=>{throw new Error("sync function called cb somehow?!?")},JLe=(t,e)=>{if(process.platform!=="win32")return Ut.unlink(t,e);let r=t+".DELETE."+j7.randomBytes(16).toString("hex");Ut.rename(t,r,i=>{if(i)return e(i);Ut.unlink(r,e)})},WLe=t=>{if(process.platform!=="win32")return Ut.unlinkSync(t);let e=t+".DELETE."+j7.randomBytes(16).toString("hex");Ut.renameSync(t,e),Ut.unlinkSync(e)},q7=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,xB=class extends jLe{constructor(e){if(e||(e={}),e.ondone=r=>{this[uR]=!0,this[gR]()},super(e),this.reservations=qLe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[vB]=0,this[uR]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||process.platform==="win32",this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=Pa.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[T7](r))}warn(e,r,i={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(i.recoverable=!1),super.warn(e,r,i)}[gR](){this[uR]&&this[vB]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[H7](e){if(this.strip){let r=e.path.split(/\/|\\/);if(r.length=this.strip&&(e.linkpath=i.slice(this.strip).join("/"))}}if(!this.preservePaths){let r=e.path;if(r.match(/(^|\/|\\)\.\.(\\|\/|$)/))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;if(Pa.win32.isAbsolute(r)){let i=Pa.win32.parse(r);e.path=r.substr(i.root.length);let n=i.root;this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:r})}}if(this.win32){let r=Pa.win32.parse(e.path);e.path=r.root===""?L7.encode(e.path):r.root+L7.encode(e.path.substr(r.root.length))}return Pa.isAbsolute(e.path)?e.absolute=e.path:e.absolute=Pa.resolve(this.cwd,e.path),!0}[T7](e){if(!this[H7](e))return e.resume();switch(GLe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[aR](e);case"CharacterDevice":case"BlockDevice":case"FIFO":return this[U7](e)}}[nn](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[Dg](),r.resume())}[Pg](e,r,i){oR(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r},i)}[ud](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[gd](e){return q7(this.uid,e.uid,this.processUid)}[fd](e){return q7(this.gid,e.gid,this.processGid)}[lR](e,r){let i=e.mode&4095||this.fmode,n=new YLe.WriteStream(e.absolute,{flags:Y7(e.size),mode:i,autoClose:!1});n.on("error",l=>this[nn](l,e));let s=1,o=l=>{if(l)return this[nn](l,e);--s==0&&Ut.close(n.fd,c=>{r(),c?this[nn](c,e):this[Dg]()})};n.on("finish",l=>{let c=e.absolute,u=n.fd;if(e.mtime&&!this.noMtime){s++;let g=e.atime||new Date,f=e.mtime;Ut.futimes(u,g,f,h=>h?Ut.utimes(c,g,f,p=>o(p&&h)):o())}if(this[ud](e)){s++;let g=this[gd](e),f=this[fd](e);Ut.fchown(u,g,f,h=>h?Ut.chown(c,g,f,p=>o(p&&h)):o())}o()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[nn](l,e)),e.pipe(a)),a.pipe(n)}[cR](e,r){let i=e.mode&4095||this.dmode;this[Pg](e.absolute,i,n=>{if(n)return r(),this[nn](n,e);let s=1,o=a=>{--s==0&&(r(),this[Dg](),e.resume())};e.mtime&&!this.noMtime&&(s++,Ut.utimes(e.absolute,e.atime||new Date,e.mtime,o)),this[ud](e)&&(s++,Ut.chown(e.absolute,this[gd](e),this[fd](e),o)),o()})}[U7](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[O7](e,r){this[bB](e,e.linkpath,"symlink",r)}[K7](e,r){this[bB](e,Pa.resolve(this.cwd,e.linkpath),"link",r)}[G7](){this[vB]++}[Dg](){this[vB]--,this[gR]()}[fR](e){this[Dg](),e.resume()}[AR](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&process.platform!=="win32"}[aR](e){this[G7]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,i=>this[M7](e,i))}[M7](e,r){this[Pg](Pa.dirname(e.absolute),this.dmode,i=>{if(i)return r(),this[nn](i,e);Ut.lstat(e.absolute,(n,s)=>{s&&(this.keep||this.newer&&s.mtime>e.mtime)?(this[fR](e),r()):n||this[AR](e,s)?this[Da](null,e,r):s.isDirectory()?e.type==="Directory"?!e.mode||(s.mode&4095)===e.mode?this[Da](null,e,r):Ut.chmod(e.absolute,e.mode,o=>this[Da](o,e,r)):Ut.rmdir(e.absolute,o=>this[Da](o,e,r)):JLe(e.absolute,o=>this[Da](o,e,r))})})}[Da](e,r,i){if(e)return this[nn](e,r);switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[lR](r,i);case"Link":return this[K7](r,i);case"SymbolicLink":return this[O7](r,i);case"Directory":case"GNUDumpDir":return this[cR](r,i)}}[bB](e,r,i,n){Ut[i](r,e.absolute,s=>{if(s)return this[nn](s,e);n(),this[Dg](),e.resume()})}},J7=class extends xB{constructor(e){super(e)}[aR](e){let r=this[Pg](Pa.dirname(e.absolute),this.dmode,SB);if(r)return this[nn](r,e);try{let i=Ut.lstatSync(e.absolute);if(this.keep||this.newer&&i.mtime>e.mtime)return this[fR](e);if(this[AR](e,i))return this[Da](null,e,SB);try{return i.isDirectory()?e.type==="Directory"?e.mode&&(i.mode&4095)!==e.mode&&Ut.chmodSync(e.absolute,e.mode):Ut.rmdirSync(e.absolute):WLe(e.absolute),this[Da](null,e,SB)}catch(n){return this[nn](n,e)}}catch(i){return this[Da](null,e,SB)}}[lR](e,r){let i=e.mode&4095||this.fmode,n=l=>{let c;try{Ut.closeSync(o)}catch(u){c=u}(l||c)&&this[nn](l||c,e)},s,o;try{o=Ut.openSync(e.absolute,Y7(e.size),i)}catch(l){return n(l)}let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[nn](l,e)),e.pipe(a)),a.on("data",l=>{try{Ut.writeSync(o,l,0,l.length)}catch(c){n(c)}}),a.on("end",l=>{let c=null;if(e.mtime&&!this.noMtime){let u=e.atime||new Date,g=e.mtime;try{Ut.futimesSync(o,u,g)}catch(f){try{Ut.utimesSync(e.absolute,u,g)}catch(h){c=f}}}if(this[ud](e)){let u=this[gd](e),g=this[fd](e);try{Ut.fchownSync(o,u,g)}catch(f){try{Ut.chownSync(e.absolute,u,g)}catch(h){c=c||f}}}n(c)})}[cR](e,r){let i=e.mode&4095||this.dmode,n=this[Pg](e.absolute,i);if(n)return this[nn](n,e);if(e.mtime&&!this.noMtime)try{Ut.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch(s){}if(this[ud](e))try{Ut.chownSync(e.absolute,this[gd](e),this[fd](e))}catch(s){}e.resume()}[Pg](e,r){try{return oR.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(i){return i}}[bB](e,r,i,n){try{Ut[i+"Sync"](r,e.absolute),e.resume()}catch(s){return this[nn](s,e)}}};xB.Sync=J7;N7.exports=xB});var X7=E((cct,W7)=>{"use strict";var zLe=fg(),kB=hR(),z7=require("fs"),V7=bg(),_7=require("path"),lct=W7.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let i=zLe(t);if(i.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!i.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&VLe(i,e),i.file&&i.sync?_Le(i):i.file?XLe(i,r):i.sync?ZLe(i):$Le(i)},VLe=(t,e)=>{let r=new Map(e.map(s=>[s.replace(/\/+$/,""),!0])),i=t.filter,n=(s,o)=>{let a=o||_7.parse(s).root||".",l=s===a?!1:r.has(s)?r.get(s):n(_7.dirname(s),a);return r.set(s,l),l};t.filter=i?(s,o)=>i(s,o)&&n(s.replace(/\/+$/,"")):s=>n(s.replace(/\/+$/,""))},_Le=t=>{let e=new kB.Sync(t),r=t.file,i=!0,n,s=z7.statSync(r),o=t.maxReadSize||16*1024*1024;new V7.ReadStreamSync(r,{readSize:o,size:s.size}).pipe(e)},XLe=(t,e)=>{let r=new kB(t),i=t.maxReadSize||16*1024*1024,n=t.file,s=new Promise((o,a)=>{r.on("error",a),r.on("close",o),z7.stat(n,(l,c)=>{if(l)a(l);else{let u=new V7.ReadStream(n,{readSize:i,size:c.size});u.on("error",a),u.pipe(r)}})});return e?s.then(e,e):s},ZLe=t=>new kB.Sync(t),$Le=t=>new kB(t)});var Z7=E($r=>{"use strict";$r.c=$r.create=TV();$r.r=$r.replace=XD();$r.t=$r.list=IB();$r.u=$r.update=qV();$r.x=$r.extract=X7();$r.Pack=AB();$r.Unpack=hR();$r.Parse=ld();$r.ReadEntry=id();$r.WriteEntry=xD();$r.Header=Cg();$r.Pax=zw();$r.types=rd()});var e_=E((gct,pR)=>{"use strict";var eTe=Object.prototype.hasOwnProperty,sn="~";function hd(){}Object.create&&(hd.prototype=Object.create(null),new hd().__proto__||(sn=!1));function tTe(t,e,r){this.fn=t,this.context=e,this.once=r||!1}function $7(t,e,r,i,n){if(typeof r!="function")throw new TypeError("The listener must be a function");var s=new tTe(r,i||t,n),o=sn?sn+e:e;return t._events[o]?t._events[o].fn?t._events[o]=[t._events[o],s]:t._events[o].push(s):(t._events[o]=s,t._eventsCount++),t}function PB(t,e){--t._eventsCount==0?t._events=new hd:delete t._events[e]}function Ti(){this._events=new hd,this._eventsCount=0}Ti.prototype.eventNames=function(){var e=[],r,i;if(this._eventsCount===0)return e;for(i in r=this._events)eTe.call(r,i)&&e.push(sn?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(r)):e};Ti.prototype.listeners=function(e){var r=sn?sn+e:e,i=this._events[r];if(!i)return[];if(i.fn)return[i.fn];for(var n=0,s=i.length,o=new Array(s);n{"use strict";t_.exports=(t,e)=>(e=e||(()=>{}),t.then(r=>new Promise(i=>{i(e())}).then(()=>r),r=>new Promise(i=>{i(e())}).then(()=>{throw r})))});var n_=E((hct,DB)=>{"use strict";var rTe=r_(),dR=class extends Error{constructor(e){super(e);this.name="TimeoutError"}},i_=(t,e,r)=>new Promise((i,n)=>{if(typeof e!="number"||e<0)throw new TypeError("Expected `milliseconds` to be a positive number");if(e===Infinity){i(t);return}let s=setTimeout(()=>{if(typeof r=="function"){try{i(r())}catch(l){n(l)}return}let o=typeof r=="string"?r:`Promise timed out after ${e} milliseconds`,a=r instanceof Error?r:new dR(o);typeof t.cancel=="function"&&t.cancel(),n(a)},e);rTe(t.then(i,n),()=>{clearTimeout(s)})});DB.exports=i_;DB.exports.default=i_;DB.exports.TimeoutError=dR});var s_=E(CR=>{"use strict";Object.defineProperty(CR,"__esModule",{value:!0});function iTe(t,e,r){let i=0,n=t.length;for(;n>0;){let s=n/2|0,o=i+s;r(t[o],e)<=0?(i=++o,n-=s+1):n=s}return i}CR.default=iTe});var a_=E(mR=>{"use strict";Object.defineProperty(mR,"__esModule",{value:!0});var nTe=s_(),o_=class{constructor(){this._queue=[]}enqueue(e,r){r=Object.assign({priority:0},r);let i={priority:r.priority,run:e};if(this.size&&this._queue[this.size-1].priority>=r.priority){this._queue.push(i);return}let n=nTe.default(this._queue,i,(s,o)=>o.priority-s.priority);this._queue.splice(n,0,i)}dequeue(){let e=this._queue.shift();return e==null?void 0:e.run}filter(e){return this._queue.filter(r=>r.priority===e.priority).map(r=>r.run)}get size(){return this._queue.length}};mR.default=o_});var c_=E(ER=>{"use strict";Object.defineProperty(ER,"__esModule",{value:!0});var sTe=e_(),A_=n_(),oTe=a_(),RB=()=>{},aTe=new A_.TimeoutError,l_=class extends sTe{constructor(e){var r,i,n,s;super();if(this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=RB,this._resolveIdle=RB,e=Object.assign({carryoverConcurrencyCount:!1,intervalCap:Infinity,interval:0,concurrency:Infinity,autoStart:!0,queueClass:oTe.default},e),!(typeof e.intervalCap=="number"&&e.intervalCap>=1))throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(i=(r=e.intervalCap)===null||r===void 0?void 0:r.toString())!==null&&i!==void 0?i:""}\` (${typeof e.intervalCap})`);if(e.interval===void 0||!(Number.isFinite(e.interval)&&e.interval>=0))throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(n=e.interval)===null||n===void 0?void 0:n.toString())!==null&&s!==void 0?s:""}\` (${typeof e.interval})`);this._carryoverConcurrencyCount=e.carryoverConcurrencyCount,this._isIntervalIgnored=e.intervalCap===Infinity||e.interval===0,this._intervalCap=e.intervalCap,this._interval=e.interval,this._queue=new e.queueClass,this._queueClass=e.queueClass,this.concurrency=e.concurrency,this._timeout=e.timeout,this._throwOnTimeout=e.throwOnTimeout===!0,this._isPaused=e.autoStart===!1}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount{this._onResumeInterval()},r)),!0}return!1}_tryToStartAnother(){if(this._queue.size===0)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let r=this._queue.dequeue();return r?(this.emit("active"),r(),e&&this._initializeIntervalIfNeeded(),!0):!1}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||this._intervalId!==void 0||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){this._intervalCount===0&&this._pendingCount===0&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(e){if(!(typeof e=="number"&&e>=1))throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this._concurrency=e,this._processQueue()}async add(e,r={}){return new Promise((i,n)=>{let s=async()=>{this._pendingCount++,this._intervalCount++;try{let o=this._timeout===void 0&&r.timeout===void 0?e():A_.default(Promise.resolve(e()),r.timeout===void 0?this._timeout:r.timeout,()=>{(r.throwOnTimeout===void 0?this._throwOnTimeout:r.throwOnTimeout)&&n(aTe)});i(await o)}catch(o){n(o)}this._next()};this._queue.enqueue(s,r),this._tryToStartAnother(),this.emit("add")})}async addAll(e,r){return Promise.all(e.map(async i=>this.add(i,r)))}start(){return this._isPaused?(this._isPaused=!1,this._processQueue(),this):this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(this._queue.size!==0)return new Promise(e=>{let r=this._resolveEmpty;this._resolveEmpty=()=>{r(),e()}})}async onIdle(){if(!(this._pendingCount===0&&this._queue.size===0))return new Promise(e=>{let r=this._resolveIdle;this._resolveIdle=()=>{r(),e()}})}get size(){return this._queue.size}sizeBy(e){return this._queue.filter(e).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(e){this._timeout=e}};ER.default=l_});var p_=E((Ect,h_)=>{var yR;h_.exports.getContent=()=>(typeof yR=="undefined"&&(yR=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),yR)});var y_=E((wR,I_)=>{(function(t,e){typeof wR=="object"?I_.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(wR,function(){function t(n,s){var o=s?"\u2514":"\u251C";return n?o+="\u2500 ":o+="\u2500\u2500\u2510",o}function e(n,s){var o=[];for(var a in n)!n.hasOwnProperty(a)||s&&typeof n[a]=="function"||o.push(a);return o}function r(n,s,o,a,l,c,u){var g="",f=0,h,p,d=a.slice(0);if(d.push([s,o])&&a.length>0&&(a.forEach(function(I,B){B>0&&(g+=(I[1]?" ":"\u2502")+" "),!p&&I[0]===s&&(p=!0)}),g+=t(n,o)+n,l&&(typeof s!="object"||s instanceof Date)&&(g+=": "+s),p&&(g+=" (circular ref.)"),u(g)),!p&&typeof s=="object"){var m=e(s,c);m.forEach(function(I){h=++f===m.length,r(I,s[I],h,d,l,c,u)})}}var i={};return i.asLines=function(n,s,o,a){var l=typeof o!="function"?o:!1;r(".",n,!1,[],s,l,a||o)},i.asTree=function(n,s,o){var a="";return r(".",n,!1,[],s,o,function(l){a+=l+` -`}),a},i})});var x_=E((Uct,bR)=>{"use strict";var pTe=t=>{let e=!1,r=!1,i=!1;for(let n=0;n{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(t)?t=t.map(n=>n.trim()).filter(n=>n.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=pTe(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),r(t))};bR.exports=S_;bR.exports.default=S_});var Na=E(TR=>{"use strict";Object.defineProperty(TR,"__esModule",{value:!0});TR.default=L_;function L_(){}L_.prototype={diff:function(e,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=i.callback;typeof i=="function"&&(n=i,i={}),this.options=i;var s=this;function o(d){return n?(setTimeout(function(){n(void 0,d)},0),!0):d}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var a=r.length,l=e.length,c=1,u=a+l,g=[{newPos:-1,components:[]}],f=this.extractCommon(g[0],r,e,0);if(g[0].newPos+1>=a&&f+1>=l)return o([{value:this.join(r),count:r.length}]);function h(){for(var d=-1*c;d<=c;d+=2){var m=void 0,I=g[d-1],B=g[d+1],b=(B?B.newPos:0)-d;I&&(g[d-1]=void 0);var R=I&&I.newPos+1=a&&b+1>=l)return o(yTe(s,m.components,r,e,s.useLongestToken));g[d]=m}c++}if(n)(function d(){setTimeout(function(){if(c>u)return n();h()||d()},0)})();else for(;c<=u;){var p=h();if(p)return p}},pushComponent:function(e,r,i){var n=e[e.length-1];n&&n.added===r&&n.removed===i?e[e.length-1]={count:n.count+1,added:r,removed:i}:e.push({count:1,added:r,removed:i})},extractCommon:function(e,r,i,n){for(var s=r.length,o=i.length,a=e.newPos,l=a-n,c=0;a+1h.length?d:h}),c.value=t.join(u)}else c.value=t.join(r.slice(a,a+c.count));a+=c.count,c.added||(l+=c.count)}}var f=e[o-1];return o>1&&typeof f.value=="string"&&(f.added||f.removed)&&t.equals("",f.value)&&(e[o-2].value+=f.value,e.pop()),e}function wTe(t){return{newPos:t.newPos,components:t.components.slice(0)}}});var M_=E(Cd=>{"use strict";Object.defineProperty(Cd,"__esModule",{value:!0});Cd.diffChars=BTe;Cd.characterDiff=void 0;var bTe=QTe(Na());function QTe(t){return t&&t.__esModule?t:{default:t}}var T_=new bTe.default;Cd.characterDiff=T_;function BTe(t,e,r){return T_.diff(t,e,r)}});var OR=E(MR=>{"use strict";Object.defineProperty(MR,"__esModule",{value:!0});MR.generateOptions=vTe;function vTe(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}});var U_=E(Ng=>{"use strict";Object.defineProperty(Ng,"__esModule",{value:!0});Ng.diffWords=STe;Ng.diffWordsWithSpace=xTe;Ng.wordDiff=void 0;var PTe=kTe(Na()),DTe=OR();function kTe(t){return t&&t.__esModule?t:{default:t}}var O_=/^[A-Za-z\xC0-\u02C6\u02C8-\u02D7\u02DE-\u02FF\u1E00-\u1EFF]+$/,K_=/\S/,md=new PTe.default;Ng.wordDiff=md;md.equals=function(t,e){return this.options.ignoreCase&&(t=t.toLowerCase(),e=e.toLowerCase()),t===e||this.options.ignoreWhitespace&&!K_.test(t)&&!K_.test(e)};md.tokenize=function(t){for(var e=t.split(/(\s+|[()[\]{}'"]|\b)/),r=0;r{"use strict";Object.defineProperty(Lg,"__esModule",{value:!0});Lg.diffLines=RTe;Lg.diffTrimmedLines=FTe;Lg.lineDiff=void 0;var LTe=NTe(Na()),TTe=OR();function NTe(t){return t&&t.__esModule?t:{default:t}}var OB=new LTe.default;Lg.lineDiff=OB;OB.tokenize=function(t){var e=[],r=t.split(/(\n|\r\n)/);r[r.length-1]||r.pop();for(var i=0;i{"use strict";Object.defineProperty(Ed,"__esModule",{value:!0});Ed.diffSentences=MTe;Ed.sentenceDiff=void 0;var KTe=OTe(Na());function OTe(t){return t&&t.__esModule?t:{default:t}}var KR=new KTe.default;Ed.sentenceDiff=KR;KR.tokenize=function(t){return t.split(/(\S.+?[.!?])(?=\s+|$)/)};function MTe(t,e,r){return KR.diff(t,e,r)}});var G_=E(Id=>{"use strict";Object.defineProperty(Id,"__esModule",{value:!0});Id.diffCss=UTe;Id.cssDiff=void 0;var GTe=HTe(Na());function HTe(t){return t&&t.__esModule?t:{default:t}}var UR=new GTe.default;Id.cssDiff=UR;UR.tokenize=function(t){return t.split(/([{}:;,]|\s+)/)};function UTe(t,e,r){return UR.diff(t,e,r)}});var Y_=E(Tg=>{"use strict";Object.defineProperty(Tg,"__esModule",{value:!0});Tg.diffJson=jTe;Tg.canonicalize=UB;Tg.jsonDiff=void 0;var j_=YTe(Na()),qTe=KB();function YTe(t){return t&&t.__esModule?t:{default:t}}function HB(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?HB=function(r){return typeof r}:HB=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},HB(t)}var JTe=Object.prototype.toString,bc=new j_.default;Tg.jsonDiff=bc;bc.useLongestToken=!0;bc.tokenize=qTe.lineDiff.tokenize;bc.castInput=function(t){var e=this.options,r=e.undefinedReplacement,i=e.stringifyReplacer,n=i===void 0?function(s,o){return typeof o=="undefined"?r:o}:i;return typeof t=="string"?t:JSON.stringify(UB(t,null,null,n),n," ")};bc.equals=function(t,e){return j_.default.prototype.equals.call(bc,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};function jTe(t,e,r){return bc.diff(t,e,r)}function UB(t,e,r,i,n){e=e||[],r=r||[],i&&(t=i(n,t));var s;for(s=0;s{"use strict";Object.defineProperty(yd,"__esModule",{value:!0});yd.diffArrays=WTe;yd.arrayDiff=void 0;var VTe=zTe(Na());function zTe(t){return t&&t.__esModule?t:{default:t}}var wd=new VTe.default;yd.arrayDiff=wd;wd.tokenize=function(t){return t.slice()};wd.join=wd.removeEmpty=function(t){return t};function WTe(t,e,r){return wd.diff(t,e,r)}});var GB=E(HR=>{"use strict";Object.defineProperty(HR,"__esModule",{value:!0});HR.parsePatch=_Te;function _Te(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=t.split(/\r\n|[\n\v\f\r\x85]/),i=t.match(/\r\n|[\n\v\f\r\x85]/g)||[],n=[],s=0;function o(){var c={};for(n.push(c);s{"use strict";Object.defineProperty(GR,"__esModule",{value:!0});GR.default=XTe;function XTe(t,e,r){var i=!0,n=!1,s=!1,o=1;return function a(){if(i&&!s){if(n?o++:i=!1,t+o<=r)return o;s=!0}if(!n)return s||(i=!0),e<=t-o?-o++:(n=!0,a())}}});var V_=E(jB=>{"use strict";Object.defineProperty(jB,"__esModule",{value:!0});jB.applyPatch=W_;jB.applyPatches=ZTe;var z_=GB(),eMe=$Te(J_());function $Te(t){return t&&t.__esModule?t:{default:t}}function W_(t,e){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof e=="string"&&(e=(0,z_.parsePatch)(e)),Array.isArray(e)){if(e.length>1)throw new Error("applyPatch only works with a single input.");e=e[0]}var i=t.split(/\r\n|[\n\v\f\r\x85]/),n=t.match(/\r\n|[\n\v\f\r\x85]/g)||[],s=e.hunks,o=r.compareLine||function(F,D,he,pe){return D===pe},a=0,l=r.fuzzFactor||0,c=0,u=0,g,f;function h(F,D){for(var he=0;he0?pe[0]:" ",Pe=pe.length>0?pe.substr(1):pe;if(Ne===" "||Ne==="-"){if(!o(D+1,i[D],Ne,Pe)&&(a++,a>l))return!1;D++}}return!0}for(var p=0;p0?ne[0]:" ",A=ne.length>0?ne.substr(1):ne,V=L.linedelimiters[J];if(q===" ")K++;else if(q==="-")i.splice(K,1),n.splice(K,1);else if(q==="+")i.splice(K,0,A),n.splice(K,0,V),K++;else if(q==="\\"){var W=L.lines[J-1]?L.lines[J-1][0]:null;W==="+"?g=!0:W==="-"&&(f=!0)}}}if(g)for(;!i[i.length-1];)i.pop(),n.pop();else f&&(i.push(""),n.push(` -`));for(var X=0;X{"use strict";Object.defineProperty(Bd,"__esModule",{value:!0});Bd.structuredPatch=__;Bd.createTwoFilesPatch=X_;Bd.createPatch=tMe;var rMe=KB();function jR(t){return sMe(t)||nMe(t)||iMe()}function iMe(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function nMe(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function sMe(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e0?l(L.lines.slice(-o.context)):[],u-=f.length,g-=f.length)}(H=f).push.apply(H,jR(R.map(function(X){return(b.added?"+":"-")+X}))),b.added?p+=R.length:h+=R.length}else{if(u)if(R.length<=o.context*2&&B=a.length-2&&R.length<=o.context){var A=/\n$/.test(r),V=/\n$/.test(i),W=R.length==0&&f.length>q.oldLines;!A&&W&&f.splice(q.oldLines,0,"\\ No newline at end of file"),(!A&&!W||!V)&&f.push("\\ No newline at end of file")}c.push(q),u=0,g=0,f=[]}h+=R.length,p+=R.length}},m=0;m{"use strict";Object.defineProperty(YB,"__esModule",{value:!0});YB.arrayEqual=oMe;YB.arrayStartsWith=Z_;function oMe(t,e){return t.length!==e.length?!1:Z_(t,e)}function Z_(t,e){if(e.length>t.length)return!1;for(var r=0;r{"use strict";Object.defineProperty(qB,"__esModule",{value:!0});qB.calcLineCount=eX;qB.merge=aMe;var AMe=YR(),lMe=GB(),qR=$_();function Mg(t){return gMe(t)||uMe(t)||cMe()}function cMe(){throw new TypeError("Invalid attempt to spread non-iterable instance")}function uMe(t){if(Symbol.iterator in Object(t)||Object.prototype.toString.call(t)==="[object Arguments]")return Array.from(t)}function gMe(t){if(Array.isArray(t)){for(var e=0,r=new Array(t.length);e{"use strict";Object.defineProperty(zR,"__esModule",{value:!0});zR.convertChangesToDMP=dMe;function dMe(t){for(var e=[],r,i,n=0;n{"use strict";Object.defineProperty(VR,"__esModule",{value:!0});VR.convertChangesToXML=CMe;function CMe(t){for(var e=[],r=0;r"):i.removed&&e.push(""),e.push(mMe(i.value)),i.added?e.push(""):i.removed&&e.push("")}return e.join("")}function mMe(t){var e=t;return e=e.replace(/&/g,"&"),e=e.replace(//g,">"),e=e.replace(/"/g,"""),e}});var CX=E(br=>{"use strict";Object.defineProperty(br,"__esModule",{value:!0});Object.defineProperty(br,"Diff",{enumerable:!0,get:function(){return EMe.default}});Object.defineProperty(br,"diffChars",{enumerable:!0,get:function(){return IMe.diffChars}});Object.defineProperty(br,"diffWords",{enumerable:!0,get:function(){return fX.diffWords}});Object.defineProperty(br,"diffWordsWithSpace",{enumerable:!0,get:function(){return fX.diffWordsWithSpace}});Object.defineProperty(br,"diffLines",{enumerable:!0,get:function(){return hX.diffLines}});Object.defineProperty(br,"diffTrimmedLines",{enumerable:!0,get:function(){return hX.diffTrimmedLines}});Object.defineProperty(br,"diffSentences",{enumerable:!0,get:function(){return yMe.diffSentences}});Object.defineProperty(br,"diffCss",{enumerable:!0,get:function(){return wMe.diffCss}});Object.defineProperty(br,"diffJson",{enumerable:!0,get:function(){return pX.diffJson}});Object.defineProperty(br,"canonicalize",{enumerable:!0,get:function(){return pX.canonicalize}});Object.defineProperty(br,"diffArrays",{enumerable:!0,get:function(){return BMe.diffArrays}});Object.defineProperty(br,"applyPatch",{enumerable:!0,get:function(){return dX.applyPatch}});Object.defineProperty(br,"applyPatches",{enumerable:!0,get:function(){return dX.applyPatches}});Object.defineProperty(br,"parsePatch",{enumerable:!0,get:function(){return QMe.parsePatch}});Object.defineProperty(br,"merge",{enumerable:!0,get:function(){return bMe.merge}});Object.defineProperty(br,"structuredPatch",{enumerable:!0,get:function(){return _R.structuredPatch}});Object.defineProperty(br,"createTwoFilesPatch",{enumerable:!0,get:function(){return _R.createTwoFilesPatch}});Object.defineProperty(br,"createPatch",{enumerable:!0,get:function(){return _R.createPatch}});Object.defineProperty(br,"convertChangesToDMP",{enumerable:!0,get:function(){return vMe.convertChangesToDMP}});Object.defineProperty(br,"convertChangesToXML",{enumerable:!0,get:function(){return SMe.convertChangesToXML}});var EMe=xMe(Na()),IMe=M_(),fX=U_(),hX=KB(),yMe=H_(),wMe=G_(),pX=Y_(),BMe=q_(),dX=V_(),QMe=GB(),bMe=cX(),_R=YR(),vMe=uX(),SMe=gX();function xMe(t){return t&&t.__esModule?t:{default:t}}});var WB=E((agt,mX)=>{var kMe=As(),PMe=Nw(),DMe=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,RMe=/^\w*$/;function FMe(t,e){if(kMe(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||PMe(t)?!0:RMe.test(t)||!DMe.test(t)||e!=null&&t in Object(e)}mX.exports=FMe});var Gs=E((Agt,EX)=>{function NMe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}EX.exports=NMe});var zB=E((lgt,IX)=>{var LMe=Ac(),TMe=Gs(),MMe="[object AsyncFunction]",OMe="[object Function]",KMe="[object GeneratorFunction]",UMe="[object Proxy]";function HMe(t){if(!TMe(t))return!1;var e=LMe(t);return e==OMe||e==KMe||e==MMe||e==UMe}IX.exports=HMe});var wX=E((cgt,yX)=>{var GMe=Ks(),jMe=GMe["__core-js_shared__"];yX.exports=jMe});var bX=E((ugt,BX)=>{var XR=wX(),QX=function(){var t=/[^.]+$/.exec(XR&&XR.keys&&XR.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function YMe(t){return!!QX&&QX in t}BX.exports=YMe});var ZR=E((ggt,vX)=>{var qMe=Function.prototype,JMe=qMe.toString;function WMe(t){if(t!=null){try{return JMe.call(t)}catch(e){}try{return t+""}catch(e){}}return""}vX.exports=WMe});var xX=E((fgt,SX)=>{var zMe=zB(),VMe=bX(),_Me=Gs(),XMe=ZR(),ZMe=/[\\^$.*+?()[\]{}|]/g,$Me=/^\[object .+?Constructor\]$/,eOe=Function.prototype,tOe=Object.prototype,rOe=eOe.toString,iOe=tOe.hasOwnProperty,nOe=RegExp("^"+rOe.call(iOe).replace(ZMe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function sOe(t){if(!_Me(t)||VMe(t))return!1;var e=zMe(t)?nOe:$Me;return e.test(XMe(t))}SX.exports=sOe});var PX=E((hgt,kX)=>{function oOe(t,e){return t==null?void 0:t[e]}kX.exports=oOe});var UA=E((pgt,DX)=>{var aOe=xX(),AOe=PX();function lOe(t,e){var r=AOe(t,e);return aOe(r)?r:void 0}DX.exports=lOe});var Qd=E((dgt,RX)=>{var cOe=UA(),uOe=cOe(Object,"create");RX.exports=uOe});var LX=E((Cgt,FX)=>{var NX=Qd();function gOe(){this.__data__=NX?NX(null):{},this.size=0}FX.exports=gOe});var MX=E((mgt,TX)=>{function fOe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}TX.exports=fOe});var KX=E((Egt,OX)=>{var hOe=Qd(),pOe="__lodash_hash_undefined__",dOe=Object.prototype,COe=dOe.hasOwnProperty;function mOe(t){var e=this.__data__;if(hOe){var r=e[t];return r===pOe?void 0:r}return COe.call(e,t)?e[t]:void 0}OX.exports=mOe});var HX=E((Igt,UX)=>{var EOe=Qd(),IOe=Object.prototype,yOe=IOe.hasOwnProperty;function wOe(t){var e=this.__data__;return EOe?e[t]!==void 0:yOe.call(e,t)}UX.exports=wOe});var jX=E((ygt,GX)=>{var BOe=Qd(),QOe="__lodash_hash_undefined__";function bOe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=BOe&&e===void 0?QOe:e,this}GX.exports=bOe});var qX=E((wgt,YX)=>{var vOe=LX(),SOe=MX(),xOe=KX(),kOe=HX(),POe=jX();function Og(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{function DOe(){this.__data__=[],this.size=0}JX.exports=DOe});var Kg=E((Qgt,zX)=>{function ROe(t,e){return t===e||t!==t&&e!==e}zX.exports=ROe});var bd=E((bgt,VX)=>{var FOe=Kg();function NOe(t,e){for(var r=t.length;r--;)if(FOe(t[r][0],e))return r;return-1}VX.exports=NOe});var XX=E((vgt,_X)=>{var LOe=bd(),TOe=Array.prototype,MOe=TOe.splice;function OOe(t){var e=this.__data__,r=LOe(e,t);if(r<0)return!1;var i=e.length-1;return r==i?e.pop():MOe.call(e,r,1),--this.size,!0}_X.exports=OOe});var $X=E((Sgt,ZX)=>{var KOe=bd();function UOe(t){var e=this.__data__,r=KOe(e,t);return r<0?void 0:e[r][1]}ZX.exports=UOe});var tZ=E((xgt,eZ)=>{var HOe=bd();function GOe(t){return HOe(this.__data__,t)>-1}eZ.exports=GOe});var iZ=E((kgt,rZ)=>{var jOe=bd();function YOe(t,e){var r=this.__data__,i=jOe(r,t);return i<0?(++this.size,r.push([t,e])):r[i][1]=e,this}rZ.exports=YOe});var vd=E((Pgt,nZ)=>{var qOe=WX(),JOe=XX(),WOe=$X(),zOe=tZ(),VOe=iZ();function Ug(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var _Oe=UA(),XOe=Ks(),ZOe=_Oe(XOe,"Map");sZ.exports=ZOe});var AZ=E((Rgt,oZ)=>{var aZ=qX(),$Oe=vd(),eKe=VB();function tKe(){this.size=0,this.__data__={hash:new aZ,map:new(eKe||$Oe),string:new aZ}}oZ.exports=tKe});var cZ=E((Fgt,lZ)=>{function rKe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}lZ.exports=rKe});var Sd=E((Ngt,uZ)=>{var iKe=cZ();function nKe(t,e){var r=t.__data__;return iKe(e)?r[typeof e=="string"?"string":"hash"]:r.map}uZ.exports=nKe});var fZ=E((Lgt,gZ)=>{var sKe=Sd();function oKe(t){var e=sKe(this,t).delete(t);return this.size-=e?1:0,e}gZ.exports=oKe});var pZ=E((Tgt,hZ)=>{var aKe=Sd();function AKe(t){return aKe(this,t).get(t)}hZ.exports=AKe});var CZ=E((Mgt,dZ)=>{var lKe=Sd();function cKe(t){return lKe(this,t).has(t)}dZ.exports=cKe});var EZ=E((Ogt,mZ)=>{var uKe=Sd();function gKe(t,e){var r=uKe(this,t),i=r.size;return r.set(t,e),this.size+=r.size==i?0:1,this}mZ.exports=gKe});var _B=E((Kgt,IZ)=>{var fKe=AZ(),hKe=fZ(),pKe=pZ(),dKe=CZ(),CKe=EZ();function Hg(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var wZ=_B(),mKe="Expected a function";function $R(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(mKe);var r=function(){var i=arguments,n=e?e.apply(this,i):i[0],s=r.cache;if(s.has(n))return s.get(n);var o=t.apply(this,i);return r.cache=s.set(n,o)||s,o};return r.cache=new($R.Cache||wZ),r}$R.Cache=wZ;yZ.exports=$R});var bZ=E((Hgt,QZ)=>{var EKe=BZ(),IKe=500;function yKe(t){var e=EKe(t,function(i){return r.size===IKe&&r.clear(),i}),r=e.cache;return e}QZ.exports=yKe});var SZ=E((Ggt,vZ)=>{var wKe=bZ(),BKe=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,QKe=/\\(\\)?/g,bKe=wKe(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(BKe,function(r,i,n,s){e.push(n?s.replace(QKe,"$1"):i||r)}),e});vZ.exports=bKe});var Gg=E((jgt,xZ)=>{var vKe=As(),SKe=WB(),xKe=SZ(),kKe=gg();function PKe(t,e){return vKe(t)?t:SKe(t,e)?[t]:xKe(kKe(t))}xZ.exports=PKe});var Sc=E((Ygt,kZ)=>{var DKe=Nw(),RKe=1/0;function FKe(t){if(typeof t=="string"||DKe(t))return t;var e=t+"";return e=="0"&&1/t==-RKe?"-0":e}kZ.exports=FKe});var xd=E((qgt,PZ)=>{var NKe=Gg(),LKe=Sc();function TKe(t,e){e=NKe(e,t);for(var r=0,i=e.length;t!=null&&r{var MKe=UA(),OKe=function(){try{var t=MKe(Object,"defineProperty");return t({},"",{}),t}catch(e){}}();DZ.exports=OKe});var jg=E((Wgt,RZ)=>{var FZ=eF();function KKe(t,e,r){e=="__proto__"&&FZ?FZ(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}RZ.exports=KKe});var XB=E((zgt,NZ)=>{var UKe=jg(),HKe=Kg(),GKe=Object.prototype,jKe=GKe.hasOwnProperty;function YKe(t,e,r){var i=t[e];(!(jKe.call(t,e)&&HKe(i,r))||r===void 0&&!(e in t))&&UKe(t,e,r)}NZ.exports=YKe});var kd=E((Vgt,LZ)=>{var qKe=9007199254740991,JKe=/^(?:0|[1-9]\d*)$/;function WKe(t,e){var r=typeof t;return e=e==null?qKe:e,!!e&&(r=="number"||r!="symbol"&&JKe.test(t))&&t>-1&&t%1==0&&t{var zKe=XB(),VKe=Gg(),_Ke=kd(),MZ=Gs(),XKe=Sc();function ZKe(t,e,r,i){if(!MZ(t))return t;e=VKe(e,t);for(var n=-1,s=e.length,o=s-1,a=t;a!=null&&++n{var $Ke=xd(),e1e=tF(),t1e=Gg();function r1e(t,e,r){for(var i=-1,n=e.length,s={};++i{function i1e(t,e){return t!=null&&e in Object(t)}UZ.exports=i1e});var jZ=E(($gt,GZ)=>{var n1e=Ac(),s1e=Qo(),o1e="[object Arguments]";function a1e(t){return s1e(t)&&n1e(t)==o1e}GZ.exports=a1e});var Pd=E((eft,YZ)=>{var qZ=jZ(),A1e=Qo(),JZ=Object.prototype,l1e=JZ.hasOwnProperty,c1e=JZ.propertyIsEnumerable,u1e=qZ(function(){return arguments}())?qZ:function(t){return A1e(t)&&l1e.call(t,"callee")&&!c1e.call(t,"callee")};YZ.exports=u1e});var ZB=E((tft,WZ)=>{var g1e=9007199254740991;function f1e(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=g1e}WZ.exports=f1e});var rF=E((rft,zZ)=>{var h1e=Gg(),p1e=Pd(),d1e=As(),C1e=kd(),m1e=ZB(),E1e=Sc();function I1e(t,e,r){e=h1e(e,t);for(var i=-1,n=e.length,s=!1;++i{var y1e=HZ(),w1e=rF();function B1e(t,e){return t!=null&&w1e(t,e,y1e)}VZ.exports=B1e});var XZ=E((nft,_Z)=>{var Q1e=KZ(),b1e=iF();function v1e(t,e){return Q1e(t,e,function(r,i){return b1e(t,i)})}_Z.exports=v1e});var $B=E((sft,ZZ)=>{function S1e(t,e){for(var r=-1,i=e.length,n=t.length;++r{var e$=ac(),x1e=Pd(),k1e=As(),t$=e$?e$.isConcatSpreadable:void 0;function P1e(t){return k1e(t)||x1e(t)||!!(t$&&t&&t[t$])}$Z.exports=P1e});var s$=E((aft,i$)=>{var D1e=$B(),R1e=r$();function n$(t,e,r,i,n){var s=-1,o=t.length;for(r||(r=R1e),n||(n=[]);++s0&&r(a)?e>1?n$(a,e-1,r,i,n):D1e(n,a):i||(n[n.length]=a)}return n}i$.exports=n$});var a$=E((Aft,o$)=>{var F1e=s$();function N1e(t){var e=t==null?0:t.length;return e?F1e(t,1):[]}o$.exports=N1e});var l$=E((lft,A$)=>{function L1e(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}A$.exports=L1e});var nF=E((cft,c$)=>{var T1e=l$(),u$=Math.max;function M1e(t,e,r){return e=u$(e===void 0?t.length-1:e,0),function(){for(var i=arguments,n=-1,s=u$(i.length-e,0),o=Array(s);++n{function O1e(t){return function(){return t}}g$.exports=O1e});var e0=E((gft,h$)=>{function K1e(t){return t}h$.exports=K1e});var C$=E((fft,p$)=>{var U1e=f$(),d$=eF(),H1e=e0(),G1e=d$?function(t,e){return d$(t,"toString",{configurable:!0,enumerable:!1,value:U1e(e),writable:!0})}:H1e;p$.exports=G1e});var E$=E((hft,m$)=>{var j1e=800,Y1e=16,q1e=Date.now;function J1e(t){var e=0,r=0;return function(){var i=q1e(),n=Y1e-(i-r);if(r=i,n>0){if(++e>=j1e)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}m$.exports=J1e});var sF=E((pft,I$)=>{var W1e=C$(),z1e=E$(),V1e=z1e(W1e);I$.exports=V1e});var w$=E((dft,y$)=>{var _1e=a$(),X1e=nF(),Z1e=sF();function $1e(t){return Z1e(X1e(t,void 0,_1e),t+"")}y$.exports=$1e});var Q$=E((Cft,B$)=>{var eUe=XZ(),tUe=w$(),rUe=tUe(function(t,e){return t==null?{}:eUe(t,e)});B$.exports=rUe});var M$=E((lpt,N$)=>{"use strict";var pF;try{pF=Map}catch(t){}var dF;try{dF=Set}catch(t){}function L$(t,e,r){if(!t||typeof t!="object"||typeof t=="function")return t;if(t.nodeType&&"cloneNode"in t)return t.cloneNode(!0);if(t instanceof Date)return new Date(t.getTime());if(t instanceof RegExp)return new RegExp(t);if(Array.isArray(t))return t.map(T$);if(pF&&t instanceof pF)return new Map(Array.from(t.entries()));if(dF&&t instanceof dF)return new Set(Array.from(t.values()));if(t instanceof Object){e.push(t);var i=Object.create(t);r.push(i);for(var n in t){var s=e.findIndex(function(o){return o===t[n]});i[n]=s>-1?r[s]:L$(t[n],e,r)}return i}return t}function T$(t){return L$(t,[],[])}N$.exports=T$});var Nd=E(CF=>{"use strict";Object.defineProperty(CF,"__esModule",{value:!0});CF.default=uUe;var gUe=Object.prototype.toString,fUe=Error.prototype.toString,hUe=RegExp.prototype.toString,pUe=typeof Symbol!="undefined"?Symbol.prototype.toString:()=>"",dUe=/^Symbol\((.*)\)(.*)$/;function CUe(t){return t!=+t?"NaN":t===0&&1/t<0?"-0":""+t}function O$(t,e=!1){if(t==null||t===!0||t===!1)return""+t;let r=typeof t;if(r==="number")return CUe(t);if(r==="string")return e?`"${t}"`:t;if(r==="function")return"[Function "+(t.name||"anonymous")+"]";if(r==="symbol")return pUe.call(t).replace(dUe,"Symbol($1)");let i=gUe.call(t).slice(8,-1);return i==="Date"?isNaN(t.getTime())?""+t:t.toISOString(t):i==="Error"||t instanceof Error?"["+fUe.call(t)+"]":i==="RegExp"?hUe.call(t):null}function uUe(t,e){let r=O$(t,e);return r!==null?r:JSON.stringify(t,function(i,n){let s=O$(this[i],e);return s!==null?s:n},2)}});var La=E(ci=>{"use strict";Object.defineProperty(ci,"__esModule",{value:!0});ci.default=ci.array=ci.object=ci.boolean=ci.date=ci.number=ci.string=ci.mixed=void 0;var K$=mUe(Nd());function mUe(t){return t&&t.__esModule?t:{default:t}}var U$={default:"${path} is invalid",required:"${path} is a required field",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:t,type:e,value:r,originalValue:i})=>{let n=i!=null&&i!==r,s=`${t} must be a \`${e}\` type, but the final value was: \`${(0,K$.default)(r,!0)}\``+(n?` (cast from the value \`${(0,K$.default)(i,!0)}\`).`:".");return r===null&&(s+='\n If "null" is intended as an empty value be sure to mark the schema as `.nullable()`'),s},defined:"${path} must be defined"};ci.mixed=U$;var H$={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"};ci.string=H$;var G$={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"};ci.number=G$;var j$={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"};ci.date=j$;var Y$={isValue:"${path} field must be ${value}"};ci.boolean=Y$;var q$={noUnknown:"${path} field has unspecified keys: ${unknown}"};ci.object=q$;var J$={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must be have ${length} items"};ci.array=J$;var EUe=Object.assign(Object.create(null),{mixed:U$,string:H$,number:G$,date:j$,object:q$,array:J$,boolean:Y$});ci.default=EUe});var z$=E((gpt,W$)=>{var IUe=Object.prototype,yUe=IUe.hasOwnProperty;function wUe(t,e){return t!=null&&yUe.call(t,e)}W$.exports=wUe});var Ld=E((fpt,V$)=>{var BUe=z$(),QUe=rF();function bUe(t,e){return t!=null&&QUe(t,e,BUe)}V$.exports=bUe});var qg=E(n0=>{"use strict";Object.defineProperty(n0,"__esModule",{value:!0});n0.default=void 0;var vUe=t=>t&&t.__isYupSchema__;n0.default=vUe});var Z$=E(s0=>{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});s0.default=void 0;var SUe=_$(Ld()),xUe=_$(qg());function _$(t){return t&&t.__esModule?t:{default:t}}var X$=class{constructor(e,r){if(this.refs=e,this.refs=e,typeof r=="function"){this.fn=r;return}if(!(0,SUe.default)(r,"is"))throw new TypeError("`is:` is required for `when()` conditions");if(!r.then&&!r.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:i,then:n,otherwise:s}=r,o=typeof i=="function"?i:(...a)=>a.every(l=>l===i);this.fn=function(...a){let l=a.pop(),c=a.pop(),u=o(...a)?n:s;if(!!u)return typeof u=="function"?u(c):c.concat(u.resolve(l))}}resolve(e,r){let i=this.refs.map(s=>s.getValue(r==null?void 0:r.value,r==null?void 0:r.parent,r==null?void 0:r.context)),n=this.fn.apply(e,i.concat(e,r));if(n===void 0||n===e)return e;if(!(0,xUe.default)(n))throw new TypeError("conditions must return a schema object");return n.resolve(r)}},kUe=X$;s0.default=kUe});var EF=E(mF=>{"use strict";Object.defineProperty(mF,"__esModule",{value:!0});mF.default=PUe;function PUe(t){return t==null?[]:[].concat(t)}});var xc=E(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});o0.default=void 0;var DUe=$$(Nd()),RUe=$$(EF());function $$(t){return t&&t.__esModule?t:{default:t}}function IF(){return IF=Object.assign||function(t){for(var e=1;e(0,DUe.default)(r[s])):typeof e=="function"?e(r):e}static isError(e){return e&&e.name==="ValidationError"}constructor(e,r,i,n){super();this.name="ValidationError",this.value=r,this.path=i,this.type=n,this.errors=[],this.inner=[],(0,RUe.default)(e).forEach(s=>{Td.isError(s)?(this.errors.push(...s.errors),this.inner=this.inner.concat(s.inner.length?s.inner:s)):this.errors.push(s)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0],Error.captureStackTrace&&Error.captureStackTrace(this,Td)}};o0.default=Td});var a0=E(yF=>{"use strict";Object.defineProperty(yF,"__esModule",{value:!0});yF.default=NUe;var wF=LUe(xc());function LUe(t){return t&&t.__esModule?t:{default:t}}var TUe=t=>{let e=!1;return(...r)=>{e||(e=!0,t(...r))}};function NUe(t,e){let{endEarly:r,tests:i,args:n,value:s,errors:o,sort:a,path:l}=t,c=TUe(e),u=i.length,g=[];if(o=o||[],!u)return o.length?c(new wF.default(o,s,l)):c(null,s);for(let f=0;f{function MUe(t){return function(e,r,i){for(var n=-1,s=Object(e),o=i(e),a=o.length;a--;){var l=o[t?a:++n];if(r(s[l],l,s)===!1)break}return e}}eee.exports=MUe});var BF=E((Ipt,ree)=>{var OUe=tee(),KUe=OUe();ree.exports=KUe});var nee=E((ypt,iee)=>{function UUe(t,e){for(var r=-1,i=Array(t);++r{function HUe(){return!1}see.exports=HUe});var Od=E((Md,Jg)=>{var GUe=Ks(),jUe=oee(),aee=typeof Md=="object"&&Md&&!Md.nodeType&&Md,Aee=aee&&typeof Jg=="object"&&Jg&&!Jg.nodeType&&Jg,YUe=Aee&&Aee.exports===aee,lee=YUe?GUe.Buffer:void 0,qUe=lee?lee.isBuffer:void 0,JUe=qUe||jUe;Jg.exports=JUe});var uee=E((Bpt,cee)=>{var WUe=Ac(),zUe=ZB(),VUe=Qo(),_Ue="[object Arguments]",XUe="[object Array]",ZUe="[object Boolean]",$Ue="[object Date]",e2e="[object Error]",t2e="[object Function]",r2e="[object Map]",i2e="[object Number]",n2e="[object Object]",s2e="[object RegExp]",o2e="[object Set]",a2e="[object String]",A2e="[object WeakMap]",l2e="[object ArrayBuffer]",c2e="[object DataView]",u2e="[object Float32Array]",g2e="[object Float64Array]",f2e="[object Int8Array]",h2e="[object Int16Array]",p2e="[object Int32Array]",d2e="[object Uint8Array]",C2e="[object Uint8ClampedArray]",m2e="[object Uint16Array]",E2e="[object Uint32Array]",lr={};lr[u2e]=lr[g2e]=lr[f2e]=lr[h2e]=lr[p2e]=lr[d2e]=lr[C2e]=lr[m2e]=lr[E2e]=!0;lr[_Ue]=lr[XUe]=lr[l2e]=lr[ZUe]=lr[c2e]=lr[$Ue]=lr[e2e]=lr[t2e]=lr[r2e]=lr[i2e]=lr[n2e]=lr[s2e]=lr[o2e]=lr[a2e]=lr[A2e]=!1;function I2e(t){return VUe(t)&&zUe(t.length)&&!!lr[WUe(t)]}cee.exports=I2e});var A0=E((Qpt,gee)=>{function y2e(t){return function(e){return t(e)}}gee.exports=y2e});var l0=E((Kd,Wg)=>{var w2e=WP(),fee=typeof Kd=="object"&&Kd&&!Kd.nodeType&&Kd,Ud=fee&&typeof Wg=="object"&&Wg&&!Wg.nodeType&&Wg,B2e=Ud&&Ud.exports===fee,QF=B2e&&w2e.process,Q2e=function(){try{var t=Ud&&Ud.require&&Ud.require("util").types;return t||QF&&QF.binding&&QF.binding("util")}catch(e){}}();Wg.exports=Q2e});var c0=E((bpt,hee)=>{var b2e=uee(),v2e=A0(),pee=l0(),dee=pee&&pee.isTypedArray,S2e=dee?v2e(dee):b2e;hee.exports=S2e});var bF=E((vpt,Cee)=>{var x2e=nee(),k2e=Pd(),P2e=As(),D2e=Od(),R2e=kd(),F2e=c0(),N2e=Object.prototype,L2e=N2e.hasOwnProperty;function T2e(t,e){var r=P2e(t),i=!r&&k2e(t),n=!r&&!i&&D2e(t),s=!r&&!i&&!n&&F2e(t),o=r||i||n||s,a=o?x2e(t.length,String):[],l=a.length;for(var c in t)(e||L2e.call(t,c))&&!(o&&(c=="length"||n&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||R2e(c,l)))&&a.push(c);return a}Cee.exports=T2e});var u0=E((Spt,mee)=>{var M2e=Object.prototype;function O2e(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||M2e;return t===r}mee.exports=O2e});var vF=E((xpt,Eee)=>{function K2e(t,e){return function(r){return t(e(r))}}Eee.exports=K2e});var yee=E((kpt,Iee)=>{var U2e=vF(),H2e=U2e(Object.keys,Object);Iee.exports=H2e});var Bee=E((Ppt,wee)=>{var G2e=u0(),j2e=yee(),Y2e=Object.prototype,q2e=Y2e.hasOwnProperty;function J2e(t){if(!G2e(t))return j2e(t);var e=[];for(var r in Object(t))q2e.call(t,r)&&r!="constructor"&&e.push(r);return e}wee.exports=J2e});var Hd=E((Dpt,Qee)=>{var W2e=zB(),z2e=ZB();function V2e(t){return t!=null&&z2e(t.length)&&!W2e(t)}Qee.exports=V2e});var zg=E((Rpt,bee)=>{var _2e=bF(),X2e=Bee(),Z2e=Hd();function $2e(t){return Z2e(t)?_2e(t):X2e(t)}bee.exports=$2e});var SF=E((Fpt,vee)=>{var eHe=BF(),tHe=zg();function rHe(t,e){return t&&eHe(t,e,tHe)}vee.exports=rHe});var xee=E((Npt,See)=>{var iHe=vd();function nHe(){this.__data__=new iHe,this.size=0}See.exports=nHe});var Pee=E((Lpt,kee)=>{function sHe(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}kee.exports=sHe});var Ree=E((Tpt,Dee)=>{function oHe(t){return this.__data__.get(t)}Dee.exports=oHe});var Nee=E((Mpt,Fee)=>{function aHe(t){return this.__data__.has(t)}Fee.exports=aHe});var Tee=E((Opt,Lee)=>{var AHe=vd(),lHe=VB(),cHe=_B(),uHe=200;function gHe(t,e){var r=this.__data__;if(r instanceof AHe){var i=r.__data__;if(!lHe||i.length{var fHe=vd(),hHe=xee(),pHe=Pee(),dHe=Ree(),CHe=Nee(),mHe=Tee();function Vg(t){var e=this.__data__=new fHe(t);this.size=e.size}Vg.prototype.clear=hHe;Vg.prototype.delete=pHe;Vg.prototype.get=dHe;Vg.prototype.has=CHe;Vg.prototype.set=mHe;Mee.exports=Vg});var Kee=E((Upt,Oee)=>{var EHe="__lodash_hash_undefined__";function IHe(t){return this.__data__.set(t,EHe),this}Oee.exports=IHe});var Hee=E((Hpt,Uee)=>{function yHe(t){return this.__data__.has(t)}Uee.exports=yHe});var jee=E((Gpt,Gee)=>{var wHe=_B(),BHe=Kee(),QHe=Hee();function g0(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new wHe;++e{function bHe(t,e){for(var r=-1,i=t==null?0:t.length;++r{function vHe(t,e){return t.has(e)}Jee.exports=vHe});var xF=E((qpt,zee)=>{var SHe=jee(),xHe=qee(),kHe=Wee(),PHe=1,DHe=2;function RHe(t,e,r,i,n,s){var o=r&PHe,a=t.length,l=e.length;if(a!=l&&!(o&&l>a))return!1;var c=s.get(t),u=s.get(e);if(c&&u)return c==e&&u==t;var g=-1,f=!0,h=r&DHe?new SHe:void 0;for(s.set(t,e),s.set(e,t);++g{var FHe=Ks(),NHe=FHe.Uint8Array;Vee.exports=NHe});var Xee=E((Wpt,_ee)=>{function LHe(t){var e=-1,r=Array(t.size);return t.forEach(function(i,n){r[++e]=[n,i]}),r}_ee.exports=LHe});var $ee=E((zpt,Zee)=>{function THe(t){var e=-1,r=Array(t.size);return t.forEach(function(i){r[++e]=i}),r}Zee.exports=THe});var nte=E((Vpt,ete)=>{var tte=ac(),rte=kF(),MHe=Kg(),OHe=xF(),KHe=Xee(),UHe=$ee(),HHe=1,GHe=2,jHe="[object Boolean]",YHe="[object Date]",qHe="[object Error]",JHe="[object Map]",WHe="[object Number]",zHe="[object RegExp]",VHe="[object Set]",_He="[object String]",XHe="[object Symbol]",ZHe="[object ArrayBuffer]",$He="[object DataView]",ite=tte?tte.prototype:void 0,PF=ite?ite.valueOf:void 0;function eGe(t,e,r,i,n,s,o){switch(r){case $He:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case ZHe:return!(t.byteLength!=e.byteLength||!s(new rte(t),new rte(e)));case jHe:case YHe:case WHe:return MHe(+t,+e);case qHe:return t.name==e.name&&t.message==e.message;case zHe:case _He:return t==e+"";case JHe:var a=KHe;case VHe:var l=i&HHe;if(a||(a=UHe),t.size!=e.size&&!l)return!1;var c=o.get(t);if(c)return c==e;i|=GHe,o.set(t,e);var u=OHe(a(t),a(e),i,n,s,o);return o.delete(t),u;case XHe:if(PF)return PF.call(t)==PF.call(e)}return!1}ete.exports=eGe});var DF=E((_pt,ste)=>{var tGe=$B(),rGe=As();function iGe(t,e,r){var i=e(t);return rGe(t)?i:tGe(i,r(t))}ste.exports=iGe});var ate=E((Xpt,ote)=>{function nGe(t,e){for(var r=-1,i=t==null?0:t.length,n=0,s=[];++r{function sGe(){return[]}Ate.exports=sGe});var f0=E(($pt,lte)=>{var oGe=ate(),aGe=RF(),AGe=Object.prototype,lGe=AGe.propertyIsEnumerable,cte=Object.getOwnPropertySymbols,cGe=cte?function(t){return t==null?[]:(t=Object(t),oGe(cte(t),function(e){return lGe.call(t,e)}))}:aGe;lte.exports=cGe});var FF=E((edt,ute)=>{var uGe=DF(),gGe=f0(),fGe=zg();function hGe(t){return uGe(t,fGe,gGe)}ute.exports=hGe});var hte=E((tdt,gte)=>{var fte=FF(),pGe=1,dGe=Object.prototype,CGe=dGe.hasOwnProperty;function mGe(t,e,r,i,n,s){var o=r&pGe,a=fte(t),l=a.length,c=fte(e),u=c.length;if(l!=u&&!o)return!1;for(var g=l;g--;){var f=a[g];if(!(o?f in e:CGe.call(e,f)))return!1}var h=s.get(t),p=s.get(e);if(h&&p)return h==e&&p==t;var d=!0;s.set(t,e),s.set(e,t);for(var m=o;++g{var EGe=UA(),IGe=Ks(),yGe=EGe(IGe,"DataView");pte.exports=yGe});var mte=E((idt,Cte)=>{var wGe=UA(),BGe=Ks(),QGe=wGe(BGe,"Promise");Cte.exports=QGe});var Ite=E((ndt,Ete)=>{var bGe=UA(),vGe=Ks(),SGe=bGe(vGe,"Set");Ete.exports=SGe});var wte=E((sdt,yte)=>{var xGe=UA(),kGe=Ks(),PGe=xGe(kGe,"WeakMap");yte.exports=PGe});var jd=E((odt,Bte)=>{var NF=dte(),LF=VB(),TF=mte(),MF=Ite(),OF=wte(),Qte=Ac(),_g=ZR(),bte="[object Map]",DGe="[object Object]",vte="[object Promise]",Ste="[object Set]",xte="[object WeakMap]",kte="[object DataView]",RGe=_g(NF),FGe=_g(LF),NGe=_g(TF),LGe=_g(MF),TGe=_g(OF),kc=Qte;(NF&&kc(new NF(new ArrayBuffer(1)))!=kte||LF&&kc(new LF)!=bte||TF&&kc(TF.resolve())!=vte||MF&&kc(new MF)!=Ste||OF&&kc(new OF)!=xte)&&(kc=function(t){var e=Qte(t),r=e==DGe?t.constructor:void 0,i=r?_g(r):"";if(i)switch(i){case RGe:return kte;case FGe:return bte;case NGe:return vte;case LGe:return Ste;case TGe:return xte}return e});Bte.exports=kc});var Mte=E((adt,Pte)=>{var KF=Gd(),MGe=xF(),OGe=nte(),KGe=hte(),Dte=jd(),Rte=As(),Fte=Od(),UGe=c0(),HGe=1,Nte="[object Arguments]",Lte="[object Array]",h0="[object Object]",GGe=Object.prototype,Tte=GGe.hasOwnProperty;function jGe(t,e,r,i,n,s){var o=Rte(t),a=Rte(e),l=o?Lte:Dte(t),c=a?Lte:Dte(e);l=l==Nte?h0:l,c=c==Nte?h0:c;var u=l==h0,g=c==h0,f=l==c;if(f&&Fte(t)){if(!Fte(e))return!1;o=!0,u=!1}if(f&&!u)return s||(s=new KF),o||UGe(t)?MGe(t,e,r,i,n,s):OGe(t,e,l,r,i,n,s);if(!(r&HGe)){var h=u&&Tte.call(t,"__wrapped__"),p=g&&Tte.call(e,"__wrapped__");if(h||p){var d=h?t.value():t,m=p?e.value():e;return s||(s=new KF),n(d,m,r,i,s)}}return f?(s||(s=new KF),KGe(t,e,r,i,n,s)):!1}Pte.exports=jGe});var UF=E((Adt,Ote)=>{var YGe=Mte(),Kte=Qo();function Ute(t,e,r,i,n){return t===e?!0:t==null||e==null||!Kte(t)&&!Kte(e)?t!==t&&e!==e:YGe(t,e,r,i,Ute,n)}Ote.exports=Ute});var Gte=E((ldt,Hte)=>{var qGe=Gd(),JGe=UF(),WGe=1,zGe=2;function VGe(t,e,r,i){var n=r.length,s=n,o=!i;if(t==null)return!s;for(t=Object(t);n--;){var a=r[n];if(o&&a[2]?a[1]!==t[a[0]]:!(a[0]in t))return!1}for(;++n{var _Ge=Gs();function XGe(t){return t===t&&!_Ge(t)}jte.exports=XGe});var qte=E((udt,Yte)=>{var ZGe=HF(),$Ge=zg();function eje(t){for(var e=$Ge(t),r=e.length;r--;){var i=e[r],n=t[i];e[r]=[i,n,ZGe(n)]}return e}Yte.exports=eje});var GF=E((gdt,Jte)=>{function tje(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}Jte.exports=tje});var zte=E((fdt,Wte)=>{var rje=Gte(),ije=qte(),nje=GF();function sje(t){var e=ije(t);return e.length==1&&e[0][2]?nje(e[0][0],e[0][1]):function(r){return r===t||rje(r,t,e)}}Wte.exports=sje});var p0=E((hdt,Vte)=>{var oje=xd();function aje(t,e,r){var i=t==null?void 0:oje(t,e);return i===void 0?r:i}Vte.exports=aje});var Xte=E((pdt,_te)=>{var Aje=UF(),lje=p0(),cje=iF(),uje=WB(),gje=HF(),fje=GF(),hje=Sc(),pje=1,dje=2;function Cje(t,e){return uje(t)&&gje(e)?fje(hje(t),e):function(r){var i=lje(r,t);return i===void 0&&i===e?cje(r,t):Aje(e,i,pje|dje)}}_te.exports=Cje});var $te=E((ddt,Zte)=>{function mje(t){return function(e){return e==null?void 0:e[t]}}Zte.exports=mje});var tre=E((Cdt,ere)=>{var Eje=xd();function Ije(t){return function(e){return Eje(e,t)}}ere.exports=Ije});var ire=E((mdt,rre)=>{var yje=$te(),wje=tre(),Bje=WB(),Qje=Sc();function bje(t){return Bje(t)?yje(Qje(t)):wje(t)}rre.exports=bje});var jF=E((Edt,nre)=>{var vje=zte(),Sje=Xte(),xje=e0(),kje=As(),Pje=ire();function Dje(t){return typeof t=="function"?t:t==null?xje:typeof t=="object"?kje(t)?Sje(t[0],t[1]):vje(t):Pje(t)}nre.exports=Dje});var YF=E((Idt,sre)=>{var Rje=jg(),Fje=SF(),Nje=jF();function Lje(t,e){var r={};return e=Nje(e,3),Fje(t,function(i,n,s){Rje(r,n,e(i,n,s))}),r}sre.exports=Lje});var Yd=E((ydt,ore)=>{"use strict";function Pc(t){this._maxSize=t,this.clear()}Pc.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Pc.prototype.get=function(t){return this._values[t]};Pc.prototype.set=function(t,e){return this._size>=this._maxSize&&this.clear(),t in this._values||this._size++,this._values[t]=e};var Tje=/[^.^\]^[]+|(?=\[\]|\.\.)/g,are=/^\d+$/,Mje=/^\d/,Oje=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,Kje=/^\s*(['"]?)(.*?)(\1)\s*$/,qF=512,Are=new Pc(qF),lre=new Pc(qF),cre=new Pc(qF);ore.exports={Cache:Pc,split:WF,normalizePath:JF,setter:function(t){var e=JF(t);return lre.get(t)||lre.set(t,function(i,n){for(var s=0,o=e.length,a=i;s{"use strict";Object.defineProperty(qd,"__esModule",{value:!0});qd.create=Yje;qd.default=void 0;var qje=Yd(),d0={context:"$",value:"."};function Yje(t,e){return new C0(t,e)}var C0=class{constructor(e,r={}){if(typeof e!="string")throw new TypeError("ref must be a string, got: "+e);if(this.key=e.trim(),e==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===d0.context,this.isValue=this.key[0]===d0.value,this.isSibling=!this.isContext&&!this.isValue;let i=this.isContext?d0.context:this.isValue?d0.value:"";this.path=this.key.slice(i.length),this.getter=this.path&&(0,qje.getter)(this.path,!0),this.map=r.map}getValue(e,r,i){let n=this.isContext?i:this.isValue?e:r;return this.getter&&(n=this.getter(n||{})),this.map&&(n=this.map(n)),n}cast(e,r){return this.getValue(e,r==null?void 0:r.parent,r==null?void 0:r.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(e){return e&&e.__isYupRef}};qd.default=C0;C0.prototype.__isYupRef=!0});var ure=E(VF=>{"use strict";Object.defineProperty(VF,"__esModule",{value:!0});VF.default=Jje;var Wje=_F(YF()),m0=_F(xc()),zje=_F(Dc());function _F(t){return t&&t.__esModule?t:{default:t}}function E0(){return E0=Object.assign||function(t){for(var e=1;e=0)&&(r[n]=t[n]);return r}function Jje(t){function e(r,i){let{value:n,path:s="",label:o,options:a,originalValue:l,sync:c}=r,u=Vje(r,["value","path","label","options","originalValue","sync"]),{name:g,test:f,params:h,message:p}=t,{parent:d,context:m}=a;function I(L){return zje.default.isRef(L)?L.getValue(n,d,m):L}function B(L={}){let K=(0,Wje.default)(E0({value:n,originalValue:l,label:o,path:L.path||s},h,L.params),I),J=new m0.default(m0.default.formatError(L.message||p,K),n,K.path,L.type||g);return J.params=K,J}let b=E0({path:s,parent:d,type:g,createError:B,resolve:I,options:a,originalValue:l},u);if(!c){try{Promise.resolve(f.call(b,n,b)).then(L=>{m0.default.isError(L)?i(L):L?i(null,L):i(B())})}catch(L){i(L)}return}let R;try{var H;if(R=f.call(b,n,b),typeof((H=R)==null?void 0:H.then)=="function")throw new Error(`Validation test of type: "${b.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`)}catch(L){i(L);return}m0.default.isError(R)?i(R):R?i(null,R):i(B())}return e.OPTIONS=t,e}});var XF=E(Jd=>{"use strict";Object.defineProperty(Jd,"__esModule",{value:!0});Jd.getIn=gre;Jd.default=void 0;var _je=Yd(),Xje=t=>t.substr(0,t.length-1).substr(1);function gre(t,e,r,i=r){let n,s,o;return e?((0,_je.forEach)(e,(a,l,c)=>{let u=l?Xje(a):a;if(t=t.resolve({context:i,parent:n,value:r}),t.innerType){let g=c?parseInt(u,10):0;if(r&&g>=r.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${e}. because there is no value at that index. `);n=r,r=r&&r[g],t=t.innerType}if(!c){if(!t.fields||!t.fields[u])throw new Error(`The schema does not contain the path: ${e}. (failed at: ${o} which is a type: "${t._type}")`);n=r,r=r&&r[u],t=t.fields[u]}s=u,o=l?"["+a+"]":"."+a}),{schema:t,parent:n,parentPath:s}):{parent:n,parentPath:e,schema:t}}var Zje=(t,e,r,i)=>gre(t,e,r,i).schema,$je=Zje;Jd.default=$je});var hre=E(I0=>{"use strict";Object.defineProperty(I0,"__esModule",{value:!0});I0.default=void 0;var fre=eYe(Dc());function eYe(t){return t&&t.__esModule?t:{default:t}}var y0=class{constructor(){this.list=new Set,this.refs=new Map}get size(){return this.list.size+this.refs.size}describe(){let e=[];for(let r of this.list)e.push(r);for(let[,r]of this.refs)e.push(r.describe());return e}toArray(){return Array.from(this.list).concat(Array.from(this.refs.values()))}add(e){fre.default.isRef(e)?this.refs.set(e.key,e):this.list.add(e)}delete(e){fre.default.isRef(e)?this.refs.delete(e.key):this.list.delete(e)}has(e,r){if(this.list.has(e))return!0;let i,n=this.refs.values();for(;i=n.next(),!i.done;)if(r(i.value)===e)return!0;return!1}clone(){let e=new y0;return e.list=new Set(this.list),e.refs=new Map(this.refs),e}merge(e,r){let i=this.clone();return e.list.forEach(n=>i.add(n)),e.refs.forEach(n=>i.add(n)),r.list.forEach(n=>i.delete(n)),r.refs.forEach(n=>i.delete(n)),i}};I0.default=y0});var Ma=E(w0=>{"use strict";Object.defineProperty(w0,"__esModule",{value:!0});w0.default=void 0;var pre=Ta(M$()),Xg=La(),tYe=Ta(Z$()),dre=Ta(a0()),B0=Ta(ure()),Cre=Ta(Nd()),rYe=Ta(Dc()),iYe=XF(),nYe=Ta(EF()),mre=Ta(xc()),Ere=Ta(hre());function Ta(t){return t&&t.__esModule?t:{default:t}}function ds(){return ds=Object.assign||function(t){for(var e=1;e{this.typeError(Xg.mixed.notType)}),this.type=(e==null?void 0:e.type)||"mixed",this.spec=ds({strip:!1,strict:!1,abortEarly:!0,recursive:!0,nullable:!1,presence:"optional"},e==null?void 0:e.spec)}get _type(){return this.type}_typeCheck(e){return!0}clone(e){if(this._mutate)return e&&Object.assign(this.spec,e),this;let r=Object.create(Object.getPrototypeOf(this));return r.type=this.type,r._typeError=this._typeError,r._whitelistError=this._whitelistError,r._blacklistError=this._blacklistError,r._whitelist=this._whitelist.clone(),r._blacklist=this._blacklist.clone(),r.exclusiveTests=ds({},this.exclusiveTests),r.deps=[...this.deps],r.conditions=[...this.conditions],r.tests=[...this.tests],r.transforms=[...this.transforms],r.spec=(0,pre.default)(ds({},this.spec,e)),r}label(e){var r=this.clone();return r.spec.label=e,r}meta(...e){if(e.length===0)return this.spec.meta;let r=this.clone();return r.spec.meta=Object.assign(r.spec.meta||{},e[0]),r}withMutation(e){let r=this._mutate;this._mutate=!0;let i=e(this);return this._mutate=r,i}concat(e){if(!e||e===this)return this;if(e.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${e.type}`);let r=this,i=e.clone(),n=ds({},r.spec,i.spec);return i.spec=n,i._typeError||(i._typeError=r._typeError),i._whitelistError||(i._whitelistError=r._whitelistError),i._blacklistError||(i._blacklistError=r._blacklistError),i._whitelist=r._whitelist.merge(e._whitelist,e._blacklist),i._blacklist=r._blacklist.merge(e._blacklist,e._whitelist),i.tests=r.tests,i.exclusiveTests=r.exclusiveTests,i.withMutation(s=>{e.tests.forEach(o=>{s.test(o.OPTIONS)})}),i}isType(e){return this.spec.nullable&&e===null?!0:this._typeCheck(e)}resolve(e){let r=this;if(r.conditions.length){let i=r.conditions;r=r.clone(),r.conditions=[],r=i.reduce((n,s)=>s.resolve(n,e),r),r=r.resolve(e)}return r}cast(e,r={}){let i=this.resolve(ds({value:e},r)),n=i._cast(e,r);if(e!==void 0&&r.assert!==!1&&i.isType(n)!==!0){let s=(0,Cre.default)(e),o=(0,Cre.default)(n);throw new TypeError(`The value of ${r.path||"field"} could not be cast to a value that satisfies the schema type: "${i._type}". - -attempted value: ${s} -`+(o!==s?`result of cast: ${o}`:""))}return n}_cast(e,r){let i=e===void 0?e:this.transforms.reduce((n,s)=>s.call(this,n,e,this),e);return i===void 0&&(i=this.getDefault()),i}_validate(e,r={},i){let{sync:n,path:s,from:o=[],originalValue:a=e,strict:l=this.spec.strict,abortEarly:c=this.spec.abortEarly}=r,u=e;l||(u=this._cast(u,ds({assert:!1},r)));let g={value:u,path:s,options:r,originalValue:a,schema:this,label:this.spec.label,sync:n,from:o},f=[];this._typeError&&f.push(this._typeError),this._whitelistError&&f.push(this._whitelistError),this._blacklistError&&f.push(this._blacklistError),(0,dre.default)({args:g,value:u,path:s,sync:n,tests:f,endEarly:c},h=>{if(h)return void i(h,u);(0,dre.default)({tests:this.tests,args:g,path:s,sync:n,value:u,endEarly:c},i)})}validate(e,r,i){let n=this.resolve(ds({},r,{value:e}));return typeof i=="function"?n._validate(e,r,i):new Promise((s,o)=>n._validate(e,r,(a,l)=>{a?o(a):s(l)}))}validateSync(e,r){let i=this.resolve(ds({},r,{value:e})),n;return i._validate(e,ds({},r,{sync:!0}),(s,o)=>{if(s)throw s;n=o}),n}isValid(e,r){return this.validate(e,r).then(()=>!0,i=>{if(mre.default.isError(i))return!1;throw i})}isValidSync(e,r){try{return this.validateSync(e,r),!0}catch(i){if(mre.default.isError(i))return!1;throw i}}_getDefault(){let e=this.spec.default;return e==null?e:typeof e=="function"?e.call(this):(0,pre.default)(e)}getDefault(e){return this.resolve(e||{})._getDefault()}default(e){return arguments.length===0?this._getDefault():this.clone({default:e})}strict(e=!0){var r=this.clone();return r.spec.strict=e,r}_isPresent(e){return e!=null}defined(e=Xg.mixed.defined){return this.test({message:e,name:"defined",exclusive:!0,test(r){return r!==void 0}})}required(e=Xg.mixed.required){return this.clone({presence:"required"}).withMutation(r=>r.test({message:e,name:"required",exclusive:!0,test(i){return this.schema._isPresent(i)}}))}notRequired(){var e=this.clone({presence:"optional"});return e.tests=e.tests.filter(r=>r.OPTIONS.name!=="required"),e}nullable(e=!0){var r=this.clone({nullable:e!==!1});return r}transform(e){var r=this.clone();return r.transforms.push(e),r}test(...e){let r;if(e.length===1?typeof e[0]=="function"?r={test:e[0]}:r=e[0]:e.length===2?r={name:e[0],test:e[1]}:r={name:e[0],message:e[1],test:e[2]},r.message===void 0&&(r.message=Xg.mixed.default),typeof r.test!="function")throw new TypeError("`test` is a required parameters");let i=this.clone(),n=(0,B0.default)(r),s=r.exclusive||r.name&&i.exclusiveTests[r.name]===!0;if(r.exclusive&&!r.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return r.name&&(i.exclusiveTests[r.name]=!!r.exclusive),i.tests=i.tests.filter(o=>!(o.OPTIONS.name===r.name&&(s||o.OPTIONS.test===n.OPTIONS.test))),i.tests.push(n),i}when(e,r){!Array.isArray(e)&&typeof e!="string"&&(r=e,e=".");let i=this.clone(),n=(0,nYe.default)(e).map(s=>new rYe.default(s));return n.forEach(s=>{s.isSibling&&i.deps.push(s.key)}),i.conditions.push(new tYe.default(n,r)),i}typeError(e){var r=this.clone();return r._typeError=(0,B0.default)({message:e,name:"typeError",test(i){return i!==void 0&&!this.schema.isType(i)?this.createError({params:{type:this.schema._type}}):!0}}),r}oneOf(e,r=Xg.mixed.oneOf){var i=this.clone();return e.forEach(n=>{i._whitelist.add(n),i._blacklist.delete(n)}),i._whitelistError=(0,B0.default)({message:r,name:"oneOf",test(n){if(n===void 0)return!0;let s=this.schema._whitelist;return s.has(n,this.resolve)?!0:this.createError({params:{values:s.toArray().join(", ")}})}}),i}notOneOf(e,r=Xg.mixed.notOneOf){var i=this.clone();return e.forEach(n=>{i._blacklist.add(n),i._whitelist.delete(n)}),i._blacklistError=(0,B0.default)({message:r,name:"notOneOf",test(n){let s=this.schema._blacklist;return s.has(n,this.resolve)?this.createError({params:{values:s.toArray().join(", ")}}):!0}}),i}strip(e=!0){let r=this.clone();return r.spec.strip=e,r}describe(){let e=this.clone(),{label:r,meta:i}=e.spec;return{meta:i,label:r,type:e.type,oneOf:e._whitelist.describe(),notOneOf:e._blacklist.describe(),tests:e.tests.map(s=>({name:s.OPTIONS.name,params:s.OPTIONS.params})).filter((s,o,a)=>a.findIndex(l=>l.name===s.name)===o)}}};w0.default=Do;Do.prototype.__isYupSchema__=!0;for(let t of["validate","validateSync"])Do.prototype[`${t}At`]=function(e,r,i={}){let{parent:n,parentPath:s,schema:o}=(0,iYe.getIn)(this,e,r,i.context);return o[t](n&&n[s],ds({},i,{parent:n,path:e}))};for(let t of["equals","is"])Do.prototype[t]=Do.prototype.oneOf;for(let t of["not","nope"])Do.prototype[t]=Do.prototype.notOneOf;Do.prototype.optional=Do.prototype.notRequired});var yre=E(Wd=>{"use strict";Object.defineProperty(Wd,"__esModule",{value:!0});Wd.create=Ire;Wd.default=void 0;var oYe=sYe(Ma());function sYe(t){return t&&t.__esModule?t:{default:t}}var ZF=oYe.default,aYe=ZF;Wd.default=aYe;function Ire(){return new ZF}Ire.prototype=ZF.prototype});var Zg=E(Q0=>{"use strict";Object.defineProperty(Q0,"__esModule",{value:!0});Q0.default=void 0;var AYe=t=>t==null;Q0.default=AYe});var vre=E(zd=>{"use strict";Object.defineProperty(zd,"__esModule",{value:!0});zd.create=wre;zd.default=void 0;var lYe=Bre(Ma()),Qre=La(),bre=Bre(Zg());function Bre(t){return t&&t.__esModule?t:{default:t}}function wre(){return new b0}var b0=class extends lYe.default{constructor(){super({type:"boolean"});this.withMutation(()=>{this.transform(function(e){if(!this.isType(e)){if(/^(true|1)$/i.test(String(e)))return!0;if(/^(false|0)$/i.test(String(e)))return!1}return e})})}_typeCheck(e){return e instanceof Boolean&&(e=e.valueOf()),typeof e=="boolean"}isTrue(e=Qre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"true"},test(r){return(0,bre.default)(r)||r===!0}})}isFalse(e=Qre.boolean.isValue){return this.test({message:e,name:"is-value",exclusive:!0,params:{value:"false"},test(r){return(0,bre.default)(r)||r===!1}})}};zd.default=b0;wre.prototype=b0.prototype});var kre=E(Vd=>{"use strict";Object.defineProperty(Vd,"__esModule",{value:!0});Vd.create=Sre;Vd.default=void 0;var Ro=La(),Oa=xre(Zg()),cYe=xre(Ma());function xre(t){return t&&t.__esModule?t:{default:t}}var uYe=/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i,gYe=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,fYe=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,hYe=t=>(0,Oa.default)(t)||t===t.trim(),pYe={}.toString();function Sre(){return new v0}var v0=class extends cYe.default{constructor(){super({type:"string"});this.withMutation(()=>{this.transform(function(e){if(this.isType(e)||Array.isArray(e))return e;let r=e!=null&&e.toString?e.toString():e;return r===pYe?e:r})})}_typeCheck(e){return e instanceof String&&(e=e.valueOf()),typeof e=="string"}_isPresent(e){return super._isPresent(e)&&!!e.length}length(e,r=Ro.string.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(i){return(0,Oa.default)(i)||i.length===this.resolve(e)}})}min(e,r=Ro.string.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Oa.default)(i)||i.length>=this.resolve(e)}})}max(e,r=Ro.string.max){return this.test({name:"max",exclusive:!0,message:r,params:{max:e},test(i){return(0,Oa.default)(i)||i.length<=this.resolve(e)}})}matches(e,r){let i=!1,n,s;return r&&(typeof r=="object"?{excludeEmptyString:i=!1,message:n,name:s}=r:n=r),this.test({name:s||"matches",message:n||Ro.string.matches,params:{regex:e},test:o=>(0,Oa.default)(o)||o===""&&i||o.search(e)!==-1})}email(e=Ro.string.email){return this.matches(uYe,{name:"email",message:e,excludeEmptyString:!0})}url(e=Ro.string.url){return this.matches(gYe,{name:"url",message:e,excludeEmptyString:!0})}uuid(e=Ro.string.uuid){return this.matches(fYe,{name:"uuid",message:e,excludeEmptyString:!1})}ensure(){return this.default("").transform(e=>e===null?"":e)}trim(e=Ro.string.trim){return this.transform(r=>r!=null?r.trim():r).test({message:e,name:"trim",test:hYe})}lowercase(e=Ro.string.lowercase){return this.transform(r=>(0,Oa.default)(r)?r:r.toLowerCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Oa.default)(r)||r===r.toLowerCase()})}uppercase(e=Ro.string.uppercase){return this.transform(r=>(0,Oa.default)(r)?r:r.toUpperCase()).test({message:e,name:"string_case",exclusive:!0,test:r=>(0,Oa.default)(r)||r===r.toUpperCase()})}};Vd.default=v0;Sre.prototype=v0.prototype});var Rre=E(_d=>{"use strict";Object.defineProperty(_d,"__esModule",{value:!0});_d.create=Pre;_d.default=void 0;var Rc=La(),Fc=Dre(Zg()),dYe=Dre(Ma());function Dre(t){return t&&t.__esModule?t:{default:t}}var CYe=t=>t!=+t;function Pre(){return new S0}var S0=class extends dYe.default{constructor(){super({type:"number"});this.withMutation(()=>{this.transform(function(e){let r=e;if(typeof r=="string"){if(r=r.replace(/\s/g,""),r==="")return NaN;r=+r}return this.isType(r)?r:parseFloat(r)})})}_typeCheck(e){return e instanceof Number&&(e=e.valueOf()),typeof e=="number"&&!CYe(e)}min(e,r=Rc.number.min){return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,Fc.default)(i)||i>=this.resolve(e)}})}max(e,r=Rc.number.max){return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,Fc.default)(i)||i<=this.resolve(e)}})}lessThan(e,r=Rc.number.lessThan){return this.test({message:r,name:"max",exclusive:!0,params:{less:e},test(i){return(0,Fc.default)(i)||ithis.resolve(e)}})}positive(e=Rc.number.positive){return this.moreThan(0,e)}negative(e=Rc.number.negative){return this.lessThan(0,e)}integer(e=Rc.number.integer){return this.test({name:"integer",message:e,test:r=>(0,Fc.default)(r)||Number.isInteger(r)})}truncate(){return this.transform(e=>(0,Fc.default)(e)?e:e|0)}round(e){var r,i=["ceil","floor","round","trunc"];if(e=((r=e)==null?void 0:r.toLowerCase())||"round",e==="trunc")return this.truncate();if(i.indexOf(e.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+i.join(", "));return this.transform(n=>(0,Fc.default)(n)?n:Math[e](n))}};_d.default=S0;Pre.prototype=S0.prototype});var Fre=E($F=>{"use strict";Object.defineProperty($F,"__esModule",{value:!0});$F.default=mYe;var EYe=/^(\d{4}|[+\-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,\.](\d{1,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?)?)?$/;function mYe(t){var e=[1,4,5,6,7,10,11],r=0,i,n;if(n=EYe.exec(t)){for(var s=0,o;o=e[s];++s)n[o]=+n[o]||0;n[2]=(+n[2]||1)-1,n[3]=+n[3]||1,n[7]=n[7]?String(n[7]).substr(0,3):0,(n[8]===void 0||n[8]==="")&&(n[9]===void 0||n[9]==="")?i=+new Date(n[1],n[2],n[3],n[4],n[5],n[6],n[7]):(n[8]!=="Z"&&n[9]!==void 0&&(r=n[10]*60+n[11],n[9]==="+"&&(r=0-r)),i=Date.UTC(n[1],n[2],n[3],n[4],n[5]+r,n[6],n[7]))}else i=Date.parse?Date.parse(t):NaN;return i}});var Tre=E(Xd=>{"use strict";Object.defineProperty(Xd,"__esModule",{value:!0});Xd.create=eN;Xd.default=void 0;var IYe=x0(Fre()),Nre=La(),Lre=x0(Zg()),yYe=x0(Dc()),wYe=x0(Ma());function x0(t){return t&&t.__esModule?t:{default:t}}var tN=new Date(""),BYe=t=>Object.prototype.toString.call(t)==="[object Date]";function eN(){return new Zd}var Zd=class extends wYe.default{constructor(){super({type:"date"});this.withMutation(()=>{this.transform(function(e){return this.isType(e)?e:(e=(0,IYe.default)(e),isNaN(e)?tN:new Date(e))})})}_typeCheck(e){return BYe(e)&&!isNaN(e.getTime())}prepareParam(e,r){let i;if(yYe.default.isRef(e))i=e;else{let n=this.cast(e);if(!this._typeCheck(n))throw new TypeError(`\`${r}\` must be a Date or a value that can be \`cast()\` to a Date`);i=n}return i}min(e,r=Nre.date.min){let i=this.prepareParam(e,"min");return this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(n){return(0,Lre.default)(n)||n>=this.resolve(i)}})}max(e,r=Nre.date.max){var i=this.prepareParam(e,"max");return this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(n){return(0,Lre.default)(n)||n<=this.resolve(i)}})}};Xd.default=Zd;Zd.INVALID_DATE=tN;eN.prototype=Zd.prototype;eN.INVALID_DATE=tN});var Ore=E((Ndt,Mre)=>{function QYe(t,e,r,i){var n=-1,s=t==null?0:t.length;for(i&&s&&(r=t[++n]);++n{function bYe(t){return function(e){return t==null?void 0:t[e]}}Kre.exports=bYe});var Gre=E((Tdt,Hre)=>{var vYe=Ure(),SYe={\u00C0:"A",\u00C1:"A",\u00C2:"A",\u00C3:"A",\u00C4:"A",\u00C5:"A",\u00E0:"a",\u00E1:"a",\u00E2:"a",\u00E3:"a",\u00E4:"a",\u00E5:"a",\u00C7:"C",\u00E7:"c",\u00D0:"D",\u00F0:"d",\u00C8:"E",\u00C9:"E",\u00CA:"E",\u00CB:"E",\u00E8:"e",\u00E9:"e",\u00EA:"e",\u00EB:"e",\u00CC:"I",\u00CD:"I",\u00CE:"I",\u00CF:"I",\u00EC:"i",\u00ED:"i",\u00EE:"i",\u00EF:"i",\u00D1:"N",\u00F1:"n",\u00D2:"O",\u00D3:"O",\u00D4:"O",\u00D5:"O",\u00D6:"O",\u00D8:"O",\u00F2:"o",\u00F3:"o",\u00F4:"o",\u00F5:"o",\u00F6:"o",\u00F8:"o",\u00D9:"U",\u00DA:"U",\u00DB:"U",\u00DC:"U",\u00F9:"u",\u00FA:"u",\u00FB:"u",\u00FC:"u",\u00DD:"Y",\u00FD:"y",\u00FF:"y",\u00C6:"Ae",\u00E6:"ae",\u00DE:"Th",\u00FE:"th",\u00DF:"ss",\u0100:"A",\u0102:"A",\u0104:"A",\u0101:"a",\u0103:"a",\u0105:"a",\u0106:"C",\u0108:"C",\u010A:"C",\u010C:"C",\u0107:"c",\u0109:"c",\u010B:"c",\u010D:"c",\u010E:"D",\u0110:"D",\u010F:"d",\u0111:"d",\u0112:"E",\u0114:"E",\u0116:"E",\u0118:"E",\u011A:"E",\u0113:"e",\u0115:"e",\u0117:"e",\u0119:"e",\u011B:"e",\u011C:"G",\u011E:"G",\u0120:"G",\u0122:"G",\u011D:"g",\u011F:"g",\u0121:"g",\u0123:"g",\u0124:"H",\u0126:"H",\u0125:"h",\u0127:"h",\u0128:"I",\u012A:"I",\u012C:"I",\u012E:"I",\u0130:"I",\u0129:"i",\u012B:"i",\u012D:"i",\u012F:"i",\u0131:"i",\u0134:"J",\u0135:"j",\u0136:"K",\u0137:"k",\u0138:"k",\u0139:"L",\u013B:"L",\u013D:"L",\u013F:"L",\u0141:"L",\u013A:"l",\u013C:"l",\u013E:"l",\u0140:"l",\u0142:"l",\u0143:"N",\u0145:"N",\u0147:"N",\u014A:"N",\u0144:"n",\u0146:"n",\u0148:"n",\u014B:"n",\u014C:"O",\u014E:"O",\u0150:"O",\u014D:"o",\u014F:"o",\u0151:"o",\u0154:"R",\u0156:"R",\u0158:"R",\u0155:"r",\u0157:"r",\u0159:"r",\u015A:"S",\u015C:"S",\u015E:"S",\u0160:"S",\u015B:"s",\u015D:"s",\u015F:"s",\u0161:"s",\u0162:"T",\u0164:"T",\u0166:"T",\u0163:"t",\u0165:"t",\u0167:"t",\u0168:"U",\u016A:"U",\u016C:"U",\u016E:"U",\u0170:"U",\u0172:"U",\u0169:"u",\u016B:"u",\u016D:"u",\u016F:"u",\u0171:"u",\u0173:"u",\u0174:"W",\u0175:"w",\u0176:"Y",\u0177:"y",\u0178:"Y",\u0179:"Z",\u017B:"Z",\u017D:"Z",\u017A:"z",\u017C:"z",\u017E:"z",\u0132:"IJ",\u0133:"ij",\u0152:"Oe",\u0153:"oe",\u0149:"'n",\u017F:"s"},xYe=vYe(SYe);Hre.exports=xYe});var Yre=E((Mdt,jre)=>{var kYe=Gre(),PYe=gg(),DYe=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,RYe="\\u0300-\\u036f",FYe="\\ufe20-\\ufe2f",NYe="\\u20d0-\\u20ff",LYe=RYe+FYe+NYe,TYe="["+LYe+"]",MYe=RegExp(TYe,"g");function OYe(t){return t=PYe(t),t&&t.replace(DYe,kYe).replace(MYe,"")}jre.exports=OYe});var Jre=E((Odt,qre)=>{var KYe=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function UYe(t){return t.match(KYe)||[]}qre.exports=UYe});var zre=E((Kdt,Wre)=>{var HYe=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function GYe(t){return HYe.test(t)}Wre.exports=GYe});var fie=E((Udt,Vre)=>{var _re="\\ud800-\\udfff",jYe="\\u0300-\\u036f",YYe="\\ufe20-\\ufe2f",qYe="\\u20d0-\\u20ff",JYe=jYe+YYe+qYe,Xre="\\u2700-\\u27bf",Zre="a-z\\xdf-\\xf6\\xf8-\\xff",WYe="\\xac\\xb1\\xd7\\xf7",zYe="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",VYe="\\u2000-\\u206f",_Ye=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",$re="A-Z\\xc0-\\xd6\\xd8-\\xde",XYe="\\ufe0e\\ufe0f",eie=WYe+zYe+VYe+_Ye,tie="['\u2019]",rie="["+eie+"]",ZYe="["+JYe+"]",iie="\\d+",$Ye="["+Xre+"]",nie="["+Zre+"]",sie="[^"+_re+eie+iie+Xre+Zre+$re+"]",eqe="\\ud83c[\\udffb-\\udfff]",tqe="(?:"+ZYe+"|"+eqe+")",rqe="[^"+_re+"]",oie="(?:\\ud83c[\\udde6-\\uddff]){2}",aie="[\\ud800-\\udbff][\\udc00-\\udfff]",$g="["+$re+"]",iqe="\\u200d",Aie="(?:"+nie+"|"+sie+")",nqe="(?:"+$g+"|"+sie+")",lie="(?:"+tie+"(?:d|ll|m|re|s|t|ve))?",cie="(?:"+tie+"(?:D|LL|M|RE|S|T|VE))?",uie=tqe+"?",gie="["+XYe+"]?",sqe="(?:"+iqe+"(?:"+[rqe,oie,aie].join("|")+")"+gie+uie+")*",oqe="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",aqe="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Aqe=gie+uie+sqe,lqe="(?:"+[$Ye,oie,aie].join("|")+")"+Aqe,cqe=RegExp([$g+"?"+nie+"+"+lie+"(?="+[rie,$g,"$"].join("|")+")",nqe+"+"+cie+"(?="+[rie,$g+Aie,"$"].join("|")+")",$g+"?"+Aie+"+"+lie,$g+"+"+cie,aqe,oqe,iie,lqe].join("|"),"g");function uqe(t){return t.match(cqe)||[]}Vre.exports=uqe});var pie=E((Hdt,hie)=>{var gqe=Jre(),fqe=zre(),hqe=gg(),pqe=fie();function dqe(t,e,r){return t=hqe(t),e=r?void 0:e,e===void 0?fqe(t)?pqe(t):gqe(t):t.match(e)||[]}hie.exports=dqe});var rN=E((Gdt,die)=>{var Cqe=Ore(),mqe=Yre(),Eqe=pie(),Iqe="['\u2019]",yqe=RegExp(Iqe,"g");function wqe(t){return function(e){return Cqe(Eqe(mqe(e).replace(yqe,"")),t,"")}}die.exports=wqe});var mie=E((jdt,Cie)=>{var Bqe=rN(),Qqe=Bqe(function(t,e,r){return t+(r?"_":"")+e.toLowerCase()});Cie.exports=Qqe});var Iie=E((Ydt,Eie)=>{var bqe=ZP(),vqe=rN(),Sqe=vqe(function(t,e,r){return e=e.toLowerCase(),t+(r?bqe(e):e)});Eie.exports=Sqe});var wie=E((qdt,yie)=>{var xqe=jg(),kqe=SF(),Pqe=jF();function Dqe(t,e){var r={};return e=Pqe(e,3),kqe(t,function(i,n,s){xqe(r,e(i,n,s),i)}),r}yie.exports=Dqe});var Qie=E((Jdt,iN)=>{iN.exports=function(t){return Bie(Rqe(t),t)};iN.exports.array=Bie;function Bie(t,e){var r=t.length,i=new Array(r),n={},s=r,o=Fqe(e),a=Nqe(t);for(e.forEach(function(c){if(!a.has(c[0])||!a.has(c[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});s--;)n[s]||l(t[s],s,new Set);return i;function l(c,u,g){if(g.has(c)){var f;try{f=", node was:"+JSON.stringify(c)}catch(d){f=""}throw new Error("Cyclic dependency"+f)}if(!a.has(c))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(c));if(!n[u]){n[u]=!0;var h=o.get(c)||new Set;if(h=Array.from(h),u=h.length){g.add(c);do{var p=h[--u];l(p,a.get(p),g)}while(u);g.delete(c)}i[--r]=c}}}function Rqe(t){for(var e=new Set,r=0,i=t.length;r{"use strict";Object.defineProperty(nN,"__esModule",{value:!0});nN.default=Lqe;var Tqe=k0(Ld()),Mqe=k0(Qie()),Oqe=Yd(),Kqe=k0(Dc()),Uqe=k0(qg());function k0(t){return t&&t.__esModule?t:{default:t}}function Lqe(t,e=[]){let r=[],i=[];function n(s,o){var a=(0,Oqe.split)(s)[0];~i.indexOf(a)||i.push(a),~e.indexOf(`${o}-${a}`)||r.push([o,a])}for(let s in t)if((0,Tqe.default)(t,s)){let o=t[s];~i.indexOf(s)||i.push(s),Kqe.default.isRef(o)&&o.isSibling?n(o.path,s):(0,Uqe.default)(o)&&"deps"in o&&o.deps.forEach(a=>n(a,s))}return Mqe.default.array(i,r).reverse()}});var Sie=E(sN=>{"use strict";Object.defineProperty(sN,"__esModule",{value:!0});sN.default=Hqe;function vie(t,e){let r=Infinity;return t.some((i,n)=>{var s;if(((s=e.path)==null?void 0:s.indexOf(i))!==-1)return r=n,!0}),r}function Hqe(t){return(e,r)=>vie(t,e)-vie(t,r)}});var Nie=E($d=>{"use strict";Object.defineProperty($d,"__esModule",{value:!0});$d.create=xie;$d.default=void 0;var kie=Fo(Ld()),Pie=Fo(mie()),Gqe=Fo(Iie()),jqe=Fo(wie()),Yqe=Fo(YF()),qqe=Yd(),Die=La(),Jqe=Fo(bie()),Rie=Fo(Sie()),Wqe=Fo(a0()),zqe=Fo(xc()),oN=Fo(Ma());function Fo(t){return t&&t.__esModule?t:{default:t}}function ef(){return ef=Object.assign||function(t){for(var e=1;eObject.prototype.toString.call(t)==="[object Object]";function Vqe(t,e){let r=Object.keys(t.fields);return Object.keys(e).filter(i=>r.indexOf(i)===-1)}var _qe=(0,Rie.default)([]),P0=class extends oN.default{constructor(e){super({type:"object"});this.fields=Object.create(null),this._sortErrors=_qe,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{this.transform(function(i){if(typeof i=="string")try{i=JSON.parse(i)}catch(n){i=null}return this.isType(i)?i:null}),e&&this.shape(e)})}_typeCheck(e){return Fie(e)||typeof e=="function"}_cast(e,r={}){var i;let n=super._cast(e,r);if(n===void 0)return this.getDefault();if(!this._typeCheck(n))return n;let s=this.fields,o=(i=r.stripUnknown)!=null?i:this.spec.noUnknown,a=this._nodes.concat(Object.keys(n).filter(g=>this._nodes.indexOf(g)===-1)),l={},c=ef({},r,{parent:l,__validating:r.__validating||!1}),u=!1;for(let g of a){let f=s[g],h=(0,kie.default)(n,g);if(f){let p,d=n[g];c.path=(r.path?`${r.path}.`:"")+g,f=f.resolve({value:d,context:r.context,parent:l});let m="spec"in f?f.spec:void 0,I=m==null?void 0:m.strict;if(m==null?void 0:m.strip){u=u||g in n;continue}p=!r.__validating||!I?f.cast(n[g],c):n[g],p!==void 0&&(l[g]=p)}else h&&!o&&(l[g]=n[g]);l[g]!==n[g]&&(u=!0)}return u?l:n}_validate(e,r={},i){let n=[],{sync:s,from:o=[],originalValue:a=e,abortEarly:l=this.spec.abortEarly,recursive:c=this.spec.recursive}=r;o=[{schema:this,value:a},...o],r.__validating=!0,r.originalValue=a,r.from=o,super._validate(e,r,(u,g)=>{if(u){if(!zqe.default.isError(u)||l)return void i(u,g);n.push(u)}if(!c||!Fie(g)){i(n[0]||null,g);return}a=a||g;let f=this._nodes.map(h=>(p,d)=>{let m=h.indexOf(".")===-1?(r.path?`${r.path}.`:"")+h:`${r.path||""}["${h}"]`,I=this.fields[h];if(I&&"validate"in I){I.validate(g[h],ef({},r,{path:m,from:o,strict:!0,parent:g,originalValue:a[h]}),d);return}d(null)});(0,Wqe.default)({sync:s,tests:f,value:g,errors:n,endEarly:l,sort:this._sortErrors,path:r.path},i)})}clone(e){let r=super.clone(e);return r.fields=ef({},this.fields),r._nodes=this._nodes,r._excludedEdges=this._excludedEdges,r._sortErrors=this._sortErrors,r}concat(e){let r=super.concat(e),i=r.fields;for(let[n,s]of Object.entries(this.fields)){let o=i[n];o===void 0?i[n]=s:o instanceof oN.default&&s instanceof oN.default&&(i[n]=s.concat(o))}return r.withMutation(()=>r.shape(i))}getDefaultFromShape(){let e={};return this._nodes.forEach(r=>{let i=this.fields[r];e[r]="default"in i?i.getDefault():void 0}),e}_getDefault(){if("default"in this.spec)return super._getDefault();if(!!this._nodes.length)return this.getDefaultFromShape()}shape(e,r=[]){let i=this.clone(),n=Object.assign(i.fields,e);if(i.fields=n,i._sortErrors=(0,Rie.default)(Object.keys(n)),r.length){Array.isArray(r[0])||(r=[r]);let s=r.map(([o,a])=>`${o}-${a}`);i._excludedEdges=i._excludedEdges.concat(s)}return i._nodes=(0,Jqe.default)(n,i._excludedEdges),i}pick(e){let r={};for(let i of e)this.fields[i]&&(r[i]=this.fields[i]);return this.clone().withMutation(i=>(i.fields={},i.shape(r)))}omit(e){let r=this.clone(),i=r.fields;r.fields={};for(let n of e)delete i[n];return r.withMutation(()=>r.shape(i))}from(e,r,i){let n=(0,qqe.getter)(e,!0);return this.transform(s=>{if(s==null)return s;let o=s;return(0,kie.default)(s,e)&&(o=ef({},s),i||delete o[e],o[r]=n(s)),o})}noUnknown(e=!0,r=Die.object.noUnknown){typeof e=="string"&&(r=e,e=!0);let i=this.test({name:"noUnknown",exclusive:!0,message:r,test(n){if(n==null)return!0;let s=Vqe(this.schema,n);return!e||s.length===0||this.createError({params:{unknown:s.join(", ")}})}});return i.spec.noUnknown=e,i}unknown(e=!0,r=Die.object.noUnknown){return this.noUnknown(!e,r)}transformKeys(e){return this.transform(r=>r&&(0,jqe.default)(r,(i,n)=>e(n)))}camelCase(){return this.transformKeys(Gqe.default)}snakeCase(){return this.transformKeys(Pie.default)}constantCase(){return this.transformKeys(e=>(0,Pie.default)(e).toUpperCase())}describe(){let e=super.describe();return e.fields=(0,Yqe.default)(this.fields,r=>r.describe()),e}};$d.default=P0;function xie(t){return new P0(t)}xie.prototype=P0.prototype});var Tie=E(eC=>{"use strict";Object.defineProperty(eC,"__esModule",{value:!0});eC.create=Lie;eC.default=void 0;var aN=tf(Zg()),Xqe=tf(qg()),Zqe=tf(Nd()),AN=La(),$qe=tf(a0()),eJe=tf(xc()),tJe=tf(Ma());function tf(t){return t&&t.__esModule?t:{default:t}}function D0(){return D0=Object.assign||function(t){for(var e=1;e{this.transform(function(r){if(typeof r=="string")try{r=JSON.parse(r)}catch(i){r=null}return this.isType(r)?r:null})})}_typeCheck(e){return Array.isArray(e)}get _subType(){return this.innerType}_cast(e,r){let i=super._cast(e,r);if(!this._typeCheck(i)||!this.innerType)return i;let n=!1,s=i.map((o,a)=>{let l=this.innerType.cast(o,D0({},r,{path:`${r.path||""}[${a}]`}));return l!==o&&(n=!0),l});return n?s:i}_validate(e,r={},i){var n,s;let o=[],a=r.sync,l=r.path,c=this.innerType,u=(n=r.abortEarly)!=null?n:this.spec.abortEarly,g=(s=r.recursive)!=null?s:this.spec.recursive,f=r.originalValue!=null?r.originalValue:e;super._validate(e,r,(h,p)=>{if(h){if(!eJe.default.isError(h)||u)return void i(h,p);o.push(h)}if(!g||!c||!this._typeCheck(p)){i(o[0]||null,p);return}f=f||p;let d=new Array(p.length);for(let m=0;mc.validate(I,b,H)}(0,$qe.default)({sync:a,path:l,value:p,errors:o,endEarly:u,tests:d},i)})}clone(e){let r=super.clone(e);return r.innerType=this.innerType,r}concat(e){let r=super.concat(e);return r.innerType=this.innerType,e.innerType&&(r.innerType=r.innerType?r.innerType.concat(e.innerType):e.innerType),r}of(e){let r=this.clone();if(!(0,Xqe.default)(e))throw new TypeError("`array.of()` sub-schema must be a valid yup schema not: "+(0,Zqe.default)(e));return r.innerType=e,r}length(e,r=AN.array.length){return this.test({message:r,name:"length",exclusive:!0,params:{length:e},test(i){return(0,aN.default)(i)||i.length===this.resolve(e)}})}min(e,r){return r=r||AN.array.min,this.test({message:r,name:"min",exclusive:!0,params:{min:e},test(i){return(0,aN.default)(i)||i.length>=this.resolve(e)}})}max(e,r){return r=r||AN.array.max,this.test({message:r,name:"max",exclusive:!0,params:{max:e},test(i){return(0,aN.default)(i)||i.length<=this.resolve(e)}})}ensure(){return this.default(()=>[]).transform((e,r)=>this._typeCheck(e)?e:r==null?[]:[].concat(r))}compact(e){let r=e?(i,n,s)=>!e(i,n,s):i=>!!i;return this.transform(i=>i!=null?i.filter(r):i)}describe(){let e=super.describe();return this.innerType&&(e.innerType=this.innerType.describe()),e}nullable(e=!0){return super.nullable(e)}defined(){return super.defined()}required(e){return super.required(e)}};eC.default=R0;Lie.prototype=R0.prototype});var Mie=E(tC=>{"use strict";Object.defineProperty(tC,"__esModule",{value:!0});tC.create=rJe;tC.default=void 0;var nJe=iJe(qg());function iJe(t){return t&&t.__esModule?t:{default:t}}function rJe(t){return new lN(t)}var lN=class{constructor(e){this.type="lazy",this.__isYupSchema__=!0,this._resolve=(r,i={})=>{let n=this.builder(r,i);if(!(0,nJe.default)(n))throw new TypeError("lazy() functions must return a valid schema");return n.resolve(i)},this.builder=e}resolve(e){return this._resolve(e.value,e)}cast(e,r){return this._resolve(e,r).cast(e,r)}validate(e,r,i){return this._resolve(e,r).validate(e,r,i)}validateSync(e,r){return this._resolve(e,r).validateSync(e,r)}validateAt(e,r,i){return this._resolve(r,i).validateAt(e,r,i)}validateSyncAt(e,r,i){return this._resolve(r,i).validateSyncAt(e,r,i)}describe(){return null}isValid(e,r){return this._resolve(e,r).isValid(e,r)}isValidSync(e,r){return this._resolve(e,r).isValidSync(e,r)}},sJe=lN;tC.default=sJe});var Oie=E(cN=>{"use strict";Object.defineProperty(cN,"__esModule",{value:!0});cN.default=oJe;var AJe=aJe(La());function aJe(t){return t&&t.__esModule?t:{default:t}}function oJe(t){Object.keys(t).forEach(e=>{Object.keys(t[e]).forEach(r=>{AJe.default[e][r]=t[e][r]})})}});var gN=E(cr=>{"use strict";Object.defineProperty(cr,"__esModule",{value:!0});cr.addMethod=lJe;Object.defineProperty(cr,"MixedSchema",{enumerable:!0,get:function(){return Kie.default}});Object.defineProperty(cr,"mixed",{enumerable:!0,get:function(){return Kie.create}});Object.defineProperty(cr,"BooleanSchema",{enumerable:!0,get:function(){return uN.default}});Object.defineProperty(cr,"bool",{enumerable:!0,get:function(){return uN.create}});Object.defineProperty(cr,"boolean",{enumerable:!0,get:function(){return uN.create}});Object.defineProperty(cr,"StringSchema",{enumerable:!0,get:function(){return Uie.default}});Object.defineProperty(cr,"string",{enumerable:!0,get:function(){return Uie.create}});Object.defineProperty(cr,"NumberSchema",{enumerable:!0,get:function(){return Hie.default}});Object.defineProperty(cr,"number",{enumerable:!0,get:function(){return Hie.create}});Object.defineProperty(cr,"DateSchema",{enumerable:!0,get:function(){return Gie.default}});Object.defineProperty(cr,"date",{enumerable:!0,get:function(){return Gie.create}});Object.defineProperty(cr,"ObjectSchema",{enumerable:!0,get:function(){return jie.default}});Object.defineProperty(cr,"object",{enumerable:!0,get:function(){return jie.create}});Object.defineProperty(cr,"ArraySchema",{enumerable:!0,get:function(){return Yie.default}});Object.defineProperty(cr,"array",{enumerable:!0,get:function(){return Yie.create}});Object.defineProperty(cr,"ref",{enumerable:!0,get:function(){return cJe.create}});Object.defineProperty(cr,"lazy",{enumerable:!0,get:function(){return uJe.create}});Object.defineProperty(cr,"ValidationError",{enumerable:!0,get:function(){return gJe.default}});Object.defineProperty(cr,"reach",{enumerable:!0,get:function(){return fJe.default}});Object.defineProperty(cr,"isSchema",{enumerable:!0,get:function(){return qie.default}});Object.defineProperty(cr,"setLocale",{enumerable:!0,get:function(){return hJe.default}});Object.defineProperty(cr,"BaseSchema",{enumerable:!0,get:function(){return pJe.default}});var Kie=Nc(yre()),uN=Nc(vre()),Uie=Nc(kre()),Hie=Nc(Rre()),Gie=Nc(Tre()),jie=Nc(Nie()),Yie=Nc(Tie()),cJe=Dc(),uJe=Mie(),gJe=rC(xc()),fJe=rC(XF()),qie=rC(qg()),hJe=rC(Oie()),pJe=rC(Ma());function rC(t){return t&&t.__esModule?t:{default:t}}function Jie(){if(typeof WeakMap!="function")return null;var t=new WeakMap;return Jie=function(){return t},t}function Nc(t){if(t&&t.__esModule)return t;if(t===null||typeof t!="object"&&typeof t!="function")return{default:t};var e=Jie();if(e&&e.has(t))return e.get(t);var r={},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=i?Object.getOwnPropertyDescriptor(t,n):null;s&&(s.get||s.set)?Object.defineProperty(r,n,s):r[n]=t[n]}return r.default=t,e&&e.set(t,r),r}function lJe(t,e,r){if(!t||!(0,qie.default)(t.prototype))throw new TypeError("You must provide a yup schema constructor function");if(typeof e!="string")throw new TypeError("A Method name must be provided");if(typeof r!="function")throw new TypeError("Method function must be provided");t.prototype[e]=r}});var Xie=E((gCt,nC)=>{"use strict";var mJe=process.env.TERM_PROGRAM==="Hyper",EJe=process.platform==="win32",zie=process.platform==="linux",fN={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},Vie=Object.assign({},fN,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),_ie=Object.assign({},fN,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:zie?"\u25B8":"\u276F",pointerSmall:zie?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});nC.exports=EJe&&!mJe?Vie:_ie;Reflect.defineProperty(nC.exports,"common",{enumerable:!1,value:fN});Reflect.defineProperty(nC.exports,"windows",{enumerable:!1,value:Vie});Reflect.defineProperty(nC.exports,"other",{enumerable:!1,value:_ie})});var js=E((fCt,hN)=>{"use strict";var IJe=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),yJe=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,Zie=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=s=>{let o=s.open=`[${s.codes[0]}m`,a=s.close=`[${s.codes[1]}m`,l=s.regex=new RegExp(`\\u001b\\[${s.codes[1]}m`,"g");return s.wrap=(c,u)=>{c.includes(a)&&(c=c.replace(l,a+o));let g=o+c+a;return u?g.replace(/\r*\n/g,`${a}$&${o}`):g},s},r=(s,o,a)=>typeof s=="function"?s(o):s.wrap(o,a),i=(s,o)=>{if(s===""||s==null)return"";if(t.enabled===!1)return s;if(t.visible===!1)return"";let a=""+s,l=a.includes(` -`),c=o.length;for(c>0&&o.includes("unstyle")&&(o=[...new Set(["unstyle",...o])].reverse());c-- >0;)a=r(t.styles[o[c]],a,l);return a},n=(s,o,a)=>{t.styles[s]=e({name:s,codes:o}),(t.keys[a]||(t.keys[a]=[])).push(s),Reflect.defineProperty(t,s,{configurable:!0,enumerable:!0,set(c){t.alias(s,c)},get(){let c=u=>i(u,c.stack);return Reflect.setPrototypeOf(c,t),c.stack=this.stack?this.stack.concat(s):[s],c}})};return n("reset",[0,0],"modifier"),n("bold",[1,22],"modifier"),n("dim",[2,22],"modifier"),n("italic",[3,23],"modifier"),n("underline",[4,24],"modifier"),n("inverse",[7,27],"modifier"),n("hidden",[8,28],"modifier"),n("strikethrough",[9,29],"modifier"),n("black",[30,39],"color"),n("red",[31,39],"color"),n("green",[32,39],"color"),n("yellow",[33,39],"color"),n("blue",[34,39],"color"),n("magenta",[35,39],"color"),n("cyan",[36,39],"color"),n("white",[37,39],"color"),n("gray",[90,39],"color"),n("grey",[90,39],"color"),n("bgBlack",[40,49],"bg"),n("bgRed",[41,49],"bg"),n("bgGreen",[42,49],"bg"),n("bgYellow",[43,49],"bg"),n("bgBlue",[44,49],"bg"),n("bgMagenta",[45,49],"bg"),n("bgCyan",[46,49],"bg"),n("bgWhite",[47,49],"bg"),n("blackBright",[90,39],"bright"),n("redBright",[91,39],"bright"),n("greenBright",[92,39],"bright"),n("yellowBright",[93,39],"bright"),n("blueBright",[94,39],"bright"),n("magentaBright",[95,39],"bright"),n("cyanBright",[96,39],"bright"),n("whiteBright",[97,39],"bright"),n("bgBlackBright",[100,49],"bgBright"),n("bgRedBright",[101,49],"bgBright"),n("bgGreenBright",[102,49],"bgBright"),n("bgYellowBright",[103,49],"bgBright"),n("bgBlueBright",[104,49],"bgBright"),n("bgMagentaBright",[105,49],"bgBright"),n("bgCyanBright",[106,49],"bgBright"),n("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=yJe,t.hasColor=t.hasAnsi=s=>(t.ansiRegex.lastIndex=0,typeof s=="string"&&s!==""&&t.ansiRegex.test(s)),t.alias=(s,o)=>{let a=typeof o=="string"?t[o]:o;if(typeof a!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");a.stack||(Reflect.defineProperty(a,"name",{value:s}),t.styles[s]=a,a.stack=[s]),Reflect.defineProperty(t,s,{configurable:!0,enumerable:!0,set(l){t.alias(s,l)},get(){let l=c=>i(c,l.stack);return Reflect.setPrototypeOf(l,t),l.stack=this.stack?this.stack.concat(a.stack):a.stack,l}})},t.theme=s=>{if(!IJe(s))throw new TypeError("Expected theme to be an object");for(let o of Object.keys(s))t.alias(o,s[o]);return t},t.alias("unstyle",s=>typeof s=="string"&&s!==""?(t.ansiRegex.lastIndex=0,s.replace(t.ansiRegex,"")):""),t.alias("noop",s=>s),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=Xie(),t.define=n,t};hN.exports=Zie();hN.exports.create=Zie});var Mi=E(bt=>{"use strict";var wJe=Object.prototype.toString,Cs=js(),$ie=!1,pN=[],ene={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};bt.longest=(t,e)=>t.reduce((r,i)=>Math.max(r,e?i[e].length:i.length),0);bt.hasColor=t=>!!t&&Cs.hasColor(t);var N0=bt.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);bt.nativeType=t=>wJe.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");bt.isAsyncFn=t=>bt.nativeType(t)==="asyncfunction";bt.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";bt.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;bt.scrollDown=(t=[])=>[...t.slice(1),t[0]];bt.scrollUp=(t=[])=>[t.pop(),...t];bt.reorder=(t=[])=>{let e=t.slice();return e.sort((r,i)=>r.index>i.index?1:r.index{let i=t.length,n=r===i?0:r<0?i-1:r,s=t[e];t[e]=t[n],t[n]=s};bt.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};bt.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};bt.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:i=` -`+r,width:n=80}=e;n-=((i+r).match(/[^\S\n]/g)||[]).length;let o=`.{1,${n}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,a=t.trim(),l=new RegExp(o,"g"),c=a.match(l)||[];return c=c.map(u=>u.replace(/\n$/,"")),e.padEnd&&(c=c.map(u=>u.padEnd(n," "))),e.padStart&&(c=c.map(u=>u.padStart(n," "))),r+c.join(i)};bt.unmute=t=>{let e=t.stack.find(i=>Cs.keys.color.includes(i));return e?Cs[e]:t.stack.find(i=>i.slice(2)==="bg")?Cs[e.slice(2)]:i=>i};bt.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";bt.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(i=>Cs.keys.color.includes(i));if(e){let i=Cs["bg"+bt.pascal(e)];return i?i.black:t}let r=t.stack.find(i=>i.slice(0,2)==="bg");return r?Cs[r.slice(2).toLowerCase()]||t:Cs.none};bt.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(i=>Cs.keys.color.includes(i)),r=t.stack.find(i=>i.slice(0,2)==="bg");if(e&&!r)return Cs[ene[e]||e];if(r){let i=r.slice(2).toLowerCase(),n=ene[i];return n&&Cs["bg"+bt.pascal(n)]||t}return Cs.none};bt.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),i=e>=12?"pm":"am";e=e%12;let n=e===0?12:e,s=r<10?"0"+r:r;return n+":"+s+" "+i};bt.set=(t={},e="",r)=>e.split(".").reduce((i,n,s,o)=>{let a=o.length-1>s?i[n]||{}:r;return!bt.isObject(a)&&s{let i=t[e]==null?e.split(".").reduce((n,s)=>n&&n[s],t):t[e];return i==null?r:i};bt.mixin=(t,e)=>{if(!N0(t))return e;if(!N0(e))return t;for(let r of Object.keys(e)){let i=Object.getOwnPropertyDescriptor(e,r);if(i.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&N0(i.value)){let n=Object.getOwnPropertyDescriptor(t,r);N0(n.value)?t[r]=bt.merge({},t[r],e[r]):Reflect.defineProperty(t,r,i)}else Reflect.defineProperty(t,r,i);else Reflect.defineProperty(t,r,i)}return t};bt.merge=(...t)=>{let e={};for(let r of t)bt.mixin(e,r);return e};bt.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let i of Object.keys(r)){let n=r[i];typeof n=="function"?bt.define(t,i,n.bind(e)):bt.define(t,i,n)}};bt.onExit=t=>{let e=(r,i)=>{$ie||($ie=!0,pN.forEach(n=>n()),r===!0&&process.exit(128+i))};pN.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),pN.push(t)};bt.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};bt.defineExport=(t,e,r)=>{let i;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(n){i=n},get(){return i?i():r()}})}});var tne=E(nf=>{"use strict";nf.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};nf.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};nf.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};nf.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};nf.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var nne=E((dCt,rne)=>{"use strict";var ine=require("readline"),BJe=tne(),QJe=/^(?:\x1b)([a-zA-Z0-9])$/,bJe=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,vJe={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function SJe(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function xJe(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var L0=(t="",e={})=>{let r,i=P({name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t},e);if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t=""+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=i.sequence||""),i.sequence=i.sequence||t||i.name,t==="\r")i.raw=void 0,i.name="return";else if(t===` -`)i.name="enter";else if(t===" ")i.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x7F"||t==="\b")i.name="backspace",i.meta=t.charAt(0)==="";else if(t===""||t==="")i.name="escape",i.meta=t.length===2;else if(t===" "||t===" ")i.name="space",i.meta=t.length===2;else if(t<="")i.name=String.fromCharCode(t.charCodeAt(0)+"a".charCodeAt(0)-1),i.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")i.name="number";else if(t.length===1&&t>="a"&&t<="z")i.name=t;else if(t.length===1&&t>="A"&&t<="Z")i.name=t.toLowerCase(),i.shift=!0;else if(r=QJe.exec(t))i.meta=!0,i.shift=/^[A-Z]$/.test(r[1]);else if(r=bJe.exec(t)){let n=[...t];n[0]===""&&n[1]===""&&(i.option=!0);let s=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),o=(r[3]||r[5]||1)-1;i.ctrl=!!(o&4),i.meta=!!(o&10),i.shift=!!(o&1),i.code=s,i.name=vJe[s],i.shift=SJe(s)||i.shift,i.ctrl=xJe(s)||i.ctrl}return i};L0.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let i=ine.createInterface({terminal:!0,input:r});ine.emitKeypressEvents(r,i);let n=(a,l)=>e(a,L0(a,l),i),s=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",n),i.resume(),()=>{r.isTTY&&r.setRawMode(s),r.removeListener("keypress",n),i.pause(),i.close()}};L0.action=(t,e,r)=>{let i=P(P({},BJe),r);return e.ctrl?(e.action=i.ctrl[e.name],e):e.option&&i.option?(e.action=i.option[e.name],e):e.shift?(e.action=i.shift[e.name],e):(e.action=i.keys[e.name],e)};rne.exports=L0});var one=E((CCt,sne)=>{"use strict";sne.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(!!e)for(let r of Object.keys(e)){let i=e[r];typeof i=="number"&&(i={interval:i}),kJe(t,r,i)}};function kJe(t,e,r={}){let i=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},n=r.interval||120;i.frames=r.frames||[],i.loading=!0;let s=setInterval(()=>{i.ms=Date.now()-i.start,i.tick++,t.render()},n);return i.stop=()=>{i.loading=!1,clearInterval(s)},Reflect.defineProperty(i,"interval",{value:s}),t.once("close",()=>i.stop()),i.stop}});var lne=E((mCt,ane)=>{"use strict";var{define:PJe,width:DJe}=Mi(),Ane=class{constructor(e){let r=e.options;PJe(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=DJe(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e=P({},this);return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};ane.exports=Ane});var une=E((ECt,cne)=>{"use strict";var dN=Mi(),yi=js(),CN={default:yi.noop,noop:yi.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||dN.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||dN.complement(this.primary)},primary:yi.cyan,success:yi.green,danger:yi.magenta,strong:yi.bold,warning:yi.yellow,muted:yi.dim,disabled:yi.gray,dark:yi.dim.gray,underline:yi.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};CN.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(yi.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(yi.visible=t.styles.visible);let e=dN.merge({},CN,t.styles);delete e.merge;for(let r of Object.keys(yi))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>yi[r]});for(let r of Object.keys(yi.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>yi[r]});return e};cne.exports=CN});var fne=E((ICt,gne)=>{"use strict";var mN=process.platform==="win32",Ka=js(),RJe=Mi(),EN=_(P({},Ka.symbols),{upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Ka.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Ka.symbols.question,submitted:Ka.symbols.check,cancelled:Ka.symbols.cross},separator:{pending:Ka.symbols.pointerSmall,submitted:Ka.symbols.middot,cancelled:Ka.symbols.middot},radio:{off:mN?"( )":"\u25EF",on:mN?"(*)":"\u25C9",disabled:mN?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]});EN.merge=t=>{let e=RJe.merge({},Ka.symbols,EN,t.symbols);return delete e.merge,e};gne.exports=EN});var pne=E((yCt,hne)=>{"use strict";var FJe=une(),NJe=fne(),LJe=Mi();hne.exports=t=>{t.options=LJe.merge({},t.options.theme,t.options),t.symbols=NJe.merge(t.options),t.styles=FJe.merge(t.options)}});var Ine=E((dne,Cne)=>{"use strict";var mne=process.env.TERM_PROGRAM==="Apple_Terminal",TJe=js(),IN=Mi(),Ys=Cne.exports=dne,Ir="[",Ene="\x07",yN=!1,HA=Ys.code={bell:Ene,beep:Ene,beginning:`${Ir}G`,down:`${Ir}J`,esc:Ir,getPosition:`${Ir}6n`,hide:`${Ir}?25l`,line:`${Ir}2K`,lineEnd:`${Ir}K`,lineStart:`${Ir}1K`,restorePosition:Ir+(mne?"8":"u"),savePosition:Ir+(mne?"7":"s"),screen:`${Ir}2J`,show:`${Ir}?25h`,up:`${Ir}1J`},Lc=Ys.cursor={get hidden(){return yN},hide(){return yN=!0,HA.hide},show(){return yN=!1,HA.show},forward:(t=1)=>`${Ir}${t}C`,backward:(t=1)=>`${Ir}${t}D`,nextLine:(t=1)=>`${Ir}E`.repeat(t),prevLine:(t=1)=>`${Ir}F`.repeat(t),up:(t=1)=>t?`${Ir}${t}A`:"",down:(t=1)=>t?`${Ir}${t}B`:"",right:(t=1)=>t?`${Ir}${t}C`:"",left:(t=1)=>t?`${Ir}${t}D`:"",to(t,e){return e?`${Ir}${e+1};${t+1}H`:`${Ir}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?Lc.left(-t):t>0?Lc.right(t):"",r+=e<0?Lc.up(-e):e>0?Lc.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:i,input:n,prompt:s,size:o,value:a}=t;if(i=IN.isPrimitive(i)?String(i):"",n=IN.isPrimitive(n)?String(n):"",a=IN.isPrimitive(a)?String(a):"",o){let l=Ys.cursor.up(o)+Ys.cursor.to(s.length),c=n.length-r;return c>0&&(l+=Ys.cursor.left(c)),l}if(a||e){let l=!n&&!!i?-i.length:-n.length+r;return e&&(l-=e.length),n===""&&i&&!s.includes(i)&&(l+=i.length),Ys.cursor.move(l)}}},wN=Ys.erase={screen:HA.screen,up:HA.up,down:HA.down,line:HA.line,lineEnd:HA.lineEnd,lineStart:HA.lineStart,lines(t){let e="";for(let r=0;r{if(!e)return wN.line+Lc.to(0);let r=s=>[...TJe.unstyle(s)].length,i=t.split(/\r?\n/),n=0;for(let s of i)n+=1+Math.floor(Math.max(r(s)-1,0)/e);return(wN.line+Lc.prevLine()).repeat(n-1)+wN.line+Lc.to(0)}});var sf=E((wCt,yne)=>{"use strict";var MJe=require("events"),wne=js(),BN=nne(),OJe=one(),KJe=lne(),UJe=pne(),bn=Mi(),Tc=Ine(),T0=class extends MJe{constructor(e={}){super();this.name=e.name,this.type=e.type,this.options=e,UJe(this),OJe(this),this.state=new KJe(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=GJe(this.options.margin),this.setMaxListeners(0),HJe(this)}async keypress(e,r={}){this.keypressed=!0;let i=BN.action(e,BN(e,r),this.options.actions);this.state.keypress=i,this.emit("keypress",e,i),this.emit("state",this.state.clone());let n=this.options[i.action]||this[i.action]||this.dispatch;if(typeof n=="function")return await n.call(this,e,i);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Tc.code.beep)}cursorHide(){this.stdout.write(Tc.cursor.hide()),bn.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Tc.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Tc.cursor.down(e)+Tc.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:i}=this.sections(),{cursor:n,initial:s="",input:o="",value:a=""}=this,l=this.state.size=i.length,c={after:r,cursor:n,initial:s,input:o,prompt:e,size:l,value:a},u=Tc.cursor.restore(c);u&&this.stdout.write(u)}sections(){let{buffer:e,input:r,prompt:i}=this.state;i=wne.unstyle(i);let n=wne.unstyle(e),s=n.indexOf(i),o=n.slice(0,s),l=n.slice(s).split(` -`),c=l[0],u=l[l.length-1],f=(i+(r?" "+r:"")).length,h=fe.call(this,this.value),this.result=()=>i.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let n=r.onSubmit.bind(this),s=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await n(this.name,this.value,this),s())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,i){let{options:n,state:s,symbols:o,timers:a}=this,l=a&&a[e];s.timer=l;let c=n[e]||s[e]||o[e],u=r&&r[e]!=null?r[e]:await c;if(u==="")return u;let g=await this.resolve(u,s,r,i);return!g&&r&&r[e]?this.resolve(c,s,r,i):g}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,i=this.state;return i.timer=r,bn.isObject(e)&&(e=e[i.status]||e.pending),bn.hasColor(e)?e:(this.styles[i.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return bn.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,i=this.state;i.timer=r;let n=e[i.status]||e.pending||i.separator,s=await this.resolve(n,i);return bn.isObject(s)&&(s=s[i.status]||s.pending),bn.hasColor(s)?s:this.styles.muted(s)}async pointer(e,r){let i=await this.element("pointer",e,r);if(typeof i=="string"&&bn.hasColor(i))return i;if(i){let n=this.styles,s=this.index===r,o=s?n.primary:c=>c,a=await this.resolve(i[s?"on":"off"]||i,this.state),l=bn.hasColor(a)?a:o(a);return s?l:" ".repeat(a.length)}}async indicator(e,r){let i=await this.element("indicator",e,r);if(typeof i=="string"&&bn.hasColor(i))return i;if(i){let n=this.styles,s=e.enabled===!0,o=s?n.success:n.dark,a=i[s?"on":"off"]||i;return bn.hasColor(a)?a:o(a)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return bn.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return bn.resolve(this,e,...r)}get base(){return T0.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||bn.height(this.stdout,25)}get width(){return this.options.columns||bn.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,i=[r,e].find(this.isValue.bind(this));return this.isValue(i)?i:this.initial}static get prompt(){return e=>new this(e).run()}};function HJe(t){let e=n=>t[n]===void 0||typeof t[n]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],i=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let n of Object.keys(t.options)){if(r.includes(n)||/^on[A-Z]/.test(n))continue;let s=t.options[n];typeof s=="function"&&e(n)?i.includes(n)||(t[n]=s.bind(t)):typeof t[n]!="function"&&(t[n]=s)}}function GJe(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=n=>n%2==0?` -`:" ",i=[];for(let n=0;n<4;n++){let s=r(n);e[n]?i.push(s.repeat(e[n])):i.push("")}return i}yne.exports=T0});var bne=E((BCt,Bne)=>{"use strict";var jJe=Mi(),Qne={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return Qne.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};Bne.exports=(t,e={})=>{let r=jJe.merge({},Qne,e.roles);return r[t]||r.default}});var sC=E((QCt,vne)=>{"use strict";var YJe=js(),qJe=sf(),JJe=bne(),M0=Mi(),{reorder:QN,scrollUp:WJe,scrollDown:zJe,isObject:Sne,swap:VJe}=M0,xne=class extends qJe{constructor(e){super(e);this.cursorHide(),this.maxSelected=e.maxSelected||Infinity,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:i,suggest:n}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(s=>s.enabled=!1),typeof n!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Sne(r)&&(r=Object.keys(r)),Array.isArray(r)?(i!=null&&(this.index=this.findIndex(i)),r.forEach(s=>this.enable(this.find(s))),await this.render()):(i!=null&&(r=i),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let i=[],n=0,s=async(o,a)=>{typeof o=="function"&&(o=await o.call(this)),o instanceof Promise&&(o=await o);for(let l=0;l(this.state.loadingChoices=!1,o))}async toChoice(e,r,i){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let n=e.value;if(e=JJe(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,M0.define(e,"parent",i),e.level=i?i.level+1:1,e.indent==null&&(e.indent=i?i.indent+" ":e.indent||""),e.path=i?i.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,YJe.unstyle(e.message).length));let o=P({},e);return e.reset=(a=o.input,l=o.value)=>{for(let c of Object.keys(o))e[c]=o[c];e.input=a,e.value=l},n==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,i){let n=await this.toChoice(e,r,i);return this.choices.push(n),this.index=this.choices.length-1,this.limit=this.choices.length,n}async newItem(e,r,i){let n=P({name:"New choice name?",editable:!0,newChoice:!0},e),s=await this.addChoice(n,r,i);return s.updateChoice=()=>{delete s.newChoice,s.name=s.message=s.input,s.input="",s.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(n=>this.toggle(n,r));let i=e.parent;for(;i;){let n=i.choices.filter(s=>this.isDisabled(s));i.enabled=n.every(s=>s.enabled===!0),i=i.parent}return kne(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=i=>{let n=Number(i);if(n>this.choices.length-1)return this.alert();let s=this.focused,o=this.choices.find(a=>n===a.index);if(!o.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(o)===-1){let a=QN(this.choices),l=a.indexOf(o);if(s.index>l){let c=a.slice(l,l+this.limit),u=a.filter(g=>!c.includes(g));this.choices=c.concat(u)}else{let c=l-this.limit+1;this.choices=a.slice(c).concat(a.slice(0,c))}}return this.index=this.choices.indexOf(o),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(i=>{let n=this.choices.length,s=this.num,o=(a=!1,l)=>{clearTimeout(this.numberTimeout),a&&(l=r(s)),this.num="",i(l)};if(s==="0"||s.length===1&&Number(s+"0")>n)return o(!0);if(Number(s)>n)return o(!1,this.alert());this.numberTimeout=setTimeout(()=>o(!0),this.delay)})}home(){return this.choices=QN(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=QN(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,i=this.index;return this.options.scroll===!1&&i===0?this.alert():e>r&&i===0?this.scrollUp():(this.index=(i-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,i=this.index;return this.options.scroll===!1&&i===r-1?this.alert():e>r&&i===r-1?this.scrollDown():(this.index=(i+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=WJe(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=zJe(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){VJe(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(i=>e[i]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(i=>!this.isDisabled(i));return e.enabled&&r.every(i=>this.isEnabled(i))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((i,n)=>(i[n]=this.find(n,r),i),{})}filter(e,r){let i=(a,l)=>[a.name,l].includes(e),n=typeof e=="function"?e:i,o=(this.options.multiple?this.state._choices:this.choices).filter(n);return r?o.map(a=>a[r]):o}find(e,r){if(Sne(e))return r?e[r]:e;let i=(o,a)=>[o.name,a].includes(e),n=typeof e=="function"?e:i,s=this.choices.find(n);if(s)return r?s[r]:s}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(o=>o.newChoice))return this.alert();let{reorder:r,sort:i}=this.options,n=this.multiple===!0,s=this.selected;return s===void 0?this.alert():(Array.isArray(s)&&r!==!1&&i!==!0&&(s=M0.reorder(s)),this.value=n?s.map(o=>o.name):s.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(i=>i.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let i=this.find(r);i&&(this.initial=i.index,this.focus(i,!0))}}}get choices(){return kne(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:i}=this,n=e.limit||this._limit||r.limit||i.length;return Math.min(n,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function kne(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(M0.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let i=r.choices.filter(n=>!t.isDisabled(n));r.enabled=i.every(n=>n.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}vne.exports=xne});var GA=E((bCt,Pne)=>{"use strict";var _Je=sC(),bN=Mi(),Dne=class extends _Je{constructor(e){super(e);this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let i=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!bN.hasColor(i)&&(i=this.styles.strong(i)),this.resolve(i,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=await this.pointer(e,r),s=await this.indicator(e,r)+(e.pad||""),o=await this.resolve(e.hint,this.state,e,r);o&&!bN.hasColor(o)&&(o=this.styles.muted(o));let a=this.indent(e),l=await this.choiceMessage(e,r),c=()=>[this.margin[3],a+n+s,l,this.margin[1],o].filter(Boolean).join(" ");return e.role==="heading"?c():e.disabled?(bN.hasColor(l)||(l=this.styles.disabled(l)),c()):(i&&(l=this.styles.em(l)),c())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(s,o)=>await this.renderChoice(s,o)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let i=this.margin[0]+r.join(` -`),n;return this.options.choicesHeader&&(n=await this.resolve(this.options.choicesHeader,this.state)),[n,i].filter(Boolean).join(` -`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,i="",n=await this.header(),s=await this.prefix(),o=await this.separator(),a=await this.message();this.options.promptLine!==!1&&(i=[s,a,o,""].join(" "),this.state.prompt=i);let l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();l&&(i+=l),c&&!i.includes(c)&&(i+=" "+c),e&&!l&&!u.trim()&&this.multiple&&this.emptyError!=null&&(i+=this.styles.danger(this.emptyError)),this.clear(r),this.write([n,i,u,g].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Pne.exports=Dne});var Nne=E((vCt,Rne)=>{"use strict";var XJe=GA(),ZJe=(t,e)=>{let r=t.toLowerCase();return i=>{let s=i.toLowerCase().indexOf(r),o=e(i.slice(s,s+r.length));return s>=0?i.slice(0,s)+o+i.slice(s+r.length):i}},Fne=class extends XJe{constructor(e){super(e);this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:i}=this.state;return this.input=i.slice(0,r)+e+i.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let i=e.toLowerCase();return r.filter(n=>n.message.toLowerCase().includes(i))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=ZJe(this.input,e),i=this.choices;this.choices=i.map(n=>_(P({},n),{message:r(n.message)})),await super.render(),this.choices=i}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Rne.exports=Fne});var SN=E((SCt,Lne)=>{"use strict";var vN=Mi();Lne.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:i="",pos:n,showCursor:s=!0,color:o}=e,a=o||t.styles.placeholder,l=vN.inverse(t.styles.primary),c=d=>l(t.styles.black(d)),u=r,g=" ",f=c(g);if(t.blink&&t.blink.off===!0&&(c=d=>d,f=""),s&&n===0&&i===""&&r==="")return c(g);if(s&&n===0&&(r===i||r===""))return c(i[0])+a(i.slice(1));i=vN.isPrimitive(i)?`${i}`:"",r=vN.isPrimitive(r)?`${r}`:"";let h=i&&i.startsWith(r)&&i!==r,p=h?c(i[r.length]):f;if(n!==r.length&&s===!0&&(u=r.slice(0,n)+c(r[n])+r.slice(n+1),p=""),s===!1&&(p=""),h){let d=t.styles.unstyle(u+p);return u+p+a(i.slice(d.length))}return u+p}});var O0=E((xCt,Tne)=>{"use strict";var $Je=js(),e3e=GA(),t3e=SN(),Mne=class extends e3e{constructor(e){super(_(P({},e),{multiple:!0}));this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:i,input:n}=r;return r.value=r.input=n.slice(0,i)+e+n.slice(i),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:i}=e;return e.value=e.input=i.slice(0,r-1)+i.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:i}=e;if(i[r]===void 0)return this.alert();let n=`${i}`.slice(0,r)+`${i}`.slice(r+1);return e.value=e.input=n,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:i}=e;return r&&r.startsWith(i)&&i!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let i=await this.resolve(e.separator,this.state,e,r)||":";return i?" "+this.styles.disabled(i):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:i,styles:n}=this,{cursor:s,initial:o="",name:a,hint:l,input:c=""}=e,{muted:u,submitted:g,primary:f,danger:h}=n,p=l,d=this.index===r,m=e.validate||(()=>!0),I=await this.choiceSeparator(e,r),B=e.message;this.align==="right"&&(B=B.padStart(this.longest+1," ")),this.align==="left"&&(B=B.padEnd(this.longest+1," "));let b=this.values[a]=c||o,R=c?"success":"dark";await m.call(e,b,this.state)!==!0&&(R="danger");let L=n[R](await this.indicator(e,r))+(e.pad||""),K=this.indent(e),J=()=>[K,L,B+I,c,p].filter(Boolean).join(" ");if(i.submitted)return B=$Je.unstyle(B),c=g(c),p="",J();if(e.format)c=await e.format.call(this,c,e,r);else{let ne=this.styles.muted;c=t3e(this,{input:c,initial:o,pos:s,showCursor:d,color:ne})}return this.isValue(c)||(c=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[a]=await e.result.call(this,b,e,r)),d&&(B=f(B)),e.error?c+=(c?" ":"")+h(e.error.trim()):e.hint&&(c+=(c?" ":"")+u(e.hint.trim())),J()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Tne.exports=Mne});var xN=E((kCt,One)=>{"use strict";var r3e=O0(),i3e=()=>{throw new Error("expected prompt to have a custom authenticate method")},Kne=(t=i3e)=>{class e extends r3e{constructor(i){super(i)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(i){return Kne(i)}}return e};One.exports=Kne()});var Gne=E((PCt,Une)=>{"use strict";var n3e=xN();function s3e(t,e){return t.username===this.options.username&&t.password===this.options.password}var Hne=(t=s3e)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(i){return this.options.showPassword?i:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(i.length))}}];class r extends n3e.create(t){constructor(n){super(_(P({},n),{choices:e}))}static create(n){return Hne(n)}}return r};Une.exports=Hne()});var K0=E((DCt,jne)=>{"use strict";var o3e=sf(),{isPrimitive:a3e,hasColor:A3e}=Mi(),Yne=class extends o3e{constructor(e){super(e);this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:i}=this;return i.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return a3e(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return A3e(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=this.styles.muted(this.default),a=[i,s,o,n].filter(Boolean).join(" ");this.state.prompt=a;let l=await this.header(),c=this.value=this.cast(e),u=await this.format(c),g=await this.error()||await this.hint(),f=await this.footer();g&&!a.includes(g)&&(u+=" "+g),a+=" "+u,this.clear(r),this.write([l,a,f].filter(Boolean).join(` -`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};jne.exports=Yne});var Wne=E((RCt,qne)=>{"use strict";var l3e=K0(),Jne=class extends l3e{constructor(e){super(e);this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};qne.exports=Jne});var _ne=E((FCt,zne)=>{"use strict";var c3e=GA(),u3e=O0(),of=u3e.prototype,Vne=class extends c3e{constructor(e){super(_(P({},e),{multiple:!0}));this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let i=this.focused,n=i.parent||{};return!i.editable&&!n.editable&&(e==="a"||e==="i")?super[e]():of.dispatch.call(this,e,r)}append(e,r){return of.append.call(this,e,r)}delete(e,r){return of.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?of.next.call(this):super.next()}prev(){return this.focused.editable?of.prev.call(this):super.prev()}async indicator(e,r){let i=e.indicator||"",n=e.editable?i:super.indicator(e,r);return await this.resolve(n,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?of.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let i=r.parent?this.value[r.parent.name]:this.value;if(r.editable?i=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(i=r.enabled===!0),e=await r.validate(i,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};zne.exports=Vne});var Mc=E((NCt,Xne)=>{"use strict";var g3e=sf(),f3e=SN(),{isPrimitive:h3e}=Mi(),Zne=class extends g3e{constructor(e){super(e);this.initial=h3e(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let i=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!i||i.name!=="return")?this.append(` -`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:i}=this.state;this.input=`${i}`.slice(0,r)+e+`${i}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),i=this.input.slice(e),n=r.split(" ");this.state.clipboard.push(n.pop()),this.input=n.join(" "),this.cursor=this.input.length,this.input+=i,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):f3e(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),i=await this.separator(),n=await this.message(),s=[r,n,i].filter(Boolean).join(" ");this.state.prompt=s;let o=await this.header(),a=await this.format(),l=await this.error()||await this.hint(),c=await this.footer();l&&!a.includes(l)&&(a+=" "+l),s+=" "+a,this.clear(e),this.write([o,s,c].filter(Boolean).join(` -`)),this.restore()}};Xne.exports=Zne});var ese=E((LCt,$ne)=>{"use strict";var p3e=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),U0=t=>p3e(t).filter(Boolean);$ne.exports=(t,e={},r="")=>{let{past:i=[],present:n=""}=e,s,o;switch(t){case"prev":case"undo":return s=i.slice(0,i.length-1),o=i[i.length-1]||"",{past:U0([r,...s]),present:o};case"next":case"redo":return s=i.slice(1),o=i[0]||"",{past:U0([...s,r]),present:o};case"save":return{past:U0([...i,r]),present:""};case"remove":return o=U0(i.filter(a=>a!==r)),n="",o.length&&(n=o.pop()),{past:o,present:n};default:throw new Error(`Invalid action: "${t}"`)}}});var kN=E((TCt,tse)=>{"use strict";var d3e=Mc(),rse=ese(),ise=class extends d3e{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let i=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:i},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=rse(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=rse("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};tse.exports=ise});var ose=E((MCt,nse)=>{"use strict";var C3e=Mc(),sse=class extends C3e{format(){return""}};nse.exports=sse});var lse=E((OCt,ase)=>{"use strict";var m3e=Mc(),Ase=class extends m3e{constructor(e={}){super(e);this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};ase.exports=Ase});var gse=E((KCt,cse)=>{"use strict";var E3e=GA(),use=class extends E3e{constructor(e){super(_(P({},e),{multiple:!0}))}};cse.exports=use});var PN=E((UCt,fse)=>{"use strict";var I3e=Mc(),hse=class extends I3e{constructor(e={}){super(P({style:"number"},e));this.min=this.isValue(e.min)?this.toNumber(e.min):-Infinity,this.max=this.isValue(e.max)?this.toNumber(e.max):Infinity,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,i=this.toNumber(this.input);return i>this.max+r?this.alert():(this.input=`${i+r}`,this.render())}down(e){let r=e||this.minor,i=this.toNumber(this.input);return ithis.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};fse.exports=hse});var dse=E((HCt,pse)=>{pse.exports=PN()});var Ese=E((GCt,Cse)=>{"use strict";var y3e=Mc(),mse=class extends y3e{constructor(e){super(e);this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Cse.exports=mse});var Bse=E((jCt,Ise)=>{"use strict";var w3e=js(),B3e=sC(),yse=Mi(),wse=class extends B3e{constructor(e={}){super(e);this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` - `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((i,n)=>({name:n+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let i=0;i=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){if(this.scaleKey===!1||this.state.submitted)return"";let e=this.scale.map(i=>` ${i.name} - ${i.message}`);return["",...e].map(i=>this.styles.muted(i)).join(` -`)}renderScaleHeading(e){let r=this.scale.map(l=>l.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let i=this.scaleLength-r.join("").length,n=Math.round(i/(r.length-1)),o=r.map(l=>this.styles.strong(l)).join(" ".repeat(n)),a=" ".repeat(this.widths[0]);return this.margin[3]+a+this.margin[1]+o}scaleIndicator(e,r,i){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,i);let n=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):n?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let i=e.scale.map(s=>this.scaleIndicator(e,s,r)),n=this.term==="Hyper"?"":" ";return i.join(n+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=await this.pointer(e,r),s=await e.hint;s&&!yse.hasColor(s)&&(s=this.styles.muted(s));let o=p=>this.margin[3]+p.replace(/\s+$/,"").padEnd(this.widths[0]," "),a=this.newline,l=this.indent(e),c=await this.resolve(e.message,this.state,e,r),u=await this.renderScale(e,r),g=this.margin[1]+this.margin[3];this.scaleLength=w3e.unstyle(u).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-g.length);let h=yse.wordWrap(c,{width:this.widths[0],newline:a}).split(` -`).map(p=>o(p)+this.margin[1]);return i&&(u=this.styles.info(u),h=h.map(p=>this.styles.info(p))),h[0]+=u,this.linebreak&&h.push(""),[l+n,h.join(` -`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(n,s)=>await this.renderChoice(n,s)),r=await Promise.all(e),i=await this.renderScaleHeading();return this.margin[0]+[i,...r.map(n=>n.join(" "))].join(` -`)}async render(){let{submitted:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o="";this.options.promptLine!==!1&&(o=[i,s,n,""].join(" "),this.state.prompt=o);let a=await this.header(),l=await this.format(),c=await this.renderScaleKey(),u=await this.error()||await this.hint(),g=await this.renderChoices(),f=await this.footer(),h=this.emptyError;l&&(o+=l),u&&!o.includes(u)&&(o+=" "+u),e&&!l&&!g.trim()&&this.multiple&&h!=null&&(o+=this.styles.danger(h)),this.clear(r),this.write([a,o,c,g,f].filter(Boolean).join(` -`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};Ise.exports=wse});var Sse=E((YCt,Qse)=>{"use strict";var bse=js(),Q3e=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",vse=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=Q3e(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},b3e=async(t={},e={},r=i=>i)=>{let i=new Set,n=t.fields||[],s=t.template,o=[],a=[],l=[],c=1;typeof s=="function"&&(s=await s());let u=-1,g=()=>s[++u],f=()=>s[u+1],h=p=>{p.line=c,o.push(p)};for(h({type:"bos",value:""});uR.name===I.key);I.field=n.find(R=>R.name===I.key),b||(b=new vse(I),a.push(b)),b.lines.push(I.line-1);continue}let d=o[o.length-1];d.type==="text"&&d.line===c?d.value+=p:h({type:"text",value:p})}return h({type:"eos",value:""}),{input:s,tabstops:o,unique:i,keys:l,items:a}};Qse.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),i=P(P({},e.values),e.initial),{tabstops:n,items:s,keys:o}=await b3e(e,i),a=DN("result",t,e),l=DN("format",t,e),c=DN("validate",t,e,!0),u=t.isValue.bind(t);return async(g={},f=!1)=>{let h=0;g.required=r,g.items=s,g.keys=o,g.output="";let p=async(B,b,R,H)=>{let L=await c(B,b,R,H);return L===!1?"Invalid field "+R.name:L};for(let B of n){let b=B.value,R=B.key;if(B.type!=="template"){b&&(g.output+=b);continue}if(B.type==="template"){let H=s.find(q=>q.name===R);e.required===!0&&g.required.add(H.name);let L=[H.input,g.values[H.value],H.value,b].find(u),J=(H.field||{}).message||B.inner;if(f){let q=await p(g.values[R],g,H,h);if(q&&typeof q=="string"||q===!1){g.invalid.set(R,q);continue}g.invalid.delete(R);let A=await a(g.values[R],g,H,h);g.output+=bse.unstyle(A);continue}H.placeholder=!1;let ne=b;b=await l(b,g,H,h),L!==b?(g.values[R]=L,b=t.styles.typing(L),g.missing.delete(J)):(g.values[R]=void 0,L=`<${J}>`,b=t.styles.primary(L),H.placeholder=!0,g.required.has(R)&&g.missing.add(J)),g.missing.has(J)&&g.validating&&(b=t.styles.warning(L)),g.invalid.has(R)&&g.validating&&(b=t.styles.danger(L)),h===g.index&&(ne!==b?b=t.styles.underline(b):b=t.styles.heading(bse.unstyle(b))),h++}b&&(g.output+=b)}let d=g.output.split(` -`).map(B=>" "+B),m=s.length,I=0;for(let B of s)g.invalid.has(B.name)&&B.lines.forEach(b=>{d[b][0]===" "&&(d[b]=g.styles.danger(g.symbols.bullet)+d[b].slice(1))}),t.isValue(g.values[B.name])&&I++;return g.completed=(I/m*100).toFixed(0),g.output=d.join(` -`),g.output}};function DN(t,e,r,i){return(n,s,o,a)=>typeof o.field[t]=="function"?o.field[t].call(e,n,s,o,a):[i,n].find(l=>e.isValue(l))}});var Pse=E((qCt,xse)=>{"use strict";var v3e=js(),S3e=Sse(),x3e=sf(),kse=class extends x3e{constructor(e){super(e);this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await S3e(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let i=this.getItem(),n=i.input.slice(0,this.cursor),s=i.input.slice(this.cursor);this.input=i.input=`${n}${e}${s}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),i=e.input.slice(0,this.cursor-1);this.input=e.input=`${i}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:i,size:n}=this.state,s=[this.options.newline,` -`].find(B=>B!=null),o=await this.prefix(),a=await this.separator(),l=await this.message(),c=[o,l,a].filter(Boolean).join(" ");this.state.prompt=c;let u=await this.header(),g=await this.error()||"",f=await this.hint()||"",h=i?"":await this.interpolate(this.state),p=this.state.key=r[e]||"",d=await this.format(p),m=await this.footer();d&&(c+=" "+d),f&&!d&&this.state.completed===0&&(c+=" "+f),this.clear(n);let I=[u,c,h,m,g.trim()];this.write(I.filter(Boolean).join(s)),this.restore()}getItem(e){let{items:r,keys:i,index:n}=this.state,s=r.find(o=>o.name===i[n]);return s&&s.input!=null&&(this.input=s.input,this.cursor=s.cursor),s}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:i,values:n}=this.state;if(e.size){let a="";for(let[l,c]of e)a+=`Invalid ${l}: ${c} -`;return this.state.error=a,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let o=v3e.unstyle(i).split(` -`).map(a=>a.slice(1)).join(` -`);return this.value={values:n,result:o},super.submit()}};xse.exports=kse});var Fse=E((JCt,Dse)=>{"use strict";var k3e="(Use + to sort)",P3e=GA(),Rse=class extends P3e{constructor(e){super(_(P({},e),{reorder:!1,sort:!0,multiple:!0}));this.state.hint=[this.options.hint,k3e].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let i=await super.renderChoice(e,r),n=this.symbols.identicalTo+" ",s=this.index===r&&this.sorting?this.styles.muted(n):" ";return this.options.drag===!1&&(s=""),this.options.numbered===!0?s+`${r+1} - `+i:s+i}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};Dse.exports=Rse});var Tse=E((WCt,Nse)=>{"use strict";var D3e=sC(),Lse=class extends D3e{constructor(e={}){super(e);if(this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(i=>this.styles.muted(i)),this.state.header=r.join(` - `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let i of r)i.scale=R3e(5,this.options),i.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],i=r.selected;return e.scale.forEach(n=>n.selected=!1),r.selected=!i,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let i=this.index===r,n=this.term==="Hyper",s=n?9:8,o=n?"":" ",a=this.symbols.line.repeat(s),l=" ".repeat(s+(n?0:1)),c=b=>(b?this.styles.success("\u25C9"):"\u25EF")+o,u=r+1+".",g=i?this.styles.heading:this.styles.noop,f=await this.resolve(e.message,this.state,e,r),h=this.indent(e),p=h+e.scale.map((b,R)=>c(R===e.scaleIdx)).join(a),d=b=>b===e.scaleIdx?g(b):b,m=h+e.scale.map((b,R)=>d(R)).join(l),I=()=>[u,f].filter(Boolean).join(" "),B=()=>[I(),p,m," "].filter(Boolean).join(` -`);return i&&(p=this.styles.cyan(p),m=this.styles.cyan(m)),B()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(i,n)=>await this.renderChoice(i,n)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` -`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,i=await this.prefix(),n=await this.separator(),s=await this.message(),o=[i,s,n].filter(Boolean).join(" ");this.state.prompt=o;let a=await this.header(),l=await this.format(),c=await this.error()||await this.hint(),u=await this.renderChoices(),g=await this.footer();(l||!c)&&(o+=" "+l),c&&!o.includes(c)&&(o+=" "+c),e&&!l&&!u&&this.multiple&&this.type!=="form"&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([o,a,u,g].filter(Boolean).join(` -`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function R3e(t,e={}){if(Array.isArray(e.scale))return e.scale.map(i=>P({},i));let r=[];for(let i=1;i{Mse.exports=kN()});var Hse=E((VCt,Kse)=>{"use strict";var F3e=K0(),Use=class extends F3e{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=i=>this.styles.primary.underline(i);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),i=await this.prefix(),n=await this.separator(),s=await this.message(),o=await this.format(),a=await this.error()||await this.hint(),l=await this.footer(),c=[i,s,n,o].join(" ");this.state.prompt=c,a&&!c.includes(a)&&(c+=" "+a),this.clear(e),this.write([r,c,l].filter(Boolean).join(` -`)),this.write(this.margin[2]),this.restore()}};Kse.exports=Use});var Yse=E((_Ct,Gse)=>{"use strict";var N3e=GA(),jse=class extends N3e{constructor(e){super(e);if(typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let i=await super.toChoices(e,r);if(i.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>i.length)throw new Error("Please specify the index of the correct answer from the list of choices");return i}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};Gse.exports=jse});var Jse=E(RN=>{"use strict";var qse=Mi(),ti=(t,e)=>{qse.defineExport(RN,t,e),qse.defineExport(RN,t.toLowerCase(),e)};ti("AutoComplete",()=>Nne());ti("BasicAuth",()=>Gne());ti("Confirm",()=>Wne());ti("Editable",()=>_ne());ti("Form",()=>O0());ti("Input",()=>kN());ti("Invisible",()=>ose());ti("List",()=>lse());ti("MultiSelect",()=>gse());ti("Numeral",()=>dse());ti("Password",()=>Ese());ti("Scale",()=>Bse());ti("Select",()=>GA());ti("Snippet",()=>Pse());ti("Sort",()=>Fse());ti("Survey",()=>Tse());ti("Text",()=>Ose());ti("Toggle",()=>Hse());ti("Quiz",()=>Yse())});var zse=E((ZCt,Wse)=>{Wse.exports={ArrayPrompt:sC(),AuthPrompt:xN(),BooleanPrompt:K0(),NumberPrompt:PN(),StringPrompt:Mc()}});var aC=E(($Ct,Vse)=>{"use strict";var _se=require("assert"),FN=require("events"),jA=Mi(),No=class extends FN{constructor(e,r){super();this.options=jA.merge({},e),this.answers=P({},r)}register(e,r){if(jA.isObject(e)){for(let n of Object.keys(e))this.register(n,e[n]);return this}_se.equal(typeof r,"function","expected a function");let i=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[i]=r:this.prompts[i]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(jA.merge({},this.options,r))}catch(i){return Promise.reject(i)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=jA.merge({},this.options,e),{type:i,name:n}=e,{set:s,get:o}=jA;if(typeof i=="function"&&(i=await i.call(this,e,this.answers)),!i)return this.answers[n];_se(this.prompts[i],`Prompt "${i}" is not registered`);let a=new this.prompts[i](r),l=o(this.answers,n);a.state.answers=this.answers,a.enquirer=this,n&&a.on("submit",u=>{this.emit("answer",n,u,a),s(this.answers,n,u)});let c=a.emit.bind(a);return a.emit=(...u)=>(this.emit.call(this,...u),c(...u)),this.emit("prompt",a,this),r.autofill&&l!=null?(a.value=a.input=l,r.autofill==="show"&&await a.submit()):l=a.value=await a.run(),l}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||sf()}static get prompts(){return Jse()}static get types(){return zse()}static get prompt(){let e=(r,...i)=>{let n=new this(...i),s=n.emit.bind(n);return n.emit=(...o)=>(e.emit(...o),s(...o)),n.prompt(r)};return jA.mixinEmitter(e,new FN),e}};jA.mixinEmitter(No,new FN);var NN=No.prompts;for(let t of Object.keys(NN)){let e=t.toLowerCase(),r=i=>new NN[t](i).run();No.prompt[e]=r,No[e]=r,No[t]||Reflect.defineProperty(No,t,{get:()=>NN[t]})}var oC=t=>{jA.defineExport(No,t,()=>No.types[t])};oC("ArrayPrompt");oC("AuthPrompt");oC("BooleanPrompt");oC("NumberPrompt");oC("StringPrompt");Vse.exports=No});var loe=E((Gmt,Aoe)=>{function K3e(t,e){for(var r=-1,i=t==null?0:t.length;++r{var U3e=XB(),H3e=jg();function G3e(t,e,r,i){var n=!r;r||(r={});for(var s=-1,o=e.length;++s{var j3e=Af(),Y3e=zg();function q3e(t,e){return t&&j3e(e,Y3e(e),t)}uoe.exports=q3e});var hoe=E((qmt,foe)=>{function J3e(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}foe.exports=J3e});var doe=E((Jmt,poe)=>{var W3e=Gs(),z3e=u0(),V3e=hoe(),_3e=Object.prototype,X3e=_3e.hasOwnProperty;function Z3e(t){if(!W3e(t))return V3e(t);var e=z3e(t),r=[];for(var i in t)i=="constructor"&&(e||!X3e.call(t,i))||r.push(i);return r}poe.exports=Z3e});var lf=E((Wmt,Coe)=>{var $3e=bF(),eWe=doe(),tWe=Hd();function rWe(t){return tWe(t)?$3e(t,!0):eWe(t)}Coe.exports=rWe});var Eoe=E((zmt,moe)=>{var iWe=Af(),nWe=lf();function sWe(t,e){return t&&iWe(e,nWe(e),t)}moe.exports=sWe});var UN=E((hC,cf)=>{var oWe=Ks(),Ioe=typeof hC=="object"&&hC&&!hC.nodeType&&hC,yoe=Ioe&&typeof cf=="object"&&cf&&!cf.nodeType&&cf,aWe=yoe&&yoe.exports===Ioe,woe=aWe?oWe.Buffer:void 0,Boe=woe?woe.allocUnsafe:void 0;function AWe(t,e){if(e)return t.slice();var r=t.length,i=Boe?Boe(r):new t.constructor(r);return t.copy(i),i}cf.exports=AWe});var HN=E((Vmt,Qoe)=>{function lWe(t,e){var r=-1,i=t.length;for(e||(e=Array(i));++r{var cWe=Af(),uWe=f0();function gWe(t,e){return cWe(t,uWe(t),e)}boe.exports=gWe});var H0=E((Xmt,Soe)=>{var fWe=vF(),hWe=fWe(Object.getPrototypeOf,Object);Soe.exports=hWe});var GN=E((Zmt,xoe)=>{var pWe=$B(),dWe=H0(),CWe=f0(),mWe=RF(),EWe=Object.getOwnPropertySymbols,IWe=EWe?function(t){for(var e=[];t;)pWe(e,CWe(t)),t=dWe(t);return e}:mWe;xoe.exports=IWe});var Poe=E(($mt,koe)=>{var yWe=Af(),wWe=GN();function BWe(t,e){return yWe(t,wWe(t),e)}koe.exports=BWe});var Roe=E((eEt,Doe)=>{var QWe=DF(),bWe=GN(),vWe=lf();function SWe(t){return QWe(t,vWe,bWe)}Doe.exports=SWe});var Noe=E((tEt,Foe)=>{var xWe=Object.prototype,kWe=xWe.hasOwnProperty;function PWe(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&kWe.call(t,"index")&&(r.index=t.index,r.input=t.input),r}Foe.exports=PWe});var G0=E((rEt,Loe)=>{var Toe=kF();function DWe(t){var e=new t.constructor(t.byteLength);return new Toe(e).set(new Toe(t)),e}Loe.exports=DWe});var Ooe=E((iEt,Moe)=>{var RWe=G0();function FWe(t,e){var r=e?RWe(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}Moe.exports=FWe});var Uoe=E((nEt,Koe)=>{var NWe=/\w*$/;function LWe(t){var e=new t.constructor(t.source,NWe.exec(t));return e.lastIndex=t.lastIndex,e}Koe.exports=LWe});var qoe=E((sEt,Hoe)=>{var Goe=ac(),joe=Goe?Goe.prototype:void 0,Yoe=joe?joe.valueOf:void 0;function TWe(t){return Yoe?Object(Yoe.call(t)):{}}Hoe.exports=TWe});var jN=E((oEt,Joe)=>{var MWe=G0();function OWe(t,e){var r=e?MWe(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}Joe.exports=OWe});var zoe=E((aEt,Woe)=>{var KWe=G0(),UWe=Ooe(),HWe=Uoe(),GWe=qoe(),jWe=jN(),YWe="[object Boolean]",qWe="[object Date]",JWe="[object Map]",WWe="[object Number]",zWe="[object RegExp]",VWe="[object Set]",_We="[object String]",XWe="[object Symbol]",ZWe="[object ArrayBuffer]",$We="[object DataView]",e8e="[object Float32Array]",t8e="[object Float64Array]",r8e="[object Int8Array]",i8e="[object Int16Array]",n8e="[object Int32Array]",s8e="[object Uint8Array]",o8e="[object Uint8ClampedArray]",a8e="[object Uint16Array]",A8e="[object Uint32Array]";function l8e(t,e,r){var i=t.constructor;switch(e){case ZWe:return KWe(t);case YWe:case qWe:return new i(+t);case $We:return UWe(t,r);case e8e:case t8e:case r8e:case i8e:case n8e:case s8e:case o8e:case a8e:case A8e:return jWe(t,r);case JWe:return new i;case WWe:case _We:return new i(t);case zWe:return HWe(t);case VWe:return new i;case XWe:return GWe(t)}}Woe.exports=l8e});var Xoe=E((AEt,Voe)=>{var c8e=Gs(),_oe=Object.create,u8e=function(){function t(){}return function(e){if(!c8e(e))return{};if(_oe)return _oe(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();Voe.exports=u8e});var YN=E((lEt,Zoe)=>{var g8e=Xoe(),f8e=H0(),h8e=u0();function p8e(t){return typeof t.constructor=="function"&&!h8e(t)?g8e(f8e(t)):{}}Zoe.exports=p8e});var eae=E((cEt,$oe)=>{var d8e=jd(),C8e=Qo(),m8e="[object Map]";function E8e(t){return C8e(t)&&d8e(t)==m8e}$oe.exports=E8e});var nae=E((uEt,tae)=>{var I8e=eae(),y8e=A0(),rae=l0(),iae=rae&&rae.isMap,w8e=iae?y8e(iae):I8e;tae.exports=w8e});var oae=E((gEt,sae)=>{var B8e=jd(),Q8e=Qo(),b8e="[object Set]";function v8e(t){return Q8e(t)&&B8e(t)==b8e}sae.exports=v8e});var cae=E((fEt,aae)=>{var S8e=oae(),x8e=A0(),Aae=l0(),lae=Aae&&Aae.isSet,k8e=lae?x8e(lae):S8e;aae.exports=k8e});var pae=E((hEt,uae)=>{var P8e=Gd(),D8e=loe(),R8e=XB(),F8e=goe(),N8e=Eoe(),L8e=UN(),T8e=HN(),M8e=voe(),O8e=Poe(),K8e=FF(),U8e=Roe(),H8e=jd(),G8e=Noe(),j8e=zoe(),Y8e=YN(),q8e=As(),J8e=Od(),W8e=nae(),z8e=Gs(),V8e=cae(),_8e=zg(),X8e=lf(),Z8e=1,$8e=2,e4e=4,gae="[object Arguments]",t4e="[object Array]",r4e="[object Boolean]",i4e="[object Date]",n4e="[object Error]",fae="[object Function]",s4e="[object GeneratorFunction]",o4e="[object Map]",a4e="[object Number]",hae="[object Object]",A4e="[object RegExp]",l4e="[object Set]",c4e="[object String]",u4e="[object Symbol]",g4e="[object WeakMap]",f4e="[object ArrayBuffer]",h4e="[object DataView]",p4e="[object Float32Array]",d4e="[object Float64Array]",C4e="[object Int8Array]",m4e="[object Int16Array]",E4e="[object Int32Array]",I4e="[object Uint8Array]",y4e="[object Uint8ClampedArray]",w4e="[object Uint16Array]",B4e="[object Uint32Array]",rr={};rr[gae]=rr[t4e]=rr[f4e]=rr[h4e]=rr[r4e]=rr[i4e]=rr[p4e]=rr[d4e]=rr[C4e]=rr[m4e]=rr[E4e]=rr[o4e]=rr[a4e]=rr[hae]=rr[A4e]=rr[l4e]=rr[c4e]=rr[u4e]=rr[I4e]=rr[y4e]=rr[w4e]=rr[B4e]=!0;rr[n4e]=rr[fae]=rr[g4e]=!1;function j0(t,e,r,i,n,s){var o,a=e&Z8e,l=e&$8e,c=e&e4e;if(r&&(o=n?r(t,i,n,s):r(t)),o!==void 0)return o;if(!z8e(t))return t;var u=q8e(t);if(u){if(o=G8e(t),!a)return T8e(t,o)}else{var g=H8e(t),f=g==fae||g==s4e;if(J8e(t))return L8e(t,a);if(g==hae||g==gae||f&&!n){if(o=l||f?{}:Y8e(t),!a)return l?O8e(t,N8e(o,t)):M8e(t,F8e(o,t))}else{if(!rr[g])return n?t:{};o=j8e(t,g,a)}}s||(s=new P8e);var h=s.get(t);if(h)return h;s.set(t,o),V8e(t)?t.forEach(function(m){o.add(j0(m,e,r,m,t,s))}):W8e(t)&&t.forEach(function(m,I){o.set(I,j0(m,e,r,I,t,s))});var p=c?l?U8e:K8e:l?X8e:_8e,d=u?void 0:p(t);return D8e(d||t,function(m,I){d&&(I=m,m=t[I]),R8e(o,I,j0(m,e,r,I,t,s))}),o}uae.exports=j0});var qN=E((pEt,dae)=>{var Q4e=pae(),b4e=1,v4e=4;function S4e(t){return Q4e(t,b4e|v4e)}dae.exports=S4e});var mae=E((dEt,Cae)=>{var x4e=tF();function k4e(t,e,r){return t==null?t:x4e(t,e,r)}Cae.exports=k4e});var Qae=E((wEt,Bae)=>{function P4e(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}Bae.exports=P4e});var vae=E((BEt,bae)=>{var D4e=xd(),R4e=zP();function F4e(t,e){return e.length<2?t:D4e(t,R4e(e,0,-1))}bae.exports=F4e});var xae=E((QEt,Sae)=>{var N4e=Gg(),L4e=Qae(),T4e=vae(),M4e=Sc();function O4e(t,e){return e=N4e(e,t),t=T4e(t,e),t==null||delete t[M4e(L4e(e))]}Sae.exports=O4e});var Pae=E((bEt,kae)=>{var K4e=xae();function U4e(t,e){return t==null?!0:K4e(t,e)}kae.exports=U4e});var Kae=E((tIt,Oae)=>{Oae.exports={name:"@yarnpkg/cli",version:"3.1.1",license:"BSD-2-Clause",main:"./sources/index.ts",dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/shell":"workspace:^",chalk:"^3.0.0","ci-info":"^3.2.0",clipanion:"^3.0.1",semver:"^7.1.2",tslib:"^1.13.0",typanion:"^3.3.0",yup:"^0.32.9"},devDependencies:{"@types/semver":"^7.1.0","@types/yup":"^0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^",micromatch:"^4.0.2",typescript:"^4.5.2"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",types:"./lib/index.d.ts",bin:null},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=12 <14 || 14.2 - 14.9 || >14.10.0"}}});var iL=E((SBt,QAe)=>{"use strict";QAe.exports=function(e,r){r===!0&&(r=0);var i=e.indexOf("://"),n=e.substring(0,i).split("+").filter(Boolean);return typeof r=="number"?n[r]:n}});var nL=E((xBt,bAe)=>{"use strict";var sze=iL();function vAe(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=sze(t);return t=t.substring(t.indexOf("://")+3),vAe(e)?!0:t.indexOf("@"){"use strict";var oze=iL(),aze=nL(),Aze=require("querystring");function lze(t){t=(t||"").trim();var e={protocols:oze(t),protocol:null,port:null,resource:"",user:"",pathname:"",hash:"",search:"",href:t,query:Object.create(null)},r=t.indexOf("://"),i=-1,n=null,s=null;t.startsWith(".")&&(t.startsWith("./")&&(t=t.substring(2)),e.pathname=t,e.protocol="file");var o=t.charAt(1);return e.protocol||(e.protocol=e.protocols[0],e.protocol||(aze(t)?e.protocol="ssh":((o==="/"||o==="~")&&(t=t.substring(2)),e.protocol="file"))),r!==-1&&(t=t.substring(r+3)),s=t.split("/"),e.protocol!=="file"?e.resource=s.shift():e.resource="",n=e.resource.split("@"),n.length===2&&(e.user=n[0],e.resource=n[1]),n=e.resource.split(":"),n.length===2&&(e.resource=n[0],n[1]?(e.port=Number(n[1]),isNaN(e.port)&&(e.port=null,s.unshift(n[1]))):e.port=null),s=s.filter(Boolean),e.protocol==="file"?e.pathname=e.href:e.pathname=e.pathname||(e.protocol!=="file"||e.href[0]==="/"?"/":"")+s.join("/"),n=e.pathname.split("#"),n.length===2&&(e.pathname=n[0],e.hash=n[1]),n=e.pathname.split("?"),n.length===2&&(e.pathname=n[0],e.search=n[1]),e.query=Aze.parse(e.search),e.href=e.href.replace(/\/$/,""),e.pathname=e.pathname.replace(/\/$/,""),e}SAe.exports=lze});var DAe=E((PBt,kAe)=>{"use strict";var cze=typeof URL=="undefined"?require("url").URL:URL,PAe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t);kAe.exports=(t,e)=>{e=Object.assign({defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripHash:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0},e),Reflect.has(e,"normalizeHttps")&&(e.forceHttp=e.normalizeHttps),Reflect.has(e,"normalizeHttp")&&(e.forceHttps=e.normalizeHttp),Reflect.has(e,"stripFragment")&&(e.stripHash=e.stripFragment),t=t.trim();let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let n=new cze(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&n.protocol==="https:"&&(n.protocol="http:"),e.forceHttps&&n.protocol==="http:"&&(n.protocol="https:"),e.stripHash&&(n.hash=""),n.pathname&&(n.pathname=n.pathname.replace(/((?![https?:]).)\/{2,}/g,(s,o)=>/^(?!\/)/g.test(o)?`${o}/`:"/")),n.pathname&&(n.pathname=decodeURI(n.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let s=n.pathname.split("/"),o=s[s.length-1];PAe(o,e.removeDirectoryIndex)&&(s=s.slice(0,s.length-1),n.pathname=s.slice(1).join("/")+"/")}if(n.hostname&&(n.hostname=n.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z\.]{2,5})$/.test(n.hostname)&&(n.hostname=n.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let s of[...n.searchParams.keys()])PAe(s,e.removeQueryParameters)&&n.searchParams.delete(s);return e.sortQueryParameters&&n.searchParams.sort(),t=n.toString(),(e.removeTrailingSlash||n.pathname==="/")&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),t}});var FAe=E((DBt,RAe)=>{"use strict";var uze=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},gze=xAe(),fze=DAe();function hze(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(typeof t!="string"||!t.trim())throw new Error("Invalid url.");e&&((typeof e=="undefined"?"undefined":uze(e))!=="object"&&(e={stripFragment:!1}),t=fze(t,e));var r=gze(t);return r}RAe.exports=hze});var TAe=E((RBt,NAe)=>{"use strict";var pze=FAe(),LAe=nL();function dze(t){var e=pze(t);e.token="";var r=e.user.split(":");return r.length===2&&(r[1]==="x-oauth-basic"?e.token=r[0]:r[0]==="x-token-auth"&&(e.token=r[1])),LAe(e.protocols)||LAe(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:e.protocol="file",e.href=e.href.replace(/\/$/,""),e}NAe.exports=dze});var OAe=E((FBt,MAe)=>{"use strict";var Cze=TAe();function sL(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=Cze(t),r=e.resource.split("."),i=null;switch(e.toString=function(l){return sL.stringify(this,l)},e.source=r.length>2?r.slice(1-r.length).join("."):e.source=e.resource,e.git_suffix=/\.git$/.test(e.pathname),e.name=decodeURIComponent(e.pathname.replace(/^\//,"").replace(/\.git$/,"")),e.owner=decodeURIComponent(e.user),e.source){case"git.cloudforge.com":e.owner=e.user,e.organization=r[0],e.source="cloudforge.com";break;case"visualstudio.com":if(e.resource==="vs-ssh.visualstudio.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3],e.full_name=i[2]+"/"+i[3]);break}else{i=e.name.split("/"),i.length===2?(e.owner=i[1],e.name=i[1],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}case"dev.azure.com":case"azure.com":if(e.resource==="ssh.dev.azure.com"){i=e.name.split("/"),i.length===4&&(e.organization=i[1],e.owner=i[2],e.name=i[3]);break}else{i=e.name.split("/"),i.length===5?(e.organization=i[0],e.owner=i[1],e.name=i[4],e.full_name="_git/"+e.name):i.length===3?(e.name=i[2],i[0]==="DefaultCollection"?(e.owner=i[2],e.organization=i[0],e.full_name=e.organization+"/_git/"+e.name):(e.owner=i[0],e.full_name=e.owner+"/_git/"+e.name)):i.length===4&&(e.organization=i[0],e.owner=i[1],e.name=i[3],e.full_name=e.organization+"/"+e.owner+"/_git/"+e.name);break}default:i=e.name.split("/");var n=i.length-1;if(i.length>=2){var s=i.indexOf("blob",2),o=i.indexOf("tree",2),a=i.indexOf("commit",2);n=s>0?s-1:o>0?o-1:a>0?a-1:n,e.owner=i.slice(0,n).join("/"),e.name=i[n],a&&(e.commit=i[n+2])}e.ref="",e.filepathtype="",e.filepath="",i.length>n+2&&["blob","tree"].indexOf(i[n+1])>=0&&(e.filepathtype=i[n+1],e.ref=i[n+2],i.length>n+3&&(e.filepath=i.slice(n+3).join("/"))),e.organization=e.owner;break}return e.full_name||(e.full_name=e.owner,e.name&&(e.full_name&&(e.full_name+="/"),e.full_name+=e.name)),e}sL.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",i=t.user||"git",n=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+i+"@"+t.resource+r+"/"+t.full_name+n:i+"@"+t.resource+":"+t.full_name+n;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+i+"@"+t.resource+r+"/"+t.full_name+n;case"http":case"https":var s=t.token?mze(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+s+t.resource+r+"/"+t.full_name+n;default:return t.href}};function mze(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}MAe.exports=sL});var NL=E((Obt,ole)=>{var Mze=jg(),Oze=Kg();function Kze(t,e,r){(r!==void 0&&!Oze(t[e],r)||r===void 0&&!(e in t))&&Mze(t,e,r)}ole.exports=Kze});var Ale=E((Kbt,ale)=>{var Uze=Hd(),Hze=Qo();function Gze(t){return Hze(t)&&Uze(t)}ale.exports=Gze});var ule=E((Ubt,lle)=>{var jze=Ac(),Yze=H0(),qze=Qo(),Jze="[object Object]",Wze=Function.prototype,zze=Object.prototype,cle=Wze.toString,Vze=zze.hasOwnProperty,_ze=cle.call(Object);function Xze(t){if(!qze(t)||jze(t)!=Jze)return!1;var e=Yze(t);if(e===null)return!0;var r=Vze.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&cle.call(r)==_ze}lle.exports=Xze});var LL=E((Hbt,gle)=>{function Zze(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}gle.exports=Zze});var hle=E((Gbt,fle)=>{var $ze=Af(),e5e=lf();function t5e(t){return $ze(t,e5e(t))}fle.exports=t5e});var Ile=E((jbt,ple)=>{var dle=NL(),r5e=UN(),i5e=jN(),n5e=HN(),s5e=YN(),Cle=Pd(),mle=As(),o5e=Ale(),a5e=Od(),A5e=zB(),l5e=Gs(),c5e=ule(),u5e=c0(),Ele=LL(),g5e=hle();function f5e(t,e,r,i,n,s,o){var a=Ele(t,r),l=Ele(e,r),c=o.get(l);if(c){dle(t,r,c);return}var u=s?s(a,l,r+"",t,e,o):void 0,g=u===void 0;if(g){var f=mle(l),h=!f&&a5e(l),p=!f&&!h&&u5e(l);u=l,f||h||p?mle(a)?u=a:o5e(a)?u=n5e(a):h?(g=!1,u=r5e(l,!0)):p?(g=!1,u=i5e(l,!0)):u=[]:c5e(l)||Cle(l)?(u=a,Cle(a)?u=g5e(a):(!l5e(a)||A5e(a))&&(u=s5e(l))):g=!1}g&&(o.set(l,u),n(u,l,i,s,o),o.delete(l)),dle(t,r,u)}ple.exports=f5e});var Ble=E((Ybt,yle)=>{var h5e=Gd(),p5e=NL(),d5e=BF(),C5e=Ile(),m5e=Gs(),E5e=lf(),I5e=LL();function wle(t,e,r,i,n){t!==e&&d5e(e,function(s,o){if(n||(n=new h5e),m5e(s))C5e(t,e,o,r,wle,i,n);else{var a=i?i(I5e(t,o),s,o+"",t,e,n):void 0;a===void 0&&(a=s),p5e(t,o,a)}},E5e)}yle.exports=wle});var ble=E((qbt,Qle)=>{var y5e=e0(),w5e=nF(),B5e=sF();function Q5e(t,e){return B5e(w5e(t,e,y5e),t+"")}Qle.exports=Q5e});var Sle=E((Jbt,vle)=>{var b5e=Kg(),v5e=Hd(),S5e=kd(),x5e=Gs();function k5e(t,e,r){if(!x5e(r))return!1;var i=typeof e;return(i=="number"?v5e(r)&&S5e(e,r.length):i=="string"&&e in r)?b5e(r[e],t):!1}vle.exports=k5e});var kle=E((Wbt,xle)=>{var P5e=ble(),D5e=Sle();function R5e(t){return P5e(function(e,r){var i=-1,n=r.length,s=n>1?r[n-1]:void 0,o=n>2?r[2]:void 0;for(s=t.length>3&&typeof s=="function"?(n--,s):void 0,o&&D5e(r[0],r[1],o)&&(s=n<3?void 0:s,n=1),e=Object(e);++i{var F5e=Ble(),N5e=kle(),L5e=N5e(function(t,e,r){F5e(t,e,r)});Ple.exports=L5e});var Wle=E(($vt,Jle)=>{var VL;Jle.exports=()=>(typeof VL=="undefined"&&(VL=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),VL)});var $le=E(XL=>{function pf(t,e){if(typeof t=="string")return t;if(t){let r,i;if(Array.isArray(t)){for(r=0;r0)return(f=pf(n[g],u))?f.replace("*",c.substring(g.length-1)):Gc(i,c,1)}return Gc(i,c)}}function l6e(t,e={}){let r=0,i,n=e.browser,s=e.fields||["module","main"];for(n&&!s.includes("browser")&&s.unshift("browser");r{var eT;nce.exports=()=>(typeof eT=="undefined"&&(eT=require("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),eT)});var gce=E((aT,AT)=>{(function(t){aT&&typeof aT=="object"&&typeof AT!="undefined"?AT.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window!="undefined"?window.isWindows=t():typeof global!="undefined"?global.isWindows=t():typeof self!="undefined"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var dce=E((Dxt,fce)=>{"use strict";lT.ifExists=E6e;var mf=require("util"),Es=require("path"),hce=gce(),I6e=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,y6e={createPwshFile:!0,createCmdFile:hce(),fs:require("fs")},w6e=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function pce(t){let e=P(P({},y6e),t),r=e.fs;return e.fs_={chmod:r.chmod?mf.promisify(r.chmod):async()=>{},mkdir:mf.promisify(r.mkdir),readFile:mf.promisify(r.readFile),stat:mf.promisify(r.stat),unlink:mf.promisify(r.unlink),writeFile:mf.promisify(r.writeFile)},e}async function lT(t,e,r){let i=pce(r);await i.fs_.stat(t),await B6e(t,e,i)}function E6e(t,e,r){return lT(t,e,r).catch(()=>{})}function Q6e(t,e){return e.fs_.unlink(t).catch(()=>{})}async function B6e(t,e,r){let i=await S6e(t,r);return await b6e(e,r),v6e(t,e,i,r)}function b6e(t,e){return e.fs_.mkdir(Es.dirname(t),{recursive:!0})}function v6e(t,e,r,i){let n=pce(i),s=[{generator:P6e,extension:""}];return n.createCmdFile&&s.push({generator:k6e,extension:".cmd"}),n.createPwshFile&&s.push({generator:D6e,extension:".ps1"}),Promise.all(s.map(o=>x6e(t,e+o.extension,r,o.generator,n)))}function R6e(t,e){return Q6e(t,e)}function N6e(t,e){return F6e(t,e)}async function S6e(t,e){let n=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(I6e);if(!n){let s=Es.extname(t).toLowerCase();return{program:w6e.get(s)||null,additionalArgs:""}}return{program:n[1],additionalArgs:n[2]}}async function x6e(t,e,r,i,n){let s=n.preserveSymlinks?"--preserve-symlinks":"",o=[r.additionalArgs,s].filter(a=>a).join(" ");return n=Object.assign({},n,{prog:r.program,args:o}),await R6e(e,n),await n.fs_.writeFile(e,i(t,e,n),"utf8"),N6e(e,n)}function k6e(t,e,r){let n=Es.relative(Es.dirname(e),t).split("/").join("\\"),s=Es.isAbsolute(n)?`"${n}"`:`"%~dp0\\${n}"`,o,a=r.prog,l=r.args||"",c=cT(r.nodePath).win32;a?(o=`"%~dp0\\${a}.exe"`,n=s):(a=s,l="",n="");let u=r.progArgs?`${r.progArgs.join(" ")} `:"",g=c?`@SET NODE_PATH=${c}\r -`:"";return o?g+=`@IF EXIST ${o} (\r - ${o} ${l} ${n} ${u}%*\r -) ELSE (\r - @SETLOCAL\r - @SET PATHEXT=%PATHEXT:;.JS;=;%\r - ${a} ${l} ${n} ${u}%*\r -)\r -`:g+=`@${a} ${l} ${n} ${u}%*\r -`,g}function P6e(t,e,r){let i=Es.relative(Es.dirname(e),t),n=r.prog&&r.prog.split("\\").join("/"),s;i=i.split("\\").join("/");let o=Es.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,a=r.args||"",l=cT(r.nodePath).posix;n?(s=`"$basedir/${r.prog}"`,i=o):(n=o,a="",i="");let c=r.progArgs?`${r.progArgs.join(" ")} `:"",u=`#!/bin/sh -basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") - -case \`uname\` in - *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; -esac - -`,g=r.nodePath?`export NODE_PATH="${l}" -`:"";return s?u+=`${g}if [ -x ${s} ]; then - exec ${s} ${a} ${i} ${c}"$@" -else - exec ${n} ${a} ${i} ${c}"$@" -fi -`:u+=`${g}${n} ${a} ${i} ${c}"$@" -exit $? -`,u}function D6e(t,e,r){let i=Es.relative(Es.dirname(e),t),n=r.prog&&r.prog.split("\\").join("/"),s=n&&`"${n}$exe"`,o;i=i.split("\\").join("/");let a=Es.isAbsolute(i)?`"${i}"`:`"$basedir/${i}"`,l=r.args||"",c=cT(r.nodePath),u=c.win32,g=c.posix;s?(o=`"$basedir/${r.prog}$exe"`,i=a):(s=a,l="",i="");let f=r.progArgs?`${r.progArgs.join(" ")} `:"",h=`#!/usr/bin/env pwsh -$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent - -$exe="" -${r.nodePath?`$env_node_path=$env:NODE_PATH -$env:NODE_PATH="${u}" -`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { - # Fix case when both the Windows and Linux builds of Node - # are installed in the same directory - $exe=".exe" -}`;return r.nodePath&&(h+=` else { - $env:NODE_PATH="${g}" -}`),o?h+=` -$ret=0 -if (Test-Path ${o}) { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${o} ${l} ${i} ${f}$args - } else { - & ${o} ${l} ${i} ${f}$args - } - $ret=$LASTEXITCODE -} else { - # Support pipeline input - if ($MyInvocation.ExpectingInput) { - $input | & ${s} ${l} ${i} ${f}$args - } else { - & ${s} ${l} ${i} ${f}$args - } - $ret=$LASTEXITCODE -} -${r.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $ret -`:h+=` -# Support pipeline input -if ($MyInvocation.ExpectingInput) { - $input | & ${s} ${l} ${i} ${f}$args -} else { - & ${s} ${l} ${i} ${f}$args -} -${r.nodePath?`$env:NODE_PATH=$env_node_path -`:""}exit $LASTEXITCODE -`,h}function F6e(t,e){return e.fs_.chmod(t,493)}function cT(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(Es.delimiter):Array.from(t),r={};for(let i=0;i`/mnt/${a.toLowerCase()}`):e[i];r.win32=r.win32?`${r.win32};${n}`:n,r.posix=r.posix?`${r.posix}:${s}`:s,r[i]={win32:n,posix:s}}return r}fce.exports=lT});var PT=E((fPt,Nce)=>{Nce.exports=require("stream")});var Oce=E((hPt,Lce)=>{"use strict";function Tce(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function e9e(t){for(var e=1;e0?this.tail.next=i:this.head=i,this.tail=i,++this.length}},{key:"unshift",value:function(r){var i={data:r,next:this.head};this.length===0&&(this.tail=i),this.head=i,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var i=this.head,n=""+i.data;i=i.next;)n+=r+i.data;return n}},{key:"concat",value:function(r){if(this.length===0)return iQ.alloc(0);for(var i=iQ.allocUnsafe(r>>>0),n=this.head,s=0;n;)o9e(n.data,i,s),s+=n.data.length,n=n.next;return i}},{key:"consume",value:function(r,i){var n;return ro.length?o.length:r;if(a===o.length?s+=o:s+=o.slice(0,r),r-=a,r===0){a===o.length?(++n,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(a));break}++n}return this.length-=n,s}},{key:"_getBuffer",value:function(r){var i=iQ.allocUnsafe(r),n=this.head,s=1;for(n.data.copy(i),r-=n.data.length;n=n.next;){var o=n.data,a=r>o.length?o.length:r;if(o.copy(i,i.length-r,0,a),r-=a,r===0){a===o.length?(++s,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(a));break}++s}return this.length-=s,i}},{key:s9e,value:function(r,i){return DT(this,e9e({},i,{depth:0,customInspect:!1}))}}]),t}()});var FT=E((pPt,Kce)=>{"use strict";function a9e(t,e){var r=this,i=this._readableState&&this._readableState.destroyed,n=this._writableState&&this._writableState.destroyed;return i||n?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(RT,this,t)):process.nextTick(RT,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(s){!e&&s?r._writableState?r._writableState.errorEmitted?process.nextTick(nQ,r):(r._writableState.errorEmitted=!0,process.nextTick(Uce,r,s)):process.nextTick(Uce,r,s):e?(process.nextTick(nQ,r),e(s)):process.nextTick(nQ,r)}),this)}function Uce(t,e){RT(t,e),nQ(t)}function nQ(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function A9e(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function RT(t,e){t.emit("error",e)}function l9e(t,e){var r=t._readableState,i=t._writableState;r&&r.autoDestroy||i&&i.autoDestroy?t.destroy(e):t.emit("error",e)}Kce.exports={destroy:a9e,undestroy:A9e,errorOrDestroy:l9e}});var VA=E((dPt,Hce)=>{"use strict";var Gce={};function Is(t,e,r){r||(r=Error);function i(s,o,a){return typeof e=="string"?e:e(s,o,a)}class n extends r{constructor(o,a,l){super(i(o,a,l))}}n.prototype.name=r.name,n.prototype.code=t,Gce[t]=n}function jce(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(i=>String(i)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function c9e(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function u9e(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function g9e(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}Is("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);Is("ERR_INVALID_ARG_TYPE",function(t,e,r){let i;typeof e=="string"&&c9e(e,"not ")?(i="must not be",e=e.replace(/^not /,"")):i="must be";let n;if(u9e(t," argument"))n=`The ${t} ${i} ${jce(e,"type")}`;else{let s=g9e(t,".")?"property":"argument";n=`The "${t}" ${s} ${i} ${jce(e,"type")}`}return n+=`. Received type ${typeof r}`,n},TypeError);Is("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Is("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});Is("ERR_STREAM_PREMATURE_CLOSE","Premature close");Is("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});Is("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Is("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Is("ERR_STREAM_WRITE_AFTER_END","write after end");Is("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Is("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);Is("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");Hce.exports.codes=Gce});var NT=E((CPt,Yce)=>{"use strict";var f9e=VA().codes.ERR_INVALID_OPT_VALUE;function h9e(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function p9e(t,e,r,i){var n=h9e(e,i,r);if(n!=null){if(!(isFinite(n)&&Math.floor(n)===n)||n<0){var s=i?r:"highWaterMark";throw new f9e(s,n)}return Math.floor(n)}return t.objectMode?16:16*1024}Yce.exports={getHighWaterMark:p9e}});var qce=E((mPt,LT)=>{typeof Object.create=="function"?LT.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:LT.exports=function(e,r){if(r){e.super_=r;var i=function(){};i.prototype=r.prototype,e.prototype=new i,e.prototype.constructor=e}}});var _A=E((EPt,TT)=>{try{if(MT=require("util"),typeof MT.inherits!="function")throw"";TT.exports=MT.inherits}catch(t){TT.exports=qce()}var MT});var Wce=E((IPt,Jce)=>{Jce.exports=require("util").deprecate});var UT=E((yPt,zce)=>{"use strict";zce.exports=Sr;function Vce(t){var e=this;this.next=null,this.entry=null,this.finish=function(){d9e(e,t)}}var If;Sr.WritableState=em;var C9e={deprecate:Wce()},_ce=PT(),sQ=require("buffer").Buffer,m9e=global.Uint8Array||function(){};function E9e(t){return sQ.from(t)}function I9e(t){return sQ.isBuffer(t)||t instanceof m9e}var OT=FT(),y9e=NT(),w9e=y9e.getHighWaterMark,XA=VA().codes,B9e=XA.ERR_INVALID_ARG_TYPE,Q9e=XA.ERR_METHOD_NOT_IMPLEMENTED,b9e=XA.ERR_MULTIPLE_CALLBACK,v9e=XA.ERR_STREAM_CANNOT_PIPE,S9e=XA.ERR_STREAM_DESTROYED,x9e=XA.ERR_STREAM_NULL_VALUES,k9e=XA.ERR_STREAM_WRITE_AFTER_END,P9e=XA.ERR_UNKNOWN_ENCODING,yf=OT.errorOrDestroy;_A()(Sr,_ce);function D9e(){}function em(t,e,r){If=If||Yc(),t=t||{},typeof r!="boolean"&&(r=e instanceof If),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=w9e(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var i=t.decodeStrings===!1;this.decodeStrings=!i,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(n){R9e(e,n)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new Vce(this)}em.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(em.prototype,"buffer",{get:C9e.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(t){}})();var oQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(oQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Sr,Symbol.hasInstance,{value:function(e){return oQ.call(this,e)?!0:this!==Sr?!1:e&&e._writableState instanceof em}})):oQ=function(e){return e instanceof this};function Sr(t){If=If||Yc();var e=this instanceof If;if(!e&&!oQ.call(Sr,this))return new Sr(t);this._writableState=new em(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),_ce.call(this)}Sr.prototype.pipe=function(){yf(this,new v9e)};function F9e(t,e){var r=new k9e;yf(t,r),process.nextTick(e,r)}function N9e(t,e,r,i){var n;return r===null?n=new x9e:typeof r!="string"&&!e.objectMode&&(n=new B9e("chunk",["string","Buffer"],r)),n?(yf(t,n),process.nextTick(i,n),!1):!0}Sr.prototype.write=function(t,e,r){var i=this._writableState,n=!1,s=!i.objectMode&&I9e(t);return s&&!sQ.isBuffer(t)&&(t=E9e(t)),typeof e=="function"&&(r=e,e=null),s?e="buffer":e||(e=i.defaultEncoding),typeof r!="function"&&(r=D9e),i.ending?F9e(this,r):(s||N9e(this,i,t,r))&&(i.pendingcb++,n=L9e(this,i,s,t,e,r)),n};Sr.prototype.cork=function(){this._writableState.corked++};Sr.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Xce(this,t))};Sr.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new P9e(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Sr.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function T9e(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=sQ.from(e,r)),e}Object.defineProperty(Sr.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function L9e(t,e,r,i,n,s){if(!r){var o=T9e(e,i,n);i!==o&&(r=!0,n="buffer",i=o)}var a=e.objectMode?1:i.length;e.length+=a;var l=e.length{"use strict";var j9e=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};eue.exports=Mo;var tue=HT(),GT=UT();_A()(Mo,tue);for(jT=j9e(GT.prototype),aQ=0;aQ{var lQ=require("buffer"),qa=lQ.Buffer;function iue(t,e){for(var r in t)e[r]=t[r]}qa.from&&qa.alloc&&qa.allocUnsafe&&qa.allocUnsafeSlow?rue.exports=lQ:(iue(lQ,YT),YT.Buffer=wf);function wf(t,e,r){return qa(t,e,r)}iue(qa,wf);wf.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return qa(t,e,r)};wf.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var i=qa(t);return e!==void 0?typeof r=="string"?i.fill(e,r):i.fill(e):i.fill(0),i};wf.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return qa(t)};wf.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return lQ.SlowBuffer(t)}});var WT=E(sue=>{"use strict";var qT=nue().Buffer,oue=qT.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function J9e(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function W9e(t){var e=J9e(t);if(typeof e!="string"&&(qT.isEncoding===oue||!oue(t)))throw new Error("Unknown encoding: "+t);return e||t}sue.StringDecoder=rm;function rm(t){this.encoding=W9e(t);var e;switch(this.encoding){case"utf16le":this.text=V9e,this.end=_9e,e=4;break;case"utf8":this.fillLast=z9e,e=4;break;case"base64":this.text=X9e,this.end=Z9e,e=3;break;default:this.write=$9e,this.end=eVe;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=qT.allocUnsafe(e)}rm.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5==6?2:t>>4==14?3:t>>3==30?4:t>>6==2?-1:-2}function iVe(t,e,r){var i=e.length-1;if(i=0?(n>0&&(t.lastNeed=n-1),n):--i=0?(n>0&&(t.lastNeed=n-2),n):--i=0?(n>0&&(n===2?n=0:t.lastNeed=n-3),n):0))}function nVe(t,e,r){if((e[0]&192)!=128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!=128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!=128)return t.lastNeed=2,"\uFFFD"}}function z9e(t){var e=this.lastTotal-this.lastNeed,r=nVe(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function rVe(t,e){var r=iVe(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var i=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,i),t.toString("utf8",e,i)}function tVe(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function V9e(t,e){if((t.length-e)%2==0){var r=t.toString("utf16le",e);if(r){var i=r.charCodeAt(r.length-1);if(i>=55296&&i<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function _9e(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function X9e(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function Z9e(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function $9e(t){return t.toString(this.encoding)}function eVe(t){return t&&t.length?this.write(t):""}});var cQ=E((QPt,aue)=>{"use strict";var Aue=VA().codes.ERR_STREAM_PREMATURE_CLOSE;function sVe(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,i=new Array(r),n=0;n{"use strict";var uQ;function ZA(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var AVe=cQ(),$A=Symbol("lastResolve"),qc=Symbol("lastReject"),im=Symbol("error"),gQ=Symbol("ended"),Jc=Symbol("lastPromise"),zT=Symbol("handlePromise"),Wc=Symbol("stream");function el(t,e){return{value:t,done:e}}function lVe(t){var e=t[$A];if(e!==null){var r=t[Wc].read();r!==null&&(t[Jc]=null,t[$A]=null,t[qc]=null,e(el(r,!1)))}}function cVe(t){process.nextTick(lVe,t)}function uVe(t,e){return function(r,i){t.then(function(){if(e[gQ]){r(el(void 0,!0));return}e[zT](r,i)},i)}}var gVe=Object.getPrototypeOf(function(){}),fVe=Object.setPrototypeOf((uQ={get stream(){return this[Wc]},next:function(){var e=this,r=this[im];if(r!==null)return Promise.reject(r);if(this[gQ])return Promise.resolve(el(void 0,!0));if(this[Wc].destroyed)return new Promise(function(o,a){process.nextTick(function(){e[im]?a(e[im]):o(el(void 0,!0))})});var i=this[Jc],n;if(i)n=new Promise(uVe(i,this));else{var s=this[Wc].read();if(s!==null)return Promise.resolve(el(s,!1));n=new Promise(this[zT])}return this[Jc]=n,n}},ZA(uQ,Symbol.asyncIterator,function(){return this}),ZA(uQ,"return",function(){var e=this;return new Promise(function(r,i){e[Wc].destroy(null,function(n){if(n){i(n);return}r(el(void 0,!0))})})}),uQ),gVe),hVe=function(e){var r,i=Object.create(fVe,(r={},ZA(r,Wc,{value:e,writable:!0}),ZA(r,$A,{value:null,writable:!0}),ZA(r,qc,{value:null,writable:!0}),ZA(r,im,{value:null,writable:!0}),ZA(r,gQ,{value:e._readableState.endEmitted,writable:!0}),ZA(r,zT,{value:function(s,o){var a=i[Wc].read();a?(i[Jc]=null,i[$A]=null,i[qc]=null,s(el(a,!1))):(i[$A]=s,i[qc]=o)},writable:!0}),r));return i[Jc]=null,AVe(e,function(n){if(n&&n.code!=="ERR_STREAM_PREMATURE_CLOSE"){var s=i[qc];s!==null&&(i[Jc]=null,i[$A]=null,i[qc]=null,s(n)),i[im]=n;return}var o=i[$A];o!==null&&(i[Jc]=null,i[$A]=null,i[qc]=null,o(el(void 0,!0))),i[gQ]=!0}),e.on("readable",cVe.bind(null,i)),i};cue.exports=hVe});var pue=E((vPt,gue)=>{"use strict";function fue(t,e,r,i,n,s,o){try{var a=t[s](o),l=a.value}catch(c){r(c);return}a.done?e(l):Promise.resolve(l).then(i,n)}function pVe(t){return function(){var e=this,r=arguments;return new Promise(function(i,n){var s=t.apply(e,r);function o(l){fue(s,i,n,o,a,"next",l)}function a(l){fue(s,i,n,o,a,"throw",l)}o(void 0)})}}function hue(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(t,n).enumerable})),r.push.apply(r,i)}return r}function CVe(t){for(var e=1;e{"use strict";due.exports=kt;var Bf;kt.ReadableState=Cue;var SPt=require("events").EventEmitter,mue=function(e,r){return e.listeners(r).length},nm=PT(),fQ=require("buffer").Buffer,IVe=global.Uint8Array||function(){};function yVe(t){return fQ.from(t)}function wVe(t){return fQ.isBuffer(t)||t instanceof IVe}var VT=require("util"),Et;VT&&VT.debuglog?Et=VT.debuglog("stream"):Et=function(){};var BVe=Oce(),_T=FT(),QVe=NT(),bVe=QVe.getHighWaterMark,hQ=VA().codes,vVe=hQ.ERR_INVALID_ARG_TYPE,SVe=hQ.ERR_STREAM_PUSH_AFTER_EOF,xVe=hQ.ERR_METHOD_NOT_IMPLEMENTED,kVe=hQ.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,Qf,XT,ZT;_A()(kt,nm);var sm=_T.errorOrDestroy,$T=["error","close","destroy","pause","resume"];function PVe(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function Cue(t,e,r){Bf=Bf||Yc(),t=t||{},typeof r!="boolean"&&(r=e instanceof Bf),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=bVe(this,t,"readableHighWaterMark",r),this.buffer=new BVe,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(Qf||(Qf=WT().StringDecoder),this.decoder=new Qf(t.encoding),this.encoding=t.encoding)}function kt(t){if(Bf=Bf||Yc(),!(this instanceof kt))return new kt(t);var e=this instanceof Bf;this._readableState=new Cue(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),nm.call(this)}Object.defineProperty(kt.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});kt.prototype.destroy=_T.destroy;kt.prototype._undestroy=_T.undestroy;kt.prototype._destroy=function(t,e){e(t)};kt.prototype.push=function(t,e){var r=this._readableState,i;return r.objectMode?i=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=fQ.from(t,e),e=""),i=!0),Eue(this,t,e,!1,i)};kt.prototype.unshift=function(t){return Eue(this,t,null,!0,!1)};function Eue(t,e,r,i,n){Et("readableAddChunk",e);var s=t._readableState;if(e===null)s.reading=!1,RVe(t,s);else{var o;if(n||(o=DVe(s,e)),o)sm(t,o);else if(s.objectMode||e&&e.length>0)if(typeof e!="string"&&!s.objectMode&&Object.getPrototypeOf(e)!==fQ.prototype&&(e=yVe(e)),i)s.endEmitted?sm(t,new kVe):eM(t,s,e,!0);else if(s.ended)sm(t,new SVe);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||e.length!==0?eM(t,s,e,!1):tM(t,s)):eM(t,s,e,!1)}else i||(s.reading=!1,tM(t,s))}return!s.ended&&(s.length=Iue?t=Iue:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function yue(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=FVe(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}kt.prototype.read=function(t){Et("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return Et("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?rM(this):pQ(this),null;if(t=yue(t,e),t===0&&e.ended)return e.length===0&&rM(this),null;var i=e.needReadable;Et("need readable",i),(e.length===0||e.length-t0?n=wue(t,e):n=null,n===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&rM(this)),n!==null&&this.emit("data",n),n};function RVe(t,e){if(Et("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?pQ(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,Bue(t)))}}function pQ(t){var e=t._readableState;Et("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(Et("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(Bue,t))}function Bue(t){var e=t._readableState;Et("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,iM(t)}function tM(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(NVe,t,e))}function NVe(t,e){for(;!e.reading&&!e.ended&&(e.length1&&Que(i.pipes,t)!==-1)&&!c&&(Et("false write response, pause",i.awaitDrain),i.awaitDrain++),r.pause())}function f(m){Et("onerror",m),d(),t.removeListener("error",f),mue(t,"error")===0&&sm(t,m)}PVe(t,"error",f);function h(){t.removeListener("finish",p),d()}t.once("close",h);function p(){Et("onfinish"),t.removeListener("close",h),d()}t.once("finish",p);function d(){Et("unpipe"),r.unpipe(t)}return t.emit("pipe",r),i.flowing||(Et("pipe resume"),r.resume()),t};function LVe(t){return function(){var r=t._readableState;Et("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&mue(t,"data")&&(r.flowing=!0,iM(t))}}kt.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var i=e.pipes,n=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var s=0;s0,i.flowing!==!1&&this.resume()):t==="readable"&&!i.endEmitted&&!i.readableListening&&(i.readableListening=i.needReadable=!0,i.flowing=!1,i.emittedReadable=!1,Et("on readable",i.length,i.reading),i.length?pQ(this):i.reading||process.nextTick(TVe,this)),r};kt.prototype.addListener=kt.prototype.on;kt.prototype.removeListener=function(t,e){var r=nm.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(bue,this),r};kt.prototype.removeAllListeners=function(t){var e=nm.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(bue,this),e};function bue(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function TVe(t){Et("readable nexttick read 0"),t.read(0)}kt.prototype.resume=function(){var t=this._readableState;return t.flowing||(Et("resume"),t.flowing=!t.readableListening,MVe(this,t)),t.paused=!1,this};function MVe(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(OVe,t,e))}function OVe(t,e){Et("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),iM(t),e.flowing&&!e.reading&&t.read(0)}kt.prototype.pause=function(){return Et("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Et("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function iM(t){var e=t._readableState;for(Et("flow",e.flowing);e.flowing&&t.read()!==null;);}kt.prototype.wrap=function(t){var e=this,r=this._readableState,i=!1;t.on("end",function(){if(Et("wrapped end"),r.decoder&&!r.ended){var o=r.decoder.end();o&&o.length&&e.push(o)}e.push(null)}),t.on("data",function(o){if(Et("wrapped data"),r.decoder&&(o=r.decoder.write(o)),!(r.objectMode&&o==null)&&!(!r.objectMode&&(!o||!o.length))){var a=e.push(o);a||(i=!0,t.pause())}});for(var n in t)this[n]===void 0&&typeof t[n]=="function"&&(this[n]=function(a){return function(){return t[a].apply(t,arguments)}}(n));for(var s=0;s<$T.length;s++)t.on($T[s],this.emit.bind(this,$T[s]));return this._read=function(o){Et("wrapped _read",o),i&&(i=!1,t.resume())},this};typeof Symbol=="function"&&(kt.prototype[Symbol.asyncIterator]=function(){return XT===void 0&&(XT=uue()),XT(this)});Object.defineProperty(kt.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}});Object.defineProperty(kt.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}});Object.defineProperty(kt.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(e){this._readableState&&(this._readableState.flowing=e)}});kt._fromList=wue;Object.defineProperty(kt.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}});function wue(t,e){if(e.length===0)return null;var r;return e.objectMode?r=e.buffer.shift():!t||t>=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function rM(t){var e=t._readableState;Et("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(KVe,e,t))}function KVe(t,e){if(Et("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(kt.from=function(t,e){return ZT===void 0&&(ZT=pue()),ZT(kt,t,e)});function Que(t,e){for(var r=0,i=t.length;r{"use strict";vue.exports=Ja;var dQ=VA().codes,UVe=dQ.ERR_METHOD_NOT_IMPLEMENTED,HVe=dQ.ERR_MULTIPLE_CALLBACK,GVe=dQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,jVe=dQ.ERR_TRANSFORM_WITH_LENGTH_0,CQ=Yc();_A()(Ja,CQ);function YVe(t,e){var r=this._transformState;r.transforming=!1;var i=r.writecb;if(i===null)return this.emit("error",new HVe);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),i(t);var n=this._readableState;n.reading=!1,(n.needReadable||n.length{"use strict";xue.exports=om;var kue=nM();_A()(om,kue);function om(t){if(!(this instanceof om))return new om(t);kue.call(this,t)}om.prototype._transform=function(t,e,r){r(null,t)}});var Lue=E((DPt,Due)=>{"use strict";var sM;function JVe(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var Rue=VA().codes,WVe=Rue.ERR_MISSING_ARGS,zVe=Rue.ERR_STREAM_DESTROYED;function Fue(t){if(t)throw t}function VVe(t){return t.setHeader&&typeof t.abort=="function"}function _Ve(t,e,r,i){i=JVe(i);var n=!1;t.on("close",function(){n=!0}),sM===void 0&&(sM=cQ()),sM(t,{readable:e,writable:r},function(o){if(o)return i(o);n=!0,i()});var s=!1;return function(o){if(!n&&!s){if(s=!0,VVe(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();i(o||new zVe("pipe"))}}}function Nue(t){t()}function XVe(t,e){return t.pipe(e)}function ZVe(t){return!t.length||typeof t[t.length-1]!="function"?Fue:t.pop()}function $Ve(){for(var t=arguments.length,e=new Array(t),r=0;r0;return _Ve(o,l,c,function(u){n||(n=u),u&&s.forEach(Nue),!l&&(s.forEach(Nue),i(n))})});return e.reduce(XVe)}Due.exports=$Ve});var bf=E((ys,am)=>{var Am=require("stream");process.env.READABLE_STREAM==="disable"&&Am?(am.exports=Am.Readable,Object.assign(am.exports,Am),am.exports.Stream=Am):(ys=am.exports=HT(),ys.Stream=Am||ys,ys.Readable=ys,ys.Writable=UT(),ys.Duplex=Yc(),ys.Transform=nM(),ys.PassThrough=Pue(),ys.finished=cQ(),ys.pipeline=Lue())});var Oue=E((RPt,Tue)=>{"use strict";var{Buffer:_s}=require("buffer"),Mue=Symbol.for("BufferList");function nr(t){if(!(this instanceof nr))return new nr(t);nr._init.call(this,t)}nr._init=function(e){Object.defineProperty(this,Mue,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};nr.prototype._new=function(e){return new nr(e)};nr.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let i=0;ithis.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};nr.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};nr.prototype.copy=function(e,r,i,n){if((typeof i!="number"||i<0)&&(i=0),(typeof n!="number"||n>this.length)&&(n=this.length),i>=this.length||n<=0)return e||_s.alloc(0);let s=!!e,o=this._offset(i),a=n-i,l=a,c=s&&r||0,u=o[1];if(i===0&&n===this.length){if(!s)return this._bufs.length===1?this._bufs[0]:_s.concat(this._bufs,this.length);for(let g=0;gf)this._bufs[g].copy(e,c,u),c+=f;else{this._bufs[g].copy(e,c,u,u+l),c+=f;break}l-=f,u&&(u=0)}return e.length>c?e.slice(0,c):e};nr.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let i=this._offset(e),n=this._offset(r),s=this._bufs.slice(i[0],n[0]+1);return n[1]===0?s.pop():s[s.length-1]=s[s.length-1].slice(0,n[1]),i[1]!==0&&(s[0]=s[0].slice(i[1])),this._new(s)};nr.prototype.toString=function(e,r,i){return this.slice(r,i).toString(e)};nr.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};nr.prototype.duplicate=function(){let e=this._new();for(let r=0;rthis.length?this.length:e;let i=this._offset(e),n=i[0],s=i[1];for(;n=t.length){let l=o.indexOf(t,s);if(l!==-1)return this._reverseOffset([n,l]);s=o.length-t.length+1}else{let l=this._reverseOffset([n,s]);if(this._match(l,t))return l;s++}s=0}return-1};nr.prototype._match=function(t,e){if(this.length-t{"use strict";var oM=bf().Duplex,e7e=_A(),lm=Oue();function Oi(t){if(!(this instanceof Oi))return new Oi(t);if(typeof t=="function"){this._callback=t;let e=function(i){this._callback&&(this._callback(i),this._callback=null)}.bind(this);this.on("pipe",function(i){i.on("error",e)}),this.on("unpipe",function(i){i.removeListener("error",e)}),t=null}lm._init.call(this,t),oM.call(this)}e7e(Oi,oM);Object.assign(Oi.prototype,lm.prototype);Oi.prototype._new=function(e){return new Oi(e)};Oi.prototype._write=function(e,r,i){this._appendBuffer(e),typeof i=="function"&&i()};Oi.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Oi.prototype.end=function(e){oM.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Oi.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Oi.prototype._isBufferList=function(e){return e instanceof Oi||e instanceof lm||Oi.isBufferList(e)};Oi.isBufferList=lm.isBufferList;mQ.exports=Oi;mQ.exports.BufferListStream=Oi;mQ.exports.BufferList=lm});var lM=E(vf=>{var t7e=Buffer.alloc,r7e="0000000000000000000",i7e="7777777777777777777",Uue="0".charCodeAt(0),Hue=Buffer.from("ustar\0","binary"),n7e=Buffer.from("00","binary"),s7e=Buffer.from("ustar ","binary"),o7e=Buffer.from(" \0","binary"),a7e=parseInt("7777",8),cm=257,aM=263,A7e=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},l7e=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},c7e=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},Gue=function(t,e,r,i){for(;re?i7e.slice(0,e)+" ":r7e.slice(0,e-t.length)+t+" "};function u7e(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],i=t.length-1;i>0;i--){var n=t[i];e?r.push(n):r.push(255-n)}var s=0,o=r.length;for(i=0;i=Math.pow(10,r)&&r++,e+r+t};vf.decodeLongPath=function(t,e){return Sf(t,0,t.length,e)};vf.encodePax=function(t){var e="";t.name&&(e+=AM(" path="+t.name+` -`)),t.linkname&&(e+=AM(" linkpath="+t.linkname+` -`));var r=t.pax;if(r)for(var i in r)e+=AM(" "+i+"="+r[i]+` -`);return Buffer.from(e)};vf.decodePax=function(t){for(var e={};t.length;){for(var r=0;r100;){var n=r.indexOf("/");if(n===-1)return null;i+=i?"/"+r.slice(0,n):r.slice(0,n),r=r.slice(n+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(i)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(tl(t.mode&a7e,6),100),e.write(tl(t.uid,6),108),e.write(tl(t.gid,6),116),e.write(tl(t.size,11),124),e.write(tl(t.mtime.getTime()/1e3|0,11),136),e[156]=Uue+c7e(t.type),t.linkname&&e.write(t.linkname,157),Hue.copy(e,cm),n7e.copy(e,aM),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(tl(t.devmajor||0,6),329),e.write(tl(t.devminor||0,6),337),i&&e.write(i,345),e.write(tl(jue(e),6),148),e)};vf.decode=function(t,e,r){var i=t[156]===0?0:t[156]-Uue,n=Sf(t,0,100,e),s=rl(t,100,8),o=rl(t,108,8),a=rl(t,116,8),l=rl(t,124,12),c=rl(t,136,12),u=l7e(i),g=t[157]===0?null:Sf(t,157,100,e),f=Sf(t,265,32),h=Sf(t,297,32),p=rl(t,329,8),d=rl(t,337,8),m=jue(t);if(m===8*32)return null;if(m!==rl(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(Hue.compare(t,cm,cm+6)===0)t[345]&&(n=Sf(t,345,155,e)+"/"+n);else if(!(s7e.compare(t,cm,cm+6)===0&&o7e.compare(t,aM,aM+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return i===0&&n&&n[n.length-1]==="/"&&(i=5),{name:n,mode:s,uid:o,gid:a,size:l,mtime:new Date(1e3*c),type:u,linkname:g,uname:f,gname:h,devmajor:p,devminor:d}}});var _ue=E((LPt,Yue)=>{var que=require("util"),g7e=Kue(),um=lM(),Jue=bf().Writable,Wue=bf().PassThrough,zue=function(){},Vue=function(t){return t&=511,t&&512-t},f7e=function(t,e){var r=new EQ(t,e);return r.end(),r},h7e=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},EQ=function(t,e){this._parent=t,this.offset=e,Wue.call(this,{autoDestroy:!1})};que.inherits(EQ,Wue);EQ.prototype.destroy=function(t){this._parent.destroy(t)};var Wa=function(t){if(!(this instanceof Wa))return new Wa(t);Jue.call(this,t),t=t||{},this._offset=0,this._buffer=g7e(),this._missing=0,this._partial=!1,this._onparse=zue,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,i=function(){e._continue()},n=function(f){if(e._locked=!1,f)return e.destroy(f);e._stream||i()},s=function(){e._stream=null;var f=Vue(e._header.size);f?e._parse(f,o):e._parse(512,g),e._locked||i()},o=function(){e._buffer.consume(Vue(e._header.size)),e._parse(512,g),i()},a=function(){var f=e._header.size;e._paxGlobal=um.decodePax(r.slice(0,f)),r.consume(f),s()},l=function(){var f=e._header.size;e._pax=um.decodePax(r.slice(0,f)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(f),s()},c=function(){var f=e._header.size;this._gnuLongPath=um.decodeLongPath(r.slice(0,f),t.filenameEncoding),r.consume(f),s()},u=function(){var f=e._header.size;this._gnuLongLinkPath=um.decodeLongPath(r.slice(0,f),t.filenameEncoding),r.consume(f),s()},g=function(){var f=e._offset,h;try{h=e._header=um.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(p){e.emit("error",p)}if(r.consume(512),!h){e._parse(512,g),i();return}if(h.type==="gnu-long-path"){e._parse(h.size,c),i();return}if(h.type==="gnu-long-link-path"){e._parse(h.size,u),i();return}if(h.type==="pax-global-header"){e._parse(h.size,a),i();return}if(h.type==="pax-header"){e._parse(h.size,l),i();return}if(e._gnuLongPath&&(h.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(h.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=h=h7e(h,e._pax),e._pax=null),e._locked=!0,!h.size||h.type==="directory"){e._parse(512,g),e.emit("entry",h,f7e(e,f),n);return}e._stream=new EQ(e,f),e.emit("entry",h,e._stream,n),e._parse(h.size,s),i()};this._onheader=g,this._parse(512,g)};que.inherits(Wa,Jue);Wa.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};Wa.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};Wa.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=zue,this._overflow?this._write(this._overflow,void 0,t):t()}};Wa.prototype._write=function(t,e,r){if(!this._destroyed){var i=this._stream,n=this._buffer,s=this._missing;if(t.length&&(this._partial=!0),t.lengths&&(o=t.slice(s),t=t.slice(0,s)),i?i.end(t):n.append(t),this._overflow=o,this._onparse()}};Wa.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};Yue.exports=Wa});var Zue=E((TPt,Xue)=>{Xue.exports=require("fs").constants||require("constants")});var ige=E((MPt,$ue)=>{var xf=Zue(),ege=tk(),IQ=_A(),p7e=Buffer.alloc,tge=bf().Readable,kf=bf().Writable,d7e=require("string_decoder").StringDecoder,yQ=lM(),C7e=parseInt("755",8),m7e=parseInt("644",8),rge=p7e(1024),cM=function(){},uM=function(t,e){e&=511,e&&t.push(rge.slice(0,512-e))};function E7e(t){switch(t&xf.S_IFMT){case xf.S_IFBLK:return"block-device";case xf.S_IFCHR:return"character-device";case xf.S_IFDIR:return"directory";case xf.S_IFIFO:return"fifo";case xf.S_IFLNK:return"symlink"}return"file"}var wQ=function(t){kf.call(this),this.written=0,this._to=t,this._destroyed=!1};IQ(wQ,kf);wQ.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};wQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var BQ=function(){kf.call(this),this.linkname="",this._decoder=new d7e("utf-8"),this._destroyed=!1};IQ(BQ,kf);BQ.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};BQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var gm=function(){kf.call(this),this._destroyed=!1};IQ(gm,kf);gm.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};gm.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Oo=function(t){if(!(this instanceof Oo))return new Oo(t);tge.call(this,t),this._drain=cM,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};IQ(Oo,tge);Oo.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=cM);var i=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=E7e(t.mode)),t.mode||(t.mode=t.type==="directory"?C7e:m7e),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var n=this.push(e);return uM(i,t.size),n?process.nextTick(r):this._drain=r,new gm}if(t.type==="symlink"&&!t.linkname){var s=new BQ;return ege(s,function(a){if(a)return i.destroy(),r(a);t.linkname=s.linkname,i._encode(t),r()}),s}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new gm;var o=new wQ(this);return this._stream=o,ege(o,function(a){if(i._stream=null,a)return i.destroy(),r(a);if(o.written!==t.size)return i.destroy(),r(new Error("size mismatch"));uM(i,t.size),i._finalizing&&i.finalize(),r()}),o}};Oo.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(rge),this.push(null))};Oo.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};Oo.prototype._encode=function(t){if(!t.pax){var e=yQ.encode(t);if(e){this.push(e);return}}this._encodePax(t)};Oo.prototype._encodePax=function(t){var e=yQ.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(yQ.encode(r)),this.push(e),uM(this,e.length),r.size=t.size,r.type=t.type,this.push(yQ.encode(r))};Oo.prototype._read=function(t){var e=this._drain;this._drain=cM,e()};$ue.exports=Oo});var nge=E(gM=>{gM.extract=_ue();gM.pack=ige()});var Cge=E((oDt,fge)=>{"use strict";var Pf=class{constructor(e,r,i){this.__specs=e||{},Object.keys(this.__specs).forEach(n=>{if(typeof this.__specs[n]=="string"){let s=this.__specs[n],o=this.__specs[s];if(o){let a=o.aliases||[];a.push(n,s),o.aliases=[...new Set(a)],this.__specs[n]=o}else throw new Error(`Alias refers to invalid key: ${s} -> ${n}`)}}),this.__opts=r||{},this.__providers=pge(i.filter(n=>n!=null&&typeof n=="object")),this.__isFiggyPudding=!0}get(e){return mM(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[i,n]of this.entries())e.call(r,n,i,this)}toJSON(){let e={};return this.forEach((r,i)=>{e[i]=r}),e}*entries(e){for(let i of Object.keys(this.__specs))yield[i,this.get(i)];let r=e||this.__opts.other;if(r){let i=new Set;for(let n of this.__providers){let s=n.entries?n.entries(r):R7e(n);for(let[o,a]of s)r(o)&&!i.has(o)&&(i.add(o),yield[o,a])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new Pf(this.__specs,this.__opts,pge(this.__providers).concat(e)),hge)}};try{let t=require("util");Pf.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch(t){}function F7e(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function mM(t,e,r){let i=t.__specs[e];if(r&&!i&&(!t.__opts.other||!t.__opts.other(e)))F7e(e);else{i||(i={});let n;for(let s of t.__providers){if(n=dge(e,s),n===void 0&&i.aliases&&i.aliases.length){for(let o of i.aliases)if(o!==e&&(n=dge(o,s),n!==void 0))break}if(n!==void 0)break}return n===void 0&&i.default!==void 0?typeof i.default=="function"?i.default(t):i.default:n}}function dge(t,e){let r;return e.__isFiggyPudding?r=mM(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var hge={has(t,e){return e in t.__specs&&mM(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in Pf.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};fge.exports=N7e;function N7e(t,e){function r(...i){return new Proxy(new Pf(t,e,i),hge)}return r}function pge(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function R7e(t){return Object.keys(t).map(e=>[e,t[e]])}});var Ige=E((aDt,Ko)=>{"use strict";var hm=require("crypto"),L7e=Cge(),T7e=require("stream").Transform,mge=["sha256","sha384","sha512"],M7e=/^[a-z0-9+/]+(?:=?=?)$/i,O7e=/^([^-]+)-([^?]+)([?\S*]*)$/,K7e=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,U7e=/^[\x21-\x7E]+$/,on=L7e({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>H7e},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),zc=class{get isHash(){return!0}constructor(e,r){r=on(r);let i=!!r.strict;this.source=e.trim();let n=this.source.match(i?K7e:O7e);if(!n||i&&!mge.some(o=>o===n[1]))return;this.algorithm=n[1],this.digest=n[2];let s=n[3];this.options=s?s.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=on(e),e.strict&&!(mge.some(i=>i===this.algorithm)&&this.digest.match(M7e)&&(this.options||[]).every(i=>i.match(U7e))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},Df=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=on(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(i=>this[i].map(n=>zc.prototype.toString.call(n,e)).filter(n=>n.length).join(r)).filter(i=>i.length).join(r)}concat(e,r){r=on(r);let i=typeof e=="string"?e:pm(e,r);return Uo(`${this.toString(r)} ${i}`,r)}hexDigest(){return Uo(this,{single:!0}).hexDigest()}match(e,r){r=on(r);let i=Uo(e,r),n=i.pickAlgorithm(r);return this[n]&&i[n]&&this[n].find(s=>i[n].find(o=>s.digest===o.digest))||!1}pickAlgorithm(e){e=on(e);let r=e.pickAlgorithm,i=Object.keys(this);if(!i.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return i.reduce((n,s)=>r(n,s)||n)}};Ko.exports.parse=Uo;function Uo(t,e){if(e=on(e),typeof t=="string")return EM(t,e);if(t.algorithm&&t.digest){let r=new Df;return r[t.algorithm]=[t],EM(pm(r,e),e)}else return EM(pm(t,e),e)}function EM(t,e){return e.single?new zc(t,e):t.trim().split(/\s+/).reduce((r,i)=>{let n=new zc(i,e);if(n.algorithm&&n.digest){let s=n.algorithm;r[s]||(r[s]=[]),r[s].push(n)}return r},new Df)}Ko.exports.stringify=pm;function pm(t,e){return e=on(e),t.algorithm&&t.digest?zc.prototype.toString.call(t,e):typeof t=="string"?pm(Uo(t,e),e):Df.prototype.toString.call(t,e)}Ko.exports.fromHex=G7e;function G7e(t,e,r){r=on(r);let i=r.options&&r.options.length?`?${r.options.join("?")}`:"";return Uo(`${e}-${Buffer.from(t,"hex").toString("base64")}${i}`,r)}Ko.exports.fromData=j7e;function j7e(t,e){e=on(e);let r=e.algorithms,i=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((n,s)=>{let o=hm.createHash(s).update(t).digest("base64"),a=new zc(`${s}-${o}${i}`,e);if(a.algorithm&&a.digest){let l=a.algorithm;n[l]||(n[l]=[]),n[l].push(a)}return n},new Df)}Ko.exports.fromStream=Y7e;function Y7e(t,e){e=on(e);let r=e.Promise||Promise,i=IM(e);return new r((n,s)=>{t.pipe(i),t.on("error",s),i.on("error",s);let o;i.on("integrity",a=>{o=a}),i.on("end",()=>n(o)),i.on("data",()=>{})})}Ko.exports.checkData=q7e;function q7e(t,e,r){if(r=on(r),e=Uo(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let i=e.pickAlgorithm(r),n=hm.createHash(i).update(t).digest("base64"),s=Uo({algorithm:i,digest:n}),o=s.match(e,r);if(o||!r.error)return o;if(typeof r.size=="number"&&t.length!==r.size){let a=new Error(`data size mismatch when checking ${e}. - Wanted: ${r.size} - Found: ${t.length}`);throw a.code="EBADSIZE",a.found=t.length,a.expected=r.size,a.sri=e,a}else{let a=new Error(`Integrity checksum failed when using ${i}: Wanted ${e}, but got ${s}. (${t.length} bytes)`);throw a.code="EINTEGRITY",a.found=s,a.expected=e,a.algorithm=i,a.sri=e,a}}Ko.exports.checkStream=J7e;function J7e(t,e,r){r=on(r);let i=r.Promise||Promise,n=IM(r.concat({integrity:e}));return new i((s,o)=>{t.pipe(n),t.on("error",o),n.on("error",o);let a;n.on("verified",l=>{a=l}),n.on("end",()=>s(a)),n.on("data",()=>{})})}Ko.exports.integrityStream=IM;function IM(t){t=on(t);let e=t.integrity&&Uo(t.integrity,t),r=e&&Object.keys(e).length,i=r&&e.pickAlgorithm(t),n=r&&e[i],s=Array.from(new Set(t.algorithms.concat(i?[i]:[]))),o=s.map(hm.createHash),a=0,l=new T7e({transform(c,u,g){a+=c.length,o.forEach(f=>f.update(c,u)),g(null,c,u)}}).on("end",()=>{let c=t.options&&t.options.length?`?${t.options.join("?")}`:"",u=Uo(o.map((f,h)=>`${s[h]}-${f.digest("base64")}${c}`).join(" "),t),g=r&&u.match(e,t);if(typeof t.size=="number"&&a!==t.size){let f=new Error(`stream size mismatch when checking ${e}. - Wanted: ${t.size} - Found: ${a}`);f.code="EBADSIZE",f.found=a,f.expected=t.size,f.sri=e,l.emit("error",f)}else if(t.integrity&&!g){let f=new Error(`${e} integrity checksum failed when using ${i}: wanted ${n} but got ${u}. (${a} bytes)`);f.code="EINTEGRITY",f.found=u,f.expected=n,f.algorithm=i,f.sri=e,l.emit("error",f)}else l.emit("size",a),l.emit("integrity",u),g&&l.emit("verified",g)});return l}Ko.exports.create=W7e;function W7e(t){t=on(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",i=e.map(hm.createHash);return{update:function(n,s){return i.forEach(o=>o.update(n,s)),this},digest:function(n){return e.reduce((o,a)=>{let l=i.shift().digest("base64"),c=new zc(`${a}-${l}${r}`,t);if(c.algorithm&&c.digest){let u=c.algorithm;o[u]||(o[u]=[]),o[u].push(c)}return o},new Df)}}}var z7e=new Set(hm.getHashes()),Ege=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>z7e.has(t));function H7e(t,e){return Ege.indexOf(t.toLowerCase())>=Ege.indexOf(e.toLowerCase())?t:e}});var Fd={};it(Fd,{BuildType:()=>Gn,Cache:()=>Qt,Configuration:()=>fe,DEFAULT_LOCK_FILENAME:()=>DR,DEFAULT_RC_FILENAME:()=>PR,FormatType:()=>ps,InstallMode:()=>li,LightReport:()=>Fa,LinkType:()=>gt,Manifest:()=>Ze,MessageName:()=>z,PackageExtensionStatus:()=>ki,PackageExtensionType:()=>oi,Project:()=>Ke,ProjectLookup:()=>KA,Report:()=>Xi,ReportError:()=>nt,SettingsType:()=>ge,StreamReport:()=>Fe,TAG_REGEXP:()=>Rg,TelemetryManager:()=>Rd,ThrowReport:()=>ei,VirtualFetcher:()=>dd,Workspace:()=>Dd,WorkspaceResolver:()=>Yr,YarnVersion:()=>Zr,execUtils:()=>hr,folderUtils:()=>Pb,formatUtils:()=>ue,hashUtils:()=>mn,httpUtils:()=>Zt,miscUtils:()=>de,scriptUtils:()=>Kt,semverUtils:()=>qt,structUtils:()=>S,tgzUtils:()=>Ai,treeUtils:()=>Hs});var hr={};it(hr,{EndStrategy:()=>Pn,execvp:()=>Nhe,pipevp:()=>to});var ch={};it(ch,{AliasFS:()=>Xo,CwdFS:()=>Ft,DEFAULT_COMPRESSION_LEVEL:()=>pl,FakeFS:()=>eA,Filename:()=>wt,JailFS:()=>Zo,LazyFS:()=>oh,LinkStrategy:()=>eh,NoFS:()=>bE,NodeFS:()=>Wt,PortablePath:()=>Se,PosixFS:()=>ah,ProxiedFS:()=>fi,VirtualFS:()=>Pr,ZipFS:()=>Jr,ZipOpenFS:()=>Jn,constants:()=>mr,extendFs:()=>SE,normalizeLineEndings:()=>ul,npath:()=>M,opendir:()=>wE,patchFs:()=>pb,ppath:()=>v,statUtils:()=>rb,toFilename:()=>kr,xfs:()=>T});var mr={};it(mr,{SAFE_TIME:()=>tb,S_IFDIR:()=>zo,S_IFLNK:()=>_o,S_IFMT:()=>kn,S_IFREG:()=>Vo});var kn=61440,zo=16384,Vo=32768,_o=40960,tb=456789e3;var rb={};it(rb,{BigIntStatsEntry:()=>Xf,DEFAULT_MODE:()=>_f,DirEntry:()=>uO,StatEntry:()=>Za,areStatsEqual:()=>nb,clearStats:()=>pE,convertToBigIntStats:()=>dE,makeDefaultStats:()=>Zf,makeEmptyStats:()=>Jfe});var ib=ie(require("util"));var _f=Vo|420,uO=class{constructor(){this.name="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&kn)===zo}isFIFO(){return!1}isFile(){return(this.mode&kn)===Vo}isSocket(){return!1}isSymbolicLink(){return(this.mode&kn)===_o}},Za=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=_f;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&kn)===zo}isFIFO(){return!1}isFile(){return(this.mode&kn)===Vo}isSocket(){return!1}isSymbolicLink(){return(this.mode&kn)===_o}},Xf=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(_f);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(kn))===BigInt(zo)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(kn))===BigInt(Vo)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(kn))===BigInt(_o)}};function Zf(){return new Za}function Jfe(){return pE(Zf())}function pE(t){for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):ib.types.isDate(r)&&(t[e]=new Date(0))}return t}function dE(t){let e=new Xf;for(let r in t)if(Object.prototype.hasOwnProperty.call(t,r)){let i=t[r];typeof i=="number"?e[r]=BigInt(i):ib.types.isDate(i)&&(e[r]=new Date(i))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function nb(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,i=e;return!(r.atimeNs!==i.atimeNs||r.mtimeNs!==i.mtimeNs||r.ctimeNs!==i.ctimeNs||r.birthtimeNs!==i.birthtimeNs)}var mE=ie(require("fs"));var $f=ie(require("path")),gO;(function(i){i[i.File=0]="File",i[i.Portable=1]="Portable",i[i.Native=2]="Native"})(gO||(gO={}));var Se={root:"/",dot:"."},wt={nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",rc:".yarnrc.yml"},M=Object.create($f.default),v=Object.create($f.default.posix);M.cwd=()=>process.cwd();v.cwd=()=>sb(process.cwd());v.resolve=(...t)=>t.length>0&&v.isAbsolute(t[0])?$f.default.posix.resolve(...t):$f.default.posix.resolve(v.cwd(),...t);var fO=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};M.fromPortablePath=hO;M.toPortablePath=sb;M.contains=(t,e)=>fO(M,t,e);v.contains=(t,e)=>fO(v,t,e);var Wfe=/^([a-zA-Z]:.*)$/,zfe=/^\\\\(\.\\)?(.*)$/,Vfe=/^\/([a-zA-Z]:.*)$/,_fe=/^\/unc\/(\.dot\/)?(.*)$/;function hO(t){if(process.platform!=="win32")return t;let e,r;if(e=t.match(Vfe))t=e[1];else if(r=t.match(_fe))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function sb(t){if(process.platform!=="win32")return t;let e,r;return(e=t.match(Wfe))?t=`/${e[1]}`:(r=t.match(zfe))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t.replace(/\\/g,"/")}function CE(t,e){return t===M?hO(e):sb(e)}function kr(t){if(M.parse(t).dir!==""||v.parse(t).dir!=="")throw new Error(`Invalid filename: "${t}"`);return t}var EE=new Date(tb*1e3),eh;(function(r){r.Allow="allow",r.ReadOnly="readOnly"})(eh||(eh={}));async function pO(t,e,r,i,n){let s=t.pathUtils.normalize(e),o=r.pathUtils.normalize(i),a=[],l=[],c=n.stableTime?{mtime:EE,atime:EE}:await r.lstatPromise(o);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[c.atime,c.mtime]});let u=typeof t.lutimesPromise=="function"?t.lutimesPromise.bind(t):t.utimesPromise.bind(t);await ob(a,l,u,t,s,r,o,n);for(let g of a)await g();await Promise.all(l.map(g=>g()))}async function ob(t,e,r,i,n,s,o,a){var f,h;let l=await Xfe(i,n),c=await s.lstatPromise(o),u=a.stableTime?{mtime:EE,atime:EE}:c,g;switch(!0){case c.isDirectory():g=await Zfe(t,e,r,i,n,l,s,o,c,a);break;case c.isFile():g=await $fe(t,e,r,i,n,l,s,o,c,a);break;case c.isSymbolicLink():g=await ehe(t,e,r,i,n,l,s,o,c,a);break;default:throw new Error(`Unsupported file type (${c.mode})`)}return(g||((f=l==null?void 0:l.mtime)==null?void 0:f.getTime())!==u.mtime.getTime()||((h=l==null?void 0:l.atime)==null?void 0:h.getTime())!==u.atime.getTime())&&(e.push(()=>r(n,u.atime,u.mtime)),g=!0),(l===null||(l.mode&511)!=(c.mode&511))&&(e.push(()=>i.chmodPromise(n,c.mode&511)),g=!0),g}async function Xfe(t,e){try{return await t.lstatPromise(e)}catch(r){return null}}async function Zfe(t,e,r,i,n,s,o,a,l,c){if(s!==null&&!s.isDirectory())if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;let u=!1;s===null&&(t.push(async()=>{try{await i.mkdirPromise(n,{mode:l.mode})}catch(f){if(f.code!=="EEXIST")throw f}}),u=!0);let g=await o.readdirPromise(a);if(c.stableSort)for(let f of g.sort())await ob(t,e,r,i,i.pathUtils.join(n,f),o,o.pathUtils.join(a,f),c)&&(u=!0);else(await Promise.all(g.map(async h=>{await ob(t,e,r,i,i.pathUtils.join(n,h),o,o.pathUtils.join(a,h),c)}))).some(h=>h)&&(u=!0);return u}var ab=new WeakMap;function Ab(t,e,r,i,n){return async()=>{await t.linkPromise(r,e),n===eh.ReadOnly&&(i.mode&=~146,await t.chmodPromise(e,i.mode))}}function the(t,e,r,i,n){let s=ab.get(t);return typeof s=="undefined"?async()=>{try{await t.copyFilePromise(r,e,mE.default.constants.COPYFILE_FICLONE_FORCE),ab.set(t,!0)}catch(o){if(o.code==="ENOSYS"||o.code==="ENOTSUP")ab.set(t,!1),await Ab(t,e,r,i,n)();else throw o}}:s?async()=>t.copyFilePromise(r,e,mE.default.constants.COPYFILE_FICLONE_FORCE):Ab(t,e,r,i,n)}async function $fe(t,e,r,i,n,s,o,a,l,c){var f;if(s!==null)if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;let u=(f=c.linkStrategy)!=null?f:null,g=i===o?u!==null?the(i,n,a,l,u):async()=>i.copyFilePromise(a,n,mE.default.constants.COPYFILE_FICLONE):u!==null?Ab(i,n,a,l,u):async()=>i.writeFilePromise(n,await o.readFilePromise(a));return t.push(async()=>g()),!0}async function ehe(t,e,r,i,n,s,o,a,l,c){if(s!==null)if(c.overwrite)t.push(async()=>i.removePromise(n)),s=null;else return!1;return t.push(async()=>{await i.symlinkPromise(CE(i.pathUtils,await o.readlinkPromise(a)),n)}),!0}function qn(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function IE(t){return qn("EBUSY",t)}function th(t,e){return qn("ENOSYS",`${t}, ${e}`)}function $a(t){return qn("EINVAL",`invalid argument, ${t}`)}function Hi(t){return qn("EBADF",`bad file descriptor, ${t}`)}function bs(t){return qn("ENOENT",`no such file or directory, ${t}`)}function eo(t){return qn("ENOTDIR",`not a directory, ${t}`)}function rh(t){return qn("EISDIR",`illegal operation on a directory, ${t}`)}function yE(t){return qn("EEXIST",`file already exists, ${t}`)}function ln(t){return qn("EROFS",`read-only filesystem, ${t}`)}function dO(t){return qn("ENOTEMPTY",`directory not empty, ${t}`)}function CO(t){return qn("EOPNOTSUPP",`operation not supported, ${t}`)}function mO(){return qn("ERR_DIR_CLOSED","Directory handle was closed")}var lb=class extends Error{constructor(e,r){super(e);this.name="Libzip Error",this.code=r}};var EO=class{constructor(e,r,i={}){this.path=e;this.nextDirent=r;this.opts=i;this.closed=!1}throwIfClosed(){if(this.closed)throw mO()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e!="undefined"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e!="undefined"?e(null):Promise.resolve()}closeSync(){var e,r;this.throwIfClosed(),(r=(e=this.opts).onClose)==null||r.call(e),this.closed=!0}};function wE(t,e,r,i){let n=()=>{let s=r.shift();return typeof s=="undefined"?null:Object.assign(t.statSync(t.pathUtils.join(e,s)),{name:s})};return new EO(e,n,i)}var IO=ie(require("os"));var eA=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let i=[e];for(;i.length>0;){let n=i.shift();if((await this.lstatPromise(n)).isDirectory()){let o=await this.readdirPromise(n);if(r)for(let a of o.sort())i.push(this.pathUtils.join(n,a));else throw new Error("Not supported")}else yield n}}async removePromise(e,{recursive:r=!0,maxRetries:i=5}={}){let n;try{n=await this.lstatPromise(e)}catch(s){if(s.code==="ENOENT")return;throw s}if(n.isDirectory()){if(r){let o=await this.readdirPromise(e);await Promise.all(o.map(a=>this.removePromise(this.pathUtils.resolve(e,a))))}let s=0;do try{await this.rmdirPromise(e);break}catch(o){if(o.code==="EBUSY"||o.code==="ENOTEMPTY"){if(i===0)break;await new Promise(a=>setTimeout(a,s*100));continue}else throw o}while(s++{let l;try{[l]=await this.readJsonPromise(i)}catch(c){return Date.now()-s<500}try{return process.kill(l,0),!0}catch(c){return!1}};for(;o===null;)try{o=await this.openPromise(i,"wx")}catch(l){if(l.code==="EEXIST"){if(!await a())try{await this.unlinkPromise(i);continue}catch(c){}if(Date.now()-s<60*1e3)await new Promise(c=>setTimeout(c,n));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${i})`)}else throw l}await this.writePromise(o,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(o),await this.unlinkPromise(i)}catch(l){}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(i){throw i.message+=` (in ${e})`,i}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(i){throw i.message+=` (in ${e})`,i}}async writeJsonPromise(e,r){return await this.writeFilePromise(e,`${JSON.stringify(r,null,2)} -`)}writeJsonSync(e,r){return this.writeFileSync(e,`${JSON.stringify(r,null,2)} -`)}async preserveTimePromise(e,r){let i=await this.lstatPromise(e),n=await r();typeof n!="undefined"&&(e=n),this.lutimesPromise?await this.lutimesPromise(e,i.atime,i.mtime):i.isSymbolicLink()||await this.utimesPromise(e,i.atime,i.mtime)}async preserveTimeSync(e,r){let i=this.lstatSync(e),n=r();typeof n!="undefined"&&(e=n),this.lutimesSync?this.lutimesSync(e,i.atime,i.mtime):i.isSymbolicLink()||this.utimesSync(e,i.atime,i.mtime)}},gl=class extends eA{constructor(){super(v)}};function rhe(t){let e=t.match(/\r?\n/g);if(e===null)return IO.EOL;let r=e.filter(n=>n===`\r -`).length,i=e.length-r;return r>i?`\r -`:` -`}function ul(t,e){return e.replace(/\r?\n/g,rhe(t))}var $c=ie(require("fs")),cb=ie(require("stream")),QO=ie(require("util")),ub=ie(require("zlib"));var yO=ie(require("fs"));var Wt=class extends gl{constructor(e=yO.default){super();this.realFs=e,typeof this.realFs.lutimes!="undefined"&&(this.lutimesPromise=this.lutimesPromiseImpl,this.lutimesSync=this.lutimesSyncImpl)}getExtractHint(){return!1}getRealPath(){return Se.root}resolve(e){return v.resolve(e)}async openPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.open(M.fromPortablePath(e),r,i,this.makeCallback(n,s))})}openSync(e,r,i){return this.realFs.openSync(M.fromPortablePath(e),r,i)}async opendirPromise(e,r){return await new Promise((i,n)=>{typeof r!="undefined"?this.realFs.opendir(M.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.opendir(M.fromPortablePath(e),this.makeCallback(i,n))}).then(i=>Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0}))}opendirSync(e,r){let i=typeof r!="undefined"?this.realFs.opendirSync(M.fromPortablePath(e),r):this.realFs.opendirSync(M.fromPortablePath(e));return Object.defineProperty(i,"path",{value:e,configurable:!0,writable:!0})}async readPromise(e,r,i=0,n=0,s=-1){return await new Promise((o,a)=>{this.realFs.read(e,r,i,n,s,(l,c)=>{l?a(l):o(c)})})}readSync(e,r,i,n,s){return this.realFs.readSync(e,r,i,n,s)}async writePromise(e,r,i,n,s){return await new Promise((o,a)=>typeof r=="string"?this.realFs.write(e,r,i,this.makeCallback(o,a)):this.realFs.write(e,r,i,n,s,this.makeCallback(o,a)))}writeSync(e,r,i,n,s){return typeof r=="string"?this.realFs.writeSync(e,r,i):this.realFs.writeSync(e,r,i,n,s)}async closePromise(e){await new Promise((r,i)=>{this.realFs.close(e,this.makeCallback(r,i))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let i=e!==null?M.fromPortablePath(e):e;return this.realFs.createReadStream(i,r)}createWriteStream(e,r){let i=e!==null?M.fromPortablePath(e):e;return this.realFs.createWriteStream(i,r)}async realpathPromise(e){return await new Promise((r,i)=>{this.realFs.realpath(M.fromPortablePath(e),{},this.makeCallback(r,i))}).then(r=>M.toPortablePath(r))}realpathSync(e){return M.toPortablePath(this.realFs.realpathSync(M.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(M.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(M.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((i,n)=>{this.realFs.access(M.fromPortablePath(e),r,this.makeCallback(i,n))})}existsSync(e){return this.realFs.existsSync(M.fromPortablePath(e))}async statPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.stat(M.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.stat(M.fromPortablePath(e),this.makeCallback(i,n))})}statSync(e,r){return r?this.realFs.statSync(M.fromPortablePath(e),r):this.realFs.statSync(M.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.fstat(e,r,this.makeCallback(i,n)):this.realFs.fstat(e,this.makeCallback(i,n))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.lstat(M.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.lstat(M.fromPortablePath(e),this.makeCallback(i,n))})}lstatSync(e,r){return r?this.realFs.lstatSync(M.fromPortablePath(e),r):this.realFs.lstatSync(M.fromPortablePath(e))}async chmodPromise(e,r){return await new Promise((i,n)=>{this.realFs.chmod(M.fromPortablePath(e),r,this.makeCallback(i,n))})}chmodSync(e,r){return this.realFs.chmodSync(M.fromPortablePath(e),r)}async chownPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.chown(M.fromPortablePath(e),r,i,this.makeCallback(n,s))})}chownSync(e,r,i){return this.realFs.chownSync(M.fromPortablePath(e),r,i)}async renamePromise(e,r){return await new Promise((i,n)=>{this.realFs.rename(M.fromPortablePath(e),M.fromPortablePath(r),this.makeCallback(i,n))})}renameSync(e,r){return this.realFs.renameSync(M.fromPortablePath(e),M.fromPortablePath(r))}async copyFilePromise(e,r,i=0){return await new Promise((n,s)=>{this.realFs.copyFile(M.fromPortablePath(e),M.fromPortablePath(r),i,this.makeCallback(n,s))})}copyFileSync(e,r,i=0){return this.realFs.copyFileSync(M.fromPortablePath(e),M.fromPortablePath(r),i)}async appendFilePromise(e,r,i){return await new Promise((n,s)=>{let o=typeof e=="string"?M.fromPortablePath(e):e;i?this.realFs.appendFile(o,r,i,this.makeCallback(n,s)):this.realFs.appendFile(o,r,this.makeCallback(n,s))})}appendFileSync(e,r,i){let n=typeof e=="string"?M.fromPortablePath(e):e;i?this.realFs.appendFileSync(n,r,i):this.realFs.appendFileSync(n,r)}async writeFilePromise(e,r,i){return await new Promise((n,s)=>{let o=typeof e=="string"?M.fromPortablePath(e):e;i?this.realFs.writeFile(o,r,i,this.makeCallback(n,s)):this.realFs.writeFile(o,r,this.makeCallback(n,s))})}writeFileSync(e,r,i){let n=typeof e=="string"?M.fromPortablePath(e):e;i?this.realFs.writeFileSync(n,r,i):this.realFs.writeFileSync(n,r)}async unlinkPromise(e){return await new Promise((r,i)=>{this.realFs.unlink(M.fromPortablePath(e),this.makeCallback(r,i))})}unlinkSync(e){return this.realFs.unlinkSync(M.fromPortablePath(e))}async utimesPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.utimes(M.fromPortablePath(e),r,i,this.makeCallback(n,s))})}utimesSync(e,r,i){this.realFs.utimesSync(M.fromPortablePath(e),r,i)}async lutimesPromiseImpl(e,r,i){let n=this.realFs.lutimes;if(typeof n=="undefined")throw th("unavailable Node binding",`lutimes '${e}'`);return await new Promise((s,o)=>{n.call(this.realFs,M.fromPortablePath(e),r,i,this.makeCallback(s,o))})}lutimesSyncImpl(e,r,i){let n=this.realFs.lutimesSync;if(typeof n=="undefined")throw th("unavailable Node binding",`lutimes '${e}'`);n.call(this.realFs,M.fromPortablePath(e),r,i)}async mkdirPromise(e,r){return await new Promise((i,n)=>{this.realFs.mkdir(M.fromPortablePath(e),r,this.makeCallback(i,n))})}mkdirSync(e,r){return this.realFs.mkdirSync(M.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((i,n)=>{r?this.realFs.rmdir(M.fromPortablePath(e),r,this.makeCallback(i,n)):this.realFs.rmdir(M.fromPortablePath(e),this.makeCallback(i,n))})}rmdirSync(e,r){return this.realFs.rmdirSync(M.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((i,n)=>{this.realFs.link(M.fromPortablePath(e),M.fromPortablePath(r),this.makeCallback(i,n))})}linkSync(e,r){return this.realFs.linkSync(M.fromPortablePath(e),M.fromPortablePath(r))}async symlinkPromise(e,r,i){return await new Promise((n,s)=>{this.realFs.symlink(M.fromPortablePath(e.replace(/\/+$/,"")),M.fromPortablePath(r),i,this.makeCallback(n,s))})}symlinkSync(e,r,i){return this.realFs.symlinkSync(M.fromPortablePath(e.replace(/\/+$/,"")),M.fromPortablePath(r),i)}async readFilePromise(e,r){return await new Promise((i,n)=>{let s=typeof e=="string"?M.fromPortablePath(e):e;this.realFs.readFile(s,r,this.makeCallback(i,n))})}readFileSync(e,r){let i=typeof e=="string"?M.fromPortablePath(e):e;return this.realFs.readFileSync(i,r)}async readdirPromise(e,r){return await new Promise((i,n)=>{(r==null?void 0:r.withFileTypes)?this.realFs.readdir(M.fromPortablePath(e),{withFileTypes:!0},this.makeCallback(i,n)):this.realFs.readdir(M.fromPortablePath(e),this.makeCallback(s=>i(s),n))})}readdirSync(e,r){return(r==null?void 0:r.withFileTypes)?this.realFs.readdirSync(M.fromPortablePath(e),{withFileTypes:!0}):this.realFs.readdirSync(M.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,i)=>{this.realFs.readlink(M.fromPortablePath(e),this.makeCallback(r,i))}).then(r=>M.toPortablePath(r))}readlinkSync(e){return M.toPortablePath(this.realFs.readlinkSync(M.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((i,n)=>{this.realFs.truncate(M.fromPortablePath(e),r,this.makeCallback(i,n))})}truncateSync(e,r){return this.realFs.truncateSync(M.fromPortablePath(e),r)}watch(e,r,i){return this.realFs.watch(M.fromPortablePath(e),r,i)}watchFile(e,r,i){return this.realFs.watchFile(M.fromPortablePath(e),r,i)}unwatchFile(e,r){return this.realFs.unwatchFile(M.fromPortablePath(e),r)}makeCallback(e,r){return(i,n)=>{i?r(i):e(n)}}};var wO=ie(require("events"));var fl;(function(r){r.Change="change",r.Stop="stop"})(fl||(fl={}));var hl;(function(i){i.Ready="ready",i.Running="running",i.Stopped="stopped"})(hl||(hl={}));function BO(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var ih=class extends wO.EventEmitter{constructor(e,r,{bigint:i=!1}={}){super();this.status=hl.Ready;this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=e,this.path=r,this.bigint=i,this.lastStats=this.stat()}static create(e,r,i){let n=new ih(e,r,i);return n.start(),n}start(){BO(this.status,hl.Ready),this.status=hl.Running,this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit(fl.Change,this.lastStats,this.lastStats)},3)}stop(){BO(this.status,hl.Running),this.status=hl.Stopped,this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit(fl.Stop)}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch(e){let r=this.bigint?new Xf:new Za;return pE(r)}}makeInterval(e){let r=setInterval(()=>{let i=this.stat(),n=this.lastStats;nb(i,n)||(this.lastStats=i,this.emit(fl.Change,i,n))},e.interval);return e.persistent?r:r.unref()}registerChangeListener(e,r){this.addListener(fl.Change,e),this.changeListeners.set(e,this.makeInterval(r))}unregisterChangeListener(e){this.removeListener(fl.Change,e);let r=this.changeListeners.get(e);typeof r!="undefined"&&clearInterval(r),this.changeListeners.delete(e)}unregisterAllChangeListeners(){for(let e of this.changeListeners.keys())this.unregisterChangeListener(e)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let e of this.changeListeners.values())e.ref();return this}unref(){for(let e of this.changeListeners.values())e.unref();return this}};var BE=new WeakMap;function QE(t,e,r,i){let n,s,o,a;switch(typeof r){case"function":n=!1,s=!0,o=5007,a=r;break;default:({bigint:n=!1,persistent:s=!0,interval:o=5007}=r),a=i;break}let l=BE.get(t);typeof l=="undefined"&&BE.set(t,l=new Map);let c=l.get(e);return typeof c=="undefined"&&(c=ih.create(t,e,{bigint:n}),l.set(e,c)),c.registerChangeListener(a,{persistent:s,interval:o}),c}function nh(t,e,r){let i=BE.get(t);if(typeof i=="undefined")return;let n=i.get(e);typeof n!="undefined"&&(typeof r=="undefined"?n.unregisterAllChangeListeners():n.unregisterChangeListener(r),n.hasChangeListeners()||(n.stop(),i.delete(e)))}function sh(t){let e=BE.get(t);if(typeof e!="undefined")for(let r of e.keys())nh(t,r)}var pl="mixed";function ihe(t){if(typeof t=="string"&&String(+t)===t)return+t;if(Number.isFinite(t))return t<0?Date.now()/1e3:t;if((0,QO.isDate)(t))return t.getTime()/1e3;throw new Error("Invalid time")}function bO(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var Jr=class extends gl{constructor(e,r){super();this.lzSource=null;this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;this.libzip=r.libzip;let i=r;if(this.level=typeof i.level!="undefined"?i.level:pl,e!=null||(e=bO()),typeof e=="string"){let{baseFs:o=new Wt}=i;this.baseFs=o,this.path=e}else this.path=null,this.baseFs=null;if(r.stats)this.stats=r.stats;else if(typeof e=="string")try{this.stats=this.baseFs.statSync(e)}catch(o){if(o.code==="ENOENT"&&i.create)this.stats=Zf();else throw o}else this.stats=Zf();let n=this.libzip.malloc(4);try{let o=0;if(typeof e=="string"&&i.create&&(o|=this.libzip.ZIP_CREATE|this.libzip.ZIP_TRUNCATE),r.readOnly&&(o|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof e=="string")this.zip=this.libzip.open(M.fromPortablePath(e),o,n);else{let a=this.allocateUnattachedSource(e);try{this.zip=this.libzip.openFromSource(a,o,n),this.lzSource=a}catch(l){throw this.libzip.source.free(a),l}}if(this.zip===0){let a=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(a,this.libzip.getValue(n,"i32")),this.makeLibzipError(a)}}finally{this.libzip.free(n)}this.listings.set(Se.root,new Set);let s=this.libzip.getNumEntries(this.zip,0);for(let o=0;oe)throw new Error("Overread");let n=this.libzip.HEAPU8.subarray(r,r+e);return Buffer.from(n)}finally{this.libzip.free(r)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}prepareClose(){if(!this.ready)throw IE("archive closed, close");sh(this)}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.prepareClose(),this.readOnly){this.discardAndClose();return}let e=this.baseFs.existsSync(this.path)||this.stats.mode===_f?void 0:this.stats.mode;if(this.entries.size===0)this.discardAndClose(),this.baseFs.writeFileSync(this.path,bO(),{mode:e});else{if(this.libzip.close(this.zip)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));typeof e!="undefined"&&this.baseFs.chmodSync(this.path,e)}this.ready=!1}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}resolve(e){return v.resolve(Se.root,e)}async openPromise(e,r,i){return this.openSync(e,r,i)}openSync(e,r,i){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:e}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(e,r){return this.opendirSync(e,r)}opendirSync(e,r={}){let i=this.resolveFilename(`opendir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`opendir '${e}'`);let n=this.listings.get(i);if(!n)throw eo(`opendir '${e}'`);let s=[...n],o=this.openSync(i,"r");return wE(this,i,s,{onClose:()=>{this.closeSync(o)}})}async readPromise(e,r,i,n,s){return this.readSync(e,r,i,n,s)}readSync(e,r,i=0,n=r.byteLength,s=-1){let o=this.fds.get(e);if(typeof o=="undefined")throw Hi("read");let a;s===-1||s===null?a=o.cursor:a=s;let l=this.readFileSync(o.p);l.copy(r,i,a,a+n);let c=Math.max(0,Math.min(l.length-a,n));return(s===-1||s===null)&&(o.cursor+=c),c}async writePromise(e,r,i,n,s){return typeof r=="string"?this.writeSync(e,r,s):this.writeSync(e,r,i,n,s)}writeSync(e,r,i,n,s){throw typeof this.fds.get(e)=="undefined"?Hi("read"):new Error("Unimplemented")}async closePromise(e){return this.closeSync(e)}closeSync(e){if(typeof this.fds.get(e)=="undefined")throw Hi("read");this.fds.delete(e)}createReadStream(e,{encoding:r}={}){if(e===null)throw new Error("Unimplemented");let i=this.openSync(e,"r"),n=Object.assign(new cb.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(o,a)=>{clearImmediate(s),this.closeSync(i),a(o)}}),{close(){n.destroy()},bytesRead:0,path:e}),s=setImmediate(async()=>{try{let o=await this.readFilePromise(e,r);n.bytesRead=o.length,n.end(o)}catch(o){n.destroy(o)}});return n}createWriteStream(e,{encoding:r}={}){if(this.readOnly)throw ln(`open '${e}'`);if(e===null)throw new Error("Unimplemented");let i=[],n=this.openSync(e,"w"),s=Object.assign(new cb.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(o,a)=>{try{o?a(o):(this.writeFileSync(e,Buffer.concat(i),r),a(null))}catch(l){a(l)}finally{this.closeSync(n)}}}),{bytesWritten:0,path:e,close(){s.destroy()}});return s.on("data",o=>{let a=Buffer.from(o);s.bytesWritten+=a.length,i.push(a)}),s}async realpathPromise(e){return this.realpathSync(e)}realpathSync(e){let r=this.resolveFilename(`lstat '${e}'`,e);if(!this.entries.has(r)&&!this.listings.has(r))throw bs(`lstat '${e}'`);return r}async existsPromise(e){return this.existsSync(e)}existsSync(e){if(!this.ready)throw IE(`archive closed, existsSync '${e}'`);if(this.symlinkCount===0){let i=v.resolve(Se.root,e);return this.entries.has(i)||this.listings.has(i)}let r;try{r=this.resolveFilename(`stat '${e}'`,e)}catch(i){return!1}return this.entries.has(r)||this.listings.has(r)}async accessPromise(e,r){return this.accessSync(e,r)}accessSync(e,r=$c.constants.F_OK){let i=this.resolveFilename(`access '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`access '${e}'`);if(this.readOnly&&r&$c.constants.W_OK)throw ln(`access '${e}'`)}async statPromise(e,r){return this.statSync(e,r)}statSync(e,r){let i=this.resolveFilename(`stat '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`stat '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw eo(`stat '${e}'`);return this.statImpl(`stat '${e}'`,i,r)}async fstatPromise(e,r){return this.fstatSync(e,r)}fstatSync(e,r){let i=this.fds.get(e);if(typeof i=="undefined")throw Hi("fstatSync");let{p:n}=i,s=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(s)&&!this.listings.has(s))throw bs(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(s))throw eo(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,s,r)}async lstatPromise(e,r){return this.lstatSync(e,r)}lstatSync(e,r){let i=this.resolveFilename(`lstat '${e}'`,e,!1);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`lstat '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw eo(`lstat '${e}'`);return this.statImpl(`lstat '${e}'`,i,r)}statImpl(e,r,i={}){let n=this.entries.get(r);if(typeof n!="undefined"){let s=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,s)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let a=this.stats.uid,l=this.stats.gid,c=this.libzip.struct.statSize(s)>>>0,u=512,g=Math.ceil(c/u),f=(this.libzip.struct.statMtime(s)>>>0)*1e3,h=f,p=f,d=f,m=new Date(h),I=new Date(p),B=new Date(d),b=new Date(f),R=this.listings.has(r)?zo:this.isSymbolicLink(n)?_o:Vo,H=R===zo?493:420,L=R|this.getUnixMode(n,H)&511,K=this.libzip.struct.statCrc(s),J=Object.assign(new Za,{uid:a,gid:l,size:c,blksize:u,blocks:g,atime:m,birthtime:I,ctime:B,mtime:b,atimeMs:h,birthtimeMs:p,ctimeMs:d,mtimeMs:f,mode:L,crc:K});return i.bigint===!0?dE(J):J}if(this.listings.has(r)){let s=this.stats.uid,o=this.stats.gid,a=0,l=512,c=0,u=this.stats.mtimeMs,g=this.stats.mtimeMs,f=this.stats.mtimeMs,h=this.stats.mtimeMs,p=new Date(u),d=new Date(g),m=new Date(f),I=new Date(h),B=zo|493,b=0,R=Object.assign(new Za,{uid:s,gid:o,size:a,blksize:l,blocks:c,atime:p,birthtime:d,ctime:m,mtime:I,atimeMs:u,birthtimeMs:g,ctimeMs:f,mtimeMs:h,mode:B,crc:b});return i.bigint===!0?dE(R):R}throw new Error("Unreachable")}getUnixMode(e,r){if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?r:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(e){let r=this.listings.get(e);if(r)return r;let i=this.registerListing(v.dirname(e));return r=new Set,i.add(v.basename(e)),this.listings.set(e,r),r}registerEntry(e,r){this.registerListing(v.dirname(e)).add(v.basename(e)),this.entries.set(e,r)}unregisterListing(e){this.listings.delete(e);let r=this.listings.get(v.dirname(e));r==null||r.delete(v.basename(e))}unregisterEntry(e){this.unregisterListing(e);let r=this.entries.get(e);this.entries.delete(e),typeof r!="undefined"&&(this.fileSources.delete(r),this.isSymbolicLink(r)&&this.symlinkCount--)}deleteEntry(e,r){if(this.unregisterEntry(e),this.libzip.delete(this.zip,r)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(e,r,i=!0){if(!this.ready)throw IE(`archive closed, ${e}`);let n=v.resolve(Se.root,r);if(n==="/")return Se.root;let s=this.entries.get(n);if(i&&s!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(s)){let o=this.getFileSource(s).toString();return this.resolveFilename(e,v.resolve(v.dirname(n),o),!0)}else return n;for(;;){let o=this.resolveFilename(e,v.dirname(n),!0),a=this.listings.has(o),l=this.entries.has(o);if(!a&&!l)throw bs(e);if(!a)throw eo(e);if(n=v.resolve(o,v.basename(n)),!i||this.symlinkCount===0)break;let c=this.libzip.name.locate(this.zip,n.slice(1));if(c===-1)break;if(this.isSymbolicLink(c)){let u=this.getFileSource(c).toString();n=v.resolve(v.dirname(n),u)}else break}return n}allocateBuffer(e){Buffer.isBuffer(e)||(e=Buffer.from(e));let r=this.libzip.malloc(e.byteLength);if(!r)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,r,e.byteLength).set(e),{buffer:r,byteLength:e.byteLength}}allocateUnattachedSource(e){let r=this.libzip.struct.errorS(),{buffer:i,byteLength:n}=this.allocateBuffer(e),s=this.libzip.source.fromUnattachedBuffer(i,n,0,!0,r);if(s===0)throw this.libzip.free(r),this.makeLibzipError(r);return s}allocateSource(e){let{buffer:r,byteLength:i}=this.allocateBuffer(e),n=this.libzip.source.fromBuffer(this.zip,r,i,0,!0);if(n===0)throw this.libzip.free(r),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(e,r){let i=Buffer.isBuffer(r)?r:Buffer.from(r),n=v.relative(Se.root,e),s=this.allocateSource(r);try{let o=this.libzip.file.add(this.zip,n,s,this.libzip.ZIP_FL_OVERWRITE);if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let a;if(this.level===0?a=this.libzip.ZIP_CM_STORE:a=this.libzip.ZIP_CM_DEFLATE,this.libzip.file.setCompression(this.zip,o,0,a,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(o,i),o}catch(o){throw this.libzip.source.free(s),o}}isSymbolicLink(e){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,e,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&kn)===_o}getFileSource(e,r={asyncDecompress:!1}){let i=this.fileSources.get(e);if(typeof i!="undefined")return i;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,e,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let o=this.libzip.struct.statCompSize(n),a=this.libzip.struct.statCompMethod(n),l=this.libzip.malloc(o);try{let c=this.libzip.fopenIndex(this.zip,e,0,this.libzip.ZIP_FL_COMPRESSED);if(c===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let u=this.libzip.fread(c,l,o,0);if(u===-1)throw this.makeLibzipError(this.libzip.file.getError(c));if(uo)throw new Error("Overread");let g=this.libzip.HEAPU8.subarray(l,l+o),f=Buffer.from(g);if(a===0)return this.fileSources.set(e,f),f;if(r.asyncDecompress)return new Promise((h,p)=>{ub.default.inflateRaw(f,(d,m)=>{d?p(d):(this.fileSources.set(e,m),h(m))})});{let h=ub.default.inflateRawSync(f);return this.fileSources.set(e,h),h}}finally{this.libzip.fclose(c)}}finally{this.libzip.free(l)}}async chmodPromise(e,r){return this.chmodSync(e,r)}chmodSync(e,r){if(this.readOnly)throw ln(`chmod '${e}'`);r&=493;let i=this.resolveFilename(`chmod '${e}'`,e,!1),n=this.entries.get(i);if(typeof n=="undefined")throw new Error(`Assertion failed: The entry should have been registered (${i})`);let o=this.getUnixMode(n,Vo|0)&~511|r;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,o<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async chownPromise(e,r,i){return this.chownSync(e,r,i)}chownSync(e,r,i){throw new Error("Unimplemented")}async renamePromise(e,r){return this.renameSync(e,r)}renameSync(e,r){throw new Error("Unimplemented")}async copyFilePromise(e,r,i){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,r,i),a=await this.getFileSource(n,{asyncDecompress:!0}),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}copyFileSync(e,r,i=0){let{indexSource:n,indexDest:s,resolvedDestP:o}=this.prepareCopyFile(e,r,i),a=this.getFileSource(n),l=this.setFileSource(o,a);l!==s&&this.registerEntry(o,l)}prepareCopyFile(e,r,i=0){if(this.readOnly)throw ln(`copyfile '${e} -> '${r}'`);if((i&$c.constants.COPYFILE_FICLONE_FORCE)!=0)throw th("unsupported clone operation",`copyfile '${e}' -> ${r}'`);let n=this.resolveFilename(`copyfile '${e} -> ${r}'`,e),s=this.entries.get(n);if(typeof s=="undefined")throw $a(`copyfile '${e}' -> '${r}'`);let o=this.resolveFilename(`copyfile '${e}' -> ${r}'`,r),a=this.entries.get(o);if((i&($c.constants.COPYFILE_EXCL|$c.constants.COPYFILE_FICLONE_FORCE))!=0&&typeof a!="undefined")throw yE(`copyfile '${e}' -> '${r}'`);return{indexSource:s,resolvedDestP:o,indexDest:a}}async appendFilePromise(e,r,i){if(this.readOnly)throw ln(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=P({flag:"a"},i)),this.writeFilePromise(e,r,i)}appendFileSync(e,r,i={}){if(this.readOnly)throw ln(`open '${e}'`);return typeof i=="undefined"?i={flag:"a"}:typeof i=="string"?i={flag:"a",encoding:i}:typeof i.flag=="undefined"&&(i=P({flag:"a"},i)),this.writeFileSync(e,r,i)}fdToPath(e,r){var n;let i=(n=this.fds.get(e))==null?void 0:n.p;if(typeof i=="undefined")throw Hi(r);return i}async writeFilePromise(e,r,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(r=Buffer.concat([await this.getFileSource(o,{asyncDecompress:!0}),Buffer.from(r)])),n!==null&&(r=r.toString(n));let l=this.setFileSource(a,r);l!==o&&this.registerEntry(a,l),s!==null&&await this.chmodPromise(a,s)}writeFileSync(e,r,i){let{encoding:n,mode:s,index:o,resolvedP:a}=this.prepareWriteFile(e,i);o!==void 0&&typeof i=="object"&&i.flag&&i.flag.includes("a")&&(r=Buffer.concat([this.getFileSource(o),Buffer.from(r)])),n!==null&&(r=r.toString(n));let l=this.setFileSource(a,r);l!==o&&this.registerEntry(a,l),s!==null&&this.chmodSync(a,s)}prepareWriteFile(e,r){if(typeof e=="number"&&(e=this.fdToPath(e,"read")),this.readOnly)throw ln(`open '${e}'`);let i=this.resolveFilename(`open '${e}'`,e);if(this.listings.has(i))throw rh(`open '${e}'`);let n=null,s=null;typeof r=="string"?n=r:typeof r=="object"&&({encoding:n=null,mode:s=null}=r);let o=this.entries.get(i);return{encoding:n,mode:s,resolvedP:i,index:o}}async unlinkPromise(e){return this.unlinkSync(e)}unlinkSync(e){if(this.readOnly)throw ln(`unlink '${e}'`);let r=this.resolveFilename(`unlink '${e}'`,e);if(this.listings.has(r))throw rh(`unlink '${e}'`);let i=this.entries.get(r);if(typeof i=="undefined")throw $a(`unlink '${e}'`);this.deleteEntry(r,i)}async utimesPromise(e,r,i){return this.utimesSync(e,r,i)}utimesSync(e,r,i){if(this.readOnly)throw ln(`utimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e);this.utimesImpl(n,i)}async lutimesPromise(e,r,i){return this.lutimesSync(e,r,i)}lutimesSync(e,r,i){if(this.readOnly)throw ln(`lutimes '${e}'`);let n=this.resolveFilename(`utimes '${e}'`,e,!1);this.utimesImpl(n,i)}utimesImpl(e,r){this.listings.has(e)&&(this.entries.has(e)||this.hydrateDirectory(e));let i=this.entries.get(e);if(i===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,i,0,ihe(r),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(e,r){return this.mkdirSync(e,r)}mkdirSync(e,{mode:r=493,recursive:i=!1}={}){if(i){this.mkdirpSync(e,{chmod:r});return}if(this.readOnly)throw ln(`mkdir '${e}'`);let n=this.resolveFilename(`mkdir '${e}'`,e);if(this.entries.has(n)||this.listings.has(n))throw yE(`mkdir '${e}'`);this.hydrateDirectory(n),this.chmodSync(n,r)}async rmdirPromise(e,r){return this.rmdirSync(e,r)}rmdirSync(e,{recursive:r=!1}={}){if(this.readOnly)throw ln(`rmdir '${e}'`);if(r){this.removeSync(e);return}let i=this.resolveFilename(`rmdir '${e}'`,e),n=this.listings.get(i);if(!n)throw eo(`rmdir '${e}'`);if(n.size>0)throw dO(`rmdir '${e}'`);let s=this.entries.get(i);if(typeof s=="undefined")throw $a(`rmdir '${e}'`);this.deleteEntry(e,s)}hydrateDirectory(e){let r=this.libzip.dir.add(this.zip,v.relative(Se.root,e));if(r===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(e),this.registerEntry(e,r),r}async linkPromise(e,r){return this.linkSync(e,r)}linkSync(e,r){throw CO(`link '${e}' -> '${r}'`)}async symlinkPromise(e,r){return this.symlinkSync(e,r)}symlinkSync(e,r){if(this.readOnly)throw ln(`symlink '${e}' -> '${r}'`);let i=this.resolveFilename(`symlink '${e}' -> '${r}'`,r);if(this.listings.has(i))throw rh(`symlink '${e}' -> '${r}'`);if(this.entries.has(i))throw yE(`symlink '${e}' -> '${r}'`);let n=this.setFileSource(i,e);if(this.registerEntry(i,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(_o|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(e,r){typeof r=="object"&&(r=r?r.encoding:void 0);let i=await this.readFileBuffer(e,{asyncDecompress:!0});return r?i.toString(r):i}readFileSync(e,r){typeof r=="object"&&(r=r?r.encoding:void 0);let i=this.readFileBuffer(e);return r?i.toString(r):i}readFileBuffer(e,r={asyncDecompress:!1}){typeof e=="number"&&(e=this.fdToPath(e,"read"));let i=this.resolveFilename(`open '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`open '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(i))throw eo(`open '${e}'`);if(this.listings.has(i))throw rh("read");let n=this.entries.get(i);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,r)}async readdirPromise(e,r){return this.readdirSync(e,r)}readdirSync(e,r){let i=this.resolveFilename(`scandir '${e}'`,e);if(!this.entries.has(i)&&!this.listings.has(i))throw bs(`scandir '${e}'`);let n=this.listings.get(i);if(!n)throw eo(`scandir '${e}'`);let s=[...n];return(r==null?void 0:r.withFileTypes)?s.map(o=>Object.assign(this.statImpl("lstat",v.join(e,o)),{name:o})):s}async readlinkPromise(e){let r=this.prepareReadlink(e);return(await this.getFileSource(r,{asyncDecompress:!0})).toString()}readlinkSync(e){let r=this.prepareReadlink(e);return this.getFileSource(r).toString()}prepareReadlink(e){let r=this.resolveFilename(`readlink '${e}'`,e,!1);if(!this.entries.has(r)&&!this.listings.has(r))throw bs(`readlink '${e}'`);if(e[e.length-1]==="/"&&!this.listings.has(r))throw eo(`open '${e}'`);if(this.listings.has(r))throw $a(`readlink '${e}'`);let i=this.entries.get(r);if(i===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(i))throw $a(`readlink '${e}'`);return i}async truncatePromise(e,r=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw $a(`open '${e}'`);let s=await this.getFileSource(n,{asyncDecompress:!0}),o=Buffer.alloc(r,0);return s.copy(o),await this.writeFilePromise(e,o)}truncateSync(e,r=0){let i=this.resolveFilename(`open '${e}'`,e),n=this.entries.get(i);if(typeof n=="undefined")throw $a(`open '${e}'`);let s=this.getFileSource(n),o=Buffer.alloc(r,0);return s.copy(o),this.writeFileSync(e,o)}watch(e,r,i){let n;switch(typeof r){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=r);break}if(!n)return{on:()=>{},close:()=>{}};let s=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(s)}}}watchFile(e,r,i){let n=v.resolve(Se.root,e);return QE(this,n,r,i)}unwatchFile(e,r){let i=v.resolve(Se.root,e);return nh(this,i,r)}};var fi=class extends eA{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,i){return this.baseFs.openPromise(this.mapToBase(e),r,i)}openSync(e,r,i){return this.baseFs.openSync(this.mapToBase(e),r,i)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,i,n,s){return await this.baseFs.readPromise(e,r,i,n,s)}readSync(e,r,i,n,s){return this.baseFs.readSync(e,r,i,n,s)}async writePromise(e,r,i,n,s){return typeof r=="string"?await this.baseFs.writePromise(e,r,i):await this.baseFs.writePromise(e,r,i,n,s)}writeSync(e,r,i,n,s){return typeof r=="string"?this.baseFs.writeSync(e,r,i):this.baseFs.writeSync(e,r,i,n,s)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}async lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async chownPromise(e,r,i){return this.baseFs.chownPromise(this.mapToBase(e),r,i)}chownSync(e,r,i){return this.baseFs.chownSync(this.mapToBase(e),r,i)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,i=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),i)}copyFileSync(e,r,i=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),i)}async appendFilePromise(e,r,i){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,i)}appendFileSync(e,r,i){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,i)}async writeFilePromise(e,r,i){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,i)}writeFileSync(e,r,i){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,i)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,i){return this.baseFs.utimesPromise(this.mapToBase(e),r,i)}utimesSync(e,r,i){return this.baseFs.utimesSync(this.mapToBase(e),r,i)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,i){let n=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkPromise(o,n,i)}symlinkSync(e,r,i){let n=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),n,i);let s=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),o=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(n),s);return this.baseFs.symlinkSync(o,n,i)}async readFilePromise(e,r){return r==="utf8"?this.baseFs.readFilePromise(this.fsMapToBase(e),r):this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return r==="utf8"?this.baseFs.readFileSync(this.fsMapToBase(e),r):this.baseFs.readFileSync(this.fsMapToBase(e),r)}async readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}watch(e,r,i){return this.baseFs.watch(this.mapToBase(e),r,i)}watchFile(e,r,i){return this.baseFs.watchFile(this.mapToBase(e),r,i)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}};var Xo=class extends fi{constructor(e,{baseFs:r,pathUtils:i}){super(i);this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}};var Ft=class extends fi{constructor(e,{baseFs:r=new Wt}={}){super(v);this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?v.normalize(e):this.baseFs.resolve(v.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}};var vO=Se.root,Zo=class extends fi{constructor(e,{baseFs:r=new Wt}={}){super(v);this.target=this.pathUtils.resolve(Se.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Se.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(vO,e));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(vO,this.pathUtils.relative(this.target,e))}};var oh=class extends fi{constructor(e,r){super(r);this.instance=null;this.factory=e}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(e){this.instance=e}mapFromBase(e){return e}mapToBase(e){return e}};var ze=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),gb=class extends eA{constructor(){super(v)}getExtractHint(){throw ze()}getRealPath(){throw ze()}resolve(){throw ze()}async openPromise(){throw ze()}openSync(){throw ze()}async opendirPromise(){throw ze()}opendirSync(){throw ze()}async readPromise(){throw ze()}readSync(){throw ze()}async writePromise(){throw ze()}writeSync(){throw ze()}async closePromise(){throw ze()}closeSync(){throw ze()}createWriteStream(){throw ze()}createReadStream(){throw ze()}async realpathPromise(){throw ze()}realpathSync(){throw ze()}async readdirPromise(){throw ze()}readdirSync(){throw ze()}async existsPromise(e){throw ze()}existsSync(e){throw ze()}async accessPromise(){throw ze()}accessSync(){throw ze()}async statPromise(){throw ze()}statSync(){throw ze()}async fstatPromise(e){throw ze()}fstatSync(e){throw ze()}async lstatPromise(e){throw ze()}lstatSync(e){throw ze()}async chmodPromise(){throw ze()}chmodSync(){throw ze()}async chownPromise(){throw ze()}chownSync(){throw ze()}async mkdirPromise(){throw ze()}mkdirSync(){throw ze()}async rmdirPromise(){throw ze()}rmdirSync(){throw ze()}async linkPromise(){throw ze()}linkSync(){throw ze()}async symlinkPromise(){throw ze()}symlinkSync(){throw ze()}async renamePromise(){throw ze()}renameSync(){throw ze()}async copyFilePromise(){throw ze()}copyFileSync(){throw ze()}async appendFilePromise(){throw ze()}appendFileSync(){throw ze()}async writeFilePromise(){throw ze()}writeFileSync(){throw ze()}async unlinkPromise(){throw ze()}unlinkSync(){throw ze()}async utimesPromise(){throw ze()}utimesSync(){throw ze()}async readFilePromise(){throw ze()}readFileSync(){throw ze()}async readlinkPromise(){throw ze()}readlinkSync(){throw ze()}async truncatePromise(){throw ze()}truncateSync(){throw ze()}watch(){throw ze()}watchFile(){throw ze()}unwatchFile(){throw ze()}},bE=gb;bE.instance=new gb;var ah=class extends fi{constructor(e){super(M);this.baseFs=e}mapFromBase(e){return M.fromPortablePath(e)}mapToBase(e){return M.toPortablePath(e)}};var nhe=/^[0-9]+$/,fb=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,she=/^([^/]+-)?[a-f0-9]+$/,Pr=class extends fi{static makeVirtualPath(e,r,i){if(v.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!v.basename(r).match(she))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let s=v.relative(v.dirname(e),i).split("/"),o=0;for(;o{let r=t.indexOf(e);if(r<=0)return null;let i=r;for(;r>=0&&(i=r+e.length,t[i]!==v.sep);){if(t[r-1]===v.sep)return null;r=t.indexOf(e,i)}return t.length>i&&t[i]!==v.sep?null:t.slice(0,i)},Jn=class extends gl{constructor({libzip:e,baseFs:r=new Wt,filter:i=null,maxOpenFiles:n=Infinity,readOnlyArchives:s=!1,useCache:o=!0,maxAge:a=5e3,fileExtensions:l=null}){super();this.fdMap=new Map;this.nextFd=3;this.isZip=new Set;this.notZip=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.libzipFactory=typeof e!="function"?()=>e:e,this.baseFs=r,this.zipInstances=o?new Map:null,this.filter=i,this.maxOpenFiles=n,this.readOnlyArchives=s,this.maxAge=a,this.fileExtensions=l}static async openPromise(e,r){let i=new Jn(r);try{return await e(i)}finally{i.saveAndClose()}}get libzip(){return typeof this.libzipInstance=="undefined"&&(this.libzipInstance=this.libzipFactory()),this.libzipInstance}getExtractHint(e){return this.baseFs.getExtractHint(e)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(sh(this),this.zipInstances)for(let[e,{zipFs:r}]of this.zipInstances.entries())r.saveAndClose(),this.zipInstances.delete(e)}discardAndClose(){if(sh(this),this.zipInstances)for(let[e,{zipFs:r}]of this.zipInstances.entries())r.discardAndClose(),this.zipInstances.delete(e)}resolve(e){return this.baseFs.resolve(e)}remapFd(e,r){let i=this.nextFd++|$o;return this.fdMap.set(i,[e,r]),i}async openPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.openPromise(e,r,i),async(n,{subPath:s})=>this.remapFd(n,await n.openPromise(s,r,i)))}openSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.openSync(e,r,i),(n,{subPath:s})=>this.remapFd(n,n.openSync(s,r,i)))}async opendirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.opendirPromise(e,r),async(i,{subPath:n})=>await i.opendirPromise(n,r),{requireSubpath:!1})}opendirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.opendirSync(e,r),(i,{subPath:n})=>i.opendirSync(n,r),{requireSubpath:!1})}async readPromise(e,r,i,n,s){if((e&$o)==0)return await this.baseFs.readPromise(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Hi("read");let[a,l]=o;return await a.readPromise(l,r,i,n,s)}readSync(e,r,i,n,s){if((e&$o)==0)return this.baseFs.readSync(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Hi("readSync");let[a,l]=o;return a.readSync(l,r,i,n,s)}async writePromise(e,r,i,n,s){if((e&$o)==0)return typeof r=="string"?await this.baseFs.writePromise(e,r,i):await this.baseFs.writePromise(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Hi("write");let[a,l]=o;return typeof r=="string"?await a.writePromise(l,r,i):await a.writePromise(l,r,i,n,s)}writeSync(e,r,i,n,s){if((e&$o)==0)return typeof r=="string"?this.baseFs.writeSync(e,r,i):this.baseFs.writeSync(e,r,i,n,s);let o=this.fdMap.get(e);if(typeof o=="undefined")throw Hi("writeSync");let[a,l]=o;return typeof r=="string"?a.writeSync(l,r,i):a.writeSync(l,r,i,n,s)}async closePromise(e){if((e&$o)==0)return await this.baseFs.closePromise(e);let r=this.fdMap.get(e);if(typeof r=="undefined")throw Hi("close");this.fdMap.delete(e);let[i,n]=r;return await i.closePromise(n)}closeSync(e){if((e&$o)==0)return this.baseFs.closeSync(e);let r=this.fdMap.get(e);if(typeof r=="undefined")throw Hi("closeSync");this.fdMap.delete(e);let[i,n]=r;return i.closeSync(n)}createReadStream(e,r){return e===null?this.baseFs.createReadStream(e,r):this.makeCallSync(e,()=>this.baseFs.createReadStream(e,r),(i,{subPath:n})=>i.createReadStream(n,r))}createWriteStream(e,r){return e===null?this.baseFs.createWriteStream(e,r):this.makeCallSync(e,()=>this.baseFs.createWriteStream(e,r),(i,{subPath:n})=>i.createWriteStream(n,r))}async realpathPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.realpathPromise(e),async(r,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=await this.baseFs.realpathPromise(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Se.root,await r.realpathPromise(n)))})}realpathSync(e){return this.makeCallSync(e,()=>this.baseFs.realpathSync(e),(r,{archivePath:i,subPath:n})=>{let s=this.realPaths.get(i);return typeof s=="undefined"&&(s=this.baseFs.realpathSync(i),this.realPaths.set(i,s)),this.pathUtils.join(s,this.pathUtils.relative(Se.root,r.realpathSync(n)))})}async existsPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.existsPromise(e),async(r,{subPath:i})=>await r.existsPromise(i))}existsSync(e){return this.makeCallSync(e,()=>this.baseFs.existsSync(e),(r,{subPath:i})=>r.existsSync(i))}async accessPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.accessPromise(e,r),async(i,{subPath:n})=>await i.accessPromise(n,r))}accessSync(e,r){return this.makeCallSync(e,()=>this.baseFs.accessSync(e,r),(i,{subPath:n})=>i.accessSync(n,r))}async statPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.statPromise(e,r),async(i,{subPath:n})=>await i.statPromise(n,r))}statSync(e,r){return this.makeCallSync(e,()=>this.baseFs.statSync(e,r),(i,{subPath:n})=>i.statSync(n,r))}async fstatPromise(e,r){if((e&$o)==0)return this.baseFs.fstatPromise(e,r);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Hi("fstat");let[n,s]=i;return n.fstatPromise(s,r)}fstatSync(e,r){if((e&$o)==0)return this.baseFs.fstatSync(e,r);let i=this.fdMap.get(e);if(typeof i=="undefined")throw Hi("fstatSync");let[n,s]=i;return n.fstatSync(s,r)}async lstatPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.lstatPromise(e,r),async(i,{subPath:n})=>await i.lstatPromise(n,r))}lstatSync(e,r){return this.makeCallSync(e,()=>this.baseFs.lstatSync(e,r),(i,{subPath:n})=>i.lstatSync(n,r))}async chmodPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.chmodPromise(e,r),async(i,{subPath:n})=>await i.chmodPromise(n,r))}chmodSync(e,r){return this.makeCallSync(e,()=>this.baseFs.chmodSync(e,r),(i,{subPath:n})=>i.chmodSync(n,r))}async chownPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.chownPromise(e,r,i),async(n,{subPath:s})=>await n.chownPromise(s,r,i))}chownSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.chownSync(e,r,i),(n,{subPath:s})=>n.chownSync(s,r,i))}async renamePromise(e,r){return await this.makeCallPromise(e,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.renamePromise(e,r),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(i,{subPath:n})=>await this.makeCallPromise(r,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await i.renamePromise(n,o)}))}renameSync(e,r){return this.makeCallSync(e,()=>this.makeCallSync(r,()=>this.baseFs.renameSync(e,r),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(i,{subPath:n})=>this.makeCallSync(r,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(s,{subPath:o})=>{if(i!==s)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return i.renameSync(n,o)}))}async copyFilePromise(e,r,i=0){let n=async(s,o,a,l)=>{if((i&Ah.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Ah.constants.COPYFILE_EXCL&&await this.existsPromise(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=await s.readFilePromise(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}await a.writeFilePromise(l,c)};return await this.makeCallPromise(e,async()=>await this.makeCallPromise(r,async()=>await this.baseFs.copyFilePromise(e,r,i),async(s,{subPath:o})=>await n(this.baseFs,e,s,o)),async(s,{subPath:o})=>await this.makeCallPromise(r,async()=>await n(s,o,this.baseFs,r),async(a,{subPath:l})=>s!==a?await n(s,o,a,l):await s.copyFilePromise(o,l,i)))}copyFileSync(e,r,i=0){let n=(s,o,a,l)=>{if((i&Ah.constants.COPYFILE_FICLONE_FORCE)!=0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${o}' -> ${l}'`),{code:"EXDEV"});if(i&Ah.constants.COPYFILE_EXCL&&this.existsSync(o))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${o}' -> '${l}'`),{code:"EEXIST"});let c;try{c=s.readFileSync(o)}catch(u){throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${o}' -> '${l}'`),{code:"EINVAL"})}a.writeFileSync(l,c)};return this.makeCallSync(e,()=>this.makeCallSync(r,()=>this.baseFs.copyFileSync(e,r,i),(s,{subPath:o})=>n(this.baseFs,e,s,o)),(s,{subPath:o})=>this.makeCallSync(r,()=>n(s,o,this.baseFs,r),(a,{subPath:l})=>s!==a?n(s,o,a,l):s.copyFileSync(o,l,i)))}async appendFilePromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.appendFilePromise(e,r,i),async(n,{subPath:s})=>await n.appendFilePromise(s,r,i))}appendFileSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.appendFileSync(e,r,i),(n,{subPath:s})=>n.appendFileSync(s,r,i))}async writeFilePromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.writeFilePromise(e,r,i),async(n,{subPath:s})=>await n.writeFilePromise(s,r,i))}writeFileSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.writeFileSync(e,r,i),(n,{subPath:s})=>n.writeFileSync(s,r,i))}async unlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.unlinkPromise(e),async(r,{subPath:i})=>await r.unlinkPromise(i))}unlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.unlinkSync(e),(r,{subPath:i})=>r.unlinkSync(i))}async utimesPromise(e,r,i){return await this.makeCallPromise(e,async()=>await this.baseFs.utimesPromise(e,r,i),async(n,{subPath:s})=>await n.utimesPromise(s,r,i))}utimesSync(e,r,i){return this.makeCallSync(e,()=>this.baseFs.utimesSync(e,r,i),(n,{subPath:s})=>n.utimesSync(s,r,i))}async mkdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.mkdirPromise(e,r),async(i,{subPath:n})=>await i.mkdirPromise(n,r))}mkdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.mkdirSync(e,r),(i,{subPath:n})=>i.mkdirSync(n,r))}async rmdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.rmdirPromise(e,r),async(i,{subPath:n})=>await i.rmdirPromise(n,r))}rmdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.rmdirSync(e,r),(i,{subPath:n})=>i.rmdirSync(n,r))}async linkPromise(e,r){return await this.makeCallPromise(r,async()=>await this.baseFs.linkPromise(e,r),async(i,{subPath:n})=>await i.linkPromise(e,n))}linkSync(e,r){return this.makeCallSync(r,()=>this.baseFs.linkSync(e,r),(i,{subPath:n})=>i.linkSync(e,n))}async symlinkPromise(e,r,i){return await this.makeCallPromise(r,async()=>await this.baseFs.symlinkPromise(e,r,i),async(n,{subPath:s})=>await n.symlinkPromise(e,s))}symlinkSync(e,r,i){return this.makeCallSync(r,()=>this.baseFs.symlinkSync(e,r,i),(n,{subPath:s})=>n.symlinkSync(e,s))}async readFilePromise(e,r){return this.makeCallPromise(e,async()=>{switch(r){case"utf8":return await this.baseFs.readFilePromise(e,r);default:return await this.baseFs.readFilePromise(e,r)}},async(i,{subPath:n})=>await i.readFilePromise(n,r))}readFileSync(e,r){return this.makeCallSync(e,()=>{switch(r){case"utf8":return this.baseFs.readFileSync(e,r);default:return this.baseFs.readFileSync(e,r)}},(i,{subPath:n})=>i.readFileSync(n,r))}async readdirPromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.readdirPromise(e,r),async(i,{subPath:n})=>await i.readdirPromise(n,r),{requireSubpath:!1})}readdirSync(e,r){return this.makeCallSync(e,()=>this.baseFs.readdirSync(e,r),(i,{subPath:n})=>i.readdirSync(n,r),{requireSubpath:!1})}async readlinkPromise(e){return await this.makeCallPromise(e,async()=>await this.baseFs.readlinkPromise(e),async(r,{subPath:i})=>await r.readlinkPromise(i))}readlinkSync(e){return this.makeCallSync(e,()=>this.baseFs.readlinkSync(e),(r,{subPath:i})=>r.readlinkSync(i))}async truncatePromise(e,r){return await this.makeCallPromise(e,async()=>await this.baseFs.truncatePromise(e,r),async(i,{subPath:n})=>await i.truncatePromise(n,r))}truncateSync(e,r){return this.makeCallSync(e,()=>this.baseFs.truncateSync(e,r),(i,{subPath:n})=>i.truncateSync(n,r))}watch(e,r,i){return this.makeCallSync(e,()=>this.baseFs.watch(e,r,i),(n,{subPath:s})=>n.watch(s,r,i))}watchFile(e,r,i){return this.makeCallSync(e,()=>this.baseFs.watchFile(e,r,i),()=>QE(this,e,r,i))}unwatchFile(e,r){return this.makeCallSync(e,()=>this.baseFs.unwatchFile(e,r),()=>nh(this,e,r))}async makeCallPromise(e,r,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return await r();let s=this.resolve(e),o=this.findZip(s);return o?n&&o.subPath==="/"?await r():await this.getZipPromise(o.archivePath,async a=>await i(a,o)):await r()}makeCallSync(e,r,i,{requireSubpath:n=!0}={}){if(typeof e!="string")return r();let s=this.resolve(e),o=this.findZip(s);return!o||n&&o.subPath==="/"?r():this.getZipSync(o.archivePath,a=>i(a,o))}findZip(e){if(this.filter&&!this.filter.test(e))return null;let r="";for(;;){let i=e.substr(r.length),n;if(!this.fileExtensions)n=SO(i,".zip");else for(let s of this.fileExtensions)if(n=SO(i,s),n)break;if(!n)return null;if(r=this.pathUtils.join(r,n),this.isZip.has(r)===!1){if(this.notZip.has(r))continue;try{if(!this.baseFs.lstatSync(r).isFile()){this.notZip.add(r);continue}}catch{return null}this.isZip.add(r)}return{archivePath:r,subPath:this.pathUtils.join(Se.root,e.substr(r.length))}}}limitOpenFiles(e){if(this.zipInstances===null)return;let r=Date.now(),i=r+this.maxAge,n=e===null?0:this.zipInstances.size-e;for(let[s,{zipFs:o,expiresAt:a,refCount:l}]of this.zipInstances.entries())if(!(l!==0||o.hasOpenFileHandles())){if(r>=a){o.saveAndClose(),this.zipInstances.delete(s),n-=1;continue}else if(e===null||n<=0){i=a;break}o.saveAndClose(),this.zipInstances.delete(s),n-=1}this.limitOpenFilesTimeout===null&&(e===null&&this.zipInstances.size>0||e!==null)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},i-r).unref())}async getZipPromise(e,r){let i=async()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:await this.baseFs.statPromise(e)});if(this.zipInstances){let n=this.zipInstances.get(e);if(!n){let s=await i();n=this.zipInstances.get(e),n||(n={zipFs:new Jr(e,s),expiresAt:0,refCount:0})}this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,n.refCount+=1;try{return await r(n.zipFs)}finally{n.refCount-=1}}else{let n=new Jr(e,await i());try{return await r(n)}finally{n.saveAndClose()}}}getZipSync(e,r){let i=()=>({baseFs:this.baseFs,libzip:this.libzip,readOnly:this.readOnlyArchives,stats:this.baseFs.statSync(e)});if(this.zipInstances){let n=this.zipInstances.get(e);return n||(n={zipFs:new Jr(e,i()),expiresAt:0,refCount:0}),this.zipInstances.delete(e),this.limitOpenFiles(this.maxOpenFiles-1),this.zipInstances.set(e,n),n.expiresAt=Date.now()+this.maxAge,r(n.zipFs)}else{let n=new Jr(e,i());try{return r(n)}finally{n.saveAndClose()}}}};var lh=ie(require("util"));var vE=ie(require("url"));var hb=class extends fi{constructor(e){super(M);this.baseFs=e}mapFromBase(e){return e}mapToBase(e){return e instanceof vE.URL?(0,vE.fileURLToPath)(e):e}};var ohe=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","chownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),xO=new Set(["accessPromise","appendFilePromise","chmodPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"]),ahe=new Set(["appendFilePromise","chmodPromise","chownPromise","closePromise","readPromise","readFilePromise","statPromise","truncatePromise","utimesPromise","writePromise","writeFilePromise"]);function pb(t,e){e=new hb(e);let r=(i,n,s)=>{let o=i[n];i[n]=s,typeof(o==null?void 0:o[lh.promisify.custom])!="undefined"&&(s[lh.promisify.custom]=o[lh.promisify.custom])};{r(t,"exists",(i,...n)=>{let o=typeof n[n.length-1]=="function"?n.pop():()=>{};process.nextTick(()=>{e.existsPromise(i).then(a=>{o(a)},()=>{o(!1)})})}),r(t,"read",(i,n,...s)=>{let a=typeof s[s.length-1]=="function"?s.pop():()=>{};process.nextTick(()=>{e.readPromise(i,n,...s).then(l=>{a(null,l,n)},l=>{a(l,0,n)})})});for(let i of xO){let n=i.replace(/Promise$/,"");if(typeof t[n]=="undefined")continue;let s=e[i];if(typeof s=="undefined")continue;r(t,n,(...a)=>{let c=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{s.apply(e,a).then(u=>{c(null,u)},u=>{c(u)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",i=>{try{return e.existsSync(i)}catch(n){return!1}});for(let i of ohe){let n=i;if(typeof t[n]=="undefined")continue;let s=e[i];typeof s!="undefined"&&r(t,n,s.bind(e))}t.realpathSync.native=t.realpathSync}{let i=process.emitWarning;process.emitWarning=()=>{};let n;try{n=t.promises}finally{process.emitWarning=i}if(typeof n!="undefined"){for(let o of xO){let a=o.replace(/Promise$/,"");if(typeof n[a]=="undefined")continue;let l=e[o];typeof l!="undefined"&&o!=="open"&&r(n,a,l.bind(e))}class s{constructor(a){this.fd=a}}for(let o of ahe){let a=o.replace(/Promise$/,""),l=e[o];typeof l!="undefined"&&r(s.prototype,a,function(...c){return l.call(e,this.fd,...c)})}r(n,"open",async(...o)=>{let a=await e.openPromise(...o);return new s(a)})}}t.read[lh.promisify.custom]=async(i,n,...s)=>({bytesRead:await e.readPromise(i,n,...s),buffer:n})}function SE(t,e){let r=Object.create(t);return pb(r,e),r}var kO=ie(require("os"));function PO(t){let e=M.toPortablePath(kO.default.tmpdir()),r=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return v.join(e,`${t}${r}`)}var vs=new Set,DO=!1;function RO(){DO||(DO=!0,process.once("exit",()=>{T.rmtempSync()}))}var T=Object.assign(new Wt,{detachTemp(t){vs.delete(t)},mktempSync(t){for(RO();;){let e=PO("xfs-");try{this.mkdirSync(e)}catch(i){if(i.code==="EEXIST")continue;throw i}let r=this.realpathSync(e);if(vs.add(r),typeof t!="undefined")try{return t(r)}finally{if(vs.has(r)){vs.delete(r);try{this.removeSync(r)}catch{}}}else return r}},async mktempPromise(t){for(RO();;){let e=PO("xfs-");try{await this.mkdirPromise(e)}catch(i){if(i.code==="EEXIST")continue;throw i}let r=await this.realpathPromise(e);if(vs.add(r),typeof t!="undefined")try{return await t(r)}finally{if(vs.has(r)){vs.delete(r);try{await this.removePromise(r)}catch{}}}else return r}},async rmtempPromise(){await Promise.all(Array.from(vs.values()).map(async t=>{try{await T.removePromise(t,{maxRetries:0}),vs.delete(t)}catch{}}))},rmtempSync(){for(let t of vs)try{T.removeSync(t),vs.delete(t)}catch{}}});var vb=ie(bb()),Pn;(function(i){i[i.Never=0]="Never",i[i.ErrorCode=1]="ErrorCode",i[i.Always=2]="Always"})(Pn||(Pn={}));function dl(t){return t!==null&&typeof t.fd=="number"}var Cl=new Set;function Sb(){}function xb(){for(let t of Cl)t.kill()}async function to(t,e,{cwd:r,env:i=process.env,strict:n=!1,stdin:s=null,stdout:o,stderr:a,end:l=2}){let c=["pipe","pipe","pipe"];s===null?c[0]="ignore":dl(s)&&(c[0]=s),dl(o)&&(c[1]=o),dl(a)&&(c[2]=a);let u=(0,vb.default)(t,e,{cwd:M.fromPortablePath(r),env:_(P({},i),{PWD:M.fromPortablePath(r)}),stdio:c});Cl.add(u),Cl.size===1&&(process.on("SIGINT",Sb),process.on("SIGTERM",xb)),!dl(s)&&s!==null&&s.pipe(u.stdin),dl(o)||u.stdout.pipe(o,{end:!1}),dl(a)||u.stderr.pipe(a,{end:!1});let g=()=>{for(let f of new Set([o,a]))dl(f)||f.end()};return new Promise((f,h)=>{u.on("error",p=>{Cl.delete(u),Cl.size===0&&(process.off("SIGINT",Sb),process.off("SIGTERM",xb)),(l===2||l===1)&&g(),h(p)}),u.on("close",(p,d)=>{Cl.delete(u),Cl.size===0&&(process.off("SIGINT",Sb),process.off("SIGTERM",xb)),(l===2||l===1&&p>0)&&g(),p===0||!n?f({code:kb(p,d)}):h(p!==null?new Error(`Child "${t}" exited with exit code ${p}`):new Error(`Child "${t}" exited with signal ${d}`))})})}async function Nhe(t,e,{cwd:r,env:i=process.env,encoding:n="utf8",strict:s=!1}){let o=["ignore","pipe","pipe"],a=[],l=[],c=M.fromPortablePath(r);typeof i.PWD!="undefined"&&(i=_(P({},i),{PWD:c}));let u=(0,vb.default)(t,e,{cwd:c,env:i,stdio:o});return u.stdout.on("data",g=>{a.push(g)}),u.stderr.on("data",g=>{l.push(g)}),await new Promise((g,f)=>{u.on("error",()=>{f()}),u.on("close",(h,p)=>{let d=n==="buffer"?Buffer.concat(a):Buffer.concat(a).toString(n),m=n==="buffer"?Buffer.concat(l):Buffer.concat(l).toString(n);h===0||!s?g({code:kb(h,p),stdout:d,stderr:m}):f(Object.assign(new Error(`Child "${t}" exited with exit code ${h} - -${m}`),{code:kb(h,p),stdout:d,stderr:m}))})})}var Lhe=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]]);function kb(t,e){let r=Lhe.get(e);return typeof r!="undefined"?128+r:t!=null?t:1}var Pb={};it(Pb,{getDefaultGlobalFolder:()=>Rb,getHomeFolder:()=>uh,isFolderInside:()=>Fb});var Db=ie(require("os"));function Rb(){if(process.platform==="win32"){let t=M.toPortablePath(process.env.LOCALAPPDATA||M.join((0,Db.homedir)(),"AppData","Local"));return v.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=M.toPortablePath(process.env.XDG_DATA_HOME);return v.resolve(t,"yarn/berry")}return v.resolve(uh(),".yarn/berry")}function uh(){return M.toPortablePath((0,Db.homedir)()||"/usr/local/share")}function Fb(t,e){let r=v.relative(e,t);return r&&!r.startsWith("..")&&!v.isAbsolute(r)}var ue={};it(ue,{LogLevel:()=>Ts,Style:()=>Gl,Type:()=>Le,addLogFilterSupport:()=>Cp,applyColor:()=>On,applyHyperlink:()=>Ku,applyStyle:()=>Py,json:()=>Uu,mark:()=>xx,pretty:()=>Ve,prettyField:()=>Yl,prettyList:()=>Kx,supportsColor:()=>xy,supportsHyperlinks:()=>Mx,tuple:()=>jl});var pp=ie(jb()),dp=ie(ml()),o3=ie(Nn()),a3=ie(gU());var z;(function(te){te[te.UNNAMED=0]="UNNAMED",te[te.EXCEPTION=1]="EXCEPTION",te[te.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",te[te.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",te[te.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",te[te.BUILD_DISABLED=5]="BUILD_DISABLED",te[te.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",te[te.MUST_BUILD=7]="MUST_BUILD",te[te.MUST_REBUILD=8]="MUST_REBUILD",te[te.BUILD_FAILED=9]="BUILD_FAILED",te[te.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",te[te.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",te[te.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",te[te.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",te[te.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",te[te.REMOTE_INVALID=15]="REMOTE_INVALID",te[te.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",te[te.RESOLUTION_PACK=17]="RESOLUTION_PACK",te[te.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",te[te.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",te[te.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",te[te.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",te[te.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",te[te.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",te[te.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",te[te.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",te[te.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",te[te.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",te[te.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",te[te.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",te[te.FETCH_FAILED=30]="FETCH_FAILED",te[te.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",te[te.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",te[te.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",te[te.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",te[te.NETWORK_ERROR=35]="NETWORK_ERROR",te[te.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",te[te.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",te[te.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",te[te.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",te[te.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",te[te.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",te[te.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",te[te.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",te[te.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",te[te.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",te[te.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",te[te.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",te[te.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",te[te.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",te[te.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",te[te.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",te[te.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",te[te.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",te[te.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",te[te.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",te[te.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",te[te.INVALID_MANIFEST=57]="INVALID_MANIFEST",te[te.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",te[te.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",te[te.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",te[te.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",te[te.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",te[te.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",te[te.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",te[te.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",te[te.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",te[te.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",te[te.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",te[te.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",te[te.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",te[te.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",te[te.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",te[te.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",te[te.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",te[te.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",te[te.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",te[te.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE"})(z||(z={}));function KE(t){return`YN${t.toString(10).padStart(4,"0")}`}var de={};it(de,{BufferStream:()=>OH,CachingStrategy:()=>Dl,DefaultStream:()=>KH,assertNever:()=>Lv,bufferStream:()=>Cu,buildIgnorePattern:()=>DEe,convertMapsToIndexableObjects:()=>aI,dynamicRequire:()=>mu,escapeRegExp:()=>SEe,getArrayWithDefault:()=>hu,getFactoryWithDefault:()=>na,getMapWithDefault:()=>pu,getSetWithDefault:()=>Pl,isIndexableObject:()=>Tv,isPathLike:()=>REe,isTaggedYarnVersion:()=>vEe,mapAndFilter:()=>kl,mapAndFind:()=>MH,overrideType:()=>Nv,parseBoolean:()=>Hh,parseOptionalBoolean:()=>jH,prettifyAsyncErrors:()=>du,prettifySyncErrors:()=>Mv,releaseAfterUseAsync:()=>kEe,replaceEnvVariables:()=>Ov,sortMap:()=>gn,tryParseOptionalBoolean:()=>Kv,validateEnum:()=>xEe});var vh={};it(vh,{Builtins:()=>Iv,Cli:()=>oo,Command:()=>ye,Option:()=>Y,UsageError:()=>me});var yl=0,Eh=1,Gi=2,sv="",hi="\0",Au=-1,ov=/^(-h|--help)(?:=([0-9]+))?$/,UE=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,fU=/^-[a-zA-Z]{2,}$/,av=/^([^=]+)=([\s\S]*)$/,Av=process.env.DEBUG_CLI==="1";var me=class extends Error{constructor(e){super(e);this.clipanion={type:"usage"},this.name="UsageError"}},Ih=class extends Error{constructor(e,r){super();if(this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(i=>i.reason!==null&&i.reason===r[0].reason)){let[{reason:i}]=this.candidates;this.message=`${i} - -${this.candidates.map(({usage:n})=>`$ ${n}`).join(` -`)}`}else if(this.candidates.length===1){let[{usage:i}]=this.candidates;this.message=`Command not found; did you mean: - -$ ${i} -${lv(e)}`}else this.message=`Command not found; did you mean one of: - -${this.candidates.map(({usage:i},n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${lv(e)}`}},cv=class extends Error{constructor(e,r){super();this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: - -${this.usages.map((i,n)=>`${`${n}.`.padStart(4)} ${i}`).join(` -`)} - -${lv(e)}`}},lv=t=>`While running ${t.filter(e=>e!==hi).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`;var yh=Symbol("clipanion/isOption");function ji(t){return _(P({},t),{[yh]:!0})}function so(t,e){return typeof t=="undefined"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function HE(t,e=!1){let r=t.replace(/^\.: /,"");return e&&(r=r[0].toLowerCase()+r.slice(1)),r}function wh(t,e){return e.length===1?new me(`${t}: ${HE(e[0],!0)}`):new me(`${t}: -${e.map(r=>` -- ${HE(r)}`).join("")}`)}function Bh(t,e,r){if(typeof r=="undefined")return e;let i=[],n=[],s=a=>{let l=e;return e=a,s.bind(null,l)};if(!r(e,{errors:i,coercions:n,coercion:s}))throw wh(`Invalid value for ${t}`,i);for(let[,a]of n)a();return e}var ye=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(typeof r!="undefined"){let{isDict:n,isUnknown:s,applyCascade:o}=await Promise.resolve().then(()=>(Ss(),lu)),a=o(n(s()),r),l=[],c=[];if(!a(this,{errors:l,coercions:c}))throw wh("Invalid option schema",l);for(let[,g]of c)g()}let i=await this.execute();return typeof i!="undefined"?i:0}};ye.isOption=yh;ye.Default=[];function un(t){Av&&console.log(t)}var BU={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:Au};function QU(){return{nodes:[qi(),qi(),qi()]}}function nCe(t){let e=QU(),r=[],i=e.nodes.length;for(let n of t){r.push(i);for(let s=0;s{if(e.has(i))return;e.add(i);let n=t.nodes[i];for(let o of Object.values(n.statics))for(let{to:a}of o)r(a);for(let[,{to:o}]of n.dynamics)r(o);for(let{to:o}of n.shortcuts)r(o);let s=new Set(n.shortcuts.map(({to:o})=>o));for(;n.shortcuts.length>0;){let{to:o}=n.shortcuts.shift(),a=t.nodes[o];for(let[l,c]of Object.entries(a.statics)){let u=Object.prototype.hasOwnProperty.call(n.statics,l)?n.statics[l]:n.statics[l]=[];for(let g of c)u.some(({to:f})=>g.to===f)||u.push(g)}for(let[l,c]of a.dynamics)n.dynamics.some(([u,{to:g}])=>l===u&&c.to===g)||n.dynamics.push([l,c]);for(let l of a.shortcuts)s.has(l.to)||(n.shortcuts.push(l),s.add(l.to))}};r(yl)}function oCe(t,{prefix:e=""}={}){if(Av){un(`${e}Nodes are:`);for(let r=0;rl!==Gi).map(({state:l})=>({usage:l.candidateUsage,reason:null})));if(a.every(({node:l})=>l===Gi))throw new Ih(e,a.map(({state:l})=>({usage:l.candidateUsage,reason:l.errorMessage})));i=aCe(a)}if(i.length>0){un(" Results:");for(let s of i)un(` - ${s.node} -> ${JSON.stringify(s.state)}`)}else un(" No results");return i}function ACe(t,e){if(e.selectedIndex!==null)return!0;if(Object.prototype.hasOwnProperty.call(t.statics,hi)){for(let{to:r}of t.statics[hi])if(r===Eh)return!0}return!1}function cCe(t,e,r){let i=r&&e.length>0?[""]:[],n=vU(t,e,r),s=[],o=new Set,a=(l,c,u=!0)=>{let g=[c];for(;g.length>0;){let h=g;g=[];for(let p of h){let d=t.nodes[p],m=Object.keys(d.statics);for(let I of Object.keys(d.statics)){let B=m[0];for(let{to:b,reducer:R}of d.statics[B])R==="pushPath"&&(u||l.push(B),g.push(b))}}u=!1}let f=JSON.stringify(l);o.has(f)||(s.push(l),o.add(f))};for(let{node:l,state:c}of n){if(c.remainder!==null){a([c.remainder],l);continue}let u=t.nodes[l],g=ACe(u,c);for(let[f,h]of Object.entries(u.statics))(g&&f!==hi||!f.startsWith("-")&&h.some(({reducer:p})=>p==="pushPath"))&&a([...i,f],l);if(!!g)for(let[f,{to:h}]of u.dynamics){if(h===Gi)continue;let p=lCe(f,c);if(p!==null)for(let d of p)a([...i,d],l)}}return[...s].sort()}function gCe(t,e){let r=vU(t,[...e,hi]);return uCe(e,r.map(({state:i})=>i))}function aCe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function uCe(t,e){let r=e.filter(g=>g.selectedIndex!==null);if(r.length===0)throw new Error;let i=r.filter(g=>g.requiredOptions.every(f=>f.some(h=>g.options.find(p=>p.name===h))));if(i.length===0)throw new Ih(t,r.map(g=>({usage:g.candidateUsage,reason:null})));let n=0;for(let g of i)g.path.length>n&&(n=g.path.length);let s=i.filter(g=>g.path.length===n),o=g=>g.positionals.filter(({extra:f})=>!f).length+g.options.length,a=s.map(g=>({state:g,positionalCount:o(g)})),l=0;for(let{positionalCount:g}of a)g>l&&(l=g);let c=a.filter(({positionalCount:g})=>g===l).map(({state:g})=>g),u=fCe(c);if(u.length>1)throw new cv(t,u.map(g=>g.candidateUsage));return u[0]}function fCe(t){let e=[],r=[];for(let i of t)i.selectedIndex===Au?r.push(i):e.push(i);return r.length>0&&e.push(_(P({},BU),{path:SU(...r.map(i=>i.path)),options:r.reduce((i,n)=>i.concat(n.options),[])})),e}function SU(t,e,...r){return e===void 0?Array.from(t):SU(t.filter((i,n)=>i===e[n]),...r)}function qi(){return{dynamics:[],shortcuts:[],statics:{}}}function bU(t){return t===Eh||t===Gi}function Cv(t,e=0){return{to:bU(t.to)?t.to:t.to>2?t.to+e-2:t.to+e,reducer:t.reducer}}function iCe(t,e=0){let r=qi();for(let[i,n]of t.dynamics)r.dynamics.push([i,Cv(n,e)]);for(let i of t.shortcuts)r.shortcuts.push(Cv(i,e));for(let[i,n]of Object.entries(t.statics))r.statics[i]=n.map(s=>Cv(s,e));return r}function pi(t,e,r,i,n){t.nodes[e].dynamics.push([r,{to:i,reducer:n}])}function cu(t,e,r,i){t.nodes[e].shortcuts.push({to:r,reducer:i})}function ta(t,e,r,i,n){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:i,reducer:n})}function jE(t,e,r,i){if(Array.isArray(e)){let[n,...s]=e;return t[n](r,i,...s)}else return t[e](r,i)}function lCe(t,e){let r=Array.isArray(t)?YE[t[0]]:YE[t];if(typeof r.suggest=="undefined")return null;let i=Array.isArray(t)?t.slice(1):[];return r.suggest(e,...i)}var YE={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,i)=>!t.ignoreOptions&&e===r,isBatchOption:(t,e,r)=>!t.ignoreOptions&&fU.test(e)&&[...e.slice(1)].every(i=>r.includes(`-${i}`)),isBoundOption:(t,e,r,i)=>{let n=e.match(av);return!t.ignoreOptions&&!!n&&UE.test(n[1])&&r.includes(n[1])&&i.filter(s=>s.names.includes(n[1])).every(s=>s.allowBinding)},isNegatedOption:(t,e,r)=>!t.ignoreOptions&&e===`--no-${r.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&ov.test(e),isUnsupportedOption:(t,e,r)=>!t.ignoreOptions&&e.startsWith("-")&&UE.test(e)&&!r.includes(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!UE.test(e)};YE.isOption.suggest=(t,e,r=!0)=>r?null:[e];var dv={setCandidateState:(t,e,r)=>P(P({},t),r),setSelectedIndex:(t,e,r)=>_(P({},t),{selectedIndex:r}),pushBatch:(t,e)=>_(P({},t),{options:t.options.concat([...e.slice(1)].map(r=>({name:`-${r}`,value:!0})))}),pushBound:(t,e)=>{let[,r,i]=e.match(av);return _(P({},t),{options:t.options.concat({name:r,value:i})})},pushPath:(t,e)=>_(P({},t),{path:t.path.concat(e)}),pushPositional:(t,e)=>_(P({},t),{positionals:t.positionals.concat({value:e,extra:!1})}),pushExtra:(t,e)=>_(P({},t),{positionals:t.positionals.concat({value:e,extra:!0})}),pushExtraNoLimits:(t,e)=>_(P({},t),{positionals:t.positionals.concat({value:e,extra:Ln})}),pushTrue:(t,e,r=e)=>_(P({},t),{options:t.options.concat({name:e,value:!0})}),pushFalse:(t,e,r=e)=>_(P({},t),{options:t.options.concat({name:r,value:!1})}),pushUndefined:(t,e)=>_(P({},t),{options:t.options.concat({name:e,value:void 0})}),pushStringValue:(t,e)=>{var r;let i=_(P({},t),{options:[...t.options]}),n=t.options[t.options.length-1];return n.value=((r=n.value)!==null&&r!==void 0?r:[]).concat([e]),i},setStringValue:(t,e)=>{let r=_(P({},t),{options:[...t.options]}),i=t.options[t.options.length-1];return i.value=e,r},inhibateOptions:t=>_(P({},t),{ignoreOptions:!0}),useHelp:(t,e,r)=>{let[,,i]=e.match(ov);return typeof i!="undefined"?_(P({},t),{options:[{name:"-c",value:String(r)},{name:"-i",value:i}]}):_(P({},t),{options:[{name:"-c",value:String(r)}]})},setError:(t,e,r)=>e===hi?_(P({},t),{errorMessage:`${r}.`}):_(P({},t),{errorMessage:`${r} ("${e}").`}),setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return _(P({},t),{errorMessage:`Not enough arguments to option ${r.name}.`})}},Ln=Symbol(),xU=class{constructor(e,r){this.allOptionNames=[],this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:i=this.arity.extra,proxy:n=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:i,proxy:n})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===Ln)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==Ln?this.arity.extra.push(e):this.arity.extra!==Ln&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===Ln)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let i=0;i1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(i))throw new Error(`The arity must be an integer, got ${i}`);if(i<0)throw new Error(`The arity must be positive, got ${i}`);this.allOptionNames.push(...e),this.options.push({names:e,description:r,arity:i,hidden:n,required:s,allowBinding:o})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let i=[this.cliOpts.binaryName],n=[];if(this.paths.length>0&&i.push(...this.paths[0]),e){for(let{names:o,arity:a,hidden:l,description:c,required:u}of this.options){if(l)continue;let g=[];for(let h=0;h`:`[${f}]`)}i.push(...this.arity.leading.map(o=>`<${o}>`)),this.arity.extra===Ln?i.push("..."):i.push(...this.arity.extra.map(o=>`[${o}]`)),i.push(...this.arity.trailing.map(o=>`<${o}>`))}return{usage:i.join(" "),options:n}}compile(){if(typeof this.context=="undefined")throw new Error("Assertion failed: No context attached");let e=QU(),r=yl,i=this.usage().usage,n=this.options.filter(a=>a.required).map(a=>a.names);r=xs(e,qi()),ta(e,yl,sv,r,["setCandidateState",{candidateUsage:i,requiredOptions:n}]);let s=this.arity.proxy?"always":"isNotOptionLike",o=this.paths.length>0?this.paths:[[]];for(let a of o){let l=r;if(a.length>0){let f=xs(e,qi());cu(e,l,f),this.registerOptions(e,f),l=f}for(let f=0;f0||!this.arity.proxy){let f=xs(e,qi());pi(e,l,"isHelp",f,["useHelp",this.cliIndex]),ta(e,f,hi,Eh,["setSelectedIndex",Au]),this.registerOptions(e,l)}this.arity.leading.length>0&&ta(e,l,hi,Gi,["setError","Not enough positional arguments"]);let c=l;for(let f=0;f0||f+1!==this.arity.leading.length)&&ta(e,h,hi,Gi,["setError","Not enough positional arguments"]),pi(e,c,"isNotOptionLike",h,"pushPositional"),c=h}let u=c;if(this.arity.extra===Ln||this.arity.extra.length>0){let f=xs(e,qi());if(cu(e,c,f),this.arity.extra===Ln){let h=xs(e,qi());this.arity.proxy||this.registerOptions(e,h),pi(e,c,s,h,"pushExtraNoLimits"),pi(e,h,s,h,"pushExtraNoLimits"),cu(e,h,f)}else for(let h=0;h0&&ta(e,u,hi,Gi,["setError","Not enough positional arguments"]);let g=u;for(let f=0;fo.length>s.length?o:s,"");if(i.arity===0)for(let s of i.names)pi(e,r,["isOption",s,i.hidden||s!==n],r,"pushTrue"),s.startsWith("--")&&!s.startsWith("--no-")&&pi(e,r,["isNegatedOption",s],r,["pushFalse",s]);else{let s=xs(e,qi());for(let o of i.names)pi(e,r,["isOption",o,i.hidden||o!==n],s,"pushUndefined");for(let o=0;o=0&&egCe(i,n),suggest:(n,s)=>cCe(i,n,s)}}};var kU=80,mv=Array(kU).fill("\u2501");for(let t=0;t<=24;++t)mv[mv.length-t]=`[38;5;${232+t}m\u2501`;var Ev={header:t=>`\u2501\u2501\u2501 ${t}${t.length`${t}`,error:t=>`${t}`,code:t=>`${t}`},PU={header:t=>t,bold:t=>t,error:t=>t,code:t=>t};function hCe(t){let e=t.split(` -`),r=e.filter(n=>n.match(/\S/)),i=r.length>0?r.reduce((n,s)=>Math.min(n,s.length-s.trimStart().length),Number.MAX_VALUE):0;return e.map(n=>n.slice(i).trimRight()).join(` -`)}function Vn(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` -`),t=hCe(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 - -`),t=t.replace(/\n(\n)?\n*/g,"$1"),r&&(t=t.split(/\n/).map(i=>{let n=i.match(/^\s*[*-][\t ]+(.*)/);if(!n)return i.match(/(.{1,80})(?: |$)/g).join(` -`);let s=i.length-i.trimStart().length;return n[1].match(new RegExp(`(.{1,${78-s}})(?: |$)`,"g")).map((o,a)=>" ".repeat(s)+(a===0?"- ":" ")+o).join(` -`)}).join(` - -`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(i,n,s)=>e.code(n+s+n)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(i,n,s)=>e.bold(n+s+n)),t?`${t} -`:""}var bh=class extends ye{constructor(e){super();this.contexts=e,this.commands=[]}static from(e,r){let i=new bh(r);i.path=e.path;for(let n of e.options)switch(n.name){case"-c":i.commands.push(Number(n.value));break;case"-i":i.index=Number(n.value);break}return i}async execute(){let e=this.commands;if(typeof this.index!="undefined"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: -`),this.context.stdout.write(` -`);let r=0;for(let i of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[i].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` -`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. -`)}}};var DU=Symbol("clipanion/errorCommand");function pCe(){return process.env.FORCE_COLOR==="0"?!1:!!(process.env.FORCE_COLOR==="1"||typeof process.stdout!="undefined"&&process.stdout.isTTY)}var oo=class{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:i,enableColors:n=pCe()}={}){this.registrations=new Map,this.builder=new Qh({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=i,this.enableColors=n}static from(e,r={}){let i=new oo(r);for(let n of e)i.register(n);return i}register(e){var r;let i=new Map,n=new e;for(let l in n){let c=n[l];typeof c=="object"&&c!==null&&c[ye.isOption]&&i.set(l,c)}let s=this.builder.command(),o=s.cliIndex,a=(r=e.paths)!==null&&r!==void 0?r:n.paths;if(typeof a!="undefined")for(let l of a)s.addPath(l);this.registrations.set(e,{specs:i,builder:s,index:o});for(let[l,{definition:c}]of i.entries())c(s,l);s.setContext({commandClass:e})}process(e){let{contexts:r,process:i}=this.builder.compile(),n=i(e);switch(n.selectedIndex){case Au:return bh.from(n,r);default:{let{commandClass:s}=r[n.selectedIndex],o=this.registrations.get(s);if(typeof o=="undefined")throw new Error("Assertion failed: Expected the command class to have been registered.");let a=new s;a.path=n.path;try{for(let[l,{transformer:c}]of o.specs.entries())a[l]=c(o.builder,l,n);return a}catch(l){throw l[DU]=a,l}}break}}async run(e,r){let i;if(!Array.isArray(e))i=e;else try{i=this.process(e)}catch(s){return r.stdout.write(this.error(s)),1}if(i.help)return r.stdout.write(this.usage(i,{detailed:!0})),0;i.context=r,i.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableColors:this.enableColors,definitions:()=>this.definitions(),error:(s,o)=>this.error(s,o),process:s=>this.process(s),run:(s,o)=>this.run(s,P(P({},r),o)),usage:(s,o)=>this.usage(s,o)};let n;try{n=await i.validateAndExecute().catch(s=>i.catch(s).then(()=>0))}catch(s){return r.stdout.write(this.error(s,{command:i})),1}return n}async runExit(e,r){process.exitCode=await this.run(e,r)}suggest(e,r){let{suggest:i}=this.builder.compile();return i(e,r)}definitions({colored:e=!1}={}){let r=[];for(let[i,{index:n}]of this.registrations){if(typeof i.usage=="undefined")continue;let{usage:s}=this.getUsageByIndex(n,{detailed:!1}),{usage:o,options:a}=this.getUsageByIndex(n,{detailed:!0,inlineOptions:!1}),l=typeof i.usage.category!="undefined"?Vn(i.usage.category,{format:this.format(e),paragraphs:!1}):void 0,c=typeof i.usage.description!="undefined"?Vn(i.usage.description,{format:this.format(e),paragraphs:!1}):void 0,u=typeof i.usage.details!="undefined"?Vn(i.usage.details,{format:this.format(e),paragraphs:!0}):void 0,g=typeof i.usage.examples!="undefined"?i.usage.examples.map(([f,h])=>[Vn(f,{format:this.format(e),paragraphs:!1}),h.replace(/\$0/g,this.binaryName)]):void 0;r.push({path:s,usage:o,category:l,description:c,details:u,examples:g,options:a})}return r}usage(e=null,{colored:r,detailed:i=!1,prefix:n="$ "}={}){var s;if(e===null){for(let l of this.registrations.keys()){let c=l.paths,u=typeof l.usage!="undefined";if(!c||c.length===0||c.length===1&&c[0].length===0||((s=c==null?void 0:c.some(h=>h.length===0))!==null&&s!==void 0?s:!1))if(e){e=null;break}else e=l;else if(u){e=null;continue}}e&&(i=!0)}let o=e!==null&&e instanceof ye?e.constructor:e,a="";if(o)if(i){let{description:l="",details:c="",examples:u=[]}=o.usage||{};l!==""&&(a+=Vn(l,{format:this.format(r),paragraphs:!1}).replace(/^./,h=>h.toUpperCase()),a+=` -`),(c!==""||u.length>0)&&(a+=`${this.format(r).header("Usage")} -`,a+=` -`);let{usage:g,options:f}=this.getUsageByRegistration(o,{inlineOptions:!1});if(a+=`${this.format(r).bold(n)}${g} -`,f.length>0){a+=` -`,a+=`${Ev.header("Options")} -`;let h=f.reduce((p,d)=>Math.max(p,d.definition.length),0);a+=` -`;for(let{definition:p,description:d}of f)a+=` ${this.format(r).bold(p.padEnd(h))} ${Vn(d,{format:this.format(r),paragraphs:!1})}`}if(c!==""&&(a+=` -`,a+=`${this.format(r).header("Details")} -`,a+=` -`,a+=Vn(c,{format:this.format(r),paragraphs:!0})),u.length>0){a+=` -`,a+=`${this.format(r).header("Examples")} -`;for(let[h,p]of u)a+=` -`,a+=Vn(h,{format:this.format(r),paragraphs:!1}),a+=`${p.replace(/^/m,` ${this.format(r).bold(n)}`).replace(/\$0/g,this.binaryName)} -`}}else{let{usage:l}=this.getUsageByRegistration(o);a+=`${this.format(r).bold(n)}${l} -`}else{let l=new Map;for(let[f,{index:h}]of this.registrations.entries()){if(typeof f.usage=="undefined")continue;let p=typeof f.usage.category!="undefined"?Vn(f.usage.category,{format:this.format(r),paragraphs:!1}):null,d=l.get(p);typeof d=="undefined"&&l.set(p,d=[]);let{usage:m}=this.getUsageByIndex(h);d.push({commandClass:f,usage:m})}let c=Array.from(l.keys()).sort((f,h)=>f===null?-1:h===null?1:f.localeCompare(h,"en",{usage:"sort",caseFirst:"upper"})),u=typeof this.binaryLabel!="undefined",g=typeof this.binaryVersion!="undefined";u||g?(u&&g?a+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} - -`:u?a+=`${this.format(r).header(`${this.binaryLabel}`)} -`:a+=`${this.format(r).header(`${this.binaryVersion}`)} -`,a+=` ${this.format(r).bold(n)}${this.binaryName} -`):a+=`${this.format(r).bold(n)}${this.binaryName} -`;for(let f of c){let h=l.get(f).slice().sort((d,m)=>d.usage.localeCompare(m.usage,"en",{usage:"sort",caseFirst:"upper"})),p=f!==null?f.trim():"General commands";a+=` -`,a+=`${this.format(r).header(`${p}`)} -`;for(let{commandClass:d,usage:m}of h){let I=d.usage.description||"undocumented";a+=` -`,a+=` ${this.format(r).bold(m)} -`,a+=` ${Vn(I,{format:this.format(r),paragraphs:!1})}`}}a+=` -`,a+=Vn("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return a}error(e,r){var i,{colored:n,command:s=(i=e[DU])!==null&&i!==void 0?i:null}=r===void 0?{}:r;e instanceof Error||(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let o="",a=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");a==="Error"&&(a="Internal Error"),o+=`${this.format(n).error(a)}: ${e.message} -`;let l=e.clipanion;return typeof l!="undefined"?l.type==="usage"&&(o+=` -`,o+=this.usage(s)):e.stack&&(o+=`${e.stack.replace(/^.*\n/,"")} -`),o}getUsageByRegistration(e,r){let i=this.registrations.get(e);if(typeof i=="undefined")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(i.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}format(e=this.enableColors){return e?Ev:PU}};oo.defaultContext={stdin:process.stdin,stdout:process.stdout,stderr:process.stderr};var Iv={};it(Iv,{DefinitionsCommand:()=>qE,HelpCommand:()=>JE,VersionCommand:()=>WE});var qE=class extends ye{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} -`)}};qE.paths=[["--clipanion=definitions"]];var JE=class extends ye{async execute(){this.context.stdout.write(this.cli.usage())}};JE.paths=[["-h"],["--help"]];var WE=class extends ye{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} -`)}};WE.paths=[["-v"],["--version"]];var Y={};it(Y,{Array:()=>RU,Boolean:()=>FU,Counter:()=>NU,Proxy:()=>LU,Rest:()=>TU,String:()=>MU,applyValidator:()=>Bh,cleanValidationError:()=>HE,formatError:()=>wh,isOptionSymbol:()=>yh,makeCommandOption:()=>ji,rerouteArguments:()=>so});function RU(t,e,r){let[i,n]=so(e,r!=null?r:{}),{arity:s=1}=n,o=t.split(","),a=new Set(o);return ji({definition(l){l.addOption({names:o,arity:s,hidden:n==null?void 0:n.hidden,description:n==null?void 0:n.description,required:n.required})},transformer(l,c,u){let g=typeof i!="undefined"?[...i]:void 0;for(let{name:f,value:h}of u.options)!a.has(f)||(g=g!=null?g:[],g.push(h));return g}})}function FU(t,e,r){let[i,n]=so(e,r!=null?r:{}),s=t.split(","),o=new Set(s);return ji({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u=f);return u}})}function NU(t,e,r){let[i,n]=so(e,r!=null?r:{}),s=t.split(","),o=new Set(s);return ji({definition(a){a.addOption({names:s,allowBinding:!1,arity:0,hidden:n.hidden,description:n.description,required:n.required})},transformer(a,l,c){let u=i;for(let{name:g,value:f}of c.options)!o.has(g)||(u!=null||(u=0),f?u+=1:u=0);return u}})}function LU(t={}){return ji({definition(e,r){var i;e.addProxy({name:(i=t.name)!==null&&i!==void 0?i:r,required:t.required})},transformer(e,r,i){return i.positionals.map(({value:n})=>n)}})}function TU(t={}){return ji({definition(e,r){var i;e.addRest({name:(i=t.name)!==null&&i!==void 0?i:r,required:t.required})},transformer(e,r,i){let n=o=>{let a=i.positionals[o];return a.extra===Ln||a.extra===!1&&oo)}})}function dCe(t,e,r){let[i,n]=so(e,r!=null?r:{}),{arity:s=1}=n,o=t.split(","),a=new Set(o);return ji({definition(l){l.addOption({names:o,arity:n.tolerateBoolean?0:s,hidden:n.hidden,description:n.description,required:n.required})},transformer(l,c,u){let g,f=i;for(let{name:h,value:p}of u.options)!a.has(h)||(g=h,f=p);return typeof f=="string"?Bh(g!=null?g:c,f,n.validator):f}})}function CCe(t={}){let{required:e=!0}=t;return ji({definition(r,i){var n;r.addPositional({name:(n=t.name)!==null&&n!==void 0?n:i,required:t.required})},transformer(r,i,n){var s;for(let o=0;oJSON.stringify(i)).join(", ")})`);return e}function kl(t,e){let r=[];for(let i of t){let n=e(i);n!==LH&&r.push(n)}return r}var LH=Symbol();kl.skip=LH;function MH(t,e){for(let r of t){let i=e(r);if(i!==TH)return i}}var TH=Symbol();MH.skip=TH;function Tv(t){return typeof t=="object"&&t!==null}function aI(t){if(t instanceof Map&&(t=Object.fromEntries(t)),Tv(t))for(let e of Object.keys(t)){let r=t[e];Tv(r)&&(t[e]=aI(r))}return t}function na(t,e,r){let i=t.get(e);return typeof i=="undefined"&&t.set(e,i=r()),i}function hu(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=[]),r}function Pl(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=new Set),r}function pu(t,e){let r=t.get(e);return typeof r=="undefined"&&t.set(e,r=new Map),r}async function kEe(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function du(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function Mv(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function Cu(t){return await new Promise((e,r)=>{let i=[];t.on("error",n=>{r(n)}),t.on("data",n=>{i.push(n)}),t.on("end",()=>{e(Buffer.concat(i))})})}var OH=class extends Fv.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(e,r,i){if(r!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(e),i(null,null)}_flush(e){e(null,Buffer.concat(this.chunks))}},KH=class extends Fv.Transform{constructor(e=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=e}_transform(e,r,i){if(r!=="buffer"||!Buffer.isBuffer(e))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,i(null,e)}_flush(e){this.active&&this.ifEmpty.length>0?e(null,this.ifEmpty):e(null)}},Uh=eval("require");function UH(t){return Uh(M.fromPortablePath(t))}function HH(path){let physicalPath=M.fromPortablePath(path),currentCacheEntry=Uh.cache[physicalPath];delete Uh.cache[physicalPath];let result;try{result=UH(physicalPath);let freshCacheEntry=Uh.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{Uh.cache[physicalPath]=currentCacheEntry}return result}var GH=new Map;function PEe(t){let e=GH.get(t),r=T.statSync(t);if((e==null?void 0:e.mtime)===r.mtimeMs)return e.instance;let i=HH(t);return GH.set(t,{mtime:r.mtimeMs,instance:i}),i}var Dl;(function(i){i[i.NoCache=0]="NoCache",i[i.FsTime=1]="FsTime",i[i.Node=2]="Node"})(Dl||(Dl={}));function mu(t,{cachingStrategy:e=2}={}){switch(e){case 0:return HH(t);case 1:return PEe(t);case 2:return UH(t);default:throw new Error("Unsupported caching strategy")}}function gn(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let i=[];for(let s of e)i.push(r.map(o=>s(o)));let n=r.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>r[s])}function DEe(t){return t.length===0?null:t.map(e=>`(${FH.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function Ov(t,{env:e}){let r=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return t.replace(r,(...i)=>{let{variableName:n,colon:s,fallback:o}=i[i.length-1],a=Object.prototype.hasOwnProperty.call(e,n),l=e[n];if(l||a&&!s)return l;if(o!=null)return o;throw new me(`Environment variable not found (${n})`)})}function Hh(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function jH(t){return typeof t=="undefined"?t:Hh(t)}function Kv(t){try{return jH(t)}catch{return null}}function REe(t){return!!(M.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}var S={};it(S,{areDescriptorsEqual:()=>i3,areIdentsEqual:()=>cp,areLocatorsEqual:()=>up,areVirtualPackagesEquivalent:()=>XQe,bindDescriptor:()=>VQe,bindLocator:()=>_Qe,convertDescriptorToLocator:()=>By,convertLocatorToDescriptor:()=>WQe,convertPackageToLocator:()=>zQe,convertToIdent:()=>JQe,convertToManifestRange:()=>ebe,copyPackage:()=>ap,devirtualizeDescriptor:()=>Ap,devirtualizeLocator:()=>lp,getIdentVendorPath:()=>Lx,isPackageCompatible:()=>Sy,isVirtualDescriptor:()=>hA,isVirtualLocator:()=>Io,makeDescriptor:()=>Yt,makeIdent:()=>Eo,makeLocator:()=>Vi,makeRange:()=>by,parseDescriptor:()=>pA,parseFileStyleRange:()=>ZQe,parseIdent:()=>En,parseLocator:()=>Hl,parseRange:()=>Tu,prettyDependent:()=>Nx,prettyDescriptor:()=>Xt,prettyIdent:()=>Vr,prettyLocator:()=>lt,prettyLocatorNoColors:()=>Rx,prettyRange:()=>yy,prettyReference:()=>fp,prettyResolution:()=>Fx,prettyWorkspace:()=>hp,renamePackage:()=>op,slugifyIdent:()=>Dx,slugifyLocator:()=>Mu,sortDescriptors:()=>Ou,stringifyDescriptor:()=>In,stringifyIdent:()=>St,stringifyLocator:()=>is,tryParseDescriptor:()=>gp,tryParseIdent:()=>n3,tryParseLocator:()=>Qy,virtualizeDescriptor:()=>kx,virtualizePackage:()=>Px});var Lu=ie(require("querystring")),e3=ie(Or()),t3=ie(wY());var mn={};it(mn,{checksumFile:()=>Ey,checksumPattern:()=>Iy,makeHash:()=>zi});var my=ie(require("crypto")),Sx=ie(vx());function zi(...t){let e=(0,my.createHash)("sha512"),r="";for(let i of t)typeof i=="string"?r+=i:i&&(r&&(e.update(r),r=""),e.update(i));return r&&e.update(r),e.digest("hex")}async function Ey(t,{baseFs:e,algorithm:r}={baseFs:T,algorithm:"sha512"}){let i=await e.openPromise(t,"r");try{let n=65536,s=Buffer.allocUnsafeSlow(n),o=(0,my.createHash)(r),a=0;for(;(a=await e.readPromise(i,s,0,n))!==0;)o.update(a===n?s:s.slice(0,a));return o.digest("hex")}finally{await e.closePromise(i)}}async function Iy(t,{cwd:e}){let i=(await(0,Sx.default)(t,{cwd:M.fromPortablePath(e),expandDirectories:!1,onlyDirectories:!0,unique:!0})).map(a=>`${a}/**/*`),n=await(0,Sx.default)([t,...i],{cwd:M.fromPortablePath(e),expandDirectories:!1,onlyFiles:!1,unique:!0});n.sort();let s=await Promise.all(n.map(async a=>{let l=[Buffer.from(a)],c=M.toPortablePath(a),u=await T.lstatPromise(c);return u.isSymbolicLink()?l.push(Buffer.from(await T.readlinkPromise(c))):u.isFile()&&l.push(await T.readFilePromise(c)),l.join("\0")})),o=(0,my.createHash)("sha512");for(let a of s)o.update(a);return o.digest("hex")}var wy="virtual:",YQe=5,r3=/(os|cpu)=([a-z0-9_-]+)/,qQe=(0,t3.makeParser)(r3);function Eo(t,e){if(t==null?void 0:t.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:zi(t,e),scope:t,name:e}}function Yt(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:zi(t.identHash,e),range:e}}function Vi(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:zi(t.identHash,e),reference:e}}function JQe(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function By(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function WQe(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function zQe(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function op(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function ap(t){return op(t,t)}function kx(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return Yt(t,`virtual:${e}#${t.range}`)}function Px(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return op(t,Vi(t,`virtual:${e}#${t.reference}`))}function hA(t){return t.range.startsWith(wy)}function Io(t){return t.reference.startsWith(wy)}function Ap(t){if(!hA(t))throw new Error("Not a virtual descriptor");return Yt(t,t.range.replace(/^[^#]*#/,""))}function lp(t){if(!Io(t))throw new Error("Not a virtual descriptor");return Vi(t,t.reference.replace(/^[^#]*#/,""))}function VQe(t,e){return t.range.includes("::")?t:Yt(t,`${t.range}::${Lu.default.stringify(e)}`)}function _Qe(t,e){return t.reference.includes("::")?t:Vi(t,`${t.reference}::${Lu.default.stringify(e)}`)}function cp(t,e){return t.identHash===e.identHash}function i3(t,e){return t.descriptorHash===e.descriptorHash}function up(t,e){return t.locatorHash===e.locatorHash}function XQe(t,e){if(!Io(t))throw new Error("Invalid package type");if(!Io(e))throw new Error("Invalid package type");if(!cp(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let i=e.dependencies.get(r.identHash);if(!i||!i3(r,i))return!1}return!0}function En(t){let e=n3(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function n3(t){let e=t.match(/^(?:@([^/]+?)\/)?([^/]+)$/);if(!e)return null;let[,r,i]=e,n=typeof r!="undefined"?r:null;return Eo(n,i)}function pA(t,e=!1){let r=gp(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function gp(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;let[,i,n,s]=r;if(s==="unknown")throw new Error(`Invalid range (${t})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return Yt(Eo(o,n),a)}function Hl(t,e=!1){let r=Qy(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function Qy(t,e=!1){let r=e?t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))$/):t.match(/^(?:@([^/]+?)\/)?([^/]+?)(?:@(.+))?$/);if(!r)return null;let[,i,n,s]=r;if(s==="unknown")throw new Error(`Invalid reference (${t})`);let o=typeof i!="undefined"?i:null,a=typeof s!="undefined"?s:"unknown";return Vi(Eo(o,n),a)}function Tu(t,e){let r=t.match(/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/);if(r===null)throw new Error(`Invalid range (${t})`);let i=typeof r[1]!="undefined"?r[1]:null;if(typeof(e==null?void 0:e.requireProtocol)=="string"&&i!==e.requireProtocol)throw new Error(`Invalid protocol (${i})`);if((e==null?void 0:e.requireProtocol)&&i===null)throw new Error(`Missing protocol (${i})`);let n=typeof r[3]!="undefined"?decodeURIComponent(r[2]):null;if((e==null?void 0:e.requireSource)&&n===null)throw new Error(`Missing source (${t})`);let s=typeof r[3]!="undefined"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),o=(e==null?void 0:e.parseSelector)?Lu.default.parse(s):s,a=typeof r[4]!="undefined"?Lu.default.parse(r[4]):null;return{protocol:i,source:n,selector:o,params:a}}function ZQe(t,{protocol:e}){let{selector:r,params:i}=Tu(t,{requireProtocol:e,requireBindings:!0});if(typeof i.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:Hl(i.locator,!0),path:r}}function s3(t){return t=t.replace(/%/g,"%25"),t=t.replace(/:/g,"%3A"),t=t.replace(/#/g,"%23"),t}function $Qe(t){return t===null?!1:Object.entries(t).length>0}function by({protocol:t,source:e,selector:r,params:i}){let n="";return t!==null&&(n+=`${t}`),e!==null&&(n+=`${s3(e)}#`),n+=s3(r),$Qe(i)&&(n+=`::${Lu.default.stringify(i)}`),n}function ebe(t){let{params:e,protocol:r,source:i,selector:n}=Tu(t);for(let s in e)s.startsWith("__")&&delete e[s];return by({protocol:r,source:i,params:e,selector:n})}function St(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function In(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function is(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function Dx(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function Mu(t){let{protocol:e,selector:r}=Tu(t.reference),i=e!==null?e.replace(/:$/,""):"exotic",n=e3.default.valid(r),s=n!==null?`${i}-${n}`:`${i}`,o=10,a=t.scope?`${Dx(t)}-${s}-${t.locatorHash.slice(0,o)}`:`${Dx(t)}-${s}-${t.locatorHash.slice(0,o)}`;return kr(a)}function Vr(t,e){return e.scope?`${Ve(t,`@${e.scope}/`,Le.SCOPE)}${Ve(t,e.name,Le.NAME)}`:`${Ve(t,e.name,Le.NAME)}`}function vy(t){if(t.startsWith(wy)){let e=vy(t.substr(t.indexOf("#")+1)),r=t.substr(wy.length,YQe);return`${e} [${r}]`}else return t.replace(/\?.*/,"?[...]")}function yy(t,e){return`${Ve(t,vy(e),Le.RANGE)}`}function Xt(t,e){return`${Vr(t,e)}${Ve(t,"@",Le.RANGE)}${yy(t,e.range)}`}function fp(t,e){return`${Ve(t,vy(e),Le.REFERENCE)}`}function lt(t,e){return`${Vr(t,e)}${Ve(t,"@",Le.REFERENCE)}${fp(t,e.reference)}`}function Rx(t){return`${St(t)}@${vy(t.reference)}`}function Ou(t){return gn(t,[e=>St(e),e=>e.range])}function hp(t,e){return Vr(t,e.locator)}function Fx(t,e,r){let i=hA(e)?Ap(e):e;return r===null?`${Xt(t,i)} \u2192 ${xx(t).Cross}`:i.identHash===r.identHash?`${Xt(t,i)} \u2192 ${fp(t,r.reference)}`:`${Xt(t,i)} \u2192 ${lt(t,r)}`}function Nx(t,e,r){return r===null?`${lt(t,e)}`:`${lt(t,e)} (via ${yy(t,r.range)})`}function Lx(t){return`node_modules/${St(t)}`}function Sy(t,e){return t.conditions?qQe(t.conditions,r=>{let[,i,n]=r.match(r3),s=e[i];return s?s.includes(n):!0}):!0}var gt;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(gt||(gt={}));var oi;(function(i){i.Dependency="Dependency",i.PeerDependency="PeerDependency",i.PeerDependencyMeta="PeerDependencyMeta"})(oi||(oi={}));var ki;(function(i){i.Inactive="inactive",i.Redundant="redundant",i.Active="active"})(ki||(ki={}));var Le={NO_HINT:"NO_HINT",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",DURATION:"DURATION",SIZE:"SIZE",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING"},Gl;(function(e){e[e.BOLD=2]="BOLD"})(Gl||(Gl={}));var Tx=dp.default.GITHUB_ACTIONS?{level:2}:pp.default.supportsColor?{level:pp.default.supportsColor.level}:{level:0},xy=Tx.level!==0,Mx=xy&&!dp.default.GITHUB_ACTIONS&&!dp.default.CIRCLE&&!dp.default.GITLAB,Ox=new pp.default.Instance(Tx),tbe=new Map([[Le.NO_HINT,null],[Le.NULL,["#a853b5",129]],[Le.SCOPE,["#d75f00",166]],[Le.NAME,["#d7875f",173]],[Le.RANGE,["#00afaf",37]],[Le.REFERENCE,["#87afff",111]],[Le.NUMBER,["#ffd700",220]],[Le.PATH,["#d75fd7",170]],[Le.URL,["#d75fd7",170]],[Le.ADDED,["#5faf00",70]],[Le.REMOVED,["#d70000",160]],[Le.CODE,["#87afff",111]],[Le.SIZE,["#ffd700",220]]]),Ls=t=>t,ky={[Le.NUMBER]:Ls({pretty:(t,e)=>`${e}`,json:t=>t}),[Le.IDENT]:Ls({pretty:(t,e)=>Vr(t,e),json:t=>St(t)}),[Le.LOCATOR]:Ls({pretty:(t,e)=>lt(t,e),json:t=>is(t)}),[Le.DESCRIPTOR]:Ls({pretty:(t,e)=>Xt(t,e),json:t=>In(t)}),[Le.RESOLUTION]:Ls({pretty:(t,{descriptor:e,locator:r})=>Fx(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:In(t),locator:e!==null?is(e):null})}),[Le.DEPENDENT]:Ls({pretty:(t,{locator:e,descriptor:r})=>Nx(t,e,r),json:({locator:t,descriptor:e})=>({locator:is(t),descriptor:In(e)})}),[Le.PACKAGE_EXTENSION]:Ls({pretty:(t,e)=>{switch(e.type){case oi.Dependency:return`${Vr(t,e.parentDescriptor)} \u27A4 ${On(t,"dependencies",Le.CODE)} \u27A4 ${Vr(t,e.descriptor)}`;case oi.PeerDependency:return`${Vr(t,e.parentDescriptor)} \u27A4 ${On(t,"peerDependencies",Le.CODE)} \u27A4 ${Vr(t,e.descriptor)}`;case oi.PeerDependencyMeta:return`${Vr(t,e.parentDescriptor)} \u27A4 ${On(t,"peerDependenciesMeta",Le.CODE)} \u27A4 ${Vr(t,En(e.selector))} \u27A4 ${On(t,e.key,Le.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case oi.Dependency:return`${St(t.parentDescriptor)} > ${St(t.descriptor)}`;case oi.PeerDependency:return`${St(t.parentDescriptor)} >> ${St(t.descriptor)}`;case oi.PeerDependencyMeta:return`${St(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[Le.SETTING]:Ls({pretty:(t,e)=>(t.get(e),Ku(t,On(t,e,Le.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[Le.DURATION]:Ls({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),i=Math.ceil((e-r*60*1e3)/1e3);return i===0?`${r}m`:`${r}m ${i}s`}else{let r=Math.floor(e/1e3),i=e-r*1e3;return i===0?`${r}s`:`${r}s ${i}ms`}},json:t=>t}),[Le.SIZE]:Ls({pretty:(t,e)=>{let r=["KB","MB","GB","TB"],i=r.length;for(;i>1&&e<1024**i;)i-=1;let n=1024**i,s=Math.floor(e*100/n)/100;return On(t,`${s} ${r[i-1]}`,Le.NUMBER)},json:t=>t}),[Le.PATH]:Ls({pretty:(t,e)=>On(t,M.fromPortablePath(e),Le.PATH),json:t=>M.fromPortablePath(t)})};function jl(t,e){return[e,t]}function Py(t,e,r){return t.get("enableColors")&&r&2&&(e=pp.default.bold(e)),e}function On(t,e,r){if(!t.get("enableColors"))return e;let i=tbe.get(r);if(i===null)return e;let n=typeof i=="undefined"?r:Tx.level>=3?i[0]:i[1],s=typeof n=="number"?Ox.ansi256(n):n.startsWith("#")?Ox.hex(n):Ox[n];if(typeof s!="function")throw new Error(`Invalid format type ${n}`);return s(e)}var rbe=!!process.env.KONSOLE_VERSION;function Ku(t,e,r){return t.get("enableHyperlinks")?rbe?`]8;;${r}\\${e}]8;;\\`:`]8;;${r}\x07${e}]8;;\x07`:e}function Ve(t,e,r){if(e===null)return On(t,"null",Le.NULL);if(Object.prototype.hasOwnProperty.call(ky,r))return ky[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return On(t,e,r)}function Kx(t,e,r,{separator:i=", "}={}){return[...e].map(n=>Ve(t,n,r)).join(i)}function Uu(t,e){if(t===null)return null;if(Object.prototype.hasOwnProperty.call(ky,e))return Nv(e),ky[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function xx(t){return{Check:On(t,"\u2713","green"),Cross:On(t,"\u2718","red"),Question:On(t,"?","cyan")}}function Yl(t,{label:e,value:[r,i]}){return`${Ve(t,e,Le.CODE)}: ${Ve(t,r,i)}`}var Ts;(function(n){n.Error="error",n.Warning="warning",n.Info="info",n.Discard="discard"})(Ts||(Ts={}));function Cp(t,{configuration:e}){let r=e.get("logFilters"),i=new Map,n=new Map,s=[];for(let g of r){let f=g.get("level");if(typeof f=="undefined")continue;let h=g.get("code");typeof h!="undefined"&&i.set(h,f);let p=g.get("text");typeof p!="undefined"&&n.set(p,f);let d=g.get("pattern");typeof d!="undefined"&&s.push([o3.default.matcher(d,{contains:!0}),f])}s.reverse();let o=(g,f,h)=>{if(g===null||g===z.UNNAMED)return h;let p=n.size>0||s.length>0?(0,a3.default)(f):f;if(n.size>0){let d=n.get(p);if(typeof d!="undefined")return d!=null?d:h}if(s.length>0){for(let[d,m]of s)if(d(p))return m!=null?m:h}if(i.size>0){let d=i.get(KE(g));if(typeof d!="undefined")return d!=null?d:h}return h},a=t.reportInfo,l=t.reportWarning,c=t.reportError,u=function(g,f,h,p){switch(o(f,h,p)){case Ts.Info:a.call(g,f,h);break;case Ts.Warning:l.call(g,f!=null?f:z.UNNAMED,h);break;case Ts.Error:c.call(g,f!=null?f:z.UNNAMED,h);break}};t.reportInfo=function(...g){return u(this,...g,Ts.Info)},t.reportWarning=function(...g){return u(this,...g,Ts.Warning)},t.reportError=function(...g){return u(this,...g,Ts.Error)}}var Zt={};it(Zt,{Method:()=>Jl,RequestError:()=>z8.RequestError,del:()=>pxe,get:()=>fxe,getNetworkSettings:()=>Z8,post:()=>iP,put:()=>hxe,request:()=>xp});var q8=ie(zy()),J8=ie(require("https")),W8=ie(require("http")),tP=ie(Nn()),rP=ie(G8()),Vy=ie(require("url"));var j8=ie(require("stream")),Y8=ie(require("string_decoder"));var nt=class extends Error{constructor(e,r,i){super(r);this.reportExtra=i;this.reportCode=e}};function Axe(t){return typeof t.reportCode!="undefined"}var Xi=class{constructor(){this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}static progressViaCounter(e){let r=0,i,n=new Promise(l=>{i=l}),s=l=>{let c=i;n=new Promise(u=>{i=u}),r=l,c()},o=(l=0)=>{s(r+1)},a=async function*(){for(;r{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substr(0,a);o=o.substr(a+1),n="",e!==null?this.reportInfo(null,`${e} ${l}`):this.reportInfo(null,l)}while(a!==-1);n+=o}),r.on("end",()=>{let s=i.end();s!==""&&(e!==null?this.reportInfo(null,`${e} ${s}`):this.reportInfo(null,s))}),r}};var z8=ie(zy()),V8=new Map,_8=new Map,lxe=new W8.Agent({keepAlive:!0}),cxe=new J8.Agent({keepAlive:!0});function X8(t){let e=new Vy.URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),{proxy:r}}async function uxe(t){return na(_8,t,()=>T.readFilePromise(t).then(e=>(_8.set(t,e),e)))}function gxe({statusCode:t,statusMessage:e},r){let i=Ve(r,t,Le.NUMBER),n=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return Ku(r,`${i}${e?` (${e})`:""}`,n)}async function _y(t,{configuration:e,customErrorMessage:r}){var i,n;try{return await t}catch(s){if(s.name!=="HTTPError")throw s;let o=(n=r==null?void 0:r(s))!=null?n:(i=s.response.body)==null?void 0:i.error;o==null&&(s.message.startsWith("Response code")?o="The remote server failed to provide the requested resource":o=s.message),s instanceof q8.TimeoutError&&s.event==="socket"&&(o+=`(can be increased via ${Ve(e,"httpTimeout",Le.SETTING)})`);let a=new nt(z.NETWORK_ERROR,o,l=>{s.response&&l.reportError(z.NETWORK_ERROR,` ${Yl(e,{label:"Response Code",value:jl(Le.NO_HINT,gxe(s.response,e))})}`),s.request&&(l.reportError(z.NETWORK_ERROR,` ${Yl(e,{label:"Request Method",value:jl(Le.NO_HINT,s.request.options.method)})}`),l.reportError(z.NETWORK_ERROR,` ${Yl(e,{label:"Request URL",value:jl(Le.URL,s.request.requestUrl)})}`)),s.request.redirects.length>0&&l.reportError(z.NETWORK_ERROR,` ${Yl(e,{label:"Request Redirects",value:jl(Le.NO_HINT,Kx(e,s.request.redirects,Le.URL))})}`),s.request.retryCount===s.request.options.retry.limit&&l.reportError(z.NETWORK_ERROR,` ${Yl(e,{label:"Request Retry Count",value:jl(Le.NO_HINT,`${Ve(e,s.request.retryCount,Le.NUMBER)} (can be increased via ${Ve(e,"httpRetry",Le.SETTING)})`)})}`)});throw a.originalError=s,a}}function Z8(t,e){let r=[...e.configuration.get("networkSettings")].sort(([o],[a])=>a.length-o.length),i={enableNetwork:void 0,caFilePath:void 0,httpProxy:void 0,httpsProxy:void 0},n=Object.keys(i),s=typeof t=="string"?new Vy.URL(t):t;for(let[o,a]of r)if(tP.default.isMatch(s.hostname,o))for(let l of n){let c=a.get(l);c!==null&&typeof i[l]=="undefined"&&(i[l]=c)}for(let o of n)typeof i[o]=="undefined"&&(i[o]=e.configuration.get(o));return i}var Jl;(function(n){n.GET="GET",n.PUT="PUT",n.POST="POST",n.DELETE="DELETE"})(Jl||(Jl={}));async function xp(t,e,{configuration:r,headers:i,jsonRequest:n,jsonResponse:s,method:o=Jl.GET}){let a=typeof t=="string"?new Vy.URL(t):t,l=Z8(a,{configuration:r});if(l.enableNetwork===!1)throw new Error(`Request to '${a.href}' has been blocked because of your configuration settings`);if(a.protocol==="http:"&&!tP.default.isMatch(a.hostname,r.get("unsafeHttpWhitelist")))throw new Error(`Unsafe http requests must be explicitly whitelisted in your configuration (${a.hostname})`);let u={agent:{http:l.httpProxy?rP.default.httpOverHttp(X8(l.httpProxy)):lxe,https:l.httpsProxy?rP.default.httpsOverHttp(X8(l.httpsProxy)):cxe},headers:i,method:o};u.responseType=s?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!n&&typeof e=="string"?u.body=e:u.json=e);let g=r.get("httpTimeout"),f=r.get("httpRetry"),h=r.get("enableStrictSsl"),p=l.caFilePath,{default:d}=await Promise.resolve().then(()=>ie(zy())),m=p?await uxe(p):void 0,I=d.extend(P({timeout:{socket:g},retry:f,https:{rejectUnauthorized:h,certificateAuthority:m}},u));return r.getLimit("networkConcurrency")(()=>I(a))}async function fxe(t,n){var s=n,{configuration:e,jsonResponse:r}=s,i=qr(s,["configuration","jsonResponse"]);let o=na(V8,t,()=>_y(xp(t,null,P({configuration:e},i)),{configuration:e}).then(a=>(V8.set(t,a.body),a.body)));return Buffer.isBuffer(o)===!1&&(o=await o),r?JSON.parse(o.toString()):o}async function hxe(t,e,n){var s=n,{customErrorMessage:r}=s,i=qr(s,["customErrorMessage"]);return(await _y(xp(t,e,_(P({},i),{method:Jl.PUT})),i)).body}async function iP(t,e,n){var s=n,{customErrorMessage:r}=s,i=qr(s,["customErrorMessage"]);return(await _y(xp(t,e,_(P({},i),{method:Jl.POST})),i)).body}async function pxe(t,i){var n=i,{customErrorMessage:e}=n,r=qr(n,["customErrorMessage"]);return(await _y(xp(t,null,_(P({},r),{method:Jl.DELETE})),r)).body}var Kt={};it(Kt,{PackageManager:()=>tn,detectPackageManager:()=>a9,executePackageAccessibleBinary:()=>g9,executePackageScript:()=>Uw,executePackageShellcode:()=>rD,executeWorkspaceAccessibleBinary:()=>qFe,executeWorkspaceLifecycleScript:()=>u9,executeWorkspaceScript:()=>c9,getPackageAccessibleBinaries:()=>Hw,getWorkspaceAccessibleBinaries:()=>l9,hasPackageScript:()=>GFe,hasWorkspaceScript:()=>tD,makeScriptEnv:()=>Vp,maybeExecuteWorkspaceLifecycleScript:()=>YFe,prepareExternalProject:()=>HFe});var Fp={};it(Fp,{getLibzipPromise:()=>$i,getLibzipSync:()=>v4});var yA=["number","number"],nP;(function(D){D[D.ZIP_ER_OK=0]="ZIP_ER_OK",D[D.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",D[D.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",D[D.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",D[D.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",D[D.ZIP_ER_READ=5]="ZIP_ER_READ",D[D.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",D[D.ZIP_ER_CRC=7]="ZIP_ER_CRC",D[D.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",D[D.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",D[D.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",D[D.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",D[D.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",D[D.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",D[D.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",D[D.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",D[D.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",D[D.ZIP_ER_EOF=17]="ZIP_ER_EOF",D[D.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",D[D.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",D[D.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",D[D.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",D[D.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",D[D.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",D[D.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",D[D.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",D[D.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",D[D.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",D[D.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",D[D.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",D[D.ZIP_ER_TELL=30]="ZIP_ER_TELL",D[D.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA"})(nP||(nP={}));var $8=t=>({get HEAP8(){return t.HEAP8},get HEAPU8(){return t.HEAPU8},errors:nP,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_CREATE:1,ZIP_EXCL:2,ZIP_TRUNCATE:8,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint16S:t._malloc(2),uint32S:t._malloc(4),uint64S:t._malloc(8),malloc:t._malloc,free:t._free,getValue:t.getValue,open:t.cwrap("zip_open","number",["string","number","number"]),openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),stat:t.cwrap("zip_stat","number",["number","string","number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...yA,"number","number"]),fopen:t.cwrap("zip_fopen","number",["number","string","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...yA,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...yA,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...yA,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...yA,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...yA,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number","number","number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...yA,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...yA,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"]),setMtime:t.cwrap("zip_source_set_mtime","number",["number","number"])},struct:{stat:t.cwrap("zipstruct_stat","number",[]),statS:t.cwrap("zipstruct_statS","number",[]),statName:t.cwrap("zipstruct_stat_name","string",["number"]),statIndex:t.cwrap("zipstruct_stat_index","number",["number"]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),error:t.cwrap("zipstruct_error","number",[]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}});var BP=null;function v4(){return BP===null&&(BP=$8(b4())),BP}async function $i(){return v4()}var jp={};it(jp,{ShellError:()=>as,execute:()=>Fw,globUtils:()=>bw});var Hp={};it(Hp,{parseResolution:()=>gw,parseShell:()=>Aw,parseSyml:()=>Ii,stringifyArgument:()=>SP,stringifyArgumentSegment:()=>xP,stringifyArithmeticExpression:()=>uw,stringifyCommand:()=>vP,stringifyCommandChain:()=>rg,stringifyCommandChainThen:()=>bP,stringifyCommandLine:()=>lw,stringifyCommandLineThen:()=>QP,stringifyEnvSegment:()=>cw,stringifyRedirectArgument:()=>Np,stringifyResolution:()=>fw,stringifyShell:()=>tg,stringifyShellLine:()=>tg,stringifySyml:()=>Qa,stringifyValueArgument:()=>ig});var k4=ie(x4());function Aw(t,e={isGlobPattern:()=>!1}){try{return(0,k4.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function tg(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:i},n)=>`${lw(r)}${i===";"?n!==t.length-1||e?";":"":" &"}`).join(" ")}function lw(t){return`${rg(t.chain)}${t.then?` ${QP(t.then)}`:""}`}function QP(t){return`${t.type} ${lw(t.line)}`}function rg(t){return`${vP(t)}${t.then?` ${bP(t.then)}`:""}`}function bP(t){return`${t.type} ${rg(t.chain)}`}function vP(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>cw(e)).join(" ")} `:""}${t.args.map(e=>SP(e)).join(" ")}`;case"subshell":return`(${tg(t.subshell)})${t.args.length>0?` ${t.args.map(e=>Np(e)).join(" ")}`:""}`;case"group":return`{ ${tg(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>Np(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>cw(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function cw(t){return`${t.name}=${t.args[0]?ig(t.args[0]):""}`}function SP(t){switch(t.type){case"redirection":return Np(t);case"argument":return ig(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function Np(t){return`${t.subtype} ${t.args.map(e=>ig(e)).join(" ")}`}function ig(t){return t.segments.map(e=>xP(e)).join("")}function xP(t){let e=(i,n)=>n?`"${i}"`:i,r=i=>i===""?'""':i.match(/[(){}<>$|&; \t"']/)?`$'${i.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\f/g,"\\f").replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/\v/g,"\\v").replace(/\0/g,"\\0")}'`:i;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`\${${tg(t.shell)}}`,t.quoted);case"variable":return e(typeof t.defaultValue=="undefined"?`\${${t.name}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(i=>ig(i)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${uw(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function uw(t){let e=n=>{switch(n){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${n}"`)}},r=(n,s)=>s?`( ${n} )`:n,i=n=>r(uw(n),!["number","variable"].includes(n.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${i(t.left)} ${e(t.type)} ${i(t.right)}`}}var R4=ie(D4());function gw(t){let e=t.match(/^\*{1,2}\/(.*)/);if(e)throw new Error(`The override for '${t}' includes a glob pattern. Glob patterns have been removed since their behaviours don't match what you'd expect. Set the override to '${e[1]}' instead.`);try{return(0,R4.parse)(t)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function fw(t){let e="";return t.from&&(e+=t.from.fullName,t.from.description&&(e+=`@${t.from.description}`),e+="/"),e+=t.descriptor.fullName,t.descriptor.description&&(e+=`@${t.descriptor.description}`),e}var Qw=ie(w5()),b5=ie(Q5()),$De=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,v5=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],HP=class{constructor(e){this.data=e}};function S5(t){return t.match($De)?t:JSON.stringify(t)}function x5(t){return typeof t=="undefined"?!0:typeof t=="object"&&t!==null?Object.keys(t).every(e=>x5(t[e])):!1}function GP(t,e,r){if(t===null)return`null -`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} -`;if(typeof t=="string")return`${S5(t)} -`;if(Array.isArray(t)){if(t.length===0)return`[] -`;let i=" ".repeat(e);return` -${t.map(s=>`${i}- ${GP(s,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let i,n;t instanceof HP?(i=t.data,n=!1):(i=t,n=!0);let s=" ".repeat(e),o=Object.keys(i);n&&o.sort((l,c)=>{let u=v5.indexOf(l),g=v5.indexOf(c);return u===-1&&g===-1?lc?1:0:u!==-1&&g===-1?-1:u===-1&&g!==-1?1:u-g});let a=o.filter(l=>!x5(i[l])).map((l,c)=>{let u=i[l],g=S5(l),f=GP(u,e+1,!0),h=c>0||r?s:"";return f.startsWith(` -`)?`${h}${g}:${f}`:`${h}${g}: ${f}`}).join(e===0?` -`:"")||` -`;return r?` -${a}`:`${a}`}throw new Error(`Unsupported value type (${t})`)}function Qa(t){try{let e=GP(t,0,!1);return e!==` -`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}Qa.PreserveOrdering=HP;function eRe(t){return t.endsWith(` -`)||(t+=` -`),(0,b5.parse)(t)}var tRe=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i;function rRe(t){if(tRe.test(t))return eRe(t);let e=(0,Qw.safeLoad)(t,{schema:Qw.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Ii(t){return rRe(t)}var U5=ie(jb()),H5=ie(require("os")),Kn=ie(require("stream")),G5=ie(require("util"));var as=class extends Error{constructor(e){super(e);this.name="ShellError"}};var bw={};it(bw,{fastGlobOptions:()=>D5,isBraceExpansion:()=>R5,isGlobPattern:()=>iRe,match:()=>nRe,micromatchOptions:()=>Sw});var k5=ie(gy()),P5=ie(require("fs")),vw=ie(Nn()),Sw={strictBrackets:!0},D5={onlyDirectories:!1,onlyFiles:!1};function iRe(t){if(!vw.default.scan(t,Sw).isGlob)return!1;try{vw.default.parse(t,Sw)}catch{return!1}return!0}function nRe(t,{cwd:e,baseFs:r}){return(0,k5.default)(t,_(P({},D5),{cwd:M.fromPortablePath(e),fs:SE(P5.default,new ah(r))}))}function R5(t){return vw.default.scan(t,Sw).isBrace}var F5=ie(bb()),Bo=ie(require("stream")),N5=ie(require("string_decoder")),wn;(function(i){i[i.STDIN=0]="STDIN",i[i.STDOUT=1]="STDOUT",i[i.STDERR=2]="STDERR"})(wn||(wn={}));var sc=new Set;function jP(){}function YP(){for(let t of sc)t.kill()}function L5(t,e,r,i){return n=>{let s=n[0]instanceof Bo.Transform?"pipe":n[0],o=n[1]instanceof Bo.Transform?"pipe":n[1],a=n[2]instanceof Bo.Transform?"pipe":n[2],l=(0,F5.default)(t,e,_(P({},i),{stdio:[s,o,a]}));return sc.add(l),sc.size===1&&(process.on("SIGINT",jP),process.on("SIGTERM",YP)),n[0]instanceof Bo.Transform&&n[0].pipe(l.stdin),n[1]instanceof Bo.Transform&&l.stdout.pipe(n[1],{end:!1}),n[2]instanceof Bo.Transform&&l.stderr.pipe(n[2],{end:!1}),{stdin:l.stdin,promise:new Promise(c=>{l.on("error",u=>{switch(sc.delete(l),sc.size===0&&(process.off("SIGINT",jP),process.off("SIGTERM",YP)),u.code){case"ENOENT":n[2].write(`command not found: ${t} -`),c(127);break;case"EACCES":n[2].write(`permission denied: ${t} -`),c(128);break;default:n[2].write(`uncaught error: ${u.message} -`),c(1);break}}),l.on("exit",u=>{sc.delete(l),sc.size===0&&(process.off("SIGINT",jP),process.off("SIGTERM",YP)),c(u!==null?u:129)})})}}}function T5(t){return e=>{let r=e[0]==="pipe"?new Bo.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}var Os=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},M5=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},Gp=class{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:i,stderr:n}){let s=new Gp(null,e);return s.stdin=r,s.stdout=i,s.stderr=n,s}pipeTo(e,r=1){let i=new Gp(this,e),n=new M5;return i.pipe=n,i.stdout=this.stdout,i.stderr=this.stderr,(r&1)==1?this.stdout=n:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)==2?this.stderr=n:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),i}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let i;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");i=this.stderr,e[2]=i.get();let n=this.implementation(e);return this.pipe&&this.pipe.attach(n.stdin),await n.promise.then(s=>(r.close(),i.close(),s))}async run(){let e=[];for(let i=this;i;i=i.ancestor)e.push(i.exec());return(await Promise.all(e))[0]}};function xw(t,e){return Gp.start(t,e)}function O5(t,e=null){let r=new Bo.PassThrough,i=new N5.StringDecoder,n="";return r.on("data",s=>{let o=i.write(s),a;do if(a=o.indexOf(` -`),a!==-1){let l=n+o.substr(0,a);o=o.substr(a+1),n="",t(e!==null?`${e} ${l}`:l)}while(a!==-1);n+=o}),r.on("end",()=>{let s=i.end();s!==""&&t(e!==null?`${e} ${s}`:s)}),r}function K5(t,{prefix:e}){return{stdout:O5(r=>t.stdout.write(`${r} -`),t.stdout.isTTY?e:null),stderr:O5(r=>t.stderr.write(`${r} -`),t.stderr.isTTY?e:null)}}var sRe=(0,G5.promisify)(setTimeout);var Fi;(function(r){r[r.Readable=1]="Readable",r[r.Writable=2]="Writable"})(Fi||(Fi={}));function j5(t,e,r){let i=new Kn.PassThrough({autoDestroy:!0});switch(t){case wn.STDIN:(e&1)==1&&r.stdin.pipe(i,{end:!1}),(e&2)==2&&r.stdin instanceof Kn.Writable&&i.pipe(r.stdin,{end:!1});break;case wn.STDOUT:(e&1)==1&&r.stdout.pipe(i,{end:!1}),(e&2)==2&&i.pipe(r.stdout,{end:!1});break;case wn.STDERR:(e&1)==1&&r.stderr.pipe(i,{end:!1}),(e&2)==2&&i.pipe(r.stderr,{end:!1});break;default:throw new as(`Bad file descriptor: "${t}"`)}return i}function kw(t,e={}){let r=P(P({},t),e);return r.environment=P(P({},t.environment),e.environment),r.variables=P(P({},t.variables),e.variables),r}var oRe=new Map([["cd",async([t=(0,H5.homedir)(),...e],r,i)=>{let n=v.resolve(i.cwd,M.toPortablePath(t));if(!(await r.baseFs.statPromise(n).catch(o=>{throw o.code==="ENOENT"?new as(`cd: no such file or directory: ${t}`):o})).isDirectory())throw new as(`cd: not a directory: ${t}`);return i.cwd=n,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${M.fromPortablePath(r.cwd)} -`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,i)=>i.exitCode=parseInt(t!=null?t:i.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} -`),0)],["sleep",async([t],e,r)=>{if(typeof t=="undefined")throw new as("sleep: missing operand");let i=Number(t);if(Number.isNaN(i))throw new as(`sleep: invalid time interval '${t}'`);return await sRe(1e3*i,0)}],["__ysh_run_procedure",async(t,e,r)=>{let i=r.procedures[t[0]];return await xw(i,{stdin:new Os(r.stdin),stdout:new Os(r.stdout),stderr:new Os(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let i=r.stdin,n=r.stdout,s=r.stderr,o=[],a=[],l=[],c=0;for(;t[c]!=="--";){let g=t[c++],{type:f,fd:h}=JSON.parse(g),p=B=>{switch(h){case null:case 0:o.push(B);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},d=B=>{switch(h){case null:case 1:a.push(B);break;case 2:l.push(B);break;default:throw new Error(`Unsupported file descriptor: "${h}"`)}},m=Number(t[c++]),I=c+m;for(let B=c;Be.baseFs.createReadStream(v.resolve(r.cwd,M.toPortablePath(t[B]))));break;case"<<<":p(()=>{let b=new Kn.PassThrough;return process.nextTick(()=>{b.write(`${t[B]} -`),b.end()}),b});break;case"<&":p(()=>j5(Number(t[B]),1,r));break;case">":case">>":{let b=v.resolve(r.cwd,M.toPortablePath(t[B]));d(b==="/dev/null"?new Kn.Writable({autoDestroy:!0,emitClose:!0,write(R,H,L){setImmediate(L)}}):e.baseFs.createWriteStream(b,f===">>"?{flags:"a"}:void 0))}break;case">&":d(j5(Number(t[B]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${f}"`)}}if(o.length>0){let g=new Kn.PassThrough;i=g;let f=h=>{if(h===o.length)g.end();else{let p=o[h]();p.pipe(g,{end:!1}),p.on("end",()=>{f(h+1)})}};f(0)}if(a.length>0){let g=new Kn.PassThrough;n=g;for(let f of a)g.pipe(f)}if(l.length>0){let g=new Kn.PassThrough;s=g;for(let f of l)g.pipe(f)}let u=await xw(Yp(t.slice(c+1),e,r),{stdin:new Os(i),stdout:new Os(n),stderr:new Os(s)}).run();return await Promise.all(a.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),await Promise.all(l.map(g=>new Promise((f,h)=>{g.on("error",p=>{h(p)}),g.on("close",()=>{f()}),g.end()}))),u}]]);async function aRe(t,e,r){let i=[],n=new Kn.PassThrough;return n.on("data",s=>i.push(s)),await Pw(t,e,kw(r,{stdout:n})),Buffer.concat(i).toString().replace(/[\r\n]+$/,"")}async function Y5(t,e,r){let i=t.map(async s=>{let o=await oc(s.args,e,r);return{name:s.name,value:o.join(" ")}});return(await Promise.all(i)).reduce((s,o)=>(s[o.name]=o.value,s),{})}function Dw(t){return t.match(/[^ \r\n\t]+/g)||[]}async function q5(t,e,r,i,n=i){switch(t.name){case"$":i(String(process.pid));break;case"#":i(String(e.args.length));break;case"@":if(t.quoted)for(let s of e.args)n(s);else for(let s of e.args){let o=Dw(s);for(let a=0;a=0&&st+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)};async function qp(t,e,r){if(t.type==="number"){if(Number.isInteger(t.value))return t.value;throw new Error(`Invalid number: "${t.value}", only integers are allowed`)}else if(t.type==="variable"){let i=[];await q5(_(P({},t),{quoted:!0}),e,r,s=>i.push(s));let n=Number(i.join(" "));return Number.isNaN(n)?qp({type:"variable",name:i.join(" ")},e,r):qp({type:"number",value:n},e,r)}else return ARe[t.type](await qp(t.left,e,r),await qp(t.right,e,r))}async function oc(t,e,r){let i=new Map,n=[],s=[],o=u=>{s.push(u)},a=()=>{s.length>0&&n.push(s.join("")),s=[]},l=u=>{o(u),a()},c=(u,g,f)=>{let h=JSON.stringify({type:u,fd:g}),p=i.get(h);typeof p=="undefined"&&i.set(h,p=[]),p.push(f)};for(let u of t){let g=!1;switch(u.type){case"redirection":{let f=await oc(u.args,e,r);for(let h of f)c(u.subtype,u.fd,h)}break;case"argument":for(let f of u.segments)switch(f.type){case"text":o(f.text);break;case"glob":o(f.pattern),g=!0;break;case"shell":{let h=await aRe(f.shell,e,r);if(f.quoted)o(h);else{let p=Dw(h);for(let d=0;d0){let u=[];for(let[g,f]of i.entries())u.splice(u.length,0,g,String(f.length),...f);n.splice(0,0,"__ysh_set_redirects",...u,"--")}return n}function Yp(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let i=M.fromPortablePath(r.cwd),n=r.environment;typeof n.PWD!="undefined"&&(n=_(P({},n),{PWD:i}));let[s,...o]=t;if(s==="command")return L5(o[0],o.slice(1),e,{cwd:i,env:n});let a=e.builtins.get(s);if(typeof a=="undefined")throw new Error(`Assertion failed: A builtin should exist for "${s}"`);return T5(async({stdin:l,stdout:c,stderr:u})=>{let{stdin:g,stdout:f,stderr:h}=r;r.stdin=l,r.stdout=c,r.stderr=u;try{return await a(o,e,r)}finally{r.stdin=g,r.stdout=f,r.stderr=h}})}function lRe(t,e,r){return i=>{let n=new Kn.PassThrough,s=Pw(t,e,kw(r,{stdin:n}));return{stdin:n,promise:s}}}function cRe(t,e,r){return i=>{let n=new Kn.PassThrough,s=Pw(t,e,r);return{stdin:n,promise:s}}}function J5(t,e,r,i){if(e.length===0)return t;{let n;do n=String(Math.random());while(Object.prototype.hasOwnProperty.call(i.procedures,n));return i.procedures=P({},i.procedures),i.procedures[n]=t,Yp([...e,"__ysh_run_procedure",n],r,i)}}async function W5(t,e,r){let i=t,n=null,s=null;for(;i;){let o=i.then?P({},r):r,a;switch(i.type){case"command":{let l=await oc(i.args,e,r),c=await Y5(i.envs,e,r);a=i.envs.length?Yp(l,e,kw(o,{environment:c})):Yp(l,e,o)}break;case"subshell":{let l=await oc(i.args,e,r),c=lRe(i.subshell,e,o);a=J5(c,l,e,o)}break;case"group":{let l=await oc(i.args,e,r),c=cRe(i.group,e,o);a=J5(c,l,e,o)}break;case"envs":{let l=await Y5(i.envs,e,r);o.environment=P(P({},o.environment),l),a=Yp(["true"],e,o)}break}if(typeof a=="undefined")throw new Error("Assertion failed: An action should have been generated");if(n===null)s=xw(a,{stdin:new Os(o.stdin),stdout:new Os(o.stdout),stderr:new Os(o.stderr)});else{if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(n){case"|":s=s.pipeTo(a,wn.STDOUT);break;case"|&":s=s.pipeTo(a,wn.STDOUT|wn.STDERR);break}}i.then?(n=i.then.type,i=i.then.chain):i=null}if(s===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await s.run()}async function uRe(t,e,r,{background:i=!1}={}){function n(s){let o=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],a=o[s%o.length];return U5.default.hex(a)}if(i){let s=r.nextBackgroundJobIndex++,o=n(s),a=`[${s}]`,l=o(a),{stdout:c,stderr:u}=K5(r,{prefix:l});return r.backgroundJobs.push(W5(t,e,kw(r,{stdout:c,stderr:u})).catch(g=>u.write(`${g.message} -`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${l}, '${o(rg(t))}' has ended -`)})),0}return await W5(t,e,r)}async function gRe(t,e,r,{background:i=!1}={}){let n,s=a=>{n=a,r.variables["?"]=String(a)},o=async a=>{try{return await uRe(a.chain,e,r,{background:i&&typeof a.then=="undefined"})}catch(l){if(!(l instanceof as))throw l;return r.stderr.write(`${l.message} -`),1}};for(s(await o(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":n===0&&s(await o(t.then.line));break;case"||":n!==0&&s(await o(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return n}async function Pw(t,e,r){let i=r.backgroundJobs;r.backgroundJobs=[];let n=0;for(let{command:s,type:o}of t){if(n=await gRe(s,e,r,{background:o==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(n)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=i,n}function z5(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>Rw(e));case"arithmetic":return qP(t.arithmetic);case"shell":return JP(t.shell);default:return!1}}function Rw(t){switch(t.type){case"redirection":return t.args.some(e=>Rw(e));case"argument":return t.segments.some(e=>z5(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function qP(t){switch(t.type){case"variable":return z5(t);case"number":return!1;default:return qP(t.left)||qP(t.right)}}function JP(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let i;switch(r.type){case"subshell":i=JP(r.subshell);break;case"command":i=r.envs.some(n=>n.args.some(s=>Rw(s)))||r.args.some(n=>Rw(n));break}if(i)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function Fw(t,e=[],{baseFs:r=new Wt,builtins:i={},cwd:n=M.toPortablePath(process.cwd()),env:s=process.env,stdin:o=process.stdin,stdout:a=process.stdout,stderr:l=process.stderr,variables:c={},glob:u=bw}={}){let g={};for(let[p,d]of Object.entries(s))typeof d!="undefined"&&(g[p]=d);let f=new Map(oRe);for(let[p,d]of Object.entries(i))f.set(p,d);o===null&&(o=new Kn.PassThrough,o.end());let h=Aw(t,u);if(!JP(h)&&h.length>0&&e.length>0){let{command:p}=h[h.length-1];for(;p.then;)p=p.then.line;let d=p.chain;for(;d.then;)d=d.then.chain;d.type==="command"&&(d.args=d.args.concat(e.map(m=>({type:"argument",segments:[{type:"text",text:m}]}))))}return await Pw(h,{args:e,baseFs:r,builtins:f,initialStdin:o,initialStdout:a,initialStderr:l,glob:u},{cwd:n,environment:g,exitCode:null,procedures:{},stdin:o,stdout:a,stderr:l,variables:Object.assign({},c,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var s9=ie(ZP()),o9=ie(Wp()),cc=ie(require("stream"));var J6=ie(Or());var zp=class{supportsDescriptor(e,r){return!!(e.range.startsWith(zp.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(zp.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){return[i.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,i){return null}async resolve(e,r){let i=r.project.getWorkspaceByCwd(e.reference.slice(zp.protocol.length));return _(P({},e),{version:i.manifest.version||"0.0.0",languageName:"unknown",linkType:gt.SOFT,conditions:null,dependencies:new Map([...i.manifest.dependencies,...i.manifest.devDependencies]),peerDependencies:new Map([...i.manifest.peerDependencies]),dependenciesMeta:i.manifest.dependenciesMeta,peerDependenciesMeta:i.manifest.peerDependenciesMeta,bin:i.manifest.bin})}},Yr=zp;Yr.protocol="workspace:";var qt={};it(qt,{SemVer:()=>j6.SemVer,satisfiesWithPrereleases:()=>lc,validRange:()=>Us});var Lw=ie(Or()),j6=ie(Or()),Y6=new Map;function lc(t,e,r=!1){if(!t)return!1;let i=`${e}${r}`,n=Y6.get(i);if(typeof n=="undefined")try{n=new Lw.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{Y6.set(i,n||null)}else if(n===null)return!1;let s;try{s=new Lw.default.SemVer(t,n)}catch(o){return!1}return n.test(s)?!0:(s.prerelease&&(s.prerelease=[]),n.set.some(o=>{for(let a of o)a.semver.prerelease&&(a.semver.prerelease=[]);return o.every(a=>a.test(s))}))}var q6=new Map;function Us(t){if(t.indexOf(":")!==-1)return null;let e=q6.get(t);if(typeof e!="undefined")return e;try{e=new Lw.default.Range(t)}catch{e=null}return q6.set(t,e),e}var vA=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:r=new Wt}={}){let i=v.join(e,"package.json");return await r.existsPromise(i)?await vA.fromFile(i,{baseFs:r}):null}static async find(e,{baseFs:r}={}){let i=await vA.tryFind(e,{baseFs:r});if(i===null)throw new Error("Manifest not found");return i}static async fromFile(e,{baseFs:r=new Wt}={}){let i=new vA;return await i.loadFile(e,{baseFs:r}),i}static fromText(e){let r=new vA;return r.loadFromText(e),r}static isManifestFieldCompatible(e,r){if(e===null)return!0;let i=!0,n=!1;for(let s of e)if(s[0]==="!"){if(n=!0,r===s.slice(1))return!1}else if(i=!1,s===r)return!0;return n&&i}loadFromText(e){let r;try{r=JSON.parse(z6(e)||"{}")}catch(i){throw i.message+=` (when parsing ${e})`,i}this.load(r),this.indent=W6(e)}async loadFile(e,{baseFs:r=new Wt}){let i=await r.readFilePromise(e,"utf8"),n;try{n=JSON.parse(z6(i)||"{}")}catch(s){throw s.message+=` (when parsing ${e})`,s}this.load(n),this.indent=W6(i)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let i=[];if(this.name=null,typeof e.name=="string")try{this.name=En(e.name)}catch(s){i.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let s=[];this.os=s;for(let o of e.os)typeof o!="string"?i.push(new Error("Parsing failed for the 'os' field")):s.push(o)}else this.os=null;if(Array.isArray(e.cpu)){let s=[];this.cpu=s;for(let o of e.cpu)typeof o!="string"?i.push(new Error("Parsing failed for the 'cpu' field")):s.push(o)}else this.cpu=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=en(e.main):this.main=null,typeof e.module=="string"?this.module=en(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=en(e.browser);else{this.browser=new Map;for(let[s,o]of Object.entries(e.browser))this.browser.set(en(s),typeof o=="string"?en(o):o)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")this.name!==null?this.bin.set(this.name.name,en(e.bin)):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[s,o]of Object.entries(e.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.bin.set(s,en(o))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[s,o]of Object.entries(e.scripts)){if(typeof o!="string"){i.push(new Error(`Invalid script definition for '${s}'`));continue}this.scripts.set(s,o)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[s,o]of Object.entries(e.dependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=En(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=Yt(a,o);this.dependencies.set(l.identHash,l)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[s,o]of Object.entries(e.devDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=En(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=Yt(a,o);this.devDependencies.set(l.identHash,l)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[s,o]of Object.entries(e.peerDependencies)){let a;try{a=En(s)}catch(c){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}(typeof o!="string"||!o.startsWith(Yr.protocol)&&!Us(o))&&(i.push(new Error(`Invalid dependency range for '${s}'`)),o="*");let l=Yt(a,o);this.peerDependencies.set(l.identHash,l)}typeof e.workspaces=="object"&&e.workspaces.nohoist&&i.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let n=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let s of n){if(typeof s!="string"){i.push(new Error(`Invalid workspace definition for '${s}'`));continue}this.workspaceDefinitions.push({pattern:s})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[s,o]of Object.entries(e.dependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}`));continue}let a=pA(s),l=this.ensureDependencyMeta(a),c=Tw(o.built,{yamlCompatibilityMode:r});if(c===null){i.push(new Error(`Invalid built meta field for '${s}'`));continue}let u=Tw(o.optional,{yamlCompatibilityMode:r});if(u===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}let g=Tw(o.unplugged,{yamlCompatibilityMode:r});if(g===null){i.push(new Error(`Invalid unplugged meta field for '${s}'`));continue}Object.assign(l,{built:c,optional:u,unplugged:g})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[s,o]of Object.entries(e.peerDependenciesMeta)){if(typeof o!="object"||o===null){i.push(new Error(`Invalid meta field for '${s}'`));continue}let a=pA(s),l=this.ensurePeerDependencyMeta(a),c=Tw(o.optional,{yamlCompatibilityMode:r});if(c===null){i.push(new Error(`Invalid optional meta field for '${s}'`));continue}Object.assign(l,{optional:c})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[s,o]of Object.entries(e.resolutions)){if(typeof o!="string"){i.push(new Error(`Invalid resolution entry for '${s}'`));continue}try{this.resolutions.push({pattern:gw(s),reference:o})}catch(a){i.push(a);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let s of e.files){if(typeof s!="string"){i.push(new Error(`Invalid files entry for '${s}'`));continue}this.files.add(s)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=en(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=en(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=en(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[s,o]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set(en(s),typeof o=="string"?en(o):o)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,en(e.publishConfig.bin)]]):i.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[s,o]of Object.entries(e.publishConfig.bin)){if(typeof o!="string"){i.push(new Error(`Invalid bin definition for '${s}'`));continue}this.publishConfig.bin.set(s,en(o))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let s of e.publishConfig.executableFiles){if(typeof s!="string"){i.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add(en(s))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let s of Object.keys(e.installConfig))s==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:i.push(new Error("Invalid hoisting limits definition")):s=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:i.push(new Error("Invalid selfReferences definition, must be a boolean value")):i.push(new Error(`Unrecognized installConfig key: ${s}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[s,o]of Object.entries(e.optionalDependencies)){if(typeof o!="string"){i.push(new Error(`Invalid dependency range for '${s}'`));continue}let a;try{a=En(s)}catch(g){i.push(new Error(`Parsing failed for the dependency name '${s}'`));continue}let l=Yt(a,o);this.dependencies.set(l.identHash,l);let c=Yt(a,"unknown"),u=this.ensureDependencyMeta(c);Object.assign(u,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=i}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(V6("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(V6("cpu",this.cpu)),e.length>0?e.join(" & "):null}isCompatibleWithOS(e){return vA.isManifestFieldCompatible(this.os,e)}isCompatibleWithCPU(e){return vA.isManifestFieldCompatible(this.cpu,e)}ensureDependencyMeta(e){if(e.range!=="unknown"&&!J6.default.valid(e.range))throw new Error(`Invalid meta field range for '${In(e)}'`);let r=St(e),i=e.range!=="unknown"?e.range:null,n=this.dependenciesMeta.get(r);n||this.dependenciesMeta.set(r,n=new Map);let s=n.get(i);return s||n.set(i,s={}),s}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${In(e)}'`);let r=St(e),i=this.peerDependenciesMeta.get(r);return i||this.peerDependenciesMeta.set(r,i={}),i}setRawField(e,r,{after:i=[]}={}){let n=new Set(i.filter(s=>Object.prototype.hasOwnProperty.call(this.raw,s)));if(n.size===0||Object.prototype.hasOwnProperty.call(this.raw,e))this.raw[e]=r;else{let s=this.raw,o=this.raw={},a=!1;for(let l of Object.keys(s))o[l]=s[l],a||(n.delete(l),n.size===0&&(o[e]=r,a=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){var s;if(Object.assign(e,this.raw),this.name!==null?e.name=St(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let o=this.browser;typeof o=="string"?e.browser=o:o instanceof Map&&(e.browser=Object.assign({},...Array.from(o.keys()).sort().map(a=>({[a]:o.get(a)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(o=>({[o]:this.bin.get(o)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces=_(P({},this.raw.workspaces),{packages:this.workspaceDefinitions.map(({pattern:o})=>o)}):e.workspaces=this.workspaceDefinitions.map(({pattern:o})=>o):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let i=[],n=[];for(let o of this.dependencies.values()){let a=this.dependenciesMeta.get(St(o)),l=!1;if(r&&a){let c=a.get(null);c&&c.optional&&(l=!0)}l?n.push(o):i.push(o)}i.length>0?e.dependencies=Object.assign({},...Ou(i).map(o=>({[St(o)]:o.range}))):delete e.dependencies,n.length>0?e.optionalDependencies=Object.assign({},...Ou(n).map(o=>({[St(o)]:o.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...Ou(this.devDependencies.values()).map(o=>({[St(o)]:o.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...Ou(this.peerDependencies.values()).map(o=>({[St(o)]:o.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[o,a]of gn(this.dependenciesMeta.entries(),([l,c])=>l))for(let[l,c]of gn(a.entries(),([u,g])=>u!==null?`0${u}`:"1")){let u=l!==null?In(Yt(En(o),l)):o,g=P({},c);r&&l===null&&delete g.optional,Object.keys(g).length!==0&&(e.dependenciesMeta[u]=g)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...gn(this.peerDependenciesMeta.entries(),([o,a])=>o).map(([o,a])=>({[o]:a}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:o,reference:a})=>({[fw(o)]:a}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){(s=e.scripts)!=null||(e.scripts={});for(let o of Object.keys(e.scripts))this.scripts.has(o)||delete e.scripts[o];for(let[o,a]of this.scripts.entries())e.scripts[o]=a}else delete e.scripts;return e}},Ze=vA;Ze.fileName="package.json",Ze.allDependencies=["dependencies","devDependencies","peerDependencies"],Ze.hardDependencies=["dependencies","devDependencies"];function W6(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function z6(t){return t.charCodeAt(0)===65279?t.slice(1):t}function en(t){return t.replace(/\\/g,"/")}function Tw(t,{yamlCompatibilityMode:e}){return e?Kv(t):typeof t=="undefined"||typeof t=="boolean"?t:null}function _6(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let i=r%2==0?"":"!",n=e.slice(r);return`${i}${t}=${n}`}function V6(t,e){return e.length===1?_6(t,e[0]):`(${e.map(r=>_6(t,r)).join(" | ")})`}var e9=ie($6()),Ow=ie(ml());var t9=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],r9=80,NFe=new Set([z.FETCH_NOT_CACHED,z.UNUSED_CACHE_ENTRY]),LFe=5,SA=Ow.default.GITHUB_ACTIONS?{start:t=>`::group::${t} -`,end:t=>`::endgroup:: -`}:Ow.default.TRAVIS?{start:t=>`travis_fold:start:${t} -`,end:t=>`travis_fold:end:${t} -`}:Ow.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r${t} -`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r`}:null,i9=new Date,TFe=["iTerm.app","Apple_Terminal"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,MFe=t=>t,Kw=MFe({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),OFe=TFe&&Object.keys(Kw).find(t=>{let e=Kw[t];return!(e.date&&(e.date[0]!==i9.getDate()||e.date[1]!==i9.getMonth()+1))})||"default";function n9(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let n=KE(t===null?0:t);return!r&&t===null?Ve(e,n,"grey"):n}function eD(t,{configuration:e,json:r}){let i=n9(t,{configuration:e,json:r});if(!i||t===null||t===z.UNNAMED)return i;let n=z[t],s=`https://yarnpkg.com/advanced/error-codes#${i}---${n}`.toLowerCase();return Ku(e,i,s)}var Fe=class extends Xi{constructor({configuration:e,stdout:r,json:i=!1,includeFooter:n=!0,includeLogs:s=!i,includeInfos:o=s,includeWarnings:a=s,forgettableBufferSize:l=LFe,forgettableNames:c=new Set}){super();this.uncommitted=new Set;this.cacheHitCount=0;this.cacheMissCount=0;this.lastCacheMiss=null;this.warningCount=0;this.errorCount=0;this.startTime=Date.now();this.indent=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.forgettableLines=[];Cp(this,{configuration:e}),this.configuration=e,this.forgettableBufferSize=l,this.forgettableNames=new Set([...c,...NFe]),this.includeFooter=n,this.includeInfos=o,this.includeWarnings=a,this.json=i,this.stdout=r;let u=this.configuration.get("progressBarStyle")||OFe;if(!Object.prototype.hasOwnProperty.call(Kw,u))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=Kw[u];let g="\u27A4 YN0000: \u250C ".length,f=Math.max(0,Math.min(process.stdout.columns-g,80));this.progressMaxScaledSize=Math.floor(this.progressStyle.size*f/80)}static async start(e,r){let i=new this(e),n=process.emitWarning;process.emitWarning=(s,o)=>{if(typeof s!="string"){let l=s;s=l.message,o=o!=null?o:l.name}let a=typeof o!="undefined"?`${o}: ${s}`:s;i.reportWarning(z.UNNAMED,a)};try{await r(i)}catch(s){i.reportExceptionOnce(s)}finally{await i.finalize(),process.emitWarning=n}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){this.cacheHitCount+=1}reportCacheMiss(e,r){this.lastCacheMiss=e,this.cacheMissCount+=1,typeof r!="undefined"&&!this.configuration.get("preferAggregateCacheInfo")&&this.reportInfo(z.FETCH_NOT_CACHED,r)}startTimerSync(e,r,i){let n=typeof r=="function"?{}:r,s=typeof r=="function"?r:i,o={committed:!1,action:()=>{this.reportInfo(null,`\u250C ${e}`),this.indent+=1,SA!==null&&!this.json&&this.includeInfos&&this.stdout.write(SA.start(e))}};n.skipIfEmpty?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(this.indent-=1,SA!==null&&!this.json&&this.includeInfos&&this.stdout.write(SA.end(e)),this.configuration.get("enableTimers")&&l-a>200?this.reportInfo(null,`\u2514 Completed in ${Ve(this.configuration,l-a,Le.DURATION)}`):this.reportInfo(null,"\u2514 Completed"))}}async startTimerPromise(e,r,i){let n=typeof r=="function"?{}:r,s=typeof r=="function"?r:i,o={committed:!1,action:()=>{this.reportInfo(null,`\u250C ${e}`),this.indent+=1,SA!==null&&!this.json&&this.includeInfos&&this.stdout.write(SA.start(e))}};n.skipIfEmpty?this.uncommitted.add(o):(o.action(),o.committed=!0);let a=Date.now();try{return await s()}catch(l){throw this.reportExceptionOnce(l),l}finally{let l=Date.now();this.uncommitted.delete(o),o.committed&&(this.indent-=1,SA!==null&&!this.json&&this.includeInfos&&this.stdout.write(SA.end(e)),this.configuration.get("enableTimers")&&l-a>200?this.reportInfo(null,`\u2514 Completed in ${Ve(this.configuration,l-a,Le.DURATION)}`):this.reportInfo(null,"\u2514 Completed"))}}async startCacheReport(e){let r=this.configuration.get("preferAggregateCacheInfo")?{cacheHitCount:this.cacheHitCount,cacheMissCount:this.cacheMissCount}:null;try{return await e()}catch(i){throw this.reportExceptionOnce(i),i}finally{r!==null&&this.reportCacheChanges(r)}}reportSeparator(){this.indent===0?this.writeLineWithForgettableReset(""):this.reportInfo(null,"")}reportInfo(e,r){if(!this.includeInfos)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"",s=`${Ve(this.configuration,"\u27A4","blueBright")} ${n}${this.formatIndent()}${r}`;if(this.json)this.reportJson({type:"info",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r});else if(this.forgettableNames.has(e))if(this.forgettableLines.push(s),this.forgettableLines.length>this.forgettableBufferSize){for(;this.forgettableLines.length>this.forgettableBufferSize;)this.forgettableLines.shift();this.writeLines(this.forgettableLines,{truncate:!0})}else this.writeLine(s,{truncate:!0});else this.writeLineWithForgettableReset(s)}reportWarning(e,r){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"warning",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r}):this.writeLineWithForgettableReset(`${Ve(this.configuration,"\u27A4","yellowBright")} ${n}${this.formatIndent()}${r}`)}reportError(e,r){this.errorCount+=1,this.commit();let i=this.formatNameWithHyperlink(e),n=i?`${i}: `:"";this.json?this.reportJson({type:"error",name:e,displayName:this.formatName(e),indent:this.formatIndent(),data:r}):this.writeLineWithForgettableReset(`${Ve(this.configuration,"\u27A4","redBright")} ${n}${this.formatIndent()}${r}`,{truncate:!1})}reportProgress(e){let r=!1,i=Promise.resolve().then(async()=>{let s={progress:0,title:void 0};this.progress.set(e,{definition:s,lastScaledSize:-1}),this.refreshProgress(-1);for await(let{progress:o,title:a}of e)r||s.progress===o&&s.title===a||(s.progress=o,s.title=a,this.refreshProgress());n()}),n=()=>{r||(r=!0,this.progress.delete(e),this.refreshProgress(1))};return _(P({},i),{stop:n})}reportJson(e){this.json&&this.writeLineWithForgettableReset(`${JSON.stringify(e)}`)}async finalize(){if(!this.includeFooter)return;let e="";this.errorCount>0?e="Failed with errors":this.warningCount>0?e="Done with warnings":e="Done";let r=Ve(this.configuration,Date.now()-this.startTime,Le.DURATION),i=this.configuration.get("enableTimers")?`${e} in ${r}`:e;this.errorCount>0?this.reportError(z.UNNAMED,i):this.warningCount>0?this.reportWarning(z.UNNAMED,i):this.reportInfo(z.UNNAMED,i)}writeLine(e,{truncate:r}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(e,{truncate:r})} -`),this.writeProgress()}writeLineWithForgettableReset(e,{truncate:r}={}){this.forgettableLines=[],this.writeLine(e,{truncate:r})}writeLines(e,{truncate:r}={}){this.clearProgress({delta:e.length});for(let i of e)this.stdout.write(`${this.truncate(i,{truncate:r})} -`);this.writeProgress()}reportCacheChanges({cacheHitCount:e,cacheMissCount:r}){let i=this.cacheHitCount-e,n=this.cacheMissCount-r;if(i===0&&n===0)return;let s="";this.cacheHitCount>1?s+=`${this.cacheHitCount} packages were already cached`:this.cacheHitCount===1?s+=" - one package was already cached":s+="No packages were cached",this.cacheHitCount>0?this.cacheMissCount>1?s+=`, ${this.cacheMissCount} had to be fetched`:this.cacheMissCount===1&&(s+=`, one had to be fetched (${lt(this.configuration,this.lastCacheMiss)})`):this.cacheMissCount>1?s+=` - ${this.cacheMissCount} packages had to be fetched`:this.cacheMissCount===1&&(s+=` - one package had to be fetched (${lt(this.configuration,this.lastCacheMiss)})`),this.reportInfo(z.FETCH_NOT_CACHED,s)}commit(){let e=this.uncommitted;this.uncommitted=new Set;for(let r of e)r.committed=!0,r.action()}clearProgress({delta:e=0,clear:r=!1}){!this.configuration.get("enableProgressBars")||this.json||this.progress.size+e>0&&(this.stdout.write(`[${this.progress.size+e}A`),(e>0||r)&&this.stdout.write(""))}writeProgress(){if(!this.configuration.get("enableProgressBars")||this.json||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let e=Date.now();e-this.progressTime>r9&&(this.progressFrame=(this.progressFrame+1)%t9.length,this.progressTime=e);let r=t9[this.progressFrame];for(let i of this.progress.values()){let n=this.progressStyle.chars[0].repeat(i.lastScaledSize),s=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-i.lastScaledSize),o=this.formatName(null),a=o?`${o}: `:"";this.stdout.write(`${Ve(this.configuration,"\u27A4","blueBright")} ${a}${r} ${n}${s} -`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress()},r9)}refreshProgress(e=0){let r=!1;if(this.progress.size===0)r=!0;else for(let i of this.progress.values()){let n=Math.trunc(this.progressMaxScaledSize*i.definition.progress),s=i.lastScaledSize;if(i.lastScaledSize=n,n!==s){r=!0;break}}r&&(this.clearProgress({delta:e}),this.writeProgress())}truncate(e,{truncate:r}={}){return this.configuration.get("enableProgressBars")||(r=!1),typeof r=="undefined"&&(r=this.configuration.get("preferTruncatedLines")),r&&(e=(0,e9.default)(e,0,process.stdout.columns-1)),e}formatName(e){return n9(e,{configuration:this.configuration,json:this.json})}formatNameWithHyperlink(e){return eD(e,{configuration:this.configuration,json:this.json})}formatIndent(){return"\u2502 ".repeat(this.indent)}};var Zr="3.1.1";var tn;(function(n){n.Yarn1="Yarn Classic",n.Yarn2="Yarn",n.Npm="npm",n.Pnpm="pnpm"})(tn||(tn={}));async function ba(t,e,r,i=[]){if(process.platform==="win32"){let n=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${i.map(s=>`"${s.replace('"','""')}"`).join(" ")} %*`;await T.writeFilePromise(v.format({dir:t,name:e,ext:".cmd"}),n)}await T.writeFilePromise(v.join(t,e),`#!/bin/sh -exec "${r}" ${i.map(n=>`'${n.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" -`,{mode:493})}async function a9(t){let e=await Ze.tryFind(t);if(e==null?void 0:e.packageManager){let i=Qy(e.packageManager);if(i==null?void 0:i.name){let n=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[s]=i.reference.split(".");switch(i.name){case"yarn":return{packageManager:Number(s)===1?tn.Yarn1:tn.Yarn2,reason:n};case"npm":return{packageManager:tn.Npm,reason:n};case"pnpm":return{packageManager:tn.Pnpm,reason:n}}}}let r;try{r=await T.readFilePromise(v.join(t,wt.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:tn.Yarn2,reason:'"__metadata" key found in yarn.lock'}:{packageManager:tn.Yarn1,reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:T.existsSync(v.join(t,"package-lock.json"))?{packageManager:tn.Npm,reason:`found npm's "package-lock.json" lockfile`}:T.existsSync(v.join(t,"pnpm-lock.yaml"))?{packageManager:tn.Pnpm,reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function Vp({project:t,locator:e,binFolder:r,lifecycleScript:i}){var l,c;let n={};for(let[u,g]of Object.entries(process.env))typeof g!="undefined"&&(n[u.toLowerCase()!=="path"?u:"PATH"]=g);let s=M.fromPortablePath(r);n.BERRY_BIN_FOLDER=M.fromPortablePath(s);let o=process.env.COREPACK_ROOT?M.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([ba(r,"node",process.execPath),...Zr!==null?[ba(r,"run",process.execPath,[o,"run"]),ba(r,"yarn",process.execPath,[o]),ba(r,"yarnpkg",process.execPath,[o]),ba(r,"node-gyp",process.execPath,[o,"run","--top-level","node-gyp"])]:[]]),t&&(n.INIT_CWD=M.fromPortablePath(t.configuration.startingCwd),n.PROJECT_CWD=M.fromPortablePath(t.cwd)),n.PATH=n.PATH?`${s}${M.delimiter}${n.PATH}`:`${s}`,n.npm_execpath=`${s}${M.sep}yarn`,n.npm_node_execpath=`${s}${M.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let u=t.tryWorkspaceByLocator(e),g=u?(l=u.manifest.version)!=null?l:"":(c=t.storedPackages.get(e.locatorHash).version)!=null?c:"";n.npm_package_name=St(e),n.npm_package_version=g}let a=Zr!==null?`yarn/${Zr}`:`yarn/${mu("@yarnpkg/core").version}-core`;return n.npm_config_user_agent=`${a} npm/? node/${process.versions.node} ${process.platform} ${process.arch}`,i&&(n.npm_lifecycle_event=i),t&&await t.configuration.triggerHook(u=>u.setupScriptEnvironment,t,n,async(u,g,f)=>await ba(r,kr(u),g,f)),n}var KFe=2,UFe=(0,o9.default)(KFe);async function HFe(t,e,{configuration:r,report:i,workspace:n=null,locator:s=null}){await UFe(async()=>{await T.mktempPromise(async o=>{let a=v.join(o,"pack.log"),l=null,{stdout:c,stderr:u}=r.getSubprocessStreams(a,{prefix:M.fromPortablePath(t),report:i}),g=s&&Io(s)?lp(s):s,f=g?is(g):"an external project";c.write(`Packing ${f} from sources -`);let h=await a9(t),p;h!==null?(c.write(`Using ${h.packageManager} for bootstrap. Reason: ${h.reason} - -`),p=h.packageManager):(c.write(`No package manager configuration detected; defaulting to Yarn - -`),p=tn.Yarn2),await T.mktempPromise(async d=>{let m=await Vp({binFolder:d}),B=new Map([[tn.Yarn1,async()=>{let R=n!==null?["workspace",n]:[],H=await to("yarn",["set","version","classic","--only-if-needed"],{cwd:t,env:m,stdin:l,stdout:c,stderr:u,end:Pn.ErrorCode});if(H.code!==0)return H.code;await T.appendFilePromise(v.join(t,".npmignore"),`/.yarn -`),c.write(` -`);let L=await to("yarn",["install"],{cwd:t,env:m,stdin:l,stdout:c,stderr:u,end:Pn.ErrorCode});if(L.code!==0)return L.code;c.write(` -`);let K=await to("yarn",[...R,"pack","--filename",M.fromPortablePath(e)],{cwd:t,env:m,stdin:l,stdout:c,stderr:u});return K.code!==0?K.code:0}],[tn.Yarn2,async()=>{let R=n!==null?["workspace",n]:[];m.YARN_ENABLE_INLINE_BUILDS="1";let H=v.join(t,wt.lockfile);await T.existsPromise(H)||await T.writeFilePromise(H,"");let L=await to("yarn",[...R,"pack","--install-if-needed","--filename",M.fromPortablePath(e)],{cwd:t,env:m,stdin:l,stdout:c,stderr:u});return L.code!==0?L.code:0}],[tn.Npm,async()=>{if(n!==null){let A=new cc.PassThrough,V=Cu(A);A.pipe(c,{end:!1});let W=await to("npm",["--version"],{cwd:t,env:m,stdin:l,stdout:A,stderr:u,end:Pn.Never});if(A.end(),W.code!==0)return c.end(),u.end(),W.code;let X=(await V).toString().trim();if(!lc(X,">=7.x")){let F=Eo(null,"npm"),D=Yt(F,X),he=Yt(F,">=7.x");throw new Error(`Workspaces aren't supported by ${Xt(r,D)}; please upgrade to ${Xt(r,he)} (npm has been detected as the primary package manager for ${Ve(r,t,Le.PATH)})`)}}let R=n!==null?["--workspace",n]:[];delete m.npm_config_user_agent;let H=await to("npm",["install"],{cwd:t,env:m,stdin:l,stdout:c,stderr:u,end:Pn.ErrorCode});if(H.code!==0)return H.code;let L=new cc.PassThrough,K=Cu(L);L.pipe(c);let J=await to("npm",["pack","--silent",...R],{cwd:t,env:m,stdin:l,stdout:L,stderr:u});if(J.code!==0)return J.code;let ne=(await K).toString().trim().replace(/^.*\n/s,""),q=v.resolve(t,M.toPortablePath(ne));return await T.renamePromise(q,e),0}]]).get(p);if(typeof B=="undefined")throw new Error("Assertion failed: Unsupported workflow");let b=await B();if(!(b===0||typeof b=="undefined"))throw T.detachTemp(o),new nt(z.PACKAGE_PREPARATION_FAILED,`Packing the package failed (exit code ${b}, logs can be found here: ${Ve(r,a,Le.PATH)})`)})})})}async function GFe(t,e,{project:r}){let i=r.tryWorkspaceByLocator(t);if(i!==null)return tD(i,e);let n=r.storedPackages.get(t.locatorHash);if(!n)throw new Error(`Package for ${lt(r.configuration,t)} not found in the project`);return await Jn.openPromise(async s=>{let o=r.configuration,a=r.configuration.getLinkers(),l={project:r,report:new Fe({stdout:new cc.PassThrough,configuration:o})},c=a.find(h=>h.supportsPackage(n,l));if(!c)throw new Error(`The package ${lt(r.configuration,n)} isn't supported by any of the available linkers`);let u=await c.findPackageLocation(n,l),g=new Ft(u,{baseFs:s});return(await Ze.find(Se.dot,{baseFs:g})).scripts.has(e)},{libzip:await $i()})}async function Uw(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await T.mktempPromise(async l=>{let{manifest:c,env:u,cwd:g}=await A9(t,{project:n,binFolder:l,cwd:i,lifecycleScript:e}),f=c.scripts.get(e);if(typeof f=="undefined")return 1;let h=async()=>await Fw(f,r,{cwd:g,env:u,stdin:s,stdout:o,stderr:a});return await(await n.configuration.reduceHook(d=>d.wrapScriptExecution,h,n,t,e,{script:f,args:r,cwd:g,env:u,stdin:s,stdout:o,stderr:a}))()})}async function rD(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a}){return await T.mktempPromise(async l=>{let{env:c,cwd:u}=await A9(t,{project:n,binFolder:l,cwd:i});return await Fw(e,r,{cwd:u,env:c,stdin:s,stdout:o,stderr:a})})}async function jFe(t,{binFolder:e,cwd:r,lifecycleScript:i}){let n=await Vp({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:i});return await Promise.all(Array.from(await l9(t),([s,[,o]])=>ba(e,kr(s),process.execPath,[o]))),typeof r=="undefined"&&(r=v.dirname(await T.realpathPromise(v.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:n,cwd:r}}async function A9(t,{project:e,binFolder:r,cwd:i,lifecycleScript:n}){let s=e.tryWorkspaceByLocator(t);if(s!==null)return jFe(s,{binFolder:r,cwd:i,lifecycleScript:n});let o=e.storedPackages.get(t.locatorHash);if(!o)throw new Error(`Package for ${lt(e.configuration,t)} not found in the project`);return await Jn.openPromise(async a=>{let l=e.configuration,c=e.configuration.getLinkers(),u={project:e,report:new Fe({stdout:new cc.PassThrough,configuration:l})},g=c.find(m=>m.supportsPackage(o,u));if(!g)throw new Error(`The package ${lt(e.configuration,o)} isn't supported by any of the available linkers`);let f=await Vp({project:e,locator:t,binFolder:r,lifecycleScript:n});await Promise.all(Array.from(await Hw(t,{project:e}),([m,[,I]])=>ba(r,kr(m),process.execPath,[I])));let h=await g.findPackageLocation(o,u),p=new Ft(h,{baseFs:a}),d=await Ze.find(Se.dot,{baseFs:p});return typeof i=="undefined"&&(i=h),{manifest:d,binFolder:r,env:f,cwd:i}},{libzip:await $i()})}async function c9(t,e,r,{cwd:i,stdin:n,stdout:s,stderr:o}){return await Uw(t.anchoredLocator,e,r,{cwd:i,project:t.project,stdin:n,stdout:s,stderr:o})}function tD(t,e){return t.manifest.scripts.has(e)}async function u9(t,e,{cwd:r,report:i}){let{configuration:n}=t.project,s=null;await T.mktempPromise(async o=>{let a=v.join(o,`${e}.log`),l=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${M.fromPortablePath(t.cwd)}") -`,{stdout:c,stderr:u}=n.getSubprocessStreams(a,{report:i,prefix:lt(n,t.anchoredLocator),header:l});i.reportInfo(z.LIFECYCLE_SCRIPT,`Calling the "${e}" lifecycle script`);let g=await c9(t,e,[],{cwd:r,stdin:s,stdout:c,stderr:u});if(c.end(),u.end(),g!==0)throw T.detachTemp(o),new nt(z.LIFECYCLE_SCRIPT,`${(0,s9.default)(e)} script failed (exit code ${Ve(n,g,Le.NUMBER)}, logs can be found here: ${Ve(n,a,Le.PATH)}); run ${Ve(n,`yarn ${e}`,Le.CODE)} to investigate`)})}async function YFe(t,e,r){tD(t,e)&&await u9(t,e,r)}async function Hw(t,{project:e}){let r=e.configuration,i=new Map,n=e.storedPackages.get(t.locatorHash);if(!n)throw new Error(`Package for ${lt(r,t)} not found in the project`);let s=new cc.Writable,o=r.getLinkers(),a={project:e,report:new Fe({configuration:r,stdout:s})},l=new Set([t.locatorHash]);for(let u of n.dependencies.values()){let g=e.storedResolutions.get(u.descriptorHash);if(!g)throw new Error(`Assertion failed: The resolution (${Xt(r,u)}) should have been registered`);l.add(g)}let c=await Promise.all(Array.from(l,async u=>{let g=e.storedPackages.get(u);if(!g)throw new Error(`Assertion failed: The package (${u}) should have been registered`);if(g.bin.size===0)return kl.skip;let f=o.find(p=>p.supportsPackage(g,a));if(!f)return kl.skip;let h=null;try{h=await f.findPackageLocation(g,a)}catch(p){if(p.code==="LOCATOR_NOT_INSTALLED")return kl.skip;throw p}return{dependency:g,packageLocation:h}}));for(let u of c){if(u===kl.skip)continue;let{dependency:g,packageLocation:f}=u;for(let[h,p]of g.bin)i.set(h,[g,M.fromPortablePath(v.resolve(f,p))])}return i}async function l9(t){return await Hw(t.anchoredLocator,{project:t.project})}async function g9(t,e,r,{cwd:i,project:n,stdin:s,stdout:o,stderr:a,nodeArgs:l=[],packageAccessibleBinaries:c}){c!=null||(c=await Hw(t,{project:n}));let u=c.get(e);if(!u)throw new Error(`Binary not found (${e}) for ${lt(n.configuration,t)}`);return await T.mktempPromise(async g=>{let[,f]=u,h=await Vp({project:n,locator:t,binFolder:g});await Promise.all(Array.from(c,([d,[,m]])=>ba(h.BERRY_BIN_FOLDER,kr(d),process.execPath,[m])));let p;try{p=await to(process.execPath,[...l,f,...r],{cwd:i,env:h,stdin:s,stdout:o,stderr:a})}finally{await T.removePromise(h.BERRY_BIN_FOLDER)}return p.code})}async function qFe(t,e,r,{cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a}){return await g9(t.anchoredLocator,e,r,{project:t.project,cwd:i,stdin:n,stdout:s,stderr:o,packageAccessibleBinaries:a})}var Ai={};it(Ai,{convertToZip:()=>lTe,extractArchiveTo:()=>uTe,makeArchiveFromDirectory:()=>ATe});var d_=ie(require("stream")),C_=ie(Z7());var u_=ie(require("os")),g_=ie(c_()),f_=ie(require("worker_threads")),IR=class{constructor(e){this.source=e;this.pool=[];this.queue=new g_.default({concurrency:Math.max(1,(0,u_.cpus)().length)});let r=setTimeout(()=>{if(!(this.queue.size!==0||this.queue.pending!==0)){for(let i of this.pool)i.terminate();this.pool=[]}},1e3).unref();this.queue.on("idle",()=>{r.refresh()})}run(e){return this.queue.add(()=>{var i;let r=(i=this.pool.pop())!=null?i:new f_.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return r.ref(),new Promise((n,s)=>{let o=a=>{a!==0&&s(new Error(`Worker exited with code ${a}`))};r.once("message",a=>{this.pool.push(r),r.unref(),r.off("error",s),r.off("exit",o),n(a)}),r.once("error",s),r.once("exit",o),r.postMessage(e)})})}};var m_=ie(p_());async function ATe(t,{baseFs:e=new Wt,prefixPath:r=Se.root,compressionLevel:i,inMemory:n=!1}={}){let s=await $i(),o;if(n)o=new Jr(null,{libzip:s,level:i});else{let l=await T.mktempPromise(),c=v.join(l,"archive.zip");o=new Jr(c,{create:!0,libzip:s,level:i})}let a=v.resolve(Se.root,r);return await o.copyPromise(a,t,{baseFs:e,stableTime:!0,stableSort:!0}),o}var E_;async function lTe(t,e){let r=await T.mktempPromise(),i=v.join(r,"archive.zip");return E_||(E_=new IR((0,m_.getContent)())),await E_.run({tmpFile:i,tgz:t,opts:e}),new Jr(i,{libzip:await $i(),level:e.compressionLevel})}async function*cTe(t){let e=new C_.default.Parse,r=new d_.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",i=>{r.write(i)}),e.on("error",i=>{r.destroy(i)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let i of r){let n=i;yield n,n.resume()}}async function uTe(t,e,{stripComponents:r=0,prefixPath:i=Se.dot}={}){var s,o;function n(a){if(a.path[0]==="/")return!0;let l=a.path.split(/\//g);return!!(l.some(c=>c==="..")||l.length<=r)}for await(let a of cTe(t)){if(n(a))continue;let l=v.normalize(M.toPortablePath(a.path)).replace(/\/$/,"").split(/\//g);if(l.length<=r)continue;let c=l.slice(r).join("/"),u=v.join(i,c),g=420;switch((a.type==="Directory"||(((s=a.mode)!=null?s:0)&73)!=0)&&(g|=73),a.type){case"Directory":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[mr.SAFE_TIME,mr.SAFE_TIME]}),e.mkdirSync(u,{mode:g}),e.utimesSync(u,mr.SAFE_TIME,mr.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[mr.SAFE_TIME,mr.SAFE_TIME]}),e.writeFileSync(u,await Cu(a),{mode:g}),e.utimesSync(u,mr.SAFE_TIME,mr.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(v.dirname(u),{chmod:493,utimes:[mr.SAFE_TIME,mr.SAFE_TIME]}),e.symlinkSync(a.linkpath,u),(o=e.lutimesSync)==null||o.call(e,u,mr.SAFE_TIME,mr.SAFE_TIME);break}}return e}var Hs={};it(Hs,{emitList:()=>gTe,emitTree:()=>b_,treeNodeToJson:()=>Q_,treeNodeToTreeify:()=>B_});var w_=ie(y_());function B_(t,{configuration:e}){let r={},i=(n,s)=>{let o=Array.isArray(n)?n.entries():Object.entries(n);for(let[a,{label:l,value:c,children:u}]of o){let g=[];typeof l!="undefined"&&g.push(Py(e,l,Gl.BOLD)),typeof c!="undefined"&&g.push(Ve(e,c[0],c[1])),g.length===0&&g.push(Py(e,`${a}`,Gl.BOLD));let f=g.join(": "),h=s[f]={};typeof u!="undefined"&&i(u,h)}};if(typeof t.children=="undefined")throw new Error("The root node must only contain children");return i(t.children,r),r}function Q_(t){let e=r=>{var s;if(typeof r.children=="undefined"){if(typeof r.value=="undefined")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Uu(r.value[0],r.value[1])}let i=Array.isArray(r.children)?r.children.entries():Object.entries((s=r.children)!=null?s:{}),n=Array.isArray(r.children)?[]:{};for(let[o,a]of i)n[o]=e(a);return typeof r.value=="undefined"?n:{value:Uu(r.value[0],r.value[1]),children:n}};return e(t)}function gTe(t,{configuration:e,stdout:r,json:i}){let n=t.map(s=>({value:s}));b_({children:n},{configuration:e,stdout:r,json:i})}function b_(t,{configuration:e,stdout:r,json:i,separators:n=0}){var o;if(i){let a=Array.isArray(t.children)?t.children.values():Object.values((o=t.children)!=null?o:{});for(let l of a)r.write(`${JSON.stringify(Q_(l))} -`);return}let s=(0,w_.asTree)(B_(t,{configuration:e}),!1,!1);if(n>=1&&(s=s.replace(/^([├└]─)/gm,`\u2502 -$1`).replace(/^│\n/,"")),n>=2)for(let a=0;a<2;++a)s=s.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 -$2`).replace(/^│\n/,"");if(n>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(s)}var v_=ie(require("crypto")),BR=ie(require("fs"));var fTe=8,Qt=class{constructor(e,{configuration:r,immutable:i=r.get("enableImmutableCache"),check:n=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,v_.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=i,this.check=n;let s=r.get("cacheKeyOverride");if(s!==null)this.cacheKey=`${s}`;else{let o=r.get("compressionLevel"),a=o!==pl?`c${o}`:"";this.cacheKey=[fTe,a].join("")}}static async find(e,{immutable:r,check:i}={}){let n=new Qt(e.get("cacheFolder"),{configuration:e,immutable:r,check:i});return await n.setup(),n}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${Mu(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let n=hTe(r).slice(0,10);return`${Mu(e)}-${n}.zip`}getLocatorPath(e,r,i={}){var s;return this.mirrorCwd===null||((s=i.unstablePackages)==null?void 0:s.has(e.locatorHash))?v.resolve(this.cwd,this.getVersionFilename(e)):r===null||QR(r)!==this.cacheKey?null:v.resolve(this.cwd,this.getChecksumFilename(e,r))}getLocatorMirrorPath(e){let r=this.mirrorCwd;return r!==null?v.resolve(r,this.getVersionFilename(e)):null}async setup(){if(!this.configuration.get("enableGlobalCache"))if(this.immutable){if(!await T.existsPromise(this.cwd))throw new nt(z.IMMUTABLE_CACHE,"Cache path does not exist.")}else{await T.mkdirPromise(this.cwd,{recursive:!0});let e=v.resolve(this.cwd,".gitignore");await T.changeFilePromise(e,`/.gitignore -*.flock -*.tmp -`)}(this.mirrorCwd||!this.immutable)&&await T.mkdirPromise(this.mirrorCwd||this.cwd,{recursive:!0})}async fetchPackageFromCache(e,r,a){var l=a,{onHit:i,onMiss:n,loader:s}=l,o=qr(l,["onHit","onMiss","loader"]);var A;let c=this.getLocatorMirrorPath(e),u=new Wt,g=()=>{let V=new Jr(null,{libzip:H}),W=v.join(Se.root,Lx(e));return V.mkdirSync(W,{recursive:!0}),V.writeJsonSync(v.join(W,wt.manifest),{name:St(e),mocked:!0}),V},f=async(V,W=null)=>{let X=!o.skipIntegrityCheck||!r?`${this.cacheKey}/${await Ey(V)}`:r;if(W!==null){let F=!o.skipIntegrityCheck||!r?`${this.cacheKey}/${await Ey(W)}`:r;if(X!==F)throw new nt(z.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}if(r!==null&&X!==r){let F;switch(this.check?F="throw":QR(r)!==QR(X)?F="update":F=this.configuration.get("checksumBehavior"),F){case"ignore":return r;case"update":return X;default:case"throw":throw new nt(z.CACHE_CHECKSUM_MISMATCH,"The remote archive doesn't match the expected checksum")}}return X},h=async V=>{if(!s)throw new Error(`Cache check required but no loader configured for ${lt(this.configuration,e)}`);let W=await s(),X=W.getRealPath();return W.saveAndClose(),await T.chmodPromise(X,420),await f(V,X)},p=async()=>{if(c===null||!await T.existsPromise(c)){let V=await s(),W=V.getRealPath();return V.saveAndClose(),{source:"loader",path:W}}return{source:"mirror",path:c}},d=async()=>{if(!s)throw new Error(`Cache entry required but missing for ${lt(this.configuration,e)}`);if(this.immutable)throw new nt(z.IMMUTABLE_CACHE,`Cache entry required but missing for ${lt(this.configuration,e)}`);let{path:V,source:W}=await p(),X=await f(V),F=this.getLocatorPath(e,X,o);if(!F)throw new Error("Assertion failed: Expected the cache path to be available");let D=[];W!=="mirror"&&c!==null&&D.push(async()=>{let pe=`${c}${this.cacheId}`;await T.copyFilePromise(V,pe,BR.default.constants.COPYFILE_FICLONE),await T.chmodPromise(pe,420),await T.renamePromise(pe,c)}),(!o.mirrorWriteOnly||c===null)&&D.push(async()=>{let pe=`${F}${this.cacheId}`;await T.copyFilePromise(V,pe,BR.default.constants.COPYFILE_FICLONE),await T.chmodPromise(pe,420),await T.renamePromise(pe,F)});let he=o.mirrorWriteOnly&&c!=null?c:F;return await Promise.all(D.map(pe=>pe())),[!1,he,X]},m=async()=>{let W=(async()=>{var Ne;let X=this.getLocatorPath(e,r,o),F=X!==null?await u.existsPromise(X):!1,D=!!((Ne=o.mockedPackages)==null?void 0:Ne.has(e.locatorHash))&&(!this.check||!F),he=D||F,pe=he?i:n;if(pe&&pe(),he){let Pe=null,qe=X;return D||(Pe=this.check?await h(qe):await f(qe)),[D,qe,Pe]}else return d()})();this.mutexes.set(e.locatorHash,W);try{return await W}finally{this.mutexes.delete(e.locatorHash)}};for(let V;V=this.mutexes.get(e.locatorHash);)await V;let[I,B,b]=await m();this.markedFiles.add(B);let R,H=await $i(),L=I?()=>g():()=>new Jr(B,{baseFs:u,libzip:H,readOnly:!0}),K=new oh(()=>Mv(()=>R=L(),V=>`Failed to open the cache entry for ${lt(this.configuration,e)}: ${V}`),v),J=new Xo(B,{baseFs:K,pathUtils:v}),ne=()=>{R==null||R.discardAndClose()},q=((A=o.unstablePackages)==null?void 0:A.has(e.locatorHash))?null:b;return[J,ne,q]}};function QR(t){let e=t.indexOf("/");return e!==-1?t.slice(0,e):null}function hTe(t){let e=t.indexOf("/");return e!==-1?t.slice(e+1):t}var F_=ie(x_()),NB=ie(ml());var N_=ie(Wp()),kR=ie(require("stream"));var k_={hooks:{reduceDependency:(t,e,r,i,{resolver:n,resolveOptions:s})=>{for(let{pattern:o,reference:a}of e.topLevelWorkspace.manifest.resolutions){if(o.from&&o.from.fullName!==St(r)||o.from&&o.from.description&&o.from.description!==r.reference||o.descriptor.fullName!==St(t)||o.descriptor.description&&o.descriptor.description!==t.range)continue;return n.bindDescriptor(Yt(t,a),e.topLevelWorkspace.anchoredLocator,s)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let i=hp(t.configuration,r);await t.configuration.triggerHook(n=>n.validateWorkspace,r,{reportWarning:(n,s)=>e.reportWarning(n,`${i}: ${s}`),reportError:(n,s)=>e.reportError(n,`${i}: ${s}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let i of r.errors)e.reportWarning(z.INVALID_MANIFEST,i.message)}}};var vR=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let i=this.fetchers.find(n=>n.supports(e,r));return i||null}getFetcher(e,r){let i=this.fetchers.find(n=>n.supports(e,r));if(!i)throw new nt(z.FETCHER_NOT_FOUND,`${lt(r.project.configuration,e)} isn't supported by any available fetcher`);return i}};var pd=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,i){return this.getResolverByDescriptor(e,i).bindDescriptor(e,r,i)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,i){return await this.getResolverByDescriptor(e,i).getCandidates(e,r,i)}async getSatisfying(e,r,i){return this.getResolverByDescriptor(e,i).getSatisfying(e,r,i)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let i=this.resolvers.find(n=>n.supportsDescriptor(e,r));return i||null}getResolverByDescriptor(e,r){let i=this.resolvers.find(n=>n.supportsDescriptor(e,r));if(!i)throw new Error(`${Xt(r.project.configuration,e)} isn't supported by any available resolver`);return i}tryResolverByLocator(e,r){let i=this.resolvers.find(n=>n.supportsLocator(e,r));return i||null}getResolverByLocator(e,r){let i=this.resolvers.find(n=>n.supportsLocator(e,r));if(!i)throw new Error(`${lt(r.project.configuration,e)} isn't supported by any available resolver`);return i}};var P_=ie(Or());var Rg=/^(?!v)[a-z0-9._-]+$/i,SR=class{supportsDescriptor(e,r){return!!(Us(e.range)||Rg.test(e.range))}supportsLocator(e,r){return!!(P_.default.valid(e.reference)||Rg.test(e.reference))}shouldPersistResolution(e,r){return r.resolver.shouldPersistResolution(this.forwardLocator(e,r),r)}bindDescriptor(e,r,i){return i.resolver.bindDescriptor(this.forwardDescriptor(e,i),r,i)}getResolutionDependencies(e,r){return r.resolver.getResolutionDependencies(this.forwardDescriptor(e,r),r)}async getCandidates(e,r,i){return await i.resolver.getCandidates(this.forwardDescriptor(e,i),r,i)}async getSatisfying(e,r,i){return await i.resolver.getSatisfying(this.forwardDescriptor(e,i),r,i)}async resolve(e,r){let i=await r.resolver.resolve(this.forwardLocator(e,r),r);return op(i,e)}forwardDescriptor(e,r){return Yt(e,`${r.project.configuration.get("defaultProtocol")}${e.range}`)}forwardLocator(e,r){return Vi(e,`${r.project.configuration.get("defaultProtocol")}${e.reference}`)}};var dd=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=Vi(e,n);return r.fetcher.getLocalPath(s,r)}async fetch(e,r){let i=e.reference.indexOf("#");if(i===-1)throw new Error("Invalid virtual package reference");let n=e.reference.slice(i+1),s=Vi(e,n),o=await r.fetcher.fetch(s,r);return await this.ensureVirtualLink(e,o,r)}getLocatorFilename(e){return Mu(e)}async ensureVirtualLink(e,r,i){let n=r.packageFs.getRealPath(),s=i.project.configuration.get("virtualFolder"),o=this.getLocatorFilename(e),a=Pr.makeVirtualPath(s,o,n),l=new Xo(a,{baseFs:r.packageFs,pathUtils:v});return _(P({},r),{packageFs:l})}};var Fg=class{static isVirtualDescriptor(e){return!!e.range.startsWith(Fg.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(Fg.protocol)}supportsDescriptor(e,r){return Fg.isVirtualDescriptor(e)}supportsLocator(e,r){return Fg.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,i){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,i){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},FB=Fg;FB.protocol="virtual:";var xR=class{supports(e){return!!e.reference.startsWith(Yr.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let i=this.getWorkspace(e,r).cwd;return{packageFs:new Ft(i),prefixPath:Se.dot,localPath:i}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(Yr.protocol.length))}};var D_=ie(require("module"));function R_(){return new Set(D_.default.builtinModules||Object.keys(process.binding("natives")))}var dTe=new Set(["binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir"]),LB="yarn_",PR=".yarnrc.yml",DR="yarn.lock",CTe="********",ge;(function(u){u.ANY="ANY",u.BOOLEAN="BOOLEAN",u.ABSOLUTE_PATH="ABSOLUTE_PATH",u.LOCATOR="LOCATOR",u.LOCATOR_LOOSE="LOCATOR_LOOSE",u.NUMBER="NUMBER",u.STRING="STRING",u.SECRET="SECRET",u.SHAPE="SHAPE",u.MAP="MAP"})(ge||(ge={}));var ps=Le,RR={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:ge.STRING,default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:ge.ABSOLUTE_PATH,default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:ge.BOOLEAN,default:!1},ignoreCwd:{description:"If true, the `--cwd` flag will be ignored",type:ge.BOOLEAN,default:!1},cacheKeyOverride:{description:"A global cache key override; used only for test purposes",type:ge.STRING,default:null},globalFolder:{description:"Folder where are stored the system-wide settings",type:ge.ABSOLUTE_PATH,default:Rb()},cacheFolder:{description:"Folder where the cache files must be written",type:ge.ABSOLUTE_PATH,default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:ge.NUMBER,values:["mixed",0,1,2,3,4,5,6,7,8,9],default:pl},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:ge.ABSOLUTE_PATH,default:"./.yarn/__virtual__"},lockfileFilename:{description:"Name of the files where the Yarn dependency tree entries must be stored",type:ge.STRING,default:DR},installStatePath:{description:"Path of the file where the install state will be persisted",type:ge.ABSOLUTE_PATH,default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:ge.STRING,default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:ge.STRING,default:TB()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:ge.BOOLEAN,default:!1},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:ge.BOOLEAN,default:xy,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:ge.BOOLEAN,default:Mx,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:ge.BOOLEAN,default:NB.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:ge.BOOLEAN,default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:ge.BOOLEAN,default:!NB.isCI&&process.stdout.isTTY&&process.stdout.columns>22,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:ge.BOOLEAN,default:!0},preferAggregateCacheInfo:{description:"If true, the CLI will only print a one-line report of any cache changes",type:ge.BOOLEAN,default:NB.isCI},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:ge.BOOLEAN,default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:ge.BOOLEAN,default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:ge.STRING,default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:ge.STRING,default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:ge.STRING,default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:ge.BOOLEAN,default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:ge.SHAPE,properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:ge.STRING,isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:ge.STRING,isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:ge.BOOLEAN,default:!0},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:ge.BOOLEAN,default:!0},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:ge.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:ge.STRING,default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:ge.STRING,default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:ge.NUMBER,default:6e4},httpRetry:{description:"Retry times on http failure",type:ge.NUMBER,default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:ge.NUMBER,default:50},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:ge.MAP,valueDefinition:{description:"",type:ge.SHAPE,properties:{caFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:ge.ABSOLUTE_PATH,default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:ge.BOOLEAN,default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:ge.STRING,default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:ge.STRING,default:null}}}},caFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:ge.ABSOLUTE_PATH,default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:ge.BOOLEAN,default:!0},logFilters:{description:"Overrides for log levels",type:ge.SHAPE,isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:ge.STRING,default:void 0},text:{description:"Code of the texts covered by this override",type:ge.STRING,default:void 0},pattern:{description:"Code of the patterns covered by this override",type:ge.STRING,default:void 0},level:{description:"Log level override, set to null to remove override",type:ge.STRING,values:Object.values(Ts),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:ge.BOOLEAN,default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:ge.NUMBER,default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:ge.STRING,default:null},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:ge.BOOLEAN,default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:ge.BOOLEAN,default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:ge.BOOLEAN,default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:ge.STRING,default:"throw"},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:ge.MAP,valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:ge.SHAPE,properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:ge.MAP,valueDefinition:{description:"A range",type:ge.STRING}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:ge.MAP,valueDefinition:{description:"A semver range",type:ge.STRING}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:ge.MAP,valueDefinition:{description:"The peerDependency meta",type:ge.SHAPE,properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:ge.BOOLEAN,default:!1}}}}}}}};function NR(t,e,r,i,n){if(i.isArray||i.type===ge.ANY&&Array.isArray(r))return Array.isArray(r)?r.map((s,o)=>FR(t,`${e}[${o}]`,s,i,n)):String(r).split(/,/).map(s=>FR(t,e,s,i,n));if(Array.isArray(r))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return FR(t,e,r,i,n)}function FR(t,e,r,i,n){var a;switch(i.type){case ge.ANY:return r;case ge.SHAPE:return mTe(t,e,r,i,n);case ge.MAP:return ETe(t,e,r,i,n)}if(r===null&&!i.isNullable&&i.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if((a=i.values)==null?void 0:a.includes(r))return r;let o=(()=>{if(i.type===ge.BOOLEAN&&typeof r!="string")return Hh(r);if(typeof r!="string")throw new Error(`Expected value (${r}) to be a string`);let l=Ov(r,{env:process.env});switch(i.type){case ge.ABSOLUTE_PATH:return v.resolve(n,M.toPortablePath(l));case ge.LOCATOR_LOOSE:return Hl(l,!1);case ge.NUMBER:return parseInt(l);case ge.LOCATOR:return Hl(l);case ge.BOOLEAN:return Hh(l);default:return l}})();if(i.values&&!i.values.includes(o))throw new Error(`Invalid value, expected one of ${i.values.join(", ")}`);return o}function mTe(t,e,r,i,n){if(typeof r!="object"||Array.isArray(r))throw new me(`Object configuration settings "${e}" must be an object`);let s=LR(t,i,{ignoreArrays:!0});if(r===null)return s;for(let[o,a]of Object.entries(r)){let l=`${e}.${o}`;if(!i.properties[o])throw new me(`Unrecognized configuration settings found: ${e}.${o} - run "yarn config -v" to see the list of settings supported in Yarn`);s.set(o,NR(t,l,a,i.properties[o],n))}return s}function ETe(t,e,r,i,n){let s=new Map;if(typeof r!="object"||Array.isArray(r))throw new me(`Map configuration settings "${e}" must be an object`);if(r===null)return s;for(let[o,a]of Object.entries(r)){let l=i.normalizeKeys?i.normalizeKeys(o):o,c=`${e}['${l}']`,u=i.valueDefinition;s.set(l,NR(t,c,a,u,n))}return s}function LR(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case ge.SHAPE:{if(e.isArray&&!r)return[];let i=new Map;for(let[n,s]of Object.entries(e.properties))i.set(n,LR(t,s));return i}break;case ge.MAP:return e.isArray&&!r?[]:new Map;case ge.ABSOLUTE_PATH:return e.default===null?null:t.projectCwd===null?v.isAbsolute(e.default)?v.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(i=>v.resolve(t.projectCwd,i)):v.resolve(t.projectCwd,e.default);default:return e.default}}function MB(t,e,r){if(e.type===ge.SECRET&&typeof t=="string"&&r.hideSecrets)return CTe;if(e.type===ge.ABSOLUTE_PATH&&typeof t=="string"&&r.getNativePaths)return M.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let i=[];for(let n of t)i.push(MB(n,e,r));return i}if(e.type===ge.MAP&&t instanceof Map){let i=new Map;for(let[n,s]of t.entries())i.set(n,MB(s,e.valueDefinition,r));return i}if(e.type===ge.SHAPE&&t instanceof Map){let i=new Map;for(let[n,s]of t.entries()){let o=e.properties[n];i.set(n,MB(s,o,r))}return i}return t}function ITe(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),!!e.startsWith(LB)&&(e=(0,F_.default)(e.slice(LB.length)),t[e]=r);return t}function TB(){let t=`${LB}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return PR}var KA;(function(i){i[i.LOCKFILE=0]="LOCKFILE",i[i.MANIFEST=1]="MANIFEST",i[i.NONE=2]="NONE"})(KA||(KA={}));var Ra=class{constructor(e){this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.packageExtensions=new Map;this.limits=new Map;this.startingCwd=e}static create(e,r,i){let n=new Ra(e);typeof r!="undefined"&&!(r instanceof Map)&&(n.projectCwd=r),n.importSettings(RR);let s=typeof i!="undefined"?i:r instanceof Map?r:new Map;for(let[o,a]of s)n.activatePlugin(o,a);return n}static async find(e,r,{lookup:i=0,strict:n=!0,usePath:s=!1,useRc:o=!0}={}){let a=ITe();delete a.rcFilename;let l=await Ra.findRcFiles(e),c=await Ra.findHomeRcFile();if(c){let I=l.find(B=>B.path===c.path);I?I.strict=!1:l.push(_(P({},c),{strict:!1}))}let u=({ignoreCwd:I,yarnPath:B,ignorePath:b,lockfileFilename:R})=>({ignoreCwd:I,yarnPath:B,ignorePath:b,lockfileFilename:R}),g=L=>{var K=L,{ignoreCwd:I,yarnPath:B,ignorePath:b,lockfileFilename:R}=K,H=qr(K,["ignoreCwd","yarnPath","ignorePath","lockfileFilename"]);return H},f=new Ra(e);f.importSettings(u(RR)),f.useWithSource("",u(a),e,{strict:!1});for(let{path:I,cwd:B,data:b}of l)f.useWithSource(I,u(b),B,{strict:!1});if(s){let I=f.get("yarnPath"),B=f.get("ignorePath");if(I!==null&&!B)return f}let h=f.get("lockfileFilename"),p;switch(i){case 0:p=await Ra.findProjectCwd(e,h);break;case 1:p=await Ra.findProjectCwd(e,null);break;case 2:T.existsSync(v.join(e,"package.json"))?p=v.resolve(e):p=null;break}f.startingCwd=e,f.projectCwd=p,f.importSettings(g(RR));let d=new Map([["@@core",k_]]),m=I=>"default"in I?I.default:I;if(r!==null){for(let R of r.plugins.keys())d.set(R,m(r.modules.get(R)));let I=new Map;for(let R of R_())I.set(R,()=>mu(R));for(let[R,H]of r.modules)I.set(R,()=>H);let B=new Set,b=async(R,H)=>{let{factory:L,name:K}=mu(R);if(B.has(K))return;let J=new Map(I),ne=A=>{if(J.has(A))return J.get(A)();throw new me(`This plugin cannot access the package referenced via ${A} which is neither a builtin, nor an exposed entry`)},q=await du(async()=>m(await L(ne)),A=>`${A} (when initializing ${K}, defined in ${H})`);I.set(K,()=>q),B.add(K),d.set(K,q)};if(a.plugins)for(let R of a.plugins.split(";")){let H=v.resolve(e,M.toPortablePath(R));await b(H,"")}for(let{path:R,cwd:H,data:L}of l)if(!!o&&!!Array.isArray(L.plugins))for(let K of L.plugins){let J=typeof K!="string"?K.path:K,ne=v.resolve(H,M.toPortablePath(J));await b(ne,R)}}for(let[I,B]of d)f.activatePlugin(I,B);f.useWithSource("",g(a),e,{strict:n});for(let{path:I,cwd:B,data:b,strict:R}of l)f.useWithSource(I,g(b),B,{strict:R!=null?R:n});return f.get("enableGlobalCache")&&(f.values.set("cacheFolder",`${f.get("globalFolder")}/cache`),f.sources.set("cacheFolder","")),await f.refreshPackageExtensions(),f}static async findRcFiles(e){let r=TB(),i=[],n=e,s=null;for(;n!==s;){s=n;let o=v.join(s,r);if(T.existsSync(o)){let a=await T.readFilePromise(o,"utf8"),l;try{l=Ii(a)}catch(c){let u="";throw a.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(u=" (in particular, make sure you list the colons after each key name)"),new me(`Parse error when loading ${o}; please check it's proper Yaml${u}`)}i.push({path:o,cwd:s,data:l})}n=v.dirname(s)}return i}static async findHomeRcFile(){let e=TB(),r=uh(),i=v.join(r,e);if(T.existsSync(i)){let n=await T.readFilePromise(i,"utf8"),s=Ii(n);return{path:i,cwd:r,data:s}}return null}static async findProjectCwd(e,r){let i=null,n=e,s=null;for(;n!==s;){if(s=n,T.existsSync(v.join(s,"package.json"))&&(i=s),r!==null){if(T.existsSync(v.join(s,r))){i=s;break}}else if(i!==null)break;n=v.dirname(s)}return i}static async updateConfiguration(e,r){let i=TB(),n=v.join(e,i),s=T.existsSync(n)?Ii(await T.readFilePromise(n,"utf8")):{},o=!1,a;if(typeof r=="function"){try{a=r(s)}catch{a=r({})}if(a===s)return}else{a=s;for(let l of Object.keys(r)){let c=s[l],u=r[l],g;if(typeof u=="function")try{g=u(c)}catch{g=u(void 0)}else g=u;c!==g&&(a[l]=g,o=!0)}if(!o)return}await T.changeFilePromise(n,Qa(a),{automaticNewlines:!0})}static async updateHomeConfiguration(e){let r=uh();return await Ra.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration!="undefined"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,i]of Object.entries(e))if(i!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,i),this.values.set(r,LR(this,i))}}useWithSource(e,r,i,n){try{this.use(e,r,i,n)}catch(s){throw s.message+=` (in ${Ve(this,e,Le.PATH)})`,s}}use(e,r,i,{strict:n=!0,overwrite:s=!1}={}){n=n&&this.get("enableStrictSettings");for(let o of["enableStrictSettings",...Object.keys(r)]){if(typeof r[o]=="undefined"||o==="plugins"||e===""&&dTe.has(o))continue;if(o==="rcFilename")throw new me(`The rcFilename settings can only be set via ${`${LB}RC_FILENAME`.toUpperCase()}, not via a rc file`);let l=this.settings.get(o);if(!l){if(n)throw new me(`Unrecognized or legacy configuration settings found: ${o} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(o,e);continue}if(this.sources.has(o)&&!(s||l.type===ge.MAP||l.isArray&&l.concatenateValues))continue;let c;try{c=NR(this,o,r[o],l,i)}catch(u){throw u.message+=` in ${Ve(this,e,Le.PATH)}`,u}if(o==="enableStrictSettings"&&e!==""){n=c;continue}if(l.type===ge.MAP){let u=this.values.get(o);this.values.set(o,new Map(s?[...u,...c]:[...c,...u])),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else if(l.isArray&&l.concatenateValues){let u=this.values.get(o);this.values.set(o,s?[...u,...c]:[...c,...u]),this.sources.set(o,`${this.sources.get(o)}, ${e}`)}else this.values.set(o,c),this.sources.set(o,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:i=!1}){let n=this.get(e),s=this.settings.get(e);if(typeof s=="undefined")throw new me(`Couldn't find a configuration settings named "${e}"`);return MB(n,s,{hideSecrets:r,getNativePaths:i})}getSubprocessStreams(e,{header:r,prefix:i,report:n}){let s,o,a=T.createWriteStream(e);if(this.get("enableInlineBuilds")){let l=n.createStreamReporter(`${i} ${Ve(this,"STDOUT","green")}`),c=n.createStreamReporter(`${i} ${Ve(this,"STDERR","red")}`);s=new kR.PassThrough,s.pipe(l),s.pipe(a),o=new kR.PassThrough,o.pipe(c),o.pipe(a)}else s=a,o=a,typeof r!="undefined"&&s.write(`${r} -`);return{stdout:s,stderr:o}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let i of r.resolvers||[])e.push(new i);return new pd([new FB,new Yr,new SR,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let i of r.fetchers||[])e.push(new i);return new vR([new dd,new xR,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let i of r.linkers||[])e.push(new i);return e}getSupportedArchitectures(){let e=this.get("supportedArchitectures"),r=e.get("os");r!==null&&(r=r.map(n=>n==="current"?process.platform:n));let i=e.get("cpu");return i!==null&&(i=i.map(n=>n==="current"?process.arch:n)),{os:r,cpu:i}}async refreshPackageExtensions(){this.packageExtensions=new Map;let e=this.packageExtensions,r=(i,n,{userProvided:s=!1}={})=>{if(!Us(i.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let o=new Ze;o.load(n,{yamlCompatibilityMode:!0});let a=hu(e,i.identHash),l=[];a.push([i.range,l]);let c={status:ki.Inactive,userProvided:s,parentDescriptor:i};for(let u of o.dependencies.values())l.push(_(P({},c),{type:oi.Dependency,descriptor:u}));for(let u of o.peerDependencies.values())l.push(_(P({},c),{type:oi.PeerDependency,descriptor:u}));for(let[u,g]of o.peerDependenciesMeta)for(let[f,h]of Object.entries(g))l.push(_(P({},c),{type:oi.PeerDependencyMeta,selector:u,key:f,value:h}))};await this.triggerHook(i=>i.registerPackageExtensions,this,r);for(let[i,n]of this.get("packageExtensions"))r(pA(i,!0),aI(n),{userProvided:!0})}normalizePackage(e){let r=ap(e);if(this.packageExtensions==null)throw new Error("refreshPackageExtensions has to be called before normalizing packages");let i=this.packageExtensions.get(e.identHash);if(typeof i!="undefined"){let s=e.version;if(s!==null){for(let[o,a]of i)if(!!lc(s,o))for(let l of a)switch(l.status===ki.Inactive&&(l.status=ki.Redundant),l.type){case oi.Dependency:typeof r.dependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=ki.Active,r.dependencies.set(l.descriptor.identHash,l.descriptor));break;case oi.PeerDependency:typeof r.peerDependencies.get(l.descriptor.identHash)=="undefined"&&(l.status=ki.Active,r.peerDependencies.set(l.descriptor.identHash,l.descriptor));break;case oi.PeerDependencyMeta:{let c=r.peerDependenciesMeta.get(l.selector);(typeof c=="undefined"||!Object.prototype.hasOwnProperty.call(c,l.key)||c[l.key]!==l.value)&&(l.status=ki.Active,na(r.peerDependenciesMeta,l.selector,()=>({}))[l.key]=l.value)}break;default:Lv(l);break}}}let n=s=>s.scope?`${s.scope}__${s.name}`:`${s.name}`;for(let s of r.peerDependenciesMeta.keys()){let o=En(s);r.peerDependencies.has(o.identHash)||r.peerDependencies.set(o.identHash,Yt(o,"*"))}for(let s of r.peerDependencies.values()){if(s.scope==="types")continue;let o=n(s),a=Eo("types",o),l=St(a);r.peerDependencies.has(a.identHash)||r.peerDependenciesMeta.has(l)||(r.peerDependencies.set(a.identHash,Yt(a,"*")),r.peerDependenciesMeta.set(l,{optional:!0}))}return r.dependencies=new Map(gn(r.dependencies,([,s])=>In(s))),r.peerDependencies=new Map(gn(r.peerDependencies,([,s])=>In(s))),r}getLimit(e){return na(this.limits,e,()=>(0,N_.default)(this.get(e)))}async triggerHook(e,...r){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);!s||await s(...r)}}async triggerMultipleHooks(e,r){for(let i of r)await this.triggerHook(e,...i)}async reduceHook(e,r,...i){let n=r;for(let s of this.plugins.values()){let o=s.hooks;if(!o)continue;let a=e(o);!a||(n=await a(n,...i))}return n}async firstHook(e,...r){for(let i of this.plugins.values()){let n=i.hooks;if(!n)continue;let s=e(n);if(!s)continue;let o=await s(...r);if(typeof o!="undefined")return o}return null}},fe=Ra;fe.telemetry=null;var Gn;(function(r){r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE"})(Gn||(Gn={}));var Fa=class extends Xi{constructor({configuration:e,stdout:r,suggestInstall:i=!0}){super();this.errorCount=0;Cp(this,{configuration:e}),this.configuration=e,this.stdout=r,this.suggestInstall=i}static async start(e,r){let i=new this(e);try{await r(i)}catch(n){i.reportExceptionOnce(n)}finally{await i.finalize()}return i}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,r,i){return(typeof r=="function"?r:i)()}async startTimerPromise(e,r,i){return await(typeof r=="function"?r:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){this.errorCount+=1,this.stdout.write(`${Ve(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(e)}: ${r} -`)}reportProgress(e){let r=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return _(P({},r),{stop:i})}reportJson(e){}async finalize(){this.errorCount>0&&(this.stdout.write(` -`),this.stdout.write(`${Ve(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. -`),this.suggestInstall&&this.stdout.write(`${Ve(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. -`))}formatNameWithHyperlink(e){return eD(e,{configuration:this.configuration,json:!1})}};var t0=ie(require("crypto")),v$=ie(CX()),r0=ie(Q$()),S$=ie(Wp()),x$=ie(Or()),lF=ie(require("util")),cF=ie(require("v8")),uF=ie(require("zlib"));var iUe=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,i)=>`${r}#commit=${i}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",i,n)=>`https://${r}github.com/${i}.git#commit=${n}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",i,n)=>`https://${r}github.com/${i}.git#commit=${n}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/(?:[^\\.]+)\.jfrog\.io\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>by({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],oF=class{constructor(){this.resolutions=null}async setup(e,{report:r}){let i=v.join(e.cwd,e.configuration.get("lockfileFilename"));if(!T.existsSync(i))return;let n=await T.readFilePromise(i,"utf8"),s=Ii(n);if(Object.prototype.hasOwnProperty.call(s,"__metadata"))return;let o=this.resolutions=new Map;for(let a of Object.keys(s)){let l=gp(a);if(!l){r.reportWarning(z.YARN_IMPORT_FAILED,`Failed to parse the string "${a}" into a proper descriptor`);continue}Us(l.range)&&(l=Yt(l,`npm:${l.range}`));let{version:c,resolved:u}=s[a];if(!u)continue;let g;for(let[h,p]of iUe){let d=u.match(h);if(d){g=p(c,...d);break}}if(!g){r.reportWarning(z.YARN_IMPORT_FAILED,`${Xt(e.configuration,l)}: Only some patterns can be imported from legacy lockfiles (not "${u}")`);continue}let f=l;try{let h=Tu(l.range),p=gp(h.selector,!0);p&&(f=p)}catch{}o.set(l.descriptorHash,Vi(f,g))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let n=this.resolutions.get(e.descriptorHash);if(!n)throw new Error("Assertion failed: The resolution should have been registered");return[n]}async getSatisfying(e,r,i){return null}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}};var aF=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(By(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,i){let n=i.project.originalPackages.get(By(e).locatorHash);if(n)return[n];let s=i.project.storedResolutions.get(e.descriptorHash);if(!s)throw new Error("Expected the resolution to have been successful - resolution not found");if(n=i.project.originalPackages.get(s),!n)throw new Error("Expected the resolution to have been successful - package not found");return[n]}async getSatisfying(e,r,i){return null}async resolve(e,r){let i=r.project.originalPackages.get(e.locatorHash);if(!i)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return i}};var AF=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,i){return this.resolver.bindDescriptor(e,r,i)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,i){throw new nt(z.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,i){throw new nt(z.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new nt(z.MISSING_LOCKFILE_ENTRY,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}};var ei=class extends Xi{reportCacheHit(e){}reportCacheMiss(e){}startTimerSync(e,r,i){return(typeof r=="function"?r:i)()}async startTimerPromise(e,r,i){return await(typeof r=="function"?r:i)()}async startCacheReport(e){return await e()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){let r=Promise.resolve().then(async()=>{for await(let{}of e);}),i=()=>{};return _(P({},r),{stop:i})}reportJson(e){}async finalize(){}};var b$=ie(vx());var Dd=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.dependencies=new Map;this.project=r,this.cwd=e}async setup(){this.manifest=T.existsSync(v.join(this.cwd,Ze.fileName))?await Ze.find(this.cwd):new Ze,this.relativeCwd=v.relative(this.project.cwd,this.cwd)||Se.dot;let e=this.manifest.name?this.manifest.name:Eo(null,`${this.computeCandidateName()}-${zi(this.relativeCwd).substr(0,6)}`),r=this.manifest.version?this.manifest.version:"0.0.0";this.locator=Vi(e,r),this.anchoredDescriptor=Yt(this.locator,`${Yr.protocol}${this.relativeCwd}`),this.anchoredLocator=Vi(this.locator,`${Yr.protocol}${this.relativeCwd}`);let i=this.manifest.workspaceDefinitions.map(({pattern:s})=>s),n=await(0,b$.default)(i,{cwd:M.fromPortablePath(this.cwd),expandDirectories:!1,onlyDirectories:!0,onlyFiles:!1,ignore:["**/node_modules","**/.git","**/.yarn"]});n.sort();for(let s of n){let o=v.resolve(this.cwd,M.toPortablePath(s));T.existsSync(v.join(o,"package.json"))&&this.workspacesCwds.add(o)}}accepts(e){var o;let r=e.indexOf(":"),i=r!==-1?e.slice(0,r+1):null,n=r!==-1?e.slice(r+1):e;if(i===Yr.protocol&&v.normalize(n)===this.relativeCwd||i===Yr.protocol&&(n==="*"||n==="^"||n==="~"))return!0;let s=Us(n);return s?i===Yr.protocol?s.test((o=this.manifest.version)!=null?o:"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?s.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${v.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=Ze.hardDependencies}={}){let r=new Set,i=n=>{for(let s of e)for(let o of n.manifest[s].values()){let a=this.project.tryWorkspaceByDescriptor(o);a===null||r.has(a)||(r.add(a),i(a))}};return i(this),r}getRecursiveWorkspaceDependents({dependencies:e=Ze.hardDependencies}={}){let r=new Set,i=n=>{for(let s of this.project.workspaces)e.some(a=>[...s.manifest[a].values()].some(l=>{let c=this.project.tryWorkspaceByDescriptor(l);return c!==null&&up(c.anchoredLocator,n.anchoredLocator)}))&&!r.has(s)&&(r.add(s),i(s))};return i(this),r}getRecursiveWorkspaceChildren(){let e=[];for(let r of this.workspacesCwds){let i=this.project.workspacesByCwd.get(r);i&&e.push(i,...i.getRecursiveWorkspaceChildren())}return e}async persistManifest(){let e={};this.manifest.exportTo(e);let r=v.join(this.cwd,Ze.fileName),i=`${JSON.stringify(e,null,this.manifest.indent)} -`;await T.changeFilePromise(r,i,{automaticNewlines:!0}),this.manifest.raw=e}};var k$=5,nUe=1,sUe=/ *, */g,P$=/\/$/,oUe=32,aUe=(0,lF.promisify)(uF.default.gzip),AUe=(0,lF.promisify)(uF.default.gunzip),li;(function(r){r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build"})(li||(li={}));var gF={restoreInstallersCustomData:["installersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["storedBuildState"]},D$=t=>zi(`${nUe}`,t),Ke=class{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.installersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){var c,u,g;if(!e.projectCwd)throw new me(`No project found in ${r}`);let i=e.projectCwd,n=r,s=null;for(;s!==e.projectCwd;){if(s=n,T.existsSync(v.join(s,wt.manifest))){i=s;break}n=v.dirname(s)}let o=new Ke(e.projectCwd,{configuration:e});(c=fe.telemetry)==null||c.reportProject(o.cwd),await o.setupResolutions(),await o.setupWorkspaces(),(u=fe.telemetry)==null||u.reportWorkspaceCount(o.workspaces.length),(g=fe.telemetry)==null||g.reportDependencyCount(o.workspaces.reduce((f,h)=>f+h.manifest.dependencies.size+h.manifest.devDependencies.size,0));let a=o.tryWorkspaceByCwd(i);if(a)return{project:o,workspace:a,locator:a.anchoredLocator};let l=await o.findLocatorForLocation(`${i}/`,{strict:!0});if(l)return{project:o,locator:l,workspace:null};throw new me(`The nearest package directory (${Ve(e,i,Le.PATH)}) doesn't seem to be part of the project declared in ${Ve(e,o.cwd,Le.PATH)}. - -- If the project directory is right, it might be that you forgot to list ${Ve(e,v.relative(o.cwd,i),Le.PATH)} as a workspace. -- If it isn't, it's likely because you have a yarn.lock or package.json file there, confusing the project root detection.`)}async setupResolutions(){var i;this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),r=this.configuration.get("defaultLanguageName");if(T.existsSync(e)){let n=await T.readFilePromise(e,"utf8");this.lockFileChecksum=D$(n);let s=Ii(n);if(s.__metadata){let o=s.__metadata.version,a=s.__metadata.cacheKey;this.lockfileNeedsRefresh=o0;){let r=e;e=[];for(let i of r){if(this.workspacesByCwd.has(i))continue;let n=await this.addWorkspace(i),s=this.storedPackages.get(n.anchoredLocator.locatorHash);s&&(n.dependencies=s.dependencies);for(let o of n.workspacesCwds)e.push(o)}}}async addWorkspace(e){let r=new Dd(e,{project:this});await r.setup();let i=this.workspacesByIdent.get(r.locator.identHash);if(typeof i!="undefined")throw new Error(`Duplicate workspace name ${Vr(this.configuration,r.locator)}: ${M.fromPortablePath(e)} conflicts with ${M.fromPortablePath(i.cwd)}`);return this.workspaces.push(r),this.workspacesByCwd.set(e,r),this.workspacesByIdent.set(r.locator.identHash,r),r}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){v.isAbsolute(e)||(e=v.resolve(this.cwd,e)),e=v.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let i of this.workspaces)v.relative(i.cwd,e).startsWith("../")||r&&r.cwd.length>=i.cwd.length||(r=i);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r=="undefined"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${Vr(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){let r=this.tryWorkspaceByIdent(e);return r===null||(hA(e)&&(e=Ap(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${Xt(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Io(e)&&(e=lp(e)),r.locator.locatorHash!==e.locatorHash&&r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${lt(this.configuration,e)})`);return r}refreshWorkspaceDependencies(){for(let e of this.workspaces){let r=this.storedPackages.get(e.anchoredLocator.locatorHash);if(!r)throw new Error(`Assertion failed: Expected workspace ${hp(this.configuration,e)} (${Ve(this.configuration,v.join(e.cwd,wt.manifest),Le.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);e.dependencies=new Map(r.dependencies)}}forgetResolution(e){let r=n=>{this.storedResolutions.delete(n),this.storedDescriptors.delete(n)},i=n=>{this.originalPackages.delete(n),this.storedPackages.delete(n),this.accessibleLocators.delete(n)};if("descriptorHash"in e){let n=this.storedResolutions.get(e.descriptorHash);r(e.descriptorHash);let s=new Set(this.storedResolutions.values());typeof n!="undefined"&&!s.has(n)&&i(n)}if("locatorHash"in e){i(e.locatorHash);for(let[n,s]of this.storedResolutions)s===e.locatorHash&&r(n)}}forgetTransientResolutions(){let e=this.configuration.makeResolver();for(let r of this.originalPackages.values()){let i;try{i=e.shouldPersistResolution(r,{project:this,resolver:e})}catch{i=!1}i||this.forgetResolution(r)}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,i]of e.dependencies)hA(i)&&e.dependencies.set(r,Ap(i))}getDependencyMeta(e,r){let i={},s=this.topLevelWorkspace.manifest.dependenciesMeta.get(St(e));if(!s)return i;let o=s.get(null);if(o&&Object.assign(i,o),r===null||!x$.default.valid(r))return i;for(let[a,l]of s)a!==null&&a===r&&Object.assign(i,l);return i}async findLocatorForLocation(e,{strict:r=!1}={}){let i=new ei,n=this.configuration.getLinkers(),s={project:this,report:i};for(let o of n){let a=await o.findPackageLocator(e,s);if(a){if(r&&(await o.findPackageLocation(a,s)).replace(P$,"")!==e.replace(P$,""))continue;return a}}return null}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions(),e.lockfileOnly||this.forgetTransientResolutions();let r=e.resolver||this.configuration.makeResolver(),i=new oF;await i.setup(this,{report:e.report});let n=e.lockfileOnly?[new AF(r)]:[i,r],s=new pd([new aF(r),...n]),o=this.configuration.makeFetcher(),a=e.lockfileOnly?{project:this,report:e.report,resolver:s}:{project:this,report:e.report,resolver:s,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:o,cacheOptions:{mirrorWriteOnly:!0}}},l=new Map,c=new Map,u=new Map,g=new Map,f=new Map,h=new Map,p=this.topLevelWorkspace.anchoredLocator,d=new Set,m=[],I=async W=>{let X=await du(async()=>await s.resolve(W,a),D=>`${lt(this.configuration,W)}: ${D}`);if(!up(W,X))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${lt(this.configuration,W)} to ${lt(this.configuration,X)})`);g.set(X.locatorHash,X);let F=this.configuration.normalizePackage(X);for(let[D,he]of F.dependencies){let pe=await this.configuration.reduceHook(Pe=>Pe.reduceDependency,he,this,F,he,{resolver:s,resolveOptions:a});if(!cp(he,pe))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let Ne=s.bindDescriptor(pe,W,a);F.dependencies.set(D,Ne)}return m.push(Promise.all([...F.dependencies.values()].map(D=>H(D)))),c.set(F.locatorHash,F),F},B=async W=>{let X=f.get(W.locatorHash);if(typeof X!="undefined")return X;let F=Promise.resolve().then(()=>I(W));return f.set(W.locatorHash,F),F},b=async(W,X)=>{let F=await H(X);return l.set(W.descriptorHash,W),u.set(W.descriptorHash,F.locatorHash),F},R=async W=>{let X=this.resolutionAliases.get(W.descriptorHash);if(typeof X!="undefined")return b(W,this.storedDescriptors.get(X));let F=s.getResolutionDependencies(W,a),D=new Map(await Promise.all(F.map(async Ne=>{let Pe=s.bindDescriptor(Ne,p,a),qe=await H(Pe);return d.add(qe.locatorHash),[Ne.descriptorHash,qe]}))),pe=(await du(async()=>await s.getCandidates(W,D,a),Ne=>`${Xt(this.configuration,W)}: ${Ne}`))[0];if(typeof pe=="undefined")throw new Error(`${Xt(this.configuration,W)}: No candidates found`);return l.set(W.descriptorHash,W),u.set(W.descriptorHash,pe.locatorHash),B(pe)},H=W=>{let X=h.get(W.descriptorHash);if(typeof X!="undefined")return X;l.set(W.descriptorHash,W);let F=Promise.resolve().then(()=>R(W));return h.set(W.descriptorHash,F),F};for(let W of this.workspaces){let X=W.anchoredDescriptor;m.push(H(X))}for(;m.length>0;){let W=[...m];m.length=0,await Promise.all(W)}let L=new Set(this.resolutionAliases.values()),K=new Set(c.keys()),J=new Set,ne=new Map;lUe({project:this,report:e.report,accessibleLocators:J,volatileDescriptors:L,optionalBuilds:K,peerRequirements:ne,allDescriptors:l,allResolutions:u,allPackages:c});for(let W of d)K.delete(W);for(let W of L)l.delete(W),u.delete(W);let q=this.configuration.getSupportedArchitectures(),A=new Set,V=new Set;for(let W of c.values())W.conditions!=null&&(!K.has(W.locatorHash)||(Sy(W,q)||(Sy(W,{os:[process.platform],cpu:[process.arch]})&&e.report.reportWarningOnce(z.GHOST_ARCHITECTURE,`${lt(this.configuration,W)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Ve(this.configuration,"supportedArchitectures",ps.SETTING)} setting`),V.add(W.locatorHash)),A.add(W.locatorHash)));this.storedResolutions=u,this.storedDescriptors=l,this.storedPackages=c,this.accessibleLocators=J,this.conditionalLocators=A,this.disabledLocators=V,this.originalPackages=g,this.optionalBuilds=K,this.peerRequirements=ne,this.refreshWorkspaceDependencies()}async fetchEverything({cache:e,report:r,fetcher:i,mode:n}){let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:r,cacheOptions:s},l=Array.from(new Set(gn(this.storedResolutions.values(),[f=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");return is(h)}])));n===li.UpdateLockfile&&(l=l.filter(f=>!this.storedChecksums.has(f)));let c=!1,u=Xi.progressViaCounter(l.length);r.reportProgress(u);let g=(0,S$.default)(oUe);if(await r.startCacheReport(async()=>{await Promise.all(l.map(f=>g(async()=>{let h=this.storedPackages.get(f);if(!h)throw new Error("Assertion failed: The locator should have been registered");if(Io(h))return;let p;try{p=await o.fetch(h,a)}catch(d){d.message=`${lt(this.configuration,h)}: ${d.message}`,r.reportExceptionOnce(d),c=d;return}p.checksum!=null?this.storedChecksums.set(h.locatorHash,p.checksum):this.storedChecksums.delete(h.locatorHash),p.releaseFs&&p.releaseFs()}).finally(()=>{u.tick()})))}),c)throw c}async linkEverything({cache:e,report:r,fetcher:i,mode:n}){var A,V,W;let s={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},o=i||this.configuration.makeFetcher(),a={checksums:this.storedChecksums,project:this,cache:e,fetcher:o,report:r,skipIntegrityCheck:!0,cacheOptions:s},l=this.configuration.getLinkers(),c={project:this,report:r},u=new Map(l.map(X=>{let F=X.makeInstaller(c),D=F.getCustomDataKey(),he=this.installersCustomData.get(D);return typeof he!="undefined"&&F.attachCustomData(he),[X,F]})),g=new Map,f=new Map,h=new Map,p=new Map(await Promise.all([...this.accessibleLocators].map(async X=>{let F=this.storedPackages.get(X);if(!F)throw new Error("Assertion failed: The locator should have been registered");return[X,await o.fetch(F,a)]}))),d=[];for(let X of this.accessibleLocators){let F=this.storedPackages.get(X);if(typeof F=="undefined")throw new Error("Assertion failed: The locator should have been registered");let D=p.get(F.locatorHash);if(typeof D=="undefined")throw new Error("Assertion failed: The fetch result should have been registered");let he=[],pe=Pe=>{he.push(Pe)},Ne=this.tryWorkspaceByLocator(F);if(Ne!==null){let Pe=[],{scripts:qe}=Ne.manifest;for(let se of["preinstall","install","postinstall"])qe.has(se)&&Pe.push([Gn.SCRIPT,se]);try{for(let[se,be]of u)if(se.supportsPackage(F,c)&&(await be.installPackage(F,D,{holdFetchResult:pe})).buildDirective!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{he.length===0?(A=D.releaseFs)==null||A.call(D):d.push(Promise.all(he).catch(()=>{}).then(()=>{var se;(se=D.releaseFs)==null||se.call(D)}))}let re=v.join(D.packageFs.getRealPath(),D.prefixPath);f.set(F.locatorHash,re),!Io(F)&&Pe.length>0&&h.set(F.locatorHash,{directives:Pe,buildLocations:[re]})}else{let Pe=l.find(se=>se.supportsPackage(F,c));if(!Pe)throw new nt(z.LINKER_NOT_FOUND,`${lt(this.configuration,F)} isn't supported by any available linker`);let qe=u.get(Pe);if(!qe)throw new Error("Assertion failed: The installer should have been registered");let re;try{re=await qe.installPackage(F,D,{holdFetchResult:pe})}finally{he.length===0?(V=D.releaseFs)==null||V.call(D):d.push(Promise.all(he).then(()=>{}).then(()=>{var se;(se=D.releaseFs)==null||se.call(D)}))}g.set(F.locatorHash,Pe),f.set(F.locatorHash,re.packageLocation),re.buildDirective&&re.buildDirective.length>0&&re.packageLocation&&h.set(F.locatorHash,{directives:re.buildDirective,buildLocations:[re.packageLocation]})}}let m=new Map;for(let X of this.accessibleLocators){let F=this.storedPackages.get(X);if(!F)throw new Error("Assertion failed: The locator should have been registered");let D=this.tryWorkspaceByLocator(F)!==null,he=async(pe,Ne)=>{let Pe=f.get(F.locatorHash);if(typeof Pe=="undefined")throw new Error(`Assertion failed: The package (${lt(this.configuration,F)}) should have been registered`);let qe=[];for(let re of F.dependencies.values()){let se=this.storedResolutions.get(re.descriptorHash);if(typeof se=="undefined")throw new Error(`Assertion failed: The resolution (${Xt(this.configuration,re)}, from ${lt(this.configuration,F)})should have been registered`);let be=this.storedPackages.get(se);if(typeof be=="undefined")throw new Error(`Assertion failed: The package (${se}, resolved from ${Xt(this.configuration,re)}) should have been registered`);let ae=this.tryWorkspaceByLocator(be)===null?g.get(se):null;if(typeof ae=="undefined")throw new Error(`Assertion failed: The package (${se}, resolved from ${Xt(this.configuration,re)}) should have been registered`);ae===pe||ae===null?f.get(be.locatorHash)!==null&&qe.push([re,be]):!D&&Pe!==null&&hu(m,se).push(Pe)}Pe!==null&&await Ne.attachInternalDependencies(F,qe)};if(D)for(let[pe,Ne]of u)pe.supportsPackage(F,c)&&await he(pe,Ne);else{let pe=g.get(F.locatorHash);if(!pe)throw new Error("Assertion failed: The linker should have been found");let Ne=u.get(pe);if(!Ne)throw new Error("Assertion failed: The installer should have been registered");await he(pe,Ne)}}for(let[X,F]of m){let D=this.storedPackages.get(X);if(!D)throw new Error("Assertion failed: The package should have been registered");let he=g.get(D.locatorHash);if(!he)throw new Error("Assertion failed: The linker should have been found");let pe=u.get(he);if(!pe)throw new Error("Assertion failed: The installer should have been registered");await pe.attachExternalDependents(D,F)}let I=new Map;for(let X of u.values()){let F=await X.finalizeInstall();for(let D of(W=F==null?void 0:F.records)!=null?W:[])h.set(D.locatorHash,{directives:D.buildDirective,buildLocations:D.buildLocations});typeof(F==null?void 0:F.customData)!="undefined"&&I.set(X.getCustomDataKey(),F.customData)}if(this.installersCustomData=I,await Promise.all(d),n===li.SkipBuild)return;let B=new Set(this.storedPackages.keys()),b=new Set(h.keys());for(let X of b)B.delete(X);let R=(0,t0.createHash)("sha512");R.update(process.versions.node),await this.configuration.triggerHook(X=>X.globalHashGeneration,this,X=>{R.update("\0"),R.update(X)});let H=R.digest("hex"),L=new Map,K=X=>{let F=L.get(X.locatorHash);if(typeof F!="undefined")return F;let D=this.storedPackages.get(X.locatorHash);if(typeof D=="undefined")throw new Error("Assertion failed: The package should have been registered");let he=(0,t0.createHash)("sha512");he.update(X.locatorHash),L.set(X.locatorHash,"");for(let pe of D.dependencies.values()){let Ne=this.storedResolutions.get(pe.descriptorHash);if(typeof Ne=="undefined")throw new Error(`Assertion failed: The resolution (${Xt(this.configuration,pe)}) should have been registered`);let Pe=this.storedPackages.get(Ne);if(typeof Pe=="undefined")throw new Error("Assertion failed: The package should have been registered");he.update(K(Pe))}return F=he.digest("hex"),L.set(X.locatorHash,F),F},J=(X,F)=>{let D=(0,t0.createHash)("sha512");D.update(H),D.update(K(X));for(let he of F)D.update(he);return D.digest("hex")},ne=new Map,q=!1;for(;b.size>0;){let X=b.size,F=[];for(let D of b){let he=this.storedPackages.get(D);if(!he)throw new Error("Assertion failed: The package should have been registered");let pe=!0;for(let qe of he.dependencies.values()){let re=this.storedResolutions.get(qe.descriptorHash);if(!re)throw new Error(`Assertion failed: The resolution (${Xt(this.configuration,qe)}) should have been registered`);if(b.has(re)){pe=!1;break}}if(!pe)continue;b.delete(D);let Ne=h.get(he.locatorHash);if(!Ne)throw new Error("Assertion failed: The build directive should have been registered");let Pe=J(he,Ne.buildLocations);if(this.storedBuildState.get(he.locatorHash)===Pe){ne.set(he.locatorHash,Pe);continue}q||(await this.persistInstallStateFile(),q=!0),this.storedBuildState.has(he.locatorHash)?r.reportInfo(z.MUST_REBUILD,`${lt(this.configuration,he)} must be rebuilt because its dependency tree changed`):r.reportInfo(z.MUST_BUILD,`${lt(this.configuration,he)} must be built because it never has been before or the last one failed`);for(let qe of Ne.buildLocations){if(!v.isAbsolute(qe))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${qe})`);F.push((async()=>{for(let[re,se]of Ne.directives){let be=`# This file contains the result of Yarn building a package (${is(he)}) -`;switch(re){case Gn.SCRIPT:be+=`# Script name: ${se} -`;break;case Gn.SHELLCODE:be+=`# Script code: ${se} -`;break}let ae=null;if(!await T.mktempPromise(async De=>{let $=v.join(De,"build.log"),{stdout:G,stderr:Ce}=this.configuration.getSubprocessStreams($,{header:be,prefix:lt(this.configuration,he),report:r}),ee;try{switch(re){case Gn.SCRIPT:ee=await Uw(he,se,[],{cwd:qe,project:this,stdin:ae,stdout:G,stderr:Ce});break;case Gn.SHELLCODE:ee=await rD(he,se,[],{cwd:qe,project:this,stdin:ae,stdout:G,stderr:Ce});break}}catch(Oe){Ce.write(Oe.stack),ee=1}if(G.end(),Ce.end(),ee===0)return ne.set(he.locatorHash,Pe),!0;T.detachTemp(De);let Ue=`${lt(this.configuration,he)} couldn't be built successfully (exit code ${Ve(this.configuration,ee,Le.NUMBER)}, logs can be found here: ${Ve(this.configuration,$,Le.PATH)})`;return this.optionalBuilds.has(he.locatorHash)?(r.reportInfo(z.BUILD_FAILED,Ue),ne.set(he.locatorHash,Pe),!0):(r.reportError(z.BUILD_FAILED,Ue),!1)}))return}})())}}if(await Promise.all(F),X===b.size){let D=Array.from(b).map(he=>{let pe=this.storedPackages.get(he);if(!pe)throw new Error("Assertion failed: The package should have been registered");return lt(this.configuration,pe)}).join(", ");r.reportError(z.CYCLIC_DEPENDENCIES,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${D})`);break}}this.storedBuildState=ne}async install(e){var a,l;let r=this.configuration.get("nodeLinker");(a=fe.telemetry)==null||a.reportInstall(r),await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{await this.configuration.triggerHook(c=>c.validateProject,this,{reportWarning:e.report.reportWarning.bind(e.report),reportError:e.report.reportError.bind(e.report)})});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.status=ki.Inactive;let i=v.join(this.cwd,this.configuration.get("lockfileFilename")),n=null;if(e.immutable)try{n=await T.readFilePromise(i,"utf8")}catch(c){throw c.code==="ENOENT"?new nt(z.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been created by this install, which is explicitly forbidden."):c}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{for(let[,c]of this.configuration.packageExtensions)for(let[,u]of c)for(let g of u)if(g.userProvided){let f=Ve(this.configuration,g,Le.PACKAGE_EXTENSION);switch(g.status){case ki.Inactive:e.report.reportWarning(z.UNUSED_PACKAGE_EXTENSION,`${f}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case ki.Redundant:e.report.reportWarning(z.REDUNDANT_PACKAGE_EXTENSION,`${f}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(n!==null){let c=ul(n,this.generateLockfile());if(c!==n){let u=(0,v$.structuredPatch)(i,i,n,c);e.report.reportSeparator();for(let g of u.hunks){e.report.reportInfo(null,`@@ -${g.oldStart},${g.oldLines} +${g.newStart},${g.newLines} @@`);for(let f of g.lines)f.startsWith("+")?e.report.reportError(z.FROZEN_LOCKFILE_EXCEPTION,Ve(this.configuration,f,Le.ADDED)):f.startsWith("-")?e.report.reportError(z.FROZEN_LOCKFILE_EXCEPTION,Ve(this.configuration,f,Le.REMOVED)):e.report.reportInfo(null,Ve(this.configuration,f,"grey"))}throw e.report.reportSeparator(),new nt(z.FROZEN_LOCKFILE_EXCEPTION,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let c of this.configuration.packageExtensions.values())for(let[,u]of c)for(let g of u)g.userProvided&&g.status===ki.Active&&((l=fe.telemetry)==null||l.reportPackageExtension(Uu(g,Le.PACKAGE_EXTENSION)));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e),(typeof e.persistProject=="undefined"||e.persistProject)&&e.mode!==li.UpdateLockfile&&await this.cacheCleanup(e)});let s=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],o=await Promise.all(s.map(async c=>Iy(c,{cwd:this.cwd})));(typeof e.persistProject=="undefined"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode===li.UpdateLockfile){e.report.reportWarning(z.UPDATE_LOCKFILE_ONLY_SKIP_LINK,`Skipped due to ${Ve(this.configuration,"mode=update-lockfile",Le.CODE)}`);return}await this.linkEverything(e);let c=await Promise.all(s.map(async u=>Iy(u,{cwd:this.cwd})));for(let u=0;uc.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,s]of this.storedResolutions.entries()){let o=e.get(s);o||e.set(s,o=new Set),o.add(n)}let r={};r.__metadata={version:k$,cacheKey:void 0};for(let[n,s]of e.entries()){let o=this.originalPackages.get(n);if(!o)continue;let a=[];for(let f of s){let h=this.storedDescriptors.get(f);if(!h)throw new Error("Assertion failed: The descriptor should have been registered");a.push(h)}let l=a.map(f=>In(f)).sort().join(", "),c=new Ze;c.version=o.linkType===gt.HARD?o.version:"0.0.0-use.local",c.languageName=o.languageName,c.dependencies=new Map(o.dependencies),c.peerDependencies=new Map(o.peerDependencies),c.dependenciesMeta=new Map(o.dependenciesMeta),c.peerDependenciesMeta=new Map(o.peerDependenciesMeta),c.bin=new Map(o.bin);let u,g=this.storedChecksums.get(o.locatorHash);if(typeof g!="undefined"){let f=g.indexOf("/");if(f===-1)throw new Error("Assertion failed: Expected the checksum to reference its cache key");let h=g.slice(0,f),p=g.slice(f+1);typeof r.__metadata.cacheKey=="undefined"&&(r.__metadata.cacheKey=h),h===r.__metadata.cacheKey?u=p:u=g}r[l]=_(P({},c.exportTo({},{compatibilityMode:!1})),{linkType:o.linkType.toLowerCase(),resolution:is(o),checksum:u,conditions:o.conditions||void 0})}return`${[`# This file is generated by running "yarn install" inside your project. -`,`# Manual changes might be lost - proceed with caution! -`].join("")} -`+Qa(r)}async persistLockfile(){let e=v.join(this.cwd,this.configuration.get("lockfileFilename")),r="";try{r=await T.readFilePromise(e,"utf8")}catch(s){}let i=this.generateLockfile(),n=ul(r,i);n!==r&&(await T.writeFilePromise(e,n),this.lockFileChecksum=D$(n),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let o of Object.values(gF))e.push(...o);let r=(0,r0.default)(this,e),i=cF.default.serialize(r),n=zi(i);if(this.installStateChecksum===n)return;let s=this.configuration.get("installStatePath");await T.mkdirPromise(v.dirname(s),{recursive:!0}),await T.writeFilePromise(s,await aUe(i)),this.installStateChecksum=n}async restoreInstallState({restoreInstallersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:i=!0}={}){let n=this.configuration.get("installStatePath");if(!T.existsSync(n)){r&&await this.applyLightResolution();return}let s=await AUe(await T.readFilePromise(n));this.installStateChecksum=zi(s);let o=cF.default.deserialize(s);e&&typeof o.installersCustomData!="undefined"&&(this.installersCustomData=o.installersCustomData),i&&Object.assign(this,(0,r0.default)(o,gF.restoreBuildState)),r&&(o.lockFileChecksum===this.lockFileChecksum?(Object.assign(this,(0,r0.default)(o,gF.restoreResolutions)),this.refreshWorkspaceDependencies()):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new ei}),await this.persistInstallStateFile()}async persist(){await this.persistLockfile();for(let e of this.workspacesByCwd.values())await e.persistManifest()}async cacheCleanup({cache:e,report:r}){let i=new Set([".gitignore"]);if(!Fb(e.cwd,this.cwd)||!await T.existsPromise(e.cwd))return;let n=this.configuration.get("preferAggregateCacheInfo"),s=0,o=null;for(let a of await T.readdirPromise(e.cwd)){if(i.has(a))continue;let l=v.resolve(e.cwd,a);e.markedFiles.has(l)||(o=a,e.immutable?r.reportError(z.IMMUTABLE_CACHE,`${Ve(this.configuration,v.basename(l),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):(n?s+=1:r.reportInfo(z.UNUSED_CACHE_ENTRY,`${Ve(this.configuration,v.basename(l),"magenta")} appears to be unused - removing`),await T.removePromise(l)))}n&&s!==0&&r.reportInfo(z.UNUSED_CACHE_ENTRY,s>1?`${s} packages appeared to be unused and were removed`:`${o} appeared to be unused and was removed`),e.markedFiles.clear()}};function lUe({project:t,allDescriptors:e,allResolutions:r,allPackages:i,accessibleLocators:n=new Set,optionalBuilds:s=new Set,volatileDescriptors:o=new Set,peerRequirements:a=new Map,report:l,tolerateMissingPackages:c=!1}){var ne;let u=new Map,g=[],f=new Map,h=new Map,p=new Map,d=new Map,m=new Map,I=new Map(t.workspaces.map(q=>{let A=q.anchoredLocator.locatorHash,V=i.get(A);if(typeof V=="undefined"){if(c)return[A,null];throw new Error("Assertion failed: The workspace should have an associated package")}return[A,ap(V)]})),B=()=>{let q=T.mktempSync(),A=v.join(q,"stacktrace.log"),V=String(g.length+1).length,W=g.map((X,F)=>`${`${F+1}.`.padStart(V," ")} ${is(X)} -`).join("");throw T.writeFileSync(A,W),T.detachTemp(q),new nt(z.STACK_OVERFLOW_RESOLUTION,`Encountered a stack overflow when resolving peer dependencies; cf ${M.fromPortablePath(A)}`)},b=q=>{let A=r.get(q.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: The resolution should have been registered");let V=i.get(A);if(!V)throw new Error("Assertion failed: The package could not be found");return V},R=(q,A,V,{top:W,optional:X})=>{g.length>1e3&&B(),g.push(A);let F=H(q,A,V,{top:W,optional:X});return g.pop(),F},H=(q,A,V,{top:W,optional:X})=>{if(n.has(A.locatorHash))return;n.add(A.locatorHash),X||s.delete(A.locatorHash);let F=i.get(A.locatorHash);if(!F){if(c)return;throw new Error(`Assertion failed: The package (${lt(t.configuration,A)}) should have been registered`)}let D=[],he=[],pe=[],Ne=[],Pe=[];for(let re of Array.from(F.dependencies.values())){if(F.peerDependencies.has(re.identHash)&&F.locatorHash!==W)continue;if(hA(re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");o.delete(re.descriptorHash);let se=X;if(!se){let ee=F.dependenciesMeta.get(St(re));if(typeof ee!="undefined"){let Ue=ee.get(null);typeof Ue!="undefined"&&Ue.optional&&(se=!0)}}let be=r.get(re.descriptorHash);if(!be){if(c)continue;throw new Error(`Assertion failed: The resolution (${Xt(t.configuration,re)}) should have been registered`)}let ae=I.get(be)||i.get(be);if(!ae)throw new Error(`Assertion failed: The package (${be}, resolved from ${Xt(t.configuration,re)}) should have been registered`);if(ae.peerDependencies.size===0){R(re,ae,new Map,{top:W,optional:se});continue}let Ae=u.get(ae.locatorHash);typeof Ae=="number"&&Ae>=2&&B();let De,$,G=new Set,Ce;he.push(()=>{De=kx(re,A.locatorHash),$=Px(ae,A.locatorHash),F.dependencies.delete(re.identHash),F.dependencies.set(De.identHash,De),r.set(De.descriptorHash,$.locatorHash),e.set(De.descriptorHash,De),i.set($.locatorHash,$),D.push([ae,De,$])}),pe.push(()=>{var ee;Ce=new Map;for(let Ue of $.peerDependencies.values()){let Oe=F.dependencies.get(Ue.identHash);if(!Oe&&cp(A,Ue)&&(Oe=q),(!Oe||Oe.range==="missing:")&&$.dependencies.has(Ue.identHash)){$.peerDependencies.delete(Ue.identHash);continue}Oe||(Oe=Yt(Ue,"missing:")),$.dependencies.set(Oe.identHash,Oe),hA(Oe)&&Pl(p,Oe.descriptorHash).add($.locatorHash),f.set(Oe.identHash,Oe),Oe.range==="missing:"&&G.add(Oe.identHash),Ce.set(Ue.identHash,(ee=V.get(Ue.identHash))!=null?ee:$.locatorHash)}$.dependencies=new Map(gn($.dependencies,([Ue,Oe])=>St(Oe)))}),Ne.push(()=>{if(!i.has($.locatorHash))return;let ee=u.get(ae.locatorHash),Ue=typeof ee!="undefined"?ee+1:1;u.set(ae.locatorHash,Ue),R(De,$,Ce,{top:W,optional:se}),u.set(ae.locatorHash,Ue-1)}),Pe.push(()=>{let ee=F.dependencies.get(re.identHash);if(typeof ee=="undefined")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let Ue=r.get(ee.descriptorHash);if(typeof Ue=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");if(Pl(m,Ue).add(A.locatorHash),!!i.has($.locatorHash)){for(let Oe of $.peerDependencies.values()){let vt=Ce.get(Oe.identHash);if(typeof vt=="undefined")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");hu(pu(d,vt),St(Oe)).push($.locatorHash)}for(let Oe of G)$.dependencies.delete(Oe)}})}for(let re of[...he,...pe])re();let qe;do{qe=!0;for(let[re,se,be]of D){if(!i.has(be.locatorHash))continue;let ae=pu(h,re.locatorHash),Ae=zi(...[...be.dependencies.values()].map(Ce=>{let ee=Ce.range!=="missing:"?r.get(Ce.descriptorHash):"missing:";if(typeof ee=="undefined")throw new Error(`Assertion failed: Expected the resolution for ${Xt(t.configuration,Ce)} to have been registered`);return ee===W?`${ee} (top)`:ee}),se.identHash),De=ae.get(Ae);if(typeof De=="undefined"){ae.set(Ae,se);continue}if(De===se)continue;qe=!1,i.delete(be.locatorHash),e.delete(se.descriptorHash),r.delete(se.descriptorHash),n.delete(be.locatorHash);let $=p.get(se.descriptorHash)||[],G=[F.locatorHash,...$];p.delete(se.descriptorHash);for(let Ce of G){let ee=i.get(Ce);typeof ee!="undefined"&&ee.dependencies.set(se.identHash,De)}}}while(!qe);for(let re of[...Ne,...Pe])re()};for(let q of t.workspaces){let A=q.anchoredLocator;o.delete(q.anchoredDescriptor.descriptorHash),R(q.anchoredDescriptor,A,new Map,{top:A.locatorHash,optional:!1})}var L;(function(V){V[V.NotProvided=0]="NotProvided",V[V.NotCompatible=1]="NotCompatible"})(L||(L={}));let K=[];for(let[q,A]of m){let V=i.get(q);if(typeof V=="undefined")throw new Error("Assertion failed: Expected the root to be registered");let W=d.get(q);if(typeof W!="undefined")for(let X of A){let F=i.get(X);if(typeof F!="undefined")for(let[D,he]of W){let pe=En(D);if(F.peerDependencies.has(pe.identHash))continue;let Ne=`p${zi(X,D,q).slice(0,5)}`;a.set(Ne,{subject:X,requested:pe,rootRequester:q,allRequesters:he});let Pe=V.dependencies.get(pe.identHash);if(typeof Pe!="undefined"){let qe=b(Pe),re=(ne=qe.version)!=null?ne:"0.0.0",se=new Set;for(let ae of he){let Ae=i.get(ae);if(typeof Ae=="undefined")throw new Error("Assertion failed: Expected the link to be registered");let De=Ae.peerDependencies.get(pe.identHash);if(typeof De=="undefined")throw new Error("Assertion failed: Expected the ident to be registered");se.add(De.range)}[...se].every(ae=>{if(ae.startsWith(Yr.protocol)){if(!t.tryWorkspaceByLocator(qe))return!1;ae=ae.slice(Yr.protocol.length),(ae==="^"||ae==="~")&&(ae="*")}return lc(re,ae)})||K.push({type:1,subject:F,requested:pe,requester:V,version:re,hash:Ne,requirementCount:he.length})}else{let qe=V.peerDependenciesMeta.get(D);(qe==null?void 0:qe.optional)||K.push({type:0,subject:F,requested:pe,requester:V,hash:Ne})}}}}let J=[q=>Rx(q.subject),q=>St(q.requested),q=>`${q.type}`];for(let q of gn(K,J))switch(q.type){case 0:l==null||l.reportWarning(z.MISSING_PEER_DEPENDENCY,`${lt(t.configuration,q.subject)} doesn't provide ${Vr(t.configuration,q.requested)} (${Ve(t.configuration,q.hash,Le.CODE)}), requested by ${Vr(t.configuration,q.requester)}`);break;case 1:{let A=q.requirementCount>1?"and some of its descendants request":"requests";l==null||l.reportWarning(z.INCOMPATIBLE_PEER_DEPENDENCY,`${lt(t.configuration,q.subject)} provides ${Vr(t.configuration,q.requested)} (${Ve(t.configuration,q.hash,Le.CODE)}) with version ${fp(t.configuration,q.version)}, which doesn't satisfy what ${Vr(t.configuration,q.requester)} ${A}`)}break}K.length>0&&(l==null||l.reportWarning(z.UNNAMED,`Some peer dependencies are incorrectly met; run ${Ve(t.configuration,"yarn explain peer-requirements ",Le.CODE)} for details, where ${Ve(t.configuration,"",Le.CODE)} is the six-letter p-prefixed code`))}var Po;(function(l){l.VERSION="version",l.COMMAND_NAME="commandName",l.PLUGIN_NAME="pluginName",l.INSTALL_COUNT="installCount",l.PROJECT_COUNT="projectCount",l.WORKSPACE_COUNT="workspaceCount",l.DEPENDENCY_COUNT="dependencyCount",l.EXTENSION="packageExtension"})(Po||(Po={}));var Rd=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.configuration=e;let i=this.getRegistryPath();this.isNew=!T.existsSync(i),this.sendReport(r),this.startBuffer()}reportVersion(e){this.reportValue(Po.VERSION,e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue(Po.COMMAND_NAME,e||"")}reportPluginName(e){this.reportValue(Po.PLUGIN_NAME,e)}reportProject(e){this.reportEnumerator(Po.PROJECT_COUNT,e)}reportInstall(e){this.reportHit(Po.INSTALL_COUNT,e)}reportPackageExtension(e){this.reportValue(Po.EXTENSION,e)}reportWorkspaceCount(e){this.reportValue(Po.WORKSPACE_COUNT,String(e))}reportDependencyCount(e){this.reportValue(Po.DEPENDENCY_COUNT,String(e))}reportValue(e,r){Pl(this.values,e).add(r)}reportEnumerator(e,r){Pl(this.enumerators,e).add(zi(r))}reportHit(e,r="*"){let i=pu(this.hits,e),n=na(i,r,()=>0);i.set(r,n+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return v.join(e,"telemetry.json")}sendReport(e){var u,g,f;let r=this.getRegistryPath(),i;try{i=T.readJsonSync(r)}catch{i={}}let n=Date.now(),s=this.configuration.get("telemetryInterval")*24*60*60*1e3,a=((u=i.lastUpdate)!=null?u:n+s+Math.floor(s*Math.random()))+s;if(a>n&&i.lastUpdate!=null)return;try{T.mkdirSync(v.dirname(r),{recursive:!0}),T.writeJsonSync(r,{lastUpdate:n})}catch{return}if(a>n||!i.blocks)return;let l=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,c=h=>iP(l,h,{configuration:this.configuration}).catch(()=>{});for(let[h,p]of Object.entries((g=i.blocks)!=null?g:{})){if(Object.keys(p).length===0)continue;let d=p;d.userId=h,d.reportType="primary";for(let B of Object.keys((f=d.enumerators)!=null?f:{}))d.enumerators[B]=d.enumerators[B].length;c(d);let m=new Map,I=20;for(let[B,b]of Object.entries(d.values))b.length>0&&m.set(B,b.slice(0,I));for(;m.size>0;){let B={};B.userId=h,B.reportType="secondary",B.metrics={};for(let[b,R]of m)B.metrics[b]=R.shift(),R.length===0&&m.delete(b);c(B)}}}applyChanges(){var o,a,l,c,u,g,f,h,p;let e=this.getRegistryPath(),r;try{r=T.readJsonSync(e)}catch{r={}}let i=(o=this.configuration.get("telemetryUserId"))!=null?o:"*",n=r.blocks=(a=r.blocks)!=null?a:{},s=n[i]=(l=n[i])!=null?l:{};for(let d of this.hits.keys()){let m=s.hits=(c=s.hits)!=null?c:{},I=m[d]=(u=m[d])!=null?u:{};for(let[B,b]of this.hits.get(d))I[B]=((g=I[B])!=null?g:0)+b}for(let d of["values","enumerators"])for(let m of this[d].keys()){let I=s[d]=(f=s[d])!=null?f:{};I[m]=[...new Set([...(h=I[m])!=null?h:[],...(p=this[d].get(m))!=null?p:[]])]}T.mkdirSync(v.dirname(e),{recursive:!0}),T.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}};var fF=ie(require("child_process")),R$=ie(ml());var hF=ie(require("fs"));var Yg=new Map([["constraints",[["constraints","query"],["constraints","source"],["constraints"]]],["exec",[]],["interactive-tools",[["search"],["upgrade-interactive"]]],["stage",[["stage"]]],["typescript",[]],["version",[["version","apply"],["version","check"],["version"]]],["workspace-tools",[["workspaces","focus"],["workspaces","foreach"]]]]);function cUe(t){let e=M.fromPortablePath(t);process.on("SIGINT",()=>{}),e?(0,fF.execFileSync)(process.execPath,[e,...process.argv.slice(2)],{stdio:"inherit",env:_(P({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})}):(0,fF.execFileSync)(e,process.argv.slice(2),{stdio:"inherit",env:_(P({},process.env),{YARN_IGNORE_PATH:"1",YARN_IGNORE_CWD:"1"})})}async function i0({binaryVersion:t,pluginConfiguration:e}){async function r(){let n=new oo({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:t});try{await i(n)}catch(s){process.stdout.write(n.error(s)),process.exitCode=1}}async function i(n){var p,d,m,I,B;let s=process.versions.node,o=">=12 <14 || 14.2 - 14.9 || >14.10.0";if(process.env.YARN_IGNORE_NODE!=="1"&&!qt.satisfiesWithPrereleases(s,o))throw new me(`This tool requires a Node version compatible with ${o} (got ${s}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);let a=await fe.find(M.toPortablePath(process.cwd()),e,{usePath:!0,strict:!1}),l=a.get("yarnPath"),c=a.get("ignorePath"),u=a.get("ignoreCwd"),g=M.toPortablePath(M.resolve(process.argv[1])),f=b=>T.readFilePromise(b).catch(()=>Buffer.of());if(!c&&!u&&await(async()=>l===g||Buffer.compare(...await Promise.all([f(l),f(g)]))===0)()){process.env.YARN_IGNORE_PATH="1",process.env.YARN_IGNORE_CWD="1",await i(n);return}else if(l!==null&&!c)if(!T.existsSync(l))process.stdout.write(n.error(new Error(`The "yarn-path" option has been set (in ${a.sources.get("yarnPath")}), but the specified location doesn't exist (${l}).`))),process.exitCode=1;else try{cUe(l)}catch(b){process.exitCode=b.code||1}else{c&&delete process.env.YARN_IGNORE_PATH,a.get("enableTelemetry")&&!R$.isCI&&process.stdout.isTTY&&(fe.telemetry=new Rd(a,"puba9cdc10ec5790a2cf4969dd413a47270")),(p=fe.telemetry)==null||p.reportVersion(t);for(let[L,K]of a.plugins.entries()){Yg.has((m=(d=L.match(/^@yarnpkg\/plugin-(.*)$/))==null?void 0:d[1])!=null?m:"")&&((I=fe.telemetry)==null||I.reportPluginName(L));for(let J of K.commands||[])n.register(J)}let R=n.process(process.argv.slice(2));R.help||(B=fe.telemetry)==null||B.reportCommandName(R.path.join(" "));let H=R.cwd;if(typeof H!="undefined"&&!u){let L=(0,hF.realpathSync)(process.cwd()),K=(0,hF.realpathSync)(H);if(L!==K){process.chdir(H),await r();return}}await n.runExit(R,{cwd:M.toPortablePath(process.cwd()),plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr})}}return r().catch(n=>{process.stdout.write(n.stack||n.message),process.exitCode=1}).finally(()=>T.rmtempPromise())}function F$(t){t.Command.Path=(...e)=>r=>{r.paths=r.paths||[],r.paths.push(e)};for(let e of["Array","Boolean","String","Proxy","Rest","Counter"])t.Command[e]=(...r)=>(i,n)=>{let s=t.Option[e](...r);Object.defineProperty(i,`__${n}`,{configurable:!1,enumerable:!0,get(){return s},set(o){this[n]=o}})};return t}var iC={};it(iC,{BaseCommand:()=>Be,WorkspaceRequiredError:()=>rt,getDynamicLibs:()=>Wie,getPluginConfiguration:()=>F0,main:()=>i0,openWorkspace:()=>rf,pluginCommands:()=>Yg});var Be=class extends ye{constructor(){super(...arguments);this.cwd=Y.String("--cwd",{hidden:!0})}};var rt=class extends me{constructor(e,r){let i=v.relative(e,r),n=v.join(e,Ze.fileName);super(`This command can only be run from within a workspace of your project (${i} isn't a workspace of ${n}).`)}};var dJe=ie(Or());Ss();var CJe=ie(gN()),Wie=()=>new Map([["@yarnpkg/cli",iC],["@yarnpkg/core",Fd],["@yarnpkg/fslib",ch],["@yarnpkg/libzip",Fp],["@yarnpkg/parsers",Hp],["@yarnpkg/shell",jp],["clipanion",vh],["semver",dJe],["typanion",lu],["yup",CJe]]);async function rf(t,e){let{project:r,workspace:i}=await Ke.find(t,e);if(!i)throw new rt(r.cwd,e);return i}var x_e=ie(Or());Ss();var k_e=ie(gN());var hL={};it(hL,{dedupeUtils:()=>zN,default:()=>Qze,suggestUtils:()=>LN});var WAe=ie(ml());var roe=ie(aC());Ss();var LN={};it(LN,{Modifier:()=>Lo,Strategy:()=>Fr,Target:()=>vr,WorkspaceModifier:()=>af,applyModifier:()=>Zse,extractDescriptorFromPath:()=>ON,extractRangeModifier:()=>Xse,fetchDescriptorFrom:()=>MN,findProjectDescriptors:()=>toe,getModifier:()=>AC,getSuggestedDescriptors:()=>lC,makeWorkspaceDescriptor:()=>eoe,toWorkspaceModifier:()=>$se});var TN=ie(Or()),L3e="workspace:",vr;(function(i){i.REGULAR="dependencies",i.DEVELOPMENT="devDependencies",i.PEER="peerDependencies"})(vr||(vr={}));var Lo;(function(i){i.CARET="^",i.TILDE="~",i.EXACT=""})(Lo||(Lo={}));var af;(function(i){i.CARET="^",i.TILDE="~",i.EXACT="*"})(af||(af={}));var Fr;(function(s){s.KEEP="keep",s.REUSE="reuse",s.PROJECT="project",s.LATEST="latest",s.CACHE="cache"})(Fr||(Fr={}));function AC(t,e){return t.exact?Lo.EXACT:t.caret?Lo.CARET:t.tilde?Lo.TILDE:e.configuration.get("defaultSemverRangePrefix")}var T3e=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Xse(t,{project:e}){let r=t.match(T3e);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function Zse(t,e){let{protocol:r,source:i,params:n,selector:s}=S.parseRange(t.range);return TN.default.valid(s)&&(s=`${e}${t.range}`),S.makeDescriptor(t,S.makeRange({protocol:r,source:i,params:n,selector:s}))}function $se(t){switch(t){case Lo.CARET:return af.CARET;case Lo.TILDE:return af.TILDE;case Lo.EXACT:return af.EXACT;default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function eoe(t,e){return S.makeDescriptor(t.anchoredDescriptor,`${L3e}${$se(e)}`)}async function toe(t,{project:e,target:r}){let i=new Map,n=s=>{let o=i.get(s.descriptorHash);return o||i.set(s.descriptorHash,o={descriptor:s,locators:[]}),o};for(let s of e.workspaces)if(r===vr.PEER){let o=s.manifest.peerDependencies.get(t.identHash);o!==void 0&&n(o).locators.push(s.locator)}else{let o=s.manifest.dependencies.get(t.identHash),a=s.manifest.devDependencies.get(t.identHash);r===vr.DEVELOPMENT?a!==void 0?n(a).locators.push(s.locator):o!==void 0&&n(o).locators.push(s.locator):o!==void 0?n(o).locators.push(s.locator):a!==void 0&&n(a).locators.push(s.locator)}return i}async function ON(t,{cwd:e,workspace:r}){return await M3e(async i=>{v.isAbsolute(t)||(t=v.relative(r.cwd,v.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:n}=r,s=await MN(S.makeIdent(null,"archive"),t,{project:r.project,cache:i,workspace:r});if(!s)throw new Error("Assertion failed: The descriptor should have been found");let o=new ei,a=n.configuration.makeResolver(),l=n.configuration.makeFetcher(),c={checksums:n.storedChecksums,project:n,cache:i,fetcher:l,report:o,resolver:a},u=a.bindDescriptor(s,r.anchoredLocator,c),g=S.convertDescriptorToLocator(u),f=await l.fetch(g,c),h=await Ze.find(f.prefixPath,{baseFs:f.packageFs});if(!h.name)throw new Error("Target path doesn't have a name");return S.makeDescriptor(h.name,t)})}async function lC(t,{project:e,workspace:r,cache:i,target:n,modifier:s,strategies:o,maxResults:a=Infinity}){if(!(a>=0))throw new Error(`Invalid maxResults (${a})`);if(t.range!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${S.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let l=typeof r!="undefined"&&r!==null&&r.manifest[n].get(t.identHash)||null,c=[],u=[],g=async f=>{try{await f()}catch(h){u.push(h)}};for(let f of o){if(c.length>=a)break;switch(f){case Fr.KEEP:await g(async()=>{l&&c.push({descriptor:l,name:`Keep ${S.prettyDescriptor(e.configuration,l)}`,reason:"(no changes)"})});break;case Fr.REUSE:await g(async()=>{for(let{descriptor:h,locators:p}of(await toe(t,{project:e,target:n})).values()){if(p.length===1&&p[0].locatorHash===r.anchoredLocator.locatorHash&&o.includes(Fr.KEEP))continue;let d=`(originally used by ${S.prettyLocator(e.configuration,p[0])}`;d+=p.length>1?` and ${p.length-1} other${p.length>2?"s":""})`:")",c.push({descriptor:h,name:`Reuse ${S.prettyDescriptor(e.configuration,h)}`,reason:d})}});break;case Fr.CACHE:await g(async()=>{for(let h of e.storedDescriptors.values())h.identHash===t.identHash&&c.push({descriptor:h,name:`Reuse ${S.prettyDescriptor(e.configuration,h)}`,reason:"(already used somewhere in the lockfile)"})});break;case Fr.PROJECT:await g(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let h=e.tryWorkspaceByIdent(t);if(h===null)return;let p=eoe(h,s);c.push({descriptor:p,name:`Attach ${S.prettyDescriptor(e.configuration,p)}`,reason:`(local workspace at ${ue.pretty(e.configuration,h.relativeCwd,ue.Type.PATH)})`})});break;case Fr.LATEST:await g(async()=>{if(t.range!=="unknown")c.push({descriptor:t,name:`Use ${S.prettyRange(e.configuration,t.range)}`,reason:"(explicit range requested)"});else if(n===vr.PEER)c.push({descriptor:S.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!e.configuration.get("enableNetwork"))c.push({descriptor:null,name:"Resolve from latest",reason:ue.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let h=await MN(t,"latest",{project:e,cache:i,workspace:r,preserveModifier:!1});h&&(h=Zse(h,s),c.push({descriptor:h,name:`Use ${S.prettyDescriptor(e.configuration,h)}`,reason:"(resolved from latest)"}))}});break}}return{suggestions:c.slice(0,a),rejections:u.slice(0,a)}}async function MN(t,e,{project:r,cache:i,workspace:n,preserveModifier:s=!0}){let o=S.makeDescriptor(t,e),a=new ei,l=r.configuration.makeFetcher(),c=r.configuration.makeResolver(),u={project:r,fetcher:l,cache:i,checksums:r.storedChecksums,report:a,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},g=_(P({},u),{resolver:c,fetchOptions:u}),f=c.bindDescriptor(o,n.anchoredLocator,g),h=await c.getCandidates(f,new Map,g);if(h.length===0)return null;let p=h[0],{protocol:d,source:m,params:I,selector:B}=S.parseRange(S.convertToManifestRange(p.reference));if(d===r.configuration.get("defaultProtocol")&&(d=null),TN.default.valid(B)&&s!==!1){let b=typeof s=="string"?s:o.range;B=Xse(b,{project:r})+B}return S.makeDescriptor(p,S.makeRange({protocol:d,source:m,params:I,selector:B}))}async function M3e(t){return await T.mktempPromise(async e=>{let r=fe.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Qt(e,{configuration:r,check:!1,immutable:!1}))})}var cC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.exact=Y.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=Y.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=Y.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=Y.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=Y.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=Y.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=Y.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=Y.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=Y.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=Y.String("--mode",{description:"Change what artifacts installs generate",validator:Yi(li)});this.silent=Y.Boolean("--silent",{hidden:!0});this.packages=Y.Rest()}async execute(){var d;let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=(d=this.interactive)!=null?d:e.get("preferInteractive"),o=AC(this,r),a=[...s?[Fr.REUSE]:[],Fr.PROJECT,...this.cached?[Fr.CACHE]:[],Fr.LATEST],l=s?Infinity:1,c=await Promise.all(this.packages.map(async m=>{let I=m.match(/^\.{0,2}\//)?await ON(m,{cwd:this.context.cwd,workspace:i}):S.parseDescriptor(m),B=O3e(i,I,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional}),b=await lC(I,{project:r,workspace:i,cache:n,target:B,modifier:o,strategies:a,maxResults:l});return[I,b,B]})),u=await Fa.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async m=>{for(let[I,{suggestions:B,rejections:b}]of c)if(B.filter(H=>H.descriptor!==null).length===0){let[H]=b;if(typeof H=="undefined")throw new Error("Assertion failed: Expected an error to have been set");r.configuration.get("enableNetwork")?m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} can't be resolved to a satisfying range`):m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),m.reportSeparator(),m.reportExceptionOnce(H)}});if(u.hasErrors())return u.exitCode();let g=!1,f=[],h=[];for(let[,{suggestions:m},I]of c){let B,b=m.filter(K=>K.descriptor!==null),R=b[0].descriptor,H=b.every(K=>S.areDescriptorsEqual(K.descriptor,R));b.length===1||H?B=R:(g=!0,{answer:B}=await(0,roe.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:m.map(({descriptor:K,name:J,reason:ne})=>K?{name:J,hint:ne,descriptor:K}:{name:J,hint:ne,disabled:!0}),onCancel:()=>process.exit(130),result(K){return this.find(K,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let L=i.manifest[I].get(B.identHash);(typeof L=="undefined"||L.descriptorHash!==B.descriptorHash)&&(i.manifest[I].set(B.identHash,B),this.optional&&(I==="dependencies"?i.manifest.ensureDependencyMeta(_(P({},B),{range:"unknown"})).optional=!0:I==="peerDependencies"&&(i.manifest.ensurePeerDependencyMeta(_(P({},B),{range:"unknown"})).optional=!0)),typeof L=="undefined"?f.push([i,I,B,a]):h.push([i,I,L,B]))}return await e.triggerMultipleHooks(m=>m.afterWorkspaceDependencyAddition,f),await e.triggerMultipleHooks(m=>m.afterWorkspaceDependencyReplacement,h),g&&this.context.stdout.write(` -`),(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!this.context.quiet},async m=>{await r.install({cache:n,report:m,mode:this.mode})})).exitCode()}};cC.paths=[["add"]],cC.usage=ye.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/features/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});var ioe=cC;function O3e(t,e,{dev:r,peer:i,preferDev:n,optional:s}){let o=t.manifest[vr.REGULAR].has(e.identHash),a=t.manifest[vr.DEVELOPMENT].has(e.identHash),l=t.manifest[vr.PEER].has(e.identHash);if((r||i)&&o)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!i&&l)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(s&&a)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(s&&!i&&l)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||n)&&s)throw new me(`Package "${S.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);return i?vr.PEER:r||n?vr.DEVELOPMENT:o?vr.REGULAR:a?vr.DEVELOPMENT:vr.REGULAR}var uC=class extends Be{constructor(){super(...arguments);this.verbose=Y.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=Y.String({required:!1})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,locator:i}=await Ke.find(e,this.context.cwd);if(await r.restoreInstallState(),this.name){let o=(await Kt.getPackageAccessibleBinaries(i,{project:r})).get(this.name);if(!o)throw new me(`Couldn't find a binary named "${this.name}" for package "${S.prettyLocator(e,i)}"`);let[,a]=o;return this.context.stdout.write(`${a} -`),0}return(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async s=>{let o=await Kt.getPackageAccessibleBinaries(i,{project:r}),l=Array.from(o.keys()).reduce((c,u)=>Math.max(c,u.length),0);for(let[c,[u,g]]of o)s.reportJson({name:c,source:S.stringifyIdent(u),path:g});if(this.verbose)for(let[c,[u]]of o)s.reportInfo(null,`${c.padEnd(l," ")} ${S.prettyLocator(e,u)}`);else for(let c of o.keys())s.reportInfo(null,c)})).exitCode()}};uC.paths=[["bin"]],uC.usage=ye.Usage({description:"get the path to a binary script",details:` - When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. - - When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. - `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});var noe=uC;var gC=class extends Be{constructor(){super(...arguments);this.mirror=Y.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=Y.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=await Qt.find(e);return(await Fe.start({configuration:e,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&r.mirrorCwd!==null,s=!this.mirror;n&&(await T.removePromise(r.mirrorCwd),await e.triggerHook(o=>o.cleanGlobalArtifacts,e)),s&&await T.removePromise(r.cwd)})).exitCode()}};gC.paths=[["cache","clean"],["cache","clear"]],gC.usage=ye.Usage({description:"remove the shared cache files",details:` - This command will remove all the files from the cache. - `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});var soe=gC;var ooe=ie(p0()),KN=ie(require("util")),fC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=Y.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=this.name.replace(/[.[].*$/,""),i=this.name.replace(/^[^.[]*/,"");if(typeof e.settings.get(r)=="undefined")throw new me(`Couldn't find a configuration settings named "${r}"`);let s=e.getSpecial(r,{hideSecrets:!this.unsafe,getNativePaths:!0}),o=de.convertMapsToIndexableObjects(s),a=i?(0,ooe.default)(o,i):o,l=await Fe.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async c=>{c.reportJson(a)});if(!this.json){if(typeof a=="string")return this.context.stdout.write(`${a} -`),l.exitCode();KN.inspect.styles.name="cyan",this.context.stdout.write(`${(0,KN.inspect)(a,{depth:Infinity,colors:e.get("enableColors"),compact:!1})} -`)}return l.exitCode()}};fC.paths=[["config","get"]],fC.usage=ye.Usage({description:"read a configuration settings",details:` - This command will print a configuration setting. - - Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. - `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});var aoe=fC;var Eae=ie(qN()),Iae=ie(p0()),yae=ie(mae()),JN=ie(require("util")),pC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=Y.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=Y.String();this.value=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=()=>{if(!e.projectCwd)throw new me("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new me(`Couldn't find a configuration settings named "${i}"`);if(i==="enableStrictSettings")throw new me("This setting only affects the file it's in, and thus cannot be set from the CLI");let o=this.json?JSON.parse(this.value):this.value;await(this.home?h=>fe.updateHomeConfiguration(h):h=>fe.updateConfiguration(r(),h))(h=>{if(n){let p=(0,Eae.default)(h);return(0,yae.default)(p,this.name,o),p}else return _(P({},h),{[i]:o})});let c=(await fe.find(this.context.cwd,this.context.plugins)).getSpecial(i,{hideSecrets:!0,getNativePaths:!0}),u=de.convertMapsToIndexableObjects(c),g=n?(0,Iae.default)(u,n):u;return(await Fe.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async h=>{JN.inspect.styles.name="cyan",h.reportInfo(z.UNNAMED,`Successfully set ${this.name} to ${(0,JN.inspect)(g,{depth:Infinity,colors:e.get("enableColors"),compact:!1})}`)})).exitCode()}};pC.paths=[["config","set"]],pC.usage=ye.Usage({description:"change a configuration settings",details:` - This command will set a configuration setting. - - When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). - - When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. - `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});var wae=pC;var Dae=ie(qN()),Rae=ie(Ld()),Fae=ie(Pae()),dC=class extends Be{constructor(){super(...arguments);this.home=Y.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=()=>{if(!e.projectCwd)throw new me("This command must be run from within a project folder");return e.projectCwd},i=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof e.settings.get(i)=="undefined")throw new me(`Couldn't find a configuration settings named "${i}"`);let o=this.home?l=>fe.updateHomeConfiguration(l):l=>fe.updateConfiguration(r(),l);return(await Fe.start({configuration:e,includeFooter:!1,stdout:this.context.stdout},async l=>{let c=!1;await o(u=>{if(!(0,Rae.default)(u,this.name))return l.reportWarning(z.UNNAMED,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),c=!0,u;let g=n?(0,Dae.default)(u):P({},u);return(0,Fae.default)(g,this.name),g}),c||l.reportInfo(z.UNNAMED,`Successfully unset ${this.name}`)})).exitCode()}};dC.paths=[["config","unset"]],dC.usage=ye.Usage({description:"unset a configuration setting",details:` - This command will unset a configuration setting. - `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});var Nae=dC;var WN=ie(require("util")),CC=class extends Be{constructor(){super(...arguments);this.verbose=Y.Boolean("-v,--verbose",!1,{description:"Print the setting description on top of the regular key/value information"});this.why=Y.Boolean("--why",!1,{description:"Print the reason why a setting is set a particular way"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins,{strict:!1});return(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{if(e.invalid.size>0&&!this.json){for(let[n,s]of e.invalid)i.reportError(z.INVALID_CONFIGURATION_KEY,`Invalid configuration key "${n}" in ${s}`);i.reportSeparator()}if(this.json){let n=de.sortMap(e.settings.keys(),s=>s);for(let s of n){let o=e.settings.get(s),a=e.getSpecial(s,{hideSecrets:!0,getNativePaths:!0}),l=e.sources.get(s);this.verbose?i.reportJson({key:s,effective:a,source:l}):i.reportJson(P({key:s,effective:a,source:l},o))}}else{let n=de.sortMap(e.settings.keys(),a=>a),s=n.reduce((a,l)=>Math.max(a,l.length),0),o={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2};if(this.why||this.verbose){let a=n.map(c=>{let u=e.settings.get(c);if(!u)throw new Error(`Assertion failed: This settings ("${c}") should have been registered`);let g=this.why?e.sources.get(c)||"":u.description;return[c,g]}),l=a.reduce((c,[,u])=>Math.max(c,u.length),0);for(let[c,u]of a)i.reportInfo(null,`${c.padEnd(s," ")} ${u.padEnd(l," ")} ${(0,WN.inspect)(e.getSpecial(c,{hideSecrets:!0,getNativePaths:!0}),o)}`)}else for(let a of n)i.reportInfo(null,`${a.padEnd(s," ")} ${(0,WN.inspect)(e.getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),o)}`)}})).exitCode()}};CC.paths=[["config"]],CC.usage=ye.Usage({description:"display the current configuration",details:` - This command prints the current active configuration settings. - `,examples:[["Print the active configuration settings","$0 config"]]});var Lae=CC;Ss();var zN={};it(zN,{Strategy:()=>Oc,acceptedStrategies:()=>H4e,dedupe:()=>VN});var Tae=ie(Nn()),Oc;(function(e){e.HIGHEST="highest"})(Oc||(Oc={}));var H4e=new Set(Object.values(Oc)),G4e={highest:async(t,e,{resolver:r,fetcher:i,resolveOptions:n,fetchOptions:s})=>{let o=new Map;for(let[a,l]of t.storedResolutions){let c=t.storedDescriptors.get(a);if(typeof c=="undefined")throw new Error(`Assertion failed: The descriptor (${a}) should have been registered`);de.getSetWithDefault(o,c.identHash).add(l)}return Array.from(t.storedDescriptors.values(),async a=>{if(e.length&&!Tae.default.isMatch(S.stringifyIdent(a),e))return null;let l=t.storedResolutions.get(a.descriptorHash);if(typeof l=="undefined")throw new Error(`Assertion failed: The resolution (${a.descriptorHash}) should have been registered`);let c=t.originalPackages.get(l);if(typeof c=="undefined"||!r.shouldPersistResolution(c,n))return null;let u=o.get(a.identHash);if(typeof u=="undefined")throw new Error(`Assertion failed: The resolutions (${a.identHash}) should have been registered`);if(u.size===1)return null;let g=[...u].map(m=>{let I=t.originalPackages.get(m);if(typeof I=="undefined")throw new Error(`Assertion failed: The package (${m}) should have been registered`);return I.reference}),f=await r.getSatisfying(a,g,n),h=f==null?void 0:f[0];if(typeof h=="undefined")return null;let p=h.locatorHash,d=t.originalPackages.get(p);if(typeof d=="undefined")throw new Error(`Assertion failed: The package (${p}) should have been registered`);return p===l?null:{descriptor:a,currentPackage:c,updatedPackage:d}})}};async function VN(t,{strategy:e,patterns:r,cache:i,report:n}){let{configuration:s}=t,o=new ei,a=s.makeResolver(),l=s.makeFetcher(),c={cache:i,checksums:t.storedChecksums,fetcher:l,project:t,report:o,skipIntegrityCheck:!0,cacheOptions:{skipIntegrityCheck:!0}},u={project:t,resolver:a,report:o,fetchOptions:c};return await n.startTimerPromise("Deduplication step",async()=>{let f=await G4e[e](t,r,{resolver:a,resolveOptions:u,fetcher:l,fetchOptions:c}),h=Xi.progressViaCounter(f.length);n.reportProgress(h);let p=0;await Promise.all(f.map(I=>I.then(B=>{if(B===null)return;p++;let{descriptor:b,currentPackage:R,updatedPackage:H}=B;n.reportInfo(z.UNNAMED,`${S.prettyDescriptor(s,b)} can be deduped from ${S.prettyLocator(s,R)} to ${S.prettyLocator(s,H)}`),n.reportJson({descriptor:S.stringifyDescriptor(b),currentResolution:S.stringifyLocator(R),updatedResolution:S.stringifyLocator(H)}),t.storedResolutions.set(b.descriptorHash,H.locatorHash)}).finally(()=>h.tick())));let d;switch(p){case 0:d="No packages";break;case 1:d="One package";break;default:d=`${p} packages`}let m=ue.pretty(s,e,ue.Type.CODE);return n.reportInfo(z.UNNAMED,`${d} can be deduped using the ${m} strategy`),p})}var mC=class extends Be{constructor(){super(...arguments);this.strategy=Y.String("-s,--strategy",Oc.HIGHEST,{description:"The strategy to use when deduping dependencies",validator:Yi(Oc)});this.check=Y.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=Y.String("--mode",{description:"Change what artifacts installs generate",validator:Yi(li)});this.patterns=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd),i=await Qt.find(e);await r.restoreInstallState({restoreResolutions:!1});let n=0,s=await Fe.start({configuration:e,includeFooter:!1,stdout:this.context.stdout,json:this.json},async o=>{n=await VN(r,{strategy:this.strategy,patterns:this.patterns,cache:i,report:o})});return s.hasErrors()?s.exitCode():this.check?n?1:0:(await Fe.start({configuration:e,stdout:this.context.stdout,json:this.json},async a=>{await r.install({cache:i,report:a,mode:this.mode})})).exitCode()}};mC.paths=[["dedupe"]],mC.usage=ye.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});var Mae=mC;var Y0=class extends Be{async execute(){let{plugins:e}=await fe.find(this.context.cwd,this.context.plugins),r=[];for(let o of e){let{commands:a}=o[1];if(a){let c=oo.from(a).definitions();r.push([o[0],c])}}let i=this.cli.definitions(),n=(o,a)=>o.split(" ").slice(1).join()===a.split(" ").slice(1).join(),s=Kae()["@yarnpkg/builder"].bundles.standard;for(let o of r){let a=o[1];for(let l of a)i.find(c=>n(c.path,l.path)).plugin={name:o[0],isDefault:s.includes(o[0])}}this.context.stdout.write(`${JSON.stringify(i,null,2)} -`)}};Y0.paths=[["--clipanion=definitions"]];var Uae=Y0;var q0=class extends Be{async execute(){this.context.stdout.write(this.cli.usage(null))}};q0.paths=[["help"],["--help"],["-h"]];var Hae=q0;var _N=class extends Be{constructor(){super(...arguments);this.leadingArgument=Y.String();this.args=Y.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!S.tryParseIdent(this.leadingArgument)){let e=v.resolve(this.context.cwd,M.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:e})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}},Gae=_N;var J0=class extends Be{async execute(){this.context.stdout.write(`${Zr||""} -`)}};J0.paths=[["-v"],["--version"]];var jae=J0;var EC=class extends Be{constructor(){super(...arguments);this.commandName=Y.String();this.args=Y.Proxy()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,locator:i}=await Ke.find(e,this.context.cwd);return await r.restoreInstallState(),await Kt.executePackageShellcode(i,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:r})}};EC.paths=[["exec"]],EC.usage=ye.Usage({description:"execute a shell script",details:` - This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. - - It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});var Yae=EC;Ss();var IC=class extends Be{constructor(){super(...arguments);this.hash=Y.String({required:!1,validator:fv(gv(),[hv(/^p[0-9a-f]{5}$/)])})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd);return await r.restoreInstallState({restoreResolutions:!1}),await r.applyLightResolution(),typeof this.hash!="undefined"?await j4e(this.hash,r,{stdout:this.context.stdout}):(await Fe.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async n=>{var o;let s=[([,a])=>S.stringifyLocator(r.storedPackages.get(a.subject)),([,a])=>S.stringifyIdent(a.requested)];for(let[a,l]of de.sortMap(r.peerRequirements,s)){let c=r.storedPackages.get(l.subject);if(typeof c=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let u=r.storedPackages.get(l.rootRequester);if(typeof u=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let g=(o=c.dependencies.get(l.requested.identHash))!=null?o:null,f=ue.pretty(e,a,ue.Type.CODE),h=S.prettyLocator(e,c),p=S.prettyIdent(e,l.requested),d=S.prettyIdent(e,u),m=l.allRequesters.length-1,I=`descendant${m===1?"":"s"}`,B=m>0?` and ${m} ${I}`:"",b=g!==null?"provides":"doesn't provide";n.reportInfo(null,`${f} \u2192 ${h} ${b} ${p} to ${d}${B}`)}})).exitCode()}};IC.paths=[["explain","peer-requirements"]],IC.usage=ye.Usage({description:"explain a set of peer requirements",details:` - A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. - - When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. - - When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. - - **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). - `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});var qae=IC;async function j4e(t,e,r){let{configuration:i}=e,n=e.peerRequirements.get(t);if(typeof n=="undefined")throw new Error(`No peerDependency requirements found for hash: "${t}"`);return(await Fe.start({configuration:i,stdout:r.stdout,includeFooter:!1},async o=>{var I,B;let a=e.storedPackages.get(n.subject);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the subject package to have been registered");let l=e.storedPackages.get(n.rootRequester);if(typeof l=="undefined")throw new Error("Assertion failed: Expected the root package to have been registered");let c=(I=a.dependencies.get(n.requested.identHash))!=null?I:null,u=c!==null?e.storedResolutions.get(c.descriptorHash):null;if(typeof u=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let g=u!==null?e.storedPackages.get(u):null;if(typeof g=="undefined")throw new Error("Assertion failed: Expected the provided package to have been registered");let f=[...n.allRequesters.values()].map(b=>{let R=e.storedPackages.get(b);if(typeof R=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let H=S.devirtualizeLocator(R),L=e.storedPackages.get(H.locatorHash);if(typeof L=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let K=L.peerDependencies.get(n.requested.identHash);if(typeof K=="undefined")throw new Error("Assertion failed: Expected the peer dependency to be registered");return{pkg:R,peerDependency:K}});if(g!==null){let b=f.every(({peerDependency:R})=>qt.satisfiesWithPrereleases(g.version,R.range));o.reportInfo(z.UNNAMED,`${S.prettyLocator(i,a)} provides ${S.prettyLocator(i,g)} with version ${S.prettyReference(i,(B=g.version)!=null?B:"")}, which ${b?"satisfies":"doesn't satisfy"} the following requirements:`)}else o.reportInfo(z.UNNAMED,`${S.prettyLocator(i,a)} doesn't provide ${S.prettyIdent(i,n.requested)}, breaking the following requirements:`);o.reportSeparator();let h=ue.mark(i),p=[];for(let{pkg:b,peerDependency:R}of de.sortMap(f,H=>S.stringifyLocator(H.pkg))){let L=(g!==null?qt.satisfiesWithPrereleases(g.version,R.range):!1)?h.Check:h.Cross;p.push({stringifiedLocator:S.stringifyLocator(b),prettyLocator:S.prettyLocator(i,b),prettyRange:S.prettyRange(i,R.range),mark:L})}let d=Math.max(...p.map(({stringifiedLocator:b})=>b.length)),m=Math.max(...p.map(({prettyRange:b})=>b.length));for(let{stringifiedLocator:b,prettyLocator:R,prettyRange:H,mark:L}of de.sortMap(p,({stringifiedLocator:K})=>K))o.reportInfo(null,`${R.padEnd(d+(R.length-b.length)," ")} \u2192 ${H.padEnd(m," ")} ${L}`);p.length>1&&(o.reportSeparator(),o.reportInfo(z.UNNAMED,`Note: these requirements start with ${S.prettyLocator(e.configuration,l)}`))})).exitCode()}var Jae=ie(Nn()),yC=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=Y.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=Y.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=Y.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=Y.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=Y.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=Y.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=Y.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i&&!this.all)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState();let s=new Set(this.extra);this.cache&&s.add("cache"),this.dependents&&s.add("dependents"),this.manifest&&s.add("manifest");let o=(b,{recursive:R})=>{let H=b.anchoredLocator.locatorHash,L=new Map,K=[H];for(;K.length>0;){let J=K.shift();if(L.has(J))continue;let ne=r.storedPackages.get(J);if(typeof ne=="undefined")throw new Error("Assertion failed: Expected the package to be registered");if(L.set(J,ne),S.isVirtualLocator(ne)&&K.push(S.devirtualizeLocator(ne).locatorHash),!(!R&&J!==H))for(let q of ne.dependencies.values()){let A=r.storedResolutions.get(q.descriptorHash);if(typeof A=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");K.push(A)}}return L.values()},a=({recursive:b})=>{let R=new Map;for(let H of r.workspaces)for(let L of o(H,{recursive:b}))R.set(L.locatorHash,L);return R.values()},l=({all:b,recursive:R})=>b&&R?r.storedPackages.values():b?a({recursive:R}):o(i,{recursive:R}),c=({all:b,recursive:R})=>{let H=l({all:b,recursive:R}),L=this.patterns.map(ne=>{let q=S.parseLocator(ne),A=Jae.default.makeRe(S.stringifyIdent(q)),V=S.isVirtualLocator(q),W=V?S.devirtualizeLocator(q):q;return X=>{let F=S.stringifyIdent(X);if(!A.test(F))return!1;if(q.reference==="unknown")return!0;let D=S.isVirtualLocator(X),he=D?S.devirtualizeLocator(X):X;return!(V&&D&&q.reference!==X.reference||W.reference!==he.reference)}}),K=de.sortMap([...H],ne=>S.stringifyLocator(ne));return{selection:K.filter(ne=>L.length===0||L.some(q=>q(ne))),sortedLookup:K}},{selection:u,sortedLookup:g}=c({all:this.all,recursive:this.recursive});if(u.length===0)throw new me("No package matched your request");let f=new Map;if(this.dependents)for(let b of g)for(let R of b.dependencies.values()){let H=r.storedResolutions.get(R.descriptorHash);if(typeof H=="undefined")throw new Error("Assertion failed: Expected the resolution to be registered");de.getArrayWithDefault(f,H).push(b)}let h=new Map;for(let b of g){if(!S.isVirtualLocator(b))continue;let R=S.devirtualizeLocator(b);de.getArrayWithDefault(h,R.locatorHash).push(b)}let p={},d={children:p},m=e.makeFetcher(),I={project:r,fetcher:m,cache:n,checksums:r.storedChecksums,report:new ei,cacheOptions:{skipIntegrityCheck:!0},skipIntegrityCheck:!0},B=[async(b,R,H)=>{var J,ne;if(!R.has("manifest"))return;let L=await m.fetch(b,I),K;try{K=await Ze.find(L.prefixPath,{baseFs:L.packageFs})}finally{(J=L.releaseFs)==null||J.call(L)}H("Manifest",{License:ue.tuple(ue.Type.NO_HINT,K.license),Homepage:ue.tuple(ue.Type.URL,(ne=K.raw.homepage)!=null?ne:null)})},async(b,R,H)=>{var A;if(!R.has("cache"))return;let L={mockedPackages:r.disabledLocators,unstablePackages:r.conditionalLocators},K=(A=r.storedChecksums.get(b.locatorHash))!=null?A:null,J=n.getLocatorPath(b,K,L),ne;if(J!==null)try{ne=T.statSync(J)}catch{}let q=typeof ne!="undefined"?[ne.size,ue.Type.SIZE]:void 0;H("Cache",{Checksum:ue.tuple(ue.Type.NO_HINT,K),Path:ue.tuple(ue.Type.PATH,J),Size:q})}];for(let b of u){let R=S.isVirtualLocator(b);if(!this.virtuals&&R)continue;let H={},L={value:[b,ue.Type.LOCATOR],children:H};if(p[S.stringifyLocator(b)]=L,this.nameOnly){delete L.children;continue}let K=h.get(b.locatorHash);typeof K!="undefined"&&(H.Instances={label:"Instances",value:ue.tuple(ue.Type.NUMBER,K.length)}),H.Version={label:"Version",value:ue.tuple(ue.Type.NO_HINT,b.version)};let J=(q,A)=>{let V={};if(H[q]=V,Array.isArray(A))V.children=A.map(W=>({value:W}));else{let W={};V.children=W;for(let[X,F]of Object.entries(A))typeof F!="undefined"&&(W[X]={label:X,value:F})}};if(!R){for(let q of B)await q(b,s,J);await e.triggerHook(q=>q.fetchPackageInfo,b,s,J)}b.bin.size>0&&!R&&J("Exported Binaries",[...b.bin.keys()].map(q=>ue.tuple(ue.Type.PATH,q)));let ne=f.get(b.locatorHash);typeof ne!="undefined"&&ne.length>0&&J("Dependents",ne.map(q=>ue.tuple(ue.Type.LOCATOR,q))),b.dependencies.size>0&&!R&&J("Dependencies",[...b.dependencies.values()].map(q=>{var W;let A=r.storedResolutions.get(q.descriptorHash),V=typeof A!="undefined"&&(W=r.storedPackages.get(A))!=null?W:null;return ue.tuple(ue.Type.RESOLUTION,{descriptor:q,locator:V})})),b.peerDependencies.size>0&&R&&J("Peer dependencies",[...b.peerDependencies.values()].map(q=>{var X,F;let A=b.dependencies.get(q.identHash),V=typeof A!="undefined"&&(X=r.storedResolutions.get(A.descriptorHash))!=null?X:null,W=V!==null&&(F=r.storedPackages.get(V))!=null?F:null;return ue.tuple(ue.Type.RESOLUTION,{descriptor:q,locator:W})}))}Hs.emitTree(d,{configuration:e,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};yC.paths=[["info"]],yC.usage=ye.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});var Wae=yC;var W0=ie(ml());Ss();var wC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=Y.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=Y.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.checkCache=Y.Boolean("--check-cache",!1,{description:"Always refetch the packages and ensure that their checksums are consistent"});this.inlineBuilds=Y.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=Y.String("--mode",{description:"Change what artifacts installs generate",validator:Yi(li)});this.cacheFolder=Y.String("--cache-folder",{hidden:!0});this.frozenLockfile=Y.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=Y.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=Y.Boolean("--non-interactive",{hidden:!0});this.preferOffline=Y.Boolean("--prefer-offline",{hidden:!0});this.production=Y.Boolean("--production",{hidden:!0});this.registry=Y.String("--registry",{hidden:!0});this.silent=Y.Boolean("--silent",{hidden:!0});this.networkTimeout=Y.String("--network-timeout",{hidden:!0})}async execute(){var c;let e=await fe.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds!="undefined"&&e.useWithSource("",{enableInlineBuilds:this.inlineBuilds},e.startingCwd,{overwrite:!0});let r=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,i=async(u,{error:g})=>{let f=await Fe.start({configuration:e,stdout:this.context.stdout,includeFooter:!1},async h=>{g?h.reportError(z.DEPRECATED_CLI_SETTINGS,u):h.reportWarning(z.DEPRECATED_CLI_SETTINGS,u)});return f.hasErrors()?f.exitCode():null};if(typeof this.ignoreEngines!="undefined"){let u=await i("The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",{error:!W0.default.VERCEL});if(u!==null)return u}if(typeof this.registry!="undefined"){let u=await i("The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file",{error:!1});if(u!==null)return u}if(typeof this.preferOffline!="undefined"){let u=await i("The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",{error:!W0.default.VERCEL});if(u!==null)return u}if(typeof this.production!="undefined"){let u=await i("The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",{error:!0});if(u!==null)return u}if(typeof this.nonInteractive!="undefined"){let u=await i("The --non-interactive option is deprecated",{error:!r});if(u!==null)return u}if(typeof this.frozenLockfile!="undefined"&&(await i("The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",{error:!1}),this.immutable=this.frozenLockfile),typeof this.cacheFolder!="undefined"){let u=await i("The cache-folder option has been deprecated; use rc settings instead",{error:!W0.default.NETLIFY});if(u!==null)return u}let n=(c=this.immutable)!=null?c:e.get("enableImmutableInstalls");if(e.projectCwd!==null){let u=await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async g=>{await Y4e(e,n)&&(g.reportInfo(z.AUTOMERGE_SUCCESS,"Automatically fixed merge conflicts \u{1F44D}"),g.reportSeparator())});if(u.hasErrors())return u.exitCode()}if(e.projectCwd!==null&&typeof e.sources.get("nodeLinker")=="undefined"){let u=e.projectCwd,g;try{g=await T.readFilePromise(v.join(u,wt.lockfile),"utf8")}catch{}if(g==null?void 0:g.includes("yarn lockfile v1")){let f=await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async h=>{h.reportInfo(z.AUTO_NM_SUCCESS,"Migrating from Yarn 1; automatically enabling the compatibility node-modules linker \u{1F44D}"),h.reportSeparator(),e.use("",{nodeLinker:"node-modules"},u,{overwrite:!0}),await fe.updateConfiguration(u,{nodeLinker:"node-modules"})});if(f.hasErrors())return f.exitCode()}}if(e.projectCwd!==null){let u=await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeFooter:!1},async g=>{var f;((f=fe.telemetry)==null?void 0:f.isNew)&&(g.reportInfo(z.TELEMETRY_NOTICE,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),g.reportInfo(z.TELEMETRY_NOTICE,`Run ${ue.pretty(e,"yarn config set --home enableTelemetry 0",ue.Type.CODE)} to disable`),g.reportSeparator())});if(u.hasErrors())return u.exitCode()}let{project:s,workspace:o}=await Ke.find(e,this.context.cwd),a=await Qt.find(e,{immutable:this.immutableCache,check:this.checkCache});if(!o)throw new rt(s.cwd,this.context.cwd);return await s.restoreInstallState({restoreResolutions:!1}),(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout,includeLogs:!0},async u=>{await s.install({cache:a,report:u,immutable:n,mode:this.mode})})).exitCode()}};wC.paths=[["install"],ye.Default],wC.usage=ye.Usage({description:"install the project dependencies",details:` - This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics: - - - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ). - - - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of \`cacheFolder\` in \`yarn config\` to see where the cache files are stored). - - - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the .pnp.cjs file you might know). - - - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail. - - Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your .pnp.cjs file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches. - - If the \`--immutable\` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the \`immutablePatterns\` configuration setting). For backward compatibility we offer an alias under the name of \`--frozen-lockfile\`, but it will be removed in a later release. - - If the \`--immutable-cache\` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed). - - If the \`--check-cache\` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them. - - If the \`--inline-builds\` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments. - - If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - - - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - - - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - `,examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var zae=wC,q4e="|||||||",J4e=">>>>>>>",W4e="=======",Vae="<<<<<<<";async function Y4e(t,e){if(!t.projectCwd)return!1;let r=v.join(t.projectCwd,t.get("lockfileFilename"));if(!await T.existsPromise(r))return!1;let i=await T.readFilePromise(r,"utf8");if(!i.includes(Vae))return!1;if(e)throw new nt(z.AUTOMERGE_IMMUTABLE,"Cannot autofix a lockfile when running an immutable install");let[n,s]=z4e(i),o,a;try{o=Ii(n),a=Ii(s)}catch(c){throw new nt(z.AUTOMERGE_FAILED_TO_PARSE,"The individual variants of the lockfile failed to parse")}let l=P(P({},o),a);for(let[c,u]of Object.entries(l))typeof u=="string"&&delete l[c];return await T.changeFilePromise(r,Qa(l),{automaticNewlines:!0}),!0}function z4e(t){let e=[[],[]],r=t.split(/\r?\n/g),i=!1;for(;r.length>0;){let n=r.shift();if(typeof n=="undefined")throw new Error("Assertion failed: Some lines should remain");if(n.startsWith(Vae)){for(;r.length>0;){let s=r.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s===W4e){i=!1;break}else if(i||s.startsWith(q4e)){i=!0;continue}else e[0].push(s)}for(;r.length>0;){let s=r.shift();if(typeof s=="undefined")throw new Error("Assertion failed: Some lines should remain");if(s.startsWith(J4e))break;e[1].push(s)}}else e[0].push(n),e[1].push(n)}return[e[0].join(` -`),e[1].join(` -`)]}var BC=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target project to the current one"});this.private=Y.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target project to the current one"});this.relative=Y.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destination=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=v.resolve(this.context.cwd,M.toPortablePath(this.destination)),o=await fe.find(s,this.context.plugins,{useRc:!1,strict:!1}),{project:a,workspace:l}=await Ke.find(o,s);if(r.cwd===a.cwd)throw new me("Invalid destination; Can't link the project to itself");if(!l)throw new rt(a.cwd,s);let c=r.topLevelWorkspace,u=[];if(this.all){for(let f of a.workspaces)f.manifest.name&&(!f.manifest.private||this.private)&&u.push(f);if(u.length===0)throw new me("No workspace found to be linked in the target project")}else{if(!l.manifest.name)throw new me("The target workspace doesn't have a name and thus cannot be linked");if(l.manifest.private&&!this.private)throw new me("The target workspace is marked private - use the --private flag to link it anyway");u.push(l)}for(let f of u){let h=S.stringifyIdent(f.locator),p=this.relative?v.relative(r.cwd,f.cwd):f.cwd;c.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${p}`})}return(await Fe.start({configuration:e,stdout:this.context.stdout},async f=>{await r.install({cache:n,report:f})})).exitCode()}};BC.paths=[["link"]],BC.usage=ye.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register a remote workspace for use in the current project","$0 link ~/ts-loader"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});var _ae=BC;var QC=class extends Be{constructor(){super(...arguments);this.args=Y.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};QC.paths=[["node"]],QC.usage=ye.Usage({description:"run node with the hook already setup",details:` - This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). - - The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. - `,examples:[["Run a Node script","$0 node ./my-script.js"]]});var Xae=QC;var lAe=ie(require("os"));var rAe=ie(require("os"));var V4e="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Kc(t){let e=await Zt.get(V4e,{configuration:t});return Ii(e.toString())}var bC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins);return(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{let n=await Kc(e);for(let s of Object.entries(n)){let[l,o]=s,a=o,{experimental:c}=a,u=qr(a,["experimental"]);let g=l;c&&(g+=" [experimental]"),i.reportJson(P({name:l,experimental:c},u)),i.reportInfo(null,g)}})).exitCode()}};bC.paths=[["plugin","list"]],bC.usage=ye.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var Zae=bC;var $ae=ie(Or()),vC=class extends Be{constructor(){super(...arguments);this.onlyIfNeeded=Y.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins);if(e.get("yarnPath")&&this.onlyIfNeeded)return 0;let r=()=>{if(typeof Zr=="undefined")throw new me("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},i;if(this.version==="self")i=r();else if(this.version==="latest"||this.version==="berry"||this.version==="stable")i=`https://repo.yarnpkg.com/${await eAe(e,"stable")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="canary")i=`https://repo.yarnpkg.com/${await eAe(e,"canary")}/packages/yarnpkg-cli/bin/yarn.js`;else if(this.version==="classic")i="https://nightly.yarnpkg.com/latest.js";else if(this.version.match(/^\.{0,2}[\\/]/)||M.isAbsolute(this.version))i=`file://${M.resolve(this.version)}`;else if(qt.satisfiesWithPrereleases(this.version,">=2.0.0"))i=`https://repo.yarnpkg.com/${this.version}/packages/yarnpkg-cli/bin/yarn.js`;else if(qt.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))i=`https://github.com/yarnpkg/yarn/releases/download/v${this.version}/yarn-${this.version}.js`;else if(qt.validRange(this.version))i=`https://repo.yarnpkg.com/${await _4e(e,this.version)}/packages/yarnpkg-cli/bin/yarn.js`;else throw new me(`Invalid version descriptor "${this.version}"`);return(await Fe.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async s=>{let o="file://",a;i.startsWith(o)?(s.reportInfo(z.UNNAMED,`Downloading ${ue.pretty(e,i,ps.URL)}`),a=await T.readFilePromise(M.toPortablePath(i.slice(o.length)))):(s.reportInfo(z.UNNAMED,`Retrieving ${ue.pretty(e,i,ps.PATH)}`),a=await Zt.get(i,{configuration:e})),await XN(e,null,a,{report:s})})).exitCode()}};vC.paths=[["set","version"]],vC.usage=ye.Usage({description:"lock the Yarn version used by the project",details:"\n This command will download a specific release of Yarn directly from the Yarn GitHub repository, will store it inside your project, and will change the `yarnPath` settings from your project `.yarnrc.yml` file to point to the new file.\n\n A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting a different behavior than you.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Download the version used to invoke the command","$0 set version self"]]});var tAe=vC;async function _4e(t,e){let i=(await Zt.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(n=>qt.satisfiesWithPrereleases(n,e));if(i.length===0)throw new me(`No matching release found for range ${ue.pretty(t,e,ue.Type.RANGE)}.`);return i[0]}async function eAe(t,e){let r=await Zt.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new me(`Tag ${ue.pretty(t,e,ue.Type.RANGE)} not found`);return r.latest[e]}async function XN(t,e,r,{report:i}){var g;e===null&&await T.mktempPromise(async f=>{let h=v.join(f,"yarn.cjs");await T.writeFilePromise(h,r);let{stdout:p}=await hr.execvp(process.execPath,[M.fromPortablePath(h),"--version"],{cwd:f,env:_(P({},process.env),{YARN_IGNORE_PATH:"1"})});if(e=p.trim(),!$ae.default.valid(e))throw new Error(`Invalid semver version. ${ue.pretty(t,"yarn --version",ue.Type.CODE)} returned: -${e}`)});let n=(g=t.projectCwd)!=null?g:t.startingCwd,s=v.resolve(n,".yarn/releases"),o=v.resolve(s,`yarn-${e}.cjs`),a=v.relative(t.startingCwd,o),l=v.relative(n,o),c=t.get("yarnPath"),u=c===null||c.startsWith(`${s}/`);if(i.reportInfo(z.UNNAMED,`Saving the new release in ${ue.pretty(t,a,"magenta")}`),await T.removePromise(v.dirname(o)),await T.mkdirPromise(v.dirname(o),{recursive:!0}),await T.writeFilePromise(o,r,{mode:493}),u){await fe.updateConfiguration(n,{yarnPath:l});let f=await Ze.tryFind(n)||new Ze;e&&de.isTaggedYarnVersion(e)&&(f.packageManager=`yarn@${e}`);let h={};f.exportTo(h);let p=v.join(n,Ze.fileName),d=`${JSON.stringify(h,null,f.indent)} -`;await T.changeFilePromise(p,d,{automaticNewlines:!0})}}var X4e=/^[0-9]+$/;function iAe(t){return X4e.test(t)?`pull/${t}/head`:t}var Z4e=({repository:t,branch:e},r)=>[["git","init",M.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin",iAe(e)],["git","reset","--hard","FETCH_HEAD"]],$4e=({branch:t})=>[["git","fetch","origin",iAe(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx"]],eze=({plugins:t,noMinify:e},r)=>[["yarn","build:cli",...new Array().concat(...t.map(i=>["--plugin",v.resolve(r,i)])),...e?["--no-minify"]:[],"|"]],SC=class extends Be{constructor(){super(...arguments);this.installPath=Y.String("--path",{description:"The path where the repository should be cloned to"});this.repository=Y.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=Y.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=Y.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.noMinify=Y.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=Y.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=Y.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd),i=typeof this.installPath!="undefined"?v.resolve(this.context.cwd,M.toPortablePath(this.installPath)):v.resolve(M.toPortablePath((0,rAe.tmpdir)()),"yarnpkg-sources",mn.makeHash(this.repository).slice(0,6));return(await Fe.start({configuration:e,stdout:this.context.stdout},async s=>{await $N(this,{configuration:e,report:s,target:i}),s.reportSeparator(),s.reportInfo(z.UNNAMED,"Building a fresh bundle"),s.reportSeparator(),await xC(eze(this,i),{configuration:e,context:this.context,target:i}),s.reportSeparator();let o=v.resolve(i,"packages/yarnpkg-cli/bundles/yarn.js"),a=await T.readFilePromise(o);await XN(e,"sources",a,{report:s}),this.skipPlugins||await tze(this,{project:r,report:s,target:i})})).exitCode()}};SC.paths=[["set","version","from","sources"]],SC.usage=ye.Usage({description:"build Yarn from master",details:` - This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. - - By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. - `,examples:[["Build Yarn from master","$0 set version from sources"]]});var nAe=SC;async function xC(t,{configuration:e,context:r,target:i}){for(let[n,...s]of t){let o=s[s.length-1]==="|";if(o&&s.pop(),o)await hr.pipevp(n,s,{cwd:i,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${ue.pretty(e,` $ ${[n,...s].join(" ")}`,"grey")} -`);try{await hr.execvp(n,s,{cwd:i,strict:!0})}catch(a){throw r.stdout.write(a.stdout||a.stack),a}}}}async function $N(t,{configuration:e,report:r,target:i}){let n=!1;if(!t.force&&T.existsSync(v.join(i,".git"))){r.reportInfo(z.UNNAMED,"Fetching the latest commits"),r.reportSeparator();try{await xC($4e(t),{configuration:e,context:t.context,target:i}),n=!0}catch(s){r.reportSeparator(),r.reportWarning(z.UNNAMED,"Repository update failed; we'll try to regenerate it")}}n||(r.reportInfo(z.UNNAMED,"Cloning the remote repository"),r.reportSeparator(),await T.removePromise(i),await T.mkdirPromise(i,{recursive:!0}),await xC(Z4e(t,i),{configuration:e,context:t.context,target:i}))}async function tze(t,{project:e,report:r,target:i}){let n=await Kc(e.configuration),s=new Set(Object.keys(n));for(let o of e.configuration.plugins.keys())!s.has(o)||await ZN(o,t,{project:e,report:r,target:i})}var sAe=ie(Or()),oAe=ie(require("url")),aAe=ie(require("vm"));var kC=class extends Be{constructor(){super(...arguments);this.name=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins);return(await Fe.start({configuration:e,stdout:this.context.stdout},async i=>{let{project:n}=await Ke.find(e,this.context.cwd),s,o;if(this.name.match(/^\.{0,2}[\\/]/)||M.isAbsolute(this.name)){let a=v.resolve(this.context.cwd,M.toPortablePath(this.name));i.reportInfo(z.UNNAMED,`Reading ${ue.pretty(e,a,ue.Type.PATH)}`),s=v.relative(n.cwd,a),o=await T.readFilePromise(a)}else{let a;if(this.name.match(/^https?:/)){try{new oAe.URL(this.name)}catch{throw new nt(z.INVALID_PLUGIN_REFERENCE,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}s=this.name,a=this.name}else{let l=S.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(l.reference!=="unknown"&&!sAe.default.valid(l.reference))throw new nt(z.UNNAMED,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let c=S.stringifyIdent(l),u=await Kc(e);if(!Object.prototype.hasOwnProperty.call(u,c))throw new nt(z.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${c}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be referenced by their name; any other plugin will have to be referenced through its public url (for example https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js).`);s=c,a=u[c].url,l.reference!=="unknown"?a=a.replace(/\/master\//,`/${c}/${l.reference}/`):Zr!==null&&(a=a.replace(/\/master\//,`/@yarnpkg/cli/${Zr}/`))}i.reportInfo(z.UNNAMED,`Downloading ${ue.pretty(e,a,"green")}`),o=await Zt.get(a,{configuration:e})}await eL(s,o,{project:n,report:i})})).exitCode()}};kC.paths=[["plugin","import"]],kC.usage=ye.Usage({category:"Plugin-related commands",description:"download a plugin",details:` - This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. - - Three types of plugin references are accepted: - - - If the plugin is stored within the Yarn repository, it can be referenced by name. - - Third-party plugins can be referenced directly through their public urls. - - Local plugins can be referenced by their path on the disk. - - Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). - `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});var AAe=kC;async function eL(t,e,{project:r,report:i}){let{configuration:n}=r,s={},o={exports:s};(0,aAe.runInNewContext)(e.toString(),{module:o,exports:s});let a=o.exports.name,l=`.yarn/plugins/${a}.cjs`,c=v.resolve(r.cwd,l);i.reportInfo(z.UNNAMED,`Saving the new plugin in ${ue.pretty(n,l,"magenta")}`),await T.mkdirPromise(v.dirname(c),{recursive:!0}),await T.writeFilePromise(c,e);let u={path:l,spec:t};await fe.updateConfiguration(r.cwd,g=>{let f=[],h=!1;for(let p of g.plugins||[]){let d=typeof p!="string"?p.path:p,m=v.resolve(r.cwd,M.toPortablePath(d)),{name:I}=de.dynamicRequire(m);I!==a?f.push(p):(f.push(u),h=!0)}return h||f.push(u),_(P({},g),{plugins:f})})}var rze=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],PC=class extends Be{constructor(){super(...arguments);this.installPath=Y.String("--path",{description:"The path where the repository should be cloned to"});this.repository=Y.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=Y.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=Y.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=Y.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=typeof this.installPath!="undefined"?v.resolve(this.context.cwd,M.toPortablePath(this.installPath)):v.resolve(M.toPortablePath((0,lAe.tmpdir)()),"yarnpkg-sources",mn.makeHash(this.repository).slice(0,6));return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{let{project:s}=await Ke.find(e,this.context.cwd),o=S.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),a=S.stringifyIdent(o),l=await Kc(e);if(!Object.prototype.hasOwnProperty.call(l,a))throw new nt(z.PLUGIN_NAME_NOT_FOUND,`Couldn't find a plugin named "${a}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let c=a;await $N(this,{configuration:e,report:n,target:r}),await ZN(c,this,{project:s,report:n,target:r})})).exitCode()}};PC.paths=[["plugin","import","from","sources"]],PC.usage=ye.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` - This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. - - The plugins can be referenced by their short name if sourced from the official Yarn repository. - `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});var cAe=PC;async function ZN(t,{context:e,noMinify:r},{project:i,report:n,target:s}){let o=t.replace(/@yarnpkg\//,""),{configuration:a}=i;n.reportSeparator(),n.reportInfo(z.UNNAMED,`Building a fresh ${o}`),n.reportSeparator(),await xC(rze({pluginName:o,noMinify:r},s),{configuration:a,context:e,target:s}),n.reportSeparator();let l=v.resolve(s,`packages/${o}/bundles/${t}.js`),c=await T.readFilePromise(l);await eL(t,c,{project:i,report:n})}var DC=class extends Be{constructor(){super(...arguments);this.name=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd);return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{let s=this.name,o=S.parseIdent(s);if(!e.plugins.has(s))throw new me(`${S.prettyIdent(e,o)} isn't referenced by the current configuration`);let a=`.yarn/plugins/${s}.cjs`,l=v.resolve(r.cwd,a);T.existsSync(l)&&(n.reportInfo(z.UNNAMED,`Removing ${ue.pretty(e,a,ue.Type.PATH)}...`),await T.removePromise(l)),n.reportInfo(z.UNNAMED,"Updating the configuration..."),await fe.updateConfiguration(r.cwd,c=>{if(!Array.isArray(c.plugins))return c;let u=c.plugins.filter(g=>g.path!==a);return c.plugins.length===u.length?c:_(P({},c),{plugins:u})})})).exitCode()}};DC.paths=[["plugin","remove"]],DC.usage=ye.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` - This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. - - **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. - `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});var uAe=DC;var RC=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins);return(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async i=>{for(let n of e.plugins.keys()){let s=this.context.plugins.plugins.has(n),o=n;s&&(o+=" [builtin]"),i.reportJson({name:n,builtin:s}),i.reportInfo(null,`${o}`)}})).exitCode()}};RC.paths=[["plugin","runtime"]],RC.usage=ye.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` - This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. - `,examples:[["List the currently active plugins","$0 plugin runtime"]]});var gAe=RC;var FC=class extends Be{constructor(){super(...arguments);this.idents=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);let s=new Set;for(let a of this.idents)s.add(S.parseIdent(a).identHash);if(await r.restoreInstallState({restoreResolutions:!1}),await r.resolveEverything({cache:n,report:new ei}),s.size>0)for(let a of r.storedPackages.values())s.has(a.identHash)&&r.storedBuildState.delete(a.locatorHash);else r.storedBuildState.clear();return(await Fe.start({configuration:e,stdout:this.context.stdout,includeLogs:!this.context.quiet},async a=>{await r.install({cache:n,report:a})})).exitCode()}};FC.paths=[["rebuild"]],FC.usage=ye.Usage({description:"rebuild the project's native packages",details:` - This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. - - Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). - - By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. - `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});var fAe=FC;var tL=ie(Nn());Ss();var NC=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=Y.String("--mode",{description:"Change what artifacts installs generate",validator:Yi(li)});this.patterns=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=this.all?r.workspaces:[i],o=[vr.REGULAR,vr.DEVELOPMENT,vr.PEER],a=[],l=!1,c=[];for(let h of this.patterns){let p=!1,d=S.parseIdent(h);for(let m of s){let I=[...m.manifest.peerDependenciesMeta.keys()];for(let B of(0,tL.default)(I,h))m.manifest.peerDependenciesMeta.delete(B),l=!0,p=!0;for(let B of o){let b=m.manifest.getForScope(B),R=[...b.values()].map(H=>S.stringifyIdent(H));for(let H of(0,tL.default)(R,S.stringifyIdent(d))){let{identHash:L}=S.parseIdent(H),K=b.get(L);if(typeof K=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");m.manifest[B].delete(L),c.push([m,B,K]),l=!0,p=!0}}}p||a.push(h)}let u=a.length>1?"Patterns":"Pattern",g=a.length>1?"don't":"doesn't",f=this.all?"any":"this";if(a.length>0)throw new me(`${u} ${ue.prettyList(e,a,ps.CODE)} ${g} match any packages referenced by ${f} workspace`);return l?(await e.triggerMultipleHooks(p=>p.afterWorkspaceDependencyRemoval,c),(await Fe.start({configuration:e,stdout:this.context.stdout},async p=>{await r.install({cache:n,report:p,mode:this.mode})})).exitCode()):0}};NC.paths=[["remove"]],NC.usage=ye.Usage({description:"remove dependencies from the project",details:` - This command will remove the packages matching the specified patterns from the current workspace. - - If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - - - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - - - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. - - This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. - `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});var hAe=NC;var pAe=ie(require("util")),z0=class extends Be{async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);return(await Fe.start({configuration:e,stdout:this.context.stdout},async s=>{let o=i.manifest.scripts,a=de.sortMap(o.keys(),u=>u),l={breakLength:Infinity,colors:e.get("enableColors"),maxArrayLength:2},c=a.reduce((u,g)=>Math.max(u,g.length),0);for(let[u,g]of o.entries())s.reportInfo(null,`${u.padEnd(c," ")} ${(0,pAe.inspect)(g,l)}`)})).exitCode()}};z0.paths=[["run"]];var dAe=z0;var LC=class extends Be{constructor(){super(...arguments);this.inspect=Y.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=Y.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=Y.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=Y.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.silent=Y.Boolean("--silent",{hidden:!0});this.scriptName=Y.String();this.args=Y.Proxy()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i,locator:n}=await Ke.find(e,this.context.cwd);await r.restoreInstallState();let s=this.topLevel?r.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await Kt.hasPackageScript(s,this.scriptName,{project:r}))return await Kt.executePackageScript(s,this.scriptName,this.args,{project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let o=await Kt.getPackageAccessibleBinaries(s,{project:r});if(o.get(this.scriptName)){let l=[];return this.inspect&&(typeof this.inspect=="string"?l.push(`--inspect=${this.inspect}`):l.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?l.push(`--inspect-brk=${this.inspectBrk}`):l.push("--inspect-brk")),await Kt.executePackageAccessibleBinary(s,this.scriptName,this.args,{cwd:this.context.cwd,project:r,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:l,packageAccessibleBinaries:o})}if(!this.topLevel&&!this.binariesOnly&&i&&this.scriptName.includes(":")){let c=(await Promise.all(r.workspaces.map(async u=>u.manifest.scripts.has(this.scriptName)?u:null))).filter(u=>u!==null);if(c.length===1)return await Kt.executeWorkspaceScript(c[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new me(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${S.prettyLocator(e,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new me(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${S.prettyLocator(e,n)}).`);{if(this.scriptName==="global")throw new me("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let l=[this.scriptName].concat(this.args);for(let[c,u]of Yg)for(let g of u)if(l.length>=g.length&&JSON.stringify(l.slice(0,g.length))===JSON.stringify(g))throw new me(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${c} plugin. You can install it with "yarn plugin import ${c}".`);throw new me(`Couldn't find a script named "${this.scriptName}".`)}}};LC.paths=[["run"]],LC.usage=ye.Usage({description:"run a script defined in the package.json",details:` - This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - - - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. - - - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. - - - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. - - Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). - `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});var CAe=LC;var TC=class extends Be{constructor(){super(...arguments);this.save=Y.Boolean("-s,--save",!1,{description:"Persist the resolution inside the top-level manifest"});this.descriptor=Y.String();this.resolution=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(await r.restoreInstallState({restoreResolutions:!1}),!i)throw new rt(r.cwd,this.context.cwd);let s=S.parseDescriptor(this.descriptor,!0),o=S.makeDescriptor(s,this.resolution);return r.storedDescriptors.set(s.descriptorHash,s),r.storedDescriptors.set(o.descriptorHash,o),r.resolutionAliases.set(s.descriptorHash,o.descriptorHash),(await Fe.start({configuration:e,stdout:this.context.stdout},async l=>{await r.install({cache:n,report:l})})).exitCode()}};TC.paths=[["set","resolution"]],TC.usage=ye.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, add the `-s,--save` flag which will also edit the `resolutions` field from your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});var mAe=TC;var EAe=ie(Nn()),MC=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);let s=r.topLevelWorkspace,o=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:l,reference:c}of s.manifest.resolutions)c.startsWith("portal:")&&o.add(l.descriptor.fullName);if(this.leadingArguments.length>0)for(let l of this.leadingArguments){let c=v.resolve(this.context.cwd,M.toPortablePath(l));if(de.isPathLike(l)){let u=await fe.find(c,this.context.plugins,{useRc:!1,strict:!1}),{project:g,workspace:f}=await Ke.find(u,c);if(!f)throw new rt(g.cwd,c);if(this.all){for(let h of g.workspaces)h.manifest.name&&o.add(S.stringifyIdent(h.locator));if(o.size===0)throw new me("No workspace found to be unlinked in the target project")}else{if(!f.manifest.name)throw new me("The target workspace doesn't have a name and thus cannot be unlinked");o.add(S.stringifyIdent(f.locator))}}else{let u=[...s.manifest.resolutions.map(({pattern:g})=>g.descriptor.fullName)];for(let g of(0,EAe.default)(u,l))o.add(g)}}return s.manifest.resolutions=s.manifest.resolutions.filter(({pattern:l})=>!o.has(l.descriptor.fullName)),(await Fe.start({configuration:e,stdout:this.context.stdout},async l=>{await r.install({cache:n,report:l})})).exitCode()}};MC.paths=[["unlink"]],MC.usage=ye.Usage({description:"disconnect the local project from another one",details:` - This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. - `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});var IAe=MC;var yAe=ie(aC()),rL=ie(Nn());Ss();var uf=class extends Be{constructor(){super(...arguments);this.interactive=Y.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.exact=Y.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=Y.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=Y.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=Y.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=Y.String("--mode",{description:"Change what artifacts installs generate",validator:Yi(li)});this.patterns=Y.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=[...r.storedDescriptors.values()],o=s.map(u=>S.stringifyIdent(u)),a=new Set;for(let u of this.patterns){if(S.parseDescriptor(u).range!=="unknown")throw new me("Ranges aren't allowed when using --recursive");for(let g of(0,rL.default)(o,u)){let f=S.parseIdent(g);a.add(f.identHash)}}let l=s.filter(u=>a.has(u.identHash));for(let u of l)r.storedDescriptors.delete(u.descriptorHash),r.storedResolutions.delete(u.descriptorHash);return(await Fe.start({configuration:e,stdout:this.context.stdout},async u=>{await r.install({cache:n,report:u})})).exitCode()}async executeUpClassic(){var d;let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState({restoreResolutions:!1});let s=(d=this.interactive)!=null?d:e.get("preferInteractive"),o=AC(this,r),a=s?[Fr.KEEP,Fr.REUSE,Fr.PROJECT,Fr.LATEST]:[Fr.PROJECT,Fr.LATEST],l=[],c=[];for(let m of this.patterns){let I=!1,B=S.parseDescriptor(m);for(let b of r.workspaces)for(let R of[vr.REGULAR,vr.DEVELOPMENT]){let L=[...b.manifest.getForScope(R).values()].map(K=>S.stringifyIdent(K));for(let K of(0,rL.default)(L,S.stringifyIdent(B))){let J=S.parseIdent(K),ne=b.manifest[R].get(J.identHash);if(typeof ne=="undefined")throw new Error("Assertion failed: Expected the descriptor to be registered");let q=S.makeDescriptor(J,B.range);l.push(Promise.resolve().then(async()=>[b,R,ne,await lC(q,{project:r,workspace:b,cache:n,target:R,modifier:o,strategies:a})])),I=!0}}I||c.push(m)}if(c.length>1)throw new me(`Patterns ${ue.prettyList(e,c,ps.CODE)} don't match any packages referenced by any workspace`);if(c.length>0)throw new me(`Pattern ${ue.prettyList(e,c,ps.CODE)} doesn't match any packages referenced by any workspace`);let u=await Promise.all(l),g=await Fa.start({configuration:e,stdout:this.context.stdout,suggestInstall:!1},async m=>{for(let[,,I,{suggestions:B,rejections:b}]of u){let R=B.filter(H=>H.descriptor!==null);if(R.length===0){let[H]=b;if(typeof H=="undefined")throw new Error("Assertion failed: Expected an error to have been set");let L=this.cli.error(H);r.configuration.get("enableNetwork")?m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} can't be resolved to a satisfying range - -${L}`):m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} can't be resolved to a satisfying range (note: network resolution has been disabled) - -${L}`)}else R.length>1&&!s&&m.reportError(z.CANT_SUGGEST_RESOLUTIONS,`${S.prettyDescriptor(e,I)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(g.hasErrors())return g.exitCode();let f=!1,h=[];for(let[m,I,,{suggestions:B}]of u){let b,R=B.filter(J=>J.descriptor!==null),H=R[0].descriptor,L=R.every(J=>S.areDescriptorsEqual(J.descriptor,H));R.length===1||L?b=H:(f=!0,{answer:b}=await(0,yAe.prompt)({type:"select",name:"answer",message:`Which range to you want to use in ${S.prettyWorkspace(e,m)} \u276F ${I}?`,choices:B.map(({descriptor:J,name:ne,reason:q})=>J?{name:ne,hint:q,descriptor:J}:{name:ne,hint:q,disabled:!0}),onCancel:()=>process.exit(130),result(J){return this.find(J,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let K=m.manifest[I].get(b.identHash);if(typeof K=="undefined")throw new Error("Assertion failed: This descriptor should have a matching entry");if(K.descriptorHash!==b.descriptorHash)m.manifest[I].set(b.identHash,b),h.push([m,I,K,b]);else{let J=e.makeResolver(),ne={project:r,resolver:J},q=J.bindDescriptor(K,m.anchoredLocator,ne);r.forgetResolution(q)}}return await e.triggerMultipleHooks(m=>m.afterWorkspaceDependencyReplacement,h),f&&this.context.stdout.write(` -`),(await Fe.start({configuration:e,stdout:this.context.stdout},async m=>{await r.install({cache:n,report:m,mode:this.mode})})).exitCode()}};uf.paths=[["up"]],uf.usage=ye.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the later will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),uf.schema=[pv("recursive",Bl.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];var wAe=uf;var OC=class extends Be{constructor(){super(...arguments);this.recursive=Y.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=Y.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState();let n=S.parseIdent(this.package).identHash,s=this.recursive?nze(r,n,{configuration:e,peers:this.peers}):ize(r,n,{configuration:e,peers:this.peers});Hs.emitTree(s,{configuration:e,stdout:this.context.stdout,json:this.json,separators:1})}};OC.paths=[["why"]],OC.usage=ye.Usage({description:"display the reason why a package is needed",details:` - This command prints the exact reasons why a package appears in the dependency tree. - - If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. - `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});var BAe=OC;function ize(t,e,{configuration:r,peers:i}){let n=de.sortMap(t.storedPackages.values(),a=>S.stringifyLocator(a)),s={},o={children:s};for(let a of n){let l={},c=null;for(let u of a.dependencies.values()){if(!i&&a.peerDependencies.has(u.identHash))continue;let g=t.storedResolutions.get(u.descriptorHash);if(!g)throw new Error("Assertion failed: The resolution should have been registered");let f=t.storedPackages.get(g);if(!f)throw new Error("Assertion failed: The package should have been registered");if(f.identHash!==e)continue;if(c===null){let p=S.stringifyLocator(a);s[p]={value:[a,ue.Type.LOCATOR],children:l}}let h=S.stringifyLocator(f);l[h]={value:[{descriptor:u,locator:f},ue.Type.DEPENDENT]}}}return o}function nze(t,e,{configuration:r,peers:i}){let n=de.sortMap(t.workspaces,f=>S.stringifyLocator(f.anchoredLocator)),s=new Set,o=new Set,a=f=>{if(s.has(f.locatorHash))return o.has(f.locatorHash);if(s.add(f.locatorHash),f.identHash===e)return o.add(f.locatorHash),!0;let h=!1;f.identHash===e&&(h=!0);for(let p of f.dependencies.values()){if(!i&&f.peerDependencies.has(p.identHash))continue;let d=t.storedResolutions.get(p.descriptorHash);if(!d)throw new Error("Assertion failed: The resolution should have been registered");let m=t.storedPackages.get(d);if(!m)throw new Error("Assertion failed: The package should have been registered");a(m)&&(h=!0)}return h&&o.add(f.locatorHash),h};for(let f of n){let h=t.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");a(h)}let l=new Set,c={},u={children:c},g=(f,h,p)=>{if(!o.has(f.locatorHash))return;let d=p!==null?ue.tuple(ue.Type.DEPENDENT,{locator:f,descriptor:p}):ue.tuple(ue.Type.LOCATOR,f),m={},I={value:d,children:m},B=S.stringifyLocator(f);if(h[B]=I,!l.has(f.locatorHash)&&(l.add(f.locatorHash),!(p!==null&&t.tryWorkspaceByLocator(f))))for(let b of f.dependencies.values()){if(!i&&f.peerDependencies.has(b.identHash))continue;let R=t.storedResolutions.get(b.descriptorHash);if(!R)throw new Error("Assertion failed: The resolution should have been registered");let H=t.storedPackages.get(R);if(!H)throw new Error("Assertion failed: The package should have been registered");g(H,m,b)}};for(let f of n){let h=t.storedPackages.get(f.anchoredLocator.locatorHash);if(!h)throw new Error("Assertion failed: The package should have been registered");g(h,c,null)}return u}var fL={};it(fL,{default:()=>wze,gitUtils:()=>Uc});var Uc={};it(Uc,{TreeishProtocols:()=>vn,clone:()=>cL,fetchBase:()=>jAe,fetchChangedFiles:()=>YAe,fetchChangedWorkspaces:()=>Ize,fetchRoot:()=>GAe,isGitUrl:()=>ff,lsRemote:()=>HAe,normalizeLocator:()=>AL,normalizeRepoUrl:()=>KC,resolveUrl:()=>lL,splitRepoUrl:()=>UC});var oL=ie(OAe()),gf=ie(require("querystring")),aL=ie(Or()),KAe=ie(require("url"));function UAe(){return _(P({},process.env),{GIT_SSH_COMMAND:"ssh -o BatchMode=yes"})}var Eze=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],vn;(function(n){n.Commit="commit",n.Head="head",n.Tag="tag",n.Semver="semver"})(vn||(vn={}));function ff(t){return t?Eze.some(e=>!!t.match(e)):!1}function UC(t){t=KC(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:vn.Head,request:"HEAD"},extra:{}};let r=t.slice(0,e),i=t.slice(e+1);if(i.match(/^[a-z]+=/)){let n=gf.default.parse(i);for(let[l,c]of Object.entries(n))if(typeof c!="string")throw new Error(`Assertion failed: The ${l} parameter must be a literal string`);let s=Object.values(vn).find(l=>Object.prototype.hasOwnProperty.call(n,l)),o,a;typeof s!="undefined"?(o=s,a=n[s]):(o=vn.Head,a="HEAD");for(let l of Object.values(vn))delete n[l];return{repo:r,treeish:{protocol:o,request:a},extra:n}}else{let n=i.indexOf(":"),s,o;return n===-1?(s=null,o=i):(s=i.slice(0,n),o=i.slice(n+1)),{repo:r,treeish:{protocol:s,request:o},extra:{}}}}function KC(t,{git:e=!1}={}){var r;if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){t=t.replace(/^git\+([^:]+):/,"$1:");let i;try{i=KAe.default.parse(t)}catch{i=null}i&&i.protocol==="ssh:"&&((r=i.path)==null?void 0:r.startsWith("/:"))&&(t=t.replace(/^ssh:\/\//,""))}return t}function AL(t){return S.makeLocator(t,KC(t.reference))}async function HAe(t,e){let r=KC(t,{git:!0});if(!Zt.getNetworkSettings(`https://${(0,oL.default)(r).resource}`,{configuration:e}).enableNetwork)throw new Error(`Request to '${r}' has been blocked because of your configuration settings`);let n;try{n=await hr.execvp("git",["ls-remote",r],{cwd:e.startingCwd,env:UAe(),strict:!0})}catch(l){throw l.message=`Listing the refs for ${t} failed`,l}let s=new Map,o=/^([a-f0-9]{40})\t([^\n]+)/gm,a;for(;(a=o.exec(n.stdout))!==null;)s.set(a[2],a[1]);return s}async function lL(t,e){let{repo:r,treeish:{protocol:i,request:n},extra:s}=UC(t),o=await HAe(r,e),a=(c,u)=>{switch(c){case vn.Commit:{if(!u.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return gf.default.stringify(_(P({},s),{commit:u}))}case vn.Head:{let g=o.get(u==="HEAD"?u:`refs/heads/${u}`);if(typeof g=="undefined")throw new Error(`Unknown head ("${u}")`);return gf.default.stringify(_(P({},s),{commit:g}))}case vn.Tag:{let g=o.get(`refs/tags/${u}`);if(typeof g=="undefined")throw new Error(`Unknown tag ("${u}")`);return gf.default.stringify(_(P({},s),{commit:g}))}case vn.Semver:{let g=qt.validRange(u);if(!g)throw new Error(`Invalid range ("${u}")`);let f=new Map([...o.entries()].filter(([p])=>p.startsWith("refs/tags/")).map(([p,d])=>[aL.default.parse(p.slice(10)),d]).filter(p=>p[0]!==null)),h=aL.default.maxSatisfying([...f.keys()],g);if(h===null)throw new Error(`No matching range ("${u}")`);return gf.default.stringify(_(P({},s),{commit:f.get(h)}))}case null:{let g;if((g=l(vn.Commit,u))!==null||(g=l(vn.Tag,u))!==null||(g=l(vn.Head,u))!==null)return g;throw u.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${u}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${c}")`)}},l=(c,u)=>{try{return a(c,u)}catch(g){return null}};return`${r}#${a(i,n)}`}async function cL(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:i,request:n}}=UC(t);if(i!=="commit")throw new Error("Invalid treeish protocol when cloning");let s=KC(r,{git:!0});if(Zt.getNetworkSettings(`https://${(0,oL.default)(s).resource}`,{configuration:e}).enableNetwork===!1)throw new Error(`Request to '${s}' has been blocked because of your configuration settings`);let o=await T.mktempPromise(),a={cwd:o,env:UAe(),strict:!0};try{await hr.execvp("git",["clone","-c core.autocrlf=false",s,M.fromPortablePath(o)],a),await hr.execvp("git",["checkout",`${n}`],a)}catch(l){throw l.message=`Repository clone failed: ${l.message}`,l}return o})}async function GAe(t){let e=null,r,i=t;do r=i,await T.existsPromise(v.join(r,".git"))&&(e=r),i=v.dirname(r);while(e===null&&i!==r);return e}async function jAe(t,{baseRefs:e}){if(e.length===0)throw new me("Can't run this command with zero base refs specified.");let r=[];for(let a of e){let{code:l}=await hr.execvp("git",["merge-base",a,"HEAD"],{cwd:t});l===0&&r.push(a)}if(r.length===0)throw new me(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:i}=await hr.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),n=i.trim(),{stdout:s}=await hr.execvp("git",["show","--quiet","--pretty=format:%s",n],{cwd:t,strict:!0}),o=s.trim();return{hash:n,title:o}}async function YAe(t,{base:e,project:r}){let i=de.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:n}=await hr.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),s=n.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(t,M.toPortablePath(c))),{stdout:o}=await hr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),a=o.split(/\r\n|\r|\n/).filter(c=>c.length>0).map(c=>v.resolve(t,M.toPortablePath(c))),l=[...new Set([...s,...a].sort())];return i?l.filter(c=>!v.relative(r.cwd,c).match(i)):l}async function Ize({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new me("This command can only be run from within a Yarn project");let r=[v.resolve(e.cwd,e.configuration.get("cacheFolder")),v.resolve(e.cwd,e.configuration.get("installStatePath")),v.resolve(e.cwd,e.configuration.get("lockfileFilename")),v.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(o=>o.populateYarnPaths,e,o=>{o!=null&&r.push(o)});let i=await GAe(e.configuration.projectCwd);if(i==null)throw new me("This command can only be run on Git repositories");let n=await jAe(i,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),s=await YAe(i,{base:n.hash,project:e});return new Set(de.mapAndFilter(s,o=>{let a=e.tryWorkspaceByFilePath(o);return a===null?de.mapAndFilter.skip:r.some(l=>o.startsWith(l))?de.mapAndFilter.skip:a}))}var uL=class{supports(e,r){return ff(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,n=AL(e),s=new Map(r.checksums);s.set(n.locatorHash,i);let o=_(P({},r),{checksums:s}),a=await this.downloadHosted(n,o);if(a!==null)return a;let[l,c,u]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(n,o),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:l,releaseFs:c,prefixPath:S.getIdentVendorPath(e),checksum:u}}async downloadHosted(e,r){return r.project.configuration.reduceHook(i=>i.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let i=await cL(e.reference,r.project.configuration),n=UC(e.reference),s=v.join(i,"package.tgz");await Kt.prepareExternalProject(i,s,{configuration:r.project.configuration,report:r.report,workspace:n.extra.workspace,locator:e});let o=await T.readFilePromise(s);return await de.releaseAfterUseAsync(async()=>await Ai.convertToZip(o,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1}))}};var gL=class{supportsDescriptor(e,r){return ff(e.range)}supportsLocator(e,r){return ff(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=await lL(e.range,i.project.configuration);return[S.makeLocator(e,n)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await de.releaseAfterUseAsync(async()=>await Ze.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return _(P({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:gt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var yze={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:ge.STRING,isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:ge.STRING,default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:ge.NUMBER,default:2}},fetchers:[uL],resolvers:[gL]};var wze=yze;var HC=class extends Be{constructor(){super(...arguments);this.since=Y.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=Y.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.verbose=Y.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd);return(await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async n=>{let s=this.since?await Uc.fetchChangedWorkspaces({ref:this.since,project:r}):r.workspaces,o=new Set(s);if(this.recursive)for(let a of[...s].map(l=>l.getRecursiveWorkspaceDependents()))for(let l of a)o.add(l);for(let a of o){let{manifest:l}=a,c;if(this.verbose){let u=new Set,g=new Set;for(let f of Ze.hardDependencies)for(let[h,p]of l.getForScope(f)){let d=r.tryWorkspaceByDescriptor(p);d===null?r.workspacesByIdent.has(h)&&g.add(p):u.add(d)}c={workspaceDependencies:Array.from(u).map(f=>f.relativeCwd),mismatchedWorkspaceDependencies:Array.from(g).map(f=>S.stringifyDescriptor(f))}}n.reportInfo(null,`${a.relativeCwd}`),n.reportJson(P({location:a.relativeCwd,name:l.name?S.stringifyIdent(l.name):null},c))}})).exitCode()}};HC.paths=[["workspaces","list"]],HC.usage=ye.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});var qAe=HC;var GC=class extends Be{constructor(){super(...arguments);this.workspaceName=Y.String();this.commandName=Y.String();this.args=Y.Proxy()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);let n=r.workspaces,s=new Map(n.map(a=>{let l=S.convertToIdent(a.locator);return[S.stringifyIdent(l),a]})),o=s.get(this.workspaceName);if(o===void 0){let a=Array.from(s.keys()).sort();throw new me(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - - ${a.join(` - - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:o.cwd})}};GC.paths=[["workspace"]],GC.usage=ye.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` - This command will run a given sub-command on a single workspace. - `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var JAe=GC;var Bze={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:ge.BOOLEAN,default:WAe.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:ge.STRING,values:["^","~",""],default:Lo.CARET}},commands:[soe,aoe,wae,Nae,mAe,nAe,tAe,qAe,Uae,Hae,Gae,jae,ioe,noe,Lae,Mae,Yae,qae,Wae,zae,_ae,IAe,Xae,cAe,AAe,uAe,Zae,gAe,fAe,hAe,dAe,CAe,wAe,BAe,JAe]},Qze=Bze;var mL={};it(mL,{default:()=>vze});var Me={optional:!0},zAe=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:Me,zenObservable:Me}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:Me,zenObservable:Me}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:Me}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:Me,["postcss-jsx"]:Me,["postcss-less"]:Me,["postcss-markdown"]:Me,["postcss-scss"]:Me}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:Me}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:Me}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@*",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:Me,"vue-template-compiler":Me}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:Me,"utf-8-validate":Me}}],["react-portal@*",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@*",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@*",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Me,"vuetify-loader":Me}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":Me}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":Me}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":Me}}],["consolidate@*",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:Me,tinyliquid:Me,"liquid-node":Me,jade:Me,"then-jade":Me,dust:Me,"dustjs-helpers":Me,"dustjs-linkedin":Me,swig:Me,"swig-templates":Me,"razor-tmpl":Me,atpl:Me,liquor:Me,twig:Me,ejs:Me,eco:Me,jazz:Me,jqtpl:Me,hamljs:Me,hamlet:Me,whiskers:Me,"haml-coffee":Me,"hogan.js":Me,templayed:Me,handlebars:Me,underscore:Me,lodash:Me,pug:Me,"then-pug":Me,qejs:Me,walrus:Me,mustache:Me,just:Me,ect:Me,mote:Me,toffee:Me,dot:Me,"bracket-template":Me,ractive:Me,nunjucks:Me,htmling:Me,"babel-core":Me,plates:Me,"react-dom":Me,react:Me,"arc-templates":Me,vash:Me,slm:Me,marko:Me,teacup:Me,"coffee-script":Me,squirrelly:Me,twing:Me}}],["vue-loader@<=16.3.1",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"}}],["scss-parser@*",{dependencies:{lodash:"^4.17.21"}}],["query-ast@*",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@*",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@*",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@*",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@*",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:Me}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:Me}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":Me,"webpack-command":Me}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":Me}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":Me}}]];var pL;function VAe(){return typeof pL=="undefined"&&(pL=require("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),pL}var dL;function _Ae(){return typeof dL=="undefined"&&(dL=require("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),dL}var CL;function XAe(){return typeof CL=="undefined"&&(CL=require("zlib").brotliDecompressSync(Buffer.from("m3wJE1GkN6sQTGg/U6NIb0aTKMP9bivYNuU6vRmRrSm//3UCehrg5OrrHCrSWkCREhF890RJt8fjR4A2EeX46L4IrTIWP/affkbbukX9rgdYBpRx68FI2tVZV558HxxDbdbwcwWkxS9fTf/18/XcF+clrnTSdsJrlW6VKgApOBTI2YUuI09ioW31NNUEPOEYwiH60pTg2ci7Zluqr7fVRbadjqmOuYgcHJcM4LBSeue6QXpmFJpjz6uvUY+qiVCSyyWXY8pujLb8Gjf4fk5Utq7UVA2mJ3RlmbiNgx50eZC/iKz6+5zWK7EBdVOHtfr7yYnjEryCuaayo/JNKQnrzulnbmJV2VwuioDYlbOf/59vWqYk1hgD7K7EWdmIR0GEwwFlnM2UyaNvvVeP0w4roAGcQQMcw+GsoZF19ape/d8OpJcIynmfREpSBaF8FrfDOEt5UsaYTBsEif5XtbLV8UISsUH42gBo3z5ytsc0jVR051TU7o42iUnOubqQZh0rV0okHHIbi9JVSDNXNJ27WhJJ0UFcOQCkA0A5iJRTrGzicT+2A9iMpBpP9K/HMLPdevu+NgYUUYmgecbBv1vifxR6qHpJYLfJLqGa2UoINqVGZPuVV+svIMHCEHvGtE9vL3s1v0alNAHhhbLgmAxd6s/VspNCKKOK/lVFdCXfzx14GtKyVZdT5m/8pmnQKq6SQOv3ma6/18z+LqQ/ayOsvyZQz599+mevPz784zO+/Nr6RpK55Jt68eAFQw9+E0NaYfv1P/Asy495y4oCw5cxMsZg+QUuLtAaYLSBesyzG3nPFvLjJFex/jgrj/75Kd7Ltk5WUKA7zLy+PAVaBmAze3IiIBde+dQgisrwU+TX12lQVqwPWzmaYmnbCkMSAv6tqiVy8As0b5QOuQp0k259vNcVQ4ApWBJRh4lPrUzRTjU/adf4GdE1oEp/y44CfcDw1N5oEOOyjTLOavMlwX8D7ROLrYQ/UYw/mmb82pJItiRYRaJO8b8s0MfBVXrlEVA5+VglWgcRePz+j442Cb6M/38IgrSMqTM8FKFecJcv0dD60T9ns1Q9KuNkdQmrck8g0u84adKkrELIVv3wduwxAy4mKOQ0aR7/AlZt4G0pFcLVH32jD8nFxWvUQsWTC+Z6vI78NIqFUrClUy+bg4HBYmz8WVwbJkMAJuLLLIdAwdwYqcqsvGkFHC0FTxdXv1keR/VtRgPAKkJa8dd1Yuej83EWvEJGJOhbeJqoHIHzGbu+vURKAHeFsBGqKhP7CeN4pAPuvB5XgCQFn10TZKNminVv2DpEIPmy5c1Lk2UOyR6pHLd+lzc/h5tWLt0oZ9yCcZctnS/oTKIpnIH16MI84Nr1OY5j0tAMfE58UgA3olWWCBKpaMSaKmmNVY5puvPrDruOqcrAVEb6Zj4rE6MxkOwUKJnVAzVewmCOuWOAmuauS4s8NVYNj/V4CapXcNF/2nq1tGZR6qDGr+Ipsn1MlWIBllUR9SgeHA0vtm5sI67NCaheZKqfWvIo+7ny1FSYSwymj6m+uBYWKnKFhV+ytUDfv/7w4IkXYdaLQMTFCSWzKEeUAjt7GVuASDsqGQ5Rk21EvybS+uHFBgEV0uvSakDBAtprVhl6fP1rhR/pNk5iRwqoKvbm9YlXpobk5HvZoFbqxEQgkLfYt9Iw3a5LFEhmbr6LCIRuwgCTeYw3OMsr3wYSTnDlITdO/nr6zOaMZFneF+WbzvD2+LD531wOPCo3sNF35+gsYkD4VHguM1nRJli+xP/YOAdHyFPBjV2oPB9EajQSbo3oPeY8n5IP4XqdWWjw1GvuuGzyixJ6o7lUvqFOdrgSvuFCFL6jdKnaAaXlenMB61Tl/GJc9iTUxl5TmKmde5bFx426/0/Y6KolypU6bSTX623OG+uUW5ETq7UlKedAkGMd33fr19/Qoe/Mz7XsF52rbWl+QiZxilW9YePk5s1xW/6G6hcblMlaLIghONyehPySm19qi06gBd3ddk7Vg6KZ174l1QdDLTgeQRMglOKZjlh4jTlWvRxrdGPodGm/n4vuGhR2DR8vdkdv/vCTIANK8tJiauUmFz8K34NAIYQXFHRRbxT1xT6eYj/YUw6OyC+XMu/rp8dQGDmhtVsIYV00Zps7KL818iAvq7BBNlm1yBktAsB3IHzsyn43IltDG7I4ClE2+5LA2F+36/D7Qh6bXygDlTeLzWE5YyndxucKMQptWs7UMW1agXGLp7hf2y9E8A6XbI8eZpRG3G584FaIqi09f2U2s50Od6c4uugOnmkBYbYsekjircRt5e6z6Kg+KCT9zZslC4eutoxt7dAmt+tEV7EWgPgWJsFtRXdboqFWpUV4ZuhYCKJdOUviSwMCjBHVSOKII+xbO+9hCmi7ejSlcodd0TXe6xSHTiRoGeZXaRzQeR1rl3Qd0lfNHdsGTKcwur0nACTpsZUM5aceTSDCBH9NYBFAwcikQcCmpymsCKrpXpe+XOQ+L4ElcvACWZwj0hFRYPI5I5HqBIfIr2K5xM4pwhaCxMwaafawrZzfNwP0HqChwyHe4soq6X6Gw9lQ3/RKYbYvdBIFTXlk7iDSJaT0O6QkCpQ88qpoevZfetGeXn138JG5P3rRhvwpkEXdo5eQYPKZJWeAj3l21uB7GRqemTap9ZNj0Lj3eAlMou/U8mrjpb7eIbaEYxGGur5BKo8gwOXsaAzCgsh5pXI9HL2Nzr0yqp8oX44Qe5FEqzpZ1LsJT/8XGmbZzq26apmcy3vt8Rg2iPG+3rQIVQ7GBh8i4Hnhvvsqnd7rpyCRaRdiyiZirGbWGdXMDmvDkOm2Guv/3q2lMFNyWm3XGLZemml3/ItUvf7Xim2ghSMt44+YvEFML5uqu/9cbFrVUEQLoRK8Va0e0uVjJeZwficqi2gLMDizQjmeE0EvU1sc+80ECweB3YHpY8+2GO7Ow79wnCdiwlkb6yS83Nw+UxX3NxIycFvp6G7qM9b4DQtSndZXqNaorCssJ0dZnTd7rfvb7Me82+yd9pnnfJiPbhDnHqf6sndZN+bmk962ankH/x9FnSRC+aF2l+gGnecCj/4Hm3hwxYrDwfAB+MbriENYusTJCmvcyzo9yPBeQIY2/grGj8kMCRRXsPHcqlrGioE0roE35NeD4Z1UxBcpauFgSWzjf7xZ6JeKg2zcUHGr8DDAyPFiykcaJcC0ktR+FnHTIPiFHLZ/aOLvo49vbpSBAAROFazyaSpyDPH0WNaNXbG5O5DBv3qqqKf9pCR23ys7qqRpi/qW84HnnvznBAOFcreTbFr5g07nNL7LHV1P087Jef/oO3WNaj4E9GYNzDaY/PrK8xoVxKUx1aSpT45XtiJc2tTJPP5QtMrxhaJc3j8zKG4fIuOjwgwfKAeCQHTM6QCiaq6hYxkuAHDUUifFIOSFF1tQ2iV1rhBY1wgACCrIdGk5y0DRMqvXRcG8v0redyrtI2/ijanHUGCLbjm+TNTKZYQrxQUAcDd7RhV23+xetZ17s1tljwAAc4PJEZql1MuyXNTM+yfQb/uEjzrwg+2MdwsOi7pZwtwpWAGgdj769dfn62T0ZB/MyaWict7f3Q8dVH5knSm8EF4cgyiu6U9IXRbtluECALvCm5jCey17rLTPqZM4COsaAYBjuhSO2elFmpjexO/lAr7ZUrD6jLiQlubAy2QAADhOAvnfc7Pfv3b9f5m6MWlz65/tpQiqXWdHUSKgq7kePIiNtO++Wuc7xqN7QUR4whdilQ687C0AgHGBsmQiZWNi1+kJe/45TboCspWrs2/3iayyuzIBgDVKLB/k7MN9HoQzPxv5oLLAwlXMqFhqCwAUdV9yw9Z9SbWnahy41+suAYCGaa2WvOdc0PR++uxxaAUUYt4ceBm2AEA4GXSrCkOyd3PtNYmpz16tawQAChEpGrOAP6DVj86Da+48PeFlcSXLqwAIN0ebmnGLn5nm7r6WXwb6s0lvPUFlOMx8P7NsAYDBsZEuNwzdt+n2pbLy3bfZjQAAU6VkzNLTM3M+j/YUrK5/+a1lv/VlCWruwMtkAACIpQtqjHvG/GyX3gtVZsZqu0b2qcD+IvYgPUz10vO7k0eaDwR6wleytX3gZW8BACQs62mMe2UGo0bvXStBY6XdUSetIKzNBAAO9jDhDHzO2r+6yT0XWxa7nMaotgwXAKgV3l5DeFHqrBXUXHvopBVYcwkAhP3oj7T80Bm/uDF+OPFlERcqleECACV1th3UnPDRWTOQa186aQbWbAIAC+sFV2H4nXlv7S2d6U/FXZlgBUDUOVr2mb4Khv4D6zghzxn6FL2Wxp1y8WfZuADAiNn3Whnu033Mua/u47pGAGAV+lWo8ObR6so+a/tyKFZu85LAv01spxNMZ+lRhxn/C4+mbnshp2/y/nuR4XsSytgOB0lKroEBV9KRd4Qn3bGrMix5sdCSK+hM/ML1pT8VOsHiHVcDR3798eErcRvvmRpf9oXa47tdL+x90l0XKeez+DsKHFM3Rsayb2n6ap/8CNRifpSo8o4gviONA3B+7irvo9Chf03P76E3W+xuVxGH9ydi7pPZG1skSCf9iFxtx0RpUT1B38P7e6JzrxS/O3hzhgsID8+d1n2lpuW9yDn1cycJk/HC7TI616v6rBVFOssf+fzF7zq/n+bEnAKkjwFenbdX9BtqN8GhgSJBie7a/Lkx8ifCiIqRus245NzsdyfrpY7E9MdkjqhT5b0mnawm3TFhLewL9gHbyp3892Zl0gGUpiG5tM7eKyaSAgWPLSCipRRdtYbQraAsQ6/DXgwoAu54ousxeu/5QlhAhGi8P3HFywow3ZfBDoi1Axu6SNfvJeOPdl41ZJTCfQx6ct2x+ocRx84fscJhSkgdfgx4HvBi55tvfQk75PJjH3jE+RBWODj3/MAs7UWUCr2bZiWOd5KoPgmiK2Uozr3P0Mqp5iiNscCAHMuqyfvBc8JEwKfTZAQysMEfcywLk8IKERnbqcybTcuoiUzpECXdXDkY+SnyJbzco+5+MxpIarmO0PFDWD6znZfapp1H/r09Sp1Pgvv3I06Vyce3SuLx8ueTV9dOE4cBXmvZG5AYgKgF7aiZkyASzn6k9sda5PbHiR+UJjEXs5K7hVqjpHzgI9SaOxjNLZkzv1licCDwQ071sZro0/FKbdwV+drbA6Vc5N0WpBXZksnrWcKFV2fm4f1PZOZlRaVZ23i5KLZbvHHOIYeQLl+2HL6HZD9+Ygb1osLH1c+lixsT6n1MbMLKu+Oon3648hAAxGGfQzf32uBd66Khu3H51ZaVyetua6CTF03S8tcoM/jHWOj7uFctdLL2a8dInDUbe1s3CickDPOTvd/yNcEvursIwKPJQk9V9m5Sx97sCDC9V9hCZ/L8hITgIC7OgVvTRZw3jUtQYMkywRrgScbSO4npEnwdlM5smZ0NmV0pDBHxNaDT6Lra5fdkFm0xqh5jwVQHzlWo+udmQnb1OFxOBjNk/SJDtdtHfB2at+Ha/SO+Fv+W6iuRJXc/ygj0NLMPJR+nsYsl5HZh8flVD/Ob/VBOnLV+B6FX3zbGDi2J1byDiTkX14Mj6DeoguLGudviW9pr0jlIvGUPnHd6I5Xz4D0CJBl2fdcuQeKH65NFAki0bDH/TgtAHF9XCSKoUN6OARVSWViSVWJbpxfiSJzmy+l4oCyHpAZ+uOEadNMxqje4BNdSlx5LyShnMzb19iMJ8ekLxrg0XLjDBiXzkd3oTUcqBNgwJDZuI4Zlh7GDIHrvhuguy4kx+TVhD1zC7V58Wph066fXxmaPb0yO3MY+nlmJBS+a4cyGVtjkvIZT0t+AvpxQimsKatVlTSNevWWUy+6Xr9rwkIISs4hbYClBAU/70Ff/cjYqwZuEc9HMJ47v0Bh3hciVzZbd9jpp1BSnCua6Cn4Z7LBC6hkII17itoSAkzNlAUeQHPjzuambOoSLVAcrNmVZpE0b/rpZsiTaSpt/5PO2NcNE4W/HUn5DYY9NumeBKlfy/tiVD3iV47FL52MawdJFIRrsv22WE0aNjn5JALR0vrg6alPC4GqzGi0x2dTXGeyjldAsOXqMN7vDOznP0rV2YMeH0rQByQoEYKTjM5nMAECGS0OTF06Gkmt3hrNGEwBwbJ8s32PvFAkEbpDZij7FeuRdRZNbIi6ykTfUfrvOu6zt9/HbZtp1krUOwpUzAwBDQ6VIyh2fXLsOJt9wSjQBAPlhZ2V5io0uFOi4sC7sW0FJ0VORmKJuebPVzfymt3Zwl4mpAKxWI6yIcN7UGP7O36wdzJ2sTtMuSdYStFvKDABsjJRaLi2ckyjtrAylRBMAuIqtkeUetrYYwBbVsWXZz9Zfkf2FJ+Af/MRp3SMx/K/rsMDtJCRkbi9IpWYAQBDC2tET7Bp35uQ8Nqm2kwgTN+bzQO82y4nVY/l/YK5mujxG82mIshvGBAkr4jk3HZkdbEy0GsuBqPSeskcoF8cHyGZmk/zR5KiSXsX0Qdsd1w/SLhcRMbNmLiajcM11wc2miEV7W9rZyyyWPRjhKhBUwcEvMQg2aYUjdko+M9qj08BRLBVw57j2kYaDxCxa5Whq0Zfw3LFNZiFMuJy/ajkhBp2PDNUr2jwW3AwTViZhuUNRRExoOO+5wLQsgPvnBkrpy9LHbWUJLgifj57YnOETp9/agBaJmZrr3fPWqLnv4OVU7jLBWAYORiw6I+nkyUXZr9V51cqpYWKWwesu6sze2EkioKiY07xsr9FWNFGnIoMuHQTtJtgjHpq1q5c6PYTnJHc89QVToXRia3aChNG0ozNG2p4+wWSQwrSMCNyRbGqdtGtdtBNgEmKUD13b4a/rdBHS7QXDm65jLuZWjduF/ZM7Vq0G1K48wlrQlads6tWxoxFnYePQDF9446wcGKWryN3FIoIvQWWECe0JiWSNE9Zgp8I2OO5N7rZ4j+JqLTuTcKN+N+2uJE4HdpYhHFrjqfhifG8xeLVqh2xpKW0QtH9nantgveeHMvUvqwWRHjh/fY6Fynqqus4eC/jdgzEDALvOnsrXCJ/Y6MUvvsv+bXaqQGtzH8Xw38sEAChBy9EpJvvD/+GeYu7EBb+PsawRq+QYqw/HNF+EMKeMGF5fGM82C4N1+PITrRiupxOCQZNE8Akg1vJxZE5WLh/xauyIxW1wgxsevqwup/qlcZuFo/BraGMq/0eLbJ8bHvevmtajDL1KmpQmeXhhsd6b2E0XdqMN8Tz63vX1bB51r/fDMTlU4FH4f/dW1D3GJj0X8HMIiUPfPYplmpPNhgrC3wgThAJKWxk/xWjdW80Z9rPTqRw747a1pMZklqNhdHZnzGg4vdOz3FNDUFuJCSFH1mjkdYprxdYxfrx1BgNcWLXMldhwV/DtVEYDaosrV4wbvcv4y2c2Pcv/5UI+L+pE7a2PsM6mA5duraWmpU6QX3B+fSKNtw7rHwxnigb32nfAFHA4Rf1BWRvqGccafEO4D549P94zBbClCKHppCBZU9uNQFI5MwAgsa2csAdK6XGqJ2p7L9tTpgkAeKFT1b2K0GUzSgCgLt1lVUxmAVaoaLpqURxdPjYBhTeOnj9Iv7x1ZmsR4ZNZ5QBsIyLCQ6nJtsev87rOHkHefja2GSEu2VMOwDYkoj1uuGzaPtVyc/b5lttFpO1HCM5ls7mdrB7PCJjrjcwAwJwBTznhqYqiz16r7U32TokmANB0ZU9F94kLcLlJAMAV1dGsZk/QvZ7dj762dfjFXva/+tKXzeZ2AhKXksnbOjMAYONQVoKRUJSMOzFfHLqQoCjsnjg0t32V+aqLpduDGvSXSrmATBf+6O+HktGouMEIqUXY2udqsA2OWd8VVAG2u1/zEyj+hSYNgekMCoDu5TEJTx2GL8BpN04zXUzC55u1gJNrasnMoprDvgBRza9UrGtWxQxh/wi4RUluBBlyDMp+TjcWSAdA9gxEkh0TJbwDL9rR714zz43/ox31mJgOpuVPVLiK2t0gWXff9OB84fR633LMWGqeEWn2wGBclxR+XUWHDkDfrXgCtbtocK7/GoIWkmYDx6fXhQG6fsVxXt2PuqM59ThInB6PF/V9OR/sJ17YQzOi0mEyy30a3Rh5p4a2oUTqT5/HyJrEo827ys59gXx9BYgi1SOUDvNCX1wgYyWSD20LECfbMJmBTStiTJOBwU1niV3vLy+sGHfNdjcFAHytdmbyWNw7pc46xFFh/jp+4WF1di10ZKxWS1n5QTbc6nvOH/r+wIPSEQ4IHesNx9c8+tMPaz7jgSUMoVUGncfzEPszbTCJ/aJhW4wj+ego6X+JQsUbWhAkpINJij5ooXnc6dwME2P4XC4V1+oYp8V2eEdujVankY4pLrlzMOVsoAfPsq0VnuufY9576RzaWdsBODo7JmsxsGZO4mJlhJHSkiMrizonS7H+zMtxOQ5brEAIu9tnE3GJ4gUEnwsDB+25v6JyK6cdrEpuDt123vsmKI0GRfzCBJ3dDh1S6H+vqtodowsZc/cgtMEMBxFwq16UQvaITAVz8Z/r97LjAtDxT+pavdwqZkRryrP+eFdsm2IHO2QrZbdRvZNa6mWETbK+brtQVi0QnRgLvrAgmxVz+4QYpzgghvsUN+QE792KrrMZGmGjlHU8Ehgermdt3TeAlEiVtgS87Qw3h0omSCfSsvuIMtDKnPF4vdfHkKa8uMq1zyemxnvRKwLO+lE4qvK7qFUc8w5yoekETdULJCiGs3iRHx17sRbbyoOpYQl1aALGpLn145D6PWRAahmsMjLIebGgt57Fl3UWjTN+dwaDHToY+97NZZxPFPDDQyqpB6poTRnFzQK8MUvdvNvYX4Gp4dr8ZfnV5ATTiqaKM9EopYUo4UMiVieR/9QpYMwYqIg5IxhioLTPeOl4Yy469guMzRptp+y1lKNqy2YihkQFPNr7eeZctGubRMRxZToiqh3jPnLA73yrgc9ezE8Tn4eRGZuVEwBxsSxZ4sP60HLapZWEF4vx5AoYMrcpHzCfX41SB2HanzM1YJdedN7x4NmV2jP6kTo4VVRu1jCa16yxu/JbXviYJl2N8mcBfz1teVFXwhWLD59msDQ35K12R2ub9lSNiv2IEhT8OoVJ0C8g2iCk2CH/XOyIIza6UBjdZ/LifaYST0XzQd8xMX9LigdfIe5Lr4U9fMB4J0Tj55bvDzg81o+EDNI8u7J4rXT3nr18N1LFz9VmrhHjpuNOqeputxktteBeFjMAEFJKCEZCcb7GpSoWpzzkBCXXzpWqySnhK8sEANgPj/XxbJYy2c0D/url2qnD3/ieBVYC4NoAWou3vDP06vO4oUhI3AdEHQbiObrqSWE9T/h6qNv4a08EoLpcVUdMNF0BqFXHVP+mqZjSzE34mWi8805g1AdkuGDVih2GIUKJp+giBihJZuE5jfe/ilpXdDXzj8npQ9oDgN2yXZubS1wn8UFXcNc49tyGVpyBRhTphoSxEZCs2MG2Z0snOyfc/haQaKyiNtH4Qol1P7A5jOuBidfSznB1iLFrbjTj7xUUhylGTxy7fkZw/ngeBuuh/vvrWo6q/km0/DXN67ZkiwT6sKs+VzzfP68xV/M46qEEJJ1jhq4Iaz/AG0+fOvfdR5GZi517XVc8FsAkt+sZA0kk+vVYhXtQiqf/HZh8go5+pU89qkQH7ZkFfZ41rF2b3Gbz5qGSriHY2zdw2NOWV72V+nC8c6Kb6PFk/Lsle5SHuWbP34nUYx9c/HsdTfMrRa9WA+o10BLn85kWBOvuuMOWIQ3Cde0GRJ+P7dbJAN6NKzvr2jfkO6+CQ+PkWJeQstapRj3T9Fn+WLlC/R8pcKOpztB6VdS1HbrRrDPeSTKMhgvO5tLVA3Im8KFvKvqLl/WybtFRZ4dFe7niWYsxnt74hPO6qXJ+/VOtIR7761QUDxvqtEZMI8Om9uZXzEmrV8JmVbqaAzpOEVbW313WaDLcZTCVDen6xvwFVqEcHjjglWf4O2wVdEHMvWieIzEvtIypn3YSTnANB/bLkQq9dd1xBqx3fZfCyBYBRIuiPE7XnGb8+N6+qZgaD7oAKqb7aMXAOBF8GPacE1uZtcYgCt0rWfWOa6pao8BDcyNPpw0WF6NlleV3wuv5E31jMxScOhPNypi9jL68y8nhriOHgxLTfa7nYEfziP/KS/THF7bMrP3yhsFUJvcwExYTMu6yTGc6o6CgtkUWocBZv2x05k1sAlWNG9lTMMf3RNiCu96FeYW1xASz3bEfkOU4+0IaVsvAW6EUVmbgjdHAsvPznJRdxUVPiPkpXV+FvWNsyt4ANHbHI1QR5ysbmhW5tmq22cmgr1xNkSuX8C8f7YF4T09r6Guaj4123KXT9MXCF/zGtWqDKtmmxNpz/scN803rNkr4ZBMOim8m4BPpOdTUFwrdOVuWEvgywOek4uvUa9O4CWJeAq99qBN2XuGVmagXPI4Zp1o95LQYiVdX4rqgts0bma9JXKE8C5w0AQYHXN7Fdm2Lww5HHOUsOTFNOkgvxzk2I4zD0MC6I/LPRStdegi7WOW73txGocc7IVoi3i9sVaXSEJKwwnWwoyhhJ3HaWmDadbWsYXrBabUsszzF4d66bDTxZ1ovl0YYaemAEJvAjZfN3jjDY2gqPNlfXdQ/19H7gt0QUuJit6bFMcMCvSkViiLxGAIELELsv744jl8XjcMj9t2qt3KvAwkFjK2Ye7hy4QtLNYNuI18gt6cnzOaP/ddIfB32a+mHy/jAr9km0Ie/tmKx8ENaiftoz2by3e53vDPOiSLP7gZvDL4mE85GWYTgQLy0h4ouDIyh/orkYvhV9lhw/L0lWWGAWDAGY0cndGz0sXtZ7F7k6l2oDUGj1CFxJmN576G/XgfGqbRT4e8FvEw3eqEdK0CML1OySyy33MrJIIdMwLyUQyGxYbkB79xTPAqSsB8WuGm9lfD8rCR9exnwSfjXd78NHuHw7CT1pSy5bJq8rWEGAC4Oe51grCY0bwqlLPb6gOdOZeecY3s+nHNpJgBw02fkAORo2FwW7FWFXiLdtDb1AwA3AqRNKO0A9Wk+q4GGuthbQJTx5wAsRyVIns5mAFaR31c/HAXuqlmSPYuyCk1KbBs40WZZgAm1hXyA1Wa2soBY/e0eMFRVkWZEMfBt7Do+Wyw/h70G5wn28xA+mQYSwJb7Z+P0mPiocvtOLq7MpufkayJ+Ly6ZCxLAJhKjHbZUFr3fd5rnHIy0q6Qjeiw4neuTqtenOgxlXUFaxwwAdAi7HYx8MOOQPvpUdszlkeOU+PoIH5doAgADXedUmwCKivRSLnSV9gMAUxBbiXKgpuyjIZw0tiCW+rcLTRSDFVujvX0W1agcs9uD6w+iN1/IP7gOq/uB6zII1knI+eVEaTCYa80AAIXQw2DkPzcOve2Awq6OA1oXKMy/zXvoHebgmguXGZVjcmv+dl04uAGfePzoi2MuuRTE0HiKMN84N5sLrC+Invtur/vd+CVecmPeE+q1n+LhuZvAB8HFmKwkAgTz2tel+r10fODFmt+DpA7zTGpcDz8YTzSezbGTIjZoMm8GJ0XCp4Ul8ESK6hnKmAcnZcQPBsHOcZoyp3+pCS5Yf5/ZxXwT/J74DL9vdg3P9S3dinU3KaxL2ODPspgBgBfVkhB1MHLCglxV+fLss20XHY4X3+ZMAEBzx9tmFve3XjNUz95PD7v0ZjFfN/vHxzn7OVnSZduvaxafw3F8HXXh9tRNbdqNq0fsD6taZjEA8KyO53yMksen7uZl9bv5VNYc/m5Xdftd6jXHKeFZSuG/XQ27cd5As4rfcg5/twsjvxsEs4BzGFJJ7xsO+s7pSLDU8RpolpR3UGlSkKSdjpsO4qoj/6VMKBY60m4rZgl0tKxlz7rQcdXWezZGKaCpiNsl+hE6ZjXa++V3b4oPtLc/Vg8cl63ldmIV1lP5KWWfn6xViPY/J+FzfaHhR6IaGpf9WcYMAHSHZLv0RJZPhy9dEXJ9zLnfqzZs3d1oXYYmANDJIjoSajZjat8PwO1KOdm6qt5cEAAY7VZXDxQoqJlFPkBJ7s3EB0BJ4lF8gGnVbxwfEKcUyPEBSVmupOu6ikmDwF0VSoadCqWKNsMQrFpb3BisY2afCPaovy8Ftl1VdEVRjNMx2z8HNfvzSHbwmSmr+4cMBAlg+/2zMVrHrFZGz1fLG/M79MWvVg8OGQ0SwIYSI76sQzD5qD578Tl67SmmPUYI4r57bIs58seSlYGq1zEDAHWa4QbsUj6YOSWXS64d/Sz32dkyTQAAgbiqDQuyC+XcruBcahAAtCGsEiVCVbJvALWksRqC1T8PBCoGbmhOegeiGrlj1l/sPbnhjb97H4OvWOjLtA05YoC9ubjn3CzgslxrJLLGxbeuQGUE/GhuSyTTwXZUnPLcvyQu817WiUi1MeK9/qJgUT3olcMfe5bnozvDnX/83DtdmTBoXpS2au9AnjCmENQuxgIsv9hXApuVcJ+d50z8wFan8vDuOrgrbu4rMZMfYok5RzHl4YkV/Mqj3ZLiHsl0R4ktQeQNmZGE90dgbse5UVRJNJ1PkgslNKJlp4xNYfL9C3W5GDo5N1iSOd4FaNNCGYsAxgmdQnEhp3uo4m82DMwPkTqn1YXuYyNJVYQgEvLOUMdR1P58wZMepYc6lHccJFsWn16CavVjQyfxs71IWNEARMiDtpyqWMbUAZpaPWmDVrNChcJu14uX4Yvb6gptCIK1jz/kO7CpyQV5EVOioQK9JikVhk8ufEk1XwAD6Q77IUymxVkepdKhRekIcxTkWZdO+WlEl99URtcgnLp8wEHx40aEJgY+YkF3OlTP5JORz7tSW3ReIbQg9kbrUKWTmBK+ivfMPodogfGq+U6wnVYI+WEoBDO/TLcgynGBToKWcb45N3VnpWO82/pUJJCzqez//nFrOghAJtIklGAd406zy5Ic734hMt2LOuwuMXujjjXMgZU5Xtx0tCOz7EWsu8p+9Mk6pVgcKzfmigBFfbwWgx3r7GKhdbdHKcwbrxlT/03ZbvueZq1P/wvGs4zBpNz32bPL4d8s73AWgkUzHlup9DyuMBU3MAhlI6MAzZftWHYImrPDj1NoC4NqbhbuUSiOu7Z0BAnQYb78PrYl++Lv9mwBnusQ1JHG+otTmL2m7aaz+vs6AED6sguBzr+g2F5CjhXGmNFf2olDwzMK6SltApu/b2LDZYoIp1CjF3qaQyePXOiJn1MwMalvtAmc2Q4jtcv74DMZ6lhnJYivToA7LgQJ6wlTrYUtXCgvdI828TdOttDnaYNyFVzo1fTVq/GdELyIJM4yR8UpSYapvCR1t7aaRIw8TBwvaAm+Hll3jQA2kh3SND8iOf8QknOfvDujg42UBfEackfUhO/C5c1ySXjgw1EK0rcjGGvyDmkf387gpNFoZd+/3XqiXxfJ+t4/reMeZZwj1+rqKPyX9GFmilwNC/dIYBW2HHkMrfAgqhoAdVBbxYW12UPusLvdJEXkRpfaYJMA0OLlNbACwCtDcrd0YfRERT2deNSQAGx0ANR8GOmdfQyKMXUCbbUKJQfqScIR3r4fd6DofDSMuGEe4dRS4YHz1Hl1mFXWmhClLNdSok4zKZWANUpSiWSWwhRIiQ5zTYKZ6ob2j5hogG3Q681x1rSjHBiTqu74sfQ5+ZDXaiN+cMxbM8LWW+2wAceFR+/MCe39T6ze+G+KMlN6a75HTF6KrLTXvXU3u8PKU3NZHj5qtOe9N9r3Gqqqt8Cz1N9CFjqJQqvtGrZN6I1rIj3+rRSee/Jz1NtKZkP1UxcziSI1JgGOXzs73IShzupkn/6DC2zdxnR/Ir9uTHoPZLTmDuIzj231CSzZRz9BtcCjlaEj1HWAQlkKf/XoPEHBewjX1xN9BMitB4yEoDshyv/TWYm3q1+AW4sYczu5wcDcMLdhNx/XskQQD6nF2jyKQvLxMyYCSfRmfg428lygl3b4/4Y4JiVSAYlUvs6P0gF5aditFJfbT3dy27ZT1FvlQj72e4kyMpNMVS22pRdxHBqJud24L3Z0zE8cXnReEyT2h4TX82yT6JYvD25eC/yDqU9SLqbBxxi7wFiEep8QhNZrS8+Y2uvxUieOYarVGCrOFPhdyi8H9m8aZryd3gAVBwmkjdpldG8qETJzE4MuWyA77vASFNIe9s6alecW1NndFYOqiR7gkWme0tYe6Uf5qhmV7DFhuZXNTyhs3O40WAFC23H0EPX4RrWj95GvnKRuQ/xvrsqm36feaJbnSyNDK1dnJn85ioHmU+sDCZpJX0JtgNk9kAwkFi59+w0LjfBe2SZxPy68WcWZMC8+Nrwp2hP3BvOB3wuO9/RDPUj4b/12avPIka6p0zQlJDEofS7dRVIgW4u6pZk2XgRMxbx75nrxHUspeXpIddPR5VJfZdgjnVU8G9I+5Ds8oXL4M5m43pqfpBNDgoEtdl4p9b+4P1azrekdtsVRftXXvf2mesSGzPOCpCowM/As6SyBWUhQdFoz7ETiTeiNieIcSOc6rCB5MZZVAvwHwuYA9zKtWUluBTnSsOQPDwNb8Gimp/pcY3FOCH8d/WpR59A+V1uX/b6yzTvf7nbc/7f7WVz8rL2/fuA/nc93/K93DKUf52J74P7ljp2/fnOo4/up2z3933lKdbTXVwzW32EIpMr0Bowx5U8gRqU9Zm1KMS16VrDQzgsU663fk7+cZRfGxrLXF1H3b8Fvx7SgAUFF29LFEIhwp4xvftEDshUxFFBC8Up3Q3jtzeU60dwPlaOSSMWbuVvOLgs5U8193sO9iYSTL9KMfokZqpPbjOE8wc1X/kluxjg90eXrtpiqkr1H28tjsppDA2vtaJN3OGsbK5eScwgsCag06XYlBs4zOnx3eHxA0UCjzuTRJJqyp0Lv62RFBJBOpw0YFRwvAjNLx0dmfQ4dq2G5d5M5/J7FVTJdAmCI8qE9L7NBRoQRz+Vjp2WInn4iJqLq8Q3XRfnhWQWFigohD3uBtQ1N2/QmLCJwlRjNxT89ctFtcYBpFwVHRYwTNRJwFMWgX0gXL75D8W2OaHmcq4sTBs9kSC+jW91KGC+Ek2bcPHmsmzkn/Q0CSHtkr7MdAtkiQV7KUbV+RQeChy7j2Pq0YRygKEXfvIhMtOVGwXcultKonY/zjw1R4uqRsO6Mnxfm+Sw7cUKGU3o/XonWIT+LkX85wxcwpDYoS+kfF09VskUzcV7qjjqQb5P2pGbUiNGxTY9Tvo0q/8RNG5InzFxh6TeLoHPGy+smnnutLJNg/rCTeW+KzE+pJbgovnhEGYRUlfnNLSrR7rm7adV1E6v/BmASTdac/thdDTdihISpm7p9d07xEXqW/nAlPUlnX4nqgM/sGcJLJwF3k02gxQf6Q90Q+1RVNdilCYmZs6NT+Wbl8M/EpupPdW/PAZU1jjFPCSoQi+6H+rDBWW4z9o6Tk3YupSlR3EHcMv93XWHlQtRTevBq8rhlJKF0FJFjfDCSFcXxpNW4EXdL/amdOs8pnhnC+lyp7V8Hg97uIf/5RVbb38Fj+YjGLEsvds3R2V/+FHomXLJ03FI0jXTWYKSP91NV+J3S7QbM6YGJ/qJXNzrU9xs4sAmsVQXUELkcVxgFKNcbGyHtIxAa0pd29rLdxuwJEg9AXEd4T8Adj3PA3S5P681Ru2XclM8HDGSYDb4ebQKM/+aufRPYM3LQkwlPKSsxMCCTjd01Bhq/CVhpMh1lVEfw20EzU2MPINctBsdKsgOlEYWKmtjUKg10PJVgaLnr4DhSd6qwNna9gofKWQthSHfRHSibKQS3SWzgD2HPqNmEFs6QamG992qia2MYfoYYktbjIVji8hVje2/JpPWCL+BWQHGZBWvLyiNgKQmydZTMo5jiiahr44/QlHKqVaa5bWMYpS9YzZ4fHUBxVzvsUl5dSyeISQIiPoKBNbGt5i9HjvppB614rGuwkFE7E95jTUmABD8Ysw4q4zJPtimUOlVfUBrHCYqmugcGYkehNEjdbcmA4WM7s7ZDFr/X8fuRdtHDGDEDdnKf6Sf5IUk06ZHdfpqk1tHhIy1mHVmTyQ55m3K/djny2c6pqPvCylAoqUq65/LJSY6S0eqeeQmSNDh2wadWx766QKS9SAyUbpyhd4UU4DXHl8ByTieaYRF3snlNKG/uBZccqtFpmxf0qiCgrJIDcWuRGdaixmaREebfMoC2XtlSh2oVLJFB8mHwb6wAf6mv1dGL6Sc2f0270EC+ltBTPIAYpPnH/MYoJdCdW97NX7Jb2XrlQc6/8dFZPGUsmQGKYwQwovWpDjYSVfOex5c0SoM/WTbutzo1rOsn04kF4JmLndk/WVZYFnJGqpSxOusAQCeentwjEzNjf/Tn8nOXu+46131u19xO84/rymAPn10xcw9AMSPzXx86ScxYAAuQ/IReI7nOBTfvo0j1CAYim2kKoHwyn7n9YDecheL0vrNIyThrElQfuQsOPmjHML23vpBFYuUFG7QyZj6A3aTTHYBzna/bzswvdxuiLZjn/Kcj+A4qnOAXz0SLqhyXxxCJyaqB8/FZzweJs7/r8ZdDVE42rxKJBeofynd606vz3awsI5gw/GZYyF5Xdov5UbhWeeViD1B7Lo2y8KFNH4UB9fuGT3v1xrfnV+2b8lRo4HES7UDixkYV20oRc1CPar4b8y6+KxDXPBKTd37B3OznbKaf1/C7ylYKXZXC80PfJRjFoTaC0IC/sKW0D8aPVSrts2S0JF9DYDvFoHH9G9wg/5BrkGozncbjWeUAcZteckv57+CPzBbNCdtHAsQ6pxIazHsgJ5rQgCPj/t/GJMp0oK5MMtab83RUwb3DzlSLW4DUdsAvVEPx5S2y/2q+FrHfO98fMfbHbX92yz2DN+t+8XC5+LVxhVtyYXm0WScyTjf7tq/wzuebOyC08/nmTo50Y4TDz/QCZ33/KqNJoeUD8iyFTN4bL8qEUvpcOvAms//g0NmvmL+7NtnHe4x9PoK2jjyuNilXSfQA7eoGAA5Tz0YMD07SjQs/kpwHp0faRadvQboijtXjIBRWbLJntVqqo144X6oheLqViPEkHrfUPeAqlWCrGC3zHchO9dylwNXs/AcAUEPgo/GTabA+7XZdYBM5fDNJbvG+ge6UP2rBd1srmOagU42awLQJgtG8twcyMsfuAEf9d9sBAFRVdM7zlz5UT3Rum3+pxXbc9A6V5subA3pANTQdUfDRdZVtW091uzEPAJhesLCOuxSgqWe2DzAws3cWqGI2rAcwWwG1pKkrPvVF3Pv0eeRZL31fq5M/46b//4OZAuyX0d/6FF0WSBU816UoWmzFhs79In/rDT7EL/lYC/2bbK8N4HkthS4I35fo3qfPI7tVZrkUn+qylx9D3WzlO/p7CVETvnTCbpYj7Mgfaw3x+kPsDbkrj0BZGNxkj20Au2GO+Arn8qFfkB69l1+eH6w3hQXXj7SNkasY5ArFvXXdAICGtAA3uKrr+yDN5DzYldWd75E00xVxuJsOQmHFThzu6ECRxDm4y0pEa5pIWOoemJNKoGp663wH7FTP7Qr4svMfAOjgAHPGj2EgU7ttCSijixcBOhp/y4L3UCvATVCkdtuP04mq3q1s8E9llceb/EbhJNua/vDeW4kcAsXcW9cFAFwOu7I+Hy1vxdh6wWGpfj24/CQ++JlM0+b8dEan02GoC0Je+BJvHmS4U3MeoZBxY0cBADA2kKuZLf416GjgG95m8wuhwMYPug1KqXfrAAC0B0RIGS6aoyMRYkSj/j1S3Ma4K5sOLouM+Lg2Ocxkp9cmhZ5GRqsTbcrIO7yhN8QVaa+/Gr4HRJORxZIaXG2N1JZwcG+Xx/9dpxvn07y1uR2r6rSfxyPtiaZK4Mtk9M9FitOX/N7+Gr1GXFmNQo7z8Ub5ucO3yZo+szOT1eq4suRaVcP/tJ4bAIgRqycIK4alrUngnzuJmaS+cSxHWztrUQXgpSvMsWsQhDtXrDxciV0M3EniDDfKtw4RALDRTMUkCLvmIJpro/SpcY4poMeFdv0DAIwMKoHGj2xRVlC5sL3Uclji+BFOh3+7Kl4puYJMTa89hCCRi3l+MFGFMgt0l4eBqOLSJ65GbJF1xePoHnVtXkUjnxTfTlqIXPlCX6pLxz/hfUGJPjbsdETJeuzLuZv7pn07SS41N/X6FVan3xHydjNbV9SZrcfv3NThdwHW33fuYP4T7SZfQk97xroDf+7q7MudBWF19Y2snr7C6ugrpn6+IhLrha6Xb5g6+XLlFd7F97PVvfdR18GXy2d23dTQ9e4VVOfeyVkbQrAs3k2flrjXRzRq/6+GQOqh3qv40FGiSGurO1WbdlUEcYBgeZdQxVC5BYRTg5gaWzcFAGAPOGm7N227BZyn0W565VkVpT5R/LWKyiv0WtqVBwDcrJBbYwvnqm42q+tW/JcYd9huu138O6Fi6+K4PcV/CVSGKK7h2iYoI+4TxWHojrbmsx6i69561eaCNTx9zO7xBt61hnvHmoGzs13cFpWjQx01jwVnPfwDSOh6zrrveLwvA55QvNsisGag7GggVTW3YxOu1bd/rxsAsFB4Rl14ELN5LDh7q7u7v/9NWwQDVoXhF5IXO4LBLpLAVZwVN2sTIgDQFBoVTIK4rspe871AcsVzdydbUZfXG/8BAJVQbaf2o0iBPWvNmwVBVsR3vZANQOYk/aUOrbE21DVnFLgzj3eftkuMPEElxqS71dVz0YLtqXpIpDcT6l2t9WbOxphybgwbm9oBAJf0RqDm25Ebo0G13ZJoF1hbaZBgeBvzAAD5wMkSDt3OVR/elJZBzXlC5MN7MbJRig8HNBpQGx9OdQPUlEJcO1fZFfZwUZ435Tn7WTpr+skUw/M1iqKrq6yhnib/sTf0ia/hL2v6xyyGDeC5Gc1Ow1T304p8DPrx5Hcyb/xYM0imIXYVHGHfVPdr/nwBX+qJ4WeDvq0ZHLMiNoBdCUc8QZvui664XukJFcj4h9YMlmQHq1UHi9wduLeuGwDYA+KPG2M2twv2Utpt34iVpC2CC11cUS5Iqg/XuEiiEtx9mxABgAbR4NYkCOuy1TnfCzisnttrsM2d/wAAQwH1GD9WAV1rzR0AY2TxukypII+m10asDVWGaoHuBubhtBVeViiV+JEI79PPGSE9ja1nBD//09nt0Fn8TCjXXYXbCUhcZq54W28DAEzFUg/n4NKToqUe/8SDP6R4VrdUMurWDCOOtmVqIPhEc/6uEMLblMEpI0S65sxBEBLth3ICAGA7TroKgRXz3dUnLY6F2E71h9eT6SrYt2EHAHAKWU4ZSisGr0pnrgGvRhOvBa+I144J+AC3WBxSCFy7Pv5PqPCd5v0gJTNuo8+LSFPJLtYk2Kj2/3s2u4Tp781+jd7228kdhpd74i6tLYt9VpuSrBTgvGWGAMDt8w4xDUtNsuBVE+m6aIbuIb5Jkxhpa8z59ukU/llRVdZcgSJAUK0GCZQFjN4NiAAAALhd6vO7QWTQ6FaugG5bYhJoe/M/ANAL0D1Q/UkJNhWl5GYaKCWN00Cpn9I00iU0dAvAFycaCGZB5rI6DwTW/mHj6DWc/qyTv317Vz5236atNPhAx+d/X0yEvxnElfVFpzW1esooSxPeyNhI1y+ydWPqcFWstDbO6r5e8nGdoo7S9xidl3034FBkDN/UNH+dL29y3B23ydYVADFMtqqo2uq1ihQ4fwc1+YuKGe7urcIeQpnLN5fcdARvOS/4nV3mUv6/SyKQSu/KmSHJXEid2hi05RakoQmhbdlTAEA1UalMaz6FuQVZrLZT5DlN1KmpsAyuYcFPZXkAQDzhqroeOD4Np54HVaO2MhobVU9q2ZoQVZu1BrELdStNUWaZu104n+KDe9BtxGdWyR1Woz8OL0dvcl4Y+kJYHLgur47XdEY1UffrF85S1kvLQ/i2Whyo2lbCemfh7Nrt5l6WIQAwEdwnI88jC+NgNg8ODledTy5kGj7cR1UY8wLsYkcw6qokoINnS4kgrnDBS90D22MSpQOQKZ6bmy5Juju98R8AWBJNd9SfoKaoKC03M1AgjTNQ8EAmVboAaZVA9zInA0C3PHH/EF9Cia1aFwmjxKYxkByirmS7a2yj7qramBHqudu72gEATxVqIFs+c0rPGDfbmXN65ExuxYU89eHQm/IAgClNlak+oKHjthZMU8/IBWZgZmsDRjEbXAQjFEG5Ju16cQsrWfiIPu3NK+KbF2Oxn0oxPEuhKAp5yorQuJ2fN/zTwvTnLPZP2ckawDMSmp0amrJbTs+Ib2/w94LflrU4SKUhdpAbYViCx36Uvt6ML1LVfSwOTtnOGsAOdKMtXylbcI67D3qDj+GHoc7igNUmpSrJtU4OUhk4AOA+5Pe4smZzg7AJaefczJSlLEL7chUWNQ1XsUqiRLgtJQJ9SfNf6h5QJVfkOb6Lbm2q57YzS512t2vjPwCwGHSvR/1JFbEU7cnNNJSSxmko9UA6VfoAsM2CyQLIup8VUdW3lF2uqG8wvZlt+iuCz1dG//jSXkuRNQ3f0LL/WvD2chdYeEefP464/vz2g/b8zeIvdxJN1XfWE/0VgUvqkAxpbc8aFgyP/kEg0FBFxm6+MlTDRrB49gTh61CfP0yk8q1v3gb9FduKJ9o3ysgAPWKdUUyeYjNdhce9dvEUhSMETTGVeU1O7sJjaJt8ZGf63D1jX2G40rT8RGj2SClJdV8TnhhNV0nVqL4PSG7mjzGmSVPzuuDGwfYUGBJzuUxo+TPyUE0Qvx0jW1RgnEnMBGpFvKe56o2owD//Caay1rzM0TVJbXiAPT5GeaME7MfUuN9gAXvsj2OiMvuEjTvBmDaUvkP9SLrD8vMn9oIk7IfYa3zBuO2XGVl0ZVuo6t/w94Eqncv5hbMOYXKwdn3XJrtNBMDBo7FniPC5hi2W8C16bPs0akkChRDD8Ri6C0IXmQDD9PU0+r11/EupXHJTRcGazqrDqwHCVPz+wZX5mJvoCvxxz2slk5bcE5rSYa8M/q8cVAvW82tTAyora1RPfXNmWV4SmYyFcTqLrftbLNg7zEbbf2MbGwjOXNPuYmesd9uURqhzcfnPAMu2RE4XuOJxMpmp5rvcZDAV+DJ7475G6biYPQ6uZp6E2aNzdfh0rWKIozluyrg20YWX2bNV6bsJajFsdBjwHltXTtJfx6JX6eWL5HT/BvC86PQjZlf36qn6ItY/Pj5bLfx+qmpvuOf6r4Nve3z/3jUuF6Ce1vPPuN4/golnsdTO2AnJ13/j7nXXmyD2FU3nc/eMcY+ups0kQHeEIeWI5wq+xkM2SnCWqhxSo4nXJywv5IbH7a4/2qN9IlIlXGm8sxZ9RzOLRJfxceoahJp8iZHO6OhlejRmk4Q9meH88bt49+TNrzT2HcT6BCT2B5P3YJkeZJtWP5oHQ0Q7GDfGqImAuArwEK/dmDCIj1caL+6gC2LN8Qq3/TL/xXuhq5RG0jhtkXgrNRN1i2QkQ8UPkmBgaB8Dj9FbWw/J1F8yd4Uc0RL30h3WXuie8WDBnxvV16hqmKVFCntaSqXuqkPkdLLUhpRSydSc0TZ1JXVXYsQmljRIY2K5BgFZGP+7KHhrEsEl2VR6U63pjy23iTB8Z+nfNkPJXt/MtbpkDwBYeOI1H4STiRgp4nsH5U73f20Z1BS/hfHFiyfqLjgSMzYXhb0tMYpoE5a18LartKGQTl5clKpqBShTvqkuSq2aAMoGdWFrXe4I1DXabrlvMPExD8sthJxKN6LmTQ3oxjbHUkJvE1xKOe9wyBuJGVfXxAJQZ6pgVU0IU2XqAlBk6hRKmjh6rjiOdy5W9KvcFoBWJ06uIwotMYlIpo5fE8s/8nNKx3PAMGHz13bq64/r4E2tVNVFr1JV4dKhSJnIgYLuHbd8QTV6qUKzXdAFul2qq+ygQXWjxj23GlPcwW5WhEExzf8SxyRC8Rae9moAXynvT9rrruL/h2J8qCDvOoz3ZN72bKm3cE41aFizlYlF0BBdy44XoCH39+P4guMzt1HX+P+fwXgbL8z1kX3T5+MqZhG15wiC1UdxT7Uev5lnLLnEKP73ulsOAO5ymjeXSlYeDQGL9NDKWG1V63HEy/jX4N0r7vriLL1Tj8/fjS3CUz/B27evM2HDtE4Awr/jMw7SQjRx0MSn72NNqs5K2k5iGjwAIeWHyrLhHdf03vRsqqXJr6r+8bGzdavV7dea+t6ryEMvQ1hX0GDXbjABANwNLyr3sae/dBIVPIn5xylkitd0NnWDTBn1gukmMrWsI00jMGaUNuSodS3VDvhaJdorwyo9nprszsV0NVO2BwDY82B94hwYnfHDC+Cs1lQKcEcSG++qCHzA0Cj1APioFITFWPXB1ikCcahdV+/yegPurSDclV44lrxGRVZpyJhj8XgiNLP5IQCwSi9a677N6CqsuNsDcNZUuRo9N654bzgP1affA0vpuDsB3eqZMMAtMzs2MNuAyAF4VCGWhKA3tA0MhF0vJW8mvKbC+srpH18yLDeAJ1I0G5VKZVcf7Gz2rzfWe6dosIDE/ZixuQHsXTfaArKyivxJPGLewHOMMM/6KusfXzoqSlXV+6Ww2/akKnmhCkfsQpkJAFBmt/Iemp2/EqnYGRUQYpPFZwlbqxrUsX1KEoaN5NoyK1Us144d5wr0JplvvgO4qrSbOxeQMoAAwM0WzR/cQAO5uYKcFXG/tR4JoD2lFKvLXK5gqvEaQMWVvwI=","base64")).toString()),CL}var ZAe=new Map([[S.makeIdent(null,"fsevents").identHash,VAe],[S.makeIdent(null,"resolve").identHash,_Ae],[S.makeIdent(null,"typescript").identHash,XAe]]),bze={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,i]of zAe)e(S.parseDescriptor(r,!0),i)},getBuiltinPatch:async(t,e)=>{var s;let r="compat/";if(!e.startsWith(r))return;let i=S.parseIdent(e.slice(r.length)),n=(s=ZAe.get(i.identHash))==null?void 0:s();return typeof n!="undefined"?n:null},reduceDependency:async(t,e,r,i)=>typeof ZAe.get(t.identHash)=="undefined"?t:S.makeDescriptor(t,S.makeRange({protocol:"patch:",source:S.stringifyDescriptor(t),selector:`~builtin`,params:null}))}},vze=bze;var EL={};it(EL,{default:()=>xze});var V0=class extends Be{constructor(){super(...arguments);this.pkg=Y.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=Y.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=Y.String();this.args=Y.Proxy()}async execute(){let e=[];this.pkg&&e.push("--package",this.pkg),this.quiet&&e.push("--quiet");let r=S.parseIdent(this.command),i=S.makeIdent(r.scope,`create-${r.name}`);return this.cli.run(["dlx",...e,S.stringifyIdent(i),...this.args])}};V0.paths=[["create"]];var $Ae=V0;var jC=class extends Be{constructor(){super(...arguments);this.packages=Y.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=Y.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=Y.String();this.args=Y.Proxy()}async execute(){return fe.telemetry=null,await T.mktempPromise(async e=>{var p;let r=v.join(e,`dlx-${process.pid}`);await T.mkdirPromise(r),await T.writeFilePromise(v.join(r,"package.json"),`{} -`),await T.writeFilePromise(v.join(r,"yarn.lock"),"");let i=v.join(r,".yarnrc.yml"),n=await fe.findProjectCwd(this.context.cwd,wt.lockfile),s=!(await fe.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),o=n!==null?v.join(n,".yarnrc.yml"):null;o!==null&&T.existsSync(o)?(await T.copyFilePromise(o,i),await fe.updateConfiguration(r,d=>{let m=_(P({},d),{enableGlobalCache:s,enableTelemetry:!1});return Array.isArray(d.plugins)&&(m.plugins=d.plugins.map(I=>{let B=typeof I=="string"?I:I.path,b=M.isAbsolute(B)?B:M.resolve(M.fromPortablePath(n),B);return typeof I=="string"?b:{path:b,spec:I.spec}})),m})):await T.writeFilePromise(i,`enableGlobalCache: ${s} -enableTelemetry: false -`);let a=(p=this.packages)!=null?p:[this.command],l=S.parseDescriptor(this.command).name,c=await this.cli.run(["add","--",...a],{cwd:r,quiet:this.quiet});if(c!==0)return c;this.quiet||this.context.stdout.write(` -`);let u=await fe.find(r,this.context.plugins),{project:g,workspace:f}=await Ke.find(u,r);if(f===null)throw new rt(g.cwd,r);await g.restoreInstallState();let h=await Kt.getWorkspaceAccessibleBinaries(f);return h.has(l)===!1&&h.size===1&&typeof this.packages=="undefined"&&(l=Array.from(h)[0][0]),await Kt.executeWorkspaceAccessibleBinary(f,l,this.args,{packageAccessibleBinaries:h,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};jC.paths=[["dlx"]],jC.usage=ye.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var ele=jC;var Sze={commands:[$Ae,ele]},xze=Sze;var xL={};it(xL,{default:()=>Dze,fileUtils:()=>IL});var hf=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,YC=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Nr="file:";var IL={};it(IL,{makeArchiveFromLocator:()=>_0,makeBufferFromLocator:()=>BL,makeLocator:()=>wL,makeSpec:()=>tle,parseSpec:()=>yL});function yL(t){let{params:e,selector:r}=S.parseRange(t),i=M.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?S.parseLocator(e.locator):null,path:i}}function tle({parentLocator:t,path:e,folderHash:r,protocol:i}){let n=t!==null?{locator:S.stringifyLocator(t)}:{},s=typeof r!="undefined"?{hash:r}:{};return S.makeRange({protocol:i,source:e,selector:e,params:P(P({},s),n)})}function wL(t,{parentLocator:e,path:r,folderHash:i,protocol:n}){return S.makeLocator(t,tle({parentLocator:e,path:r,folderHash:i,protocol:n}))}async function _0(t,{protocol:e,fetchOptions:r,inMemory:i=!1}){let{parentLocator:n,path:s}=S.parseFileStyleRange(t.reference,{protocol:e}),o=v.isAbsolute(s)?{packageFs:new Ft(Se.root),prefixPath:Se.dot,localPath:Se.root}:await r.fetcher.fetch(n,r),a=o.localPath?{packageFs:new Ft(Se.root),prefixPath:v.relative(Se.root,o.localPath)}:o;o!==a&&o.releaseFs&&o.releaseFs();let l=a.packageFs,c=v.join(a.prefixPath,s);return await de.releaseAfterUseAsync(async()=>await Ai.makeArchiveFromDirectory(c,{baseFs:l,prefixPath:S.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:i}),a.releaseFs)}async function BL(t,{protocol:e,fetchOptions:r}){return(await _0(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var QL=class{supports(e,r){return!!e.reference.startsWith(Nr)}getLocalPath(e,r){let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Nr});if(v.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:v.resolve(s,n)}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:o}}async fetchFromDisk(e,r){return _0(e,{protocol:Nr,fetchOptions:r})}};var kze=2,bL=class{supportsDescriptor(e,r){return e.range.match(hf)?!0:!!e.range.startsWith(Nr)}supportsLocator(e,r){return!!e.reference.startsWith(Nr)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return hf.test(e.range)&&(e=S.makeDescriptor(e,`${Nr}${e.range}`)),S.bindDescriptor(e,{locator:S.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:n,parentLocator:s}=yL(e.range);if(s===null)throw new Error("Assertion failed: The descriptor should have been bound");let o=await BL(S.makeLocator(e,S.makeRange({protocol:Nr,source:n,selector:n,params:{locator:S.stringifyLocator(s)}})),{protocol:Nr,fetchOptions:i.fetchOptions}),a=mn.makeHash(`${kze}`,o).slice(0,6);return[wL(e,{parentLocator:s,path:n,folderHash:a,protocol:Nr})]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await de.releaseAfterUseAsync(async()=>await Ze.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return _(P({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:gt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var vL=class{supports(e,r){return YC.test(e.reference)?!!e.reference.startsWith(Nr):!1}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),checksum:o}}async fetchFromDisk(e,r){let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Nr}),s=v.isAbsolute(n)?{packageFs:new Ft(Se.root),prefixPath:Se.dot,localPath:Se.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new Ft(Se.root),prefixPath:v.relative(Se.root,s.localPath)}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.join(o.prefixPath,n),c=await a.readFilePromise(l);return await de.releaseAfterUseAsync(async()=>await Ai.convertToZip(c,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1}),o.releaseFs)}};var SL=class{supportsDescriptor(e,r){return YC.test(e.range)?!!(e.range.startsWith(Nr)||hf.test(e.range)):!1}supportsLocator(e,r){return YC.test(e.reference)?!!e.reference.startsWith(Nr):!1}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return hf.test(e.range)&&(e=S.makeDescriptor(e,`${Nr}${e.range}`)),S.bindDescriptor(e,{locator:S.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range;return n.startsWith(Nr)&&(n=n.slice(Nr.length)),[S.makeLocator(e,`${Nr}${M.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await de.releaseAfterUseAsync(async()=>await Ze.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return _(P({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:gt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var Pze={fetchers:[vL,QL],resolvers:[SL,bL]},Dze=Pze;var PL={};it(PL,{default:()=>Nze});var rle=ie(require("querystring")),ile=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function nle(t){return t?ile.some(e=>!!t.match(e)):!1}function sle(t){let e;for(let a of ile)if(e=t.match(a),e)break;if(!e)throw new Error(Rze(t));let[,r,i,n,s="master"]=e,{commit:o}=rle.default.parse(s);return s=o||s.replace(/[^:]*:/,""),{auth:r,username:i,reponame:n,treeish:s}}function Rze(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var kL=class{supports(e,r){return!!nle(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i=await Zt.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await T.mktempPromise(async n=>{let s=new Ft(n);await Ai.extractArchiveTo(i,s,{stripComponents:1});let o=Uc.splitRepoUrl(e.reference),a=v.join(n,"package.tgz");await Kt.prepareExternalProject(n,a,{configuration:r.project.configuration,report:r.report,workspace:o.extra.workspace,locator:e});let l=await T.readFilePromise(a);return await Ai.convertToZip(l,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:i,username:n,reponame:s,treeish:o}=sle(e.reference);return`https://${i?`${i}@`:""}github.com/${n}/${s}/archive/${o}.tar.gz`}};var Fze={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let i=new kL;if(!i.supports(e,r))return null;try{return await i.fetch(e,r)}catch(n){return null}}}},Nze=Fze;var FL={};it(FL,{default:()=>Tze});var qC=/^[^?]*\.(?:tar\.gz|tgz)(?:\?.*)?$/,JC=/^https?:/;var DL=class{supports(e,r){return qC.test(e.reference)?!!JC.test(e.reference):!1}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i=await Zt.get(e.reference,{configuration:r.project.configuration});return await Ai.convertToZip(i,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1})}};var RL=class{supportsDescriptor(e,r){return qC.test(e.range)?!!JC.test(e.range):!1}supportsLocator(e,r){return qC.test(e.reference)?!!JC.test(e.reference):!1}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){return[S.convertDescriptorToLocator(e)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await de.releaseAfterUseAsync(async()=>await Ze.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return _(P({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:gt.HARD,conditions:n.getConditions(),dependencies:n.dependencies,peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var Lze={fetchers:[DL],resolvers:[RL]},Tze=Lze;var ML={};it(ML,{default:()=>M5e});var Rle=ie(Dle()),TL=ie(require("util")),WC=class extends Be{constructor(){super(...arguments);this.private=Y.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=Y.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=Y.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.usev2=Y.Boolean("-2",!1,{hidden:!0});this.yes=Y.Boolean("-y,--yes",{hidden:!0});this.assumeFreshProject=Y.Boolean("--assume-fresh-project",!1,{hidden:!0})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return r!==null?await this.executeProxy(e,r):await this.executeRegular(e)}async executeProxy(e,r){if(e.projectCwd!==null&&e.projectCwd!==this.context.cwd)throw new me("Cannot use the --install flag from within a project subdirectory");T.existsSync(this.context.cwd)||await T.mkdirPromise(this.context.cwd,{recursive:!0});let i=v.join(this.context.cwd,e.get("lockfileFilename"));T.existsSync(i)||await T.writeFilePromise(i,"");let n=await this.cli.run(["set","version",r],{quiet:!0});if(n!==0)return n;let s=[];return this.private&&s.push("-p"),this.workspace&&s.push("-w"),this.yes&&s.push("-y"),await T.mktempPromise(async o=>{let{code:a}=await hr.pipevp("yarn",["init",...s],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await Kt.makeScriptEnv({binFolder:o})});return a})}async executeRegular(e){var l;let r=null;try{r=(await Ke.find(e,this.context.cwd)).project}catch{r=null}T.existsSync(this.context.cwd)||await T.mkdirPromise(this.context.cwd,{recursive:!0});let i=await Ze.tryFind(this.context.cwd)||new Ze,n=Object.fromEntries(e.get("initFields").entries());i.load(n),i.name=(l=i.name)!=null?l:S.makeIdent(e.get("initScope"),v.basename(this.context.cwd)),i.packageManager=Zr&&de.isTaggedYarnVersion(Zr)?`yarn@${Zr}`:null,typeof i.raw.private=="undefined"&&(this.private||this.workspace&&i.workspaceDefinitions.length===0)&&(i.private=!0),this.workspace&&i.workspaceDefinitions.length===0&&(await T.mkdirPromise(v.join(this.context.cwd,"packages"),{recursive:!0}),i.workspaceDefinitions=[{pattern:"packages/*"}]);let s={};i.exportTo(s),TL.inspect.styles.name="cyan",this.context.stdout.write(`${(0,TL.inspect)(s,{depth:Infinity,colors:!0,compact:!1})} -`);let o=v.join(this.context.cwd,Ze.fileName);await T.changeFilePromise(o,`${JSON.stringify(s,null,2)} -`,{automaticNewlines:!0});let a=v.join(this.context.cwd,"README.md");if(T.existsSync(a)||await T.writeFilePromise(a,`# ${S.stringifyIdent(i.name)} -`),!r||r.cwd===this.context.cwd){let c=v.join(this.context.cwd,wt.lockfile);T.existsSync(c)||await T.writeFilePromise(c,"");let g=["/.yarn/*","!/.yarn/patches","!/.yarn/plugins","!/.yarn/releases","!/.yarn/sdks","","# Swap the comments on the following lines if you don't wish to use zero-installs","# Documentation here: https://yarnpkg.com/features/zero-installs","!/.yarn/cache","#/.pnp.*"].map(m=>`${m} -`).join(""),f=v.join(this.context.cwd,".gitignore");T.existsSync(f)||await T.writeFilePromise(f,g);let h={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};(0,Rle.default)(h,e.get("initEditorConfig"));let p=`root = true -`;for(let[m,I]of Object.entries(h)){p+=` -[${m}] -`;for(let[B,b]of Object.entries(I))p+=`${B.replace(/[A-Z]/g,H=>`_${H.toLowerCase()}`)} = ${b} -`}let d=v.join(this.context.cwd,".editorconfig");T.existsSync(d)||await T.writeFilePromise(d,p),T.existsSync(v.join(this.context.cwd,".git"))||await hr.execvp("git",["init"],{cwd:this.context.cwd})}}};WC.paths=[["init"]],WC.usage=ye.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var Fle=WC;var T5e={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:ge.STRING,default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:ge.MAP,valueDefinition:{description:"",type:ge.ANY}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:ge.MAP,valueDefinition:{description:"",type:ge.ANY}}},commands:[Fle]},M5e=T5e;var GL={};it(GL,{default:()=>K5e});var Ua="portal:",Ha="link:";var OL=class{supports(e,r){return!!e.reference.startsWith(Ua)}getLocalPath(e,r){let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Ua});if(v.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:v.resolve(s,n)}async fetch(e,r){var c;let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Ua}),s=v.isAbsolute(n)?{packageFs:new Ft(Se.root),prefixPath:Se.dot,localPath:Se.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new Ft(Se.root),prefixPath:v.relative(Se.root,s.localPath),localPath:Se.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new Ft(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Se.dot,localPath:l}:{packageFs:new Zo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Se.dot}}};var KL=class{supportsDescriptor(e,r){return!!e.range.startsWith(Ua)}supportsLocator(e,r){return!!e.reference.startsWith(Ua)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return S.bindDescriptor(e,{locator:S.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(Ua.length);return[S.makeLocator(e,`${Ua}${M.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let i=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),n=await de.releaseAfterUseAsync(async()=>await Ze.find(i.prefixPath,{baseFs:i.packageFs}),i.releaseFs);return _(P({},e),{version:n.version||"0.0.0",languageName:n.languageName||r.project.configuration.get("defaultLanguageName"),linkType:gt.SOFT,conditions:n.getConditions(),dependencies:new Map([...n.dependencies]),peerDependencies:n.peerDependencies,dependenciesMeta:n.dependenciesMeta,peerDependenciesMeta:n.peerDependenciesMeta,bin:n.bin})}};var UL=class{supports(e,r){return!!e.reference.startsWith(Ha)}getLocalPath(e,r){let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Ha});if(v.isAbsolute(n))return n;let s=r.fetcher.getLocalPath(i,r);return s===null?null:v.resolve(s,n)}async fetch(e,r){var c;let{parentLocator:i,path:n}=S.parseFileStyleRange(e.reference,{protocol:Ha}),s=v.isAbsolute(n)?{packageFs:new Ft(Se.root),prefixPath:Se.dot,localPath:Se.root}:await r.fetcher.fetch(i,r),o=s.localPath?{packageFs:new Ft(Se.root),prefixPath:v.relative(Se.root,s.localPath),localPath:Se.root}:s;s!==o&&s.releaseFs&&s.releaseFs();let a=o.packageFs,l=v.resolve((c=o.localPath)!=null?c:o.packageFs.getRealPath(),o.prefixPath,n);return s.localPath?{packageFs:new Ft(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Se.dot,discardFromLookup:!0,localPath:l}:{packageFs:new Zo(l,{baseFs:a}),releaseFs:o.releaseFs,prefixPath:Se.dot,discardFromLookup:!0}}};var HL=class{supportsDescriptor(e,r){return!!e.range.startsWith(Ha)}supportsLocator(e,r){return!!e.reference.startsWith(Ha)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){return S.bindDescriptor(e,{locator:S.stringifyLocator(r)})}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(Ha.length);return[S.makeLocator(e,`${Ha}${M.toPortablePath(n)}`)]}async getSatisfying(e,r,i){return null}async resolve(e,r){return _(P({},e),{version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:gt.SOFT,conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map})}};var O5e={fetchers:[UL,OL],resolvers:[HL,KL]},K5e=O5e;var mT={};it(mT,{default:()=>Y6e});var Ga;(function(i){i[i.YES=0]="YES",i[i.NO=1]="NO",i[i.DEPENDS=2]="DEPENDS"})(Ga||(Ga={}));var jL=(t,e)=>`${t}@${e}`,Nle=(t,e)=>{let r=e.indexOf("#"),i=r>=0?e.substring(r+1):e;return jL(t,i)},qs;(function(s){s[s.NONE=-1]="NONE",s[s.PERF=0]="PERF",s[s.CHECK=1]="CHECK",s[s.REASONS=2]="REASONS",s[s.INTENSIVE_CHECK=9]="INTENSIVE_CHECK"})(qs||(qs={}));var Tle=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),i=e.check||r>=9,n=e.hoistingLimits||new Map,s={check:i,debugLevel:r,hoistingLimits:n,fastLookupPossible:!0},o;s.debugLevel>=0&&(o=Date.now());let a=U5e(t,s),l=!1,c=0;do l=YL(a,[a],new Set([a.locator]),new Map,s).anotherRoundNeeded,s.fastLookupPossible=!1,c++;while(l);if(s.debugLevel>=0&&console.log(`hoist time: ${Date.now()-o}ms, rounds: ${c}`),s.debugLevel>=1){let u=zC(a);if(YL(a,[a],new Set([a.locator]),new Map,s).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: -${u}, next tree: -${zC(a)}`);let f=Lle(a);if(f)throw new Error(`${f}, after hoisting finished: -${zC(a)}`)}return s.debugLevel>=2&&console.log(zC(a)),H5e(a)},G5e=t=>{let e=t[t.length-1],r=new Map,i=new Set,n=s=>{if(!i.has(s)){i.add(s);for(let o of s.hoistedDependencies.values())r.set(o.name,o);for(let o of s.dependencies.values())s.peerNames.has(o.name)||n(o)}};return n(e),r},j5e=t=>{let e=t[t.length-1],r=new Map,i=new Set,n=new Set,s=(o,a)=>{if(i.has(o))return;i.add(o);for(let c of o.hoistedDependencies.values())if(!a.has(c.name)){let u;for(let g of t)u=g.dependencies.get(c.name),u&&r.set(u.name,u)}let l=new Set;for(let c of o.dependencies.values())l.add(c.name);for(let c of o.dependencies.values())o.peerNames.has(c.name)||s(c,l)};return s(e,n),r},Mle=(t,e)=>{if(e.decoupled)return e;let{name:r,references:i,ident:n,locator:s,dependencies:o,originalDependencies:a,hoistedDependencies:l,peerNames:c,reasons:u,isHoistBorder:g,hoistPriority:f,isWorkspace:h,hoistedFrom:p,hoistedTo:d}=e,m={name:r,references:new Set(i),ident:n,locator:s,dependencies:new Map(o),originalDependencies:new Map(a),hoistedDependencies:new Map(l),peerNames:new Set(c),reasons:new Map(u),decoupled:!0,isHoistBorder:g,hoistPriority:f,isWorkspace:h,hoistedFrom:new Map(p),hoistedTo:new Map(d)},I=m.dependencies.get(r);return I&&I.ident==m.ident&&m.dependencies.set(r,m),t.dependencies.set(m.name,m),m},Y5e=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let n of t.dependencies.values())t.peerNames.has(n.name)||r.set(n.name,[n.ident]);let i=Array.from(e.keys());i.sort((n,s)=>{let o=e.get(n),a=e.get(s);return a.hoistPriority!==o.hoistPriority?a.hoistPriority-o.hoistPriority:a.peerDependents.size!==o.peerDependents.size?a.peerDependents.size-o.peerDependents.size:a.dependents.size-o.dependents.size});for(let n of i){let s=n.substring(0,n.indexOf("@",1)),o=n.substring(s.length+1);if(!t.peerNames.has(s)){let a=r.get(s);a||(a=[],r.set(s,a)),a.indexOf(o)<0&&a.push(o)}}return r},qL=t=>{let e=new Set,r=(i,n=new Set)=>{if(!n.has(i)){n.add(i);for(let s of i.peerNames)if(!t.peerNames.has(s)){let o=t.dependencies.get(s);o&&!e.has(o)&&r(o,n)}e.add(i)}};for(let i of t.dependencies.values())t.peerNames.has(i.name)||r(i);return e},YL=(t,e,r,i,n,s=new Set)=>{let o=e[e.length-1];if(s.has(o))return{anotherRoundNeeded:!1,isGraphChanged:!1};s.add(o);let a=J5e(o),l=Y5e(o,a),c=t==o?new Map:n.fastLookupPossible?G5e(e):j5e(e),u,g=!1,f=!1,h=new Map(Array.from(l.entries()).map(([d,m])=>[d,m[0]])),p=new Map;do{let d=q5e(t,e,r,c,h,l,i,p,n);d.isGraphChanged&&(f=!0),d.anotherRoundNeeded&&(g=!0),u=!1;for(let[m,I]of l)I.length>1&&!o.dependencies.has(m)&&(h.delete(m),I.shift(),h.set(m,I[0]),u=!0)}while(u);for(let d of o.dependencies.values())if(!o.peerNames.has(d.name)&&!r.has(d.locator)){r.add(d.locator);let m=YL(t,[...e,d],r,p,n);m.isGraphChanged&&(f=!0),m.anotherRoundNeeded&&(g=!0),r.delete(d.locator)}return{anotherRoundNeeded:g,isGraphChanged:f}},W5e=(t,e,r,i,n,s,o,a,{outputReason:l,fastLookupPossible:c})=>{let u,g=null,f=new Set;l&&(u=`${Array.from(e).map(m=>wi(m)).join("\u2192")}`);let h=r[r.length-1],d=!(i.ident===h.ident);if(l&&!d&&(g="- self-reference"),d&&(d=!i.isWorkspace,l&&!d&&(g="- workspace")),d&&(d=!h.isWorkspace||h.hoistedFrom.has(i.name)||e.size===1,l&&!d&&(g=h.reasons.get(i.name))),d&&(d=!t.peerNames.has(i.name),l&&!d&&(g=`- cannot shadow peer: ${wi(t.originalDependencies.get(i.name).locator)} at ${u}`)),d){let m=!1,I=n.get(i.name);if(m=!I||I.ident===i.ident,l&&!m&&(g=`- filled by: ${wi(I.locator)} at ${u}`),m)for(let B=r.length-1;B>=1;B--){let R=r[B].dependencies.get(i.name);if(R&&R.ident!==i.ident){m=!1;let H=a.get(h);H||(H=new Set,a.set(h,H)),H.add(i.name),l&&(g=`- filled by ${wi(R.locator)} at ${r.slice(0,B).map(L=>wi(L.locator)).join("\u2192")}`);break}}d=m}if(d&&(d=s.get(i.name)===i.ident,l&&!d&&(g=`- filled by: ${wi(o.get(i.name)[0])} at ${u}`)),d){let m=!0,I=new Set(i.peerNames);for(let B=r.length-1;B>=1;B--){let b=r[B];for(let R of I){if(b.peerNames.has(R)&&b.originalDependencies.has(R))continue;let H=b.dependencies.get(R);H&&t.dependencies.get(R)!==H&&(B===r.length-1?f.add(H):(f=null,m=!1,l&&(g=`- peer dependency ${wi(H.locator)} from parent ${wi(b.locator)} was not hoisted to ${u}`))),I.delete(R)}if(!m)break}d=m}if(d&&!c)for(let m of i.hoistedDependencies.values()){let I=n.get(m.name);if(!I||m.ident!==I.ident){d=!1,l&&(g=`- previously hoisted dependency mismatch, needed: ${wi(m.locator)}, available: ${wi(I==null?void 0:I.locator)}`);break}}return f!==null&&f.size>0?{isHoistable:2,dependsOn:f,reason:g}:{isHoistable:d?0:1,reason:g}},q5e=(t,e,r,i,n,s,o,a,l)=>{let c=e[e.length-1],u=new Set,g=!1,f=!1,h=(m,I,B,b)=>{if(u.has(B))return;let R=[...I,B.locator],H=new Map,L=new Map;for(let q of qL(B)){let A=W5e(c,r,[c,...m,B],q,i,n,s,a,{outputReason:l.debugLevel>=2,fastLookupPossible:l.fastLookupPossible});if(L.set(q,A),A.isHoistable===2)for(let V of A.dependsOn){let W=H.get(V.name)||new Set;W.add(q.name),H.set(V.name,W)}}let K=new Set,J=(q,A,V)=>{if(!K.has(q)){K.add(q),L.set(q,{isHoistable:1,reason:V});for(let W of H.get(q.name)||[])J(B.dependencies.get(W),A,l.debugLevel>=2?`- peer dependency ${wi(q.locator)} from parent ${wi(B.locator)} was not hoisted`:"")}};for(let[q,A]of L)A.isHoistable===1&&J(q,A,A.reason);for(let q of L.keys())if(!K.has(q)){f=!0;let A=o.get(B);A&&A.has(q.name)&&(g=!0),B.dependencies.delete(q.name),B.hoistedDependencies.set(q.name,q),B.reasons.delete(q.name);let V=c.dependencies.get(q.name);if(l.debugLevel>=2){let W=Array.from(I).concat([B.locator]).map(F=>wi(F)).join("\u2192"),X=c.hoistedFrom.get(q.name);X||(X=[],c.hoistedFrom.set(q.name,X)),X.push(W),B.hoistedTo.set(q.name,Array.from(e).map(F=>wi(F.locator)).join("\u2192"))}if(!V)c.ident!==q.ident&&(c.dependencies.set(q.name,q),b.add(q));else for(let W of q.references)V.references.add(W)}if(l.check){let q=Lle(t);if(q)throw new Error(`${q}, after hoisting dependencies of ${[c,...m,B].map(A=>wi(A.locator)).join("\u2192")}: -${zC(t)}`)}let ne=qL(B);for(let q of ne)if(K.has(q)){let A=L.get(q);if((n.get(q.name)===q.ident||!B.reasons.has(q.name))&&A.isHoistable!==0&&B.reasons.set(q.name,A.reason),!q.isHoistBorder&&R.indexOf(q.locator)<0){u.add(B);let W=Mle(B,q);h([...m,B],[...I,B.locator],W,d),u.delete(B)}}},p,d=new Set(qL(c));do{p=d,d=new Set;for(let m of p){if(m.locator===c.locator||m.isHoistBorder)continue;let I=Mle(c,m);h([],Array.from(r),I,d)}}while(d.size>0);return{anotherRoundNeeded:g,isGraphChanged:f}},Lle=t=>{let e=[],r=new Set,i=new Set,n=(s,o,a)=>{if(r.has(s)||(r.add(s),i.has(s)))return;let l=new Map(o);for(let c of s.dependencies.values())s.peerNames.has(c.name)||l.set(c.name,c);for(let c of s.originalDependencies.values()){let u=l.get(c.name),g=()=>`${Array.from(i).concat([s]).map(f=>wi(f.locator)).join("\u2192")}`;if(s.peerNames.has(c.name)){let f=o.get(c.name);(f!==u||!f||f.ident!==c.ident)&&e.push(`${g()} - broken peer promise: expected ${c.ident} but found ${f&&f.ident}`)}else{let f=a.hoistedFrom.get(s.name),h=s.hoistedTo.get(c.name),p=`${f?` hoisted from ${f.join(", ")}`:""}`,d=`${h?` hoisted to ${h}`:""}`,m=`${g()}${p}`;u?u.ident!==c.ident&&e.push(`${m} - broken require promise for ${c.name}${d}: expected ${c.ident}, but found: ${u.ident}`):e.push(`${m} - broken require promise: no required dependency ${c.name}${d} found`)}}i.add(s);for(let c of s.dependencies.values())s.peerNames.has(c.name)||n(c,l,s);i.delete(s)};return n(t,t.dependencies,t),e.join(` -`)},U5e=(t,e)=>{let{identName:r,name:i,reference:n,peerNames:s}=t,o={name:i,references:new Set([n]),locator:jL(r,n),ident:Nle(r,n),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(s),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,isWorkspace:!0,hoistedFrom:new Map,hoistedTo:new Map},a=new Map([[t,o]]),l=(c,u)=>{let g=a.get(c),f=!!g;if(!g){let{name:h,identName:p,reference:d,peerNames:m,hoistPriority:I,isWorkspace:B}=c,b=e.hoistingLimits.get(u.locator);g={name:h,references:new Set([d]),locator:jL(p,d),ident:Nle(p,d),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(m),reasons:new Map,decoupled:!0,isHoistBorder:b?b.has(h):!1,hoistPriority:I||0,isWorkspace:B||!1,hoistedFrom:new Map,hoistedTo:new Map},a.set(c,g)}if(u.dependencies.set(c.name,g),u.originalDependencies.set(c.name,g),f){let h=new Set,p=d=>{if(!h.has(d)){h.add(d),d.decoupled=!1;for(let m of d.dependencies.values())d.peerNames.has(m.name)||p(m)}};p(g)}else for(let h of c.dependencies)l(h,g)};for(let c of t.dependencies)l(c,o);return o},JL=t=>t.substring(0,t.indexOf("@",1)),H5e=t=>{let e={name:t.name,identName:JL(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),i=(n,s,o)=>{let a=r.has(n),l;if(s===n)l=o;else{let{name:c,references:u,locator:g}=n;l={name:c,identName:JL(g),references:u,dependencies:new Set}}if(o.dependencies.add(l),!a){r.add(n);for(let c of n.dependencies.values())n.peerNames.has(c.name)||i(c,n,l);r.delete(n)}};for(let n of t.dependencies.values())i(n,t,e);return e},J5e=t=>{let e=new Map,r=new Set([t]),i=o=>`${o.name}@${o.ident}`,n=o=>{let a=i(o),l=e.get(a);return l||(l={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(a,l)),l},s=(o,a)=>{let l=!!r.has(a);if(n(a).dependents.add(o.ident),!l){r.add(a);for(let u of a.dependencies.values()){let g=n(u);g.hoistPriority=Math.max(g.hoistPriority,u.hoistPriority),a.peerNames.has(u.name)?g.peerDependents.add(a.ident):s(a,u)}}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||s(t,o);return e},wi=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let i=t.substring(e+1);if(i==="workspace:.")return".";if(i){let n=(i.indexOf("#")>0?i.split("#")[1]:i).replace("npm:","");return i.startsWith("virtual")&&(r=`v:${r}`),n.startsWith("workspace")&&(r=`w:${r}`,n=""),`${r}${n?`@${n}`:""}`}else return`${r}`},Ole=5e4,zC=t=>{let e=0,r=(n,s,o="")=>{if(e>Ole||s.has(n))return"";e++;let a=Array.from(n.dependencies.values()).sort((c,u)=>c.name.localeCompare(u.name)),l="";s.add(n);for(let c=0;c":"")+(f!==u.name?`a:${u.name}:`:"")+wi(u.locator)+(g?` ${g}`:"")+(u!==n&&h.length>0?`, hoisted from: ${h.join(", ")}`:"")} -`,l+=r(u,s,`${o}${cOle?` -Tree is too large, part of the tree has been dunped -`:"")};var Js;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(Js||(Js={}));var Sn;(function(i){i.WORKSPACES="workspaces",i.DEPENDENCIES="dependencies",i.NONE="none"})(Sn||(Sn={}));var Kle="node_modules",Hc="$wsroot$";var VC=(t,e)=>{let{packageTree:r,hoistingLimits:i,errors:n,preserveSymlinksRequired:s}=z5e(t,e),o=null;if(n.length===0){let a=Tle(r,{hoistingLimits:i});o=V5e(t,a,e)}return{tree:o,errors:n,preserveSymlinksRequired:s}},ms=t=>`${t.name}@${t.reference}`,WL=t=>{let e=new Map;for(let[r,i]of t.entries())if(!i.dirList){let n=e.get(i.locator);n||(n={target:i.target,linkType:i.linkType,locations:[],aliases:i.aliases},e.set(i.locator,n)),n.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((i,n)=>{let s=i.split(v.delimiter).length,o=n.split(v.delimiter).length;return s!==o?o-s:n.localeCompare(i)});return e},Ule=(t,e)=>{let r=S.isVirtualLocator(t)?S.devirtualizeLocator(t):t,i=S.isVirtualLocator(e)?S.devirtualizeLocator(e):e;return S.areLocatorsEqual(r,i)},zL=(t,e,r,i)=>{if(t.linkType!==Js.SOFT)return!1;let n=M.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return v.contains(i,n)===null},_5e=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let i=M.toPortablePath(e.packageLocation.slice(0,-1)),n=new Map,s={children:new Map},o=t.getDependencyTreeRoots(),a=new Map,l=new Set,c=(f,h)=>{let p=ms(f);if(l.has(p))return;l.add(p);let d=t.getPackageInformation(f);if(d){let m=h?ms(h):"";if(ms(f)!==m&&d.linkType===Js.SOFT&&!zL(d,f,t,i)){let I=Hle(d,f,t);(!a.get(I)||f.reference.startsWith("workspace:"))&&a.set(I,f)}for(let[I,B]of d.packageDependencies)B!==null&&(d.packagePeers.has(I)||c(t.getLocator(I,B),f))}};for(let f of o)c(f,null);let u=i.split(v.sep);for(let f of a.values()){let h=t.getPackageInformation(f),d=M.toPortablePath(h.packageLocation.slice(0,-1)).split(v.sep).slice(u.length),m=s;for(let I of d){let B=m.children.get(I);B||(B={children:new Map},m.children.set(I,B)),m=B}m.workspaceLocator=f}let g=(f,h)=>{if(f.workspaceLocator){let p=ms(h),d=n.get(p);d||(d=new Set,n.set(p,d)),d.add(f.workspaceLocator)}for(let p of f.children.values())g(p,f.workspaceLocator||h)};for(let f of s.children.values())g(f,s.workspaceLocator);return n},z5e=(t,e)=>{let r=[],i=!1,n=new Map,s=_5e(t),o=t.getPackageInformation(t.topLevel);if(o===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let a=t.findPackageLocator(o.packageLocation);if(a===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let l=M.toPortablePath(o.packageLocation.slice(0,-1)),c={name:a.name,identName:a.name,reference:a.reference,peerNames:o.packagePeers,dependencies:new Set,isWorkspace:!0},u=new Map,g=(h,p)=>`${ms(p)}:${h}`,f=(h,p,d,m,I,B,b,R)=>{var X,F;let H=g(h,d),L=u.get(H),K=!!L;!K&&d.name===a.name&&d.reference===a.reference&&(L=c,u.set(H,c));let J=zL(p,d,t,l);if(!L){let D=p.linkType===Js.SOFT&&d.name.endsWith(Hc);L={name:h,identName:d.name,reference:d.reference,dependencies:new Set,peerNames:D?new Set:p.packagePeers,isWorkspace:D},u.set(H,L)}let ne;if(J?ne=2:I.linkType===Js.SOFT?ne=1:ne=0,L.hoistPriority=Math.max(L.hoistPriority||0,ne),R&&!J){let D=ms({name:m.identName,reference:m.reference}),he=n.get(D)||new Set;n.set(D,he),he.add(L.name)}let q=new Map(p.packageDependencies);if(e.project){let D=e.project.workspacesByCwd.get(M.toPortablePath(p.packageLocation.slice(0,-1)));if(D){let he=new Set([...Array.from(D.manifest.peerDependencies.values(),pe=>S.stringifyIdent(pe)),...Array.from(D.manifest.peerDependenciesMeta.keys())]);for(let pe of he)q.has(pe)||(q.set(pe,B.get(pe)||null),L.peerNames.add(pe))}}let A=ms({name:d.name.replace(Hc,""),reference:d.reference}),V=s.get(A);if(V)for(let D of V)q.set(`${D.name}${Hc}`,D.reference);(p!==I||p.linkType!==Js.SOFT||!e.selfReferencesByCwd||e.selfReferencesByCwd.get(b))&&m.dependencies.add(L);let W=d!==a&&p.linkType===Js.SOFT&&!d.name.endsWith(Hc)&&!J;if(!K&&!W){let D=new Map;for(let[he,pe]of q)if(pe!==null){let Ne=t.getLocator(he,pe),Pe=t.getLocator(he.replace(Hc,""),pe),qe=t.getPackageInformation(Pe);if(qe===null)throw new Error("Assertion failed: Expected the package to have been registered");let re=zL(qe,Ne,t,l);if(e.validateExternalSoftLinks&&e.project&&re){qe.packageDependencies.size>0&&(i=!0);for(let[De,$]of qe.packageDependencies)if($!==null){let G=S.parseLocator(Array.isArray($)?`${$[0]}@${$[1]}`:`${De}@${$}`);if(ms(G)!==ms(Ne)){let Ce=q.get(De);if(Ce){let ee=S.parseLocator(Array.isArray(Ce)?`${Ce[0]}@${Ce[1]}`:`${De}@${Ce}`);Ule(ee,G)||r.push({messageName:z.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${S.prettyIdent(e.project.configuration,S.parseIdent(Ne.name))} into ${S.prettyLocator(e.project.configuration,S.parseLocator(`${d.name}@${d.reference}`))} dependency ${S.prettyLocator(e.project.configuration,G)} conflicts with parent dependency ${S.prettyLocator(e.project.configuration,ee)}`})}else{let ee=D.get(De);if(ee){let Ue=ee.target,Oe=S.parseLocator(Array.isArray(Ue)?`${Ue[0]}@${Ue[1]}`:`${De}@${Ue}`);Ule(Oe,G)||r.push({messageName:z.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK,text:`Cannot link ${S.prettyIdent(e.project.configuration,S.parseIdent(Ne.name))} into ${S.prettyLocator(e.project.configuration,S.parseLocator(`${d.name}@${d.reference}`))} dependency ${S.prettyLocator(e.project.configuration,G)} conflicts with dependency ${S.prettyLocator(e.project.configuration,Oe)} from sibling portal ${S.prettyIdent(e.project.configuration,S.parseIdent(ee.portal.name))}`})}else D.set(De,{target:G.reference,portal:Ne})}}}}let se=(X=e.hoistingLimitsByCwd)==null?void 0:X.get(b),be=re?b:v.relative(l,M.toPortablePath(qe.packageLocation))||Se.dot,ae=(F=e.hoistingLimitsByCwd)==null?void 0:F.get(be),Ae=se===Sn.DEPENDENCIES||ae===Sn.DEPENDENCIES||ae===Sn.WORKSPACES;f(ms(Ne)===ms(d)?h:he,qe,Ne,L,p,q,be,Ae)}}};return f(a.name,o,a,c,o,o.packageDependencies,Se.dot,!1),{packageTree:c,hoistingLimits:n,errors:r,preserveSymlinksRequired:i}};function Hle(t,e,r){let i=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return M.toPortablePath(i||t.packageLocation)}function X5e(t,e,r){let i=e.getLocator(t.name.replace(Hc,""),t.reference),n=e.getPackageInformation(i);if(n===null)throw new Error("Assertion failed: Expected the package to be registered");let s,o;return r.pnpifyFs?(o=M.toPortablePath(n.packageLocation),s=Js.SOFT):(o=Hle(n,t,e),s=n.linkType),{linkType:s,target:o}}var V5e=(t,e,r)=>{let i=new Map,n=(u,g,f)=>{let{linkType:h,target:p}=X5e(u,t,r);return{locator:ms(u),nodePath:g,target:p,linkType:h,aliases:f}},s=u=>{let[g,f]=u.split("/");return f?{scope:kr(g),name:kr(f)}:{scope:null,name:kr(g)}},o=new Set,a=(u,g,f)=>{if(!o.has(u)){o.add(u);for(let h of u.dependencies){if(h===u)continue;let p=Array.from(h.references).sort(),d={name:h.identName,reference:p[0]},{name:m,scope:I}=s(h.name),B=I?[I,m]:[m],b=v.join(g,Kle),R=v.join(b,...B),H=`${f}/${d.name}`,L=n(d,f,p.slice(1)),K=!1;if(L.linkType===Js.SOFT&&r.project){let J=r.project.workspacesByCwd.get(L.target.slice(0,-1));K=!!(J&&!J.manifest.name)}if(!h.name.endsWith(Hc)&&!K){let J=i.get(R);if(J){if(J.dirList)throw new Error(`Assertion failed: ${R} cannot merge dir node with leaf node`);{let V=S.parseLocator(J.locator),W=S.parseLocator(L.locator);if(J.linkType!==L.linkType)throw new Error(`Assertion failed: ${R} cannot merge nodes with different link types ${J.nodePath}/${S.stringifyLocator(V)} and ${f}/${S.stringifyLocator(W)}`);if(V.identHash!==W.identHash)throw new Error(`Assertion failed: ${R} cannot merge nodes with different idents ${J.nodePath}/${S.stringifyLocator(V)} and ${f}/s${S.stringifyLocator(W)}`);L.aliases=[...L.aliases,...J.aliases,S.parseLocator(J.locator).reference]}}i.set(R,L);let ne=R.split("/"),q=ne.indexOf(Kle),A=ne.length-1;for(;q>=0&&A>q;){let V=M.toPortablePath(ne.slice(0,A).join(v.sep)),W=kr(ne[A]),X=i.get(V);if(!X)i.set(V,{dirList:new Set([W])});else if(X.dirList){if(X.dirList.has(W))break;X.dirList.add(W)}A--}}a(h,L.linkType===Js.SOFT?L.target:R,H)}}},l=n({name:e.name,reference:Array.from(e.references)[0]},"",[]),c=l.target;return i.set(c,l),a(e,c,""),i};var oT={};it(oT,{PnpInstaller:()=>Cf,PnpLinker:()=>jc,default:()=>m6e,getPnpPath:()=>qA,jsInstallUtils:()=>Ws,pnpUtils:()=>nT,quotePathIfNeeded:()=>uce});var lce=ie(Or()),cce=ie(require("url"));var Gle;(function(r){r.HARD="HARD",r.SOFT="SOFT"})(Gle||(Gle={}));var Ht;(function(f){f.DEFAULT="DEFAULT",f.TOP_LEVEL="TOP_LEVEL",f.FALLBACK_EXCLUSION_LIST="FALLBACK_EXCLUSION_LIST",f.FALLBACK_EXCLUSION_ENTRIES="FALLBACK_EXCLUSION_ENTRIES",f.FALLBACK_EXCLUSION_DATA="FALLBACK_EXCLUSION_DATA",f.PACKAGE_REGISTRY_DATA="PACKAGE_REGISTRY_DATA",f.PACKAGE_REGISTRY_ENTRIES="PACKAGE_REGISTRY_ENTRIES",f.PACKAGE_STORE_DATA="PACKAGE_STORE_DATA",f.PACKAGE_STORE_ENTRIES="PACKAGE_STORE_ENTRIES",f.PACKAGE_INFORMATION_DATA="PACKAGE_INFORMATION_DATA",f.PACKAGE_DEPENDENCIES="PACKAGE_DEPENDENCIES",f.PACKAGE_DEPENDENCY="PACKAGE_DEPENDENCY"})(Ht||(Ht={}));var jle={[Ht.DEFAULT]:{collapsed:!1,next:{["*"]:Ht.DEFAULT}},[Ht.TOP_LEVEL]:{collapsed:!1,next:{fallbackExclusionList:Ht.FALLBACK_EXCLUSION_LIST,packageRegistryData:Ht.PACKAGE_REGISTRY_DATA,["*"]:Ht.DEFAULT}},[Ht.FALLBACK_EXCLUSION_LIST]:{collapsed:!1,next:{["*"]:Ht.FALLBACK_EXCLUSION_ENTRIES}},[Ht.FALLBACK_EXCLUSION_ENTRIES]:{collapsed:!0,next:{["*"]:Ht.FALLBACK_EXCLUSION_DATA}},[Ht.FALLBACK_EXCLUSION_DATA]:{collapsed:!0,next:{["*"]:Ht.DEFAULT}},[Ht.PACKAGE_REGISTRY_DATA]:{collapsed:!1,next:{["*"]:Ht.PACKAGE_REGISTRY_ENTRIES}},[Ht.PACKAGE_REGISTRY_ENTRIES]:{collapsed:!0,next:{["*"]:Ht.PACKAGE_STORE_DATA}},[Ht.PACKAGE_STORE_DATA]:{collapsed:!1,next:{["*"]:Ht.PACKAGE_STORE_ENTRIES}},[Ht.PACKAGE_STORE_ENTRIES]:{collapsed:!0,next:{["*"]:Ht.PACKAGE_INFORMATION_DATA}},[Ht.PACKAGE_INFORMATION_DATA]:{collapsed:!1,next:{packageDependencies:Ht.PACKAGE_DEPENDENCIES,["*"]:Ht.DEFAULT}},[Ht.PACKAGE_DEPENDENCIES]:{collapsed:!1,next:{["*"]:Ht.PACKAGE_DEPENDENCY}},[Ht.PACKAGE_DEPENDENCY]:{collapsed:!0,next:{["*"]:Ht.DEFAULT}}};function Z5e(t,e,r){let i="";i+="[";for(let n=0,s=t.length;ns(o)));let n=r.map((s,o)=>o);return n.sort((s,o)=>{for(let a of i){let l=a[s]a[o]?1:0;if(l!==0)return l}return 0}),n.map(s=>r[s])}function r6e(t){let e=new Map,r=_C(t.fallbackExclusionList||[],[({name:i,reference:n})=>i,({name:i,reference:n})=>n]);for(let{name:i,reference:n}of r){let s=e.get(i);typeof s=="undefined"&&e.set(i,s=new Set),s.add(n)}return Array.from(e).map(([i,n])=>[i,Array.from(n)])}function i6e(t){return _C(t.fallbackPool||[],([e])=>e)}function n6e(t){let e=[];for(let[r,i]of _C(t.packageRegistry,([n])=>n===null?"0":`1${n}`)){let n=[];e.push([r,n]);for(let[s,{packageLocation:o,packageDependencies:a,packagePeers:l,linkType:c,discardFromLookup:u}]of _C(i,([g])=>g===null?"0":`1${g}`)){let g=[];r!==null&&s!==null&&!a.has(r)&&g.push([r,s]);for(let[p,d]of _C(a.entries(),([m])=>m))g.push([p,d]);let f=l&&l.size>0?Array.from(l):void 0,h=u||void 0;n.push([s,{packageLocation:o,packageDependencies:g,packagePeers:f,linkType:c,discardFromLookup:h}])}}return e}function XC(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost. We also recommend you not to read","it either without using the @yarnpkg/pnp package, as the data layout","is entirely unspecified and WILL change from a version to another."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:r6e(t),fallbackPool:i6e(t),packageRegistryData:n6e(t)}}var zle=ie(Wle());function Vle(t,e){return[t?`${t} -`:"",`/* eslint-disable */ - -`,`try { -`,` Object.freeze({}).detectStrictMode = true; -`,`} catch (error) { -`," throw new Error(`The whole PnP file got strict-mode-ified, which is known to break (Emscripten libraries aren't strict mode). This usually happens when the file goes through Babel.`);\n",`} -`,` -`,`var __non_webpack_module__ = module; -`,` -`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { -`,e.replace(/^/gm," "),`} -`,` -`,(0,zle.default)()].join("")}function s6e(t){return JSON.stringify(t,null,2)}function o6e(t){return[`return hydrateRuntimeState(${qle(t)}, {basePath: basePath || __dirname}); -`].join("")}function a6e(t){return[`var path = require('path'); -`,`var dataLocation = path.resolve(__dirname, ${JSON.stringify(t)}); -`,`return hydrateRuntimeState(require(dataLocation), {basePath: basePath || path.dirname(dataLocation)}); -`].join("")}function _le(t){let e=XC(t),r=o6e(e);return Vle(t.shebang,r)}function Xle(t){let e=XC(t),r=a6e(t.dataLocation),i=Vle(t.shebang,r);return{dataFile:s6e(e),loaderFile:i}}var tce=ie(require("fs")),u6e=ie(require("path")),rce=ie(require("util"));function _L(t,{basePath:e}){let r=M.toPortablePath(e),i=v.resolve(r),n=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,s=new Map,o=new Map(t.packageRegistryData.map(([g,f])=>[g,new Map(f.map(([h,p])=>{var b;if(g===null!=(h===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let d=(b=p.discardFromLookup)!=null?b:!1,m={name:g,reference:h},I=s.get(p.packageLocation);I?(I.discardFromLookup=I.discardFromLookup&&d,d||(I.locator=m)):s.set(p.packageLocation,{locator:m,discardFromLookup:d});let B=null;return[h,{packageDependencies:new Map(p.packageDependencies),packagePeers:new Set(p.packagePeers),linkType:p.linkType,discardFromLookup:d,get packageLocation(){return B||(B=v.join(i,p.packageLocation))}}]}))])),a=new Map(t.fallbackExclusionList.map(([g,f])=>[g,new Set(f)])),l=new Map(t.fallbackPool),c=t.dependencyTreeRoots,u=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:c,enableTopLevelFallback:u,fallbackExclusionList:a,fallbackPool:l,ignorePattern:n,packageLocatorsByLocations:s,packageRegistry:o}}var df=ie(require("module")),ece=ie($le()),ZL=ie(require("util"));var ur;(function(l){l.API_ERROR="API_ERROR",l.BUILTIN_NODE_RESOLUTION_FAILED="BUILTIN_NODE_RESOLUTION_FAILED",l.MISSING_DEPENDENCY="MISSING_DEPENDENCY",l.MISSING_PEER_DEPENDENCY="MISSING_PEER_DEPENDENCY",l.QUALIFIED_PATH_RESOLUTION_FAILED="QUALIFIED_PATH_RESOLUTION_FAILED",l.INTERNAL="INTERNAL",l.UNDECLARED_DEPENDENCY="UNDECLARED_DEPENDENCY",l.UNSUPPORTED="UNSUPPORTED"})(ur||(ur={}));var c6e=new Set([ur.BUILTIN_NODE_RESOLUTION_FAILED,ur.MISSING_DEPENDENCY,ur.MISSING_PEER_DEPENDENCY,ur.QUALIFIED_PATH_RESOLUTION_FAILED,ur.UNDECLARED_DEPENDENCY]);function ui(t,e,r={}){let i=c6e.has(t)?"MODULE_NOT_FOUND":t,n={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:_(P({},n),{value:i}),pnpCode:_(P({},n),{value:t}),data:_(P({},n),{value:r})})}function YA(t){return M.normalize(M.fromPortablePath(t))}function $L(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,i=Number(process.env.PNP_DEBUG_LEVEL),n=new Set(df.Module.builtinModules||Object.keys(process.binding("natives"))),s=re=>n.has(re)||re.startsWith("node:"),o=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,a=/^(\/|\.{1,2}(\/|$))/,l=/\/$/,c=/^\.{0,2}\//,u={name:null,reference:null},g=[],f=new Set;if(t.enableTopLevelFallback===!0&&g.push(u),e.compatibilityMode!==!1)for(let re of["react-scripts","gatsby"]){let se=t.packageRegistry.get(re);if(se)for(let be of se.keys()){if(be===null)throw new Error("Assertion failed: This reference shouldn't be null");g.push({name:re,reference:be})}}let{ignorePattern:h,packageRegistry:p,packageLocatorsByLocations:d}=t;function m(re,se){return{fn:re,args:se,error:null,result:null}}function I(re){var De,$,G,Ce,ee,Ue;let se=(G=($=(De=process.stderr)==null?void 0:De.hasColors)==null?void 0:$.call(De))!=null?G:process.stdout.isTTY,be=(Oe,vt)=>`[${Oe}m${vt}`,ae=re.error;console.error(ae?be("31;1",`\u2716 ${(Ce=re.error)==null?void 0:Ce.message.replace(/\n.*/s,"")}`):be("33;1","\u203C Resolution")),re.args.length>0&&console.error();for(let Oe of re.args)console.error(` ${be("37;1","In \u2190")} ${(0,ZL.inspect)(Oe,{colors:se,compact:!0})}`);re.result&&(console.error(),console.error(` ${be("37;1","Out \u2192")} ${(0,ZL.inspect)(re.result,{colors:se,compact:!0})}`));let Ae=(Ue=(ee=new Error().stack.match(/(?<=^ +)at.*/gm))==null?void 0:ee.slice(2))!=null?Ue:[];if(Ae.length>0){console.error();for(let Oe of Ae)console.error(` ${be("38;5;244",Oe)}`)}console.error()}function B(re,se){if(e.allowDebug===!1)return se;if(Number.isFinite(i)){if(i>=2)return(...be)=>{let ae=m(re,be);try{return ae.result=se(...be)}catch(Ae){throw ae.error=Ae}finally{I(ae)}};if(i>=1)return(...be)=>{try{return se(...be)}catch(ae){let Ae=m(re,be);throw Ae.error=ae,I(Ae),ae}}}return se}function b(re){let se=W(re);if(!se)throw ui(ur.INTERNAL,"Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return se}function R(re){if(re.name===null)return!0;for(let se of t.dependencyTreeRoots)if(se.name===re.name&&se.reference===re.reference)return!0;return!1}let H=new Set(["default","node","require"]);function L(re,se=H){let be=D(v.join(re,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(be===null)throw ui(ur.INTERNAL,`The locator that owns the "${re}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:ae}=b(be),Ae=v.join(ae,wt.manifest);if(!e.fakeFs.existsSync(Ae))return null;let De=JSON.parse(e.fakeFs.readFileSync(Ae,"utf8")),$=v.contains(ae,re);if($===null)throw ui(ur.INTERNAL,"unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");c.test($)||($=`./${$}`);let G=(0,ece.resolve)(De,v.normalize($),{conditions:se,unsafe:!0});return typeof G=="string"?v.join(ae,G):null}function K(re,se,{extensions:be}){let ae;try{se.push(re),ae=e.fakeFs.statSync(re)}catch(Ae){}if(ae&&!ae.isDirectory())return e.fakeFs.realpathSync(re);if(ae&&ae.isDirectory()){let Ae;try{Ae=JSON.parse(e.fakeFs.readFileSync(v.join(re,wt.manifest),"utf8"))}catch($){}let De;if(Ae&&Ae.main&&(De=v.resolve(re,Ae.main)),De&&De!==re){let $=K(De,se,{extensions:be});if($!==null)return $}}for(let Ae=0,De=be.length;Ae{let G=JSON.stringify($.name);if(ae.has(G))return;ae.add(G);let Ce=X($);for(let ee of Ce)if(b(ee).packagePeers.has(re))Ae(ee);else{let Oe=be.get(ee.name);typeof Oe=="undefined"&&be.set(ee.name,Oe=new Set),Oe.add(ee.reference)}};Ae(se);let De=[];for(let $ of[...be.keys()].sort())for(let G of[...be.get($)].sort())De.push({name:$,reference:G});return De}function D(re,{resolveIgnored:se=!1,includeDiscardFromLookup:be=!1}={}){if(q(re)&&!se)return null;let ae=v.relative(t.basePath,re);ae.match(a)||(ae=`./${ae}`),ae.endsWith("/")||(ae=`${ae}/`);do{let Ae=d.get(ae);if(typeof Ae=="undefined"||Ae.discardFromLookup&&!be){ae=ae.substring(0,ae.lastIndexOf("/",ae.length-2)+1);continue}return Ae.locator}while(ae!=="");return null}function he(re,se,{considerBuiltins:be=!0}={}){if(re==="pnpapi")return M.toPortablePath(e.pnpapiResolution);if(be&&s(re))return null;let ae=YA(re),Ae=se&&YA(se);if(se&&q(se)&&(!v.isAbsolute(re)||D(re)===null)){let G=ne(re,se);if(G===!1)throw ui(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) - -Require request: "${ae}" -Required by: ${Ae} -`,{request:ae,issuer:Ae});return M.toPortablePath(G)}let De,$=re.match(o);if($){if(!se)throw ui(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ae,issuer:Ae});let[,G,Ce]=$,ee=D(se);if(!ee){let yr=ne(re,se);if(yr===!1)throw ui(ur.BUILTIN_NODE_RESOLUTION_FAILED,`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). - -Require path: "${ae}" -Required by: ${Ae} -`,{request:ae,issuer:Ae});return M.toPortablePath(yr)}let Oe=b(ee).packageDependencies.get(G),vt=null;if(Oe==null&&ee.name!==null){let yr=t.fallbackExclusionList.get(ee.name);if(!yr||!yr.has(ee.reference)){for(let Qi=0,Go=g.length;QiR(Ki))?dt=ui(ur.MISSING_PEER_DEPENDENCY,`${ee.name} tried to access ${G} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${ee.name}@${ee.reference} (via ${Ae}) -${yr.map(Ki=>`Ancestor breaking the chain: ${Ki.name}@${Ki.reference} -`).join("")} -`,{request:ae,issuer:Ae,issuerLocator:Object.assign({},ee),dependencyName:G,brokenAncestors:yr}):dt=ui(ur.MISSING_PEER_DEPENDENCY,`${ee.name} tried to access ${G} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${ee.name}@${ee.reference} (via ${Ae}) - -${yr.map(Ki=>`Ancestor breaking the chain: ${Ki.name}@${Ki.reference} -`).join("")} -`,{request:ae,issuer:Ae,issuerLocator:Object.assign({},ee),dependencyName:G,brokenAncestors:yr})}else Oe===void 0&&(!be&&s(re)?R(ee)?dt=ui(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${Ae} -`,{request:ae,issuer:Ae,dependencyName:G}):dt=ui(ur.UNDECLARED_DEPENDENCY,`${ee.name} tried to access ${G}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${G} isn't otherwise declared in ${ee.name}'s dependencies, this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${Ae} -`,{request:ae,issuer:Ae,issuerLocator:Object.assign({},ee),dependencyName:G}):R(ee)?dt=ui(ur.UNDECLARED_DEPENDENCY,`Your application tried to access ${G}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${Ae} -`,{request:ae,issuer:Ae,dependencyName:G}):dt=ui(ur.UNDECLARED_DEPENDENCY,`${ee.name} tried to access ${G}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. - -Required package: ${G}${G!==ae?` (via "${ae}")`:""} -Required by: ${ee.name}@${ee.reference} (via ${Ae}) -`,{request:ae,issuer:Ae,issuerLocator:Object.assign({},ee),dependencyName:G}));if(Oe==null){if(vt===null||dt===null)throw dt||new Error("Assertion failed: Expected an error to have been set");Oe=vt;let yr=dt.message.replace(/\n.*/g,"");dt.message=yr,!f.has(yr)&&i!==0&&(f.add(yr),process.emitWarning(dt))}let ri=Array.isArray(Oe)?{name:Oe[0],reference:Oe[1]}:{name:G,reference:Oe},ii=b(ri);if(!ii.packageLocation)throw ui(ur.MISSING_DEPENDENCY,`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. - -Required package: ${ri.name}@${ri.reference}${ri.name!==ae?` (via "${ae}")`:""} -Required by: ${ee.name}@${ee.reference} (via ${Ae}) -`,{request:ae,issuer:Ae,dependencyLocator:Object.assign({},ri)});let an=ii.packageLocation;Ce?De=v.join(an,Ce):De=an}else if(v.isAbsolute(re))De=v.normalize(re);else{if(!se)throw ui(ur.API_ERROR,"The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:ae,issuer:Ae});let G=v.resolve(se);se.match(l)?De=v.normalize(v.join(G,re)):De=v.normalize(v.join(v.dirname(G),re))}return v.normalize(De)}function pe(re,se,be=H){if(a.test(re))return se;let ae=L(se,be);return ae?v.normalize(ae):se}function Ne(re,{extensions:se=Object.keys(df.Module._extensions)}={}){let be=[],ae=K(re,be,{extensions:se});if(ae)return v.normalize(ae);{let Ae=YA(re),De=D(re);if(De){let{packageLocation:$}=b(De);if(!e.fakeFs.existsSync($)){let G=$.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ui(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`${G} - -Missing package: ${De.name}@${De.reference} -Expected package location: ${YA($)} -`,{unqualifiedPath:Ae})}}throw ui(ur.QUALIFIED_PATH_RESOLUTION_FAILED,`Qualified path resolution failed - none of those files can be found on the disk. - -Source path: ${Ae} -${be.map($=>`Not found: ${YA($)} -`).join("")}`,{unqualifiedPath:Ae})}}function Pe(re,se,{considerBuiltins:be,extensions:ae,conditions:Ae}={}){let De=he(re,se,{considerBuiltins:be});if(re==="pnpapi")return De;if(De===null)return null;let $=()=>se!==null?q(se):!1,G=(!be||!s(re))&&!$()?pe(re,De,Ae):De;try{return Ne(G,{extensions:ae})}catch(Ce){throw Ce.pnpCode==="QUALIFIED_PATH_RESOLUTION_FAILED"&&Object.assign(Ce.data,{request:YA(re),issuer:se&&YA(se)}),Ce}}function qe(re){let se=v.normalize(re),be=Pr.resolveVirtual(se);return be!==se?be:null}return{VERSIONS:A,topLevel:V,getLocator:(re,se)=>Array.isArray(se)?{name:se[0],reference:se[1]}:{name:re,reference:se},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let re=[];for(let[se,be]of p)for(let ae of be.keys())se!==null&&ae!==null&&re.push({name:se,reference:ae});return re},getPackageInformation:re=>{let se=W(re);if(se===null)return null;let be=M.fromPortablePath(se.packageLocation);return _(P({},se),{packageLocation:be})},findPackageLocator:re=>D(M.toPortablePath(re)),resolveToUnqualified:B("resolveToUnqualified",(re,se,be)=>{let ae=se!==null?M.toPortablePath(se):null,Ae=he(M.toPortablePath(re),ae,be);return Ae===null?null:M.fromPortablePath(Ae)}),resolveUnqualified:B("resolveUnqualified",(re,se)=>M.fromPortablePath(Ne(M.toPortablePath(re),se))),resolveRequest:B("resolveRequest",(re,se,be)=>{let ae=se!==null?M.toPortablePath(se):null,Ae=Pe(M.toPortablePath(re),ae,be);return Ae===null?null:M.fromPortablePath(Ae)}),resolveVirtual:B("resolveVirtual",re=>{let se=qe(M.toPortablePath(re));return se!==null?M.fromPortablePath(se):null})}}var ISt=(0,rce.promisify)(tce.readFile);var ice=(t,e,r)=>{let i=XC(t),n=_L(i,{basePath:e}),s=M.join(e,wt.pnpCjs);return $L(n,{fakeFs:r,pnpapiResolution:s})};var tT=ie(sce());var Ws={};it(Ws,{checkAndReportManifestCompatibility:()=>oce,extractBuildScripts:()=>Z0,getExtractHint:()=>rT,hasBindingGyp:()=>iT});function oce(t,e,{configuration:r,report:i}){return S.isPackageCompatible(t,{os:[process.platform],cpu:[process.arch]})?!0:(i==null||i.reportWarningOnce(z.INCOMPATIBLE_ARCHITECTURE,`${S.prettyLocator(r,t)} The ${process.platform}-${process.arch} architecture is incompatible with this module, ${e} skipped.`),!1)}function Z0(t,e,r,{configuration:i,report:n}){let s=[];for(let a of["preinstall","install","postinstall"])e.manifest.scripts.has(a)&&s.push([Gn.SCRIPT,a]);return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&s.push([Gn.SHELLCODE,"node-gyp rebuild"]),s.length===0?[]:t.linkType!==gt.HARD?(n==null||n.reportWarningOnce(z.SOFT_LINK_BUILD,`${S.prettyLocator(i,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`),[]):r&&r.built===!1?(n==null||n.reportInfoOnce(z.BUILD_DISABLED,`${S.prettyLocator(i,t)} lists build scripts, but its build has been explicitly disabled through configuration.`),[]):!i.get("enableScripts")&&!r.built?(n==null||n.reportWarningOnce(z.DISABLED_BUILD_SCRIPTS,`${S.prettyLocator(i,t)} lists build scripts, but all build scripts have been disabled.`),[]):oce(t,"build",{configuration:i,report:n})?s:[]}var g6e=new Set([".exe",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function rT(t){return t.packageFs.getExtractHint({relevantExtensions:g6e})}function iT(t){let e=v.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var nT={};it(nT,{getUnpluggedPath:()=>ZC});function ZC(t,{configuration:e}){return v.resolve(e.get("pnpUnpluggedFolder"),S.slugifyLocator(t))}var f6e=new Set([S.makeIdent(null,"nan").identHash,S.makeIdent(null,"node-gyp").identHash,S.makeIdent(null,"node-pre-gyp").identHash,S.makeIdent(null,"node-addon-api").identHash,S.makeIdent(null,"fsevents").identHash]),jc=class{constructor(){this.mode="strict";this.pnpCache=new Map}supportsPackage(e,r){return!(r.project.configuration.get("nodeLinker")!=="pnp"||r.project.configuration.get("pnpMode")!==this.mode)}async findPackageLocation(e,r){let i=qA(r.project).cjs;if(!T.existsSync(i))throw new me(`The project in ${ue.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ue.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=de.getFactoryWithDefault(this.pnpCache,i,()=>de.dynamicRequire(i,{cachingStrategy:de.CachingStrategy.FsTime})),s={name:S.stringifyIdent(e),reference:e.reference},o=n.getPackageInformation(s);if(!o)throw new me(`Couldn't find ${S.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return M.toPortablePath(o.packageLocation)}async findPackageLocator(e,r){let i=qA(r.project).cjs;if(!T.existsSync(i))return null;let s=de.getFactoryWithDefault(this.pnpCache,i,()=>de.dynamicRequire(i,{cachingStrategy:de.CachingStrategy.FsTime})).findPackageLocator(M.fromPortablePath(e));return s?S.makeLocator(S.parseIdent(s.name),s.reference):null}makeInstaller(e){return new Cf(e)}},Cf=class{constructor(e){this.opts=e;this.mode="strict";this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}getCustomDataKey(){return JSON.stringify({name:"PnpInstaller",version:2})}attachCustomData(e){this.customData=e}async installPackage(e,r){let i=S.stringifyIdent(e),n=e.reference,s=!!this.opts.project.tryWorkspaceByLocator(e),o=S.isVirtualLocator(e),a=e.peerDependencies.size>0&&!o,l=!a&&!s,c=!a&&e.linkType!==gt.SOFT,u,g;if(l||c){let B=o?S.devirtualizeLocator(e):e;u=this.customData.store.get(B.locatorHash),typeof u=="undefined"&&(u=await h6e(r),e.linkType===gt.HARD&&this.customData.store.set(B.locatorHash,u)),u.manifest.type==="module"&&(this.isESMLoaderRequired=!0),g=this.opts.project.getDependencyMeta(B,e.version)}let f=l?Z0(e,u,g,{configuration:this.opts.project.configuration,report:this.opts.report}):[],h=c?await this.unplugPackageIfNeeded(e,u,r,g):r.packageFs;if(v.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let p=v.resolve(h.getRealPath(),r.prefixPath),d=sT(this.opts.project.cwd,p),m=new Map,I=new Set;if(o){for(let B of e.peerDependencies.values())m.set(S.stringifyIdent(B),null),I.add(S.stringifyIdent(B));if(!s){let B=S.devirtualizeLocator(e);this.virtualTemplates.set(B.locatorHash,{location:sT(this.opts.project.cwd,Pr.resolveVirtual(p)),locator:B})}}return de.getMapWithDefault(this.packageRegistry,i).set(n,{packageLocation:d,packageDependencies:m,packagePeers:I,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:p,buildDirective:f.length>0?f:null}}async attachInternalDependencies(e,r){let i=this.getPackageInformation(e);for(let[n,s]of r){let o=S.areIdentsEqual(n,s)?s.reference:[S.stringifyIdent(s),s.reference];i.packageDependencies.set(S.stringifyIdent(n),o)}}async attachExternalDependents(e,r){for(let i of r)this.getDiskInformation(i).packageDependencies.set(S.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=qA(this.opts.project);if(T.existsSync(e.cjsLegacy)&&(this.opts.report.reportWarning(z.UNNAMED,`Removing the old ${ue.pretty(this.opts.project.configuration,wt.pnpJs,ue.Type.PATH)} file. You might need to manually update existing references to reference the new ${ue.pretty(this.opts.project.configuration,wt.pnpCjs,ue.Type.PATH)} file. If you use Editor SDKs, you'll have to rerun ${ue.pretty(this.opts.project.configuration,"yarn sdks",ue.Type.CODE)}.`),await T.removePromise(e.cjsLegacy)),this.isEsmEnabled()||await T.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await T.removePromise(e.cjs),await T.removePromise(this.opts.project.configuration.get("pnpDataPath")),await T.removePromise(e.esmLoader);return}for(let{locator:u,location:g}of this.virtualTemplates.values())de.getMapWithDefault(this.packageRegistry,S.stringifyIdent(u)).set(u.reference,{packageLocation:g,packageDependencies:new Map,packagePeers:new Set,linkType:gt.SOFT,discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),i=this.opts.project.workspaces.map(({anchoredLocator:u})=>({name:S.stringifyIdent(u),reference:u.reference})),n=r!=="none",s=[],o=new Map,a=de.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),l=this.packageRegistry,c=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let u of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(u)&&s.push({name:S.stringifyIdent(u),reference:u.reference});return await this.finalizeInstallWithPnp({dependencyTreeRoots:i,enableTopLevelFallback:n,fallbackExclusionList:s,fallbackPool:o,ignorePattern:a,packageRegistry:l,shebang:c}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=qA(this.opts.project),i=this.opts.project.configuration.get("pnpDataPath"),n=await this.locateNodeModules(e.ignorePattern);if(n.length>0){this.opts.report.reportWarning(z.DANGEROUS_NODE_MODULES,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let o of n)await T.removePromise(o)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let o=_le(e);await T.changeFilePromise(r.cjs,o,{automaticNewlines:!0,mode:493}),await T.removePromise(i)}else{let o=v.relative(v.dirname(r.cjs),i),{dataFile:a,loaderFile:l}=Xle(_(P({},e),{dataLocation:o}));await T.changeFilePromise(r.cjs,l,{automaticNewlines:!0,mode:493}),await T.changeFilePromise(i,a,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(z.UNNAMED,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await T.changeFilePromise(r.esmLoader,(0,tT.default)(),{automaticNewlines:!0,mode:420}));let s=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await T.removePromise(s);else for(let o of await T.readdirPromise(s)){let a=v.resolve(s,o);this.unpluggedPaths.has(a)||await T.removePromise(a)}}async locateNodeModules(e){let r=[],i=e?new RegExp(e):null;for(let n of this.opts.project.workspaces){let s=v.join(n.cwd,"node_modules");if(i&&i.test(v.relative(this.opts.project.cwd,n.cwd))||!T.existsSync(s))continue;let o=await T.readdirPromise(s,{withFileTypes:!0}),a=o.filter(l=>!l.isDirectory()||l.name===".bin"||!l.name.startsWith("."));if(a.length===o.length)r.push(s);else for(let l of a)r.push(v.join(s,l.name))}return r}async unplugPackageIfNeeded(e,r,i,n){return this.shouldBeUnplugged(e,r,n)?this.unplugPackage(e,i):i.packageFs}shouldBeUnplugged(e,r,i){return typeof i.unplugged!="undefined"?i.unplugged:f6e.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(Z0(e,r,i,{configuration:this.opts.project.configuration}).length>0||r.misc.extractHint)}async unplugPackage(e,r){let i=ZC(e,{configuration:this.opts.project.configuration});if(this.opts.project.disabledLocators.has(e.locatorHash))return new Xo(i,{baseFs:r.packageFs,pathUtils:v});this.unpluggedPaths.add(i);let n=v.join(i,r.prefixPath,".ready");return await T.existsPromise(n)?new Ft(i):(this.opts.project.storedBuildState.delete(e.locatorHash),await T.mkdirPromise(i,{recursive:!0}),await T.copyPromise(i,Se.dot,{baseFs:r.packageFs,overwrite:!1}),await T.writeFilePromise(n,""),new Ft(i))}getPackageInformation(e){let r=S.stringifyIdent(e),i=e.reference,n=this.packageRegistry.get(r);if(!n)throw new Error(`Assertion failed: The package information store should have been available (for ${S.prettyIdent(this.opts.project.configuration,e)})`);let s=n.get(i);if(!s)throw new Error(`Assertion failed: The package information should have been available (for ${S.prettyLocator(this.opts.project.configuration,e)})`);return s}getDiskInformation(e){let r=de.getMapWithDefault(this.packageRegistry,"@@disk"),i=sT(this.opts.project.cwd,e);return de.getFactoryWithDefault(r,i,()=>({packageLocation:i,packageDependencies:new Map,packagePeers:new Set,linkType:gt.SOFT,discardFromLookup:!1}))}};function sT(t,e){let r=v.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function h6e(t){var i;let e=(i=await Ze.tryFind(t.prefixPath,{baseFs:t.packageFs}))!=null?i:new Ze,r=new Set(["preinstall","install","postinstall"]);for(let n of e.scripts.keys())r.has(n)||e.scripts.delete(n);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:rT(t),hasBindingGyp:iT(t)}}}var ace=ie(Nn());var $C=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=Y.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);if(e.get("nodeLinker")!=="pnp")throw new me("This command can only be used if the `nodeLinker` option is set to `pnp`");await r.restoreInstallState();let s=new Set(this.patterns),o=this.patterns.map(f=>{let h=S.parseDescriptor(f),p=h.range!=="unknown"?h:S.makeDescriptor(h,"*");if(!qt.validRange(p.range))throw new me(`The range of the descriptor patterns must be a valid semver range (${S.prettyDescriptor(e,p)})`);return d=>{let m=S.stringifyIdent(d);return!ace.default.isMatch(m,S.stringifyIdent(p))||d.version&&!qt.satisfiesWithPrereleases(d.version,p.range)?!1:(s.delete(f),!0)}}),a=()=>{let f=[];for(let h of r.storedPackages.values())!r.tryWorkspaceByLocator(h)&&!S.isVirtualLocator(h)&&o.some(p=>p(h))&&f.push(h);return f},l=f=>{let h=new Set,p=[],d=(m,I)=>{if(!h.has(m.locatorHash)&&(h.add(m.locatorHash),!r.tryWorkspaceByLocator(m)&&o.some(B=>B(m))&&p.push(m),!(I>0&&!this.recursive)))for(let B of m.dependencies.values()){let b=r.storedResolutions.get(B.descriptorHash);if(!b)throw new Error("Assertion failed: The resolution should have been registered");let R=r.storedPackages.get(b);if(!R)throw new Error("Assertion failed: The package should have been registered");d(R,I+1)}};for(let m of f){let I=r.storedPackages.get(m.anchoredLocator.locatorHash);if(!I)throw new Error("Assertion failed: The package should have been registered");d(I,0)}return p},c,u;if(this.all&&this.recursive?(c=a(),u="the project"):this.all?(c=l(r.workspaces),u="any workspace"):(c=l([i]),u="this workspace"),s.size>1)throw new me(`Patterns ${ue.prettyList(e,s,ue.Type.CODE)} don't match any packages referenced by ${u}`);if(s.size>0)throw new me(`Pattern ${ue.prettyList(e,s,ue.Type.CODE)} doesn't match any packages referenced by ${u}`);return c=de.sortMap(c,f=>S.stringifyLocator(f)),(await Fe.start({configuration:e,stdout:this.context.stdout,json:this.json},async f=>{var h;for(let p of c){let d=(h=p.version)!=null?h:"unknown",m=r.topLevelWorkspace.manifest.ensureDependencyMeta(S.makeDescriptor(p,d));m.unplugged=!0,f.reportInfo(z.UNNAMED,`Will unpack ${S.prettyLocator(e,p)} to ${ue.pretty(e,ZC(p,{configuration:e}),ue.Type.PATH)}`),f.reportJson({locator:S.stringifyLocator(p),version:d})}await r.topLevelWorkspace.persistManifest(),f.reportSeparator(),await r.install({cache:n,report:f})})).exitCode()}};$C.paths=[["unplug"]],$C.usage=ye.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var Ace=$C;var qA=t=>({cjs:v.join(t.cwd,wt.pnpCjs),cjsLegacy:v.join(t.cwd,wt.pnpJs),esmLoader:v.join(t.cwd,".pnp.loader.mjs")}),uce=t=>/\s/.test(t)?JSON.stringify(t):t;async function p6e(t,e,r){let i=qA(t),n=`--require ${uce(M.fromPortablePath(i.cjs))}`;if(T.existsSync(i.esmLoader)&&(n=`${n} --experimental-loader ${(0,cce.pathToFileURL)(M.fromPortablePath(i.esmLoader)).href}`),i.cjs.includes(" ")&&lce.default.lt(process.versions.node,"12.0.0"))throw new Error(`Expected the build location to not include spaces when using Node < 12.0.0 (${process.versions.node})`);if(T.existsSync(i.cjs)){let s=e.NODE_OPTIONS||"",o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/;s=s.replace(o," ").replace(a," ").trim(),s=s?`${n} ${s}`:n,e.NODE_OPTIONS=s}}async function d6e(t,e){let r=qA(t);e(r.cjs),e(r.esmLoader),e(t.configuration.get("pnpDataPath")),e(t.configuration.get("pnpUnpluggedFolder"))}var C6e={hooks:{populateYarnPaths:d6e,setupScriptEnvironment:p6e},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "node-modules"',type:ge.STRING,default:"pnp"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:ge.STRING,default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:ge.STRING,default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:ge.STRING,default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:ge.BOOLEAN,default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:ge.BOOLEAN,default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:ge.STRING,default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:ge.ABSOLUTE_PATH,default:"./.yarn/unplugged"},pnpDataPath:{description:"Path of the file where the PnP data (used by the loader) must be written",type:ge.ABSOLUTE_PATH,default:"./.pnp.data.json"}},linkers:[jc],commands:[Ace]},m6e=C6e;var Cce=ie(dce());var uT=ie(require("crypto")),mce=ie(require("fs")),Ece=1,gi="node_modules",gT=".bin",Ice=".yarn-state.yml",Bi;(function(i){i.CLASSIC="classic",i.HARDLINKS_LOCAL="hardlinks-local",i.HARDLINKS_GLOBAL="hardlinks-global"})(Bi||(Bi={}));var fT=class{constructor(){this.installStateCache=new Map}supportsPackage(e,r){return r.project.configuration.get("nodeLinker")==="node-modules"}async findPackageLocation(e,r){let i=r.project.tryWorkspaceByLocator(e);if(i)return i.cwd;let n=await de.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await hT(r.project,{unrollAliases:!0}));if(n===null)throw new me("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let s=n.locatorMap.get(S.stringifyLocator(e));if(!s){let a=new me(`Couldn't find ${S.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw a.code="LOCATOR_NOT_INSTALLED",a}let o=r.project.configuration.startingCwd;return s.locations.find(a=>v.contains(o,a))||s.locations[0]}async findPackageLocator(e,r){let i=await de.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await hT(r.project,{unrollAliases:!0}));if(i===null)return null;let{locationRoot:n,segments:s}=$0(v.resolve(e),{skipPrefix:r.project.cwd}),o=i.locationTree.get(n);if(!o)return null;let a=o.locator;for(let l of s){if(o=o.children.get(l),!o)break;a=o.locator||a}return S.parseLocator(a)}makeInstaller(e){return new yce(e)}},yce=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}getCustomDataKey(){return JSON.stringify({name:"NodeModulesInstaller",version:1})}attachCustomData(e){this.customData=e}async installPackage(e,r){var u;let i=v.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.customData.store.get(e.locatorHash);if(typeof n=="undefined"&&(n=await L6e(e,r),e.linkType===gt.HARD&&this.customData.store.set(e.locatorHash,n)),!Ws.checkAndReportManifestCompatibility(e,"link",{configuration:this.opts.project.configuration,report:this.opts.report}))return{packageLocation:null,buildDirective:null};let s=new Map,o=new Set;s.has(S.stringifyIdent(e))||s.set(S.stringifyIdent(e),e.reference);let a=e;if(S.isVirtualLocator(e)){a=S.devirtualizeLocator(e);for(let g of e.peerDependencies.values())s.set(S.stringifyIdent(g),null),o.add(S.stringifyIdent(g))}let l={packageLocation:`${M.fromPortablePath(i)}/`,packageDependencies:s,packagePeers:o,linkType:e.linkType,discardFromLookup:(u=r.discardFromLookup)!=null?u:!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:n,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:l});let c=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(a.locatorHash,c),{packageLocation:i,buildDirective:null}}async attachInternalDependencies(e,r){let i=this.localStore.get(e.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected information object to have been registered");for(let[n,s]of r){let o=S.areIdentsEqual(n,s)?s.reference:[S.stringifyIdent(s),s.reference];i.pnpNode.packageDependencies.set(S.stringifyIdent(n),o)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new Pr({baseFs:new Jn({libzip:await $i(),maxOpenFiles:80,readOnlyArchives:!0})}),r=await hT(this.opts.project),i=this.opts.project.configuration.get("nmMode");(r===null||i!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:i});let n=new Map(this.opts.project.workspaces.map(f=>{var p,d;let h=this.opts.project.configuration.get("nmHoistingLimits");try{h=de.validateEnum(Sn,(d=(p=f.manifest.installConfig)==null?void 0:p.hoistingLimits)!=null?d:h)}catch(m){let I=S.prettyWorkspace(this.opts.project.configuration,f);this.opts.report.reportWarning(z.INVALID_MANIFEST,`${I}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(Sn).join(", ")}, using default: "${h}"`)}return[f.relativeCwd,h]})),s=new Map(this.opts.project.workspaces.map(f=>{var p,d;let h=this.opts.project.configuration.get("nmSelfReferences");return h=(d=(p=f.manifest.installConfig)==null?void 0:p.selfReferences)!=null?d:h,[f.relativeCwd,h]})),o={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(f,h)=>Array.isArray(h)?{name:h[0],reference:h[1]}:{name:f,reference:h},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(f=>{let h=f.anchoredLocator;return{name:S.stringifyIdent(f.locator),reference:h.reference}}),getPackageInformation:f=>{let h=f.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:S.makeLocator(S.parseIdent(f.name),f.reference),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the package reference to have been registered");return p.pnpNode},findPackageLocator:f=>{let h=this.opts.project.tryWorkspaceByCwd(M.toPortablePath(f));if(h!==null){let p=h.anchoredLocator;return{name:S.stringifyIdent(p),reference:p.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:f=>M.fromPortablePath(Pr.resolveVirtual(M.toPortablePath(f)))},{tree:a,errors:l,preserveSymlinksRequired:c}=VC(o,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:n,project:this.opts.project,selfReferencesByCwd:s});if(!a){for(let{messageName:f,text:h}of l)this.opts.report.reportError(f,h);return}let u=WL(a);await T6e(r,u,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async f=>{let h=S.parseLocator(f),p=this.localStore.get(h.locatorHash);if(typeof p=="undefined")throw new Error("Assertion failed: Expected the slot to exist");return p.customPackageData.manifest}});let g=[];for(let[f,h]of u.entries()){if(wce(f))continue;let p=S.parseLocator(f),d=this.localStore.get(p.locatorHash);if(typeof d=="undefined")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(d.pkg))continue;let m=Ws.extractBuildScripts(d.pkg,d.customPackageData,d.dependencyMeta,{configuration:this.opts.project.configuration,report:this.opts.report});m.length!==0&&g.push({buildLocations:h.locations,locatorHash:p.locatorHash,buildDirective:m})}return c&&this.opts.report.reportWarning(z.NM_PRESERVE_SYMLINKS_REQUIRED,`The application uses portals and that's why ${ue.pretty(this.opts.project.configuration,"--preserve-symlinks",ue.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:g}}};async function L6e(t,e){var n;let r=(n=await Ze.tryFind(e.prefixPath,{baseFs:e.packageFs}))!=null?n:new Ze,i=new Set(["preinstall","install","postinstall"]);for(let s of r.scripts.keys())i.has(s)||r.scripts.delete(s);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{extractHint:Ws.getExtractHint(e),hasBindingGyp:Ws.hasBindingGyp(e)}}}async function M6e(t,e,r,i){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will -`,n+=`# cause your node_modules installation to become invalidated. -`,n+=` -`,n+=`__metadata: -`,n+=` version: ${Ece} -`,n+=` nmMode: ${i.value} -`;let s=Array.from(e.keys()).sort(),o=S.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let c of s){let u=e.get(c);n+=` -`,n+=`${JSON.stringify(c)}: -`,n+=` locations: -`;for(let g of u.locations){let f=v.contains(t.cwd,g);if(f===null)throw new Error(`Assertion failed: Expected the path to be within the project (${g})`);n+=` - ${JSON.stringify(f)} -`}if(u.aliases.length>0){n+=` aliases: -`;for(let g of u.aliases)n+=` - ${JSON.stringify(g)} -`}if(c===o&&r.size>0){n+=` bin: -`;for(let[g,f]of r){let h=v.contains(t.cwd,g);if(h===null)throw new Error(`Assertion failed: Expected the path to be within the project (${g})`);n+=` ${JSON.stringify(h)}: -`;for(let[p,d]of f){let m=v.relative(v.join(g,gi),d);n+=` ${JSON.stringify(p)}: ${JSON.stringify(m)} -`}}}}let a=t.cwd,l=v.join(a,gi,Ice);await T.changeFilePromise(l,n,{automaticNewlines:!0})}async function hT(t,{unrollAliases:e=!1}={}){let r=t.cwd,i=v.join(r,gi,Ice);if(!T.existsSync(i))return null;let n=Ii(await T.readFilePromise(i,"utf8"));if(n.__metadata.version>Ece)return null;let s=n.__metadata.nmMode||Bi.CLASSIC,o=new Map,a=new Map;delete n.__metadata;for(let[l,c]of Object.entries(n)){let u=c.locations.map(f=>v.join(r,f)),g=c.bin;if(g)for(let[f,h]of Object.entries(g)){let p=v.join(r,M.toPortablePath(f)),d=de.getMapWithDefault(a,p);for(let[m,I]of Object.entries(h))d.set(kr(m),M.toPortablePath([p,gi,I].join(v.delimiter)))}if(o.set(l,{target:Se.dot,linkType:gt.HARD,locations:u,aliases:c.aliases||[]}),e&&c.aliases)for(let f of c.aliases){let{scope:h,name:p}=S.parseLocator(l),d=S.makeLocator(S.makeIdent(h,p),f),m=S.stringifyLocator(d);o.set(m,{target:Se.dot,linkType:gt.HARD,locations:u,aliases:[]})}}return{locatorMap:o,binSymlinks:a,locationTree:Bce(o,{skipPrefix:t.cwd}),nmMode:s}}var Ef=async(t,e)=>{if(t.split(v.sep).indexOf(gi)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{if(!e.innerLoop&&(await T.lstatPromise(t)).isSymbolicLink()){await T.unlinkPromise(t);return}let r=await T.readdirPromise(t,{withFileTypes:!0});for(let i of r){let n=v.join(t,kr(i.name));i.isDirectory()?(i.name!==gi||e&&e.innerLoop)&&await Ef(n,{innerLoop:!0,contentsOnly:!1}):await T.unlinkPromise(n)}e.contentsOnly||await T.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},Qce=4,$0=(t,{skipPrefix:e})=>{let r=v.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let i=r.split(v.sep).filter(l=>l!==""),n=i.indexOf(gi),s=i.slice(0,n).join(v.sep),o=v.join(e,s),a=i.slice(n);return{locationRoot:o,segments:a}},Bce=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let i=()=>({children:new Map,linkType:gt.HARD});for(let[n,s]of t.entries()){if(s.linkType===gt.SOFT&&v.contains(e,s.target)!==null){let a=de.getFactoryWithDefault(r,s.target,i);a.locator=n,a.linkType=s.linkType}for(let o of s.locations){let{locationRoot:a,segments:l}=$0(o,{skipPrefix:e}),c=de.getFactoryWithDefault(r,a,i);for(let u=0;u{let r;try{process.platform==="win32"&&(r=await T.lstatPromise(t))}catch(i){}process.platform=="win32"&&(!r||r.isDirectory())?await T.symlinkPromise(t,e,"junction"):await T.symlinkPromise(v.relative(v.dirname(e),t),e)};async function bce(t,e,r){let i=v.join(t,kr(`${uT.default.randomBytes(16).toString("hex")}.tmp`));try{await T.writeFilePromise(i,r);try{await T.linkPromise(i,e)}catch(n){}}finally{await T.unlinkPromise(i)}}async function O6e({srcPath:t,dstPath:e,srcMode:r,globalHardlinksStore:i,baseFs:n,nmMode:s,digest:o}){if(s.value===Bi.HARDLINKS_GLOBAL&&i&&o){let l=v.join(i,o.substring(0,2),`${o.substring(2)}.dat`),c;try{if(await mn.checksumFile(l,{baseFs:T,algorithm:"sha1"})!==o){let g=v.join(i,kr(`${uT.default.randomBytes(16).toString("hex")}.tmp`));await T.renamePromise(l,g);let f=await n.readFilePromise(t);await T.writeFilePromise(g,f);try{await T.linkPromise(g,l),await T.unlinkPromise(g)}catch(h){}}await T.linkPromise(l,e),c=!0}catch(u){c=!1}if(!c){let u=await n.readFilePromise(t);await bce(i,l,u);try{await T.linkPromise(l,e)}catch(g){g&&g.code&&g.code=="EXDEV"&&(s.value=Bi.HARDLINKS_LOCAL,await n.copyFilePromise(t,e))}}}else await n.copyFilePromise(t,e);let a=r&511;a!==420&&await T.chmodPromise(e,a)}var JA;(function(i){i.FILE="file",i.DIRECTORY="directory",i.SYMLINK="symlink"})(JA||(JA={}));var K6e=async(t,e,{baseFs:r,globalHardlinksStore:i,nmMode:n,packageChecksum:s})=>{await T.mkdirPromise(t,{recursive:!0});let o=async(l=Se.dot)=>{let c=v.join(e,l),u=await r.readdirPromise(c,{withFileTypes:!0}),g=new Map;for(let f of u){let h=v.join(l,f.name),p,d=v.join(c,f.name);if(f.isFile()){if(p={kind:JA.FILE,mode:(await r.lstatPromise(d)).mode},n.value===Bi.HARDLINKS_GLOBAL){let m=await mn.checksumFile(d,{baseFs:r,algorithm:"sha1"});p.digest=m}}else if(f.isDirectory())p={kind:JA.DIRECTORY};else if(f.isSymbolicLink())p={kind:JA.SYMLINK,symlinkTo:await r.readlinkPromise(d)};else throw new Error(`Unsupported file type (file: ${d}, mode: 0o${await r.statSync(d).mode.toString(8).padStart(6,"0")})`);if(g.set(h,p),f.isDirectory()&&h!==gi){let m=await o(h);for(let[I,B]of m)g.set(I,B)}}return g},a;if(n.value===Bi.HARDLINKS_GLOBAL&&i&&s){let l=v.join(i,s.substring(0,2),`${s.substring(2)}.json`);try{a=new Map(Object.entries(JSON.parse(await T.readFilePromise(l,"utf8"))))}catch(c){a=await o(),await bce(i,l,Buffer.from(JSON.stringify(Object.fromEntries(a))))}}else a=await o();for(let[l,c]of a){let u=v.join(e,l),g=v.join(t,l);c.kind===JA.DIRECTORY?await T.mkdirPromise(g,{recursive:!0}):c.kind===JA.FILE?await O6e({srcPath:u,dstPath:g,srcMode:c.mode,digest:c.digest,nmMode:n,baseFs:r,globalHardlinksStore:i}):c.kind===JA.SYMLINK&&await pT(v.resolve(v.dirname(g),c.symlinkTo),g)}};function U6e(t,e){let r=new Map([...t]),i=new Map([...e]);for(let[n,s]of t){let o=v.join(n,gi);if(!T.existsSync(o)){s.children.delete(gi);for(let a of i.keys())v.contains(o,a)!==null&&i.delete(a)}}return{locationTree:r,binSymlinks:i}}function wce(t){let e=S.parseDescriptor(t);return S.isVirtualDescriptor(e)&&(e=S.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function H6e(t,e,r,{loadManifest:i}){let n=new Map;for(let[a,{locations:l}]of t){let c=wce(a)?null:await i(a,l[0]),u=new Map;if(c)for(let[g,f]of c.bin){let h=v.join(l[0],f);f!==""&&T.existsSync(h)&&u.set(g,f)}n.set(a,u)}let s=new Map,o=(a,l,c)=>{let u=new Map,g=v.contains(r,a);if(c.locator&&g!==null){let f=n.get(c.locator);for(let[h,p]of f){let d=v.join(a,M.toPortablePath(p));u.set(kr(h),d)}for(let[h,p]of c.children){let d=v.join(a,h),m=o(d,d,p);m.size>0&&s.set(a,new Map([...s.get(a)||new Map,...m]))}}else for(let[f,h]of c.children){let p=o(v.join(a,f),l,h);for(let[d,m]of p)u.set(d,m)}return u};for(let[a,l]of e){let c=o(a,a,l);c.size>0&&s.set(a,new Map([...s.get(a)||new Map,...c]))}return s}var vce=(t,e)=>{if(!t||!e)return t===e;let r=S.parseLocator(t);S.isVirtualLocator(r)&&(r=S.devirtualizeLocator(r));let i=S.parseLocator(e);return S.isVirtualLocator(i)&&(i=S.devirtualizeLocator(i)),S.areLocatorsEqual(r,i)};function dT(t){return v.join(t.get("globalFolder"),"store")}async function T6e(t,e,{baseFs:r,project:i,report:n,loadManifest:s,realLocatorChecksums:o}){let a=v.join(i.cwd,gi),{locationTree:l,binSymlinks:c}=U6e(t.locationTree,t.binSymlinks),u=Bce(e,{skipPrefix:i.cwd}),g=[],f=async({srcDir:L,dstDir:K,linkType:J,globalHardlinksStore:ne,nmMode:q,packageChecksum:A})=>{let V=(async()=>{try{J===gt.SOFT?(await T.mkdirPromise(v.dirname(K),{recursive:!0}),await pT(v.resolve(L),K)):await K6e(K,L,{baseFs:r,globalHardlinksStore:ne,nmMode:q,packageChecksum:A})}catch(W){throw W.message=`While persisting ${L} -> ${K} ${W.message}`,W}finally{B.tick()}})().then(()=>g.splice(g.indexOf(V),1));g.push(V),g.length>Qce&&await Promise.race(g)},h=async(L,K,J)=>{let ne=(async()=>{let q=async(A,V,W)=>{try{W.innerLoop||await T.mkdirPromise(V,{recursive:!0});let X=await T.readdirPromise(A,{withFileTypes:!0});for(let F of X){if(!W.innerLoop&&F.name===gT)continue;let D=v.join(A,F.name),he=v.join(V,F.name);F.isDirectory()?(F.name!==gi||W&&W.innerLoop)&&(await T.mkdirPromise(he,{recursive:!0}),await q(D,he,_(P({},W),{innerLoop:!0}))):H.value===Bi.HARDLINKS_LOCAL||H.value===Bi.HARDLINKS_GLOBAL?await T.linkPromise(D,he):await T.copyFilePromise(D,he,mce.default.constants.COPYFILE_FICLONE)}}catch(X){throw W.innerLoop||(X.message=`While cloning ${A} -> ${V} ${X.message}`),X}finally{W.innerLoop||B.tick()}};await q(L,K,J)})().then(()=>g.splice(g.indexOf(ne),1));g.push(ne),g.length>Qce&&await Promise.race(g)},p=async(L,K,J)=>{if(!J)K.children.has(gi)&&await Ef(v.join(L,gi),{contentsOnly:!1}),await Ef(L,{contentsOnly:L===a});else for(let[ne,q]of K.children){let A=J.children.get(ne);await p(v.join(L,ne),q,A)}};for(let[L,K]of l){let J=u.get(L);for(let[ne,q]of K.children){if(ne===".")continue;let A=J&&J.children.get(ne);await p(v.join(L,ne),q,A)}}let d=async(L,K,J)=>{if(!J)K.children.has(gi)&&await Ef(v.join(L,gi),{contentsOnly:!0}),await Ef(L,{contentsOnly:K.linkType===gt.HARD});else{vce(K.locator,J.locator)||await Ef(L,{contentsOnly:K.linkType===gt.HARD});for(let[ne,q]of K.children){let A=J.children.get(ne);await d(v.join(L,ne),q,A)}}};for(let[L,K]of u){let J=l.get(L);for(let[ne,q]of K.children){if(ne===".")continue;let A=J&&J.children.get(ne);await d(v.join(L,ne),q,A)}}let m=new Map,I=[];for(let[L,{locations:K}]of t.locatorMap.entries())for(let J of K){let{locationRoot:ne,segments:q}=$0(J,{skipPrefix:i.cwd}),A=u.get(ne),V=ne;if(A){for(let W of q)if(V=v.join(V,W),A=A.children.get(W),!A)break;if(A){let W=vce(A.locator,L),X=e.get(A.locator),F=X.target,D=V,he=X.linkType;if(W)m.has(F)||m.set(F,D);else if(F!==D){let pe=S.parseLocator(A.locator);S.isVirtualLocator(pe)&&(pe=S.devirtualizeLocator(pe)),I.push({srcDir:F,dstDir:D,linkType:he,realLocatorHash:pe.locatorHash})}}}}for(let[L,{locations:K}]of e.entries())for(let J of K){let{locationRoot:ne,segments:q}=$0(J,{skipPrefix:i.cwd}),A=l.get(ne),V=u.get(ne),W=ne,X=e.get(L),F=S.parseLocator(L);S.isVirtualLocator(F)&&(F=S.devirtualizeLocator(F));let D=F.locatorHash,he=X.target,pe=J;if(he===pe)continue;let Ne=X.linkType;for(let Pe of q)V=V.children.get(Pe);if(!A)I.push({srcDir:he,dstDir:pe,linkType:Ne,realLocatorHash:D});else for(let Pe of q)if(W=v.join(W,Pe),A=A.children.get(Pe),!A){I.push({srcDir:he,dstDir:pe,linkType:Ne,realLocatorHash:D});break}}let B=Xi.progressViaCounter(I.length),b=n.reportProgress(B),R=i.configuration.get("nmMode"),H={value:R};try{let L=H.value===Bi.HARDLINKS_GLOBAL?`${dT(i.configuration)}/v1`:null;if(L&&!await T.existsPromise(L)){await T.mkdirpPromise(L);for(let J=0;J<256;J++)await T.mkdirPromise(v.join(L,J.toString(16).padStart(2,"0")))}for(let J of I)(J.linkType===gt.SOFT||!m.has(J.srcDir))&&(m.set(J.srcDir,J.dstDir),await f(_(P({},J),{globalHardlinksStore:L,nmMode:H,packageChecksum:o.get(J.realLocatorHash)||null})));await Promise.all(g),g.length=0;for(let J of I){let ne=m.get(J.srcDir);J.linkType!==gt.SOFT&&J.dstDir!==ne&&await h(ne,J.dstDir,{nmMode:H})}await Promise.all(g),await T.mkdirPromise(a,{recursive:!0});let K=await H6e(e,u,i.cwd,{loadManifest:s});await G6e(c,K,i.cwd),await M6e(i,e,K,H),R==Bi.HARDLINKS_GLOBAL&&H.value==Bi.HARDLINKS_LOCAL&&n.reportWarningOnce(z.NM_HARDLINKS_MODE_DOWNGRADED,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{b.stop()}}async function G6e(t,e,r){for(let i of t.keys()){if(v.contains(r,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);if(!e.has(i)){let n=v.join(i,gi,gT);await T.removePromise(n)}}for(let[i,n]of e){if(v.contains(r,i)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${i}`);let s=v.join(i,gi,gT),o=t.get(i)||new Map;await T.mkdirPromise(s,{recursive:!0});for(let a of o.keys())n.has(a)||(await T.removePromise(v.join(s,a)),process.platform==="win32"&&await T.removePromise(v.join(s,kr(`${a}.cmd`))));for(let[a,l]of n){let c=o.get(a),u=v.join(s,a);c!==l&&(process.platform==="win32"?await(0,Cce.default)(M.fromPortablePath(l),M.fromPortablePath(u),{createPwshFile:!1}):(await T.removePromise(u),await pT(l,u),v.contains(r,await T.realpathPromise(l))!==null&&await T.chmodPromise(l,493)))}}}var CT=class extends jc{constructor(){super(...arguments);this.mode="loose"}makeInstaller(e){return new Sce(e)}},Sce=class extends Cf{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(e){let r=new Pr({baseFs:new Jn({libzip:await $i(),maxOpenFiles:80,readOnlyArchives:!0})}),i=ice(e,this.opts.project.cwd,r),{tree:n,errors:s}=VC(i,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:u,text:g}of s)this.opts.report.reportError(u,g);return}let o=new Map;e.fallbackPool=o;let a=(u,g)=>{let f=S.parseLocator(g.locator),h=S.stringifyIdent(f);h===u?o.set(u,f.reference):o.set(u,[h,f.reference])},l=v.join(this.opts.project.cwd,wt.nodeModules),c=n.get(l);if(typeof c!="undefined"){if("target"in c)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let u of c.dirList){let g=v.join(l,u),f=n.get(g);if(typeof f=="undefined")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in f)a(u,f);else for(let h of f.dirList){let p=v.join(g,h),d=n.get(p);if(typeof d=="undefined")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in d)a(`${u}/${h}`,d);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var j6e={hooks:{cleanGlobalArtifacts:async t=>{let e=dT(t);await T.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevent packages to be hoisted past specific levels",type:ge.STRING,values:[Sn.WORKSPACES,Sn.DEPENDENCIES,Sn.NONE],default:Sn.NONE},nmMode:{description:'If set to "hardlinks-local" Yarn will utilize hardlinks to reduce disk space consumption inside "node_modules" directories. With "hardlinks-global" Yarn will use global content addressable storage to reduce "node_modules" size across all the projects using this option.',type:ge.STRING,values:[Bi.CLASSIC,Bi.HARDLINKS_LOCAL,Bi.HARDLINKS_GLOBAL],default:Bi.CLASSIC},nmSelfReferences:{description:"If set to 'false' the workspace will not be allowed to require itself and corresponding self-referencing symlink will not be created",type:ge.BOOLEAN,default:!0}},linkers:[fT,CT]},Y6e=j6e;var yM={};it(yM,{default:()=>Z7e,npmConfigUtils:()=>gr,npmHttpUtils:()=>Lt,npmPublishUtils:()=>Rf});var Rce=ie(Or());var ir="npm:";var Lt={};it(Lt,{AuthType:()=>jn,customPackageError:()=>W6e,del:()=>_6e,get:()=>zs,getIdentUrl:()=>zA,handleInvalidAuthenticationError:()=>WA,post:()=>z6e,put:()=>V6e});var Pce=ie(aC()),Dce=ie(require("url"));var gr={};it(gr,{RegistryType:()=>ja,getAuditRegistry:()=>q6e,getAuthConfiguration:()=>IT,getDefaultRegistry:()=>eQ,getPublishRegistry:()=>xce,getRegistryConfiguration:()=>kce,getScopeConfiguration:()=>ET,getScopeRegistry:()=>Ya,normalizeRegistry:()=>To});var ja;(function(i){i.AUDIT_REGISTRY="npmAuditRegistry",i.FETCH_REGISTRY="npmRegistryServer",i.PUBLISH_REGISTRY="npmPublishRegistry"})(ja||(ja={}));function To(t){return t.replace(/\/$/,"")}function q6e(t,{configuration:e}){let r=e.get(ja.AUDIT_REGISTRY);return r!==null?To(r):xce(t,{configuration:e})}function xce(t,{configuration:e}){var r;return((r=t.publishConfig)==null?void 0:r.registry)?To(t.publishConfig.registry):t.name?Ya(t.name.scope,{configuration:e,type:ja.PUBLISH_REGISTRY}):eQ({configuration:e,type:ja.PUBLISH_REGISTRY})}function Ya(t,{configuration:e,type:r=ja.FETCH_REGISTRY}){let i=ET(t,{configuration:e});if(i===null)return eQ({configuration:e,type:r});let n=i.get(r);return n===null?eQ({configuration:e,type:r}):To(n)}function eQ({configuration:t,type:e=ja.FETCH_REGISTRY}){let r=t.get(e);return To(r!==null?r:t.get(ja.FETCH_REGISTRY))}function kce(t,{configuration:e}){let r=e.get("npmRegistries"),i=To(t),n=r.get(i);if(typeof n!="undefined")return n;let s=r.get(i.replace(/^[a-z]+:/,""));return typeof s!="undefined"?s:null}function ET(t,{configuration:e}){if(t===null)return null;let i=e.get("npmScopes").get(t);return i||null}function IT(t,{configuration:e,ident:r}){let i=r&&ET(r.scope,{configuration:e});return(i==null?void 0:i.get("npmAuthIdent"))||(i==null?void 0:i.get("npmAuthToken"))?i:kce(t,{configuration:e})||e}var jn;(function(n){n[n.NO_AUTH=0]="NO_AUTH",n[n.BEST_EFFORT=1]="BEST_EFFORT",n[n.CONFIGURATION=2]="CONFIGURATION",n[n.ALWAYS_AUTH=3]="ALWAYS_AUTH"})(jn||(jn={}));async function WA(t,{attemptedAs:e,registry:r,headers:i,configuration:n}){var s,o;if(((s=t.originalError)==null?void 0:s.name)==="HTTPError"&&((o=t.originalError)==null?void 0:o.response.statusCode)===401)throw new nt(z.AUTHENTICATION_INVALID,`Invalid authentication (${typeof e!="string"?`as ${await J6e(r,i,{configuration:n})}`:`attempted as ${e}`})`)}function W6e(t){var e;return((e=t.response)==null?void 0:e.statusCode)===404?"Package not found":null}function zA(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}async function zs(t,a){var l=a,{configuration:e,headers:r,ident:i,authType:n,registry:s}=l,o=qr(l,["configuration","headers","ident","authType","registry"]);if(i&&typeof s=="undefined"&&(s=Ya(i.scope,{configuration:e})),i&&i.scope&&typeof n=="undefined"&&(n=1),typeof s!="string")throw new Error("Assertion failed: The registry should be a string");let c=await tQ(s,{authType:n,configuration:e,ident:i});c&&(r=_(P({},r),{authorization:c}));try{return await Zt.get(t.charAt(0)==="/"?`${s}${t}`:t,P({configuration:e,headers:r},o))}catch(u){throw await WA(u,{registry:s,configuration:e,headers:r}),u}}async function z6e(t,e,c){var u=c,{attemptedAs:r,configuration:i,headers:n,ident:s,authType:o=3,registry:a}=u,l=qr(u,["attemptedAs","configuration","headers","ident","authType","registry"]);if(s&&typeof a=="undefined"&&(a=Ya(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let g=await tQ(a,{authType:o,configuration:i,ident:s});g&&(n=_(P({},n),{authorization:g}));try{return await Zt.post(a+t,e,P({configuration:i,headers:n},l))}catch(f){if(!wT(f))throw await WA(f,{attemptedAs:r,registry:a,configuration:i,headers:n}),f;let h=await yT(),p=P(P({},n),BT(h));try{return await Zt.post(`${a}${t}`,e,P({configuration:i,headers:p},l))}catch(d){throw await WA(d,{attemptedAs:r,registry:a,configuration:i,headers:n}),d}}}async function V6e(t,e,c){var u=c,{attemptedAs:r,configuration:i,headers:n,ident:s,authType:o=3,registry:a}=u,l=qr(u,["attemptedAs","configuration","headers","ident","authType","registry"]);if(s&&typeof a=="undefined"&&(a=Ya(s.scope,{configuration:i})),typeof a!="string")throw new Error("Assertion failed: The registry should be a string");let g=await tQ(a,{authType:o,configuration:i,ident:s});g&&(n=_(P({},n),{authorization:g}));try{return await Zt.put(a+t,e,P({configuration:i,headers:n},l))}catch(f){if(!wT(f))throw await WA(f,{attemptedAs:r,registry:a,configuration:i,headers:n}),f;let h=await yT(),p=P(P({},n),BT(h));try{return await Zt.put(`${a}${t}`,e,P({configuration:i,headers:p},l))}catch(d){throw await WA(d,{attemptedAs:r,registry:a,configuration:i,headers:n}),d}}}async function _6e(t,l){var c=l,{attemptedAs:e,configuration:r,headers:i,ident:n,authType:s=3,registry:o}=c,a=qr(c,["attemptedAs","configuration","headers","ident","authType","registry"]);if(n&&typeof o=="undefined"&&(o=Ya(n.scope,{configuration:r})),typeof o!="string")throw new Error("Assertion failed: The registry should be a string");let u=await tQ(o,{authType:s,configuration:r,ident:n});u&&(i=_(P({},i),{authorization:u}));try{return await Zt.del(o+t,P({configuration:r,headers:i},a))}catch(g){if(!wT(g))throw await WA(g,{attemptedAs:e,registry:o,configuration:r,headers:i}),g;let f=await yT(),h=P(P({},i),BT(f));try{return await Zt.del(`${o}${t}`,P({configuration:r,headers:h},a))}catch(p){throw await WA(p,{attemptedAs:e,registry:o,configuration:r,headers:i}),p}}}async function tQ(t,{authType:e=2,configuration:r,ident:i}){let n=IT(t,{configuration:r,ident:i}),s=X6e(n,e);if(!s)return null;let o=await r.reduceHook(a=>a.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:i});if(o)return o;if(n.get("npmAuthToken"))return`Bearer ${n.get("npmAuthToken")}`;if(n.get("npmAuthIdent")){let a=n.get("npmAuthIdent");return a.includes(":")?`Basic ${Buffer.from(a).toString("base64")}`:`Basic ${a}`}if(s&&e!==1)throw new nt(z.AUTHENTICATION_NOT_FOUND,"No authentication configured for request");return null}function X6e(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function J6e(t,e,{configuration:r}){var i;if(typeof e=="undefined"||typeof e.authorization=="undefined")return"an anonymous user";try{return(i=(await Zt.get(new Dce.URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username)!=null?i:"an unknown user"}catch{return"an unknown user"}}async function yT(){if(process.env.TEST_ENV)return process.env.TEST_NPM_2FA_TOKEN||"";let{otp:t}=await(0,Pce.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return t}function wT(t){var e,r;if(((e=t.originalError)==null?void 0:e.name)!=="HTTPError")return!1;try{return((r=t.originalError)==null?void 0:r.response.headers["www-authenticate"].split(/,\s*/).map(n=>n.toLowerCase())).includes("otp")}catch(i){return!1}}function BT(t){return{["npm-otp"]:t}}var QT=class{supports(e,r){if(!e.reference.startsWith(ir))return!1;let{selector:i,params:n}=S.parseRange(e.reference);return!(!Rce.default.valid(i)||n===null||typeof n.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let{params:i}=S.parseRange(e.reference);if(i===null||typeof i.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let n=await zs(i.__archiveUrl,{configuration:r.project.configuration,ident:e});return await Ai.convertToZip(n,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1})}};var bT=class{supportsDescriptor(e,r){return!(!e.range.startsWith(ir)||!S.tryParseDescriptor(e.range.slice(ir.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){let i=S.parseDescriptor(e.range.slice(ir.length),!0);return r.resolver.getResolutionDependencies(i,r)}async getCandidates(e,r,i){let n=S.parseDescriptor(e.range.slice(ir.length),!0);return await i.resolver.getCandidates(n,r,i)}async getSatisfying(e,r,i){let n=S.parseDescriptor(e.range.slice(ir.length),!0);return i.resolver.getSatisfying(n,r,i)}resolve(e,r){throw new Error("Unreachable")}};var vT=ie(Or()),Fce=ie(require("url"));var Vs=class{supports(e,r){if(!e.reference.startsWith(ir))return!1;let i=new Fce.URL(e.reference);return!(!vT.default.valid(i.pathname)||i.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),checksum:o}}async fetchFromNetwork(e,r){let i;try{i=await zs(Vs.getLocatorUrl(e),{configuration:r.project.configuration,ident:e})}catch(n){i=await zs(Vs.getLocatorUrl(e).replace(/%2f/g,"/"),{configuration:r.project.configuration,ident:e})}return await Ai.convertToZip(i,{compressionLevel:r.project.configuration.get("compressionLevel"),prefixPath:S.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:i}){let n=Ya(e.scope,{configuration:i}),s=Vs.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),n=n.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===n+s||r===n+s.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=vT.default.clean(e.reference.slice(ir.length));if(r===null)throw new nt(z.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");return`${zA(e)}/-/${e.name}-${r}.tgz`}};var ST=ie(Or());var rQ=S.makeIdent(null,"node-gyp"),Z6e=/\b(node-gyp|prebuild-install)\b/,xT=class{supportsDescriptor(e,r){return e.range.startsWith(ir)?!!qt.validRange(e.range.slice(ir.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(ir))return!1;let{selector:i}=S.parseRange(e.reference);return!!ST.default.valid(i)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=qt.validRange(e.range.slice(ir.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(ir.length)}`);let s=await zs(zA(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0}),o=de.mapAndFilter(Object.keys(s.versions),c=>{try{let u=new qt.SemVer(c);if(n.test(u))return u}catch{}return de.mapAndFilter.skip}),a=o.filter(c=>!s.versions[c.raw].deprecated),l=a.length>0?a:o;return l.sort((c,u)=>-c.compare(u)),l.map(c=>{let u=S.makeLocator(e,`${ir}${c.raw}`),g=s.versions[c.raw].dist.tarball;return Vs.isConventionalTarballUrl(u,g,{configuration:i.project.configuration})?u:S.bindLocator(u,{__archiveUrl:g})})}async getSatisfying(e,r,i){let n=qt.validRange(e.range.slice(ir.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(ir.length)}`);return de.mapAndFilter(r,s=>{try{let{selector:o}=S.parseRange(s,{requireProtocol:ir}),a=new qt.SemVer(o);if(n.test(a))return{reference:s,version:a}}catch{}return de.mapAndFilter.skip}).sort((s,o)=>-s.version.compare(o.version)).map(({reference:s})=>S.makeLocator(e,s))}async resolve(e,r){let{selector:i}=S.parseRange(e.reference),n=ST.default.clean(i);if(n===null)throw new nt(z.RESOLVER_NOT_FOUND,"The npm semver resolver got selected, but the version isn't semver");let s=await zs(zA(e),{configuration:r.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"versions"))throw new nt(z.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(!Object.prototype.hasOwnProperty.call(s.versions,n))throw new nt(z.REMOTE_NOT_FOUND,`Registry failed to return reference "${n}"`);let o=new Ze;if(o.load(s.versions[n]),!o.dependencies.has(rQ.identHash)&&!o.peerDependencies.has(rQ.identHash)){for(let a of o.scripts.values())if(a.match(Z6e)){o.dependencies.set(rQ.identHash,S.makeDescriptor(rQ,"latest")),r.report.reportWarningOnce(z.NODE_GYP_INJECTED,`${S.prettyLocator(r.project.configuration,e)}: Implicit dependencies on node-gyp are discouraged`);break}}return typeof o.raw.deprecated=="string"&&r.report.reportWarningOnce(z.DEPRECATED_PACKAGE,`${S.prettyLocator(r.project.configuration,e)} is deprecated: ${o.raw.deprecated}`),_(P({},e),{version:n,languageName:"node",linkType:gt.HARD,conditions:o.getConditions(),dependencies:o.dependencies,peerDependencies:o.peerDependencies,dependenciesMeta:o.dependenciesMeta,peerDependenciesMeta:o.peerDependenciesMeta,bin:o.bin})}};var kT=class{supportsDescriptor(e,r){return!(!e.range.startsWith(ir)||!Rg.test(e.range.slice(ir.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,i){return e}getResolutionDependencies(e,r){return[]}async getCandidates(e,r,i){let n=e.range.slice(ir.length),s=await zs(zA(e),{configuration:i.project.configuration,ident:e,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(s,"dist-tags"))throw new nt(z.REMOTE_INVALID,'Registry returned invalid data - missing "dist-tags" field');let o=s["dist-tags"];if(!Object.prototype.hasOwnProperty.call(o,n))throw new nt(z.REMOTE_NOT_FOUND,`Registry failed to return tag "${n}"`);let a=o[n],l=S.makeLocator(e,`${ir}${a}`),c=s.versions[a].dist.tarball;return Vs.isConventionalTarballUrl(l,c,{configuration:i.project.configuration})?[l]:[S.bindLocator(l,{__archiveUrl:c})]}async getSatisfying(e,r,i){return null}async resolve(e,r){throw new Error("Unreachable")}};var Rf={};it(Rf,{getGitHead:()=>_7e,makePublishBody:()=>V7e});var CM={};it(CM,{default:()=>D7e,packUtils:()=>za});var za={};it(za,{genPackList:()=>QQ,genPackStream:()=>dM,genPackageManifest:()=>age,hasPackScripts:()=>hM,prepareForPack:()=>pM});var fM=ie(Nn()),sge=ie(nge()),oge=ie(require("zlib")),I7e=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],y7e=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function hM(t){return!!(Kt.hasWorkspaceScript(t,"prepack")||Kt.hasWorkspaceScript(t,"postpack"))}async function pM(t,{report:e},r){await Kt.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let i=v.join(t.cwd,Ze.fileName);await T.existsPromise(i)&&await t.manifest.loadFile(i,{baseFs:T}),await r()}finally{await Kt.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function dM(t,e){var s,o;typeof e=="undefined"&&(e=await QQ(t));let r=new Set;for(let a of(o=(s=t.manifest.publishConfig)==null?void 0:s.executableFiles)!=null?o:new Set)r.add(v.normalize(a));for(let a of t.manifest.bin.values())r.add(v.normalize(a));let i=sge.default.pack();process.nextTick(async()=>{for(let a of e){let l=v.normalize(a),c=v.resolve(t.cwd,l),u=v.join("package",l),g=await T.lstatPromise(c),f={name:u,mtime:new Date(mr.SAFE_TIME*1e3)},h=r.has(l)?493:420,p,d,m=new Promise((B,b)=>{p=B,d=b}),I=B=>{B?d(B):p()};if(g.isFile()){let B;l==="package.json"?B=Buffer.from(JSON.stringify(await age(t),null,2)):B=await T.readFilePromise(c),i.entry(_(P({},f),{mode:h,type:"file"}),B,I)}else g.isSymbolicLink()?i.entry(_(P({},f),{mode:h,type:"symlink",linkname:await T.readlinkPromise(c)}),I):I(new Error(`Unsupported file type ${g.mode} for ${M.fromPortablePath(l)}`));await m}i.finalize()});let n=(0,oge.createGzip)();return i.pipe(n),n}async function age(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function QQ(t){var g,f,h,p,d,m,I,B;let e=t.project,r=e.configuration,i={accept:[],reject:[]};for(let b of y7e)i.reject.push(b);for(let b of I7e)i.accept.push(b);i.reject.push(r.get("rcFilename"));let n=b=>{if(b===null||!b.startsWith(`${t.cwd}/`))return;let R=v.relative(t.cwd,b),H=v.resolve(Se.root,R);i.reject.push(H)};n(v.resolve(e.cwd,r.get("lockfileFilename"))),n(r.get("cacheFolder")),n(r.get("globalFolder")),n(r.get("installStatePath")),n(r.get("virtualFolder")),n(r.get("yarnPath")),await r.triggerHook(b=>b.populateYarnPaths,e,b=>{n(b)});for(let b of e.workspaces){let R=v.relative(t.cwd,b.cwd);R!==""&&!R.match(/^(\.\.)?\//)&&i.reject.push(`/${R}`)}let s={accept:[],reject:[]},o=(f=(g=t.manifest.publishConfig)==null?void 0:g.main)!=null?f:t.manifest.main,a=(p=(h=t.manifest.publishConfig)==null?void 0:h.module)!=null?p:t.manifest.module,l=(m=(d=t.manifest.publishConfig)==null?void 0:d.browser)!=null?m:t.manifest.browser,c=(B=(I=t.manifest.publishConfig)==null?void 0:I.bin)!=null?B:t.manifest.bin;o!=null&&s.accept.push(v.resolve(Se.root,o)),a!=null&&s.accept.push(v.resolve(Se.root,a)),typeof l=="string"&&s.accept.push(v.resolve(Se.root,l));for(let b of c.values())s.accept.push(v.resolve(Se.root,b));if(l instanceof Map)for(let[b,R]of l.entries())s.accept.push(v.resolve(Se.root,b)),typeof R=="string"&&s.accept.push(v.resolve(Se.root,R));let u=t.manifest.files!==null;if(u){s.reject.push("/*");for(let b of t.manifest.files)Age(s.accept,b,{cwd:Se.root})}return await w7e(t.cwd,{hasExplicitFileList:u,globalList:i,ignoreList:s})}async function w7e(t,{hasExplicitFileList:e,globalList:r,ignoreList:i}){let n=[],s=new Zo(t),o=[[Se.root,[i]]];for(;o.length>0;){let[a,l]=o.pop(),c=await s.lstatPromise(a);if(!cge(a,{globalList:r,ignoreLists:c.isDirectory()?null:l}))if(c.isDirectory()){let u=await s.readdirPromise(a),g=!1,f=!1;if(!e||a!==Se.root)for(let d of u)g=g||d===".gitignore",f=f||d===".npmignore";let h=f?await lge(s,a,".npmignore"):g?await lge(s,a,".gitignore"):null,p=h!==null?[h].concat(l):l;cge(a,{globalList:r,ignoreLists:l})&&(p=[...l,{accept:[],reject:["**/*"]}]);for(let d of u)o.push([v.resolve(a,d),p])}else(c.isFile()||c.isSymbolicLink())&&n.push(v.relative(Se.root,a))}return n.sort()}async function lge(t,e,r){let i={accept:[],reject:[]},n=await t.readFilePromise(v.join(e,r),"utf8");for(let s of n.split(/\n/g))Age(i.reject,s,{cwd:e});return i}function B7e(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=v.resolve(e,t)),r&&(t=`!${t}`),t}function Age(t,e,{cwd:r}){let i=e.trim();i===""||i[0]==="#"||t.push(B7e(i,{cwd:r}))}function cge(t,{globalList:e,ignoreLists:r}){if(bQ(t,e.accept))return!1;if(bQ(t,e.reject))return!0;if(r!==null)for(let i of r){if(bQ(t,i.accept))return!1;if(bQ(t,i.reject))return!0}return!1}function bQ(t,e){let r=e,i=[];for(let n=0;n{await pM(i,{report:l},async()=>{l.reportJson({base:M.fromPortablePath(i.cwd)});let c=await QQ(i);for(let u of c)l.reportInfo(null,M.fromPortablePath(u)),l.reportJson({location:M.fromPortablePath(u)});if(!this.dryRun){let u=await dM(i,c),g=T.createWriteStream(s);u.pipe(g),await new Promise(f=>{g.on("finish",f)})}}),this.dryRun||(l.reportInfo(z.UNNAMED,`Package archive generated in ${ue.pretty(e,s,ue.Type.PATH)}`),l.reportJson({output:M.fromPortablePath(s)}))})).exitCode()}};fm.paths=[["pack"]],fm.usage=ye.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});var gge=fm;function Q7e(t,{workspace:e}){let r=t.replace("%s",b7e(e)).replace("%v",v7e(e));return M.toPortablePath(r)}function b7e(t){return t.manifest.name!==null?S.slugifyIdent(t.manifest.name):"package"}function v7e(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var S7e=["dependencies","devDependencies","peerDependencies"],x7e="workspace:",k7e=(t,e)=>{var i,n;e.publishConfig&&(e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let s of S7e)for(let o of t.manifest.getForScope(s).values()){let a=r.tryWorkspaceByDescriptor(o),l=S.parseRange(o.range);if(l.protocol===x7e)if(a===null){if(r.tryWorkspaceByIdent(o)===null)throw new nt(z.WORKSPACE_NOT_FOUND,`${S.prettyDescriptor(r.configuration,o)}: No local workspace found for this range`)}else{let c;S.areDescriptorsEqual(o,a.anchoredDescriptor)||l.selector==="*"?c=(i=a.manifest.version)!=null?i:"0.0.0":l.selector==="~"||l.selector==="^"?c=`${l.selector}${(n=a.manifest.version)!=null?n:"0.0.0"}`:c=l.selector,e[s][S.stringifyIdent(o)]=c}}},P7e={hooks:{beforeWorkspacePacking:k7e},commands:[gge]},D7e=P7e;var yge=ie(require("crypto")),wge=ie(Ige()),Bge=ie(require("url"));async function V7e(t,e,{access:r,tag:i,registry:n,gitHead:s}){let o=t.project.configuration,a=t.manifest.name,l=t.manifest.version,c=S.stringifyIdent(a),u=(0,yge.createHash)("sha1").update(e).digest("hex"),g=wge.default.fromData(e).toString();typeof r=="undefined"&&(t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?r=t.manifest.publishConfig.access:o.get("npmPublishAccess")!==null?r=o.get("npmPublishAccess"):a.scope?r="restricted":r="public");let f=await za.genPackageManifest(t),h=`${c}-${l}.tgz`,p=new Bge.URL(`${To(n)}/${c}/-/${h}`);return{_id:c,_attachments:{[h]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:c,access:r,["dist-tags"]:{[i]:l},versions:{[l]:_(P({},f),{_id:`${c}@${l}`,name:c,version:l,gitHead:s,dist:{shasum:u,integrity:g,tarball:p.toString()}})}}}async function _7e(t){try{let{stdout:e}=await hr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}var wM={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:ge.BOOLEAN,default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:ge.SECRET,default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:ge.SECRET,default:null}},Qge={npmAuditRegistry:{description:"Registry to query for audit reports",type:ge.STRING,default:null},npmPublishRegistry:{description:"Registry to push packages to",type:ge.STRING,default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:ge.STRING,default:"https://registry.yarnpkg.com"}},X7e={configuration:_(P(P({},wM),Qge),{npmScopes:{description:"Settings per package scope",type:ge.MAP,valueDefinition:{description:"",type:ge.SHAPE,properties:P(P({},wM),Qge)}},npmRegistries:{description:"Settings per registry",type:ge.MAP,normalizeKeys:To,valueDefinition:{description:"",type:ge.SHAPE,properties:P({},wM)}}}),fetchers:[QT,Vs],resolvers:[bT,xT,kT]},Z7e=X7e;var vM={};it(vM,{default:()=>a_e});Ss();var Ho;(function(i){i.All="all",i.Production="production",i.Development="development"})(Ho||(Ho={}));var Xs;(function(s){s.Info="info",s.Low="low",s.Moderate="moderate",s.High="high",s.Critical="critical"})(Xs||(Xs={}));var vQ=[Xs.Info,Xs.Low,Xs.Moderate,Xs.High,Xs.Critical];function bge(t,e){let r=[],i=new Set,n=o=>{i.has(o)||(i.add(o),r.push(o))};for(let o of e)n(o);let s=new Set;for(;r.length>0;){let o=r.shift(),a=t.storedResolutions.get(o);if(typeof a=="undefined")throw new Error("Assertion failed: Expected the resolution to have been registered");let l=t.storedPackages.get(a);if(!!l){s.add(o);for(let c of l.dependencies.values())n(c.descriptorHash)}}return s}function $7e(t,e){return new Set([...t].filter(r=>!e.has(r)))}function e_e(t,e,{all:r}){let i=r?t.workspaces:[e],n=i.map(f=>f.manifest),s=new Set(n.map(f=>[...f.dependencies].map(([h,p])=>h)).flat()),o=new Set(n.map(f=>[...f.devDependencies].map(([h,p])=>h)).flat()),a=i.map(f=>[...f.dependencies.values()]).flat(),l=a.filter(f=>s.has(f.identHash)).map(f=>f.descriptorHash),c=a.filter(f=>o.has(f.identHash)).map(f=>f.descriptorHash),u=bge(t,l),g=bge(t,c);return $7e(g,u)}function vge(t){let e={};for(let r of t)e[S.stringifyIdent(r)]=S.parseRange(r.range).selector;return e}function Sge(t){if(typeof t=="undefined")return new Set;let e=vQ.indexOf(t),r=vQ.slice(e);return new Set(r)}function t_e(t,e){let r=Sge(e),i={};for(let n of r)i[n]=t[n];return i}function xge(t,e){var i;let r=t_e(t,e);for(let n of Object.keys(r))if((i=r[n])!=null?i:0>0)return!0;return!1}function kge(t,e){var s;let r={},i={children:r},n=Object.values(t.advisories);if(e!=null){let o=Sge(e);n=n.filter(a=>o.has(a.severity))}for(let o of de.sortMap(n,a=>a.module_name))r[o.module_name]={label:o.module_name,value:ue.tuple(ue.Type.RANGE,o.findings.map(a=>a.version).join(", ")),children:{Issue:{label:"Issue",value:ue.tuple(ue.Type.NO_HINT,o.title)},URL:{label:"URL",value:ue.tuple(ue.Type.URL,o.url)},Severity:{label:"Severity",value:ue.tuple(ue.Type.NO_HINT,o.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:ue.tuple(ue.Type.RANGE,o.vulnerable_versions)},["Patched Versions"]:{label:"Patched Versions",value:ue.tuple(ue.Type.RANGE,o.patched_versions)},Via:{label:"Via",value:ue.tuple(ue.Type.NO_HINT,Array.from(new Set(o.findings.map(a=>a.paths).flat().map(a=>a.split(">")[0]))).join(", "))},Recommendation:{label:"Recommendation",value:ue.tuple(ue.Type.NO_HINT,(s=o.recommendation)==null?void 0:s.replace(/\n/g," "))}}};return i}function Pge(t,e,{all:r,environment:i}){let n=r?t.workspaces:[e],s=[Ho.All,Ho.Production].includes(i),o=[];if(s)for(let c of n)for(let u of c.manifest.dependencies.values())o.push(u);let a=[Ho.All,Ho.Development].includes(i),l=[];if(a)for(let c of n)for(let u of c.manifest.devDependencies.values())l.push(u);return vge([...o,...l].filter(c=>S.parseRange(c.range).protocol===null))}function Dge(t,e,{all:r}){var s;let i=e_e(t,e,{all:r}),n={};for(let o of t.storedPackages.values())n[S.stringifyIdent(o)]={version:(s=o.version)!=null?s:"0.0.0",integrity:o.identHash,requires:vge(o.dependencies.values()),dev:i.has(S.convertLocatorToDescriptor(o).descriptorHash)};return n}var dm=class extends Be{constructor(){super(...arguments);this.all=Y.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=Y.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=Y.String("--environment",Ho.All,{description:"Which environments to cover",validator:Yi(Ho)});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.severity=Y.String("--severity",Xs.Info,{description:"Minimal severity requested for packages to be displayed",validator:Yi(Xs)})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState();let n=Pge(r,i,{all:this.all,environment:this.environment}),s=Dge(r,i,{all:this.all});if(!this.recursive)for(let f of Object.keys(s))Object.prototype.hasOwnProperty.call(n,f)?s[f].requires={}:delete s[f];let o={requires:n,dependencies:s},a=gr.getAuditRegistry(i.manifest,{configuration:e}),l,c=await Fa.start({configuration:e,stdout:this.context.stdout},async()=>{l=await Lt.post("/-/npm/v1/security/audits/quick",o,{authType:Lt.AuthType.BEST_EFFORT,configuration:e,jsonResponse:!0,registry:a})});if(c.hasErrors())return c.exitCode();let u=xge(l.metadata.vulnerabilities,this.severity);return!this.json&&u?(Hs.emitTree(kge(l,this.severity),{configuration:e,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Fe.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async f=>{f.reportJson(l),u||f.reportInfo(z.EXCEPTION,"No audit suggestions")})).exitCode()}};dm.paths=[["npm","audit"]],dm.usage=ye.Usage({description:"perform a vulnerability audit against the installed packages",details:` - This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). - - For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. - - Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${vQ.map(e=>`\`${e}\``).join(", ")}. - - If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. - - To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why \` to get more information as to who depends on them. - `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"]]});var Rge=dm;var BM=ie(Or()),QM=ie(require("util")),Cm=class extends Be{constructor(){super(...arguments);this.fields=Y.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=Y.Rest()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r}=await Ke.find(e,this.context.cwd),i=typeof this.fields!="undefined"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],s=!1,o=await Fe.start({configuration:e,includeFooter:!1,json:this.json,stdout:this.context.stdout},async a=>{for(let l of this.packages){let c;if(l==="."){let b=r.topLevelWorkspace;if(!b.manifest.name)throw new me(`Missing 'name' field in ${M.fromPortablePath(v.join(b.cwd,wt.manifest))}`);c=S.makeDescriptor(b.manifest.name,"unknown")}else c=S.parseDescriptor(l);let u=Lt.getIdentUrl(c),g=bM(await Lt.get(u,{configuration:e,ident:c,jsonResponse:!0,customErrorMessage:Lt.customPackageError})),f=Object.keys(g.versions).sort(BM.default.compareLoose),p=g["dist-tags"].latest||f[f.length-1],d=qt.validRange(c.range);if(d){let b=BM.default.maxSatisfying(f,d);b!==null?p=b:(a.reportWarning(z.UNNAMED,`Unmet range ${S.prettyRange(e,c.range)}; falling back to the latest version`),s=!0)}else c.range!=="unknown"&&(a.reportWarning(z.UNNAMED,`Invalid range ${S.prettyRange(e,c.range)}; falling back to the latest version`),s=!0);let m=g.versions[p],I=_(P(P({},g),m),{version:p,versions:f}),B;if(i!==null){B={};for(let b of i){let R=I[b];if(typeof R!="undefined")B[b]=R;else{a.reportWarning(z.EXCEPTION,`The '${b}' field doesn't exist inside ${S.prettyIdent(e,c)}'s informations`),s=!0;continue}}}else this.json||(delete I.dist,delete I.readme,delete I.users),B=I;a.reportJson(B),this.json||n.push(B)}});QM.inspect.styles.name="cyan";for(let a of n)(a!==n[0]||s)&&this.context.stdout.write(` -`),this.context.stdout.write(`${(0,QM.inspect)(a,{depth:Infinity,colors:!0,compact:!1})} -`);return o.exitCode()}};Cm.paths=[["npm","info"]],Cm.usage=ye.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command will fetch information about a package from the npm registry, and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package informations.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react 16.12.0","yarn npm info react@16.12.0"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});var Fge=Cm;function bM(t){if(Array.isArray(t)){let e=[];for(let r of t)r=bM(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let i=bM(t[r]);i&&(e[r]=i)}return e}else return t||null}var Nge=ie(aC()),mm=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Login to the publish registry"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{let s=await i_e({registry:r,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),o=`/-/user/org.couchdb.user:${encodeURIComponent(s.name)}`,a=await Lt.put(o,s,{attemptedAs:s.name,configuration:e,registry:r,jsonResponse:!0,authType:Lt.AuthType.NO_AUTH});return await r_e(r,a.token,{configuration:e,scope:this.scope}),n.reportInfo(z.UNNAMED,"Successfully logged in")})).exitCode()}};mm.paths=[["npm","login"]],mm.usage=ye.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});var Lge=mm;async function SQ({scope:t,publish:e,configuration:r,cwd:i}){return t&&e?gr.getScopeRegistry(t,{configuration:r,type:gr.RegistryType.PUBLISH_REGISTRY}):t?gr.getScopeRegistry(t,{configuration:r}):e?gr.getPublishRegistry((await rf(r,i)).manifest,{configuration:r}):gr.getDefaultRegistry({configuration:r})}async function r_e(t,e,{configuration:r,scope:i}){let n=o=>a=>{let l=de.isIndexableObject(a)?a:{},c=l[o],u=de.isIndexableObject(c)?c:{};return _(P({},l),{[o]:_(P({},u),{npmAuthToken:e})})},s=i?{npmScopes:n(i)}:{npmRegistries:n(t)};return await fe.updateHomeConfiguration(s)}async function i_e({registry:t,report:e,stdin:r,stdout:i}){if(process.env.TEST_ENV)return{name:process.env.TEST_NPM_USER||"",password:process.env.TEST_NPM_PASSWORD||""};e.reportInfo(z.UNNAMED,`Logging in to ${t}`);let n=!1;t.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(e.reportInfo(z.UNNAMED,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),e.reportSeparator();let{username:s,password:o}=await(0,Nge.prompt)([{type:"input",name:"username",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:r,stdout:i}]);return e.reportSeparator(),{name:s,password:o}}var Ff=new Set(["npmAuthIdent","npmAuthToken"]),Em=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=Y.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r=async()=>{var l;let n=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),s=await fe.find(this.context.cwd,this.context.plugins),o=S.makeIdent((l=this.scope)!=null?l:null,"pkg");return!gr.getAuthConfiguration(n,{configuration:s,ident:o}).get("npmAuthToken")};return(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{if(this.all&&(await n_e(),n.reportInfo(z.UNNAMED,"Successfully logged out from everything")),this.scope){await Tge("npmScopes",this.scope),await r()?n.reportInfo(z.UNNAMED,`Successfully logged out from ${this.scope}`):n.reportWarning(z.UNNAMED,"Scope authentication settings removed, but some other ones settings still apply to it");return}let s=await SQ({configuration:e,cwd:this.context.cwd,publish:this.publish});await Tge("npmRegistries",s),await r()?n.reportInfo(z.UNNAMED,`Successfully logged out from ${s}`):n.reportWarning(z.UNNAMED,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};Em.paths=[["npm","logout"]],Em.usage=ye.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});var Mge=Em;function s_e(t,e){let r=t[e];if(!de.isIndexableObject(r))return!1;let i=new Set(Object.keys(r));if([...Ff].every(s=>!i.has(s)))return!1;for(let s of Ff)i.delete(s);if(i.size===0)return t[e]=void 0,!0;let n=P({},r);for(let s of Ff)delete n[s];return t[e]=n,!0}async function n_e(){let t=e=>{let r=!1,i=de.isIndexableObject(e)?P({},e):{};i.npmAuthToken&&(delete i.npmAuthToken,r=!0);for(let n of Object.keys(i))s_e(i,n)&&(r=!0);if(Object.keys(i).length!==0)return r?i:e};return await fe.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function Tge(t,e){return await fe.updateHomeConfiguration({[t]:r=>{let i=de.isIndexableObject(r)?r:{};if(!Object.prototype.hasOwnProperty.call(i,e))return r;let n=i[e],s=de.isIndexableObject(n)?n:{},o=new Set(Object.keys(s));if([...Ff].every(l=>!o.has(l)))return r;for(let l of Ff)o.delete(l);if(o.size===0)return Object.keys(i).length===1?void 0:_(P({},i),{[e]:void 0});let a={};for(let l of Ff)a[l]=void 0;return _(P({},i),{[e]:P(P({},s),a)})}})}var Im=class extends Be{constructor(){super(...arguments);this.access=Y.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=Y.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=Y.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);if(i.manifest.private)throw new me("Private workspaces cannot be published");if(i.manifest.name===null||i.manifest.version===null)throw new me("Workspaces must have valid names and versions to be published on an external registry");await r.restoreInstallState();let n=i.manifest.name,s=i.manifest.version,o=gr.getPublishRegistry(i.manifest,{configuration:e});return(await Fe.start({configuration:e,stdout:this.context.stdout},async l=>{var c,u;if(this.tolerateRepublish)try{let g=await Lt.get(Lt.getIdentUrl(n),{configuration:e,registry:o,ident:n,jsonResponse:!0});if(!Object.prototype.hasOwnProperty.call(g,"versions"))throw new nt(z.REMOTE_INVALID,'Registry returned invalid data for - missing "versions" field');if(Object.prototype.hasOwnProperty.call(g.versions,s)){l.reportWarning(z.UNNAMED,`Registry already knows about version ${s}; skipping.`);return}}catch(g){if(((u=(c=g.originalError)==null?void 0:c.response)==null?void 0:u.statusCode)!==404)throw g}await Kt.maybeExecuteWorkspaceLifecycleScript(i,"prepublish",{report:l}),await za.prepareForPack(i,{report:l},async()=>{let g=await za.genPackList(i);for(let m of g)l.reportInfo(null,m);let f=await za.genPackStream(i,g),h=await de.bufferStream(f),p=await Rf.getGitHead(i.cwd),d=await Rf.makePublishBody(i,h,{access:this.access,tag:this.tag,registry:o,gitHead:p});await Lt.put(Lt.getIdentUrl(n),d,{configuration:e,registry:o,ident:n,jsonResponse:!0})}),l.reportInfo(z.UNNAMED,"Package archive published")})).exitCode()}};Im.paths=[["npm","publish"]],Im.usage=ye.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});var Oge=Im;var Uge=ie(Or());var ym=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=Y.String({required:!1})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n;if(typeof this.package!="undefined")n=S.parseIdent(this.package);else{if(!i)throw new rt(r.cwd,this.context.cwd);if(!i.manifest.name)throw new me(`Missing 'name' field in ${M.fromPortablePath(v.join(i.cwd,wt.manifest))}`);n=i.manifest.name}let s=await wm(n,e),a={children:de.sortMap(Object.entries(s),([l])=>l).map(([l,c])=>({value:ue.tuple(ue.Type.RESOLUTION,{descriptor:S.makeDescriptor(n,l),locator:S.makeLocator(n,c)})}))};return Hs.emitTree(a,{configuration:e,json:this.json,stdout:this.context.stdout})}};ym.paths=[["npm","tag","list"]],ym.usage=ye.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` - This command will list all tags of a package from the npm registry. - - If the package is not specified, Yarn will default to the current workspace. - `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});var Kge=ym;async function wm(t,e){let r=`/-/package${Lt.getIdentUrl(t)}/dist-tags`;return Lt.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:Lt.customPackageError})}var Bm=class extends Be{constructor(){super(...arguments);this.package=Y.String();this.tag=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);let n=S.parseDescriptor(this.package,!0),s=n.range;if(!Uge.default.valid(s))throw new me(`The range ${ue.pretty(e,n.range,ue.Type.RANGE)} must be a valid semver version`);let o=gr.getPublishRegistry(i.manifest,{configuration:e}),a=ue.pretty(e,n,ue.Type.IDENT),l=ue.pretty(e,s,ue.Type.RANGE),c=ue.pretty(e,this.tag,ue.Type.CODE);return(await Fe.start({configuration:e,stdout:this.context.stdout},async g=>{let f=await wm(n,e);Object.prototype.hasOwnProperty.call(f,this.tag)&&f[this.tag]===s&&g.reportWarning(z.UNNAMED,`Tag ${c} is already set to version ${l}`);let h=`/-/package${Lt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Lt.put(h,s,{configuration:e,registry:o,ident:n,jsonRequest:!0,jsonResponse:!0}),g.reportInfo(z.UNNAMED,`Tag ${c} added to version ${l} of package ${a}`)})).exitCode()}};Bm.paths=[["npm","tag","add"]],Bm.usage=ye.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` - This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. - `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});var Hge=Bm;var Qm=class extends Be{constructor(){super(...arguments);this.package=Y.String();this.tag=Y.String()}async execute(){if(this.tag==="latest")throw new me("The 'latest' tag cannot be removed.");let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);let n=S.parseIdent(this.package),s=gr.getPublishRegistry(i.manifest,{configuration:e}),o=ue.pretty(e,this.tag,ue.Type.CODE),a=ue.pretty(e,n,ue.Type.IDENT),l=await wm(n,e);if(!Object.prototype.hasOwnProperty.call(l,this.tag))throw new me(`${o} is not a tag of package ${a}`);return(await Fe.start({configuration:e,stdout:this.context.stdout},async u=>{let g=`/-/package${Lt.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Lt.del(g,{configuration:e,registry:s,ident:n,jsonResponse:!0}),u.reportInfo(z.UNNAMED,`Tag ${o} removed from package ${a}`)})).exitCode()}};Qm.paths=[["npm","tag","remove"]],Qm.usage=ye.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` - This command will remove a tag from a package from the npm registry. - `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});var Gge=Qm;var bm=class extends Be{constructor(){super(...arguments);this.scope=Y.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=Y.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),r;return this.scope&&this.publish?r=gr.getScopeRegistry(this.scope,{configuration:e,type:gr.RegistryType.PUBLISH_REGISTRY}):this.scope?r=gr.getScopeRegistry(this.scope,{configuration:e}):this.publish?r=gr.getPublishRegistry((await rf(e,this.context.cwd)).manifest,{configuration:e}):r=gr.getDefaultRegistry({configuration:e}),(await Fe.start({configuration:e,stdout:this.context.stdout},async n=>{var o,a;let s;try{s=await Lt.get("/-/whoami",{configuration:e,registry:r,authType:Lt.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?S.makeIdent(this.scope,""):void 0})}catch(l){if(((o=l.response)==null?void 0:o.statusCode)===401||((a=l.response)==null?void 0:a.statusCode)===403){n.reportError(z.AUTHENTICATION_INVALID,"Authentication failed - your credentials may have expired");return}else throw l}n.reportInfo(z.UNNAMED,s.username)})).exitCode()}};bm.paths=[["npm","whoami"]],bm.usage=ye.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var jge=bm;var o_e={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:ge.STRING,default:null}},commands:[Rge,Fge,Lge,Mge,Oge,Hge,Kge,Gge,jge]},a_e=o_e;var NM={};it(NM,{default:()=>B_e,patchUtils:()=>SM});var SM={};it(SM,{applyPatchFile:()=>PQ,diffFolders:()=>DM,extractPackageToDisk:()=>PM,extractPatchFlags:()=>Xge,isParentRequired:()=>kM,loadPatchFiles:()=>km,makeDescriptor:()=>I_e,makeLocator:()=>xM,parseDescriptor:()=>Sm,parseLocator:()=>xm,parsePatchFile:()=>kQ});var vm=class extends Error{constructor(e,r){super(`Cannot apply hunk #${e+1}`);this.hunk=r}};var A_e=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function Nf(t){return v.relative(Se.root,v.resolve(Se.root,M.toPortablePath(t)))}function l_e(t){let e=t.trim().match(A_e);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var c_e=420,u_e=493,Lr;(function(i){i.Context="context",i.Insertion="insertion",i.Deletion="deletion"})(Lr||(Lr={}));var Yge=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),g_e=t=>({header:l_e(t),parts:[]}),f_e={["@"]:"header",["-"]:Lr.Deletion,["+"]:Lr.Insertion,[" "]:Lr.Context,["\\"]:"pragma",undefined:Lr.Context};function p_e(t){let e=[],r=Yge(),i="parsing header",n=null,s=null;function o(){n&&(s&&(n.parts.push(s),s=null),r.hunks.push(n),n=null)}function a(){o(),e.push(r),r=Yge()}for(let l=0;l0?"patch":"mode change",B=null;switch(I){case"rename":{if(!u||!g)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:i,fromPath:Nf(u),toPath:Nf(g)}),B=g}break;case"file deletion":{let b=n||p;if(!b)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:i,hunk:m&&m[0]||null,path:Nf(b),mode:xQ(l),hash:f})}break;case"file creation":{let b=s||d;if(!b)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:i,hunk:m&&m[0]||null,path:Nf(b),mode:xQ(c),hash:h})}break;case"patch":case"mode change":B=d||s;break;default:de.assertNever(I);break}B&&o&&a&&o!==a&&e.push({type:"mode change",semverExclusivity:i,path:Nf(B),oldMode:xQ(o),newMode:xQ(a)}),B&&m&&m.length&&e.push({type:"patch",semverExclusivity:i,path:Nf(B),hunks:m,beforeHash:f,afterHash:h})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function xQ(t){let e=parseInt(t,8)&511;if(e!==c_e&&e!==u_e)throw new Error(`Unexpected file mode string: ${t}`);return e}function kQ(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),d_e(p_e(e))}function h_e(t){let e=0,r=0;for(let{type:i,lines:n}of t.parts)switch(i){case Lr.Context:r+=n.length,e+=n.length;break;case Lr.Deletion:e+=n.length;break;case Lr.Insertion:r+=n.length;break;default:de.assertNever(i);break}if(e!==t.header.original.length||r!==t.header.patched.length){let i=n=>n<0?n:`+${n}`;throw new Error(`hunk header integrity check failed (expected @@ ${i(t.header.original.length)} ${i(t.header.patched.length)} @@, got @@ ${i(e)} ${i(r)} @@)`)}}async function Lf(t,e,r){let i=await t.lstatPromise(e),n=await r();if(typeof n!="undefined"&&(e=n),t.lutimesPromise)await t.lutimesPromise(e,i.atime,i.mtime);else if(!i.isSymbolicLink())await t.utimesPromise(e,i.atime,i.mtime);else throw new Error("Cannot preserve the time values of a symlink")}async function PQ(t,{baseFs:e=new Wt,dryRun:r=!1,version:i=null}={}){for(let n of t)if(!(n.semverExclusivity!==null&&i!==null&&!qt.satisfiesWithPrereleases(i,n.semverExclusivity)))switch(n.type){case"file deletion":if(r){if(!e.existsSync(n.path))throw new Error(`Trying to delete a file that doesn't exist: ${n.path}`)}else await Lf(e,v.dirname(n.path),async()=>{await e.unlinkPromise(n.path)});break;case"rename":if(r){if(!e.existsSync(n.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${n.fromPath}`)}else await Lf(e,v.dirname(n.fromPath),async()=>{await Lf(e,v.dirname(n.toPath),async()=>{await Lf(e,n.fromPath,async()=>(await e.movePromise(n.fromPath,n.toPath),n.toPath))})});break;case"file creation":if(r){if(e.existsSync(n.path))throw new Error(`Trying to create a file that already exists: ${n.path}`)}else{let s=n.hunk?n.hunk.parts[0].lines.join(` -`)+(n.hunk.parts[0].noNewlineAtEndOfFile?"":` -`):"";await e.mkdirpPromise(v.dirname(n.path),{chmod:493,utimes:[mr.SAFE_TIME,mr.SAFE_TIME]}),await e.writeFilePromise(n.path,s,{mode:n.mode}),await e.utimesPromise(n.path,mr.SAFE_TIME,mr.SAFE_TIME)}break;case"patch":await Lf(e,n.path,async()=>{await C_e(n,{baseFs:e,dryRun:r})});break;case"mode change":{let o=(await e.statPromise(n.path)).mode;if(qge(n.newMode)!==qge(o))continue;await Lf(e,n.path,async()=>{await e.chmodPromise(n.path,n.newMode)})}break;default:de.assertNever(n);break}}function qge(t){return(t&64)>0}function Jge(t){return t.replace(/\s+$/,"")}function m_e(t,e){return Jge(t)===Jge(e)}async function C_e({hunks:t,path:e},{baseFs:r,dryRun:i=!1}){let n=await r.statSync(e).mode,o=(await r.readFileSync(e,"utf8")).split(/\n/),a=[],l=0,c=0;for(let g of t){let f=Math.max(c,g.header.patched.start+l),h=Math.max(0,f-c),p=Math.max(0,o.length-f-g.header.original.length),d=Math.max(h,p),m=0,I=0,B=null;for(;m<=d;){if(m<=h&&(I=f-m,B=Wge(g,o,I),B!==null)){m=-m;break}if(m<=p&&(I=f+m,B=Wge(g,o,I),B!==null))break;m+=1}if(B===null)throw new vm(t.indexOf(g),g);a.push(B),l+=m,c=I+g.header.original.length}if(i)return;let u=0;for(let g of a)for(let f of g)switch(f.type){case"splice":{let h=f.index+u;o.splice(h,f.numToDelete,...f.linesToInsert),u+=f.linesToInsert.length-f.numToDelete}break;case"pop":o.pop();break;case"push":o.push(f.line);break;default:de.assertNever(f);break}await r.writeFilePromise(e,o.join(` -`),{mode:n})}function Wge(t,e,r){let i=[];for(let n of t.parts)switch(n.type){case Lr.Context:case Lr.Deletion:{for(let s of n.lines){let o=e[r];if(o==null||!m_e(o,s))return null;r+=1}n.type===Lr.Deletion&&(i.push({type:"splice",index:r-n.lines.length,numToDelete:n.lines.length,linesToInsert:[]}),n.noNewlineAtEndOfFile&&i.push({type:"push",line:""}))}break;case Lr.Insertion:i.push({type:"splice",index:r,numToDelete:0,linesToInsert:n.lines}),n.noNewlineAtEndOfFile&&i.push({type:"pop"});break;default:de.assertNever(n.type);break}return i}var E_e=/^builtin<([^>]+)>$/;function zge(t,e){let{source:r,selector:i,params:n}=S.parseRange(t);if(r===null)throw new Error("Patch locators must explicitly define their source");let s=i?i.split(/&/).map(c=>M.toPortablePath(c)):[],o=n&&typeof n.locator=="string"?S.parseLocator(n.locator):null,a=n&&typeof n.version=="string"?n.version:null,l=e(r);return{parentLocator:o,sourceItem:l,patchPaths:s,sourceVersion:a}}function Sm(t){let i=zge(t.range,S.parseDescriptor),{sourceItem:e}=i,r=qr(i,["sourceItem"]);return _(P({},r),{sourceDescriptor:e})}function xm(t){let i=zge(t.reference,S.parseLocator),{sourceItem:e}=i,r=qr(i,["sourceItem"]);return _(P({},r),{sourceLocator:e})}function Vge({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:i,patchHash:n},s){let o=t!==null?{locator:S.stringifyLocator(t)}:{},a=typeof i!="undefined"?{version:i}:{},l=typeof n!="undefined"?{hash:n}:{};return S.makeRange({protocol:"patch:",source:s(e),selector:r.join("&"),params:P(P(P({},a),l),o)})}function I_e(t,{parentLocator:e,sourceDescriptor:r,patchPaths:i}){return S.makeLocator(t,Vge({parentLocator:e,sourceItem:r,patchPaths:i},S.stringifyDescriptor))}function xM(t,{parentLocator:e,sourcePackage:r,patchPaths:i,patchHash:n}){return S.makeLocator(t,Vge({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:i,patchHash:n},S.stringifyLocator))}function _ge({onAbsolute:t,onRelative:e,onBuiltin:r},i){i.startsWith("~")&&(i=i.slice(1));let s=i.match(E_e);return s!==null?r(s[1]):v.isAbsolute(i)?t(i):e(i)}function Xge(t){let e=t.startsWith("~");return e&&(t=t.slice(1)),{optional:e}}function kM(t){return _ge({onAbsolute:()=>!1,onRelative:()=>!0,onBuiltin:()=>!1},t)}async function km(t,e,r){let i=t!==null?await r.fetcher.fetch(t,r):null,n=i&&i.localPath?{packageFs:new Ft(Se.root),prefixPath:v.relative(Se.root,i.localPath)}:i;i&&i!==n&&i.releaseFs&&i.releaseFs();let s=await de.releaseAfterUseAsync(async()=>await Promise.all(e.map(async o=>{let a=Xge(o),l=await _ge({onAbsolute:async()=>await T.readFilePromise(o,"utf8"),onRelative:async()=>{if(n===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await n.packageFs.readFilePromise(v.join(n.prefixPath,o),"utf8")},onBuiltin:async c=>await r.project.configuration.firstHook(u=>u.getBuiltinPatch,r.project,c)},o);return _(P({},a),{source:l})})));for(let o of s)typeof o.source=="string"&&(o.source=o.source.replace(/\r\n?/g,` -`));return s}async function PM(t,{cache:e,project:r}){let i=r.storedPackages.get(t.locatorHash);if(typeof i=="undefined")throw new Error("Assertion failed: Expected the package to be registered");let n=r.storedChecksums,s=new ei,o=r.configuration.makeFetcher(),a=await o.fetch(t,{cache:e,project:r,fetcher:o,checksums:n,report:s}),l=await T.mktempPromise(),c=v.join(l,"source"),u=v.join(l,"user"),g=v.join(l,".yarn-patch.json");return await Promise.all([T.copyPromise(c,a.prefixPath,{baseFs:a.packageFs}),T.copyPromise(u,a.prefixPath,{baseFs:a.packageFs}),T.writeJsonPromise(g,{locator:S.stringifyLocator(t),version:i.version})]),T.detachTemp(l),u}async function DM(t,e){let r=M.fromPortablePath(t).replace(/\\/g,"/"),i=M.fromPortablePath(e).replace(/\\/g,"/"),{stdout:n,stderr:s}=await hr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--text",r,i],{cwd:M.toPortablePath(process.cwd()),env:_(P({},process.env),{GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""})});if(s.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. -The following error was reported by 'git': -${s}`);let o=r.startsWith("/")?a=>a.slice(1):a=>a;return n.replace(new RegExp(`(a|b)(${de.escapeRegExp(`/${o(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${de.escapeRegExp(`/${o(i)}/`)}`,"g"),"$1/").replace(new RegExp(de.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(de.escapeRegExp(`${i}/`),"g"),"")}function Zge(t,{configuration:e,report:r}){for(let i of t.parts)for(let n of i.lines)switch(i.type){case Lr.Context:r.reportInfo(null,` ${ue.pretty(e,n,"grey")}`);break;case Lr.Deletion:r.reportError(z.FROZEN_LOCKFILE_EXCEPTION,`- ${ue.pretty(e,n,ue.Type.REMOVED)}`);break;case Lr.Insertion:r.reportError(z.FROZEN_LOCKFILE_EXCEPTION,`+ ${ue.pretty(e,n,ue.Type.ADDED)}`);break;default:de.assertNever(i.type)}}var RM=class{supports(e,r){return!!e.reference.startsWith("patch:")}getLocalPath(e,r){return null}async fetch(e,r){let i=r.checksums.get(e.locatorHash)||null,[n,s,o]=await r.cache.fetchPackageFromCache(e,i,P({onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${S.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),skipIntegrityCheck:r.skipIntegrityCheck},r.cacheOptions));return{packageFs:n,releaseFs:s,prefixPath:S.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:o}}async patchPackage(e,r){let{parentLocator:i,sourceLocator:n,sourceVersion:s,patchPaths:o}=xm(e),a=await km(i,o,r),l=await T.mktempPromise(),c=v.join(l,"current.zip"),u=await r.fetcher.fetch(n,r),g=S.getIdentVendorPath(e),f=await $i(),h=new Jr(c,{libzip:f,create:!0,level:r.project.configuration.get("compressionLevel")});await de.releaseAfterUseAsync(async()=>{await h.copyPromise(g,u.prefixPath,{baseFs:u.packageFs,stableSort:!0})},u.releaseFs),h.saveAndClose();for(let{source:p,optional:d}of a){if(p===null)continue;let m=new Jr(c,{libzip:f,level:r.project.configuration.get("compressionLevel")}),I=new Ft(v.resolve(Se.root,g),{baseFs:m});try{await PQ(kQ(p),{baseFs:I,version:s})}catch(B){if(!(B instanceof vm))throw B;let b=r.project.configuration.get("enableInlineHunks"),R=!b&&!d?" (set enableInlineHunks for details)":"",H=`${S.prettyLocator(r.project.configuration,e)}: ${B.message}${R}`,L=K=>{!b||Zge(B.hunk,{configuration:r.project.configuration,report:K})};if(m.discardAndClose(),d){r.report.reportWarningOnce(z.PATCH_HUNK_FAILED,H,{reportExtra:L});continue}else throw new nt(z.PATCH_HUNK_FAILED,H,L)}m.saveAndClose()}return new Jr(c,{libzip:f,level:r.project.configuration.get("compressionLevel")})}};var y_e=3,FM=class{supportsDescriptor(e,r){return!!e.range.startsWith("patch:")}supportsLocator(e,r){return!!e.reference.startsWith("patch:")}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,i){let{patchPaths:n}=Sm(e);return n.every(s=>!kM(s))?e:S.bindDescriptor(e,{locator:S.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:i}=Sm(e);return[i]}async getCandidates(e,r,i){if(!i.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:n,sourceDescriptor:s,patchPaths:o}=Sm(e),a=await km(n,o,i.fetchOptions),l=r.get(s.descriptorHash);if(typeof l=="undefined")throw new Error("Assertion failed: The dependency should have been resolved");let c=mn.makeHash(`${y_e}`,...a.map(u=>JSON.stringify(u))).slice(0,6);return[xM(e,{parentLocator:n,sourcePackage:l,patchPaths:o,patchHash:c})]}async getSatisfying(e,r,i){return null}async resolve(e,r){let{sourceLocator:i}=xm(e),n=await r.resolver.resolve(i,r);return P(P({},n),e)}};var Pm=class extends Be{constructor(){super(...arguments);this.save=Y.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState();let n=v.resolve(this.context.cwd,M.toPortablePath(this.patchFolder)),s=v.join(n,"../source"),o=v.join(n,"../.yarn-patch.json");if(!T.existsSync(s))throw new me("The argument folder didn't get created by 'yarn patch'");let a=await DM(s,n),l=await T.readJsonPromise(o),c=S.parseLocator(l.locator,!0);if(!r.storedPackages.has(c.locatorHash))throw new me("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(a);return}let u=e.get("patchFolder"),g=v.join(u,S.slugifyLocator(c));await T.mkdirPromise(u,{recursive:!0}),await T.writeFilePromise(g,a);let f=v.relative(r.cwd,g);r.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:S.stringifyIdent(c),description:l.version}},reference:`patch:${S.stringifyLocator(c)}#${f}`}),await r.persist()}};Pm.paths=[["patch-commit"]],Pm.usage=ye.Usage({description:"generate a patch out of a directory",details:"\n This will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n Only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});var $ge=Pm;var Dm=class extends Be{constructor(){super(...arguments);this.json=Y.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=Y.String()}async execute(){let e=await fe.find(this.context.cwd,this.context.plugins),{project:r,workspace:i}=await Ke.find(e,this.context.cwd),n=await Qt.find(e);if(!i)throw new rt(r.cwd,this.context.cwd);await r.restoreInstallState();let s=S.parseLocator(this.package);if(s.reference==="unknown"){let o=de.mapAndFilter([...r.storedPackages.values()],a=>a.identHash!==s.identHash?de.mapAndFilter.skip:S.isVirtualLocator(a)?de.mapAndFilter.skip:a);if(o.length===0)throw new me("No package found in the project for the given locator");if(o.length>1)throw new me(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): -${o.map(a=>` -- ${S.prettyLocator(e,a)}`).join("")}`);s=o[0]}if(!r.storedPackages.has(s.locatorHash))throw new me("No package found in the project for the given locator");await Fe.start({configuration:e,json:this.json,stdout:this.context.stdout},async o=>{let a=await PM(s,{cache:n,project:r});o.reportJson({locator:S.stringifyLocator(s),path:M.fromPortablePath(a)}),o.reportInfo(z.UNNAMED,`Package ${S.prettyLocator(e,s)} got extracted with success!`),o.reportInfo(z.UNNAMED,`You can now edit the following folder: ${ue.pretty(e,M.fromPortablePath(a),"magenta")}`),o.reportInfo(z.UNNAMED,`Once you are done run ${ue.pretty(e,`yarn patch-commit ${process.platform==="win32"?'"':""}${M.fromPortablePath(a)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};Dm.paths=[["patch"]],Dm.usage=ye.Usage({description:"prepare a package for patching",details:'\n This command will cause a package to be extracted in a temporary directory (under a folder named "patch-workdir"). This folder will be editable at will; running `yarn patch` inside it will then cause Yarn to generate a patchfile and register it into your top-level manifest (cf the `patch:` protocol).\n '});var efe=Dm;var w_e={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:ge.BOOLEAN,default:!1},patchFolder:{description:"Folder where the patch files must be written",type:ge.ABSOLUTE_PATH,default:"./.yarn/patches"}},commands:[$ge,efe],fetchers:[RM],resolvers:[FM]},B_e=w_e;var TM={};it(TM,{default:()=>S_e});var tfe=ie(Wp()),LM=class{supportsPackage(e,r){return r.project.configuration.get("nodeLinker")==="pnpm"}async findPackageLocation(e,r){return nfe(e,{project:r.project})}async findPackageLocator(e,r){let i=ife(),n=r.project.installersCustomData.get(i);if(!n)throw new me(`The project in ${ue.pretty(r.project.configuration,`${r.project.cwd}/package.json`,ue.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let s=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(s){let l=n.locatorByPath.get(s[1]);if(l)return l}let o=e,a=e;do{a=o,o=v.dirname(a);let l=n.locatorByPath.get(a);if(l)return l}while(o!==a);return null}makeInstaller(e){return new rfe(e)}},rfe=class{constructor(e){this.opts=e;this.asyncActions=new afe;this.packageLocations=new Map;this.customData={locatorByPath:new Map}}getCustomDataKey(){return ife()}attachCustomData(e){this.customData=e}async installPackage(e,r,i){switch(e.linkType){case gt.SOFT:return this.installPackageSoft(e,r,i);case gt.HARD:return this.installPackageHard(e,r,i)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,i){let n=v.resolve(r.packageFs.getRealPath(),r.prefixPath);return this.packageLocations.set(e.locatorHash,n),{packageLocation:n,buildDirective:null}}async installPackageHard(e,r,i){var u;let n=nfe(e,{project:this.opts.project});this.customData.locatorByPath.set(n,S.stringifyLocator(e)),this.packageLocations.set(e.locatorHash,n),i.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await T.mkdirPromise(n,{recursive:!0}),await T.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1})}));let o=S.isVirtualLocator(e)?S.devirtualizeLocator(e):e,a={manifest:(u=await Ze.tryFind(r.prefixPath,{baseFs:r.packageFs}))!=null?u:new Ze,misc:{hasBindingGyp:Ws.hasBindingGyp(r)}},l=this.opts.project.getDependencyMeta(o,e.version),c=Ws.extractBuildScripts(e,a,l,{configuration:this.opts.project.configuration,report:this.opts.report});return{packageLocation:n,buildDirective:c}}async attachInternalDependencies(e,r){this.opts.project.configuration.get("nodeLinker")==="pnpm"&&(!ofe(e,{project:this.opts.project})||this.asyncActions.reduce(e.locatorHash,async i=>{await i;let n=this.packageLocations.get(e.locatorHash);if(typeof n=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${S.stringifyLocator(e)})`);let s=v.join(n,wt.nodeModules);r.length>0&&await T.mkdirpPromise(s);let o=await Q_e(s),a=[];for(let[l,c]of r){let u=c;ofe(c,{project:this.opts.project})||(this.opts.report.reportWarning(z.UNNAMED,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),u=S.devirtualizeLocator(c));let g=this.packageLocations.get(u.locatorHash);if(typeof g=="undefined")throw new Error(`Assertion failed: Expected the package to have been registered (${S.stringifyLocator(c)})`);let f=S.stringifyIdent(l),h=v.join(s,f),p=v.relative(v.dirname(h),g),d=o.get(f);o.delete(f),a.push(Promise.resolve().then(async()=>{if(d){if(d.isSymbolicLink()&&await T.readlinkPromise(h)===p)return;await T.removePromise(h)}await T.mkdirpPromise(v.dirname(h)),process.platform=="win32"?await T.symlinkPromise(g,h,"junction"):await T.symlinkPromise(p,h)}))}for(let l of o.keys())a.push(T.removePromise(v.join(s,l)));await Promise.all(a)}))}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=sfe(this.opts.project),r=new Set;for(let s of this.packageLocations.values())r.add(v.basename(s));let i;try{i=await T.readdirPromise(e)}catch{i=[]}let n=[];for(let s of i)r.has(s)||n.push(T.removePromise(v.join(e,s)));await Promise.all(n),await this.asyncActions.wait()}};function ife(){return JSON.stringify({name:"PnpmInstaller",version:1})}function sfe(t){return v.join(t.cwd,wt.nodeModules,".store")}function nfe(t,{project:e}){let r=S.slugifyLocator(t);return v.join(sfe(e),r)}function ofe(t,{project:e}){return!S.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function Q_e(t){let e=new Map,r=[];try{r=await T.readdirPromise(t,{withFileTypes:!0})}catch(i){if(i.code!=="ENOENT")throw i}try{for(let i of r)if(!i.name.startsWith("."))if(i.name.startsWith("@"))for(let n of await T.readdirPromise(v.join(t,i.name),{withFileTypes:!0}))e.set(`${i.name}/${n.name}`,n);else e.set(i.name,i)}catch(i){if(i.code!=="ENOENT")throw i}return e}function b_e(){let t,e;return{promise:new Promise((i,n)=>{t=i,e=n}),resolve:t,reject:e}}var afe=class{constructor(){this.deferred=new Map;this.promises=new Map;this.limit=(0,tfe.default)(10)}set(e,r){let i=this.deferred.get(e);typeof i=="undefined"&&this.deferred.set(e,i=b_e());let n=this.limit(()=>r());return this.promises.set(e,n),n.then(()=>{this.promises.get(e)===n&&i.resolve()},s=>{this.promises.get(e)===n&&i.reject(s)}),i.promise}reduce(e,r){var n;let i=(n=this.promises.get(e))!=null?n:Promise.resolve();this.set(e,()=>r(i))}async wait(){await Promise.all(this.promises.values())}};var v_e={linkers:[LM]},S_e=v_e;var F0=()=>({modules:new Map([["@yarnpkg/cli",iC],["@yarnpkg/core",Fd],["@yarnpkg/fslib",ch],["@yarnpkg/libzip",Fp],["@yarnpkg/parsers",Hp],["@yarnpkg/shell",jp],["clipanion",F$(vh)],["semver",x_e],["typanion",lu],["yup",k_e],["@yarnpkg/plugin-essentials",hL],["@yarnpkg/plugin-compat",mL],["@yarnpkg/plugin-dlx",EL],["@yarnpkg/plugin-file",xL],["@yarnpkg/plugin-git",fL],["@yarnpkg/plugin-github",PL],["@yarnpkg/plugin-http",FL],["@yarnpkg/plugin-init",ML],["@yarnpkg/plugin-link",GL],["@yarnpkg/plugin-nm",mT],["@yarnpkg/plugin-npm",yM],["@yarnpkg/plugin-npm-cli",vM],["@yarnpkg/plugin-pack",CM],["@yarnpkg/plugin-patch",NM],["@yarnpkg/plugin-pnp",oT],["@yarnpkg/plugin-pnpm",TM]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-dlx","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm"])});i0({binaryVersion:Zr||"",pluginConfiguration:F0()});})(); -/*! - * buildToken - * Builds OAuth token prefix (helper function) - * - * @name buildToken - * @function - * @param {GitUrl} obj The parsed Git url object. - * @return {String} token prefix - */ -/*! - * fill-range - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Licensed under the MIT License. - */ -/*! - * is-extglob - * - * Copyright (c) 2014-2016, Jon Schlinkert. - * Licensed under the MIT License. - */ -/*! - * is-glob - * - * Copyright (c) 2014-2017, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * is-number - * - * Copyright (c) 2014-present, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * is-windows - * - * Copyright © 2015-2018, Jon Schlinkert. - * Released under the MIT License. - */ -/*! - * to-regex-range - * - * Copyright (c) 2015-present, Jon Schlinkert. - * Released under the MIT License. - */ diff --git a/.yarn/releases/yarn-4.6.0.cjs b/.yarn/releases/yarn-4.6.0.cjs new file mode 100755 index 00000000..fe63e51e --- /dev/null +++ b/.yarn/releases/yarn-4.6.0.cjs @@ -0,0 +1,934 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var j3e=Object.create;var gT=Object.defineProperty;var G3e=Object.getOwnPropertyDescriptor;var W3e=Object.getOwnPropertyNames;var Y3e=Object.getPrototypeOf,K3e=Object.prototype.hasOwnProperty;var ve=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var It=(t,e)=>()=>(t&&(e=t(t=0)),e);var _=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Kt=(t,e)=>{for(var r in e)gT(t,r,{get:e[r],enumerable:!0})},V3e=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of W3e(e))!K3e.call(t,a)&&a!==r&&gT(t,a,{get:()=>e[a],enumerable:!(o=G3e(e,a))||o.enumerable});return t};var et=(t,e,r)=>(r=t!=null?j3e(Y3e(t)):{},V3e(e||!t||!t.__esModule?gT(r,"default",{value:t,enumerable:!0}):r,t));var Pi={};Kt(Pi,{SAFE_TIME:()=>cW,S_IFDIR:()=>VD,S_IFLNK:()=>JD,S_IFMT:()=>Hu,S_IFREG:()=>ow});var Hu,VD,ow,JD,cW,uW=It(()=>{Hu=61440,VD=16384,ow=32768,JD=40960,cW=456789e3});var sr={};Kt(sr,{EBADF:()=>ho,EBUSY:()=>J3e,EEXIST:()=>t8e,EINVAL:()=>X3e,EISDIR:()=>e8e,ENOENT:()=>Z3e,ENOSYS:()=>z3e,ENOTDIR:()=>$3e,ENOTEMPTY:()=>n8e,EOPNOTSUPP:()=>i8e,EROFS:()=>r8e,ERR_DIR_CLOSED:()=>dT});function Ll(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function J3e(t){return Ll("EBUSY",t)}function z3e(t,e){return Ll("ENOSYS",`${t}, ${e}`)}function X3e(t){return Ll("EINVAL",`invalid argument, ${t}`)}function ho(t){return Ll("EBADF",`bad file descriptor, ${t}`)}function Z3e(t){return Ll("ENOENT",`no such file or directory, ${t}`)}function $3e(t){return Ll("ENOTDIR",`not a directory, ${t}`)}function e8e(t){return Ll("EISDIR",`illegal operation on a directory, ${t}`)}function t8e(t){return Ll("EEXIST",`file already exists, ${t}`)}function r8e(t){return Ll("EROFS",`read-only filesystem, ${t}`)}function n8e(t){return Ll("ENOTEMPTY",`directory not empty, ${t}`)}function i8e(t){return Ll("EOPNOTSUPP",`operation not supported, ${t}`)}function dT(){return Ll("ERR_DIR_CLOSED","Directory handle was closed")}var zD=It(()=>{});var wa={};Kt(wa,{BigIntStatsEntry:()=>cm,DEFAULT_MODE:()=>ET,DirEntry:()=>mT,StatEntry:()=>lm,areStatsEqual:()=>CT,clearStats:()=>XD,convertToBigIntStats:()=>o8e,makeDefaultStats:()=>AW,makeEmptyStats:()=>s8e});function AW(){return new lm}function s8e(){return XD(AW())}function XD(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):yT.types.isDate(r)&&(t[e]=new Date(0))}return t}function o8e(t){let e=new cm;for(let r in t)if(Object.hasOwn(t,r)){let o=t[r];typeof o=="number"?e[r]=BigInt(o):yT.types.isDate(o)&&(e[r]=new Date(o))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function CT(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,o=e;return!(r.atimeNs!==o.atimeNs||r.mtimeNs!==o.mtimeNs||r.ctimeNs!==o.ctimeNs||r.birthtimeNs!==o.birthtimeNs)}var yT,ET,mT,lm,cm,IT=It(()=>{yT=et(ve("util")),ET=33188,mT=class{constructor(){this.name="";this.path="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},lm=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=ET;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},cm=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(ET);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function A8e(t){let e,r;if(e=t.match(c8e))t=e[1];else if(r=t.match(u8e))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function f8e(t){t=t.replace(/\\/g,"/");let e,r;return(e=t.match(a8e))?t=`/${e[1]}`:(r=t.match(l8e))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function ZD(t,e){return t===Ae?pW(e):wT(e)}var aw,Bt,mr,Ae,K,fW,a8e,l8e,c8e,u8e,wT,pW,Ba=It(()=>{aw=et(ve("path")),Bt={root:"/",dot:".",parent:".."},mr={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},Ae=Object.create(aw.default),K=Object.create(aw.default.posix);Ae.cwd=()=>process.cwd();K.cwd=process.platform==="win32"?()=>wT(process.cwd()):process.cwd;process.platform==="win32"&&(K.resolve=(...t)=>t.length>0&&K.isAbsolute(t[0])?aw.default.posix.resolve(...t):aw.default.posix.resolve(K.cwd(),...t));fW=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};Ae.contains=(t,e)=>fW(Ae,t,e);K.contains=(t,e)=>fW(K,t,e);a8e=/^([a-zA-Z]:.*)$/,l8e=/^\/\/(\.\/)?(.*)$/,c8e=/^\/([a-zA-Z]:.*)$/,u8e=/^\/unc\/(\.dot\/)?(.*)$/;wT=process.platform==="win32"?f8e:t=>t,pW=process.platform==="win32"?A8e:t=>t;Ae.fromPortablePath=pW;Ae.toPortablePath=wT});async function $D(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.indexPath,{recursive:!0});let o=[];for(let a of r)for(let n of r)o.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(o),e.indexPath}async function hW(t,e,r,o,a){let n=t.pathUtils.normalize(e),u=r.pathUtils.normalize(o),A=[],p=[],{atime:h,mtime:E}=a.stableTime?{atime:H0,mtime:H0}:await r.lstatPromise(u);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,E]}),await BT(A,p,t,n,r,u,{...a,didParentExist:!0});for(let w of A)await w();await Promise.all(p.map(w=>w()))}async function BT(t,e,r,o,a,n,u){let A=u.didParentExist?await gW(r,o):null,p=await a.lstatPromise(n),{atime:h,mtime:E}=u.stableTime?{atime:H0,mtime:H0}:p,w;switch(!0){case p.isDirectory():w=await h8e(t,e,r,o,A,a,n,p,u);break;case p.isFile():w=await m8e(t,e,r,o,A,a,n,p,u);break;case p.isSymbolicLink():w=await y8e(t,e,r,o,A,a,n,p,u);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(u.linkStrategy?.type!=="HardlinkFromIndex"||!p.isFile())&&((w||A?.mtime?.getTime()!==E.getTime()||A?.atime?.getTime()!==h.getTime())&&(e.push(()=>r.lutimesPromise(o,h,E)),w=!0),(A===null||(A.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(o,p.mode&511)),w=!0)),w}async function gW(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function h8e(t,e,r,o,a,n,u,A,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(o,{mode:A.mode})}catch(D){if(D.code!=="EEXIST")throw D}}),h=!0);let E=await n.readdirPromise(u),w=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let D of E.sort())await BT(t,e,r,r.pathUtils.join(o,D),n,n.pathUtils.join(u,D),w)&&(h=!0);else(await Promise.all(E.map(async x=>{await BT(t,e,r,r.pathUtils.join(o,x),n,n.pathUtils.join(u,x),w)}))).some(x=>x)&&(h=!0);return h}async function g8e(t,e,r,o,a,n,u,A,p,h){let E=await n.checksumFilePromise(u,{algorithm:"sha1"}),w=420,D=A.mode&511,x=`${E}${D!==w?D.toString(8):""}`,C=r.pathUtils.join(h.indexPath,E.slice(0,2),`${x}.dat`),T;(ue=>(ue[ue.Lock=0]="Lock",ue[ue.Rename=1]="Rename"))(T||={});let L=1,U=await gW(r,C);if(a){let le=U&&a.dev===U.dev&&a.ino===U.ino,ce=U?.mtimeMs!==p8e;if(le&&ce&&h.autoRepair&&(L=0,U=null),!le)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1}let J=!U&&L===1?`${C}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,te=!1;return t.push(async()=>{if(!U&&(L===0&&await r.lockPromise(C,async()=>{let le=await n.readFilePromise(u);await r.writeFilePromise(C,le)}),L===1&&J)){let le=await n.readFilePromise(u);await r.writeFilePromise(J,le);try{await r.linkPromise(J,C)}catch(ce){if(ce.code==="EEXIST")te=!0,await r.unlinkPromise(J);else throw ce}}a||await r.linkPromise(C,o)}),e.push(async()=>{U||(await r.lutimesPromise(C,H0,H0),D!==w&&await r.chmodPromise(C,D)),J&&!te&&await r.unlinkPromise(J)}),!1}async function d8e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(u);await r.writeFilePromise(o,h)}),!0}async function m8e(t,e,r,o,a,n,u,A,p){return p.linkStrategy?.type==="HardlinkFromIndex"?g8e(t,e,r,o,a,n,u,A,p,p.linkStrategy):d8e(t,e,r,o,a,n,u,A,p)}async function y8e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(ZD(r.pathUtils,await n.readlinkPromise(u)),o)}),!0}var H0,p8e,vT=It(()=>{Ba();H0=new Date(456789e3*1e3),p8e=H0.getTime()});function eP(t,e,r,o){let a=()=>{let n=r.shift();if(typeof n>"u")return null;let u=t.pathUtils.join(e,n);return Object.assign(t.statSync(u),{name:n,path:void 0})};return new lw(e,a,o)}var lw,dW=It(()=>{zD();lw=class{constructor(e,r,o={}){this.path=e;this.nextDirent=r;this.opts=o;this.closed=!1}throwIfClosed(){if(this.closed)throw dT()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){this.throwIfClosed(),this.opts.onClose?.(),this.closed=!0}}});function mW(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var yW,tP,EW=It(()=>{yW=ve("events");IT();tP=class t extends yW.EventEmitter{constructor(r,o,{bigint:a=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=o,this.bigint=a,this.lastStats=this.stat()}static create(r,o,a){let n=new t(r,o,a);return n.start(),n}start(){mW(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){mW(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let o=this.bigint?new cm:new lm;return XD(o)}}makeInterval(r){let o=setInterval(()=>{let a=this.stat(),n=this.lastStats;CT(a,n)||(this.lastStats=a,this.emit("change",a,n))},r.interval);return r.persistent?o:o.unref()}registerChangeListener(r,o){this.addListener("change",r),this.changeListeners.set(r,this.makeInterval(o))}unregisterChangeListener(r){this.removeListener("change",r);let o=this.changeListeners.get(r);typeof o<"u"&&clearInterval(o),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function um(t,e,r,o){let a,n,u,A;switch(typeof r){case"function":a=!1,n=!0,u=5007,A=r;break;default:({bigint:a=!1,persistent:n=!0,interval:u=5007}=r),A=o;break}let p=rP.get(t);typeof p>"u"&&rP.set(t,p=new Map);let h=p.get(e);return typeof h>"u"&&(h=tP.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(A,{persistent:n,interval:u}),h}function q0(t,e,r){let o=rP.get(t);if(typeof o>"u")return;let a=o.get(e);typeof a>"u"||(typeof r>"u"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),o.delete(e)))}function j0(t){let e=rP.get(t);if(!(typeof e>"u"))for(let r of e.keys())q0(t,r)}var rP,DT=It(()=>{EW();rP=new WeakMap});function E8e(t){let e=t.match(/\r?\n/g);if(e===null)return IW.EOL;let r=e.filter(a=>a===`\r +`).length,o=e.length-r;return r>o?`\r +`:` +`}function G0(t,e){return e.replace(/\r?\n/g,E8e(t))}var CW,IW,hf,qu,W0=It(()=>{CW=ve("crypto"),IW=ve("os");vT();Ba();hf=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let o=[e];for(;o.length>0;){let a=o.shift();if((await this.lstatPromise(a)).isDirectory()){let u=await this.readdirPromise(a);if(r)for(let A of u.sort())o.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let o=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,CW.createHash)(r),A=0;for(;(A=await this.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await this.closePromise(o)}}async removePromise(e,{recursive:r=!0,maxRetries:o=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(u=>this.removePromise(this.pathUtils.resolve(e,u))))}for(let n=0;n<=o;n++)try{await this.rmdirPromise(e);break}catch(u){if(u.code!=="EBUSY"&&u.code!=="ENOTEMPTY")throw u;nsetTimeout(A,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let o;try{o=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(o.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&await this.chmodPromise(A,r),o!=null)await this.utimesPromise(A,o[0],o[1]);else{let p=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&this.chmodSync(A,r),o!=null)this.utimesSync(A,o[0],o[1]);else{let p=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:o=this,overwrite:a=!0,stableSort:n=!1,stableTime:u=!1,linkStrategy:A=null}={}){return await hW(this,e,o,r,{overwrite:a,stableSort:n,stableTime:u,linkStrategy:A})}copySync(e,r,{baseFs:o=this,overwrite:a=!0}={}){let n=o.lstatSync(r),u=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=o.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),o.pathUtils.join(r,h),{baseFs:o,overwrite:a})}else if(n.isFile()){if(!u||a){u&&this.removeSync(e);let p=o.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!u||a){u&&this.removeSync(e);let p=o.readlinkSync(r);this.symlinkSync(ZD(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let A=n.mode&511;this.chmodSync(e,A)}async changeFilePromise(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,o):this.changeFileTextPromise(e,r,o)}async changeFileBufferPromise(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:o})}async changeFileTextPromise(e,r,{automaticNewlines:o,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let u=o?G0(n,r):r;n!==u&&await this.writeFilePromise(e,u,{mode:a})}changeFileSync(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,o):this.changeFileTextSync(e,r,o)}changeFileBufferSync(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:o})}changeFileTextSync(e,r,{automaticNewlines:o=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let u=o?G0(n,r):r;n!==u&&this.writeFileSync(e,u,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(o){if(o.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw o}}moveSync(e,r){try{this.renameSync(e,r)}catch(o){if(o.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw o}}async lockPromise(e,r){let o=`${e}.flock`,a=1e3/60,n=Date.now(),u=null,A=async()=>{let p;try{[p]=await this.readJsonPromise(o)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;u===null;)try{u=await this.openPromise(o,"wx")}catch(p){if(p.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(o);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${o})`)}else throw p}await this.writePromise(u,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(u),await this.unlinkPromise(o)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}async writeJsonPromise(e,r,{compact:o=!1}={}){let a=o?0:2;return await this.writeFilePromise(e,`${JSON.stringify(r,null,a)} +`)}writeJsonSync(e,r,{compact:o=!1}={}){let a=o?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)} +`)}async preserveTimePromise(e,r){let o=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,o.atime,o.mtime)}async preserveTimeSync(e,r){let o=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,o.atime,o.mtime)}},qu=class extends hf{constructor(){super(K)}}});var ws,gf=It(()=>{W0();ws=class extends hf{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,o){return this.baseFs.openPromise(this.mapToBase(e),r,o)}openSync(e,r,o){return this.baseFs.openSync(this.mapToBase(e),r,o)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,o,a,n){return await this.baseFs.readPromise(e,r,o,a,n)}readSync(e,r,o,a,n){return this.baseFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,o):await this.baseFs.writePromise(e,r,o,a,n)}writeSync(e,r,o,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,o):this.baseFs.writeSync(e,r,o,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,o){return this.baseFs.fchownPromise(e,r,o)}fchownSync(e,r,o){return this.baseFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return this.baseFs.chownPromise(this.mapToBase(e),r,o)}chownSync(e,r,o){return this.baseFs.chownSync(this.mapToBase(e),r,o)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,o=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),o)}copyFileSync(e,r,o=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),o)}async appendFilePromise(e,r,o){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,o)}appendFileSync(e,r,o){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,o)}async writeFilePromise(e,r,o){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,o)}writeFileSync(e,r,o){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,o)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,o){return this.baseFs.utimesPromise(this.mapToBase(e),r,o)}utimesSync(e,r,o){return this.baseFs.utimesSync(this.mapToBase(e),r,o)}async lutimesPromise(e,r,o){return this.baseFs.lutimesPromise(this.mapToBase(e),r,o)}lutimesSync(e,r,o){return this.baseFs.lutimesSync(this.mapToBase(e),r,o)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async rmPromise(e,r){return this.baseFs.rmPromise(this.mapToBase(e),r)}rmSync(e,r){return this.baseFs.rmSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(u,a,o)}symlinkSync(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(u,a,o)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,o){return this.baseFs.watch(this.mapToBase(e),r,o)}watchFile(e,r,o){return this.baseFs.watchFile(this.mapToBase(e),r,o)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}}});var ju,wW=It(()=>{gf();ju=class extends ws{constructor(e,{baseFs:r,pathUtils:o}){super(o),this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}});function BW(t){let e=t;return typeof t.path=="string"&&(e.path=Ae.toPortablePath(t.path)),e}var vW,_n,Y0=It(()=>{vW=et(ve("fs"));W0();Ba();_n=class extends qu{constructor(e=vW.default){super(),this.realFs=e}getExtractHint(){return!1}getRealPath(){return Bt.root}resolve(e){return K.resolve(e)}async openPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.open(Ae.fromPortablePath(e),r,o,this.makeCallback(a,n))})}openSync(e,r,o){return this.realFs.openSync(Ae.fromPortablePath(e),r,o)}async opendirPromise(e,r){return await new Promise((o,a)=>{typeof r<"u"?this.realFs.opendir(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.opendir(Ae.fromPortablePath(e),this.makeCallback(o,a))}).then(o=>{let a=o;return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a})}opendirSync(e,r){let a=typeof r<"u"?this.realFs.opendirSync(Ae.fromPortablePath(e),r):this.realFs.opendirSync(Ae.fromPortablePath(e));return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a}async readPromise(e,r,o=0,a=0,n=-1){return await new Promise((u,A)=>{this.realFs.read(e,r,o,a,n,(p,h)=>{p?A(p):u(h)})})}readSync(e,r,o,a,n){return this.realFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return await new Promise((u,A)=>typeof r=="string"?this.realFs.write(e,r,o,this.makeCallback(u,A)):this.realFs.write(e,r,o,a,n,this.makeCallback(u,A)))}writeSync(e,r,o,a,n){return typeof r=="string"?this.realFs.writeSync(e,r,o):this.realFs.writeSync(e,r,o,a,n)}async closePromise(e){await new Promise((r,o)=>{this.realFs.close(e,this.makeCallback(r,o))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let o=e!==null?Ae.fromPortablePath(e):e;return this.realFs.createReadStream(o,r)}createWriteStream(e,r){let o=e!==null?Ae.fromPortablePath(e):e;return this.realFs.createWriteStream(o,r)}async realpathPromise(e){return await new Promise((r,o)=>{this.realFs.realpath(Ae.fromPortablePath(e),{},this.makeCallback(r,o))}).then(r=>Ae.toPortablePath(r))}realpathSync(e){return Ae.toPortablePath(this.realFs.realpathSync(Ae.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(Ae.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(Ae.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((o,a)=>{this.realFs.access(Ae.fromPortablePath(e),r,this.makeCallback(o,a))})}existsSync(e){return this.realFs.existsSync(Ae.fromPortablePath(e))}async statPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.stat(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.stat(Ae.fromPortablePath(e),this.makeCallback(o,a))})}statSync(e,r){return r?this.realFs.statSync(Ae.fromPortablePath(e),r):this.realFs.statSync(Ae.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.fstat(e,r,this.makeCallback(o,a)):this.realFs.fstat(e,this.makeCallback(o,a))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.lstat(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.lstat(Ae.fromPortablePath(e),this.makeCallback(o,a))})}lstatSync(e,r){return r?this.realFs.lstatSync(Ae.fromPortablePath(e),r):this.realFs.lstatSync(Ae.fromPortablePath(e))}async fchmodPromise(e,r){return await new Promise((o,a)=>{this.realFs.fchmod(e,r,this.makeCallback(o,a))})}fchmodSync(e,r){return this.realFs.fchmodSync(e,r)}async chmodPromise(e,r){return await new Promise((o,a)=>{this.realFs.chmod(Ae.fromPortablePath(e),r,this.makeCallback(o,a))})}chmodSync(e,r){return this.realFs.chmodSync(Ae.fromPortablePath(e),r)}async fchownPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.fchown(e,r,o,this.makeCallback(a,n))})}fchownSync(e,r,o){return this.realFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.chown(Ae.fromPortablePath(e),r,o,this.makeCallback(a,n))})}chownSync(e,r,o){return this.realFs.chownSync(Ae.fromPortablePath(e),r,o)}async renamePromise(e,r){return await new Promise((o,a)=>{this.realFs.rename(Ae.fromPortablePath(e),Ae.fromPortablePath(r),this.makeCallback(o,a))})}renameSync(e,r){return this.realFs.renameSync(Ae.fromPortablePath(e),Ae.fromPortablePath(r))}async copyFilePromise(e,r,o=0){return await new Promise((a,n)=>{this.realFs.copyFile(Ae.fromPortablePath(e),Ae.fromPortablePath(r),o,this.makeCallback(a,n))})}copyFileSync(e,r,o=0){return this.realFs.copyFileSync(Ae.fromPortablePath(e),Ae.fromPortablePath(r),o)}async appendFilePromise(e,r,o){return await new Promise((a,n)=>{let u=typeof e=="string"?Ae.fromPortablePath(e):e;o?this.realFs.appendFile(u,r,o,this.makeCallback(a,n)):this.realFs.appendFile(u,r,this.makeCallback(a,n))})}appendFileSync(e,r,o){let a=typeof e=="string"?Ae.fromPortablePath(e):e;o?this.realFs.appendFileSync(a,r,o):this.realFs.appendFileSync(a,r)}async writeFilePromise(e,r,o){return await new Promise((a,n)=>{let u=typeof e=="string"?Ae.fromPortablePath(e):e;o?this.realFs.writeFile(u,r,o,this.makeCallback(a,n)):this.realFs.writeFile(u,r,this.makeCallback(a,n))})}writeFileSync(e,r,o){let a=typeof e=="string"?Ae.fromPortablePath(e):e;o?this.realFs.writeFileSync(a,r,o):this.realFs.writeFileSync(a,r)}async unlinkPromise(e){return await new Promise((r,o)=>{this.realFs.unlink(Ae.fromPortablePath(e),this.makeCallback(r,o))})}unlinkSync(e){return this.realFs.unlinkSync(Ae.fromPortablePath(e))}async utimesPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.utimes(Ae.fromPortablePath(e),r,o,this.makeCallback(a,n))})}utimesSync(e,r,o){this.realFs.utimesSync(Ae.fromPortablePath(e),r,o)}async lutimesPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.lutimes(Ae.fromPortablePath(e),r,o,this.makeCallback(a,n))})}lutimesSync(e,r,o){this.realFs.lutimesSync(Ae.fromPortablePath(e),r,o)}async mkdirPromise(e,r){return await new Promise((o,a)=>{this.realFs.mkdir(Ae.fromPortablePath(e),r,this.makeCallback(o,a))})}mkdirSync(e,r){return this.realFs.mkdirSync(Ae.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.rmdir(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.rmdir(Ae.fromPortablePath(e),this.makeCallback(o,a))})}rmdirSync(e,r){return this.realFs.rmdirSync(Ae.fromPortablePath(e),r)}async rmPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.rm(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.rm(Ae.fromPortablePath(e),this.makeCallback(o,a))})}rmSync(e,r){return this.realFs.rmSync(Ae.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((o,a)=>{this.realFs.link(Ae.fromPortablePath(e),Ae.fromPortablePath(r),this.makeCallback(o,a))})}linkSync(e,r){return this.realFs.linkSync(Ae.fromPortablePath(e),Ae.fromPortablePath(r))}async symlinkPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.symlink(Ae.fromPortablePath(e.replace(/\/+$/,"")),Ae.fromPortablePath(r),o,this.makeCallback(a,n))})}symlinkSync(e,r,o){return this.realFs.symlinkSync(Ae.fromPortablePath(e.replace(/\/+$/,"")),Ae.fromPortablePath(r),o)}async readFilePromise(e,r){return await new Promise((o,a)=>{let n=typeof e=="string"?Ae.fromPortablePath(e):e;this.realFs.readFile(n,r,this.makeCallback(o,a))})}readFileSync(e,r){let o=typeof e=="string"?Ae.fromPortablePath(e):e;return this.realFs.readFileSync(o,r)}async readdirPromise(e,r){return await new Promise((o,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(Ae.fromPortablePath(e),r,this.makeCallback(n=>o(n.map(BW)),a)):this.realFs.readdir(Ae.fromPortablePath(e),r,this.makeCallback(n=>o(n.map(Ae.toPortablePath)),a)):this.realFs.readdir(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.readdir(Ae.fromPortablePath(e),this.makeCallback(o,a))})}readdirSync(e,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(Ae.fromPortablePath(e),r).map(BW):this.realFs.readdirSync(Ae.fromPortablePath(e),r).map(Ae.toPortablePath):this.realFs.readdirSync(Ae.fromPortablePath(e),r):this.realFs.readdirSync(Ae.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,o)=>{this.realFs.readlink(Ae.fromPortablePath(e),this.makeCallback(r,o))}).then(r=>Ae.toPortablePath(r))}readlinkSync(e){return Ae.toPortablePath(this.realFs.readlinkSync(Ae.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((o,a)=>{this.realFs.truncate(Ae.fromPortablePath(e),r,this.makeCallback(o,a))})}truncateSync(e,r){return this.realFs.truncateSync(Ae.fromPortablePath(e),r)}async ftruncatePromise(e,r){return await new Promise((o,a)=>{this.realFs.ftruncate(e,r,this.makeCallback(o,a))})}ftruncateSync(e,r){return this.realFs.ftruncateSync(e,r)}watch(e,r,o){return this.realFs.watch(Ae.fromPortablePath(e),r,o)}watchFile(e,r,o){return this.realFs.watchFile(Ae.fromPortablePath(e),r,o)}unwatchFile(e,r){return this.realFs.unwatchFile(Ae.fromPortablePath(e),r)}makeCallback(e,r){return(o,a)=>{o?r(o):e(a)}}}});var En,DW=It(()=>{Y0();gf();Ba();En=class extends ws{constructor(e,{baseFs:r=new _n}={}){super(K),this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?K.normalize(e):this.baseFs.resolve(K.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}});var PW,Gu,SW=It(()=>{Y0();gf();Ba();PW=Bt.root,Gu=class extends ws{constructor(e,{baseFs:r=new _n}={}){super(K),this.target=this.pathUtils.resolve(Bt.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Bt.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(PW,e));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(PW,this.pathUtils.relative(this.target,e))}}});var Am,bW=It(()=>{gf();Am=class extends ws{constructor(r,o){super(o);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var K0,va,Gp,xW=It(()=>{K0=ve("fs");W0();Y0();DT();zD();Ba();va=4278190080,Gp=class extends qu{constructor({baseFs:r=new _n,filter:o=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:u=!0,maxAge:A=5e3,typeCheck:p=K0.constants.S_IFREG,getMountPoint:h,factoryPromise:E,factorySync:w}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=u?new Map:null,this.factoryPromise=E,this.factorySync=w,this.filter=o,this.getMountPoint=h,this.magic=a<<24,this.maxAge=A,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(j0(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.saveAndClose?.(),this.mountInstances.delete(r)}discardAndClose(){if(j0(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.discardAndClose?.(),this.mountInstances.delete(r)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,o){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,o]),a}async openPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,o,a),async(n,{subPath:u})=>this.remapFd(n,await n.openPromise(u,o,a)))}openSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,o,a),(n,{subPath:u})=>this.remapFd(n,n.openSync(u,o,a)))}async opendirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,o),async(a,{subPath:n})=>await a.opendirPromise(n,o),{requireSubpath:!1})}opendirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,o),(a,{subPath:n})=>a.opendirSync(n,o),{requireSubpath:!1})}async readPromise(r,o,a,n,u){if((r&va)!==this.magic)return await this.baseFs.readPromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw ho("read");let[p,h]=A;return await p.readPromise(h,o,a,n,u)}readSync(r,o,a,n,u){if((r&va)!==this.magic)return this.baseFs.readSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw ho("readSync");let[p,h]=A;return p.readSync(h,o,a,n,u)}async writePromise(r,o,a,n,u){if((r&va)!==this.magic)return typeof o=="string"?await this.baseFs.writePromise(r,o,a):await this.baseFs.writePromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw ho("write");let[p,h]=A;return typeof o=="string"?await p.writePromise(h,o,a):await p.writePromise(h,o,a,n,u)}writeSync(r,o,a,n,u){if((r&va)!==this.magic)return typeof o=="string"?this.baseFs.writeSync(r,o,a):this.baseFs.writeSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw ho("writeSync");let[p,h]=A;return typeof o=="string"?p.writeSync(h,o,a):p.writeSync(h,o,a,n,u)}async closePromise(r){if((r&va)!==this.magic)return await this.baseFs.closePromise(r);let o=this.fdMap.get(r);if(typeof o>"u")throw ho("close");this.fdMap.delete(r);let[a,n]=o;return await a.closePromise(n)}closeSync(r){if((r&va)!==this.magic)return this.baseFs.closeSync(r);let o=this.fdMap.get(r);if(typeof o>"u")throw ho("closeSync");this.fdMap.delete(r);let[a,n]=o;return a.closeSync(n)}createReadStream(r,o){return r===null?this.baseFs.createReadStream(r,o):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,o),(a,{archivePath:n,subPath:u})=>{let A=a.createReadStream(u,o);return A.path=Ae.fromPortablePath(this.pathUtils.join(n,u)),A})}createWriteStream(r,o){return r===null?this.baseFs.createWriteStream(r,o):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,o),(a,{subPath:n})=>a.createWriteStream(n,o))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=await this.baseFs.realpathPromise(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(Bt.root,await o.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=this.baseFs.realpathSync(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(Bt.root,o.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(o,{subPath:a})=>await o.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(o,{subPath:a})=>o.existsSync(a))}async accessPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,o),async(a,{subPath:n})=>await a.accessPromise(n,o))}accessSync(r,o){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,o),(a,{subPath:n})=>a.accessSync(n,o))}async statPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,o),async(a,{subPath:n})=>await a.statPromise(n,o))}statSync(r,o){return this.makeCallSync(r,()=>this.baseFs.statSync(r,o),(a,{subPath:n})=>a.statSync(n,o))}async fstatPromise(r,o){if((r&va)!==this.magic)return this.baseFs.fstatPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("fstat");let[n,u]=a;return n.fstatPromise(u,o)}fstatSync(r,o){if((r&va)!==this.magic)return this.baseFs.fstatSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("fstatSync");let[n,u]=a;return n.fstatSync(u,o)}async lstatPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,o),async(a,{subPath:n})=>await a.lstatPromise(n,o))}lstatSync(r,o){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,o),(a,{subPath:n})=>a.lstatSync(n,o))}async fchmodPromise(r,o){if((r&va)!==this.magic)return this.baseFs.fchmodPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("fchmod");let[n,u]=a;return n.fchmodPromise(u,o)}fchmodSync(r,o){if((r&va)!==this.magic)return this.baseFs.fchmodSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("fchmodSync");let[n,u]=a;return n.fchmodSync(u,o)}async chmodPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,o),async(a,{subPath:n})=>await a.chmodPromise(n,o))}chmodSync(r,o){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,o),(a,{subPath:n})=>a.chmodSync(n,o))}async fchownPromise(r,o,a){if((r&va)!==this.magic)return this.baseFs.fchownPromise(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw ho("fchown");let[u,A]=n;return u.fchownPromise(A,o,a)}fchownSync(r,o,a){if((r&va)!==this.magic)return this.baseFs.fchownSync(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw ho("fchownSync");let[u,A]=n;return u.fchownSync(A,o,a)}async chownPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,o,a),async(n,{subPath:u})=>await n.chownPromise(u,o,a))}chownSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,o,a),(n,{subPath:u})=>n.chownSync(u,o,a))}async renamePromise(r,o){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.renamePromise(r,o),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(a,{subPath:n})=>await this.makeCallPromise(o,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await a.renamePromise(n,A)}))}renameSync(r,o){return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.renameSync(r,o),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(a,{subPath:n})=>this.makeCallSync(o,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return a.renameSync(n,A)}))}async copyFilePromise(r,o,a=0){let n=async(u,A,p,h)=>{if(a&K0.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&K0.constants.COPYFILE_EXCL&&await this.existsPromise(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=await u.readFilePromise(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}await p.writeFilePromise(h,E)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.copyFilePromise(r,o,a),async(u,{subPath:A})=>await n(this.baseFs,r,u,A)),async(u,{subPath:A})=>await this.makeCallPromise(o,async()=>await n(u,A,this.baseFs,o),async(p,{subPath:h})=>u!==p?await n(u,A,p,h):await u.copyFilePromise(A,h,a)))}copyFileSync(r,o,a=0){let n=(u,A,p,h)=>{if(a&K0.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&K0.constants.COPYFILE_EXCL&&this.existsSync(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=u.readFileSync(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}p.writeFileSync(h,E)};return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.copyFileSync(r,o,a),(u,{subPath:A})=>n(this.baseFs,r,u,A)),(u,{subPath:A})=>this.makeCallSync(o,()=>n(u,A,this.baseFs,o),(p,{subPath:h})=>u!==p?n(u,A,p,h):u.copyFileSync(A,h,a)))}async appendFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,o,a),async(n,{subPath:u})=>await n.appendFilePromise(u,o,a))}appendFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,o,a),(n,{subPath:u})=>n.appendFileSync(u,o,a))}async writeFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,o,a),async(n,{subPath:u})=>await n.writeFilePromise(u,o,a))}writeFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,o,a),(n,{subPath:u})=>n.writeFileSync(u,o,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(o,{subPath:a})=>await o.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(o,{subPath:a})=>o.unlinkSync(a))}async utimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,o,a),async(n,{subPath:u})=>await n.utimesPromise(u,o,a))}utimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,o,a),(n,{subPath:u})=>n.utimesSync(u,o,a))}async lutimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,o,a),async(n,{subPath:u})=>await n.lutimesPromise(u,o,a))}lutimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,o,a),(n,{subPath:u})=>n.lutimesSync(u,o,a))}async mkdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,o),async(a,{subPath:n})=>await a.mkdirPromise(n,o))}mkdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,o),(a,{subPath:n})=>a.mkdirSync(n,o))}async rmdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,o),async(a,{subPath:n})=>await a.rmdirPromise(n,o))}rmdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,o),(a,{subPath:n})=>a.rmdirSync(n,o))}async rmPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmPromise(r,o),async(a,{subPath:n})=>await a.rmPromise(n,o))}rmSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmSync(r,o),(a,{subPath:n})=>a.rmSync(n,o))}async linkPromise(r,o){return await this.makeCallPromise(o,async()=>await this.baseFs.linkPromise(r,o),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,o){return this.makeCallSync(o,()=>this.baseFs.linkSync(r,o),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,o,a){return await this.makeCallPromise(o,async()=>await this.baseFs.symlinkPromise(r,o,a),async(n,{subPath:u})=>await n.symlinkPromise(r,u))}symlinkSync(r,o,a){return this.makeCallSync(o,()=>this.baseFs.symlinkSync(r,o,a),(n,{subPath:u})=>n.symlinkSync(r,u))}async readFilePromise(r,o){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,o),async(a,{subPath:n})=>await a.readFilePromise(n,o))}readFileSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,o),(a,{subPath:n})=>a.readFileSync(n,o))}async readdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,o),async(a,{subPath:n})=>await a.readdirPromise(n,o),{requireSubpath:!1})}readdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,o),(a,{subPath:n})=>a.readdirSync(n,o),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(o,{subPath:a})=>await o.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(o,{subPath:a})=>o.readlinkSync(a))}async truncatePromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,o),async(a,{subPath:n})=>await a.truncatePromise(n,o))}truncateSync(r,o){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,o),(a,{subPath:n})=>a.truncateSync(n,o))}async ftruncatePromise(r,o){if((r&va)!==this.magic)return this.baseFs.ftruncatePromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("ftruncate");let[n,u]=a;return n.ftruncatePromise(u,o)}ftruncateSync(r,o){if((r&va)!==this.magic)return this.baseFs.ftruncateSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("ftruncateSync");let[n,u]=a;return n.ftruncateSync(u,o)}watch(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,o,a),(n,{subPath:u})=>n.watch(u,o,a))}watchFile(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,o,a),()=>um(this,r,o,a))}unwatchFile(r,o){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,o),()=>q0(this,r,o))}async makeCallPromise(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return await o();let u=this.resolve(r),A=this.findMount(u);return A?n&&A.subPath==="/"?await o():await this.getMountPromise(A.archivePath,async p=>await a(p,A)):await o()}makeCallSync(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return o();let u=this.resolve(r),A=this.findMount(u);return!A||n&&A.subPath==="/"?o():this.getMountSync(A.archivePath,p=>a(p,A))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let o="";for(;;){let a=r.substring(o.length),n=this.getMountPoint(a,o);if(!n)return null;if(o=this.pathUtils.join(o,n),!this.isMount.has(o)){if(this.notMount.has(o))continue;try{if(this.typeCheck!==null&&(this.baseFs.statSync(o).mode&K0.constants.S_IFMT)!==this.typeCheck){this.notMount.add(o);continue}}catch{return null}this.isMount.add(o)}return{archivePath:o,subPath:this.pathUtils.join(Bt.root,r.substring(o.length))}}}limitOpenFiles(r){if(this.mountInstances===null)return;let o=Date.now(),a=o+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[u,{childFs:A,expiresAt:p,refCount:h}]of this.mountInstances.entries())if(!(h!==0||A.hasOpenFileHandles?.())){if(o>=p){A.saveAndClose?.(),this.mountInstances.delete(u),n-=1;continue}else if(r===null||n<=0){a=p;break}A.saveAndClose?.(),this.mountInstances.delete(u),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-o).unref())}async getMountPromise(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);if(!a){let n=await this.factoryPromise(this.baseFs,r);a=this.mountInstances.get(r),a||(a={childFs:n(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,a.refCount+=1;try{return await o(a.childFs)}finally{a.refCount-=1}}else{let a=(await this.factoryPromise(this.baseFs,r))();try{return await o(a)}finally{a.saveAndClose?.()}}}getMountSync(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);return a||(a={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,o(a.childFs)}else{let a=this.factorySync(this.baseFs,r);try{return o(a)}finally{a.saveAndClose?.()}}}}});var $t,nP,kW=It(()=>{W0();Ba();$t=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),nP=class t extends hf{static{this.instance=new t}constructor(){super(K)}getExtractHint(){throw $t()}getRealPath(){throw $t()}resolve(){throw $t()}async openPromise(){throw $t()}openSync(){throw $t()}async opendirPromise(){throw $t()}opendirSync(){throw $t()}async readPromise(){throw $t()}readSync(){throw $t()}async writePromise(){throw $t()}writeSync(){throw $t()}async closePromise(){throw $t()}closeSync(){throw $t()}createWriteStream(){throw $t()}createReadStream(){throw $t()}async realpathPromise(){throw $t()}realpathSync(){throw $t()}async readdirPromise(){throw $t()}readdirSync(){throw $t()}async existsPromise(e){throw $t()}existsSync(e){throw $t()}async accessPromise(){throw $t()}accessSync(){throw $t()}async statPromise(){throw $t()}statSync(){throw $t()}async fstatPromise(e){throw $t()}fstatSync(e){throw $t()}async lstatPromise(e){throw $t()}lstatSync(e){throw $t()}async fchmodPromise(){throw $t()}fchmodSync(){throw $t()}async chmodPromise(){throw $t()}chmodSync(){throw $t()}async fchownPromise(){throw $t()}fchownSync(){throw $t()}async chownPromise(){throw $t()}chownSync(){throw $t()}async mkdirPromise(){throw $t()}mkdirSync(){throw $t()}async rmdirPromise(){throw $t()}rmdirSync(){throw $t()}async rmPromise(){throw $t()}rmSync(){throw $t()}async linkPromise(){throw $t()}linkSync(){throw $t()}async symlinkPromise(){throw $t()}symlinkSync(){throw $t()}async renamePromise(){throw $t()}renameSync(){throw $t()}async copyFilePromise(){throw $t()}copyFileSync(){throw $t()}async appendFilePromise(){throw $t()}appendFileSync(){throw $t()}async writeFilePromise(){throw $t()}writeFileSync(){throw $t()}async unlinkPromise(){throw $t()}unlinkSync(){throw $t()}async utimesPromise(){throw $t()}utimesSync(){throw $t()}async lutimesPromise(){throw $t()}lutimesSync(){throw $t()}async readFilePromise(){throw $t()}readFileSync(){throw $t()}async readlinkPromise(){throw $t()}readlinkSync(){throw $t()}async truncatePromise(){throw $t()}truncateSync(){throw $t()}async ftruncatePromise(e,r){throw $t()}ftruncateSync(e,r){throw $t()}watch(){throw $t()}watchFile(){throw $t()}unwatchFile(){throw $t()}}});var Wp,QW=It(()=>{gf();Ba();Wp=class extends ws{constructor(e){super(Ae),this.baseFs=e}mapFromBase(e){return Ae.fromPortablePath(e)}mapToBase(e){return Ae.toPortablePath(e)}}});var C8e,PT,I8e,qs,FW=It(()=>{Y0();gf();Ba();C8e=/^[0-9]+$/,PT=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,I8e=/^([^/]+-)?[a-f0-9]+$/,qs=class t extends ws{static makeVirtualPath(e,r,o){if(K.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!K.basename(r).match(I8e))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let n=K.relative(K.dirname(e),o).split("/"),u=0;for(;u{ST=et(ve("buffer")),RW=ve("url"),TW=ve("util");gf();Ba();iP=class extends ws{constructor(e){super(Ae),this.baseFs=e}mapFromBase(e){return e}mapToBase(e){if(typeof e=="string")return e;if(e instanceof URL)return(0,RW.fileURLToPath)(e);if(Buffer.isBuffer(e)){let r=e.toString();if(!w8e(e,r))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return r}throw new Error(`Unsupported path type: ${(0,TW.inspect)(e)}`)}}});var _W,go,df,Yp,sP,oP,fm,_c,Hc,LW,OW,MW,UW,cw,HW=It(()=>{_W=ve("readline"),go=Symbol("kBaseFs"),df=Symbol("kFd"),Yp=Symbol("kClosePromise"),sP=Symbol("kCloseResolve"),oP=Symbol("kCloseReject"),fm=Symbol("kRefs"),_c=Symbol("kRef"),Hc=Symbol("kUnref"),cw=class{constructor(e,r){this[UW]=1;this[MW]=void 0;this[OW]=void 0;this[LW]=void 0;this[go]=r,this[df]=e}get fd(){return this[df]}async appendFile(e,r){try{this[_c](this.appendFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;return await this[go].appendFilePromise(this.fd,e,o?{encoding:o}:void 0)}finally{this[Hc]()}}async chown(e,r){try{return this[_c](this.chown),await this[go].fchownPromise(this.fd,e,r)}finally{this[Hc]()}}async chmod(e){try{return this[_c](this.chmod),await this[go].fchmodPromise(this.fd,e)}finally{this[Hc]()}}createReadStream(e){return this[go].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[go].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,r,o,a){try{this[_c](this.read);let n;return Buffer.isBuffer(e)?n=e:(e??={},n=e.buffer??Buffer.alloc(16384),r=e.offset||0,o=e.length??n.byteLength,a=e.position??null),r??=0,o??=0,o===0?{bytesRead:o,buffer:n}:{bytesRead:await this[go].readPromise(this.fd,n,r,o,a),buffer:n}}finally{this[Hc]()}}async readFile(e){try{this[_c](this.readFile);let r=(typeof e=="string"?e:e?.encoding)??void 0;return await this[go].readFilePromise(this.fd,r)}finally{this[Hc]()}}readLines(e){return(0,_W.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[_c](this.stat),await this[go].fstatPromise(this.fd,e)}finally{this[Hc]()}}async truncate(e){try{return this[_c](this.truncate),await this[go].ftruncatePromise(this.fd,e)}finally{this[Hc]()}}utimes(e,r){throw new Error("Method not implemented.")}async writeFile(e,r){try{this[_c](this.writeFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;await this[go].writeFilePromise(this.fd,e,o)}finally{this[Hc]()}}async write(...e){try{if(this[_c](this.write),ArrayBuffer.isView(e[0])){let[r,o,a,n]=e;return{bytesWritten:await this[go].writePromise(this.fd,r,o??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,o,a]=e;return{bytesWritten:await this[go].writePromise(this.fd,r,o,a),buffer:r}}}finally{this[Hc]()}}async writev(e,r){try{this[_c](this.writev);let o=0;if(typeof r<"u")for(let a of e){let n=await this.write(a,void 0,void 0,r);o+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);o+=n.bytesWritten}return{buffers:e,bytesWritten:o}}finally{this[Hc]()}}readv(e,r){throw new Error("Method not implemented.")}close(){if(this[df]===-1)return Promise.resolve();if(this[Yp])return this[Yp];if(this[fm]--,this[fm]===0){let e=this[df];this[df]=-1,this[Yp]=this[go].closePromise(e).finally(()=>{this[Yp]=void 0})}else this[Yp]=new Promise((e,r)=>{this[sP]=e,this[oP]=r}).finally(()=>{this[Yp]=void 0,this[oP]=void 0,this[sP]=void 0});return this[Yp]}[(go,df,UW=fm,MW=Yp,OW=sP,LW=oP,_c)](e){if(this[df]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=e.name,r}this[fm]++}[Hc](){if(this[fm]--,this[fm]===0){let e=this[df];this[df]=-1,this[go].closePromise(e).then(this[sP],this[oP])}}}});function uw(t,e){e=new iP(e);let r=(o,a,n)=>{let u=o[a];o[a]=n,typeof u?.[pm.promisify.custom]<"u"&&(n[pm.promisify.custom]=u[pm.promisify.custom])};{r(t,"exists",(o,...a)=>{let u=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(o).then(A=>{u(A)},()=>{u(!1)})})}),r(t,"read",(...o)=>{let[a,n,u,A,p,h]=o;if(o.length<=3){let E={};o.length<3?h=o[1]:(E=o[1],h=o[2]),{buffer:n=Buffer.alloc(16384),offset:u=0,length:A=n.byteLength,position:p}=E}if(u==null&&(u=0),A|=0,A===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,u,A,p).then(E=>{h(null,E,n)},E=>{h(E,0,n)})})});for(let o of qW){let a=o.replace(/Promise$/,"");if(typeof t[a]>"u")continue;let n=e[o];if(typeof n>"u")continue;r(t,a,(...A)=>{let h=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{n.apply(e,A).then(E=>{h(null,E)},E=>{h(E)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",o=>{try{return e.existsSync(o)}catch{return!1}}),r(t,"readSync",(...o)=>{let[a,n,u,A,p]=o;return o.length<=3&&({offset:u=0,length:A=n.byteLength,position:p}=o[2]||{}),u==null&&(u=0),A|=0,A===0?0:(p==null&&(p=-1),e.readSync(a,n,u,A,p))});for(let o of B8e){let a=o;if(typeof t[a]>"u")continue;let n=e[o];typeof n>"u"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let o=t.promises;for(let a of qW){let n=a.replace(/Promise$/,"");if(typeof o[n]>"u")continue;let u=e[a];typeof u>"u"||a!=="open"&&r(o,n,(A,...p)=>A instanceof cw?A[n].apply(A,p):u.call(e,A,...p))}r(o,"open",async(...a)=>{let n=await e.openPromise(...a);return new cw(n,e)})}t.read[pm.promisify.custom]=async(o,a,...n)=>({bytesRead:await e.readPromise(o,a,...n),buffer:a}),t.write[pm.promisify.custom]=async(o,a,...n)=>({bytesWritten:await e.writePromise(o,a,...n),buffer:a})}function aP(t,e){let r=Object.create(t);return uw(r,e),r}var pm,B8e,qW,jW=It(()=>{pm=ve("util");NW();HW();B8e=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),qW=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","rmPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"])});function GW(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}function WW(){if(bT)return bT;let t=Ae.toPortablePath(YW.default.tmpdir()),e=ae.realpathSync(t);return process.once("exit",()=>{ae.rmtempSync()}),bT={tmpdir:t,realTmpdir:e}}var YW,qc,bT,ae,KW=It(()=>{YW=et(ve("os"));Y0();Ba();qc=new Set,bT=null;ae=Object.assign(new _n,{detachTemp(t){qc.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=WW();for(;;){let o=GW("xfs-");try{this.mkdirSync(K.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=K.join(r,o);if(qc.add(a),typeof t>"u")return a;try{return t(a)}finally{if(qc.has(a)){qc.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=WW();for(;;){let o=GW("xfs-");try{await this.mkdirPromise(K.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=K.join(r,o);if(qc.add(a),typeof t>"u")return a;try{return await t(a)}finally{if(qc.has(a)){qc.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(qc.values()).map(async t=>{try{await ae.removePromise(t,{maxRetries:0}),qc.delete(t)}catch{}}))},rmtempSync(){for(let t of qc)try{ae.removeSync(t),qc.delete(t)}catch{}}})});var Aw={};Kt(Aw,{AliasFS:()=>ju,BasePortableFakeFS:()=>qu,CustomDir:()=>lw,CwdFS:()=>En,FakeFS:()=>hf,Filename:()=>mr,JailFS:()=>Gu,LazyFS:()=>Am,MountFS:()=>Gp,NoFS:()=>nP,NodeFS:()=>_n,PortablePath:()=>Bt,PosixFS:()=>Wp,ProxiedFS:()=>ws,VirtualFS:()=>qs,constants:()=>Pi,errors:()=>sr,extendFs:()=>aP,normalizeLineEndings:()=>G0,npath:()=>Ae,opendir:()=>eP,patchFs:()=>uw,ppath:()=>K,setupCopyIndex:()=>$D,statUtils:()=>wa,unwatchAllFiles:()=>j0,unwatchFile:()=>q0,watchFile:()=>um,xfs:()=>ae});var Pt=It(()=>{uW();zD();IT();vT();dW();DT();W0();Ba();Ba();wW();W0();DW();SW();bW();xW();kW();Y0();QW();gf();FW();jW();KW()});var ZW=_((qSt,XW)=>{XW.exports=zW;zW.sync=D8e;var VW=ve("fs");function v8e(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var o=0;o{rY.exports=eY;eY.sync=P8e;var $W=ve("fs");function eY(t,e,r){$W.stat(t,function(o,a){r(o,o?!1:tY(a,e))})}function P8e(t,e){return tY($W.statSync(t),e)}function tY(t,e){return t.isFile()&&S8e(t,e)}function S8e(t,e){var r=t.mode,o=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),u=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),A=parseInt("100",8),p=parseInt("010",8),h=parseInt("001",8),E=A|p,w=r&h||r&p&&a===u||r&A&&o===n||r&E&&n===0;return w}});var sY=_((WSt,iY)=>{var GSt=ve("fs"),lP;process.platform==="win32"||global.TESTING_WINDOWS?lP=ZW():lP=nY();iY.exports=xT;xT.sync=b8e;function xT(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(o,a){xT(t,e||{},function(n,u){n?a(n):o(u)})})}lP(t,e||{},function(o,a){o&&(o.code==="EACCES"||e&&e.ignoreErrors)&&(o=null,a=!1),r(o,a)})}function b8e(t,e){try{return lP.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var fY=_((YSt,AY)=>{var hm=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",oY=ve("path"),x8e=hm?";":":",aY=sY(),lY=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),cY=(t,e)=>{let r=e.colon||x8e,o=t.match(/\//)||hm&&t.match(/\\/)?[""]:[...hm?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],a=hm?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=hm?a.split(r):[""];return hm&&t.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:o,pathExt:n,pathExtExe:a}},uY=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:o,pathExt:a,pathExtExe:n}=cY(t,e),u=[],A=h=>new Promise((E,w)=>{if(h===o.length)return e.all&&u.length?E(u):w(lY(t));let D=o[h],x=/^".*"$/.test(D)?D.slice(1,-1):D,C=oY.join(x,t),T=!x&&/^\.[\\\/]/.test(t)?t.slice(0,2)+C:C;E(p(T,h,0))}),p=(h,E,w)=>new Promise((D,x)=>{if(w===a.length)return D(A(E+1));let C=a[w];aY(h+C,{pathExt:n},(T,L)=>{if(!T&&L)if(e.all)u.push(h+C);else return D(h+C);return D(p(h,E,w+1))})});return r?A(0).then(h=>r(null,h),r):A(0)},k8e=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:o,pathExtExe:a}=cY(t,e),n=[];for(let u=0;u{"use strict";var pY=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(o=>o.toUpperCase()==="PATH")||"Path"};kT.exports=pY;kT.exports.default=pY});var yY=_((VSt,mY)=>{"use strict";var gY=ve("path"),Q8e=fY(),F8e=hY();function dY(t,e){let r=t.options.env||process.env,o=process.cwd(),a=t.options.cwd!=null,n=a&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(t.options.cwd)}catch{}let u;try{u=Q8e.sync(t.command,{path:r[F8e({env:r})],pathExt:e?gY.delimiter:void 0})}catch{}finally{n&&process.chdir(o)}return u&&(u=gY.resolve(a?t.options.cwd:"",u)),u}function R8e(t){return dY(t)||dY(t,!0)}mY.exports=R8e});var EY=_((JSt,FT)=>{"use strict";var QT=/([()\][%!^"`<>&|;, *?])/g;function T8e(t){return t=t.replace(QT,"^$1"),t}function N8e(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(QT,"^$1"),e&&(t=t.replace(QT,"^$1")),t}FT.exports.command=T8e;FT.exports.argument=N8e});var IY=_((zSt,CY)=>{"use strict";CY.exports=/^#!(.*)/});var BY=_((XSt,wY)=>{"use strict";var L8e=IY();wY.exports=(t="")=>{let e=t.match(L8e);if(!e)return null;let[r,o]=e[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?o:o?`${a} ${o}`:a}});var DY=_((ZSt,vY)=>{"use strict";var RT=ve("fs"),O8e=BY();function M8e(t){let r=Buffer.alloc(150),o;try{o=RT.openSync(t,"r"),RT.readSync(o,r,0,150,0),RT.closeSync(o)}catch{}return O8e(r.toString())}vY.exports=M8e});var xY=_(($St,bY)=>{"use strict";var U8e=ve("path"),PY=yY(),SY=EY(),_8e=DY(),H8e=process.platform==="win32",q8e=/\.(?:com|exe)$/i,j8e=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function G8e(t){t.file=PY(t);let e=t.file&&_8e(t.file);return e?(t.args.unshift(t.file),t.command=e,PY(t)):t.file}function W8e(t){if(!H8e)return t;let e=G8e(t),r=!q8e.test(e);if(t.options.forceShell||r){let o=j8e.test(e);t.command=U8e.normalize(t.command),t.command=SY.command(t.command),t.args=t.args.map(n=>SY.argument(n,o));let a=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${a}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function Y8e(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let o={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?o:W8e(o)}bY.exports=Y8e});var FY=_((ebt,QY)=>{"use strict";var TT=process.platform==="win32";function NT(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function K8e(t,e){if(!TT)return;let r=t.emit;t.emit=function(o,a){if(o==="exit"){let n=kY(a,e,"spawn");if(n)return r.call(t,"error",n)}return r.apply(t,arguments)}}function kY(t,e){return TT&&t===1&&!e.file?NT(e.original,"spawn"):null}function V8e(t,e){return TT&&t===1&&!e.file?NT(e.original,"spawnSync"):null}QY.exports={hookChildProcess:K8e,verifyENOENT:kY,verifyENOENTSync:V8e,notFoundError:NT}});var MT=_((tbt,gm)=>{"use strict";var RY=ve("child_process"),LT=xY(),OT=FY();function TY(t,e,r){let o=LT(t,e,r),a=RY.spawn(o.command,o.args,o.options);return OT.hookChildProcess(a,o),a}function J8e(t,e,r){let o=LT(t,e,r),a=RY.spawnSync(o.command,o.args,o.options);return a.error=a.error||OT.verifyENOENTSync(a.status,o),a}gm.exports=TY;gm.exports.spawn=TY;gm.exports.sync=J8e;gm.exports._parse=LT;gm.exports._enoent=OT});var LY=_((rbt,NY)=>{"use strict";function z8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function V0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,V0)}z8e(V0,Error);V0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w0){for(w=1,D=1;w>",S=cr(">>",!1),y=">&",R=cr(">&",!1),z=">",X=cr(">",!1),$="<<<",se=cr("<<<",!1),xe="<&",Fe=cr("<&",!1),lt="<",Et=cr("<",!1),qt=function(N){return{type:"argument",segments:[].concat(...N)}},nr=function(N){return N},St="$'",cn=cr("$'",!1),Pr="'",yr=cr("'",!1),Rr=function(N){return[{type:"text",text:N}]},Xr='""',$n=cr('""',!1),Xs=function(){return{type:"text",text:""}},Hi='"',Qs=cr('"',!1),Zs=function(N){return N},xi=function(N){return{type:"arithmetic",arithmetic:N,quoted:!0}},Fs=function(N){return{type:"shell",shell:N,quoted:!0}},$s=function(N){return{type:"variable",...N,quoted:!0}},SA=function(N){return{type:"text",text:N}},gu=function(N){return{type:"arithmetic",arithmetic:N,quoted:!1}},op=function(N){return{type:"shell",shell:N,quoted:!1}},ap=function(N){return{type:"variable",...N,quoted:!1}},Rs=function(N){return{type:"glob",pattern:N}},Ln=/^[^']/,hs=Li(["'"],!0,!1),Ts=function(N){return N.join("")},pc=/^[^$"]/,hc=Li(["$",'"'],!0,!1),gc=`\\ +`,bA=cr(`\\ +`,!1),xA=function(){return""},Ro="\\",To=cr("\\",!1),kA=/^[\\$"`]/,pr=Li(["\\","$",'"',"`"],!1,!1),Me=function(N){return N},ia="\\a",dc=cr("\\a",!1),Er=function(){return"a"},du="\\b",QA=cr("\\b",!1),FA=function(){return"\b"},mc=/^[Ee]/,yc=Li(["E","e"],!1,!1),Il=function(){return"\x1B"},we="\\f",Tt=cr("\\f",!1),wl=function(){return"\f"},Bi="\\n",Ns=cr("\\n",!1),Ft=function(){return` +`},Bn="\\r",No=cr("\\r",!1),ki=function(){return"\r"},vi="\\t",sa=cr("\\t",!1),un=function(){return" "},qn="\\v",Ec=cr("\\v",!1),lp=function(){return"\v"},oa=/^[\\'"?]/,aa=Li(["\\","'",'"',"?"],!1,!1),la=function(N){return String.fromCharCode(parseInt(N,16))},Ze="\\x",ca=cr("\\x",!1),mu="\\u",Bl=cr("\\u",!1),dn="\\U",Lo=cr("\\U",!1),RA=function(N){return String.fromCodePoint(parseInt(N,16))},TA=/^[0-7]/,Oo=Li([["0","7"]],!1,!1),qa=/^[0-9a-fA-f]/,Ot=Li([["0","9"],["a","f"],["A","f"]],!1,!1),vn=Iu(),Mo="{}",ua=cr("{}",!1),qi=function(){return"{}"},vl="-",Cc=cr("-",!1),Dl="+",Aa=cr("+",!1),Di=".",rs=cr(".",!1),ja=function(N,V,re){return{type:"number",value:(N==="-"?-1:1)*parseFloat(V.join("")+"."+re.join(""))}},yu=function(N,V){return{type:"number",value:(N==="-"?-1:1)*parseInt(V.join(""))}},Pl=function(N){return{type:"variable",...N}},pi=function(N){return{type:"variable",name:N}},Dn=function(N){return N},Sl="*",Je=cr("*",!1),st="/",vt=cr("/",!1),ar=function(N,V,re){return{type:V==="*"?"multiplication":"division",right:re}},ee=function(N,V){return V.reduce((re,ge)=>({left:re,...ge}),N)},ye=function(N,V,re){return{type:V==="+"?"addition":"subtraction",right:re}},Le="$((",gt=cr("$((",!1),mt="))",Dt=cr("))",!1),er=function(N){return N},sn="$(",ei=cr("$(",!1),Qi=function(N){return N},Pn="${",fa=cr("${",!1),wd=":-",BI=cr(":-",!1),eo=function(N,V){return{name:N,defaultValue:V}},Bd=":-}",cp=cr(":-}",!1),vI=function(N){return{name:N,defaultValue:[]}},to=":+",up=cr(":+",!1),Ap=function(N,V){return{name:N,alternativeValue:V}},Ic=":+}",fp=cr(":+}",!1),s0=function(N){return{name:N,alternativeValue:[]}},o0=function(N){return{name:N}},a0="$",vd=cr("$",!1),Eu=function(N){return e.isGlobPattern(N)},ro=function(N){return N},Ga=/^[a-zA-Z0-9_]/,pp=Li([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),l0=function(){return bd()},Wa=/^[$@*?#a-zA-Z0-9_\-]/,Ya=Li(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Dd=/^[()}<>$|&; \t"']/,NA=Li(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),Pd=/^[<>&; \t"']/,Sd=Li(["<",">","&",";"," "," ",'"',"'"],!1,!1),LA=/^[ \t]/,OA=Li([" "," "],!1,!1),W=0,bt=0,MA=[{line:1,column:1}],no=0,Cu=[],dt=0,wc;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function bd(){return t.substring(bt,W)}function c0(){return wu(bt,W)}function DI(N,V){throw V=V!==void 0?V:wu(bt,W),UA([u0(N)],t.substring(bt,W),V)}function hp(N,V){throw V=V!==void 0?V:wu(bt,W),oi(N,V)}function cr(N,V){return{type:"literal",text:N,ignoreCase:V}}function Li(N,V,re){return{type:"class",parts:N,inverted:V,ignoreCase:re}}function Iu(){return{type:"any"}}function pa(){return{type:"end"}}function u0(N){return{type:"other",description:N}}function Bc(N){var V=MA[N],re;if(V)return V;for(re=N-1;!MA[re];)re--;for(V=MA[re],V={line:V.line,column:V.column};reno&&(no=W,Cu=[]),Cu.push(N))}function oi(N,V){return new V0(N,null,null,V)}function UA(N,V,re){return new V0(V0.buildMessage(N,V),N,V,re)}function ha(){var N,V,re;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();return V!==r?(re=Uo(),re===r&&(re=null),re!==r?(bt=N,V=n(re),N=V):(W=N,N=r)):(W=N,N=r),N}function Uo(){var N,V,re,ge,Ye;if(N=W,V=gp(),V!==r){for(re=[],ge=xt();ge!==r;)re.push(ge),ge=xt();re!==r?(ge=A0(),ge!==r?(Ye=ga(),Ye===r&&(Ye=null),Ye!==r?(bt=N,V=u(V,ge,Ye),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)}else W=N,N=r;if(N===r)if(N=W,V=gp(),V!==r){for(re=[],ge=xt();ge!==r;)re.push(ge),ge=xt();re!==r?(ge=A0(),ge===r&&(ge=null),ge!==r?(bt=N,V=A(V,ge),N=V):(W=N,N=r)):(W=N,N=r)}else W=N,N=r;return N}function ga(){var N,V,re,ge,Ye;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r)if(re=Uo(),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();ge!==r?(bt=N,V=p(re),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r;return N}function A0(){var N;return t.charCodeAt(W)===59?(N=h,W++):(N=r,dt===0&&wt(E)),N===r&&(t.charCodeAt(W)===38?(N=w,W++):(N=r,dt===0&&wt(D))),N}function gp(){var N,V,re;return N=W,V=_A(),V!==r?(re=f0(),re===r&&(re=null),re!==r?(bt=N,V=x(V,re),N=V):(W=N,N=r)):(W=N,N=r),N}function f0(){var N,V,re,ge,Ye,At,hr;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r)if(re=xd(),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();if(ge!==r)if(Ye=gp(),Ye!==r){for(At=[],hr=xt();hr!==r;)At.push(hr),hr=xt();At!==r?(bt=N,V=C(re,Ye),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r;return N}function xd(){var N;return t.substr(W,2)===T?(N=T,W+=2):(N=r,dt===0&&wt(L)),N===r&&(t.substr(W,2)===U?(N=U,W+=2):(N=r,dt===0&&wt(J))),N}function _A(){var N,V,re;return N=W,V=Bu(),V!==r?(re=p0(),re===r&&(re=null),re!==r?(bt=N,V=te(V,re),N=V):(W=N,N=r)):(W=N,N=r),N}function p0(){var N,V,re,ge,Ye,At,hr;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r)if(re=vc(),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();if(ge!==r)if(Ye=_A(),Ye!==r){for(At=[],hr=xt();hr!==r;)At.push(hr),hr=xt();At!==r?(bt=N,V=le(re,Ye),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r;return N}function vc(){var N;return t.substr(W,2)===ce?(N=ce,W+=2):(N=r,dt===0&&wt(ue)),N===r&&(t.charCodeAt(W)===124?(N=Ie,W++):(N=r,dt===0&&wt(he))),N}function Dc(){var N,V,re,ge,Ye,At;if(N=W,V=yp(),V!==r)if(t.charCodeAt(W)===61?(re=De,W++):(re=r,dt===0&&wt(Ee)),re!==r)if(ge=HA(),ge!==r){for(Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();Ye!==r?(bt=N,V=g(V,ge),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r;else W=N,N=r;if(N===r)if(N=W,V=yp(),V!==r)if(t.charCodeAt(W)===61?(re=De,W++):(re=r,dt===0&&wt(Ee)),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();ge!==r?(bt=N,V=me(V),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r;return N}function Bu(){var N,V,re,ge,Ye,At,hr,Ir,Rn,ai,ns;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r)if(t.charCodeAt(W)===40?(re=Ce,W++):(re=r,dt===0&&wt(fe)),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();if(ge!==r)if(Ye=Uo(),Ye!==r){for(At=[],hr=xt();hr!==r;)At.push(hr),hr=xt();if(At!==r)if(t.charCodeAt(W)===41?(hr=ie,W++):(hr=r,dt===0&&wt(Z)),hr!==r){for(Ir=[],Rn=xt();Rn!==r;)Ir.push(Rn),Rn=xt();if(Ir!==r){for(Rn=[],ai=On();ai!==r;)Rn.push(ai),ai=On();if(Rn!==r){for(ai=[],ns=xt();ns!==r;)ai.push(ns),ns=xt();ai!==r?(bt=N,V=Pe(Ye,Rn),N=V):(W=N,N=r)}else W=N,N=r}else W=N,N=r}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r;if(N===r){for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r)if(t.charCodeAt(W)===123?(re=Re,W++):(re=r,dt===0&&wt(ht)),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();if(ge!==r)if(Ye=Uo(),Ye!==r){for(At=[],hr=xt();hr!==r;)At.push(hr),hr=xt();if(At!==r)if(t.charCodeAt(W)===125?(hr=q,W++):(hr=r,dt===0&&wt(nt)),hr!==r){for(Ir=[],Rn=xt();Rn!==r;)Ir.push(Rn),Rn=xt();if(Ir!==r){for(Rn=[],ai=On();ai!==r;)Rn.push(ai),ai=On();if(Rn!==r){for(ai=[],ns=xt();ns!==r;)ai.push(ns),ns=xt();ai!==r?(bt=N,V=Ne(Ye,Rn),N=V):(W=N,N=r)}else W=N,N=r}else W=N,N=r}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r;if(N===r){for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r){for(re=[],ge=Dc();ge!==r;)re.push(ge),ge=Dc();if(re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();if(ge!==r){if(Ye=[],At=Pc(),At!==r)for(;At!==r;)Ye.push(At),At=Pc();else Ye=r;if(Ye!==r){for(At=[],hr=xt();hr!==r;)At.push(hr),hr=xt();At!==r?(bt=N,V=Te(re,Ye),N=V):(W=N,N=r)}else W=N,N=r}else W=N,N=r}else W=N,N=r}else W=N,N=r;if(N===r){for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r){if(re=[],ge=Dc(),ge!==r)for(;ge!==r;)re.push(ge),ge=Dc();else re=r;if(re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();ge!==r?(bt=N,V=ke(re),N=V):(W=N,N=r)}else W=N,N=r}else W=N,N=r}}}return N}function gs(){var N,V,re,ge,Ye;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r){if(re=[],ge=Ci(),ge!==r)for(;ge!==r;)re.push(ge),ge=Ci();else re=r;if(re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();ge!==r?(bt=N,V=Ve(re),N=V):(W=N,N=r)}else W=N,N=r}else W=N,N=r;return N}function Pc(){var N,V,re;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r?(re=On(),re!==r?(bt=N,V=be(re),N=V):(W=N,N=r)):(W=N,N=r),N===r){for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();V!==r?(re=Ci(),re!==r?(bt=N,V=be(re),N=V):(W=N,N=r)):(W=N,N=r)}return N}function On(){var N,V,re,ge,Ye;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();return V!==r?(tt.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(He)),re===r&&(re=null),re!==r?(ge=ji(),ge!==r?(Ye=Ci(),Ye!==r?(bt=N,V=b(re,ge,Ye),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N}function ji(){var N;return t.substr(W,2)===I?(N=I,W+=2):(N=r,dt===0&&wt(S)),N===r&&(t.substr(W,2)===y?(N=y,W+=2):(N=r,dt===0&&wt(R)),N===r&&(t.charCodeAt(W)===62?(N=z,W++):(N=r,dt===0&&wt(X)),N===r&&(t.substr(W,3)===$?(N=$,W+=3):(N=r,dt===0&&wt(se)),N===r&&(t.substr(W,2)===xe?(N=xe,W+=2):(N=r,dt===0&&wt(Fe)),N===r&&(t.charCodeAt(W)===60?(N=lt,W++):(N=r,dt===0&&wt(Et))))))),N}function Ci(){var N,V,re;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();return V!==r?(re=HA(),re!==r?(bt=N,V=be(re),N=V):(W=N,N=r)):(W=N,N=r),N}function HA(){var N,V,re;if(N=W,V=[],re=vu(),re!==r)for(;re!==r;)V.push(re),re=vu();else V=r;return V!==r&&(bt=N,V=qt(V)),N=V,N}function vu(){var N,V;return N=W,V=An(),V!==r&&(bt=N,V=nr(V)),N=V,N===r&&(N=W,V=h0(),V!==r&&(bt=N,V=nr(V)),N=V,N===r&&(N=W,V=g0(),V!==r&&(bt=N,V=nr(V)),N=V,N===r&&(N=W,V=Gi(),V!==r&&(bt=N,V=nr(V)),N=V))),N}function An(){var N,V,re,ge;return N=W,t.substr(W,2)===St?(V=St,W+=2):(V=r,dt===0&&wt(cn)),V!==r?(re=fn(),re!==r?(t.charCodeAt(W)===39?(ge=Pr,W++):(ge=r,dt===0&&wt(yr)),ge!==r?(bt=N,V=Rr(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N}function h0(){var N,V,re,ge;return N=W,t.charCodeAt(W)===39?(V=Pr,W++):(V=r,dt===0&&wt(yr)),V!==r?(re=Du(),re!==r?(t.charCodeAt(W)===39?(ge=Pr,W++):(ge=r,dt===0&&wt(yr)),ge!==r?(bt=N,V=Rr(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N}function g0(){var N,V,re,ge;if(N=W,t.substr(W,2)===Xr?(V=Xr,W+=2):(V=r,dt===0&&wt($n)),V!==r&&(bt=N,V=Xs()),N=V,N===r)if(N=W,t.charCodeAt(W)===34?(V=Hi,W++):(V=r,dt===0&&wt(Qs)),V!==r){for(re=[],ge=Ka();ge!==r;)re.push(ge),ge=Ka();re!==r?(t.charCodeAt(W)===34?(ge=Hi,W++):(ge=r,dt===0&&wt(Qs)),ge!==r?(bt=N,V=Zs(re),N=V):(W=N,N=r)):(W=N,N=r)}else W=N,N=r;return N}function Gi(){var N,V,re;if(N=W,V=[],re=io(),re!==r)for(;re!==r;)V.push(re),re=io();else V=r;return V!==r&&(bt=N,V=Zs(V)),N=V,N}function Ka(){var N,V;return N=W,V=Kr(),V!==r&&(bt=N,V=xi(V)),N=V,N===r&&(N=W,V=mp(),V!==r&&(bt=N,V=Fs(V)),N=V,N===r&&(N=W,V=jA(),V!==r&&(bt=N,V=$s(V)),N=V,N===r&&(N=W,V=Pu(),V!==r&&(bt=N,V=SA(V)),N=V))),N}function io(){var N,V;return N=W,V=Kr(),V!==r&&(bt=N,V=gu(V)),N=V,N===r&&(N=W,V=mp(),V!==r&&(bt=N,V=op(V)),N=V,N===r&&(N=W,V=jA(),V!==r&&(bt=N,V=ap(V)),N=V,N===r&&(N=W,V=kd(),V!==r&&(bt=N,V=Rs(V)),N=V,N===r&&(N=W,V=dp(),V!==r&&(bt=N,V=SA(V)),N=V)))),N}function Du(){var N,V,re;for(N=W,V=[],Ln.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hs));re!==r;)V.push(re),Ln.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hs));return V!==r&&(bt=N,V=Ts(V)),N=V,N}function Pu(){var N,V,re;if(N=W,V=[],re=Va(),re===r&&(pc.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hc))),re!==r)for(;re!==r;)V.push(re),re=Va(),re===r&&(pc.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hc)));else V=r;return V!==r&&(bt=N,V=Ts(V)),N=V,N}function Va(){var N,V,re;return N=W,t.substr(W,2)===gc?(V=gc,W+=2):(V=r,dt===0&&wt(bA)),V!==r&&(bt=N,V=xA()),N=V,N===r&&(N=W,t.charCodeAt(W)===92?(V=Ro,W++):(V=r,dt===0&&wt(To)),V!==r?(kA.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(pr)),re!==r?(bt=N,V=Me(re),N=V):(W=N,N=r)):(W=N,N=r)),N}function fn(){var N,V,re;for(N=W,V=[],re=so(),re===r&&(Ln.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hs)));re!==r;)V.push(re),re=so(),re===r&&(Ln.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hs)));return V!==r&&(bt=N,V=Ts(V)),N=V,N}function so(){var N,V,re;return N=W,t.substr(W,2)===ia?(V=ia,W+=2):(V=r,dt===0&&wt(dc)),V!==r&&(bt=N,V=Er()),N=V,N===r&&(N=W,t.substr(W,2)===du?(V=du,W+=2):(V=r,dt===0&&wt(QA)),V!==r&&(bt=N,V=FA()),N=V,N===r&&(N=W,t.charCodeAt(W)===92?(V=Ro,W++):(V=r,dt===0&&wt(To)),V!==r?(mc.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(yc)),re!==r?(bt=N,V=Il(),N=V):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===we?(V=we,W+=2):(V=r,dt===0&&wt(Tt)),V!==r&&(bt=N,V=wl()),N=V,N===r&&(N=W,t.substr(W,2)===Bi?(V=Bi,W+=2):(V=r,dt===0&&wt(Ns)),V!==r&&(bt=N,V=Ft()),N=V,N===r&&(N=W,t.substr(W,2)===Bn?(V=Bn,W+=2):(V=r,dt===0&&wt(No)),V!==r&&(bt=N,V=ki()),N=V,N===r&&(N=W,t.substr(W,2)===vi?(V=vi,W+=2):(V=r,dt===0&&wt(sa)),V!==r&&(bt=N,V=un()),N=V,N===r&&(N=W,t.substr(W,2)===qn?(V=qn,W+=2):(V=r,dt===0&&wt(Ec)),V!==r&&(bt=N,V=lp()),N=V,N===r&&(N=W,t.charCodeAt(W)===92?(V=Ro,W++):(V=r,dt===0&&wt(To)),V!==r?(oa.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(aa)),re!==r?(bt=N,V=Me(re),N=V):(W=N,N=r)):(W=N,N=r),N===r&&(N=Sc()))))))))),N}function Sc(){var N,V,re,ge,Ye,At,hr,Ir,Rn,ai,ns,GA;return N=W,t.charCodeAt(W)===92?(V=Ro,W++):(V=r,dt===0&&wt(To)),V!==r?(re=_o(),re!==r?(bt=N,V=la(re),N=V):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===Ze?(V=Ze,W+=2):(V=r,dt===0&&wt(ca)),V!==r?(re=W,ge=W,Ye=_o(),Ye!==r?(At=ds(),At!==r?(Ye=[Ye,At],ge=Ye):(W=ge,ge=r)):(W=ge,ge=r),ge===r&&(ge=_o()),ge!==r?re=t.substring(re,W):re=ge,re!==r?(bt=N,V=la(re),N=V):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===mu?(V=mu,W+=2):(V=r,dt===0&&wt(Bl)),V!==r?(re=W,ge=W,Ye=ds(),Ye!==r?(At=ds(),At!==r?(hr=ds(),hr!==r?(Ir=ds(),Ir!==r?(Ye=[Ye,At,hr,Ir],ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r),ge!==r?re=t.substring(re,W):re=ge,re!==r?(bt=N,V=la(re),N=V):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===dn?(V=dn,W+=2):(V=r,dt===0&&wt(Lo)),V!==r?(re=W,ge=W,Ye=ds(),Ye!==r?(At=ds(),At!==r?(hr=ds(),hr!==r?(Ir=ds(),Ir!==r?(Rn=ds(),Rn!==r?(ai=ds(),ai!==r?(ns=ds(),ns!==r?(GA=ds(),GA!==r?(Ye=[Ye,At,hr,Ir,Rn,ai,ns,GA],ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r),ge!==r?re=t.substring(re,W):re=ge,re!==r?(bt=N,V=RA(re),N=V):(W=N,N=r)):(W=N,N=r)))),N}function _o(){var N;return TA.test(t.charAt(W))?(N=t.charAt(W),W++):(N=r,dt===0&&wt(Oo)),N}function ds(){var N;return qa.test(t.charAt(W))?(N=t.charAt(W),W++):(N=r,dt===0&&wt(Ot)),N}function dp(){var N,V,re,ge,Ye;if(N=W,V=[],re=W,t.charCodeAt(W)===92?(ge=Ro,W++):(ge=r,dt===0&&wt(To)),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r),re===r&&(re=W,t.substr(W,2)===Mo?(ge=Mo,W+=2):(ge=r,dt===0&&wt(ua)),ge!==r&&(bt=re,ge=qi()),re=ge,re===r&&(re=W,ge=W,dt++,Ye=Qd(),dt--,Ye===r?ge=void 0:(W=ge,ge=r),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r))),re!==r)for(;re!==r;)V.push(re),re=W,t.charCodeAt(W)===92?(ge=Ro,W++):(ge=r,dt===0&&wt(To)),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r),re===r&&(re=W,t.substr(W,2)===Mo?(ge=Mo,W+=2):(ge=r,dt===0&&wt(ua)),ge!==r&&(bt=re,ge=qi()),re=ge,re===r&&(re=W,ge=W,dt++,Ye=Qd(),dt--,Ye===r?ge=void 0:(W=ge,ge=r),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r)));else V=r;return V!==r&&(bt=N,V=Ts(V)),N=V,N}function qA(){var N,V,re,ge,Ye,At;if(N=W,t.charCodeAt(W)===45?(V=vl,W++):(V=r,dt===0&&wt(Cc)),V===r&&(t.charCodeAt(W)===43?(V=Dl,W++):(V=r,dt===0&&wt(Aa))),V===r&&(V=null),V!==r){if(re=[],tt.test(t.charAt(W))?(ge=t.charAt(W),W++):(ge=r,dt===0&&wt(He)),ge!==r)for(;ge!==r;)re.push(ge),tt.test(t.charAt(W))?(ge=t.charAt(W),W++):(ge=r,dt===0&&wt(He));else re=r;if(re!==r)if(t.charCodeAt(W)===46?(ge=Di,W++):(ge=r,dt===0&&wt(rs)),ge!==r){if(Ye=[],tt.test(t.charAt(W))?(At=t.charAt(W),W++):(At=r,dt===0&&wt(He)),At!==r)for(;At!==r;)Ye.push(At),tt.test(t.charAt(W))?(At=t.charAt(W),W++):(At=r,dt===0&&wt(He));else Ye=r;Ye!==r?(bt=N,V=ja(V,re,Ye),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r}else W=N,N=r;if(N===r){if(N=W,t.charCodeAt(W)===45?(V=vl,W++):(V=r,dt===0&&wt(Cc)),V===r&&(t.charCodeAt(W)===43?(V=Dl,W++):(V=r,dt===0&&wt(Aa))),V===r&&(V=null),V!==r){if(re=[],tt.test(t.charAt(W))?(ge=t.charAt(W),W++):(ge=r,dt===0&&wt(He)),ge!==r)for(;ge!==r;)re.push(ge),tt.test(t.charAt(W))?(ge=t.charAt(W),W++):(ge=r,dt===0&&wt(He));else re=r;re!==r?(bt=N,V=yu(V,re),N=V):(W=N,N=r)}else W=N,N=r;if(N===r&&(N=W,V=jA(),V!==r&&(bt=N,V=Pl(V)),N=V,N===r&&(N=W,V=bl(),V!==r&&(bt=N,V=pi(V)),N=V,N===r)))if(N=W,t.charCodeAt(W)===40?(V=Ce,W++):(V=r,dt===0&&wt(fe)),V!==r){for(re=[],ge=xt();ge!==r;)re.push(ge),ge=xt();if(re!==r)if(ge=Ls(),ge!==r){for(Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();Ye!==r?(t.charCodeAt(W)===41?(At=ie,W++):(At=r,dt===0&&wt(Z)),At!==r?(bt=N,V=Dn(ge),N=V):(W=N,N=r)):(W=N,N=r)}else W=N,N=r;else W=N,N=r}else W=N,N=r}return N}function Su(){var N,V,re,ge,Ye,At,hr,Ir;if(N=W,V=qA(),V!==r){for(re=[],ge=W,Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();if(Ye!==r)if(t.charCodeAt(W)===42?(At=Sl,W++):(At=r,dt===0&&wt(Je)),At===r&&(t.charCodeAt(W)===47?(At=st,W++):(At=r,dt===0&&wt(vt))),At!==r){for(hr=[],Ir=xt();Ir!==r;)hr.push(Ir),Ir=xt();hr!==r?(Ir=qA(),Ir!==r?(bt=ge,Ye=ar(V,At,Ir),ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)}else W=ge,ge=r;else W=ge,ge=r;for(;ge!==r;){for(re.push(ge),ge=W,Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();if(Ye!==r)if(t.charCodeAt(W)===42?(At=Sl,W++):(At=r,dt===0&&wt(Je)),At===r&&(t.charCodeAt(W)===47?(At=st,W++):(At=r,dt===0&&wt(vt))),At!==r){for(hr=[],Ir=xt();Ir!==r;)hr.push(Ir),Ir=xt();hr!==r?(Ir=qA(),Ir!==r?(bt=ge,Ye=ar(V,At,Ir),ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)}else W=ge,ge=r;else W=ge,ge=r}re!==r?(bt=N,V=ee(V,re),N=V):(W=N,N=r)}else W=N,N=r;return N}function Ls(){var N,V,re,ge,Ye,At,hr,Ir;if(N=W,V=Su(),V!==r){for(re=[],ge=W,Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();if(Ye!==r)if(t.charCodeAt(W)===43?(At=Dl,W++):(At=r,dt===0&&wt(Aa)),At===r&&(t.charCodeAt(W)===45?(At=vl,W++):(At=r,dt===0&&wt(Cc))),At!==r){for(hr=[],Ir=xt();Ir!==r;)hr.push(Ir),Ir=xt();hr!==r?(Ir=Su(),Ir!==r?(bt=ge,Ye=ye(V,At,Ir),ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)}else W=ge,ge=r;else W=ge,ge=r;for(;ge!==r;){for(re.push(ge),ge=W,Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();if(Ye!==r)if(t.charCodeAt(W)===43?(At=Dl,W++):(At=r,dt===0&&wt(Aa)),At===r&&(t.charCodeAt(W)===45?(At=vl,W++):(At=r,dt===0&&wt(Cc))),At!==r){for(hr=[],Ir=xt();Ir!==r;)hr.push(Ir),Ir=xt();hr!==r?(Ir=Su(),Ir!==r?(bt=ge,Ye=ye(V,At,Ir),ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)}else W=ge,ge=r;else W=ge,ge=r}re!==r?(bt=N,V=ee(V,re),N=V):(W=N,N=r)}else W=N,N=r;return N}function Kr(){var N,V,re,ge,Ye,At;if(N=W,t.substr(W,3)===Le?(V=Le,W+=3):(V=r,dt===0&&wt(gt)),V!==r){for(re=[],ge=xt();ge!==r;)re.push(ge),ge=xt();if(re!==r)if(ge=Ls(),ge!==r){for(Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();Ye!==r?(t.substr(W,2)===mt?(At=mt,W+=2):(At=r,dt===0&&wt(Dt)),At!==r?(bt=N,V=er(ge),N=V):(W=N,N=r)):(W=N,N=r)}else W=N,N=r;else W=N,N=r}else W=N,N=r;return N}function mp(){var N,V,re,ge;return N=W,t.substr(W,2)===sn?(V=sn,W+=2):(V=r,dt===0&&wt(ei)),V!==r?(re=Uo(),re!==r?(t.charCodeAt(W)===41?(ge=ie,W++):(ge=r,dt===0&&wt(Z)),ge!==r?(bt=N,V=Qi(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N}function jA(){var N,V,re,ge,Ye,At;return N=W,t.substr(W,2)===Pn?(V=Pn,W+=2):(V=r,dt===0&&wt(fa)),V!==r?(re=bl(),re!==r?(t.substr(W,2)===wd?(ge=wd,W+=2):(ge=r,dt===0&&wt(BI)),ge!==r?(Ye=gs(),Ye!==r?(t.charCodeAt(W)===125?(At=q,W++):(At=r,dt===0&&wt(nt)),At!==r?(bt=N,V=eo(re,Ye),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===Pn?(V=Pn,W+=2):(V=r,dt===0&&wt(fa)),V!==r?(re=bl(),re!==r?(t.substr(W,3)===Bd?(ge=Bd,W+=3):(ge=r,dt===0&&wt(cp)),ge!==r?(bt=N,V=vI(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===Pn?(V=Pn,W+=2):(V=r,dt===0&&wt(fa)),V!==r?(re=bl(),re!==r?(t.substr(W,2)===to?(ge=to,W+=2):(ge=r,dt===0&&wt(up)),ge!==r?(Ye=gs(),Ye!==r?(t.charCodeAt(W)===125?(At=q,W++):(At=r,dt===0&&wt(nt)),At!==r?(bt=N,V=Ap(re,Ye),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===Pn?(V=Pn,W+=2):(V=r,dt===0&&wt(fa)),V!==r?(re=bl(),re!==r?(t.substr(W,3)===Ic?(ge=Ic,W+=3):(ge=r,dt===0&&wt(fp)),ge!==r?(bt=N,V=s0(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===Pn?(V=Pn,W+=2):(V=r,dt===0&&wt(fa)),V!==r?(re=bl(),re!==r?(t.charCodeAt(W)===125?(ge=q,W++):(ge=r,dt===0&&wt(nt)),ge!==r?(bt=N,V=o0(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.charCodeAt(W)===36?(V=a0,W++):(V=r,dt===0&&wt(vd)),V!==r?(re=bl(),re!==r?(bt=N,V=o0(re),N=V):(W=N,N=r)):(W=N,N=r)))))),N}function kd(){var N,V,re;return N=W,V=d0(),V!==r?(bt=W,re=Eu(V),re?re=void 0:re=r,re!==r?(bt=N,V=ro(V),N=V):(W=N,N=r)):(W=N,N=r),N}function d0(){var N,V,re,ge,Ye;if(N=W,V=[],re=W,ge=W,dt++,Ye=Ep(),dt--,Ye===r?ge=void 0:(W=ge,ge=r),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r),re!==r)for(;re!==r;)V.push(re),re=W,ge=W,dt++,Ye=Ep(),dt--,Ye===r?ge=void 0:(W=ge,ge=r),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r);else V=r;return V!==r&&(bt=N,V=Ts(V)),N=V,N}function yp(){var N,V,re;if(N=W,V=[],Ga.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(pp)),re!==r)for(;re!==r;)V.push(re),Ga.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(pp));else V=r;return V!==r&&(bt=N,V=l0()),N=V,N}function bl(){var N,V,re;if(N=W,V=[],Wa.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(Ya)),re!==r)for(;re!==r;)V.push(re),Wa.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(Ya));else V=r;return V!==r&&(bt=N,V=l0()),N=V,N}function Qd(){var N;return Dd.test(t.charAt(W))?(N=t.charAt(W),W++):(N=r,dt===0&&wt(NA)),N}function Ep(){var N;return Pd.test(t.charAt(W))?(N=t.charAt(W),W++):(N=r,dt===0&&wt(Sd)),N}function xt(){var N,V;if(N=[],LA.test(t.charAt(W))?(V=t.charAt(W),W++):(V=r,dt===0&&wt(OA)),V!==r)for(;V!==r;)N.push(V),LA.test(t.charAt(W))?(V=t.charAt(W),W++):(V=r,dt===0&&wt(OA));else N=r;return N}if(wc=a(),wc!==r&&W===t.length)return wc;throw wc!==r&&W!1}){try{return(0,OY.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function dm(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:o},a)=>`${AP(r)}${o===";"?a!==t.length-1||e?";":"":" &"}`).join(" ")}function AP(t){return`${mm(t.chain)}${t.then?` ${UT(t.then)}`:""}`}function UT(t){return`${t.type} ${AP(t.line)}`}function mm(t){return`${HT(t)}${t.then?` ${_T(t.then)}`:""}`}function _T(t){return`${t.type} ${mm(t.chain)}`}function HT(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>cP(e)).join(" ")} `:""}${t.args.map(e=>qT(e)).join(" ")}`;case"subshell":return`(${dm(t.subshell)})${t.args.length>0?` ${t.args.map(e=>fw(e)).join(" ")}`:""}`;case"group":return`{ ${dm(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>fw(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>cP(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function cP(t){return`${t.name}=${t.args[0]?J0(t.args[0]):""}`}function qT(t){switch(t.type){case"redirection":return fw(t);case"argument":return J0(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function fw(t){return`${t.subtype} ${t.args.map(e=>J0(e)).join(" ")}`}function J0(t){return t.segments.map(e=>jT(e)).join("")}function jT(t){let e=(o,a)=>a?`"${o}"`:o,r=o=>o===""?"''":o.match(/[()}<>$|&;"'\n\t ]/)?o.match(/['\t\p{C}]/u)?o.match(/'/)?`"${o.replace(/["$\t\p{C}]/u,$8e)}"`:`$'${o.replace(/[\t\p{C}]/u,UY)}'`:`'${o}'`:o;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`$(${dm(t.shell)})`,t.quoted);case"variable":return e(typeof t.defaultValue>"u"?typeof t.alternativeValue>"u"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(o=>J0(o)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(o=>J0(o)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${fP(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function fP(t){let e=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,n)=>n?`( ${a} )`:a,o=a=>r(fP(a),!["number","variable"].includes(a.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${o(t.left)} ${e(t.type)} ${o(t.right)}`}}var OY,MY,Z8e,UY,$8e,_Y=It(()=>{OY=et(LY());MY=new Map([["\f","\\f"],[` +`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Z8e=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(MY,([t,e])=>[t,`"$'${e}'"`])]),UY=t=>MY.get(t)??`\\x${t.charCodeAt(0).toString(16).padStart(2,"0")}`,$8e=t=>Z8e.get(t)??`"$'${UY(t)}'"`});var qY=_((dbt,HY)=>{"use strict";function e_e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function z0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,z0)}e_e(z0,Error);z0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w0){for(w=1,D=1;wce&&(ce=J,ue=[]),ue.push(He))}function nt(He,b){return new z0(He,null,null,b)}function Ne(He,b,I){return new z0(z0.buildMessage(He,b),He,b,I)}function Te(){var He,b,I,S;return He=J,b=ke(),b!==r?(t.charCodeAt(J)===47?(I=n,J++):(I=r,Ie===0&&q(u)),I!==r?(S=ke(),S!==r?(te=He,b=A(b,S),He=b):(J=He,He=r)):(J=He,He=r)):(J=He,He=r),He===r&&(He=J,b=ke(),b!==r&&(te=He,b=p(b)),He=b),He}function ke(){var He,b,I,S;return He=J,b=Ve(),b!==r?(t.charCodeAt(J)===64?(I=h,J++):(I=r,Ie===0&&q(E)),I!==r?(S=tt(),S!==r?(te=He,b=w(b,S),He=b):(J=He,He=r)):(J=He,He=r)):(J=He,He=r),He===r&&(He=J,b=Ve(),b!==r&&(te=He,b=D(b)),He=b),He}function Ve(){var He,b,I,S,y;return He=J,t.charCodeAt(J)===64?(b=h,J++):(b=r,Ie===0&&q(E)),b!==r?(I=be(),I!==r?(t.charCodeAt(J)===47?(S=n,J++):(S=r,Ie===0&&q(u)),S!==r?(y=be(),y!==r?(te=He,b=x(),He=b):(J=He,He=r)):(J=He,He=r)):(J=He,He=r)):(J=He,He=r),He===r&&(He=J,b=be(),b!==r&&(te=He,b=x()),He=b),He}function be(){var He,b,I;if(He=J,b=[],C.test(t.charAt(J))?(I=t.charAt(J),J++):(I=r,Ie===0&&q(T)),I!==r)for(;I!==r;)b.push(I),C.test(t.charAt(J))?(I=t.charAt(J),J++):(I=r,Ie===0&&q(T));else b=r;return b!==r&&(te=He,b=x()),He=b,He}function tt(){var He,b,I;if(He=J,b=[],L.test(t.charAt(J))?(I=t.charAt(J),J++):(I=r,Ie===0&&q(U)),I!==r)for(;I!==r;)b.push(I),L.test(t.charAt(J))?(I=t.charAt(J),J++):(I=r,Ie===0&&q(U));else b=r;return b!==r&&(te=He,b=x()),He=b,He}if(he=a(),he!==r&&J===t.length)return he;throw he!==r&&J{jY=et(qY())});var Z0=_((ybt,X0)=>{"use strict";function WY(t){return typeof t>"u"||t===null}function r_e(t){return typeof t=="object"&&t!==null}function n_e(t){return Array.isArray(t)?t:WY(t)?[]:[t]}function i_e(t,e){var r,o,a,n;if(e)for(n=Object.keys(e),r=0,o=n.length;r{"use strict";function pw(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}pw.prototype=Object.create(Error.prototype);pw.prototype.constructor=pw;pw.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};YY.exports=pw});var JY=_((Cbt,VY)=>{"use strict";var KY=Z0();function GT(t,e,r,o,a){this.name=t,this.buffer=e,this.position=r,this.line=o,this.column=a}GT.prototype.getSnippet=function(e,r){var o,a,n,u,A;if(!this.buffer)return null;for(e=e||4,r=r||75,o="",a=this.position;a>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){o=" ... ",a+=5;break}for(n="",u=this.position;ur/2-1){n=" ... ",u-=5;break}return A=this.buffer.slice(a,u),KY.repeat(" ",e)+o+A+n+` +`+KY.repeat(" ",e+this.position-a+o.length)+"^"};GT.prototype.toString=function(e){var r,o="";return this.name&&(o+='in "'+this.name+'" '),o+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(o+=`: +`+r)),o};VY.exports=GT});var as=_((Ibt,XY)=>{"use strict";var zY=ym(),a_e=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],l_e=["scalar","sequence","mapping"];function c_e(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(o){e[String(o)]=r})}),e}function u_e(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(a_e.indexOf(r)===-1)throw new zY('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=c_e(e.styleAliases||null),l_e.indexOf(this.kind)===-1)throw new zY('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}XY.exports=u_e});var $0=_((wbt,$Y)=>{"use strict";var ZY=Z0(),gP=ym(),A_e=as();function WT(t,e,r){var o=[];return t.include.forEach(function(a){r=WT(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,u){n.tag===a.tag&&n.kind===a.kind&&o.push(u)}),r.push(a)}),r.filter(function(a,n){return o.indexOf(n)===-1})}function f_e(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function o(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e{"use strict";var p_e=as();eK.exports=new p_e("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var nK=_((vbt,rK)=>{"use strict";var h_e=as();rK.exports=new h_e("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var sK=_((Dbt,iK)=>{"use strict";var g_e=as();iK.exports=new g_e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var dP=_((Pbt,oK)=>{"use strict";var d_e=$0();oK.exports=new d_e({explicit:[tK(),nK(),sK()]})});var lK=_((Sbt,aK)=>{"use strict";var m_e=as();function y_e(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function E_e(){return null}function C_e(t){return t===null}aK.exports=new m_e("tag:yaml.org,2002:null",{kind:"scalar",resolve:y_e,construct:E_e,predicate:C_e,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var uK=_((bbt,cK)=>{"use strict";var I_e=as();function w_e(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function B_e(t){return t==="true"||t==="True"||t==="TRUE"}function v_e(t){return Object.prototype.toString.call(t)==="[object Boolean]"}cK.exports=new I_e("tag:yaml.org,2002:bool",{kind:"scalar",resolve:w_e,construct:B_e,predicate:v_e,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var fK=_((xbt,AK)=>{"use strict";var D_e=Z0(),P_e=as();function S_e(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function b_e(t){return 48<=t&&t<=55}function x_e(t){return 48<=t&&t<=57}function k_e(t){if(t===null)return!1;var e=t.length,r=0,o=!1,a;if(!e)return!1;if(a=t[r],(a==="-"||a==="+")&&(a=t[++r]),a==="0"){if(r+1===e)return!0;if(a=t[++r],a==="b"){for(r++;r=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var gK=_((kbt,hK)=>{"use strict";var pK=Z0(),R_e=as(),T_e=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function N_e(t){return!(t===null||!T_e.test(t)||t[t.length-1]==="_")}function L_e(t){var e,r,o,a;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,a=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(n){a.unshift(parseFloat(n,10))}),e=0,o=1,a.forEach(function(n){e+=n*o,o*=60}),r*e):r*parseFloat(e,10)}var O_e=/^[-+]?[0-9]+e/;function M_e(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(pK.isNegativeZero(t))return"-0.0";return r=t.toString(10),O_e.test(r)?r.replace("e",".e"):r}function U_e(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||pK.isNegativeZero(t))}hK.exports=new R_e("tag:yaml.org,2002:float",{kind:"scalar",resolve:N_e,construct:L_e,predicate:U_e,represent:M_e,defaultStyle:"lowercase"})});var YT=_((Qbt,dK)=>{"use strict";var __e=$0();dK.exports=new __e({include:[dP()],implicit:[lK(),uK(),fK(),gK()]})});var KT=_((Fbt,mK)=>{"use strict";var H_e=$0();mK.exports=new H_e({include:[YT()]})});var IK=_((Rbt,CK)=>{"use strict";var q_e=as(),yK=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),EK=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function j_e(t){return t===null?!1:yK.exec(t)!==null||EK.exec(t)!==null}function G_e(t){var e,r,o,a,n,u,A,p=0,h=null,E,w,D;if(e=yK.exec(t),e===null&&(e=EK.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],o=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(r,o,a));if(n=+e[4],u=+e[5],A=+e[6],e[7]){for(p=e[7].slice(0,3);p.length<3;)p+="0";p=+p}return e[9]&&(E=+e[10],w=+(e[11]||0),h=(E*60+w)*6e4,e[9]==="-"&&(h=-h)),D=new Date(Date.UTC(r,o,a,n,u,A,p)),h&&D.setTime(D.getTime()-h),D}function W_e(t){return t.toISOString()}CK.exports=new q_e("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:j_e,construct:G_e,instanceOf:Date,represent:W_e})});var BK=_((Tbt,wK)=>{"use strict";var Y_e=as();function K_e(t){return t==="<<"||t===null}wK.exports=new Y_e("tag:yaml.org,2002:merge",{kind:"scalar",resolve:K_e})});var PK=_((Nbt,DK)=>{"use strict";var eg;try{vK=ve,eg=vK("buffer").Buffer}catch{}var vK,V_e=as(),VT=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function J_e(t){if(t===null)return!1;var e,r,o=0,a=t.length,n=VT;for(r=0;r64)){if(e<0)return!1;o+=6}return o%8===0}function z_e(t){var e,r,o=t.replace(/[\r\n=]/g,""),a=o.length,n=VT,u=0,A=[];for(e=0;e>16&255),A.push(u>>8&255),A.push(u&255)),u=u<<6|n.indexOf(o.charAt(e));return r=a%4*6,r===0?(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)):r===18?(A.push(u>>10&255),A.push(u>>2&255)):r===12&&A.push(u>>4&255),eg?eg.from?eg.from(A):new eg(A):A}function X_e(t){var e="",r=0,o,a,n=t.length,u=VT;for(o=0;o>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]),r=(r<<8)+t[o];return a=n%3,a===0?(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]):a===2?(e+=u[r>>10&63],e+=u[r>>4&63],e+=u[r<<2&63],e+=u[64]):a===1&&(e+=u[r>>2&63],e+=u[r<<4&63],e+=u[64],e+=u[64]),e}function Z_e(t){return eg&&eg.isBuffer(t)}DK.exports=new V_e("tag:yaml.org,2002:binary",{kind:"scalar",resolve:J_e,construct:z_e,predicate:Z_e,represent:X_e})});var bK=_((Obt,SK)=>{"use strict";var $_e=as(),eHe=Object.prototype.hasOwnProperty,tHe=Object.prototype.toString;function rHe(t){if(t===null)return!0;var e=[],r,o,a,n,u,A=t;for(r=0,o=A.length;r{"use strict";var iHe=as(),sHe=Object.prototype.toString;function oHe(t){if(t===null)return!0;var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e{"use strict";var lHe=as(),cHe=Object.prototype.hasOwnProperty;function uHe(t){if(t===null)return!0;var e,r=t;for(e in r)if(cHe.call(r,e)&&r[e]!==null)return!1;return!0}function AHe(t){return t!==null?t:{}}QK.exports=new lHe("tag:yaml.org,2002:set",{kind:"mapping",resolve:uHe,construct:AHe})});var Cm=_((_bt,RK)=>{"use strict";var fHe=$0();RK.exports=new fHe({include:[KT()],implicit:[IK(),BK()],explicit:[PK(),bK(),kK(),FK()]})});var NK=_((Hbt,TK)=>{"use strict";var pHe=as();function hHe(){return!0}function gHe(){}function dHe(){return""}function mHe(t){return typeof t>"u"}TK.exports=new pHe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:hHe,construct:gHe,predicate:mHe,represent:dHe})});var OK=_((qbt,LK)=>{"use strict";var yHe=as();function EHe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),o="";return!(e[0]==="/"&&(r&&(o=r[1]),o.length>3||e[e.length-o.length-1]!=="/"))}function CHe(t){var e=t,r=/\/([gim]*)$/.exec(t),o="";return e[0]==="/"&&(r&&(o=r[1]),e=e.slice(1,e.length-o.length-1)),new RegExp(e,o)}function IHe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function wHe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}LK.exports=new yHe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:EHe,construct:CHe,predicate:wHe,represent:IHe})});var _K=_((jbt,UK)=>{"use strict";var mP;try{MK=ve,mP=MK("esprima")}catch{typeof window<"u"&&(mP=window.esprima)}var MK,BHe=as();function vHe(t){if(t===null)return!1;try{var e="("+t+")",r=mP.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function DHe(t){var e="("+t+")",r=mP.parse(e,{range:!0}),o=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(n){o.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(o,e.slice(a[0]+1,a[1]-1)):new Function(o,"return "+e.slice(a[0],a[1]))}function PHe(t){return t.toString()}function SHe(t){return Object.prototype.toString.call(t)==="[object Function]"}UK.exports=new BHe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:vHe,construct:DHe,predicate:SHe,represent:PHe})});var hw=_((Wbt,qK)=>{"use strict";var HK=$0();qK.exports=HK.DEFAULT=new HK({include:[Cm()],explicit:[NK(),OK(),_K()]})});var aV=_((Ybt,gw)=>{"use strict";var mf=Z0(),JK=ym(),bHe=JY(),zK=Cm(),xHe=hw(),Vp=Object.prototype.hasOwnProperty,yP=1,XK=2,ZK=3,EP=4,JT=1,kHe=2,jK=3,QHe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,FHe=/[\x85\u2028\u2029]/,RHe=/[,\[\]\{\}]/,$K=/^(?:!|!!|![a-z\-]+!)$/i,eV=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function GK(t){return Object.prototype.toString.call(t)}function Wu(t){return t===10||t===13}function rg(t){return t===9||t===32}function Da(t){return t===9||t===32||t===10||t===13}function Im(t){return t===44||t===91||t===93||t===123||t===125}function THe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function NHe(t){return t===120?2:t===117?4:t===85?8:0}function LHe(t){return 48<=t&&t<=57?t-48:-1}function WK(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` +`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function OHe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var tV=new Array(256),rV=new Array(256);for(tg=0;tg<256;tg++)tV[tg]=WK(tg)?1:0,rV[tg]=WK(tg);var tg;function MHe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||xHe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function nV(t,e){return new JK(e,new bHe(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function Qr(t,e){throw nV(t,e)}function CP(t,e){t.onWarning&&t.onWarning.call(null,nV(t,e))}var YK={YAML:function(e,r,o){var a,n,u;e.version!==null&&Qr(e,"duplication of %YAML directive"),o.length!==1&&Qr(e,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(o[0]),a===null&&Qr(e,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),u=parseInt(a[2],10),n!==1&&Qr(e,"unacceptable YAML version of the document"),e.version=o[0],e.checkLineBreaks=u<2,u!==1&&u!==2&&CP(e,"unsupported YAML version of the document")},TAG:function(e,r,o){var a,n;o.length!==2&&Qr(e,"TAG directive accepts exactly two arguments"),a=o[0],n=o[1],$K.test(a)||Qr(e,"ill-formed tag handle (first argument) of the TAG directive"),Vp.call(e.tagMap,a)&&Qr(e,'there is a previously declared suffix for "'+a+'" tag handle'),eV.test(n)||Qr(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[a]=n}};function Kp(t,e,r,o){var a,n,u,A;if(e1&&(t.result+=mf.repeat(` +`,e-1))}function UHe(t,e,r){var o,a,n,u,A,p,h,E,w=t.kind,D=t.result,x;if(x=t.input.charCodeAt(t.position),Da(x)||Im(x)||x===35||x===38||x===42||x===33||x===124||x===62||x===39||x===34||x===37||x===64||x===96||(x===63||x===45)&&(a=t.input.charCodeAt(t.position+1),Da(a)||r&&Im(a)))return!1;for(t.kind="scalar",t.result="",n=u=t.position,A=!1;x!==0;){if(x===58){if(a=t.input.charCodeAt(t.position+1),Da(a)||r&&Im(a))break}else if(x===35){if(o=t.input.charCodeAt(t.position-1),Da(o))break}else{if(t.position===t.lineStart&&IP(t)||r&&Im(x))break;if(Wu(x))if(p=t.line,h=t.lineStart,E=t.lineIndent,Yi(t,!1,-1),t.lineIndent>=e){A=!0,x=t.input.charCodeAt(t.position);continue}else{t.position=u,t.line=p,t.lineStart=h,t.lineIndent=E;break}}A&&(Kp(t,n,u,!1),XT(t,t.line-p),n=u=t.position,A=!1),rg(x)||(u=t.position+1),x=t.input.charCodeAt(++t.position)}return Kp(t,n,u,!1),t.result?!0:(t.kind=w,t.result=D,!1)}function _He(t,e){var r,o,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,o=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Kp(t,o,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)o=t.position,t.position++,a=t.position;else return!0;else Wu(r)?(Kp(t,o,a,!0),XT(t,Yi(t,!1,e)),o=a=t.position):t.position===t.lineStart&&IP(t)?Qr(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);Qr(t,"unexpected end of the stream within a single quoted scalar")}function HHe(t,e){var r,o,a,n,u,A;if(A=t.input.charCodeAt(t.position),A!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=o=t.position;(A=t.input.charCodeAt(t.position))!==0;){if(A===34)return Kp(t,r,t.position,!0),t.position++,!0;if(A===92){if(Kp(t,r,t.position,!0),A=t.input.charCodeAt(++t.position),Wu(A))Yi(t,!1,e);else if(A<256&&tV[A])t.result+=rV[A],t.position++;else if((u=NHe(A))>0){for(a=u,n=0;a>0;a--)A=t.input.charCodeAt(++t.position),(u=THe(A))>=0?n=(n<<4)+u:Qr(t,"expected hexadecimal character");t.result+=OHe(n),t.position++}else Qr(t,"unknown escape sequence");r=o=t.position}else Wu(A)?(Kp(t,r,o,!0),XT(t,Yi(t,!1,e)),r=o=t.position):t.position===t.lineStart&&IP(t)?Qr(t,"unexpected end of the document within a double quoted scalar"):(t.position++,o=t.position)}Qr(t,"unexpected end of the stream within a double quoted scalar")}function qHe(t,e){var r=!0,o,a=t.tag,n,u=t.anchor,A,p,h,E,w,D={},x,C,T,L;if(L=t.input.charCodeAt(t.position),L===91)p=93,w=!1,n=[];else if(L===123)p=125,w=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),L=t.input.charCodeAt(++t.position);L!==0;){if(Yi(t,!0,e),L=t.input.charCodeAt(t.position),L===p)return t.position++,t.tag=a,t.anchor=u,t.kind=w?"mapping":"sequence",t.result=n,!0;r||Qr(t,"missed comma between flow collection entries"),C=x=T=null,h=E=!1,L===63&&(A=t.input.charCodeAt(t.position+1),Da(A)&&(h=E=!0,t.position++,Yi(t,!0,e))),o=t.line,Bm(t,e,yP,!1,!0),C=t.tag,x=t.result,Yi(t,!0,e),L=t.input.charCodeAt(t.position),(E||t.line===o)&&L===58&&(h=!0,L=t.input.charCodeAt(++t.position),Yi(t,!0,e),Bm(t,e,yP,!1,!0),T=t.result),w?wm(t,n,D,C,x,T):h?n.push(wm(t,null,D,C,x,T)):n.push(x),Yi(t,!0,e),L=t.input.charCodeAt(t.position),L===44?(r=!0,L=t.input.charCodeAt(++t.position)):r=!1}Qr(t,"unexpected end of the stream within a flow collection")}function jHe(t,e){var r,o,a=JT,n=!1,u=!1,A=e,p=0,h=!1,E,w;if(w=t.input.charCodeAt(t.position),w===124)o=!1;else if(w===62)o=!0;else return!1;for(t.kind="scalar",t.result="";w!==0;)if(w=t.input.charCodeAt(++t.position),w===43||w===45)JT===a?a=w===43?jK:kHe:Qr(t,"repeat of a chomping mode identifier");else if((E=LHe(w))>=0)E===0?Qr(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?Qr(t,"repeat of an indentation width identifier"):(A=e+E-1,u=!0);else break;if(rg(w)){do w=t.input.charCodeAt(++t.position);while(rg(w));if(w===35)do w=t.input.charCodeAt(++t.position);while(!Wu(w)&&w!==0)}for(;w!==0;){for(zT(t),t.lineIndent=0,w=t.input.charCodeAt(t.position);(!u||t.lineIndentA&&(A=t.lineIndent),Wu(w)){p++;continue}if(t.lineIndente)&&p!==0)Qr(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(Bm(t,e,EP,!0,a)&&(C?D=t.result:x=t.result),C||(wm(t,h,E,w,D,x,n,u),w=D=x=null),Yi(t,!0,-1),L=t.input.charCodeAt(t.position)),t.lineIndent>e&&L!==0)Qr(t,"bad indentation of a mapping entry");else if(t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),w=0,D=t.implicitTypes.length;w tag; it should be "'+x.kind+'", not "'+t.kind+'"'),x.resolve(t.result)?(t.result=x.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Qr(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):Qr(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||E}function VHe(t){var e=t.position,r,o,a,n=!1,u;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(u=t.input.charCodeAt(t.position))!==0&&(Yi(t,!0,-1),u=t.input.charCodeAt(t.position),!(t.lineIndent>0||u!==37));){for(n=!0,u=t.input.charCodeAt(++t.position),r=t.position;u!==0&&!Da(u);)u=t.input.charCodeAt(++t.position);for(o=t.input.slice(r,t.position),a=[],o.length<1&&Qr(t,"directive name must not be less than one character in length");u!==0;){for(;rg(u);)u=t.input.charCodeAt(++t.position);if(u===35){do u=t.input.charCodeAt(++t.position);while(u!==0&&!Wu(u));break}if(Wu(u))break;for(r=t.position;u!==0&&!Da(u);)u=t.input.charCodeAt(++t.position);a.push(t.input.slice(r,t.position))}u!==0&&zT(t),Vp.call(YK,o)?YK[o](t,o,a):CP(t,'unknown document directive "'+o+'"')}if(Yi(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Yi(t,!0,-1)):n&&Qr(t,"directives end mark is expected"),Bm(t,t.lineIndent-1,EP,!1,!0),Yi(t,!0,-1),t.checkLineBreaks&&FHe.test(t.input.slice(e,t.position))&&CP(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&IP(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Yi(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var o=iV(t,r);if(typeof e!="function")return o;for(var a=0,n=o.length;a"u"&&(r=e,e=null),sV(t,e,mf.extend({schema:zK},r))}function zHe(t,e){return oV(t,mf.extend({schema:zK},e))}gw.exports.loadAll=sV;gw.exports.load=oV;gw.exports.safeLoadAll=JHe;gw.exports.safeLoad=zHe});var kV=_((Kbt,tN)=>{"use strict";var mw=Z0(),yw=ym(),XHe=hw(),ZHe=Cm(),gV=Object.prototype.toString,dV=Object.prototype.hasOwnProperty,$He=9,dw=10,e6e=13,t6e=32,r6e=33,n6e=34,mV=35,i6e=37,s6e=38,o6e=39,a6e=42,yV=44,l6e=45,EV=58,c6e=61,u6e=62,A6e=63,f6e=64,CV=91,IV=93,p6e=96,wV=123,h6e=124,BV=125,mo={};mo[0]="\\0";mo[7]="\\a";mo[8]="\\b";mo[9]="\\t";mo[10]="\\n";mo[11]="\\v";mo[12]="\\f";mo[13]="\\r";mo[27]="\\e";mo[34]='\\"';mo[92]="\\\\";mo[133]="\\N";mo[160]="\\_";mo[8232]="\\L";mo[8233]="\\P";var g6e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function d6e(t,e){var r,o,a,n,u,A,p;if(e===null)return{};for(r={},o=Object.keys(e),a=0,n=o.length;a0?t.charCodeAt(n-1):null,D=D&&uV(u,A)}else{for(n=0;no&&t[w+1]!==" ",w=n);else if(!vm(u))return wP;A=n>0?t.charCodeAt(n-1):null,D=D&&uV(u,A)}h=h||E&&n-w-1>o&&t[w+1]!==" "}return!p&&!h?D&&!a(t)?DV:PV:r>9&&vV(t)?wP:h?bV:SV}function w6e(t,e,r,o){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&g6e.indexOf(e)!==-1)return"'"+e+"'";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),u=o||t.flowLevel>-1&&r>=t.flowLevel;function A(p){return y6e(t,p)}switch(I6e(e,u,t.indent,n,A)){case DV:return e;case PV:return"'"+e.replace(/'/g,"''")+"'";case SV:return"|"+AV(e,t.indent)+fV(cV(e,a));case bV:return">"+AV(e,t.indent)+fV(cV(B6e(e,n),a));case wP:return'"'+v6e(e,n)+'"';default:throw new yw("impossible error: invalid scalar style")}}()}function AV(t,e){var r=vV(t)?String(e):"",o=t[t.length-1]===` +`,a=o&&(t[t.length-2]===` +`||t===` +`),n=a?"+":o?"":"-";return r+n+` +`}function fV(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function B6e(t,e){for(var r=/(\n+)([^\n]*)/g,o=function(){var h=t.indexOf(` +`);return h=h!==-1?h:t.length,r.lastIndex=h,pV(t.slice(0,h),e)}(),a=t[0]===` +`||t[0]===" ",n,u;u=r.exec(t);){var A=u[1],p=u[2];n=p[0]===" ",o+=A+(!a&&!n&&p!==""?` +`:"")+pV(p,e),a=n}return o}function pV(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,o,a=0,n,u=0,A=0,p="";o=r.exec(t);)A=o.index,A-a>e&&(n=u>a?u:A,p+=` +`+t.slice(a,n),a=n+1),u=A;return p+=` +`,t.length-a>e&&u>a?p+=t.slice(a,u)+` +`+t.slice(u+1):p+=t.slice(a),p.slice(1)}function v6e(t){for(var e="",r,o,a,n=0;n=55296&&r<=56319&&(o=t.charCodeAt(n+1),o>=56320&&o<=57343)){e+=lV((r-55296)*1024+o-56320+65536),n++;continue}a=mo[r],e+=!a&&vm(r)?t[n]:a||lV(r)}return e}function D6e(t,e,r){var o="",a=t.tag,n,u;for(n=0,u=r.length;n1024&&(E+="? "),E+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),ng(t,e,h,!1,!1)&&(E+=t.dump,o+=E));t.tag=a,t.dump="{"+o+"}"}function b6e(t,e,r,o){var a="",n=t.tag,u=Object.keys(r),A,p,h,E,w,D;if(t.sortKeys===!0)u.sort();else if(typeof t.sortKeys=="function")u.sort(t.sortKeys);else if(t.sortKeys)throw new yw("sortKeys must be a boolean or a function");for(A=0,p=u.length;A1024,w&&(t.dump&&dw===t.dump.charCodeAt(0)?D+="?":D+="? "),D+=t.dump,w&&(D+=ZT(t,e)),ng(t,e+1,E,!0,w)&&(t.dump&&dw===t.dump.charCodeAt(0)?D+=":":D+=": ",D+=t.dump,a+=D));t.tag=n,t.dump=a||"{}"}function hV(t,e,r){var o,a,n,u,A,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,u=a.length;n tag resolver accepts not "'+p+'" style');t.dump=o}return!0}return!1}function ng(t,e,r,o,a,n){t.tag=null,t.dump=r,hV(t,r,!1)||hV(t,r,!0);var u=gV.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>e);var A=u==="[object Object]"||u==="[object Array]",p,h;if(A&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(A&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),u==="[object Object]")o&&Object.keys(t.dump).length!==0?(b6e(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(S6e(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(u==="[object Array]"){var E=t.noArrayIndent&&e>0?e-1:e;o&&t.dump.length!==0?(P6e(t,E,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(D6e(t,E,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(u==="[object String]")t.tag!=="?"&&w6e(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new yw("unacceptable kind of an object to dump "+u)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function x6e(t,e){var r=[],o=[],a,n;for($T(t,r,o),a=0,n=o.length;a{"use strict";var BP=aV(),QV=kV();function vP(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}Fi.exports.Type=as();Fi.exports.Schema=$0();Fi.exports.FAILSAFE_SCHEMA=dP();Fi.exports.JSON_SCHEMA=YT();Fi.exports.CORE_SCHEMA=KT();Fi.exports.DEFAULT_SAFE_SCHEMA=Cm();Fi.exports.DEFAULT_FULL_SCHEMA=hw();Fi.exports.load=BP.load;Fi.exports.loadAll=BP.loadAll;Fi.exports.safeLoad=BP.safeLoad;Fi.exports.safeLoadAll=BP.safeLoadAll;Fi.exports.dump=QV.dump;Fi.exports.safeDump=QV.safeDump;Fi.exports.YAMLException=ym();Fi.exports.MINIMAL_SCHEMA=dP();Fi.exports.SAFE_SCHEMA=Cm();Fi.exports.DEFAULT_SCHEMA=hw();Fi.exports.scan=vP("scan");Fi.exports.parse=vP("parse");Fi.exports.compose=vP("compose");Fi.exports.addConstructor=vP("addConstructor")});var TV=_((Jbt,RV)=>{"use strict";var Q6e=FV();RV.exports=Q6e});var LV=_((zbt,NV)=>{"use strict";function F6e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function ig(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ig)}F6e(ig,Error);ig.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w0){for(w=1,D=1;w({[gt]:Le})))},ce=function(ee){return ee},ue=function(ee){return ee},Ie=oa("correct indentation"),he=" ",De=un(" ",!1),Ee=function(ee){return ee.length===ar*vt},g=function(ee){return ee.length===(ar+1)*vt},me=function(){return ar++,!0},Ce=function(){return ar--,!0},fe=function(){return No()},ie=oa("pseudostring"),Z=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,Pe=qn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Re=/^[^\r\n\t ,\][{}:#"']/,ht=qn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),q=function(){return No().replace(/^ *| *$/g,"")},nt="--",Ne=un("--",!1),Te=/^[a-zA-Z\/0-9]/,ke=qn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Ve=/^[^\r\n\t :,]/,be=qn(["\r",` +`," "," ",":",","],!0,!1),tt="null",He=un("null",!1),b=function(){return null},I="true",S=un("true",!1),y=function(){return!0},R="false",z=un("false",!1),X=function(){return!1},$=oa("string"),se='"',xe=un('"',!1),Fe=function(){return""},lt=function(ee){return ee},Et=function(ee){return ee.join("")},qt=/^[^"\\\0-\x1F\x7F]/,nr=qn(['"',"\\",["\0",""],"\x7F"],!0,!1),St='\\"',cn=un('\\"',!1),Pr=function(){return'"'},yr="\\\\",Rr=un("\\\\",!1),Xr=function(){return"\\"},$n="\\/",Xs=un("\\/",!1),Hi=function(){return"/"},Qs="\\b",Zs=un("\\b",!1),xi=function(){return"\b"},Fs="\\f",$s=un("\\f",!1),SA=function(){return"\f"},gu="\\n",op=un("\\n",!1),ap=function(){return` +`},Rs="\\r",Ln=un("\\r",!1),hs=function(){return"\r"},Ts="\\t",pc=un("\\t",!1),hc=function(){return" "},gc="\\u",bA=un("\\u",!1),xA=function(ee,ye,Le,gt){return String.fromCharCode(parseInt(`0x${ee}${ye}${Le}${gt}`))},Ro=/^[0-9a-fA-F]/,To=qn([["0","9"],["a","f"],["A","F"]],!1,!1),kA=oa("blank space"),pr=/^[ \t]/,Me=qn([" "," "],!1,!1),ia=oa("white space"),dc=/^[ \t\n\r]/,Er=qn([" "," ",` +`,"\r"],!1,!1),du=`\r +`,QA=un(`\r +`,!1),FA=` +`,mc=un(` +`,!1),yc="\r",Il=un("\r",!1),we=0,Tt=0,wl=[{line:1,column:1}],Bi=0,Ns=[],Ft=0,Bn;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function No(){return t.substring(Tt,we)}function ki(){return la(Tt,we)}function vi(ee,ye){throw ye=ye!==void 0?ye:la(Tt,we),mu([oa(ee)],t.substring(Tt,we),ye)}function sa(ee,ye){throw ye=ye!==void 0?ye:la(Tt,we),ca(ee,ye)}function un(ee,ye){return{type:"literal",text:ee,ignoreCase:ye}}function qn(ee,ye,Le){return{type:"class",parts:ee,inverted:ye,ignoreCase:Le}}function Ec(){return{type:"any"}}function lp(){return{type:"end"}}function oa(ee){return{type:"other",description:ee}}function aa(ee){var ye=wl[ee],Le;if(ye)return ye;for(Le=ee-1;!wl[Le];)Le--;for(ye=wl[Le],ye={line:ye.line,column:ye.column};LeBi&&(Bi=we,Ns=[]),Ns.push(ee))}function ca(ee,ye){return new ig(ee,null,null,ye)}function mu(ee,ye,Le){return new ig(ig.buildMessage(ee,ye),ee,ye,Le)}function Bl(){var ee;return ee=RA(),ee}function dn(){var ee,ye,Le;for(ee=we,ye=[],Le=Lo();Le!==r;)ye.push(Le),Le=Lo();return ye!==r&&(Tt=ee,ye=n(ye)),ee=ye,ee}function Lo(){var ee,ye,Le,gt,mt;return ee=we,ye=qa(),ye!==r?(t.charCodeAt(we)===45?(Le=u,we++):(Le=r,Ft===0&&Ze(A)),Le!==r?(gt=Dn(),gt!==r?(mt=Oo(),mt!==r?(Tt=ee,ye=p(mt),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r),ee}function RA(){var ee,ye,Le;for(ee=we,ye=[],Le=TA();Le!==r;)ye.push(Le),Le=TA();return ye!==r&&(Tt=ee,ye=h(ye)),ee=ye,ee}function TA(){var ee,ye,Le,gt,mt,Dt,er,sn,ei;if(ee=we,ye=Dn(),ye===r&&(ye=null),ye!==r){if(Le=we,t.charCodeAt(we)===35?(gt=E,we++):(gt=r,Ft===0&&Ze(w)),gt!==r){if(mt=[],Dt=we,er=we,Ft++,sn=st(),Ft--,sn===r?er=void 0:(we=er,er=r),er!==r?(t.length>we?(sn=t.charAt(we),we++):(sn=r,Ft===0&&Ze(D)),sn!==r?(er=[er,sn],Dt=er):(we=Dt,Dt=r)):(we=Dt,Dt=r),Dt!==r)for(;Dt!==r;)mt.push(Dt),Dt=we,er=we,Ft++,sn=st(),Ft--,sn===r?er=void 0:(we=er,er=r),er!==r?(t.length>we?(sn=t.charAt(we),we++):(sn=r,Ft===0&&Ze(D)),sn!==r?(er=[er,sn],Dt=er):(we=Dt,Dt=r)):(we=Dt,Dt=r);else mt=r;mt!==r?(gt=[gt,mt],Le=gt):(we=Le,Le=r)}else we=Le,Le=r;if(Le===r&&(Le=null),Le!==r){if(gt=[],mt=Je(),mt!==r)for(;mt!==r;)gt.push(mt),mt=Je();else gt=r;gt!==r?(Tt=ee,ye=x(),ee=ye):(we=ee,ee=r)}else we=ee,ee=r}else we=ee,ee=r;if(ee===r&&(ee=we,ye=qa(),ye!==r?(Le=ua(),Le!==r?(gt=Dn(),gt===r&&(gt=null),gt!==r?(t.charCodeAt(we)===58?(mt=C,we++):(mt=r,Ft===0&&Ze(T)),mt!==r?(Dt=Dn(),Dt===r&&(Dt=null),Dt!==r?(er=Oo(),er!==r?(Tt=ee,ye=L(Le,er),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r),ee===r&&(ee=we,ye=qa(),ye!==r?(Le=qi(),Le!==r?(gt=Dn(),gt===r&&(gt=null),gt!==r?(t.charCodeAt(we)===58?(mt=C,we++):(mt=r,Ft===0&&Ze(T)),mt!==r?(Dt=Dn(),Dt===r&&(Dt=null),Dt!==r?(er=Oo(),er!==r?(Tt=ee,ye=L(Le,er),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r),ee===r))){if(ee=we,ye=qa(),ye!==r)if(Le=qi(),Le!==r)if(gt=Dn(),gt!==r)if(mt=Cc(),mt!==r){if(Dt=[],er=Je(),er!==r)for(;er!==r;)Dt.push(er),er=Je();else Dt=r;Dt!==r?(Tt=ee,ye=L(Le,mt),ee=ye):(we=ee,ee=r)}else we=ee,ee=r;else we=ee,ee=r;else we=ee,ee=r;else we=ee,ee=r;if(ee===r)if(ee=we,ye=qa(),ye!==r)if(Le=qi(),Le!==r){if(gt=[],mt=we,Dt=Dn(),Dt===r&&(Dt=null),Dt!==r?(t.charCodeAt(we)===44?(er=U,we++):(er=r,Ft===0&&Ze(J)),er!==r?(sn=Dn(),sn===r&&(sn=null),sn!==r?(ei=qi(),ei!==r?(Tt=mt,Dt=te(Le,ei),mt=Dt):(we=mt,mt=r)):(we=mt,mt=r)):(we=mt,mt=r)):(we=mt,mt=r),mt!==r)for(;mt!==r;)gt.push(mt),mt=we,Dt=Dn(),Dt===r&&(Dt=null),Dt!==r?(t.charCodeAt(we)===44?(er=U,we++):(er=r,Ft===0&&Ze(J)),er!==r?(sn=Dn(),sn===r&&(sn=null),sn!==r?(ei=qi(),ei!==r?(Tt=mt,Dt=te(Le,ei),mt=Dt):(we=mt,mt=r)):(we=mt,mt=r)):(we=mt,mt=r)):(we=mt,mt=r);else gt=r;gt!==r?(mt=Dn(),mt===r&&(mt=null),mt!==r?(t.charCodeAt(we)===58?(Dt=C,we++):(Dt=r,Ft===0&&Ze(T)),Dt!==r?(er=Dn(),er===r&&(er=null),er!==r?(sn=Oo(),sn!==r?(Tt=ee,ye=le(Le,gt,sn),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)}else we=ee,ee=r;else we=ee,ee=r}return ee}function Oo(){var ee,ye,Le,gt,mt,Dt,er;if(ee=we,ye=we,Ft++,Le=we,gt=st(),gt!==r?(mt=Ot(),mt!==r?(t.charCodeAt(we)===45?(Dt=u,we++):(Dt=r,Ft===0&&Ze(A)),Dt!==r?(er=Dn(),er!==r?(gt=[gt,mt,Dt,er],Le=gt):(we=Le,Le=r)):(we=Le,Le=r)):(we=Le,Le=r)):(we=Le,Le=r),Ft--,Le!==r?(we=ye,ye=void 0):ye=r,ye!==r?(Le=Je(),Le!==r?(gt=vn(),gt!==r?(mt=dn(),mt!==r?(Dt=Mo(),Dt!==r?(Tt=ee,ye=ce(mt),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r),ee===r&&(ee=we,ye=st(),ye!==r?(Le=vn(),Le!==r?(gt=RA(),gt!==r?(mt=Mo(),mt!==r?(Tt=ee,ye=ce(gt),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r),ee===r))if(ee=we,ye=vl(),ye!==r){if(Le=[],gt=Je(),gt!==r)for(;gt!==r;)Le.push(gt),gt=Je();else Le=r;Le!==r?(Tt=ee,ye=ue(ye),ee=ye):(we=ee,ee=r)}else we=ee,ee=r;return ee}function qa(){var ee,ye,Le;for(Ft++,ee=we,ye=[],t.charCodeAt(we)===32?(Le=he,we++):(Le=r,Ft===0&&Ze(De));Le!==r;)ye.push(Le),t.charCodeAt(we)===32?(Le=he,we++):(Le=r,Ft===0&&Ze(De));return ye!==r?(Tt=we,Le=Ee(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],ee=ye):(we=ee,ee=r)):(we=ee,ee=r),Ft--,ee===r&&(ye=r,Ft===0&&Ze(Ie)),ee}function Ot(){var ee,ye,Le;for(ee=we,ye=[],t.charCodeAt(we)===32?(Le=he,we++):(Le=r,Ft===0&&Ze(De));Le!==r;)ye.push(Le),t.charCodeAt(we)===32?(Le=he,we++):(Le=r,Ft===0&&Ze(De));return ye!==r?(Tt=we,Le=g(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],ee=ye):(we=ee,ee=r)):(we=ee,ee=r),ee}function vn(){var ee;return Tt=we,ee=me(),ee?ee=void 0:ee=r,ee}function Mo(){var ee;return Tt=we,ee=Ce(),ee?ee=void 0:ee=r,ee}function ua(){var ee;return ee=ja(),ee===r&&(ee=Dl()),ee}function qi(){var ee,ye,Le;if(ee=ja(),ee===r){if(ee=we,ye=[],Le=Aa(),Le!==r)for(;Le!==r;)ye.push(Le),Le=Aa();else ye=r;ye!==r&&(Tt=ee,ye=fe()),ee=ye}return ee}function vl(){var ee;return ee=Di(),ee===r&&(ee=rs(),ee===r&&(ee=ja(),ee===r&&(ee=Dl()))),ee}function Cc(){var ee;return ee=Di(),ee===r&&(ee=ja(),ee===r&&(ee=Aa())),ee}function Dl(){var ee,ye,Le,gt,mt,Dt;if(Ft++,ee=we,Z.test(t.charAt(we))?(ye=t.charAt(we),we++):(ye=r,Ft===0&&Ze(Pe)),ye!==r){for(Le=[],gt=we,mt=Dn(),mt===r&&(mt=null),mt!==r?(Re.test(t.charAt(we))?(Dt=t.charAt(we),we++):(Dt=r,Ft===0&&Ze(ht)),Dt!==r?(mt=[mt,Dt],gt=mt):(we=gt,gt=r)):(we=gt,gt=r);gt!==r;)Le.push(gt),gt=we,mt=Dn(),mt===r&&(mt=null),mt!==r?(Re.test(t.charAt(we))?(Dt=t.charAt(we),we++):(Dt=r,Ft===0&&Ze(ht)),Dt!==r?(mt=[mt,Dt],gt=mt):(we=gt,gt=r)):(we=gt,gt=r);Le!==r?(Tt=ee,ye=q(),ee=ye):(we=ee,ee=r)}else we=ee,ee=r;return Ft--,ee===r&&(ye=r,Ft===0&&Ze(ie)),ee}function Aa(){var ee,ye,Le,gt,mt;if(ee=we,t.substr(we,2)===nt?(ye=nt,we+=2):(ye=r,Ft===0&&Ze(Ne)),ye===r&&(ye=null),ye!==r)if(Te.test(t.charAt(we))?(Le=t.charAt(we),we++):(Le=r,Ft===0&&Ze(ke)),Le!==r){for(gt=[],Ve.test(t.charAt(we))?(mt=t.charAt(we),we++):(mt=r,Ft===0&&Ze(be));mt!==r;)gt.push(mt),Ve.test(t.charAt(we))?(mt=t.charAt(we),we++):(mt=r,Ft===0&&Ze(be));gt!==r?(Tt=ee,ye=q(),ee=ye):(we=ee,ee=r)}else we=ee,ee=r;else we=ee,ee=r;return ee}function Di(){var ee,ye;return ee=we,t.substr(we,4)===tt?(ye=tt,we+=4):(ye=r,Ft===0&&Ze(He)),ye!==r&&(Tt=ee,ye=b()),ee=ye,ee}function rs(){var ee,ye;return ee=we,t.substr(we,4)===I?(ye=I,we+=4):(ye=r,Ft===0&&Ze(S)),ye!==r&&(Tt=ee,ye=y()),ee=ye,ee===r&&(ee=we,t.substr(we,5)===R?(ye=R,we+=5):(ye=r,Ft===0&&Ze(z)),ye!==r&&(Tt=ee,ye=X()),ee=ye),ee}function ja(){var ee,ye,Le,gt;return Ft++,ee=we,t.charCodeAt(we)===34?(ye=se,we++):(ye=r,Ft===0&&Ze(xe)),ye!==r?(t.charCodeAt(we)===34?(Le=se,we++):(Le=r,Ft===0&&Ze(xe)),Le!==r?(Tt=ee,ye=Fe(),ee=ye):(we=ee,ee=r)):(we=ee,ee=r),ee===r&&(ee=we,t.charCodeAt(we)===34?(ye=se,we++):(ye=r,Ft===0&&Ze(xe)),ye!==r?(Le=yu(),Le!==r?(t.charCodeAt(we)===34?(gt=se,we++):(gt=r,Ft===0&&Ze(xe)),gt!==r?(Tt=ee,ye=lt(Le),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)),Ft--,ee===r&&(ye=r,Ft===0&&Ze($)),ee}function yu(){var ee,ye,Le;if(ee=we,ye=[],Le=Pl(),Le!==r)for(;Le!==r;)ye.push(Le),Le=Pl();else ye=r;return ye!==r&&(Tt=ee,ye=Et(ye)),ee=ye,ee}function Pl(){var ee,ye,Le,gt,mt,Dt;return qt.test(t.charAt(we))?(ee=t.charAt(we),we++):(ee=r,Ft===0&&Ze(nr)),ee===r&&(ee=we,t.substr(we,2)===St?(ye=St,we+=2):(ye=r,Ft===0&&Ze(cn)),ye!==r&&(Tt=ee,ye=Pr()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===yr?(ye=yr,we+=2):(ye=r,Ft===0&&Ze(Rr)),ye!==r&&(Tt=ee,ye=Xr()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===$n?(ye=$n,we+=2):(ye=r,Ft===0&&Ze(Xs)),ye!==r&&(Tt=ee,ye=Hi()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===Qs?(ye=Qs,we+=2):(ye=r,Ft===0&&Ze(Zs)),ye!==r&&(Tt=ee,ye=xi()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===Fs?(ye=Fs,we+=2):(ye=r,Ft===0&&Ze($s)),ye!==r&&(Tt=ee,ye=SA()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===gu?(ye=gu,we+=2):(ye=r,Ft===0&&Ze(op)),ye!==r&&(Tt=ee,ye=ap()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===Rs?(ye=Rs,we+=2):(ye=r,Ft===0&&Ze(Ln)),ye!==r&&(Tt=ee,ye=hs()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===Ts?(ye=Ts,we+=2):(ye=r,Ft===0&&Ze(pc)),ye!==r&&(Tt=ee,ye=hc()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===gc?(ye=gc,we+=2):(ye=r,Ft===0&&Ze(bA)),ye!==r?(Le=pi(),Le!==r?(gt=pi(),gt!==r?(mt=pi(),mt!==r?(Dt=pi(),Dt!==r?(Tt=ee,ye=xA(Le,gt,mt,Dt),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)))))))))),ee}function pi(){var ee;return Ro.test(t.charAt(we))?(ee=t.charAt(we),we++):(ee=r,Ft===0&&Ze(To)),ee}function Dn(){var ee,ye;if(Ft++,ee=[],pr.test(t.charAt(we))?(ye=t.charAt(we),we++):(ye=r,Ft===0&&Ze(Me)),ye!==r)for(;ye!==r;)ee.push(ye),pr.test(t.charAt(we))?(ye=t.charAt(we),we++):(ye=r,Ft===0&&Ze(Me));else ee=r;return Ft--,ee===r&&(ye=r,Ft===0&&Ze(kA)),ee}function Sl(){var ee,ye;if(Ft++,ee=[],dc.test(t.charAt(we))?(ye=t.charAt(we),we++):(ye=r,Ft===0&&Ze(Er)),ye!==r)for(;ye!==r;)ee.push(ye),dc.test(t.charAt(we))?(ye=t.charAt(we),we++):(ye=r,Ft===0&&Ze(Er));else ee=r;return Ft--,ee===r&&(ye=r,Ft===0&&Ze(ia)),ee}function Je(){var ee,ye,Le,gt,mt,Dt;if(ee=we,ye=st(),ye!==r){for(Le=[],gt=we,mt=Dn(),mt===r&&(mt=null),mt!==r?(Dt=st(),Dt!==r?(mt=[mt,Dt],gt=mt):(we=gt,gt=r)):(we=gt,gt=r);gt!==r;)Le.push(gt),gt=we,mt=Dn(),mt===r&&(mt=null),mt!==r?(Dt=st(),Dt!==r?(mt=[mt,Dt],gt=mt):(we=gt,gt=r)):(we=gt,gt=r);Le!==r?(ye=[ye,Le],ee=ye):(we=ee,ee=r)}else we=ee,ee=r;return ee}function st(){var ee;return t.substr(we,2)===du?(ee=du,we+=2):(ee=r,Ft===0&&Ze(QA)),ee===r&&(t.charCodeAt(we)===10?(ee=FA,we++):(ee=r,Ft===0&&Ze(mc)),ee===r&&(t.charCodeAt(we)===13?(ee=yc,we++):(ee=r,Ft===0&&Ze(Il)))),ee}let vt=2,ar=0;if(Bn=a(),Bn!==r&&we===t.length)return Bn;throw Bn!==r&&we"u"?!0:typeof t=="object"&&t!==null&&!Array.isArray(t)?Object.keys(t).every(e=>_V(t[e])):!1}function rN(t,e,r){if(t===null)return`null +`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} +`;if(typeof t=="string")return`${MV(t)} +`;if(Array.isArray(t)){if(t.length===0)return`[] +`;let o=" ".repeat(e);return` +${t.map(n=>`${o}- ${rN(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[o,a]=t instanceof DP?[t.data,!1]:[t,!0],n=" ".repeat(e),u=Object.keys(o);a&&u.sort((p,h)=>{let E=OV.indexOf(p),w=OV.indexOf(h);return E===-1&&w===-1?ph?1:0:E!==-1&&w===-1?-1:E===-1&&w!==-1?1:E-w});let A=u.filter(p=>!_V(o[p])).map((p,h)=>{let E=o[p],w=MV(p),D=rN(E,e+1,!0),x=h>0||r?n:"",C=w.length>1024?`? ${w} +${x}:`:`${w}:`,T=D.startsWith(` +`)?D:` ${D}`;return`${x}${C}${T}`}).join(e===0?` +`:"")||` +`;return r?` +${A}`:`${A}`}throw new Error(`Unsupported value type (${t})`)}function Pa(t){try{let e=rN(t,0,!1);return e!==` +`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function N6e(t){return t.endsWith(` +`)||(t+=` +`),(0,UV.parse)(t)}function O6e(t){if(L6e.test(t))return N6e(t);let e=(0,PP.safeLoad)(t,{schema:PP.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Ki(t){return O6e(t)}var PP,UV,T6e,OV,DP,L6e,HV=It(()=>{PP=et(TV()),UV=et(LV()),T6e=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,OV=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],DP=class{constructor(e){this.data=e}};Pa.PreserveOrdering=DP;L6e=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var Ew={};Kt(Ew,{parseResolution:()=>pP,parseShell:()=>uP,parseSyml:()=>Ki,stringifyArgument:()=>qT,stringifyArgumentSegment:()=>jT,stringifyArithmeticExpression:()=>fP,stringifyCommand:()=>HT,stringifyCommandChain:()=>mm,stringifyCommandChainThen:()=>_T,stringifyCommandLine:()=>AP,stringifyCommandLineThen:()=>UT,stringifyEnvSegment:()=>cP,stringifyRedirectArgument:()=>fw,stringifyResolution:()=>hP,stringifyShell:()=>dm,stringifyShellLine:()=>dm,stringifySyml:()=>Pa,stringifyValueArgument:()=>J0});var Ol=It(()=>{_Y();GY();HV()});var jV=_((txt,nN)=>{"use strict";var M6e=t=>{let e=!1,r=!1,o=!1;for(let a=0;a{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=M6e(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};nN.exports=qV;nN.exports.default=qV});var GV=_((rxt,U6e)=>{U6e.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var sg=_(nl=>{"use strict";var YV=GV(),ls=process.env;Object.defineProperty(nl,"_vendors",{value:YV.map(function(t){return t.constant})});nl.name=null;nl.isPR=null;YV.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(o){return WV(o)});if(nl[t.constant]=r,!!r)switch(nl.name=t.name,typeof t.pr){case"string":nl.isPR=!!ls[t.pr];break;case"object":"env"in t.pr?nl.isPR=t.pr.env in ls&&ls[t.pr.env]!==t.pr.ne:"any"in t.pr?nl.isPR=t.pr.any.some(function(o){return!!ls[o]}):nl.isPR=WV(t.pr);break;default:nl.isPR=null}});nl.isCI=!!(ls.CI!=="false"&&(ls.BUILD_ID||ls.BUILD_NUMBER||ls.CI||ls.CI_APP_ID||ls.CI_BUILD_ID||ls.CI_BUILD_NUMBER||ls.CI_NAME||ls.CONTINUOUS_INTEGRATION||ls.RUN_ID||nl.name));function WV(t){return typeof t=="string"?!!ls[t]:"env"in t?ls[t.env]&&ls[t.env].includes(t.includes):"any"in t?t.any.some(function(e){return!!ls[e]}):Object.keys(t).every(function(e){return ls[e]===t[e]})}});var Kn,pn,og,iN,SP,KV,sN,oN,bP=It(()=>{(function(t){t.StartOfInput="\0",t.EndOfInput="",t.EndOfPartialInput=""})(Kn||(Kn={}));(function(t){t[t.InitialNode=0]="InitialNode",t[t.SuccessNode=1]="SuccessNode",t[t.ErrorNode=2]="ErrorNode",t[t.CustomNode=3]="CustomNode"})(pn||(pn={}));og=-1,iN=/^(-h|--help)(?:=([0-9]+))?$/,SP=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,KV=/^-[a-zA-Z]{2,}$/,sN=/^([^=]+)=([\s\S]*)$/,oN=process.env.DEBUG_CLI==="1"});var it,Dm,xP,aN,kP=It(()=>{bP();it=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Dm=class extends Error{constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(o=>o.reason!==null&&o.reason===r[0].reason)){let[{reason:o}]=this.candidates;this.message=`${o} + +${this.candidates.map(({usage:a})=>`$ ${a}`).join(` +`)}`}else if(this.candidates.length===1){let[{usage:o}]=this.candidates;this.message=`Command not found; did you mean: + +$ ${o} +${aN(e)}`}else this.message=`Command not found; did you mean one of: + +${this.candidates.map(({usage:o},a)=>`${`${a}.`.padStart(4)} ${o}`).join(` +`)} + +${aN(e)}`}},xP=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: + +${this.usages.map((o,a)=>`${`${a}.`.padStart(4)} ${o}`).join(` +`)} + +${aN(e)}`}},aN=t=>`While running ${t.filter(e=>e!==Kn.EndOfInput&&e!==Kn.EndOfPartialInput).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function _6e(t){let e=t.split(` +`),r=e.filter(a=>a.match(/\S/)),o=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(o).trimRight()).join(` +`)}function yo(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` +`),t=_6e(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 + +`),t=t.replace(/\n(\n)?\n*/g,(o,a)=>a||" "),r&&(t=t.split(/\n/).map(o=>{let a=o.match(/^\s*[*-][\t ]+(.*)/);if(!a)return o.match(/(.{1,80})(?: |$)/g).join(` +`);let n=o.length-o.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((u,A)=>" ".repeat(n)+(A===0?"- ":" ")+u).join(` +`)}).join(` + +`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(o,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(o,a,n)=>e.bold(a+n+a)),t?`${t} +`:""}var lN,VV,JV,cN=It(()=>{lN=Array(80).fill("\u2501");for(let t=0;t<=24;++t)lN[lN.length-t]=`\x1B[38;5;${232+t}m\u2501`;VV={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<75?` ${lN.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},JV={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function Wo(t){return{...t,[Cw]:!0}}function Yu(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function QP(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(!r)return"validation failed";let[,o,a]=r;return e&&(a=a[0].toLowerCase()+a.slice(1)),a=o!=="."||!e?`${o.replace(/^\.(\[|$)/,"$1")}: ${a}`:`: ${a}`,a}function Iw(t,e){return e.length===1?new it(`${t}${QP(e[0],{mergeName:!0})}`):new it(`${t}: +${e.map(r=>` +- ${QP(r)}`).join("")}`)}function ag(t,e,r){if(typeof r>"u")return e;let o=[],a=[],n=A=>{let p=e;return e=A,n.bind(null,p)};if(!r(e,{errors:o,coercions:a,coercion:n}))throw Iw(`Invalid value for ${t}`,o);for(let[,A]of a)A();return e}var Cw,yf=It(()=>{kP();Cw=Symbol("clipanion/isOption")});var Yo={};Kt(Yo,{KeyRelationship:()=>Ku,TypeAssertionError:()=>zp,applyCascade:()=>vw,as:()=>sqe,assert:()=>rqe,assertWithErrors:()=>nqe,cascade:()=>NP,fn:()=>oqe,hasAtLeastOneKey:()=>dN,hasExactLength:()=>eJ,hasForbiddenKeys:()=>Dqe,hasKeyRelationship:()=>Pw,hasMaxLength:()=>lqe,hasMinLength:()=>aqe,hasMutuallyExclusiveKeys:()=>Pqe,hasRequiredKeys:()=>vqe,hasUniqueItems:()=>cqe,isArray:()=>FP,isAtLeast:()=>hN,isAtMost:()=>fqe,isBase64:()=>Cqe,isBoolean:()=>V6e,isDate:()=>z6e,isDict:()=>$6e,isEnum:()=>js,isHexColor:()=>Eqe,isISO8601:()=>yqe,isInExclusiveRange:()=>hqe,isInInclusiveRange:()=>pqe,isInstanceOf:()=>tqe,isInteger:()=>gN,isJSON:()=>Iqe,isLiteral:()=>XV,isLowerCase:()=>gqe,isMap:()=>Z6e,isNegative:()=>uqe,isNullable:()=>Bqe,isNumber:()=>fN,isObject:()=>ZV,isOneOf:()=>pN,isOptional:()=>wqe,isPartial:()=>eqe,isPayload:()=>J6e,isPositive:()=>Aqe,isRecord:()=>TP,isSet:()=>X6e,isString:()=>Sm,isTuple:()=>RP,isUUID4:()=>mqe,isUnknown:()=>AN,isUpperCase:()=>dqe,makeTrait:()=>$V,makeValidator:()=>qr,matchesRegExp:()=>Bw,softAssert:()=>iqe});function Vn(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":typeof t=="symbol"?`<${t.toString()}>`:Array.isArray(t)?"an array":JSON.stringify(t)}function Pm(t,e){if(t.length===0)return"nothing";if(t.length===1)return Vn(t[0]);let r=t.slice(0,-1),o=t[t.length-1],a=t.length>2?`, ${e} `:` ${e} `;return`${r.map(n=>Vn(n)).join(", ")}${a}${Vn(o)}`}function Jp(t,e){var r,o,a;return typeof e=="number"?`${(r=t?.p)!==null&&r!==void 0?r:"."}[${e}]`:H6e.test(e)?`${(o=t?.p)!==null&&o!==void 0?o:""}.${e}`:`${(a=t?.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function uN(t,e,r){return t===1?e:r}function gr({errors:t,p:e}={},r){return t?.push(`${e??"."}: ${r}`),!1}function Y6e(t,e){return r=>{t[e]=r}}function Vu(t,e){return r=>{let o=t[e];return t[e]=r,Vu(t,e).bind(null,o)}}function ww(t,e,r){let o=()=>(t(r()),a),a=()=>(t(e),o);return o}function AN(){return qr({test:(t,e)=>!0})}function XV(t){return qr({test:(e,r)=>e!==t?gr(r,`Expected ${Vn(t)} (got ${Vn(e)})`):!0})}function Sm(){return qr({test:(t,e)=>typeof t!="string"?gr(e,`Expected a string (got ${Vn(t)})`):!0})}function js(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>typeof a=="string"||typeof a=="number"),o=new Set(e);return o.size===1?XV([...o][0]):qr({test:(a,n)=>o.has(a)?!0:r?gr(n,`Expected one of ${Pm(e,"or")} (got ${Vn(a)})`):gr(n,`Expected a valid enumeration value (got ${Vn(a)})`)})}function V6e(){return qr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return gr(e,"Unbound coercion result");let o=K6e.get(t);if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return gr(e,`Expected a boolean (got ${Vn(t)})`)}return!0}})}function fN(){return qr({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return gr(e,"Unbound coercion result");let o;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)o=a;else return gr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return gr(e,`Expected a number (got ${Vn(t)})`)}return!0}})}function J6e(t){return qr({test:(e,r)=>{var o;if(typeof r?.coercions>"u")return gr(r,"The isPayload predicate can only be used with coercion enabled");if(typeof r.coercion>"u")return gr(r,"Unbound coercion result");if(typeof e!="string")return gr(r,`Expected a string (got ${Vn(e)})`);let a;try{a=JSON.parse(e)}catch{return gr(r,`Expected a JSON string (got ${Vn(e)})`)}let n={value:a};return t(a,Object.assign(Object.assign({},r),{coercion:Vu(n,"value")}))?(r.coercions.push([(o=r.p)!==null&&o!==void 0?o:".",r.coercion.bind(null,n.value)]),!0):!1}})}function z6e(){return qr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return gr(e,"Unbound coercion result");let o;if(typeof t=="string"&&zV.test(t))o=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))o=new Date(a*1e3);else return gr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return gr(e,`Expected a date (got ${Vn(t)})`)}return!0}})}function FP(t,{delimiter:e}={}){return qr({test:(r,o)=>{var a;let n=r;if(typeof r=="string"&&typeof e<"u"&&typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return gr(o,"Unbound coercion result");r=r.split(e)}if(!Array.isArray(r))return gr(o,`Expected an array (got ${Vn(r)})`);let u=!0;for(let A=0,p=r.length;A{var n,u;if(Object.getPrototypeOf(o).toString()==="[object Set]")if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return gr(a,"Unbound coercion result");let A=[...o],p=[...o];if(!r(p,Object.assign(Object.assign({},a),{coercion:void 0})))return!1;let h=()=>p.some((E,w)=>E!==A[w])?new Set(p):o;return a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",ww(a.coercion,o,h)]),!0}else{let A=!0;for(let p of o)if(A=t(p,Object.assign({},a))&&A,!A&&a?.errors==null)break;return A}if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return gr(a,"Unbound coercion result");let A={value:o};return r(o,Object.assign(Object.assign({},a),{coercion:Vu(A,"value")}))?(a.coercions.push([(u=a.p)!==null&&u!==void 0?u:".",ww(a.coercion,o,()=>new Set(A.value))]),!0):!1}return gr(a,`Expected a set (got ${Vn(o)})`)}})}function Z6e(t,e){let r=FP(RP([t,e])),o=TP(e,{keys:t});return qr({test:(a,n)=>{var u,A,p;if(Object.getPrototypeOf(a).toString()==="[object Map]")if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return gr(n,"Unbound coercion result");let h=[...a],E=[...a];if(!r(E,Object.assign(Object.assign({},n),{coercion:void 0})))return!1;let w=()=>E.some((D,x)=>D[0]!==h[x][0]||D[1]!==h[x][1])?new Map(E):a;return n.coercions.push([(u=n.p)!==null&&u!==void 0?u:".",ww(n.coercion,a,w)]),!0}else{let h=!0;for(let[E,w]of a)if(h=t(E,Object.assign({},n))&&h,!h&&n?.errors==null||(h=e(w,Object.assign(Object.assign({},n),{p:Jp(n,E)}))&&h,!h&&n?.errors==null))break;return h}if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return gr(n,"Unbound coercion result");let h={value:a};return Array.isArray(a)?r(a,Object.assign(Object.assign({},n),{coercion:void 0}))?(n.coercions.push([(A=n.p)!==null&&A!==void 0?A:".",ww(n.coercion,a,()=>new Map(h.value))]),!0):!1:o(a,Object.assign(Object.assign({},n),{coercion:Vu(h,"value")}))?(n.coercions.push([(p=n.p)!==null&&p!==void 0?p:".",ww(n.coercion,a,()=>new Map(Object.entries(h.value)))]),!0):!1}return gr(n,`Expected a map (got ${Vn(a)})`)}})}function RP(t,{delimiter:e}={}){let r=eJ(t.length);return qr({test:(o,a)=>{var n;if(typeof o=="string"&&typeof e<"u"&&typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return gr(a,"Unbound coercion result");o=o.split(e),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)])}if(!Array.isArray(o))return gr(a,`Expected a tuple (got ${Vn(o)})`);let u=r(o,Object.assign({},a));for(let A=0,p=o.length;A{var n;if(Array.isArray(o)&&typeof a?.coercions<"u")return typeof a?.coercion>"u"?gr(a,"Unbound coercion result"):r(o,Object.assign(Object.assign({},a),{coercion:void 0}))?(o=Object.fromEntries(o),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)]),!0):!1;if(typeof o!="object"||o===null)return gr(a,`Expected an object (got ${Vn(o)})`);let u=Object.keys(o),A=!0;for(let p=0,h=u.length;p{if(typeof a!="object"||a===null)return gr(n,`Expected an object (got ${Vn(a)})`);let u=new Set([...r,...Object.keys(a)]),A={},p=!0;for(let h of u){if(h==="constructor"||h==="__proto__")p=gr(Object.assign(Object.assign({},n),{p:Jp(n,h)}),"Unsafe property name");else{let E=Object.prototype.hasOwnProperty.call(t,h)?t[h]:void 0,w=Object.prototype.hasOwnProperty.call(a,h)?a[h]:void 0;typeof E<"u"?p=E(w,Object.assign(Object.assign({},n),{p:Jp(n,h),coercion:Vu(a,h)}))&&p:e===null?p=gr(Object.assign(Object.assign({},n),{p:Jp(n,h)}),`Extraneous property (got ${Vn(w)})`):Object.defineProperty(A,h,{enumerable:!0,get:()=>w,set:Y6e(a,h)})}if(!p&&n?.errors==null)break}return e!==null&&(p||n?.errors!=null)&&(p=e(A,n)&&p),p}});return Object.assign(o,{properties:t})}function eqe(t){return ZV(t,{extra:TP(AN())})}function $V(t){return()=>t}function qr({test:t}){return $V(t)()}function rqe(t,e){if(!e(t))throw new zp}function nqe(t,e){let r=[];if(!e(t,{errors:r}))throw new zp({errors:r})}function iqe(t,e){}function sqe(t,e,{coerce:r=!1,errors:o,throw:a}={}){let n=o?[]:void 0;if(!r){if(e(t,{errors:n}))return a?t:{value:t,errors:void 0};if(a)throw new zp({errors:n});return{value:void 0,errors:n??!0}}let u={value:t},A=Vu(u,"value"),p=[];if(!e(t,{errors:n,coercion:A,coercions:p})){if(a)throw new zp({errors:n});return{value:void 0,errors:n??!0}}for(let[,h]of p)h();return a?u.value:{value:u.value,errors:void 0}}function oqe(t,e){let r=RP(t);return(...o)=>{if(!r(o))throw new zp;return e(...o)}}function aqe(t){return qr({test:(e,r)=>e.length>=t?!0:gr(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)})}function lqe(t){return qr({test:(e,r)=>e.length<=t?!0:gr(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)})}function eJ(t){return qr({test:(e,r)=>e.length!==t?gr(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0})}function cqe({map:t}={}){return qr({test:(e,r)=>{let o=new Set,a=new Set;for(let n=0,u=e.length;nt<=0?!0:gr(e,`Expected to be negative (got ${t})`)})}function Aqe(){return qr({test:(t,e)=>t>=0?!0:gr(e,`Expected to be positive (got ${t})`)})}function hN(t){return qr({test:(e,r)=>e>=t?!0:gr(r,`Expected to be at least ${t} (got ${e})`)})}function fqe(t){return qr({test:(e,r)=>e<=t?!0:gr(r,`Expected to be at most ${t} (got ${e})`)})}function pqe(t,e){return qr({test:(r,o)=>r>=t&&r<=e?!0:gr(o,`Expected to be in the [${t}; ${e}] range (got ${r})`)})}function hqe(t,e){return qr({test:(r,o)=>r>=t&&re!==Math.round(e)?gr(r,`Expected to be an integer (got ${e})`):!t&&!Number.isSafeInteger(e)?gr(r,`Expected to be a safe integer (got ${e})`):!0})}function Bw(t){return qr({test:(e,r)=>t.test(e)?!0:gr(r,`Expected to match the pattern ${t.toString()} (got ${Vn(e)})`)})}function gqe(){return qr({test:(t,e)=>t!==t.toLowerCase()?gr(e,`Expected to be all-lowercase (got ${t})`):!0})}function dqe(){return qr({test:(t,e)=>t!==t.toUpperCase()?gr(e,`Expected to be all-uppercase (got ${t})`):!0})}function mqe(){return qr({test:(t,e)=>W6e.test(t)?!0:gr(e,`Expected to be a valid UUID v4 (got ${Vn(t)})`)})}function yqe(){return qr({test:(t,e)=>zV.test(t)?!0:gr(e,`Expected to be a valid ISO 8601 date string (got ${Vn(t)})`)})}function Eqe({alpha:t=!1}){return qr({test:(e,r)=>(t?q6e.test(e):j6e.test(e))?!0:gr(r,`Expected to be a valid hexadecimal color string (got ${Vn(e)})`)})}function Cqe(){return qr({test:(t,e)=>G6e.test(t)?!0:gr(e,`Expected to be a valid base 64 string (got ${Vn(t)})`)})}function Iqe(t=AN()){return qr({test:(e,r)=>{let o;try{o=JSON.parse(e)}catch{return gr(r,`Expected to be a valid JSON string (got ${Vn(e)})`)}return t(o,r)}})}function NP(t,...e){let r=Array.isArray(e[0])?e[0]:e;return qr({test:(o,a)=>{var n,u;let A={value:o},p=typeof a?.coercions<"u"?Vu(A,"value"):void 0,h=typeof a?.coercions<"u"?[]:void 0;if(!t(o,Object.assign(Object.assign({},a),{coercion:p,coercions:h})))return!1;let E=[];if(typeof h<"u")for(let[,w]of h)E.push(w());try{if(typeof a?.coercions<"u"){if(A.value!==o){if(typeof a?.coercion>"u")return gr(a,"Unbound coercion result");a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,A.value)])}(u=a?.coercions)===null||u===void 0||u.push(...h)}return r.every(w=>w(A.value,a))}finally{for(let w of E)w()}}})}function vw(t,...e){let r=Array.isArray(e[0])?e[0]:e;return NP(t,r)}function wqe(t){return qr({test:(e,r)=>typeof e>"u"?!0:t(e,r)})}function Bqe(t){return qr({test:(e,r)=>e===null?!0:t(e,r)})}function vqe(t,e){var r;let o=new Set(t),a=Dw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return qr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)||p.push(h);return p.length>0?gr(u,`Missing required ${uN(p.length,"property","properties")} ${Pm(p,"and")}`):!0}})}function dN(t,e){var r;let o=new Set(t),a=Dw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return qr({test:(n,u)=>Object.keys(n).some(h=>a(o,h,n))?!0:gr(u,`Missing at least one property from ${Pm(Array.from(o),"or")}`)})}function Dqe(t,e){var r;let o=new Set(t),a=Dw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return qr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>0?gr(u,`Forbidden ${uN(p.length,"property","properties")} ${Pm(p,"and")}`):!0}})}function Pqe(t,e){var r;let o=new Set(t),a=Dw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return qr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>1?gr(u,`Mutually exclusive properties ${Pm(p,"and")}`):!0}})}function Pw(t,e,r,o){var a,n;let u=new Set((a=o?.ignore)!==null&&a!==void 0?a:[]),A=Dw[(n=o?.missingIf)!==null&&n!==void 0?n:"missing"],p=new Set(r),h=Sqe[e],E=e===Ku.Forbids?"or":"and";return qr({test:(w,D)=>{let x=new Set(Object.keys(w));if(!A(x,t,w)||u.has(w[t]))return!0;let C=[];for(let T of p)(A(x,T,w)&&!u.has(w[T]))!==h.expect&&C.push(T);return C.length>=1?gr(D,`Property "${t}" ${h.message} ${uN(C.length,"property","properties")} ${Pm(C,E)}`):!0}})}var H6e,q6e,j6e,G6e,W6e,zV,K6e,tqe,pN,zp,Dw,Ku,Sqe,il=It(()=>{H6e=/^[a-zA-Z_][a-zA-Z0-9_]*$/;q6e=/^#[0-9a-f]{6}$/i,j6e=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,G6e=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,W6e=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,zV=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/;K6e=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);tqe=t=>qr({test:(e,r)=>e instanceof t?!0:gr(r,`Expected an instance of ${t.name} (got ${Vn(e)})`)}),pN=(t,{exclusive:e=!1}={})=>qr({test:(r,o)=>{var a,n,u;let A=[],p=typeof o?.errors<"u"?[]:void 0;for(let h=0,E=t.length;h1?gr(o,`Expected to match exactly a single predicate (matched ${A.join(", ")})`):(u=o?.errors)===null||u===void 0||u.push(...p),!1}});zp=class extends Error{constructor({errors:e}={}){let r="Type mismatch";if(e&&e.length>0){r+=` +`;for(let o of e)r+=` +- ${o}`}super(r)}};Dw={missing:(t,e)=>t.has(e),undefined:(t,e,r)=>t.has(e)&&typeof r[e]<"u",nil:(t,e,r)=>t.has(e)&&r[e]!=null,falsy:(t,e,r)=>t.has(e)&&!!r[e]};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Ku||(Ku={}));Sqe={[Ku.Forbids]:{expect:!1,message:"forbids using"},[Ku.Requires]:{expect:!0,message:"requires using"}}});var ot,Xp=It(()=>{yf();ot=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:u}=await Promise.resolve().then(()=>(il(),Yo)),A=u(a(n()),r),p=[],h=[];if(!A(this,{errors:p,coercions:h}))throw Iw("Invalid option schema",p);for(let[,w]of h)w()}else if(r!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};ot.isOption=Cw;ot.Default=[]});function Sa(t){oN&&console.log(t)}function rJ(){let t={nodes:[]};for(let e=0;e{if(e.has(o))return;e.add(o);let a=t.nodes[o];for(let u of Object.values(a.statics))for(let{to:A}of u)r(A);for(let[,{to:u}]of a.dynamics)r(u);for(let{to:u}of a.shortcuts)r(u);let n=new Set(a.shortcuts.map(({to:u})=>u));for(;a.shortcuts.length>0;){let{to:u}=a.shortcuts.shift(),A=t.nodes[u];for(let[p,h]of Object.entries(A.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let w of h)E.some(({to:D})=>w.to===D)||E.push(w)}for(let[p,h]of A.dynamics)a.dynamics.some(([E,{to:w}])=>p===E&&h.to===w)||a.dynamics.push([p,h]);for(let p of A.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(pn.InitialNode)}function kqe(t,{prefix:e=""}={}){if(oN){Sa(`${e}Nodes are:`);for(let r=0;rE!==pn.ErrorNode).map(({state:E})=>({usage:E.candidateUsage,reason:null})));if(h.every(({node:E})=>E===pn.ErrorNode))throw new Dm(e,h.map(({state:E})=>({usage:E.candidateUsage,reason:E.errorMessage})));o=Rqe(h)}if(o.length>0){Sa(" Results:");for(let n of o)Sa(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else Sa(" No results");return o}function Fqe(t,e,{endToken:r=Kn.EndOfInput}={}){let o=Qqe(t,[...e,r]);return Tqe(e,o.map(({state:a})=>a))}function Rqe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function Tqe(t,e){let r=e.filter(D=>D.selectedIndex!==null),o=r.filter(D=>!D.partial);if(o.length>0&&(r=o),r.length===0)throw new Error;let a=r.filter(D=>D.selectedIndex===og||D.requiredOptions.every(x=>x.some(C=>D.options.find(T=>T.name===C))));if(a.length===0)throw new Dm(t,r.map(D=>({usage:D.candidateUsage,reason:null})));let n=0;for(let D of a)D.path.length>n&&(n=D.path.length);let u=a.filter(D=>D.path.length===n),A=D=>D.positionals.filter(({extra:x})=>!x).length+D.options.length,p=u.map(D=>({state:D,positionalCount:A(D)})),h=0;for(let{positionalCount:D}of p)D>h&&(h=D);let E=p.filter(({positionalCount:D})=>D===h).map(({state:D})=>D),w=Nqe(E);if(w.length>1)throw new xP(t,w.map(D=>D.candidateUsage));return w[0]}function Nqe(t){let e=[],r=[];for(let o of t)o.selectedIndex===og?r.push(o):e.push(o);return r.length>0&&e.push({...tJ,path:nJ(...r.map(o=>o.path)),options:r.reduce((o,a)=>o.concat(a.options),[])}),e}function nJ(t,e,...r){return e===void 0?Array.from(t):nJ(t.filter((o,a)=>o===e[a]),...r)}function sl(){return{dynamics:[],shortcuts:[],statics:{}}}function iJ(t){return t===pn.SuccessNode||t===pn.ErrorNode}function mN(t,e=0){return{to:iJ(t.to)?t.to:t.to>=pn.CustomNode?t.to+e-pn.CustomNode+1:t.to+e,reducer:t.reducer}}function Lqe(t,e=0){let r=sl();for(let[o,a]of t.dynamics)r.dynamics.push([o,mN(a,e)]);for(let o of t.shortcuts)r.shortcuts.push(mN(o,e));for(let[o,a]of Object.entries(t.statics))r.statics[o]=a.map(n=>mN(n,e));return r}function Bs(t,e,r,o,a){t.nodes[e].dynamics.push([r,{to:o,reducer:a}])}function bm(t,e,r,o){t.nodes[e].shortcuts.push({to:r,reducer:o})}function Ko(t,e,r,o,a){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:o,reducer:a})}function LP(t,e,r,o,a){if(Array.isArray(e)){let[n,...u]=e;return t[n](r,o,a,...u)}else return t[e](r,o,a)}var tJ,Oqe,yN,ol,EN,OP,MP=It(()=>{bP();kP();tJ={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:og,partial:!1,tokens:[]};Oqe={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,o)=>!t.ignoreOptions&&e===o,isBatchOption:(t,e,r,o)=>!t.ignoreOptions&&KV.test(e)&&[...e.slice(1)].every(a=>o.has(`-${a}`)),isBoundOption:(t,e,r,o,a)=>{let n=e.match(sN);return!t.ignoreOptions&&!!n&&SP.test(n[1])&&o.has(n[1])&&a.filter(u=>u.nameSet.includes(n[1])).every(u=>u.allowBinding)},isNegatedOption:(t,e,r,o)=>!t.ignoreOptions&&e===`--no-${o.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&iN.test(e),isUnsupportedOption:(t,e,r,o)=>!t.ignoreOptions&&e.startsWith("-")&&SP.test(e)&&!o.has(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!SP.test(e)},yN={setCandidateState:(t,e,r,o)=>({...t,...o}),setSelectedIndex:(t,e,r,o)=>({...t,selectedIndex:o}),setPartialIndex:(t,e,r,o)=>({...t,selectedIndex:o,partial:!0}),pushBatch:(t,e,r,o)=>{let a=t.options.slice(),n=t.tokens.slice();for(let u=1;u{let[,o,a]=e.match(sN),n=t.options.concat({name:o,value:a}),u=t.tokens.concat([{segmentIndex:r,type:"option",slice:[0,o.length],option:o},{segmentIndex:r,type:"assign",slice:[o.length,o.length+1]},{segmentIndex:r,type:"value",slice:[o.length+1,o.length+a.length+1]}]);return{...t,options:n,tokens:u}},pushPath:(t,e,r)=>{let o=t.path.concat(e),a=t.tokens.concat({segmentIndex:r,type:"path"});return{...t,path:o,tokens:a}},pushPositional:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!1}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtra:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!0}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtraNoLimits:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:ol}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushTrue:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushFalse:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!1}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushUndefined:(t,e,r,o)=>{let a=t.options.concat({name:e,value:void 0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:e});return{...t,options:a,tokens:n}},pushStringValue:(t,e,r)=>{var o;let a=t.options[t.options.length-1],n=t.options.slice(),u=t.tokens.concat({segmentIndex:r,type:"value"});return a.value=((o=a.value)!==null&&o!==void 0?o:[]).concat([e]),{...t,options:n,tokens:u}},setStringValue:(t,e,r)=>{let o=t.options[t.options.length-1],a=t.options.slice(),n=t.tokens.concat({segmentIndex:r,type:"value"});return o.value=e,{...t,options:a,tokens:n}},inhibateOptions:t=>({...t,ignoreOptions:!0}),useHelp:(t,e,r,o)=>{let[,,a]=e.match(iN);return typeof a<"u"?{...t,options:[{name:"-c",value:String(o)},{name:"-i",value:a}]}:{...t,options:[{name:"-c",value:String(o)}]}},setError:(t,e,r,o)=>e===Kn.EndOfInput||e===Kn.EndOfPartialInput?{...t,errorMessage:`${o}.`}:{...t,errorMessage:`${o} ("${e}").`},setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return{...t,errorMessage:`Not enough arguments to option ${r.name}.`}}},ol=Symbol(),EN=class{constructor(e,r){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:o=this.arity.extra,proxy:a=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:o,proxy:a})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===ol)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==ol?this.arity.extra.push(e):this.arity.extra!==ol&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===ol)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let o=0;o1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(o))throw new Error(`The arity must be an integer, got ${o}`);if(o<0)throw new Error(`The arity must be positive, got ${o}`);let A=e.reduce((p,h)=>h.length>p.length?h:p,"");for(let p of e)this.allOptionNames.set(p,A);this.options.push({preferredName:A,nameSet:e,description:r,arity:o,hidden:a,required:n,allowBinding:u})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let o=[this.cliOpts.binaryName],a=[];if(this.paths.length>0&&o.push(...this.paths[0]),e){for(let{preferredName:u,nameSet:A,arity:p,hidden:h,description:E,required:w}of this.options){if(h)continue;let D=[];for(let C=0;C`:`[${x}]`)}o.push(...this.arity.leading.map(u=>`<${u}>`)),this.arity.extra===ol?o.push("..."):o.push(...this.arity.extra.map(u=>`[${u}]`)),o.push(...this.arity.trailing.map(u=>`<${u}>`))}return{usage:o.join(" "),options:a}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=rJ(),r=pn.InitialNode,o=this.usage().usage,a=this.options.filter(A=>A.required).map(A=>A.nameSet);r=jc(e,sl()),Ko(e,pn.InitialNode,Kn.StartOfInput,r,["setCandidateState",{candidateUsage:o,requiredOptions:a}]);let n=this.arity.proxy?"always":"isNotOptionLike",u=this.paths.length>0?this.paths:[[]];for(let A of u){let p=r;if(A.length>0){let D=jc(e,sl());bm(e,p,D),this.registerOptions(e,D),p=D}for(let D=0;D0||!this.arity.proxy){let D=jc(e,sl());Bs(e,p,"isHelp",D,["useHelp",this.cliIndex]),Bs(e,D,"always",D,"pushExtra"),Ko(e,D,Kn.EndOfInput,pn.SuccessNode,["setSelectedIndex",og]),this.registerOptions(e,p)}this.arity.leading.length>0&&(Ko(e,p,Kn.EndOfInput,pn.ErrorNode,["setError","Not enough positional arguments"]),Ko(e,p,Kn.EndOfPartialInput,pn.SuccessNode,["setPartialIndex",this.cliIndex]));let h=p;for(let D=0;D0||D+1!==this.arity.leading.length)&&(Ko(e,x,Kn.EndOfInput,pn.ErrorNode,["setError","Not enough positional arguments"]),Ko(e,x,Kn.EndOfPartialInput,pn.SuccessNode,["setPartialIndex",this.cliIndex])),Bs(e,h,"isNotOptionLike",x,"pushPositional"),h=x}let E=h;if(this.arity.extra===ol||this.arity.extra.length>0){let D=jc(e,sl());if(bm(e,h,D),this.arity.extra===ol){let x=jc(e,sl());this.arity.proxy||this.registerOptions(e,x),Bs(e,h,n,x,"pushExtraNoLimits"),Bs(e,x,n,x,"pushExtraNoLimits"),bm(e,x,D)}else for(let x=0;x0)&&this.registerOptions(e,C),Bs(e,E,n,C,"pushExtra"),bm(e,C,D),E=C}E=D}this.arity.trailing.length>0&&(Ko(e,E,Kn.EndOfInput,pn.ErrorNode,["setError","Not enough positional arguments"]),Ko(e,E,Kn.EndOfPartialInput,pn.SuccessNode,["setPartialIndex",this.cliIndex]));let w=E;for(let D=0;D=0&&e{let u=n?Kn.EndOfPartialInput:Kn.EndOfInput;return Fqe(o,a,{endToken:u})}}}}});function oJ(){return UP.default&&"getColorDepth"in UP.default.WriteStream.prototype?UP.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}function aJ(t){let e=sJ;if(typeof e>"u"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return null;let{AsyncLocalStorage:r}=ve("async_hooks");e=sJ=new r;let o=process.stdout._write;process.stdout._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?o.call(this,n,u,A):p.stdout.write(n,u,A)};let a=process.stderr._write;process.stderr._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?a.call(this,n,u,A):p.stderr.write(n,u,A)}}return r=>e.run(t,r)}var UP,sJ,lJ=It(()=>{UP=et(ve("tty"),1)});var _P,cJ=It(()=>{Xp();_P=class t extends ot{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,r){let o=new t(r);o.path=e.path;for(let a of e.options)switch(a.name){case"-c":o.commands.push(Number(a.value));break;case"-i":o.index=Number(a.value);break}return o}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`),this.context.stdout.write(` +`);let r=0;for(let o of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[o].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` +`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. +`)}}}});async function fJ(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=hJ(t);return Vo.from(r,e).runExit(o,a)}async function pJ(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=hJ(t);return Vo.from(r,e).run(o,a)}function hJ(t){let e,r,o,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof ot||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?o=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],o=t[2]):t[0]&&t[0].prototype instanceof ot||Array.isArray(t[0])?(r=t[0],o=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],o=t[2],a=t[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}}function AJ(t){return t()}var uJ,Vo,gJ=It(()=>{bP();MP();cN();lJ();Xp();cJ();uJ=Symbol("clipanion/errorCommand");Vo=class t{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:o,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new OP({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=o,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let o=new t(r),a=Array.isArray(e)?e:[e];for(let n of a)o.register(n);return o}register(e){var r;let o=new Map,a=new e;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[ot.isOption]&&o.set(p,h)}let n=this.builder.command(),u=n.cliIndex,A=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof A<"u")for(let p of A)n.addPath(p);this.registrations.set(e,{specs:o,builder:n,index:u});for(let[p,{definition:h}]of o.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{input:o,context:a,partial:n}=typeof e=="object"&&Array.isArray(e)?{input:e,context:r}:e,{contexts:u,process:A}=this.builder.compile(),p=A(o,{partial:n}),h={...t.defaultContext,...a};switch(p.selectedIndex){case og:{let E=_P.from(p,u);return E.context=h,E.tokens=p.tokens,E}default:{let{commandClass:E}=u[p.selectedIndex],w=this.registrations.get(E);if(typeof w>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let D=new E;D.context=h,D.tokens=p.tokens,D.path=p.path;try{for(let[x,{transformer:C}]of w.specs.entries())D[x]=C(w.builder,x,p,h);return D}catch(x){throw x[uJ]=D,x}}break}}async run(e,r){var o,a;let n,u={...t.defaultContext,...r},A=(o=this.enableColors)!==null&&o!==void 0?o:u.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,u)}catch(E){return u.stdout.write(this.error(E,{colored:A})),1}if(n.help)return u.stdout.write(this.usage(n,{colored:A,detailed:!0})),0;n.context=u,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:E=>this.definition(E),error:(E,w)=>this.error(E,w),format:E=>this.format(E),process:(E,w)=>this.process(E,{...u,...w}),run:(E,w)=>this.run(E,{...u,...w}),usage:(E,w)=>this.usage(E,w)};let p=this.enableCapture&&(a=aJ(u))!==null&&a!==void 0?a:AJ,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return u.stdout.write(this.error(E,{colored:A,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:o}=this.getUsageByRegistration(e,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(e,{detailed:!0,inlineOptions:!1}),u=typeof e.usage.category<"u"?yo(e.usage.category,{format:this.format(r),paragraphs:!1}):void 0,A=typeof e.usage.description<"u"?yo(e.usage.description,{format:this.format(r),paragraphs:!1}):void 0,p=typeof e.usage.details<"u"?yo(e.usage.details,{format:this.format(r),paragraphs:!0}):void 0,h=typeof e.usage.examples<"u"?e.usage.examples.map(([E,w])=>[yo(E,{format:this.format(r),paragraphs:!1}),w.replace(/\$0/g,this.binaryName)]):void 0;return{path:o,usage:a,category:u,description:A,details:p,examples:h,options:n}}definitions({colored:e=!1}={}){let r=[];for(let o of this.registrations.keys()){let a=this.definition(o,{colored:e});a&&r.push(a)}return r}usage(e=null,{colored:r,detailed:o=!1,prefix:a="$ "}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,E=typeof p.usage<"u";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h?.some(x=>x.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(E){e=null;continue}}e&&(o=!0)}let u=e!==null&&e instanceof ot?e.constructor:e,A="";if(u)if(o){let{description:p="",details:h="",examples:E=[]}=u.usage||{};p!==""&&(A+=yo(p,{format:this.format(r),paragraphs:!1}).replace(/^./,x=>x.toUpperCase()),A+=` +`),(h!==""||E.length>0)&&(A+=`${this.format(r).header("Usage")} +`,A+=` +`);let{usage:w,options:D}=this.getUsageByRegistration(u,{inlineOptions:!1});if(A+=`${this.format(r).bold(a)}${w} +`,D.length>0){A+=` +`,A+=`${this.format(r).header("Options")} +`;let x=D.reduce((C,T)=>Math.max(C,T.definition.length),0);A+=` +`;for(let{definition:C,description:T}of D)A+=` ${this.format(r).bold(C.padEnd(x))} ${yo(T,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(A+=` +`,A+=`${this.format(r).header("Details")} +`,A+=` +`,A+=yo(h,{format:this.format(r),paragraphs:!0})),E.length>0){A+=` +`,A+=`${this.format(r).header("Examples")} +`;for(let[x,C]of E)A+=` +`,A+=yo(x,{format:this.format(r),paragraphs:!1}),A+=`${C.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)} +`}}else{let{usage:p}=this.getUsageByRegistration(u);A+=`${this.format(r).bold(a)}${p} +`}else{let p=new Map;for(let[D,{index:x}]of this.registrations.entries()){if(typeof D.usage>"u")continue;let C=typeof D.usage.category<"u"?yo(D.usage.category,{format:this.format(r),paragraphs:!1}):null,T=p.get(C);typeof T>"u"&&p.set(C,T=[]);let{usage:L}=this.getUsageByIndex(x);T.push({commandClass:D,usage:L})}let h=Array.from(p.keys()).sort((D,x)=>D===null?-1:x===null?1:D.localeCompare(x,"en",{usage:"sort",caseFirst:"upper"})),E=typeof this.binaryLabel<"u",w=typeof this.binaryVersion<"u";E||w?(E&&w?A+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} + +`:E?A+=`${this.format(r).header(`${this.binaryLabel}`)} +`:A+=`${this.format(r).header(`${this.binaryVersion}`)} +`,A+=` ${this.format(r).bold(a)}${this.binaryName} +`):A+=`${this.format(r).bold(a)}${this.binaryName} +`;for(let D of h){let x=p.get(D).slice().sort((T,L)=>T.usage.localeCompare(L.usage,"en",{usage:"sort",caseFirst:"upper"})),C=D!==null?D.trim():"General commands";A+=` +`,A+=`${this.format(r).header(`${C}`)} +`;for(let{commandClass:T,usage:L}of x){let U=T.usage.description||"undocumented";A+=` +`,A+=` ${this.format(r).bold(L)} +`,A+=` ${yo(U,{format:this.format(r),paragraphs:!1})}`}}A+=` +`,A+=yo("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return A}error(e,r){var o,{colored:a,command:n=(o=e[uJ])!==null&&o!==void 0?o:null}=r===void 0?{}:r;(!e||typeof e!="object"||!("stack"in e))&&(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let u="",A=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");A==="Error"&&(A="Internal Error"),u+=`${this.format(a).error(A)}: ${e.message} +`;let p=e.clipanion;return typeof p<"u"?p.type==="usage"&&(u+=` +`,u+=this.usage(n)):e.stack&&(u+=`${e.stack.replace(/^.*\n/,"")} +`),u}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:t.defaultContext.colorDepth>1)?VV:JV}getUsageByRegistration(e,r){let o=this.registrations.get(e);if(typeof o>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(o.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};Vo.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:oJ()}});var Sw,dJ=It(()=>{Xp();Sw=class extends ot{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};Sw.paths=[["--clipanion=definitions"]]});var bw,mJ=It(()=>{Xp();bw=class extends ot{async execute(){this.context.stdout.write(this.cli.usage())}};bw.paths=[["-h"],["--help"]]});function HP(t={}){return Wo({definition(e,r){var o;e.addProxy({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){return o.positionals.map(({value:a})=>a)}})}var CN=It(()=>{yf()});var xw,yJ=It(()=>{Xp();CN();xw=class extends ot{constructor(){super(...arguments),this.args=HP()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)} +`)}};xw.paths=[["--clipanion=tokens"]]});var kw,EJ=It(()=>{Xp();kw=class extends ot{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} +`)}};kw.paths=[["-v"],["--version"]]});var IN={};Kt(IN,{DefinitionsCommand:()=>Sw,HelpCommand:()=>bw,TokensCommand:()=>xw,VersionCommand:()=>kw});var CJ=It(()=>{dJ();mJ();yJ();EJ()});function IJ(t,e,r){let[o,a]=Yu(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Wo({definition(p){p.addOption({names:u,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(p,h,E){let w,D=typeof o<"u"?[...o]:void 0;for(let{name:x,value:C}of E.options)A.has(x)&&(w=x,D=D??[],D.push(C));return typeof D<"u"?ag(w??h,D,a.validator):D}})}var wJ=It(()=>{yf()});function BJ(t,e,r){let[o,a]=Yu(e,r??{}),n=t.split(","),u=new Set(n);return Wo({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:w,value:D}of h.options)u.has(w)&&(E=D);return E}})}var vJ=It(()=>{yf()});function DJ(t,e,r){let[o,a]=Yu(e,r??{}),n=t.split(","),u=new Set(n);return Wo({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:w,value:D}of h.options)u.has(w)&&(E??(E=0),D?E+=1:E=0);return E}})}var PJ=It(()=>{yf()});function SJ(t={}){return Wo({definition(e,r){var o;e.addRest({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){let a=u=>{let A=o.positionals[u];return A.extra===ol||A.extra===!1&&uu)}})}var bJ=It(()=>{MP();yf()});function Mqe(t,e,r){let[o,a]=Yu(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Wo({definition(p){p.addOption({names:u,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,w){let D,x=o;typeof a.env<"u"&&w.env[a.env]&&(D=a.env,x=w.env[a.env]);for(let{name:C,value:T}of E.options)A.has(C)&&(D=C,x=T);return typeof x=="string"?ag(D??h,x,a.validator):x}})}function Uqe(t={}){let{required:e=!0}=t;return Wo({definition(r,o){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:o,required:t.required})},transformer(r,o,a){var n;for(let u=0;u{MP();yf()});var de={};Kt(de,{Array:()=>IJ,Boolean:()=>BJ,Counter:()=>DJ,Proxy:()=>HP,Rest:()=>SJ,String:()=>xJ,applyValidator:()=>ag,cleanValidationError:()=>QP,formatError:()=>Iw,isOptionSymbol:()=>Cw,makeCommandOption:()=>Wo,rerouteArguments:()=>Yu});var QJ=It(()=>{yf();CN();wJ();vJ();PJ();bJ();kJ()});var Qw={};Kt(Qw,{Builtins:()=>IN,Cli:()=>Vo,Command:()=>ot,Option:()=>de,UsageError:()=>it,formatMarkdownish:()=>yo,run:()=>pJ,runExit:()=>fJ});var Gt=It(()=>{kP();cN();Xp();gJ();CJ();QJ()});var FJ=_((ckt,_qe)=>{_qe.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var LJ=_((ukt,Ef)=>{var RJ=ve("fs"),BN=ve("path"),Hqe=ve("os"),qqe=ve("crypto"),jqe=FJ(),vN=jqe.version,Gqe=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Wqe(t){let e={},r=t.toString();r=r.replace(/\r\n?/mg,` +`);let o;for(;(o=Gqe.exec(r))!=null;){let a=o[1],n=o[2]||"";n=n.trim();let u=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),u==='"'&&(n=n.replace(/\\n/g,` +`),n=n.replace(/\\r/g,"\r")),e[a]=n}return e}function Yqe(t){let e=NJ(t),r=vs.configDotenv({path:e});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let o=TJ(t).split(","),a=o.length,n;for(let u=0;u=a)throw A}return vs.parse(n)}function Kqe(t){console.log(`[dotenv@${vN}][INFO] ${t}`)}function Vqe(t){console.log(`[dotenv@${vN}][WARN] ${t}`)}function wN(t){console.log(`[dotenv@${vN}][DEBUG] ${t}`)}function TJ(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function Jqe(t,e){let r;try{r=new URL(e)}catch(A){throw A.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):A}let o=r.password;if(!o)throw new Error("INVALID_DOTENV_KEY: Missing key part");let a=r.searchParams.get("environment");if(!a)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let n=`DOTENV_VAULT_${a.toUpperCase()}`,u=t.parsed[n];if(!u)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:u,key:o}}function NJ(t){let e=BN.resolve(process.cwd(),".env");return t&&t.path&&t.path.length>0&&(e=t.path),e.endsWith(".vault")?e:`${e}.vault`}function zqe(t){return t[0]==="~"?BN.join(Hqe.homedir(),t.slice(1)):t}function Xqe(t){Kqe("Loading env from encrypted .env.vault");let e=vs._parseVault(t),r=process.env;return t&&t.processEnv!=null&&(r=t.processEnv),vs.populate(r,e,t),{parsed:e}}function Zqe(t){let e=BN.resolve(process.cwd(),".env"),r="utf8",o=!!(t&&t.debug);t&&(t.path!=null&&(e=zqe(t.path)),t.encoding!=null&&(r=t.encoding));try{let a=vs.parse(RJ.readFileSync(e,{encoding:r})),n=process.env;return t&&t.processEnv!=null&&(n=t.processEnv),vs.populate(n,a,t),{parsed:a}}catch(a){return o&&wN(`Failed to load ${e} ${a.message}`),{error:a}}}function $qe(t){let e=NJ(t);return TJ(t).length===0?vs.configDotenv(t):RJ.existsSync(e)?vs._configVault(t):(Vqe(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),vs.configDotenv(t))}function eje(t,e){let r=Buffer.from(e.slice(-64),"hex"),o=Buffer.from(t,"base64"),a=o.slice(0,12),n=o.slice(-16);o=o.slice(12,-16);try{let u=qqe.createDecipheriv("aes-256-gcm",r,a);return u.setAuthTag(n),`${u.update(o)}${u.final()}`}catch(u){let A=u instanceof RangeError,p=u.message==="Invalid key length",h=u.message==="Unsupported state or unable to authenticate data";if(A||p){let E="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(E)}else if(h){let E="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(E)}else throw console.error("Error: ",u.code),console.error("Error: ",u.message),u}}function tje(t,e,r={}){let o=!!(r&&r.debug),a=!!(r&&r.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let n of Object.keys(e))Object.prototype.hasOwnProperty.call(t,n)?(a===!0&&(t[n]=e[n]),o&&wN(a===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):t[n]=e[n]}var vs={configDotenv:Zqe,_configVault:Xqe,_parseVault:Yqe,config:$qe,decrypt:eje,parse:Wqe,populate:tje};Ef.exports.configDotenv=vs.configDotenv;Ef.exports._configVault=vs._configVault;Ef.exports._parseVault=vs._parseVault;Ef.exports.config=vs.config;Ef.exports.decrypt=vs.decrypt;Ef.exports.parse=vs.parse;Ef.exports.populate=vs.populate;Ef.exports=vs});var MJ=_((Akt,OJ)=>{"use strict";OJ.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var lg=_((fkt,DN)=>{"use strict";var rje=MJ(),UJ=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,o=()=>{r--,e.length>0&&e.shift()()},a=(A,p,...h)=>{r++;let E=rje(A,...h);p(E),E.then(o,o)},n=(A,p,...h)=>{rnew Promise(h=>n(A,h,...p));return Object.defineProperties(u,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),u};DN.exports=UJ;DN.exports.default=UJ});function Ju(t){return`YN${t.toString(10).padStart(4,"0")}`}function qP(t){let e=Number(t.slice(2));if(typeof vr[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var vr,jP=It(()=>{vr=(Me=>(Me[Me.UNNAMED=0]="UNNAMED",Me[Me.EXCEPTION=1]="EXCEPTION",Me[Me.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Me[Me.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Me[Me.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Me[Me.BUILD_DISABLED=5]="BUILD_DISABLED",Me[Me.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Me[Me.MUST_BUILD=7]="MUST_BUILD",Me[Me.MUST_REBUILD=8]="MUST_REBUILD",Me[Me.BUILD_FAILED=9]="BUILD_FAILED",Me[Me.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Me[Me.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Me[Me.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",Me[Me.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",Me[Me.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",Me[Me.REMOTE_INVALID=15]="REMOTE_INVALID",Me[Me.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",Me[Me.RESOLUTION_PACK=17]="RESOLUTION_PACK",Me[Me.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",Me[Me.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",Me[Me.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",Me[Me.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",Me[Me.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",Me[Me.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",Me[Me.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",Me[Me.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",Me[Me.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",Me[Me.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",Me[Me.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",Me[Me.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",Me[Me.FETCH_FAILED=30]="FETCH_FAILED",Me[Me.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",Me[Me.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",Me[Me.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",Me[Me.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",Me[Me.NETWORK_ERROR=35]="NETWORK_ERROR",Me[Me.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",Me[Me.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",Me[Me.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",Me[Me.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",Me[Me.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",Me[Me.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",Me[Me.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",Me[Me.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",Me[Me.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",Me[Me.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",Me[Me.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",Me[Me.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",Me[Me.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",Me[Me.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",Me[Me.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",Me[Me.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",Me[Me.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",Me[Me.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",Me[Me.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",Me[Me.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",Me[Me.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",Me[Me.INVALID_MANIFEST=57]="INVALID_MANIFEST",Me[Me.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",Me[Me.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",Me[Me.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",Me[Me.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",Me[Me.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",Me[Me.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",Me[Me.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",Me[Me.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",Me[Me.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",Me[Me.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",Me[Me.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",Me[Me.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",Me[Me.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",Me[Me.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",Me[Me.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",Me[Me.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",Me[Me.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",Me[Me.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",Me[Me.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",Me[Me.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",Me[Me.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",Me[Me.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",Me[Me.NETWORK_DISABLED=80]="NETWORK_DISABLED",Me[Me.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",Me[Me.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",Me[Me.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",Me[Me.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",Me[Me.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",Me[Me.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",Me[Me.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",Me[Me.VERSION_NOTICE=88]="VERSION_NOTICE",Me[Me.TIPS_NOTICE=89]="TIPS_NOTICE",Me[Me.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",Me))(vr||{})});var Fw=_((hkt,_J)=>{var nje="2.0.0",ije=Number.MAX_SAFE_INTEGER||9007199254740991,sje=16,oje=250,aje=["major","premajor","minor","preminor","patch","prepatch","prerelease"];_J.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:sje,MAX_SAFE_BUILD_LENGTH:oje,MAX_SAFE_INTEGER:ije,RELEASE_TYPES:aje,SEMVER_SPEC_VERSION:nje,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Rw=_((gkt,HJ)=>{var lje=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};HJ.exports=lje});var xm=_((Cf,qJ)=>{var{MAX_SAFE_COMPONENT_LENGTH:PN,MAX_SAFE_BUILD_LENGTH:cje,MAX_LENGTH:uje}=Fw(),Aje=Rw();Cf=qJ.exports={};var fje=Cf.re=[],pje=Cf.safeRe=[],tr=Cf.src=[],rr=Cf.t={},hje=0,SN="[a-zA-Z0-9-]",gje=[["\\s",1],["\\d",uje],[SN,cje]],dje=t=>{for(let[e,r]of gje)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},Gr=(t,e,r)=>{let o=dje(e),a=hje++;Aje(t,a,e),rr[t]=a,tr[a]=e,fje[a]=new RegExp(e,r?"g":void 0),pje[a]=new RegExp(o,r?"g":void 0)};Gr("NUMERICIDENTIFIER","0|[1-9]\\d*");Gr("NUMERICIDENTIFIERLOOSE","\\d+");Gr("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${SN}*`);Gr("MAINVERSION",`(${tr[rr.NUMERICIDENTIFIER]})\\.(${tr[rr.NUMERICIDENTIFIER]})\\.(${tr[rr.NUMERICIDENTIFIER]})`);Gr("MAINVERSIONLOOSE",`(${tr[rr.NUMERICIDENTIFIERLOOSE]})\\.(${tr[rr.NUMERICIDENTIFIERLOOSE]})\\.(${tr[rr.NUMERICIDENTIFIERLOOSE]})`);Gr("PRERELEASEIDENTIFIER",`(?:${tr[rr.NUMERICIDENTIFIER]}|${tr[rr.NONNUMERICIDENTIFIER]})`);Gr("PRERELEASEIDENTIFIERLOOSE",`(?:${tr[rr.NUMERICIDENTIFIERLOOSE]}|${tr[rr.NONNUMERICIDENTIFIER]})`);Gr("PRERELEASE",`(?:-(${tr[rr.PRERELEASEIDENTIFIER]}(?:\\.${tr[rr.PRERELEASEIDENTIFIER]})*))`);Gr("PRERELEASELOOSE",`(?:-?(${tr[rr.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${tr[rr.PRERELEASEIDENTIFIERLOOSE]})*))`);Gr("BUILDIDENTIFIER",`${SN}+`);Gr("BUILD",`(?:\\+(${tr[rr.BUILDIDENTIFIER]}(?:\\.${tr[rr.BUILDIDENTIFIER]})*))`);Gr("FULLPLAIN",`v?${tr[rr.MAINVERSION]}${tr[rr.PRERELEASE]}?${tr[rr.BUILD]}?`);Gr("FULL",`^${tr[rr.FULLPLAIN]}$`);Gr("LOOSEPLAIN",`[v=\\s]*${tr[rr.MAINVERSIONLOOSE]}${tr[rr.PRERELEASELOOSE]}?${tr[rr.BUILD]}?`);Gr("LOOSE",`^${tr[rr.LOOSEPLAIN]}$`);Gr("GTLT","((?:<|>)?=?)");Gr("XRANGEIDENTIFIERLOOSE",`${tr[rr.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Gr("XRANGEIDENTIFIER",`${tr[rr.NUMERICIDENTIFIER]}|x|X|\\*`);Gr("XRANGEPLAIN",`[v=\\s]*(${tr[rr.XRANGEIDENTIFIER]})(?:\\.(${tr[rr.XRANGEIDENTIFIER]})(?:\\.(${tr[rr.XRANGEIDENTIFIER]})(?:${tr[rr.PRERELEASE]})?${tr[rr.BUILD]}?)?)?`);Gr("XRANGEPLAINLOOSE",`[v=\\s]*(${tr[rr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${tr[rr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${tr[rr.XRANGEIDENTIFIERLOOSE]})(?:${tr[rr.PRERELEASELOOSE]})?${tr[rr.BUILD]}?)?)?`);Gr("XRANGE",`^${tr[rr.GTLT]}\\s*${tr[rr.XRANGEPLAIN]}$`);Gr("XRANGELOOSE",`^${tr[rr.GTLT]}\\s*${tr[rr.XRANGEPLAINLOOSE]}$`);Gr("COERCEPLAIN",`(^|[^\\d])(\\d{1,${PN}})(?:\\.(\\d{1,${PN}}))?(?:\\.(\\d{1,${PN}}))?`);Gr("COERCE",`${tr[rr.COERCEPLAIN]}(?:$|[^\\d])`);Gr("COERCEFULL",tr[rr.COERCEPLAIN]+`(?:${tr[rr.PRERELEASE]})?(?:${tr[rr.BUILD]})?(?:$|[^\\d])`);Gr("COERCERTL",tr[rr.COERCE],!0);Gr("COERCERTLFULL",tr[rr.COERCEFULL],!0);Gr("LONETILDE","(?:~>?)");Gr("TILDETRIM",`(\\s*)${tr[rr.LONETILDE]}\\s+`,!0);Cf.tildeTrimReplace="$1~";Gr("TILDE",`^${tr[rr.LONETILDE]}${tr[rr.XRANGEPLAIN]}$`);Gr("TILDELOOSE",`^${tr[rr.LONETILDE]}${tr[rr.XRANGEPLAINLOOSE]}$`);Gr("LONECARET","(?:\\^)");Gr("CARETTRIM",`(\\s*)${tr[rr.LONECARET]}\\s+`,!0);Cf.caretTrimReplace="$1^";Gr("CARET",`^${tr[rr.LONECARET]}${tr[rr.XRANGEPLAIN]}$`);Gr("CARETLOOSE",`^${tr[rr.LONECARET]}${tr[rr.XRANGEPLAINLOOSE]}$`);Gr("COMPARATORLOOSE",`^${tr[rr.GTLT]}\\s*(${tr[rr.LOOSEPLAIN]})$|^$`);Gr("COMPARATOR",`^${tr[rr.GTLT]}\\s*(${tr[rr.FULLPLAIN]})$|^$`);Gr("COMPARATORTRIM",`(\\s*)${tr[rr.GTLT]}\\s*(${tr[rr.LOOSEPLAIN]}|${tr[rr.XRANGEPLAIN]})`,!0);Cf.comparatorTrimReplace="$1$2$3";Gr("HYPHENRANGE",`^\\s*(${tr[rr.XRANGEPLAIN]})\\s+-\\s+(${tr[rr.XRANGEPLAIN]})\\s*$`);Gr("HYPHENRANGELOOSE",`^\\s*(${tr[rr.XRANGEPLAINLOOSE]})\\s+-\\s+(${tr[rr.XRANGEPLAINLOOSE]})\\s*$`);Gr("STAR","(<|>)?=?\\s*\\*");Gr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Gr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var GP=_((dkt,jJ)=>{var mje=Object.freeze({loose:!0}),yje=Object.freeze({}),Eje=t=>t?typeof t!="object"?mje:t:yje;jJ.exports=Eje});var bN=_((mkt,YJ)=>{var GJ=/^[0-9]+$/,WJ=(t,e)=>{let r=GJ.test(t),o=GJ.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:tWJ(e,t);YJ.exports={compareIdentifiers:WJ,rcompareIdentifiers:Cje}});var Eo=_((ykt,zJ)=>{var WP=Rw(),{MAX_LENGTH:KJ,MAX_SAFE_INTEGER:YP}=Fw(),{safeRe:VJ,t:JJ}=xm(),Ije=GP(),{compareIdentifiers:km}=bN(),xN=class t{constructor(e,r){if(r=Ije(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>KJ)throw new TypeError(`version is longer than ${KJ} characters`);WP("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?VJ[JJ.LOOSE]:VJ[JJ.FULL]);if(!o)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>YP||this.major<0)throw new TypeError("Invalid major version");if(this.minor>YP||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>YP||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let n=+a;if(n>=0&&n=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(r===this.prerelease.join(".")&&o===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let n=[r,a];o===!1&&(n=[r]),km(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};zJ.exports=xN});var cg=_((Ekt,ZJ)=>{var XJ=Eo(),wje=(t,e,r=!1)=>{if(t instanceof XJ)return t;try{return new XJ(t,e)}catch(o){if(!r)return null;throw o}};ZJ.exports=wje});var ez=_((Ckt,$J)=>{var Bje=cg(),vje=(t,e)=>{let r=Bje(t,e);return r?r.version:null};$J.exports=vje});var rz=_((Ikt,tz)=>{var Dje=cg(),Pje=(t,e)=>{let r=Dje(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};tz.exports=Pje});var sz=_((wkt,iz)=>{var nz=Eo(),Sje=(t,e,r,o,a)=>{typeof r=="string"&&(a=o,o=r,r=void 0);try{return new nz(t instanceof nz?t.version:t,r).inc(e,o,a).version}catch{return null}};iz.exports=Sje});var lz=_((Bkt,az)=>{var oz=cg(),bje=(t,e)=>{let r=oz(t,null,!0),o=oz(e,null,!0),a=r.compare(o);if(a===0)return null;let n=a>0,u=n?r:o,A=n?o:r,p=!!u.prerelease.length;if(!!A.prerelease.length&&!p)return!A.patch&&!A.minor?"major":u.patch?"patch":u.minor?"minor":"major";let E=p?"pre":"";return r.major!==o.major?E+"major":r.minor!==o.minor?E+"minor":r.patch!==o.patch?E+"patch":"prerelease"};az.exports=bje});var uz=_((vkt,cz)=>{var xje=Eo(),kje=(t,e)=>new xje(t,e).major;cz.exports=kje});var fz=_((Dkt,Az)=>{var Qje=Eo(),Fje=(t,e)=>new Qje(t,e).minor;Az.exports=Fje});var hz=_((Pkt,pz)=>{var Rje=Eo(),Tje=(t,e)=>new Rje(t,e).patch;pz.exports=Tje});var dz=_((Skt,gz)=>{var Nje=cg(),Lje=(t,e)=>{let r=Nje(t,e);return r&&r.prerelease.length?r.prerelease:null};gz.exports=Lje});var Ml=_((bkt,yz)=>{var mz=Eo(),Oje=(t,e,r)=>new mz(t,r).compare(new mz(e,r));yz.exports=Oje});var Cz=_((xkt,Ez)=>{var Mje=Ml(),Uje=(t,e,r)=>Mje(e,t,r);Ez.exports=Uje});var wz=_((kkt,Iz)=>{var _je=Ml(),Hje=(t,e)=>_je(t,e,!0);Iz.exports=Hje});var KP=_((Qkt,vz)=>{var Bz=Eo(),qje=(t,e,r)=>{let o=new Bz(t,r),a=new Bz(e,r);return o.compare(a)||o.compareBuild(a)};vz.exports=qje});var Pz=_((Fkt,Dz)=>{var jje=KP(),Gje=(t,e)=>t.sort((r,o)=>jje(r,o,e));Dz.exports=Gje});var bz=_((Rkt,Sz)=>{var Wje=KP(),Yje=(t,e)=>t.sort((r,o)=>Wje(o,r,e));Sz.exports=Yje});var Tw=_((Tkt,xz)=>{var Kje=Ml(),Vje=(t,e,r)=>Kje(t,e,r)>0;xz.exports=Vje});var VP=_((Nkt,kz)=>{var Jje=Ml(),zje=(t,e,r)=>Jje(t,e,r)<0;kz.exports=zje});var kN=_((Lkt,Qz)=>{var Xje=Ml(),Zje=(t,e,r)=>Xje(t,e,r)===0;Qz.exports=Zje});var QN=_((Okt,Fz)=>{var $je=Ml(),e5e=(t,e,r)=>$je(t,e,r)!==0;Fz.exports=e5e});var JP=_((Mkt,Rz)=>{var t5e=Ml(),r5e=(t,e,r)=>t5e(t,e,r)>=0;Rz.exports=r5e});var zP=_((Ukt,Tz)=>{var n5e=Ml(),i5e=(t,e,r)=>n5e(t,e,r)<=0;Tz.exports=i5e});var FN=_((_kt,Nz)=>{var s5e=kN(),o5e=QN(),a5e=Tw(),l5e=JP(),c5e=VP(),u5e=zP(),A5e=(t,e,r,o)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return s5e(t,r,o);case"!=":return o5e(t,r,o);case">":return a5e(t,r,o);case">=":return l5e(t,r,o);case"<":return c5e(t,r,o);case"<=":return u5e(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};Nz.exports=A5e});var Oz=_((Hkt,Lz)=>{var f5e=Eo(),p5e=cg(),{safeRe:XP,t:ZP}=xm(),h5e=(t,e)=>{if(t instanceof f5e)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?XP[ZP.COERCEFULL]:XP[ZP.COERCE]);else{let p=e.includePrerelease?XP[ZP.COERCERTLFULL]:XP[ZP.COERCERTL],h;for(;(h=p.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||h.index+h[0].length!==r.index+r[0].length)&&(r=h),p.lastIndex=h.index+h[1].length+h[2].length;p.lastIndex=-1}if(r===null)return null;let o=r[2],a=r[3]||"0",n=r[4]||"0",u=e.includePrerelease&&r[5]?`-${r[5]}`:"",A=e.includePrerelease&&r[6]?`+${r[6]}`:"";return p5e(`${o}.${a}.${n}${u}${A}`,e)};Lz.exports=h5e});var Uz=_((qkt,Mz)=>{"use strict";Mz.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var $P=_((jkt,_z)=>{"use strict";_z.exports=bn;bn.Node=ug;bn.create=bn;function bn(t){var e=this;if(e instanceof bn||(e=new bn),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(a){e.push(a)});else if(arguments.length>0)for(var r=0,o=arguments.length;r1)r=e;else if(this.head)o=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;o!==null;a++)r=t(r,o.value,a),o=o.next;return r};bn.prototype.reduceReverse=function(t,e){var r,o=this.tail;if(arguments.length>1)r=e;else if(this.tail)o=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;o!==null;a--)r=t(r,o.value,a),o=o.prev;return r};bn.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};bn.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};bn.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new bn;if(ethis.length&&(e=this.length);for(var o=0,a=this.head;a!==null&&othis.length&&(e=this.length);for(var o=this.length,a=this.tail;a!==null&&o>e;o--)a=a.prev;for(;a!==null&&o>t;o--,a=a.prev)r.push(a.value);return r};bn.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var o=0,a=this.head;a!==null&&o{"use strict";var y5e=$P(),Ag=Symbol("max"),wf=Symbol("length"),Qm=Symbol("lengthCalculator"),Lw=Symbol("allowStale"),fg=Symbol("maxAge"),If=Symbol("dispose"),Hz=Symbol("noDisposeOnSet"),Ds=Symbol("lruList"),Gc=Symbol("cache"),jz=Symbol("updateAgeOnGet"),RN=()=>1,NN=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[Ag]=e.max||1/0,o=e.length||RN;if(this[Qm]=typeof o!="function"?RN:o,this[Lw]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[fg]=e.maxAge||0,this[If]=e.dispose,this[Hz]=e.noDisposeOnSet||!1,this[jz]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[Ag]=e||1/0,Nw(this)}get max(){return this[Ag]}set allowStale(e){this[Lw]=!!e}get allowStale(){return this[Lw]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[fg]=e,Nw(this)}get maxAge(){return this[fg]}set lengthCalculator(e){typeof e!="function"&&(e=RN),e!==this[Qm]&&(this[Qm]=e,this[wf]=0,this[Ds].forEach(r=>{r.length=this[Qm](r.value,r.key),this[wf]+=r.length})),Nw(this)}get lengthCalculator(){return this[Qm]}get length(){return this[wf]}get itemCount(){return this[Ds].length}rforEach(e,r){r=r||this;for(let o=this[Ds].tail;o!==null;){let a=o.prev;qz(this,e,o,r),o=a}}forEach(e,r){r=r||this;for(let o=this[Ds].head;o!==null;){let a=o.next;qz(this,e,o,r),o=a}}keys(){return this[Ds].toArray().map(e=>e.key)}values(){return this[Ds].toArray().map(e=>e.value)}reset(){this[If]&&this[Ds]&&this[Ds].length&&this[Ds].forEach(e=>this[If](e.key,e.value)),this[Gc]=new Map,this[Ds]=new y5e,this[wf]=0}dump(){return this[Ds].map(e=>eS(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Ds]}set(e,r,o){if(o=o||this[fg],o&&typeof o!="number")throw new TypeError("maxAge must be a number");let a=o?Date.now():0,n=this[Qm](r,e);if(this[Gc].has(e)){if(n>this[Ag])return Fm(this,this[Gc].get(e)),!1;let p=this[Gc].get(e).value;return this[If]&&(this[Hz]||this[If](e,p.value)),p.now=a,p.maxAge=o,p.value=r,this[wf]+=n-p.length,p.length=n,this.get(e),Nw(this),!0}let u=new LN(e,r,n,a,o);return u.length>this[Ag]?(this[If]&&this[If](e,r),!1):(this[wf]+=u.length,this[Ds].unshift(u),this[Gc].set(e,this[Ds].head),Nw(this),!0)}has(e){if(!this[Gc].has(e))return!1;let r=this[Gc].get(e).value;return!eS(this,r)}get(e){return TN(this,e,!0)}peek(e){return TN(this,e,!1)}pop(){let e=this[Ds].tail;return e?(Fm(this,e),e.value):null}del(e){Fm(this,this[Gc].get(e))}load(e){this.reset();let r=Date.now();for(let o=e.length-1;o>=0;o--){let a=e[o],n=a.e||0;if(n===0)this.set(a.k,a.v);else{let u=n-r;u>0&&this.set(a.k,a.v,u)}}}prune(){this[Gc].forEach((e,r)=>TN(this,r,!1))}},TN=(t,e,r)=>{let o=t[Gc].get(e);if(o){let a=o.value;if(eS(t,a)){if(Fm(t,o),!t[Lw])return}else r&&(t[jz]&&(o.value.now=Date.now()),t[Ds].unshiftNode(o));return a.value}},eS=(t,e)=>{if(!e||!e.maxAge&&!t[fg])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[fg]&&r>t[fg]},Nw=t=>{if(t[wf]>t[Ag])for(let e=t[Ds].tail;t[wf]>t[Ag]&&e!==null;){let r=e.prev;Fm(t,e),e=r}},Fm=(t,e)=>{if(e){let r=e.value;t[If]&&t[If](r.key,r.value),t[wf]-=r.length,t[Gc].delete(r.key),t[Ds].removeNode(e)}},LN=class{constructor(e,r,o,a,n){this.key=e,this.value=r,this.length=o,this.now=a,this.maxAge=n||0}},qz=(t,e,r,o)=>{let a=r.value;eS(t,a)&&(Fm(t,r),t[Lw]||(a=void 0)),a&&e.call(o,a.value,a.key,t)};Gz.exports=NN});var Ul=_((Wkt,Jz)=>{var ON=class t{constructor(e,r){if(r=C5e(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof MN)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(o=>this.parseRange(o.trim())).filter(o=>o.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let o=this.set[0];if(this.set=this.set.filter(a=>!Kz(a[0])),this.set.length===0)this.set=[o];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&S5e(a[0])){this.set=[a];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){let o=((this.options.includePrerelease&&D5e)|(this.options.loose&&P5e))+":"+e,a=Yz.get(o);if(a)return a;let n=this.options.loose,u=n?ba[Jo.HYPHENRANGELOOSE]:ba[Jo.HYPHENRANGE];e=e.replace(u,O5e(this.options.includePrerelease)),gi("hyphen replace",e),e=e.replace(ba[Jo.COMPARATORTRIM],w5e),gi("comparator trim",e),e=e.replace(ba[Jo.TILDETRIM],B5e),gi("tilde trim",e),e=e.replace(ba[Jo.CARETTRIM],v5e),gi("caret trim",e);let A=e.split(" ").map(w=>b5e(w,this.options)).join(" ").split(/\s+/).map(w=>L5e(w,this.options));n&&(A=A.filter(w=>(gi("loose invalid filter",w,this.options),!!w.match(ba[Jo.COMPARATORLOOSE])))),gi("range list",A);let p=new Map,h=A.map(w=>new MN(w,this.options));for(let w of h){if(Kz(w))return[w];p.set(w.value,w)}p.size>1&&p.has("")&&p.delete("");let E=[...p.values()];return Yz.set(o,E),E}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(o=>Vz(o,r)&&e.set.some(a=>Vz(a,r)&&o.every(n=>a.every(u=>n.intersects(u,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new I5e(e,this.options)}catch{return!1}for(let r=0;rt.value==="<0.0.0-0",S5e=t=>t.value==="",Vz=(t,e)=>{let r=!0,o=t.slice(),a=o.pop();for(;r&&o.length;)r=o.every(n=>a.intersects(n,e)),a=o.pop();return r},b5e=(t,e)=>(gi("comp",t,e),t=Q5e(t,e),gi("caret",t),t=x5e(t,e),gi("tildes",t),t=R5e(t,e),gi("xrange",t),t=N5e(t,e),gi("stars",t),t),zo=t=>!t||t.toLowerCase()==="x"||t==="*",x5e=(t,e)=>t.trim().split(/\s+/).map(r=>k5e(r,e)).join(" "),k5e=(t,e)=>{let r=e.loose?ba[Jo.TILDELOOSE]:ba[Jo.TILDE];return t.replace(r,(o,a,n,u,A)=>{gi("tilde",t,o,a,n,u,A);let p;return zo(a)?p="":zo(n)?p=`>=${a}.0.0 <${+a+1}.0.0-0`:zo(u)?p=`>=${a}.${n}.0 <${a}.${+n+1}.0-0`:A?(gi("replaceTilde pr",A),p=`>=${a}.${n}.${u}-${A} <${a}.${+n+1}.0-0`):p=`>=${a}.${n}.${u} <${a}.${+n+1}.0-0`,gi("tilde return",p),p})},Q5e=(t,e)=>t.trim().split(/\s+/).map(r=>F5e(r,e)).join(" "),F5e=(t,e)=>{gi("caret",t,e);let r=e.loose?ba[Jo.CARETLOOSE]:ba[Jo.CARET],o=e.includePrerelease?"-0":"";return t.replace(r,(a,n,u,A,p)=>{gi("caret",t,a,n,u,A,p);let h;return zo(n)?h="":zo(u)?h=`>=${n}.0.0${o} <${+n+1}.0.0-0`:zo(A)?n==="0"?h=`>=${n}.${u}.0${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.0${o} <${+n+1}.0.0-0`:p?(gi("replaceCaret pr",p),n==="0"?u==="0"?h=`>=${n}.${u}.${A}-${p} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}-${p} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A}-${p} <${+n+1}.0.0-0`):(gi("no pr"),n==="0"?u==="0"?h=`>=${n}.${u}.${A}${o} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A} <${+n+1}.0.0-0`),gi("caret return",h),h})},R5e=(t,e)=>(gi("replaceXRanges",t,e),t.split(/\s+/).map(r=>T5e(r,e)).join(" ")),T5e=(t,e)=>{t=t.trim();let r=e.loose?ba[Jo.XRANGELOOSE]:ba[Jo.XRANGE];return t.replace(r,(o,a,n,u,A,p)=>{gi("xRange",t,o,a,n,u,A,p);let h=zo(n),E=h||zo(u),w=E||zo(A),D=w;return a==="="&&D&&(a=""),p=e.includePrerelease?"-0":"",h?a===">"||a==="<"?o="<0.0.0-0":o="*":a&&D?(E&&(u=0),A=0,a===">"?(a=">=",E?(n=+n+1,u=0,A=0):(u=+u+1,A=0)):a==="<="&&(a="<",E?n=+n+1:u=+u+1),a==="<"&&(p="-0"),o=`${a+n}.${u}.${A}${p}`):E?o=`>=${n}.0.0${p} <${+n+1}.0.0-0`:w&&(o=`>=${n}.${u}.0${p} <${n}.${+u+1}.0-0`),gi("xRange return",o),o})},N5e=(t,e)=>(gi("replaceStars",t,e),t.trim().replace(ba[Jo.STAR],"")),L5e=(t,e)=>(gi("replaceGTE0",t,e),t.trim().replace(ba[e.includePrerelease?Jo.GTE0PRE:Jo.GTE0],"")),O5e=t=>(e,r,o,a,n,u,A,p,h,E,w,D,x)=>(zo(o)?r="":zo(a)?r=`>=${o}.0.0${t?"-0":""}`:zo(n)?r=`>=${o}.${a}.0${t?"-0":""}`:u?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,zo(h)?p="":zo(E)?p=`<${+h+1}.0.0-0`:zo(w)?p=`<${h}.${+E+1}.0-0`:D?p=`<=${h}.${E}.${w}-${D}`:t?p=`<${h}.${E}.${+w+1}-0`:p=`<=${p}`,`${r} ${p}`.trim()),M5e=(t,e,r)=>{for(let o=0;o0){let a=t[o].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var Ow=_((Ykt,tX)=>{var Mw=Symbol("SemVer ANY"),HN=class t{static get ANY(){return Mw}constructor(e,r){if(r=zz(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),_N("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Mw?this.value="":this.value=this.operator+this.semver.version,_N("comp",this)}parse(e){let r=this.options.loose?Xz[Zz.COMPARATORLOOSE]:Xz[Zz.COMPARATOR],o=e.match(r);if(!o)throw new TypeError(`Invalid comparator: ${e}`);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new $z(o[2],this.options.loose):this.semver=Mw}toString(){return this.value}test(e){if(_N("Comparator.test",e,this.options.loose),this.semver===Mw||e===Mw)return!0;if(typeof e=="string")try{e=new $z(e,this.options)}catch{return!1}return UN(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new eX(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new eX(this.value,r).test(e.semver):(r=zz(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||UN(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||UN(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};tX.exports=HN;var zz=GP(),{safeRe:Xz,t:Zz}=xm(),UN=FN(),_N=Rw(),$z=Eo(),eX=Ul()});var Uw=_((Kkt,rX)=>{var U5e=Ul(),_5e=(t,e,r)=>{try{e=new U5e(e,r)}catch{return!1}return e.test(t)};rX.exports=_5e});var iX=_((Vkt,nX)=>{var H5e=Ul(),q5e=(t,e)=>new H5e(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));nX.exports=q5e});var oX=_((Jkt,sX)=>{var j5e=Eo(),G5e=Ul(),W5e=(t,e,r)=>{let o=null,a=null,n=null;try{n=new G5e(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===-1)&&(o=u,a=new j5e(o,r))}),o};sX.exports=W5e});var lX=_((zkt,aX)=>{var Y5e=Eo(),K5e=Ul(),V5e=(t,e,r)=>{let o=null,a=null,n=null;try{n=new K5e(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===1)&&(o=u,a=new Y5e(o,r))}),o};aX.exports=V5e});var AX=_((Xkt,uX)=>{var qN=Eo(),J5e=Ul(),cX=Tw(),z5e=(t,e)=>{t=new J5e(t,e);let r=new qN("0.0.0");if(t.test(r)||(r=new qN("0.0.0-0"),t.test(r)))return r;r=null;for(let o=0;o{let A=new qN(u.semver.version);switch(u.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!n||cX(A,n))&&(n=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),n&&(!r||cX(r,n))&&(r=n)}return r&&t.test(r)?r:null};uX.exports=z5e});var pX=_((Zkt,fX)=>{var X5e=Ul(),Z5e=(t,e)=>{try{return new X5e(t,e).range||"*"}catch{return null}};fX.exports=Z5e});var tS=_(($kt,mX)=>{var $5e=Eo(),dX=Ow(),{ANY:eGe}=dX,tGe=Ul(),rGe=Uw(),hX=Tw(),gX=VP(),nGe=zP(),iGe=JP(),sGe=(t,e,r,o)=>{t=new $5e(t,o),e=new tGe(e,o);let a,n,u,A,p;switch(r){case">":a=hX,n=nGe,u=gX,A=">",p=">=";break;case"<":a=gX,n=iGe,u=hX,A="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(rGe(t,e,o))return!1;for(let h=0;h{x.semver===eGe&&(x=new dX(">=0.0.0")),w=w||x,D=D||x,a(x.semver,w.semver,o)?w=x:u(x.semver,D.semver,o)&&(D=x)}),w.operator===A||w.operator===p||(!D.operator||D.operator===A)&&n(t,D.semver))return!1;if(D.operator===p&&u(t,D.semver))return!1}return!0};mX.exports=sGe});var EX=_((eQt,yX)=>{var oGe=tS(),aGe=(t,e,r)=>oGe(t,e,">",r);yX.exports=aGe});var IX=_((tQt,CX)=>{var lGe=tS(),cGe=(t,e,r)=>lGe(t,e,"<",r);CX.exports=cGe});var vX=_((rQt,BX)=>{var wX=Ul(),uGe=(t,e,r)=>(t=new wX(t,r),e=new wX(e,r),t.intersects(e,r));BX.exports=uGe});var PX=_((nQt,DX)=>{var AGe=Uw(),fGe=Ml();DX.exports=(t,e,r)=>{let o=[],a=null,n=null,u=t.sort((E,w)=>fGe(E,w,r));for(let E of u)AGe(E,e,r)?(n=E,a||(a=E)):(n&&o.push([a,n]),n=null,a=null);a&&o.push([a,null]);let A=[];for(let[E,w]of o)E===w?A.push(E):!w&&E===u[0]?A.push("*"):w?E===u[0]?A.push(`<=${w}`):A.push(`${E} - ${w}`):A.push(`>=${E}`);let p=A.join(" || "),h=typeof e.raw=="string"?e.raw:String(e);return p.length{var SX=Ul(),GN=Ow(),{ANY:jN}=GN,_w=Uw(),WN=Ml(),pGe=(t,e,r={})=>{if(t===e)return!0;t=new SX(t,r),e=new SX(e,r);let o=!1;e:for(let a of t.set){for(let n of e.set){let u=gGe(a,n,r);if(o=o||u!==null,u)continue e}if(o)return!1}return!0},hGe=[new GN(">=0.0.0-0")],bX=[new GN(">=0.0.0")],gGe=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===jN){if(e.length===1&&e[0].semver===jN)return!0;r.includePrerelease?t=hGe:t=bX}if(e.length===1&&e[0].semver===jN){if(r.includePrerelease)return!0;e=bX}let o=new Set,a,n;for(let x of t)x.operator===">"||x.operator===">="?a=xX(a,x,r):x.operator==="<"||x.operator==="<="?n=kX(n,x,r):o.add(x.semver);if(o.size>1)return null;let u;if(a&&n){if(u=WN(a.semver,n.semver,r),u>0)return null;if(u===0&&(a.operator!==">="||n.operator!=="<="))return null}for(let x of o){if(a&&!_w(x,String(a),r)||n&&!_w(x,String(n),r))return null;for(let C of e)if(!_w(x,String(C),r))return!1;return!0}let A,p,h,E,w=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1,D=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;w&&w.prerelease.length===1&&n.operator==="<"&&w.prerelease[0]===0&&(w=!1);for(let x of e){if(E=E||x.operator===">"||x.operator===">=",h=h||x.operator==="<"||x.operator==="<=",a){if(D&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===D.major&&x.semver.minor===D.minor&&x.semver.patch===D.patch&&(D=!1),x.operator===">"||x.operator===">="){if(A=xX(a,x,r),A===x&&A!==a)return!1}else if(a.operator===">="&&!_w(a.semver,String(x),r))return!1}if(n){if(w&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===w.major&&x.semver.minor===w.minor&&x.semver.patch===w.patch&&(w=!1),x.operator==="<"||x.operator==="<="){if(p=kX(n,x,r),p===x&&p!==n)return!1}else if(n.operator==="<="&&!_w(n.semver,String(x),r))return!1}if(!x.operator&&(n||a)&&u!==0)return!1}return!(a&&h&&!n&&u!==0||n&&E&&!a&&u!==0||D||w)},xX=(t,e,r)=>{if(!t)return e;let o=WN(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},kX=(t,e,r)=>{if(!t)return e;let o=WN(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};QX.exports=pGe});var ni=_((sQt,NX)=>{var YN=xm(),RX=Fw(),dGe=Eo(),TX=bN(),mGe=cg(),yGe=ez(),EGe=rz(),CGe=sz(),IGe=lz(),wGe=uz(),BGe=fz(),vGe=hz(),DGe=dz(),PGe=Ml(),SGe=Cz(),bGe=wz(),xGe=KP(),kGe=Pz(),QGe=bz(),FGe=Tw(),RGe=VP(),TGe=kN(),NGe=QN(),LGe=JP(),OGe=zP(),MGe=FN(),UGe=Oz(),_Ge=Ow(),HGe=Ul(),qGe=Uw(),jGe=iX(),GGe=oX(),WGe=lX(),YGe=AX(),KGe=pX(),VGe=tS(),JGe=EX(),zGe=IX(),XGe=vX(),ZGe=PX(),$Ge=FX();NX.exports={parse:mGe,valid:yGe,clean:EGe,inc:CGe,diff:IGe,major:wGe,minor:BGe,patch:vGe,prerelease:DGe,compare:PGe,rcompare:SGe,compareLoose:bGe,compareBuild:xGe,sort:kGe,rsort:QGe,gt:FGe,lt:RGe,eq:TGe,neq:NGe,gte:LGe,lte:OGe,cmp:MGe,coerce:UGe,Comparator:_Ge,Range:HGe,satisfies:qGe,toComparators:jGe,maxSatisfying:GGe,minSatisfying:WGe,minVersion:YGe,validRange:KGe,outside:VGe,gtr:JGe,ltr:zGe,intersects:XGe,simplifyRange:ZGe,subset:$Ge,SemVer:dGe,re:YN.re,src:YN.src,tokens:YN.t,SEMVER_SPEC_VERSION:RX.SEMVER_SPEC_VERSION,RELEASE_TYPES:RX.RELEASE_TYPES,compareIdentifiers:TX.compareIdentifiers,rcompareIdentifiers:TX.rcompareIdentifiers}});var OX=_((oQt,LX)=>{"use strict";function e9e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function pg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,pg)}e9e(pg,Error);pg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w0){for(w=1,D=1;w{switch(Fe[1]){case"|":return xe|Fe[3];case"&":return xe&Fe[3];case"^":return xe^Fe[3]}},$)},D="!",x=Ne("!",!1),C=function($){return!$},T="(",L=Ne("(",!1),U=")",J=Ne(")",!1),te=function($){return $},le=/^[^ \t\n\r()!|&\^]/,ce=Te([" "," ",` +`,"\r","(",")","!","|","&","^"],!0,!1),ue=function($){return e.queryPattern.test($)},Ie=function($){return e.checkFn($)},he=be("whitespace"),De=/^[ \t\n\r]/,Ee=Te([" "," ",` +`,"\r"],!1,!1),g=0,me=0,Ce=[{line:1,column:1}],fe=0,ie=[],Z=0,Pe;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function Re(){return t.substring(me,g)}function ht(){return He(me,g)}function q($,se){throw se=se!==void 0?se:He(me,g),S([be($)],t.substring(me,g),se)}function nt($,se){throw se=se!==void 0?se:He(me,g),I($,se)}function Ne($,se){return{type:"literal",text:$,ignoreCase:se}}function Te($,se,xe){return{type:"class",parts:$,inverted:se,ignoreCase:xe}}function ke(){return{type:"any"}}function Ve(){return{type:"end"}}function be($){return{type:"other",description:$}}function tt($){var se=Ce[$],xe;if(se)return se;for(xe=$-1;!Ce[xe];)xe--;for(se=Ce[xe],se={line:se.line,column:se.column};xe<$;)t.charCodeAt(xe)===10?(se.line++,se.column=1):se.column++,xe++;return Ce[$]=se,se}function He($,se){var xe=tt($),Fe=tt(se);return{start:{offset:$,line:xe.line,column:xe.column},end:{offset:se,line:Fe.line,column:Fe.column}}}function b($){gfe&&(fe=g,ie=[]),ie.push($))}function I($,se){return new pg($,null,null,se)}function S($,se,xe){return new pg(pg.buildMessage($,se),$,se,xe)}function y(){var $,se,xe,Fe,lt,Et,qt,nr;if($=g,se=R(),se!==r){for(xe=[],Fe=g,lt=X(),lt!==r?(t.charCodeAt(g)===124?(Et=n,g++):(Et=r,Z===0&&b(u)),Et===r&&(t.charCodeAt(g)===38?(Et=A,g++):(Et=r,Z===0&&b(p)),Et===r&&(t.charCodeAt(g)===94?(Et=h,g++):(Et=r,Z===0&&b(E)))),Et!==r?(qt=X(),qt!==r?(nr=R(),nr!==r?(lt=[lt,Et,qt,nr],Fe=lt):(g=Fe,Fe=r)):(g=Fe,Fe=r)):(g=Fe,Fe=r)):(g=Fe,Fe=r);Fe!==r;)xe.push(Fe),Fe=g,lt=X(),lt!==r?(t.charCodeAt(g)===124?(Et=n,g++):(Et=r,Z===0&&b(u)),Et===r&&(t.charCodeAt(g)===38?(Et=A,g++):(Et=r,Z===0&&b(p)),Et===r&&(t.charCodeAt(g)===94?(Et=h,g++):(Et=r,Z===0&&b(E)))),Et!==r?(qt=X(),qt!==r?(nr=R(),nr!==r?(lt=[lt,Et,qt,nr],Fe=lt):(g=Fe,Fe=r)):(g=Fe,Fe=r)):(g=Fe,Fe=r)):(g=Fe,Fe=r);xe!==r?(me=$,se=w(se,xe),$=se):(g=$,$=r)}else g=$,$=r;return $}function R(){var $,se,xe,Fe,lt,Et;return $=g,t.charCodeAt(g)===33?(se=D,g++):(se=r,Z===0&&b(x)),se!==r?(xe=R(),xe!==r?(me=$,se=C(xe),$=se):(g=$,$=r)):(g=$,$=r),$===r&&($=g,t.charCodeAt(g)===40?(se=T,g++):(se=r,Z===0&&b(L)),se!==r?(xe=X(),xe!==r?(Fe=y(),Fe!==r?(lt=X(),lt!==r?(t.charCodeAt(g)===41?(Et=U,g++):(Et=r,Z===0&&b(J)),Et!==r?(me=$,se=te(Fe),$=se):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r),$===r&&($=z())),$}function z(){var $,se,xe,Fe,lt;if($=g,se=X(),se!==r){if(xe=g,Fe=[],le.test(t.charAt(g))?(lt=t.charAt(g),g++):(lt=r,Z===0&&b(ce)),lt!==r)for(;lt!==r;)Fe.push(lt),le.test(t.charAt(g))?(lt=t.charAt(g),g++):(lt=r,Z===0&&b(ce));else Fe=r;Fe!==r?xe=t.substring(xe,g):xe=Fe,xe!==r?(me=g,Fe=ue(xe),Fe?Fe=void 0:Fe=r,Fe!==r?(me=$,se=Ie(xe),$=se):(g=$,$=r)):(g=$,$=r)}else g=$,$=r;return $}function X(){var $,se;for(Z++,$=[],De.test(t.charAt(g))?(se=t.charAt(g),g++):(se=r,Z===0&&b(Ee));se!==r;)$.push(se),De.test(t.charAt(g))?(se=t.charAt(g),g++):(se=r,Z===0&&b(Ee));return Z--,$===r&&(se=r,Z===0&&b(he)),$}if(Pe=a(),Pe!==r&&g===t.length)return Pe;throw Pe!==r&&g{var{parse:r9e}=OX();rS.makeParser=(t=/[a-z]+/)=>(e,r)=>r9e(e,{queryPattern:t,checkFn:r});rS.parse=rS.makeParser()});var _X=_((lQt,UX)=>{"use strict";UX.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var KN=_((cQt,qX)=>{var Hw=_X(),HX={};for(let t of Object.keys(Hw))HX[Hw[t]]=t;var fr={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};qX.exports=fr;for(let t of Object.keys(fr)){if(!("channels"in fr[t]))throw new Error("missing channels property: "+t);if(!("labels"in fr[t]))throw new Error("missing channel labels property: "+t);if(fr[t].labels.length!==fr[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=fr[t];delete fr[t].channels,delete fr[t].labels,Object.defineProperty(fr[t],"channels",{value:e}),Object.defineProperty(fr[t],"labels",{value:r})}fr.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(e,r,o),n=Math.max(e,r,o),u=n-a,A,p;n===a?A=0:e===n?A=(r-o)/u:r===n?A=2+(o-e)/u:o===n&&(A=4+(e-r)/u),A=Math.min(A*60,360),A<0&&(A+=360);let h=(a+n)/2;return n===a?p=0:h<=.5?p=u/(n+a):p=u/(2-n-a),[A,p*100,h*100]};fr.rgb.hsv=function(t){let e,r,o,a,n,u=t[0]/255,A=t[1]/255,p=t[2]/255,h=Math.max(u,A,p),E=h-Math.min(u,A,p),w=function(D){return(h-D)/6/E+1/2};return E===0?(a=0,n=0):(n=E/h,e=w(u),r=w(A),o=w(p),u===h?a=o-r:A===h?a=1/3+e-o:p===h&&(a=2/3+r-e),a<0?a+=1:a>1&&(a-=1)),[a*360,n*100,h*100]};fr.rgb.hwb=function(t){let e=t[0],r=t[1],o=t[2],a=fr.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,o));return o=1-1/255*Math.max(e,Math.max(r,o)),[a,n*100,o*100]};fr.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(1-e,1-r,1-o),n=(1-e-a)/(1-a)||0,u=(1-r-a)/(1-a)||0,A=(1-o-a)/(1-a)||0;return[n*100,u*100,A*100,a*100]};function n9e(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}fr.rgb.keyword=function(t){let e=HX[t];if(e)return e;let r=1/0,o;for(let a of Object.keys(Hw)){let n=Hw[a],u=n9e(t,n);u.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;let a=e*.4124+r*.3576+o*.1805,n=e*.2126+r*.7152+o*.0722,u=e*.0193+r*.1192+o*.9505;return[a*100,n*100,u*100]};fr.rgb.lab=function(t){let e=fr.rgb.xyz(t),r=e[0],o=e[1],a=e[2];r/=95.047,o/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let n=116*o-16,u=500*(r-o),A=200*(o-a);return[n,u,A]};fr.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a,n,u;if(r===0)return u=o*255,[u,u,u];o<.5?a=o*(1+r):a=o+r-o*r;let A=2*o-a,p=[0,0,0];for(let h=0;h<3;h++)n=e+1/3*-(h-1),n<0&&n++,n>1&&n--,6*n<1?u=A+(a-A)*6*n:2*n<1?u=a:3*n<2?u=A+(a-A)*(2/3-n)*6:u=A,p[h]=u*255;return p};fr.hsl.hsv=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=r,n=Math.max(o,.01);o*=2,r*=o<=1?o:2-o,a*=n<=1?n:2-n;let u=(o+r)/2,A=o===0?2*a/(n+a):2*r/(o+r);return[e,A*100,u*100]};fr.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,o=t[2]/100,a=Math.floor(e)%6,n=e-Math.floor(e),u=255*o*(1-r),A=255*o*(1-r*n),p=255*o*(1-r*(1-n));switch(o*=255,a){case 0:return[o,p,u];case 1:return[A,o,u];case 2:return[u,o,p];case 3:return[u,A,o];case 4:return[p,u,o];case 5:return[o,u,A]}};fr.hsv.hsl=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=Math.max(o,.01),n,u;u=(2-r)*o;let A=(2-r)*a;return n=r*a,n/=A<=1?A:2-A,n=n||0,u/=2,[e,n*100,u*100]};fr.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a=r+o,n;a>1&&(r/=a,o/=a);let u=Math.floor(6*e),A=1-o;n=6*e-u,u&1&&(n=1-n);let p=r+n*(A-r),h,E,w;switch(u){default:case 6:case 0:h=A,E=p,w=r;break;case 1:h=p,E=A,w=r;break;case 2:h=r,E=A,w=p;break;case 3:h=r,E=p,w=A;break;case 4:h=p,E=r,w=A;break;case 5:h=A,E=r,w=p;break}return[h*255,E*255,w*255]};fr.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a=t[3]/100,n=1-Math.min(1,e*(1-a)+a),u=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,o*(1-a)+a);return[n*255,u*255,A*255]};fr.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a,n,u;return a=e*3.2406+r*-1.5372+o*-.4986,n=e*-.9689+r*1.8758+o*.0415,u=e*.0557+r*-.204+o*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,a=Math.min(Math.max(0,a),1),n=Math.min(Math.max(0,n),1),u=Math.min(Math.max(0,u),1),[a*255,n*255,u*255]};fr.xyz.lab=function(t){let e=t[0],r=t[1],o=t[2];e/=95.047,r/=100,o/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let a=116*r-16,n=500*(e-r),u=200*(r-o);return[a,n,u]};fr.lab.xyz=function(t){let e=t[0],r=t[1],o=t[2],a,n,u;n=(e+16)/116,a=r/500+n,u=n-o/200;let A=n**3,p=a**3,h=u**3;return n=A>.008856?A:(n-16/116)/7.787,a=p>.008856?p:(a-16/116)/7.787,u=h>.008856?h:(u-16/116)/7.787,a*=95.047,n*=100,u*=108.883,[a,n,u]};fr.lab.lch=function(t){let e=t[0],r=t[1],o=t[2],a;a=Math.atan2(o,r)*360/2/Math.PI,a<0&&(a+=360);let u=Math.sqrt(r*r+o*o);return[e,u,a]};fr.lch.lab=function(t){let e=t[0],r=t[1],a=t[2]/360*2*Math.PI,n=r*Math.cos(a),u=r*Math.sin(a);return[e,n,u]};fr.rgb.ansi16=function(t,e=null){let[r,o,a]=t,n=e===null?fr.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let u=30+(Math.round(a/255)<<2|Math.round(o/255)<<1|Math.round(r/255));return n===2&&(u+=60),u};fr.hsv.ansi16=function(t){return fr.rgb.ansi16(fr.hsv.rgb(t),t[2])};fr.rgb.ansi256=function(t){let e=t[0],r=t[1],o=t[2];return e===r&&r===o?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)};fr.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,o=(e&1)*r*255,a=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[o,a,n]};fr.ansi256.rgb=function(t){if(t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,o=Math.floor((e=t%36)/6)/5*255,a=e%6/5*255;return[r,o,a]};fr.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};fr.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let o=parseInt(r,16),a=o>>16&255,n=o>>8&255,u=o&255;return[a,n,u]};fr.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.max(Math.max(e,r),o),n=Math.min(Math.min(e,r),o),u=a-n,A,p;return u<1?A=n/(1-u):A=0,u<=0?p=0:a===e?p=(r-o)/u%6:a===r?p=2+(o-e)/u:p=4+(e-r)/u,p/=6,p%=1,[p*360,u*100,A*100]};fr.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=r<.5?2*e*r:2*e*(1-r),a=0;return o<1&&(a=(r-.5*o)/(1-o)),[t[0],o*100,a*100]};fr.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=e*r,a=0;return o<1&&(a=(r-o)/(1-o)),[t[0],o*100,a*100]};fr.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100;if(r===0)return[o*255,o*255,o*255];let a=[0,0,0],n=e%1*6,u=n%1,A=1-u,p=0;switch(Math.floor(n)){case 0:a[0]=1,a[1]=u,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=u;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=u,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return p=(1-r)*o,[(r*a[0]+p)*255,(r*a[1]+p)*255,(r*a[2]+p)*255]};fr.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e),a=0;return o>0&&(a=e/o),[t[0],a*100,o*100]};fr.hcg.hsl=function(t){let e=t[1]/100,o=t[2]/100*(1-e)+.5*e,a=0;return o>0&&o<.5?a=e/(2*o):o>=.5&&o<1&&(a=e/(2*(1-o))),[t[0],a*100,o*100]};fr.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e);return[t[0],(o-e)*100,(1-o)*100]};fr.hwb.hcg=function(t){let e=t[1]/100,o=1-t[2]/100,a=o-e,n=0;return a<1&&(n=(o-a)/(1-a)),[t[0],a*100,n*100]};fr.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};fr.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};fr.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};fr.gray.hsl=function(t){return[0,0,t[0]]};fr.gray.hsv=fr.gray.hsl;fr.gray.hwb=function(t){return[0,100,t[0]]};fr.gray.cmyk=function(t){return[0,0,0,t[0]]};fr.gray.lab=function(t){return[t[0],0,0]};fr.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,o=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(o.length)+o};fr.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var GX=_((uQt,jX)=>{var nS=KN();function i9e(){let t={},e=Object.keys(nS);for(let r=e.length,o=0;o{var VN=KN(),l9e=GX(),Rm={},c9e=Object.keys(VN);function u9e(t){let e=function(...r){let o=r[0];return o==null?o:(o.length>1&&(r=o),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function A9e(t){let e=function(...r){let o=r[0];if(o==null)return o;o.length>1&&(r=o);let a=t(r);if(typeof a=="object")for(let n=a.length,u=0;u{Rm[t]={},Object.defineProperty(Rm[t],"channels",{value:VN[t].channels}),Object.defineProperty(Rm[t],"labels",{value:VN[t].labels});let e=l9e(t);Object.keys(e).forEach(o=>{let a=e[o];Rm[t][o]=A9e(a),Rm[t][o].raw=u9e(a)})});WX.exports=Rm});var qw=_((fQt,XX)=>{"use strict";var KX=(t,e)=>(...r)=>`\x1B[${t(...r)+e}m`,VX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};5;${o}m`},JX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};2;${o[0]};${o[1]};${o[2]}m`},iS=t=>t,zX=(t,e,r)=>[t,e,r],Tm=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let o=r();return Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0}),o},enumerable:!0,configurable:!0})},JN,Nm=(t,e,r,o)=>{JN===void 0&&(JN=YX());let a=o?10:0,n={};for(let[u,A]of Object.entries(JN)){let p=u==="ansi16"?"ansi":u;u===e?n[p]=t(r,a):typeof A=="object"&&(n[p]=t(A[e],a))}return n};function f9e(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,o]of Object.entries(e)){for(let[a,n]of Object.entries(o))e[a]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},o[a]=e[a],t.set(n[0],n[1]);Object.defineProperty(e,r,{value:o,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",Tm(e.color,"ansi",()=>Nm(KX,"ansi16",iS,!1)),Tm(e.color,"ansi256",()=>Nm(VX,"ansi256",iS,!1)),Tm(e.color,"ansi16m",()=>Nm(JX,"rgb",zX,!1)),Tm(e.bgColor,"ansi",()=>Nm(KX,"ansi16",iS,!0)),Tm(e.bgColor,"ansi256",()=>Nm(VX,"ansi256",iS,!0)),Tm(e.bgColor,"ansi16m",()=>Nm(JX,"rgb",zX,!0)),e}Object.defineProperty(XX,"exports",{enumerable:!0,get:f9e})});var $X=_((pQt,ZX)=>{"use strict";ZX.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(r+t),a=e.indexOf("--");return o!==-1&&(a===-1||o{"use strict";var p9e=ve("os"),eZ=ve("tty"),_l=$X(),{env:cs}=process,Zp;_l("no-color")||_l("no-colors")||_l("color=false")||_l("color=never")?Zp=0:(_l("color")||_l("colors")||_l("color=true")||_l("color=always"))&&(Zp=1);"FORCE_COLOR"in cs&&(cs.FORCE_COLOR==="true"?Zp=1:cs.FORCE_COLOR==="false"?Zp=0:Zp=cs.FORCE_COLOR.length===0?1:Math.min(parseInt(cs.FORCE_COLOR,10),3));function zN(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function XN(t,e){if(Zp===0)return 0;if(_l("color=16m")||_l("color=full")||_l("color=truecolor"))return 3;if(_l("color=256"))return 2;if(t&&!e&&Zp===void 0)return 0;let r=Zp||0;if(cs.TERM==="dumb")return r;if(process.platform==="win32"){let o=p9e.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in cs)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(o=>o in cs)||cs.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in cs)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(cs.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in cs)return 1;if(cs.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in cs){let o=parseInt((cs.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(cs.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(cs.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(cs.TERM)||"COLORTERM"in cs?1:r}function h9e(t){let e=XN(t,t&&t.isTTY);return zN(e)}tZ.exports={supportsColor:h9e,stdout:zN(XN(!0,eZ.isatty(1))),stderr:zN(XN(!0,eZ.isatty(2)))}});var nZ=_((gQt,rZ)=>{"use strict";var g9e=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},d9e=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r +`:` +`)+r,a=o+1,o=t.indexOf(` +`,a)}while(o!==-1);return n+=t.substr(a),n};rZ.exports={stringReplaceAll:g9e,stringEncaseCRLFWithFirstIndex:d9e}});var lZ=_((dQt,aZ)=>{"use strict";var m9e=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,iZ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,y9e=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,E9e=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,C9e=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function oZ(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):C9e.get(t)||t}function I9e(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(y9e))r.push(a[2].replace(E9e,(A,p,h)=>p?oZ(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function w9e(t){iZ.lastIndex=0;let e=[],r;for(;(r=iZ.exec(t))!==null;){let o=r[1];if(r[2]){let a=I9e(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function sZ(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}aZ.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(m9e,(n,u,A,p,h,E)=>{if(u)a.push(oZ(u));else if(p){let w=a.join("");a=[],o.push(r.length===0?w:sZ(t,r)(w)),r.push({inverse:A,styles:w9e(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(sZ(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var iL=_((mQt,fZ)=>{"use strict";var jw=qw(),{stdout:eL,stderr:tL}=ZN(),{stringReplaceAll:B9e,stringEncaseCRLFWithFirstIndex:v9e}=nZ(),cZ=["ansi","ansi","ansi256","ansi16m"],Lm=Object.create(null),D9e=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=eL?eL.level:0;t.level=e.level===void 0?r:e.level},rL=class{constructor(e){return uZ(e)}},uZ=t=>{let e={};return D9e(e,t),e.template=(...r)=>b9e(e.template,...r),Object.setPrototypeOf(e,sS.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=rL,e.template};function sS(t){return uZ(t)}for(let[t,e]of Object.entries(jw))Lm[t]={get(){let r=oS(this,nL(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};Lm.visible={get(){let t=oS(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var AZ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of AZ)Lm[t]={get(){let{level:e}=this;return function(...r){let o=nL(jw.color[cZ[e]][t](...r),jw.color.close,this._styler);return oS(this,o,this._isEmpty)}}};for(let t of AZ){let e="bg"+t[0].toUpperCase()+t.slice(1);Lm[e]={get(){let{level:r}=this;return function(...o){let a=nL(jw.bgColor[cZ[r]][t](...o),jw.bgColor.close,this._styler);return oS(this,a,this._isEmpty)}}}}var P9e=Object.defineProperties(()=>{},{...Lm,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),nL=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},oS=(t,e,r)=>{let o=(...a)=>S9e(o,a.length===1?""+a[0]:a.join(" "));return o.__proto__=P9e,o._generator=t,o._styler=e,o._isEmpty=r,o},S9e=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=B9e(e,r.close,r.open),r=r.parent;let n=e.indexOf(` +`);return n!==-1&&(e=v9e(e,a,o,n)),o+e+a},$N,b9e=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n{"use strict";Hl.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Hl.find=(t,e)=>t.nodes.find(r=>r.type===e);Hl.exceedsLimit=(t,e,r=1,o)=>o===!1||!Hl.isInteger(t)||!Hl.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=o;Hl.escapeNode=(t,e=0,r)=>{let o=t.nodes[e];o&&(r&&o.type===r||o.type==="open"||o.type==="close")&&o.escaped!==!0&&(o.value="\\"+o.value,o.escaped=!0)};Hl.encloseBrace=t=>t.type!=="brace"||t.commas>>0+t.ranges>>0?!1:(t.invalid=!0,!0);Hl.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:!(t.commas>>0+t.ranges>>0)||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Hl.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Hl.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Hl.flatten=(...t)=>{let e=[],r=o=>{for(let a=0;a{"use strict";var pZ=aS();hZ.exports=(t,e={})=>{let r=(o,a={})=>{let n=e.escapeInvalid&&pZ.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A="";if(o.value)return(n||u)&&pZ.isOpenOrClose(o)?"\\"+o.value:o.value;if(o.value)return o.value;if(o.nodes)for(let p of o.nodes)A+=r(p);return A};return r(t)}});var dZ=_((CQt,gZ)=>{"use strict";gZ.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var DZ=_((IQt,vZ)=>{"use strict";var mZ=dZ(),hg=(t,e,r)=>{if(mZ(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(mZ(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};typeof o.strictZeros=="boolean"&&(o.relaxZeros=o.strictZeros===!1);let a=String(o.relaxZeros),n=String(o.shorthand),u=String(o.capture),A=String(o.wrap),p=t+":"+e+"="+a+n+u+A;if(hg.cache.hasOwnProperty(p))return hg.cache[p].result;let h=Math.min(t,e),E=Math.max(t,e);if(Math.abs(h-E)===1){let T=t+"|"+e;return o.capture?`(${T})`:o.wrap===!1?T:`(?:${T})`}let w=BZ(t)||BZ(e),D={min:t,max:e,a:h,b:E},x=[],C=[];if(w&&(D.isPadded=w,D.maxLen=String(D.max).length),h<0){let T=E<0?Math.abs(E):1;C=yZ(T,Math.abs(h),D,o),h=D.a=0}return E>=0&&(x=yZ(h,E,D,o)),D.negatives=C,D.positives=x,D.result=x9e(C,x,o),o.capture===!0?D.result=`(${D.result})`:o.wrap!==!1&&x.length+C.length>1&&(D.result=`(?:${D.result})`),hg.cache[p]=D,D.result};function x9e(t,e,r){let o=sL(t,e,"-",!1,r)||[],a=sL(e,t,"",!1,r)||[],n=sL(t,e,"-?",!0,r)||[];return o.concat(n).concat(a).join("|")}function k9e(t,e){let r=1,o=1,a=CZ(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=CZ(t,r);for(a=IZ(e+1,o)-1;t1&&A.count.pop(),A.count.push(E.count[0]),A.string=A.pattern+wZ(A.count),u=h+1;continue}r.isPadded&&(w=N9e(h,r,o)),E.string=w+E.pattern+wZ(E.count),n.push(E),u=h+1,A=E}return n}function sL(t,e,r,o,a){let n=[];for(let u of t){let{string:A}=u;!o&&!EZ(e,"string",A)&&n.push(r+A),o&&EZ(e,"string",A)&&n.push(r+A)}return n}function F9e(t,e){let r=[];for(let o=0;oe?1:e>t?-1:0}function EZ(t,e,r){return t.some(o=>o[e]===r)}function CZ(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function IZ(t,e){return t-t%Math.pow(10,e)}function wZ(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function T9e(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function BZ(t){return/^-?(0+)\d/.test(t)}function N9e(t,e,r){if(!e.isPadded)return t;let o=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(o){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${o}}`:`0{${o}}`}}hg.cache={};hg.clearCache=()=>hg.cache={};vZ.exports=hg});var lL=_((wQt,RZ)=>{"use strict";var L9e=ve("util"),bZ=DZ(),PZ=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),O9e=t=>e=>t===!0?Number(e):String(e),oL=t=>typeof t=="number"||typeof t=="string"&&t!=="",Ww=t=>Number.isInteger(+t),aL=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},M9e=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,U9e=(t,e,r)=>{if(e>0){let o=t[0]==="-"?"-":"";o&&(t=t.slice(1)),t=o+t.padStart(o?e-1:e,"0")}return r===!1?String(t):t},SZ=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length{t.negatives.sort((u,A)=>uA?1:0),t.positives.sort((u,A)=>uA?1:0);let r=e.capture?"":"?:",o="",a="",n;return t.positives.length&&(o=t.positives.join("|")),t.negatives.length&&(a=`-(${r}${t.negatives.join("|")})`),o&&a?n=`${o}|${a}`:n=o||a,e.wrap?`(${r}${n})`:n},xZ=(t,e,r,o)=>{if(r)return bZ(t,e,{wrap:!1,...o});let a=String.fromCharCode(t);if(t===e)return a;let n=String.fromCharCode(e);return`[${a}-${n}]`},kZ=(t,e,r)=>{if(Array.isArray(t)){let o=r.wrap===!0,a=r.capture?"":"?:";return o?`(${a}${t.join("|")})`:t.join("|")}return bZ(t,e,r)},QZ=(...t)=>new RangeError("Invalid range arguments: "+L9e.inspect(...t)),FZ=(t,e,r)=>{if(r.strictRanges===!0)throw QZ([t,e]);return[]},H9e=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},q9e=(t,e,r=1,o={})=>{let a=Number(t),n=Number(e);if(!Number.isInteger(a)||!Number.isInteger(n)){if(o.strictRanges===!0)throw QZ([t,e]);return[]}a===0&&(a=0),n===0&&(n=0);let u=a>n,A=String(t),p=String(e),h=String(r);r=Math.max(Math.abs(r),1);let E=aL(A)||aL(p)||aL(h),w=E?Math.max(A.length,p.length,h.length):0,D=E===!1&&M9e(t,e,o)===!1,x=o.transform||O9e(D);if(o.toRegex&&r===1)return xZ(SZ(t,w),SZ(e,w),!0,o);let C={negatives:[],positives:[]},T=J=>C[J<0?"negatives":"positives"].push(Math.abs(J)),L=[],U=0;for(;u?a>=n:a<=n;)o.toRegex===!0&&r>1?T(a):L.push(U9e(x(a,U),w,D)),a=u?a-r:a+r,U++;return o.toRegex===!0?r>1?_9e(C,o):kZ(L,null,{wrap:!1,...o}):L},j9e=(t,e,r=1,o={})=>{if(!Ww(t)&&t.length>1||!Ww(e)&&e.length>1)return FZ(t,e,o);let a=o.transform||(D=>String.fromCharCode(D)),n=`${t}`.charCodeAt(0),u=`${e}`.charCodeAt(0),A=n>u,p=Math.min(n,u),h=Math.max(n,u);if(o.toRegex&&r===1)return xZ(p,h,!1,o);let E=[],w=0;for(;A?n>=u:n<=u;)E.push(a(n,w)),n=A?n-r:n+r,w++;return o.toRegex===!0?kZ(E,null,{wrap:!1,options:o}):E},cS=(t,e,r,o={})=>{if(e==null&&oL(t))return[t];if(!oL(t)||!oL(e))return FZ(t,e,o);if(typeof r=="function")return cS(t,e,1,{transform:r});if(PZ(r))return cS(t,e,0,r);let a={...o};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,Ww(r)?Ww(t)&&Ww(e)?q9e(t,e,r,a):j9e(t,e,Math.max(Math.abs(r),1),a):r!=null&&!PZ(r)?H9e(r,a):cS(t,e,1,r)};RZ.exports=cS});var LZ=_((BQt,NZ)=>{"use strict";var G9e=lL(),TZ=aS(),W9e=(t,e={})=>{let r=(o,a={})=>{let n=TZ.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A=n===!0||u===!0,p=e.escapeInvalid===!0?"\\":"",h="";if(o.isOpen===!0||o.isClose===!0)return p+o.value;if(o.type==="open")return A?p+o.value:"(";if(o.type==="close")return A?p+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":A?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){let E=TZ.reduce(o.nodes),w=G9e(...E,{...e,wrap:!1,toRegex:!0});if(w.length!==0)return E.length>1&&w.length>1?`(${w})`:w}if(o.nodes)for(let E of o.nodes)h+=r(E,o);return h};return r(t)};NZ.exports=W9e});var UZ=_((vQt,MZ)=>{"use strict";var Y9e=lL(),OZ=lS(),Om=aS(),gg=(t="",e="",r=!1)=>{let o=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?Om.flatten(e).map(a=>`{${a}}`):e;for(let a of t)if(Array.isArray(a))for(let n of a)o.push(gg(n,e,r));else for(let n of e)r===!0&&typeof n=="string"&&(n=`{${n}}`),o.push(Array.isArray(n)?gg(a,n,r):a+n);return Om.flatten(o)},K9e=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,o=(a,n={})=>{a.queue=[];let u=n,A=n.queue;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,A=u.queue;if(a.invalid||a.dollar){A.push(gg(A.pop(),OZ(a,e)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(gg(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let w=Om.reduce(a.nodes);if(Om.exceedsLimit(...w,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let D=Y9e(...w,e);D.length===0&&(D=OZ(a,e)),A.push(gg(A.pop(),D)),a.nodes=[];return}let p=Om.encloseBrace(a),h=a.queue,E=a;for(;E.type!=="brace"&&E.type!=="root"&&E.parent;)E=E.parent,h=E.queue;for(let w=0;w{"use strict";_Z.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var YZ=_((PQt,WZ)=>{"use strict";var V9e=lS(),{MAX_LENGTH:qZ,CHAR_BACKSLASH:cL,CHAR_BACKTICK:J9e,CHAR_COMMA:z9e,CHAR_DOT:X9e,CHAR_LEFT_PARENTHESES:Z9e,CHAR_RIGHT_PARENTHESES:$9e,CHAR_LEFT_CURLY_BRACE:e7e,CHAR_RIGHT_CURLY_BRACE:t7e,CHAR_LEFT_SQUARE_BRACKET:jZ,CHAR_RIGHT_SQUARE_BRACKET:GZ,CHAR_DOUBLE_QUOTE:r7e,CHAR_SINGLE_QUOTE:n7e,CHAR_NO_BREAK_SPACE:i7e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:s7e}=HZ(),o7e=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},o=typeof r.maxLength=="number"?Math.min(qZ,r.maxLength):qZ;if(t.length>o)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${o})`);let a={type:"root",input:t,nodes:[]},n=[a],u=a,A=a,p=0,h=t.length,E=0,w=0,D,x={},C=()=>t[E++],T=L=>{if(L.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&L.type==="text"){A.value+=L.value;return}return u.nodes.push(L),L.parent=u,L.prev=A,A=L,L};for(T({type:"bos"});E0){if(u.ranges>0){u.ranges=0;let L=u.nodes.shift();u.nodes=[L,{type:"text",value:V9e(u)}]}T({type:"comma",value:D}),u.commas++;continue}if(D===X9e&&w>0&&u.commas===0){let L=u.nodes;if(w===0||L.length===0){T({type:"text",value:D});continue}if(A.type==="dot"){if(u.range=[],A.value+=D,A.type="range",u.nodes.length!==3&&u.nodes.length!==5){u.invalid=!0,u.ranges=0,A.type="text";continue}u.ranges++,u.args=[];continue}if(A.type==="range"){L.pop();let U=L[L.length-1];U.value+=A.value+D,A=U,u.ranges--;continue}T({type:"dot",value:D});continue}T({type:"text",value:D})}do if(u=n.pop(),u.type!=="root"){u.nodes.forEach(J=>{J.nodes||(J.type==="open"&&(J.isOpen=!0),J.type==="close"&&(J.isClose=!0),J.nodes||(J.type="text"),J.invalid=!0)});let L=n[n.length-1],U=L.nodes.indexOf(u);L.nodes.splice(U,1,...u.nodes)}while(n.length>0);return T({type:"eos"}),a};WZ.exports=o7e});var JZ=_((SQt,VZ)=>{"use strict";var KZ=lS(),a7e=LZ(),l7e=UZ(),c7e=YZ(),al=(t,e={})=>{let r=[];if(Array.isArray(t))for(let o of t){let a=al.create(o,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(al.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};al.parse=(t,e={})=>c7e(t,e);al.stringify=(t,e={})=>KZ(typeof t=="string"?al.parse(t,e):t,e);al.compile=(t,e={})=>(typeof t=="string"&&(t=al.parse(t,e)),a7e(t,e));al.expand=(t,e={})=>{typeof t=="string"&&(t=al.parse(t,e));let r=l7e(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};al.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?al.compile(t,e):al.expand(t,e);VZ.exports=al});var Yw=_((bQt,e$)=>{"use strict";var u7e=ve("path"),zu="\\\\/",zZ=`[^${zu}]`,Bf="\\.",A7e="\\+",f7e="\\?",uS="\\/",p7e="(?=.)",XZ="[^/]",uL=`(?:${uS}|$)`,ZZ=`(?:^|${uS})`,AL=`${Bf}{1,2}${uL}`,h7e=`(?!${Bf})`,g7e=`(?!${ZZ}${AL})`,d7e=`(?!${Bf}{0,1}${uL})`,m7e=`(?!${AL})`,y7e=`[^.${uS}]`,E7e=`${XZ}*?`,$Z={DOT_LITERAL:Bf,PLUS_LITERAL:A7e,QMARK_LITERAL:f7e,SLASH_LITERAL:uS,ONE_CHAR:p7e,QMARK:XZ,END_ANCHOR:uL,DOTS_SLASH:AL,NO_DOT:h7e,NO_DOTS:g7e,NO_DOT_SLASH:d7e,NO_DOTS_SLASH:m7e,QMARK_NO_DOT:y7e,STAR:E7e,START_ANCHOR:ZZ},C7e={...$Z,SLASH_LITERAL:`[${zu}]`,QMARK:zZ,STAR:`${zZ}*?`,DOTS_SLASH:`${Bf}{1,2}(?:[${zu}]|$)`,NO_DOT:`(?!${Bf})`,NO_DOTS:`(?!(?:^|[${zu}])${Bf}{1,2}(?:[${zu}]|$))`,NO_DOT_SLASH:`(?!${Bf}{0,1}(?:[${zu}]|$))`,NO_DOTS_SLASH:`(?!${Bf}{1,2}(?:[${zu}]|$))`,QMARK_NO_DOT:`[^.${zu}]`,START_ANCHOR:`(?:^|[${zu}])`,END_ANCHOR:`(?:[${zu}]|$)`},I7e={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};e$.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:I7e,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:u7e.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?C7e:$Z}}});var Kw=_(xa=>{"use strict";var w7e=ve("path"),B7e=process.platform==="win32",{REGEX_BACKSLASH:v7e,REGEX_REMOVE_BACKSLASH:D7e,REGEX_SPECIAL_CHARS:P7e,REGEX_SPECIAL_CHARS_GLOBAL:S7e}=Yw();xa.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);xa.hasRegexChars=t=>P7e.test(t);xa.isRegexChar=t=>t.length===1&&xa.hasRegexChars(t);xa.escapeRegex=t=>t.replace(S7e,"\\$1");xa.toPosixSlashes=t=>t.replace(v7e,"/");xa.removeBackslashes=t=>t.replace(D7e,e=>e==="\\"?"":e);xa.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};xa.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:B7e===!0||w7e.sep==="\\";xa.escapeLast=(t,e,r)=>{let o=t.lastIndexOf(e,r);return o===-1?t:t[o-1]==="\\"?xa.escapeLast(t,e,o-1):`${t.slice(0,o)}\\${t.slice(o)}`};xa.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};xa.wrapOutput=(t,e={},r={})=>{let o=r.contains?"":"^",a=r.contains?"":"$",n=`${o}(?:${t})${a}`;return e.negated===!0&&(n=`(?:^(?!${n}).*$)`),n}});var l$=_((kQt,a$)=>{"use strict";var t$=Kw(),{CHAR_ASTERISK:fL,CHAR_AT:b7e,CHAR_BACKWARD_SLASH:Vw,CHAR_COMMA:x7e,CHAR_DOT:pL,CHAR_EXCLAMATION_MARK:hL,CHAR_FORWARD_SLASH:o$,CHAR_LEFT_CURLY_BRACE:gL,CHAR_LEFT_PARENTHESES:dL,CHAR_LEFT_SQUARE_BRACKET:k7e,CHAR_PLUS:Q7e,CHAR_QUESTION_MARK:r$,CHAR_RIGHT_CURLY_BRACE:F7e,CHAR_RIGHT_PARENTHESES:n$,CHAR_RIGHT_SQUARE_BRACKET:R7e}=Yw(),i$=t=>t===o$||t===Vw,s$=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},T7e=(t,e)=>{let r=e||{},o=t.length-1,a=r.parts===!0||r.scanToEnd===!0,n=[],u=[],A=[],p=t,h=-1,E=0,w=0,D=!1,x=!1,C=!1,T=!1,L=!1,U=!1,J=!1,te=!1,le=!1,ce=!1,ue=0,Ie,he,De={value:"",depth:0,isGlob:!1},Ee=()=>h>=o,g=()=>p.charCodeAt(h+1),me=()=>(Ie=he,p.charCodeAt(++h));for(;h0&&(fe=p.slice(0,E),p=p.slice(E),w-=E),Ce&&C===!0&&w>0?(Ce=p.slice(0,w),ie=p.slice(w)):C===!0?(Ce="",ie=p):Ce=p,Ce&&Ce!==""&&Ce!=="/"&&Ce!==p&&i$(Ce.charCodeAt(Ce.length-1))&&(Ce=Ce.slice(0,-1)),r.unescape===!0&&(ie&&(ie=t$.removeBackslashes(ie)),Ce&&J===!0&&(Ce=t$.removeBackslashes(Ce)));let Z={prefix:fe,input:t,start:E,base:Ce,glob:ie,isBrace:D,isBracket:x,isGlob:C,isExtglob:T,isGlobstar:L,negated:te,negatedExtglob:le};if(r.tokens===!0&&(Z.maxDepth=0,i$(he)||u.push(De),Z.tokens=u),r.parts===!0||r.tokens===!0){let Pe;for(let Re=0;Re{"use strict";var AS=Yw(),ll=Kw(),{MAX_LENGTH:fS,POSIX_REGEX_SOURCE:N7e,REGEX_NON_SPECIAL_CHARS:L7e,REGEX_SPECIAL_CHARS_BACKREF:O7e,REPLACEMENTS:c$}=AS,M7e=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(a=>ll.escapeRegex(a)).join("..")}return r},Mm=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,mL=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=c$[t]||t;let r={...e},o=typeof r.maxLength=="number"?Math.min(fS,r.maxLength):fS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);let n={type:"bos",value:"",output:r.prepend||""},u=[n],A=r.capture?"":"?:",p=ll.isWindows(e),h=AS.globChars(p),E=AS.extglobChars(h),{DOT_LITERAL:w,PLUS_LITERAL:D,SLASH_LITERAL:x,ONE_CHAR:C,DOTS_SLASH:T,NO_DOT:L,NO_DOT_SLASH:U,NO_DOTS_SLASH:J,QMARK:te,QMARK_NO_DOT:le,STAR:ce,START_ANCHOR:ue}=h,Ie=b=>`(${A}(?:(?!${ue}${b.dot?T:w}).)*?)`,he=r.dot?"":L,De=r.dot?te:le,Ee=r.bash===!0?Ie(r):ce;r.capture&&(Ee=`(${Ee})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let g={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:u};t=ll.removePrefix(t,g),a=t.length;let me=[],Ce=[],fe=[],ie=n,Z,Pe=()=>g.index===a-1,Re=g.peek=(b=1)=>t[g.index+b],ht=g.advance=()=>t[++g.index]||"",q=()=>t.slice(g.index+1),nt=(b="",I=0)=>{g.consumed+=b,g.index+=I},Ne=b=>{g.output+=b.output!=null?b.output:b.value,nt(b.value)},Te=()=>{let b=1;for(;Re()==="!"&&(Re(2)!=="("||Re(3)==="?");)ht(),g.start++,b++;return b%2===0?!1:(g.negated=!0,g.start++,!0)},ke=b=>{g[b]++,fe.push(b)},Ve=b=>{g[b]--,fe.pop()},be=b=>{if(ie.type==="globstar"){let I=g.braces>0&&(b.type==="comma"||b.type==="brace"),S=b.extglob===!0||me.length&&(b.type==="pipe"||b.type==="paren");b.type!=="slash"&&b.type!=="paren"&&!I&&!S&&(g.output=g.output.slice(0,-ie.output.length),ie.type="star",ie.value="*",ie.output=Ee,g.output+=ie.output)}if(me.length&&b.type!=="paren"&&(me[me.length-1].inner+=b.value),(b.value||b.output)&&Ne(b),ie&&ie.type==="text"&&b.type==="text"){ie.value+=b.value,ie.output=(ie.output||"")+b.value;return}b.prev=ie,u.push(b),ie=b},tt=(b,I)=>{let S={...E[I],conditions:1,inner:""};S.prev=ie,S.parens=g.parens,S.output=g.output;let y=(r.capture?"(":"")+S.open;ke("parens"),be({type:b,value:I,output:g.output?"":C}),be({type:"paren",extglob:!0,value:ht(),output:y}),me.push(S)},He=b=>{let I=b.close+(r.capture?")":""),S;if(b.type==="negate"){let y=Ee;if(b.inner&&b.inner.length>1&&b.inner.includes("/")&&(y=Ie(r)),(y!==Ee||Pe()||/^\)+$/.test(q()))&&(I=b.close=`)$))${y}`),b.inner.includes("*")&&(S=q())&&/^\.[^\\/.]+$/.test(S)){let R=mL(S,{...e,fastpaths:!1}).output;I=b.close=`)${R})${y})`}b.prev.type==="bos"&&(g.negatedExtglob=!0)}be({type:"paren",extglob:!0,value:Z,output:I}),Ve("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let b=!1,I=t.replace(O7e,(S,y,R,z,X,$)=>z==="\\"?(b=!0,S):z==="?"?y?y+z+(X?te.repeat(X.length):""):$===0?De+(X?te.repeat(X.length):""):te.repeat(R.length):z==="."?w.repeat(R.length):z==="*"?y?y+z+(X?Ee:""):Ee:y?S:`\\${S}`);return b===!0&&(r.unescape===!0?I=I.replace(/\\/g,""):I=I.replace(/\\+/g,S=>S.length%2===0?"\\\\":S?"\\":"")),I===t&&r.contains===!0?(g.output=t,g):(g.output=ll.wrapOutput(I,g,e),g)}for(;!Pe();){if(Z=ht(),Z==="\0")continue;if(Z==="\\"){let S=Re();if(S==="/"&&r.bash!==!0||S==="."||S===";")continue;if(!S){Z+="\\",be({type:"text",value:Z});continue}let y=/^\\+/.exec(q()),R=0;if(y&&y[0].length>2&&(R=y[0].length,g.index+=R,R%2!==0&&(Z+="\\")),r.unescape===!0?Z=ht():Z+=ht(),g.brackets===0){be({type:"text",value:Z});continue}}if(g.brackets>0&&(Z!=="]"||ie.value==="["||ie.value==="[^")){if(r.posix!==!1&&Z===":"){let S=ie.value.slice(1);if(S.includes("[")&&(ie.posix=!0,S.includes(":"))){let y=ie.value.lastIndexOf("["),R=ie.value.slice(0,y),z=ie.value.slice(y+2),X=N7e[z];if(X){ie.value=R+X,g.backtrack=!0,ht(),!n.output&&u.indexOf(ie)===1&&(n.output=C);continue}}}(Z==="["&&Re()!==":"||Z==="-"&&Re()==="]")&&(Z=`\\${Z}`),Z==="]"&&(ie.value==="["||ie.value==="[^")&&(Z=`\\${Z}`),r.posix===!0&&Z==="!"&&ie.value==="["&&(Z="^"),ie.value+=Z,Ne({value:Z});continue}if(g.quotes===1&&Z!=='"'){Z=ll.escapeRegex(Z),ie.value+=Z,Ne({value:Z});continue}if(Z==='"'){g.quotes=g.quotes===1?0:1,r.keepQuotes===!0&&be({type:"text",value:Z});continue}if(Z==="("){ke("parens"),be({type:"paren",value:Z});continue}if(Z===")"){if(g.parens===0&&r.strictBrackets===!0)throw new SyntaxError(Mm("opening","("));let S=me[me.length-1];if(S&&g.parens===S.parens+1){He(me.pop());continue}be({type:"paren",value:Z,output:g.parens?")":"\\)"}),Ve("parens");continue}if(Z==="["){if(r.nobracket===!0||!q().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(Mm("closing","]"));Z=`\\${Z}`}else ke("brackets");be({type:"bracket",value:Z});continue}if(Z==="]"){if(r.nobracket===!0||ie&&ie.type==="bracket"&&ie.value.length===1){be({type:"text",value:Z,output:`\\${Z}`});continue}if(g.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(Mm("opening","["));be({type:"text",value:Z,output:`\\${Z}`});continue}Ve("brackets");let S=ie.value.slice(1);if(ie.posix!==!0&&S[0]==="^"&&!S.includes("/")&&(Z=`/${Z}`),ie.value+=Z,Ne({value:Z}),r.literalBrackets===!1||ll.hasRegexChars(S))continue;let y=ll.escapeRegex(ie.value);if(g.output=g.output.slice(0,-ie.value.length),r.literalBrackets===!0){g.output+=y,ie.value=y;continue}ie.value=`(${A}${y}|${ie.value})`,g.output+=ie.value;continue}if(Z==="{"&&r.nobrace!==!0){ke("braces");let S={type:"brace",value:Z,output:"(",outputIndex:g.output.length,tokensIndex:g.tokens.length};Ce.push(S),be(S);continue}if(Z==="}"){let S=Ce[Ce.length-1];if(r.nobrace===!0||!S){be({type:"text",value:Z,output:Z});continue}let y=")";if(S.dots===!0){let R=u.slice(),z=[];for(let X=R.length-1;X>=0&&(u.pop(),R[X].type!=="brace");X--)R[X].type!=="dots"&&z.unshift(R[X].value);y=M7e(z,r),g.backtrack=!0}if(S.comma!==!0&&S.dots!==!0){let R=g.output.slice(0,S.outputIndex),z=g.tokens.slice(S.tokensIndex);S.value=S.output="\\{",Z=y="\\}",g.output=R;for(let X of z)g.output+=X.output||X.value}be({type:"brace",value:Z,output:y}),Ve("braces"),Ce.pop();continue}if(Z==="|"){me.length>0&&me[me.length-1].conditions++,be({type:"text",value:Z});continue}if(Z===","){let S=Z,y=Ce[Ce.length-1];y&&fe[fe.length-1]==="braces"&&(y.comma=!0,S="|"),be({type:"comma",value:Z,output:S});continue}if(Z==="/"){if(ie.type==="dot"&&g.index===g.start+1){g.start=g.index+1,g.consumed="",g.output="",u.pop(),ie=n;continue}be({type:"slash",value:Z,output:x});continue}if(Z==="."){if(g.braces>0&&ie.type==="dot"){ie.value==="."&&(ie.output=w);let S=Ce[Ce.length-1];ie.type="dots",ie.output+=Z,ie.value+=Z,S.dots=!0;continue}if(g.braces+g.parens===0&&ie.type!=="bos"&&ie.type!=="slash"){be({type:"text",value:Z,output:w});continue}be({type:"dot",value:Z,output:w});continue}if(Z==="?"){if(!(ie&&ie.value==="(")&&r.noextglob!==!0&&Re()==="("&&Re(2)!=="?"){tt("qmark",Z);continue}if(ie&&ie.type==="paren"){let y=Re(),R=Z;if(y==="<"&&!ll.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(ie.value==="("&&!/[!=<:]/.test(y)||y==="<"&&!/<([!=]|\w+>)/.test(q()))&&(R=`\\${Z}`),be({type:"text",value:Z,output:R});continue}if(r.dot!==!0&&(ie.type==="slash"||ie.type==="bos")){be({type:"qmark",value:Z,output:le});continue}be({type:"qmark",value:Z,output:te});continue}if(Z==="!"){if(r.noextglob!==!0&&Re()==="("&&(Re(2)!=="?"||!/[!=<:]/.test(Re(3)))){tt("negate",Z);continue}if(r.nonegate!==!0&&g.index===0){Te();continue}}if(Z==="+"){if(r.noextglob!==!0&&Re()==="("&&Re(2)!=="?"){tt("plus",Z);continue}if(ie&&ie.value==="("||r.regex===!1){be({type:"plus",value:Z,output:D});continue}if(ie&&(ie.type==="bracket"||ie.type==="paren"||ie.type==="brace")||g.parens>0){be({type:"plus",value:Z});continue}be({type:"plus",value:D});continue}if(Z==="@"){if(r.noextglob!==!0&&Re()==="("&&Re(2)!=="?"){be({type:"at",extglob:!0,value:Z,output:""});continue}be({type:"text",value:Z});continue}if(Z!=="*"){(Z==="$"||Z==="^")&&(Z=`\\${Z}`);let S=L7e.exec(q());S&&(Z+=S[0],g.index+=S[0].length),be({type:"text",value:Z});continue}if(ie&&(ie.type==="globstar"||ie.star===!0)){ie.type="star",ie.star=!0,ie.value+=Z,ie.output=Ee,g.backtrack=!0,g.globstar=!0,nt(Z);continue}let b=q();if(r.noextglob!==!0&&/^\([^?]/.test(b)){tt("star",Z);continue}if(ie.type==="star"){if(r.noglobstar===!0){nt(Z);continue}let S=ie.prev,y=S.prev,R=S.type==="slash"||S.type==="bos",z=y&&(y.type==="star"||y.type==="globstar");if(r.bash===!0&&(!R||b[0]&&b[0]!=="/")){be({type:"star",value:Z,output:""});continue}let X=g.braces>0&&(S.type==="comma"||S.type==="brace"),$=me.length&&(S.type==="pipe"||S.type==="paren");if(!R&&S.type!=="paren"&&!X&&!$){be({type:"star",value:Z,output:""});continue}for(;b.slice(0,3)==="/**";){let se=t[g.index+4];if(se&&se!=="/")break;b=b.slice(3),nt("/**",3)}if(S.type==="bos"&&Pe()){ie.type="globstar",ie.value+=Z,ie.output=Ie(r),g.output=ie.output,g.globstar=!0,nt(Z);continue}if(S.type==="slash"&&S.prev.type!=="bos"&&!z&&Pe()){g.output=g.output.slice(0,-(S.output+ie.output).length),S.output=`(?:${S.output}`,ie.type="globstar",ie.output=Ie(r)+(r.strictSlashes?")":"|$)"),ie.value+=Z,g.globstar=!0,g.output+=S.output+ie.output,nt(Z);continue}if(S.type==="slash"&&S.prev.type!=="bos"&&b[0]==="/"){let se=b[1]!==void 0?"|$":"";g.output=g.output.slice(0,-(S.output+ie.output).length),S.output=`(?:${S.output}`,ie.type="globstar",ie.output=`${Ie(r)}${x}|${x}${se})`,ie.value+=Z,g.output+=S.output+ie.output,g.globstar=!0,nt(Z+ht()),be({type:"slash",value:"/",output:""});continue}if(S.type==="bos"&&b[0]==="/"){ie.type="globstar",ie.value+=Z,ie.output=`(?:^|${x}|${Ie(r)}${x})`,g.output=ie.output,g.globstar=!0,nt(Z+ht()),be({type:"slash",value:"/",output:""});continue}g.output=g.output.slice(0,-ie.output.length),ie.type="globstar",ie.output=Ie(r),ie.value+=Z,g.output+=ie.output,g.globstar=!0,nt(Z);continue}let I={type:"star",value:Z,output:Ee};if(r.bash===!0){I.output=".*?",(ie.type==="bos"||ie.type==="slash")&&(I.output=he+I.output),be(I);continue}if(ie&&(ie.type==="bracket"||ie.type==="paren")&&r.regex===!0){I.output=Z,be(I);continue}(g.index===g.start||ie.type==="slash"||ie.type==="dot")&&(ie.type==="dot"?(g.output+=U,ie.output+=U):r.dot===!0?(g.output+=J,ie.output+=J):(g.output+=he,ie.output+=he),Re()!=="*"&&(g.output+=C,ie.output+=C)),be(I)}for(;g.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(Mm("closing","]"));g.output=ll.escapeLast(g.output,"["),Ve("brackets")}for(;g.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(Mm("closing",")"));g.output=ll.escapeLast(g.output,"("),Ve("parens")}for(;g.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(Mm("closing","}"));g.output=ll.escapeLast(g.output,"{"),Ve("braces")}if(r.strictSlashes!==!0&&(ie.type==="star"||ie.type==="bracket")&&be({type:"maybe_slash",value:"",output:`${x}?`}),g.backtrack===!0){g.output="";for(let b of g.tokens)g.output+=b.output!=null?b.output:b.value,b.suffix&&(g.output+=b.suffix)}return g};mL.fastpaths=(t,e)=>{let r={...e},o=typeof r.maxLength=="number"?Math.min(fS,r.maxLength):fS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);t=c$[t]||t;let n=ll.isWindows(e),{DOT_LITERAL:u,SLASH_LITERAL:A,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:E,NO_DOTS:w,NO_DOTS_SLASH:D,STAR:x,START_ANCHOR:C}=AS.globChars(n),T=r.dot?w:E,L=r.dot?D:E,U=r.capture?"":"?:",J={negated:!1,prefix:""},te=r.bash===!0?".*?":x;r.capture&&(te=`(${te})`);let le=he=>he.noglobstar===!0?te:`(${U}(?:(?!${C}${he.dot?h:u}).)*?)`,ce=he=>{switch(he){case"*":return`${T}${p}${te}`;case".*":return`${u}${p}${te}`;case"*.*":return`${T}${te}${u}${p}${te}`;case"*/*":return`${T}${te}${A}${p}${L}${te}`;case"**":return T+le(r);case"**/*":return`(?:${T}${le(r)}${A})?${L}${p}${te}`;case"**/*.*":return`(?:${T}${le(r)}${A})?${L}${te}${u}${p}${te}`;case"**/.*":return`(?:${T}${le(r)}${A})?${u}${p}${te}`;default:{let De=/^(.*?)\.(\w+)$/.exec(he);if(!De)return;let Ee=ce(De[1]);return Ee?Ee+u+De[2]:void 0}}},ue=ll.removePrefix(t,J),Ie=ce(ue);return Ie&&r.strictSlashes!==!0&&(Ie+=`${A}?`),Ie};u$.exports=mL});var p$=_((FQt,f$)=>{"use strict";var U7e=ve("path"),_7e=l$(),yL=A$(),EL=Kw(),H7e=Yw(),q7e=t=>t&&typeof t=="object"&&!Array.isArray(t),Mi=(t,e,r=!1)=>{if(Array.isArray(t)){let E=t.map(D=>Mi(D,e,r));return D=>{for(let x of E){let C=x(D);if(C)return C}return!1}}let o=q7e(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!o)throw new TypeError("Expected pattern to be a non-empty string");let a=e||{},n=EL.isWindows(e),u=o?Mi.compileRe(t,e):Mi.makeRe(t,e,!1,!0),A=u.state;delete u.state;let p=()=>!1;if(a.ignore){let E={...e,ignore:null,onMatch:null,onResult:null};p=Mi(a.ignore,E,r)}let h=(E,w=!1)=>{let{isMatch:D,match:x,output:C}=Mi.test(E,u,e,{glob:t,posix:n}),T={glob:t,state:A,regex:u,posix:n,input:E,output:C,match:x,isMatch:D};return typeof a.onResult=="function"&&a.onResult(T),D===!1?(T.isMatch=!1,w?T:!1):p(E)?(typeof a.onIgnore=="function"&&a.onIgnore(T),T.isMatch=!1,w?T:!1):(typeof a.onMatch=="function"&&a.onMatch(T),w?T:!0)};return r&&(h.state=A),h};Mi.test=(t,e,r,{glob:o,posix:a}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let n=r||{},u=n.format||(a?EL.toPosixSlashes:null),A=t===o,p=A&&u?u(t):t;return A===!1&&(p=u?u(t):t,A=p===o),(A===!1||n.capture===!0)&&(n.matchBase===!0||n.basename===!0?A=Mi.matchBase(t,e,r,a):A=e.exec(p)),{isMatch:!!A,match:A,output:p}};Mi.matchBase=(t,e,r,o=EL.isWindows(r))=>(e instanceof RegExp?e:Mi.makeRe(e,r)).test(U7e.basename(t));Mi.isMatch=(t,e,r)=>Mi(e,r)(t);Mi.parse=(t,e)=>Array.isArray(t)?t.map(r=>Mi.parse(r,e)):yL(t,{...e,fastpaths:!1});Mi.scan=(t,e)=>_7e(t,e);Mi.compileRe=(t,e,r=!1,o=!1)=>{if(r===!0)return t.output;let a=e||{},n=a.contains?"":"^",u=a.contains?"":"$",A=`${n}(?:${t.output})${u}`;t&&t.negated===!0&&(A=`^(?!${A}).*$`);let p=Mi.toRegex(A,e);return o===!0&&(p.state=t),p};Mi.makeRe=(t,e={},r=!1,o=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a.output=yL.fastpaths(t,e)),a.output||(a=yL(t,e)),Mi.compileRe(a,e,r,o)};Mi.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Mi.constants=H7e;f$.exports=Mi});var g$=_((RQt,h$)=>{"use strict";h$.exports=p$()});var Xo=_((TQt,E$)=>{"use strict";var m$=ve("util"),y$=JZ(),Xu=g$(),CL=Kw(),d$=t=>t===""||t==="./",Ii=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let o=new Set,a=new Set,n=new Set,u=0,A=E=>{n.add(E.output),r&&r.onResult&&r.onResult(E)};for(let E=0;E!o.has(E));if(r&&h.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(E=>E.replace(/\\/g,"")):e}return h};Ii.match=Ii;Ii.matcher=(t,e)=>Xu(t,e);Ii.isMatch=(t,e,r)=>Xu(e,r)(t);Ii.any=Ii.isMatch;Ii.not=(t,e,r={})=>{e=[].concat(e).map(String);let o=new Set,a=[],n=A=>{r.onResult&&r.onResult(A),a.push(A.output)},u=new Set(Ii(t,e,{...r,onResult:n}));for(let A of a)u.has(A)||o.add(A);return[...o]};Ii.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${m$.inspect(t)}"`);if(Array.isArray(e))return e.some(o=>Ii.contains(t,o,r));if(typeof e=="string"){if(d$(t)||d$(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return Ii.isMatch(t,e,{...r,contains:!0})};Ii.matchKeys=(t,e,r)=>{if(!CL.isObject(t))throw new TypeError("Expected the first argument to be an object");let o=Ii(Object.keys(t),e,r),a={};for(let n of o)a[n]=t[n];return a};Ii.some=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=Xu(String(a),r);if(o.some(u=>n(u)))return!0}return!1};Ii.every=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=Xu(String(a),r);if(!o.every(u=>n(u)))return!1}return!0};Ii.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${m$.inspect(t)}"`);return[].concat(e).every(o=>Xu(o,r)(t))};Ii.capture=(t,e,r)=>{let o=CL.isWindows(r),n=Xu.makeRe(String(t),{...r,capture:!0}).exec(o?CL.toPosixSlashes(e):e);if(n)return n.slice(1).map(u=>u===void 0?"":u)};Ii.makeRe=(...t)=>Xu.makeRe(...t);Ii.scan=(...t)=>Xu.scan(...t);Ii.parse=(t,e)=>{let r=[];for(let o of[].concat(t||[]))for(let a of y$(String(o),e))r.push(Xu.parse(a,e));return r};Ii.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:y$(t,e)};Ii.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return Ii.braces(t,{...e,expand:!0})};E$.exports=Ii});var I$=_((NQt,C$)=>{"use strict";C$.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var pS=_((LQt,w$)=>{"use strict";var j7e=I$();w$.exports=t=>typeof t=="string"?t.replace(j7e(),""):t});var v$=_((OQt,B$)=>{function G7e(){this.__data__=[],this.size=0}B$.exports=G7e});var Um=_((MQt,D$)=>{function W7e(t,e){return t===e||t!==t&&e!==e}D$.exports=W7e});var Jw=_((UQt,P$)=>{var Y7e=Um();function K7e(t,e){for(var r=t.length;r--;)if(Y7e(t[r][0],e))return r;return-1}P$.exports=K7e});var b$=_((_Qt,S$)=>{var V7e=Jw(),J7e=Array.prototype,z7e=J7e.splice;function X7e(t){var e=this.__data__,r=V7e(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():z7e.call(e,r,1),--this.size,!0}S$.exports=X7e});var k$=_((HQt,x$)=>{var Z7e=Jw();function $7e(t){var e=this.__data__,r=Z7e(e,t);return r<0?void 0:e[r][1]}x$.exports=$7e});var F$=_((qQt,Q$)=>{var eWe=Jw();function tWe(t){return eWe(this.__data__,t)>-1}Q$.exports=tWe});var T$=_((jQt,R$)=>{var rWe=Jw();function nWe(t,e){var r=this.__data__,o=rWe(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}R$.exports=nWe});var zw=_((GQt,N$)=>{var iWe=v$(),sWe=b$(),oWe=k$(),aWe=F$(),lWe=T$();function _m(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var cWe=zw();function uWe(){this.__data__=new cWe,this.size=0}L$.exports=uWe});var U$=_((YQt,M$)=>{function AWe(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}M$.exports=AWe});var H$=_((KQt,_$)=>{function fWe(t){return this.__data__.get(t)}_$.exports=fWe});var j$=_((VQt,q$)=>{function pWe(t){return this.__data__.has(t)}q$.exports=pWe});var IL=_((JQt,G$)=>{var hWe=typeof global=="object"&&global&&global.Object===Object&&global;G$.exports=hWe});var ql=_((zQt,W$)=>{var gWe=IL(),dWe=typeof self=="object"&&self&&self.Object===Object&&self,mWe=gWe||dWe||Function("return this")();W$.exports=mWe});var dg=_((XQt,Y$)=>{var yWe=ql(),EWe=yWe.Symbol;Y$.exports=EWe});var z$=_((ZQt,J$)=>{var K$=dg(),V$=Object.prototype,CWe=V$.hasOwnProperty,IWe=V$.toString,Xw=K$?K$.toStringTag:void 0;function wWe(t){var e=CWe.call(t,Xw),r=t[Xw];try{t[Xw]=void 0;var o=!0}catch{}var a=IWe.call(t);return o&&(e?t[Xw]=r:delete t[Xw]),a}J$.exports=wWe});var Z$=_(($Qt,X$)=>{var BWe=Object.prototype,vWe=BWe.toString;function DWe(t){return vWe.call(t)}X$.exports=DWe});var mg=_((eFt,tee)=>{var $$=dg(),PWe=z$(),SWe=Z$(),bWe="[object Null]",xWe="[object Undefined]",eee=$$?$$.toStringTag:void 0;function kWe(t){return t==null?t===void 0?xWe:bWe:eee&&eee in Object(t)?PWe(t):SWe(t)}tee.exports=kWe});var cl=_((tFt,ree)=>{function QWe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}ree.exports=QWe});var hS=_((rFt,nee)=>{var FWe=mg(),RWe=cl(),TWe="[object AsyncFunction]",NWe="[object Function]",LWe="[object GeneratorFunction]",OWe="[object Proxy]";function MWe(t){if(!RWe(t))return!1;var e=FWe(t);return e==NWe||e==LWe||e==TWe||e==OWe}nee.exports=MWe});var see=_((nFt,iee)=>{var UWe=ql(),_We=UWe["__core-js_shared__"];iee.exports=_We});var lee=_((iFt,aee)=>{var wL=see(),oee=function(){var t=/[^.]+$/.exec(wL&&wL.keys&&wL.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function HWe(t){return!!oee&&oee in t}aee.exports=HWe});var BL=_((sFt,cee)=>{var qWe=Function.prototype,jWe=qWe.toString;function GWe(t){if(t!=null){try{return jWe.call(t)}catch{}try{return t+""}catch{}}return""}cee.exports=GWe});var Aee=_((oFt,uee)=>{var WWe=hS(),YWe=lee(),KWe=cl(),VWe=BL(),JWe=/[\\^$.*+?()[\]{}|]/g,zWe=/^\[object .+?Constructor\]$/,XWe=Function.prototype,ZWe=Object.prototype,$We=XWe.toString,eYe=ZWe.hasOwnProperty,tYe=RegExp("^"+$We.call(eYe).replace(JWe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function rYe(t){if(!KWe(t)||YWe(t))return!1;var e=WWe(t)?tYe:zWe;return e.test(VWe(t))}uee.exports=rYe});var pee=_((aFt,fee)=>{function nYe(t,e){return t?.[e]}fee.exports=nYe});var $p=_((lFt,hee)=>{var iYe=Aee(),sYe=pee();function oYe(t,e){var r=sYe(t,e);return iYe(r)?r:void 0}hee.exports=oYe});var gS=_((cFt,gee)=>{var aYe=$p(),lYe=ql(),cYe=aYe(lYe,"Map");gee.exports=cYe});var Zw=_((uFt,dee)=>{var uYe=$p(),AYe=uYe(Object,"create");dee.exports=AYe});var Eee=_((AFt,yee)=>{var mee=Zw();function fYe(){this.__data__=mee?mee(null):{},this.size=0}yee.exports=fYe});var Iee=_((fFt,Cee)=>{function pYe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Cee.exports=pYe});var Bee=_((pFt,wee)=>{var hYe=Zw(),gYe="__lodash_hash_undefined__",dYe=Object.prototype,mYe=dYe.hasOwnProperty;function yYe(t){var e=this.__data__;if(hYe){var r=e[t];return r===gYe?void 0:r}return mYe.call(e,t)?e[t]:void 0}wee.exports=yYe});var Dee=_((hFt,vee)=>{var EYe=Zw(),CYe=Object.prototype,IYe=CYe.hasOwnProperty;function wYe(t){var e=this.__data__;return EYe?e[t]!==void 0:IYe.call(e,t)}vee.exports=wYe});var See=_((gFt,Pee)=>{var BYe=Zw(),vYe="__lodash_hash_undefined__";function DYe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=BYe&&e===void 0?vYe:e,this}Pee.exports=DYe});var xee=_((dFt,bee)=>{var PYe=Eee(),SYe=Iee(),bYe=Bee(),xYe=Dee(),kYe=See();function Hm(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var kee=xee(),QYe=zw(),FYe=gS();function RYe(){this.size=0,this.__data__={hash:new kee,map:new(FYe||QYe),string:new kee}}Qee.exports=RYe});var Tee=_((yFt,Ree)=>{function TYe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}Ree.exports=TYe});var $w=_((EFt,Nee)=>{var NYe=Tee();function LYe(t,e){var r=t.__data__;return NYe(e)?r[typeof e=="string"?"string":"hash"]:r.map}Nee.exports=LYe});var Oee=_((CFt,Lee)=>{var OYe=$w();function MYe(t){var e=OYe(this,t).delete(t);return this.size-=e?1:0,e}Lee.exports=MYe});var Uee=_((IFt,Mee)=>{var UYe=$w();function _Ye(t){return UYe(this,t).get(t)}Mee.exports=_Ye});var Hee=_((wFt,_ee)=>{var HYe=$w();function qYe(t){return HYe(this,t).has(t)}_ee.exports=qYe});var jee=_((BFt,qee)=>{var jYe=$w();function GYe(t,e){var r=jYe(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}qee.exports=GYe});var dS=_((vFt,Gee)=>{var WYe=Fee(),YYe=Oee(),KYe=Uee(),VYe=Hee(),JYe=jee();function qm(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var zYe=zw(),XYe=gS(),ZYe=dS(),$Ye=200;function eKe(t,e){var r=this.__data__;if(r instanceof zYe){var o=r.__data__;if(!XYe||o.length<$Ye-1)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new ZYe(o)}return r.set(t,e),this.size=r.size,this}Wee.exports=eKe});var mS=_((PFt,Kee)=>{var tKe=zw(),rKe=O$(),nKe=U$(),iKe=H$(),sKe=j$(),oKe=Yee();function jm(t){var e=this.__data__=new tKe(t);this.size=e.size}jm.prototype.clear=rKe;jm.prototype.delete=nKe;jm.prototype.get=iKe;jm.prototype.has=sKe;jm.prototype.set=oKe;Kee.exports=jm});var Jee=_((SFt,Vee)=>{var aKe="__lodash_hash_undefined__";function lKe(t){return this.__data__.set(t,aKe),this}Vee.exports=lKe});var Xee=_((bFt,zee)=>{function cKe(t){return this.__data__.has(t)}zee.exports=cKe});var $ee=_((xFt,Zee)=>{var uKe=dS(),AKe=Jee(),fKe=Xee();function yS(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new uKe;++e{function pKe(t,e){for(var r=-1,o=t==null?0:t.length;++r{function hKe(t,e){return t.has(e)}rte.exports=hKe});var vL=_((FFt,ite)=>{var gKe=$ee(),dKe=tte(),mKe=nte(),yKe=1,EKe=2;function CKe(t,e,r,o,a,n){var u=r&yKe,A=t.length,p=e.length;if(A!=p&&!(u&&p>A))return!1;var h=n.get(t),E=n.get(e);if(h&&E)return h==e&&E==t;var w=-1,D=!0,x=r&EKe?new gKe:void 0;for(n.set(t,e),n.set(e,t);++w{var IKe=ql(),wKe=IKe.Uint8Array;ste.exports=wKe});var ate=_((TFt,ote)=>{function BKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o,a){r[++e]=[a,o]}),r}ote.exports=BKe});var cte=_((NFt,lte)=>{function vKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o){r[++e]=o}),r}lte.exports=vKe});var hte=_((LFt,pte)=>{var ute=dg(),Ate=DL(),DKe=Um(),PKe=vL(),SKe=ate(),bKe=cte(),xKe=1,kKe=2,QKe="[object Boolean]",FKe="[object Date]",RKe="[object Error]",TKe="[object Map]",NKe="[object Number]",LKe="[object RegExp]",OKe="[object Set]",MKe="[object String]",UKe="[object Symbol]",_Ke="[object ArrayBuffer]",HKe="[object DataView]",fte=ute?ute.prototype:void 0,PL=fte?fte.valueOf:void 0;function qKe(t,e,r,o,a,n,u){switch(r){case HKe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case _Ke:return!(t.byteLength!=e.byteLength||!n(new Ate(t),new Ate(e)));case QKe:case FKe:case NKe:return DKe(+t,+e);case RKe:return t.name==e.name&&t.message==e.message;case LKe:case MKe:return t==e+"";case TKe:var A=SKe;case OKe:var p=o&xKe;if(A||(A=bKe),t.size!=e.size&&!p)return!1;var h=u.get(t);if(h)return h==e;o|=kKe,u.set(t,e);var E=PKe(A(t),A(e),o,a,n,u);return u.delete(t),E;case UKe:if(PL)return PL.call(t)==PL.call(e)}return!1}pte.exports=qKe});var ES=_((OFt,gte)=>{function jKe(t,e){for(var r=-1,o=e.length,a=t.length;++r{var GKe=Array.isArray;dte.exports=GKe});var SL=_((UFt,mte)=>{var WKe=ES(),YKe=jl();function KKe(t,e,r){var o=e(t);return YKe(t)?o:WKe(o,r(t))}mte.exports=KKe});var Ete=_((_Ft,yte)=>{function VKe(t,e){for(var r=-1,o=t==null?0:t.length,a=0,n=[];++r{function JKe(){return[]}Cte.exports=JKe});var CS=_((qFt,wte)=>{var zKe=Ete(),XKe=bL(),ZKe=Object.prototype,$Ke=ZKe.propertyIsEnumerable,Ite=Object.getOwnPropertySymbols,eVe=Ite?function(t){return t==null?[]:(t=Object(t),zKe(Ite(t),function(e){return $Ke.call(t,e)}))}:XKe;wte.exports=eVe});var vte=_((jFt,Bte)=>{function tVe(t,e){for(var r=-1,o=Array(t);++r{function rVe(t){return t!=null&&typeof t=="object"}Dte.exports=rVe});var Ste=_((WFt,Pte)=>{var nVe=mg(),iVe=Zu(),sVe="[object Arguments]";function oVe(t){return iVe(t)&&nVe(t)==sVe}Pte.exports=oVe});var e1=_((YFt,kte)=>{var bte=Ste(),aVe=Zu(),xte=Object.prototype,lVe=xte.hasOwnProperty,cVe=xte.propertyIsEnumerable,uVe=bte(function(){return arguments}())?bte:function(t){return aVe(t)&&lVe.call(t,"callee")&&!cVe.call(t,"callee")};kte.exports=uVe});var Fte=_((KFt,Qte)=>{function AVe(){return!1}Qte.exports=AVe});var r1=_((t1,Gm)=>{var fVe=ql(),pVe=Fte(),Nte=typeof t1=="object"&&t1&&!t1.nodeType&&t1,Rte=Nte&&typeof Gm=="object"&&Gm&&!Gm.nodeType&&Gm,hVe=Rte&&Rte.exports===Nte,Tte=hVe?fVe.Buffer:void 0,gVe=Tte?Tte.isBuffer:void 0,dVe=gVe||pVe;Gm.exports=dVe});var n1=_((VFt,Lte)=>{var mVe=9007199254740991,yVe=/^(?:0|[1-9]\d*)$/;function EVe(t,e){var r=typeof t;return e=e??mVe,!!e&&(r=="number"||r!="symbol"&&yVe.test(t))&&t>-1&&t%1==0&&t{var CVe=9007199254740991;function IVe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=CVe}Ote.exports=IVe});var Ute=_((zFt,Mte)=>{var wVe=mg(),BVe=IS(),vVe=Zu(),DVe="[object Arguments]",PVe="[object Array]",SVe="[object Boolean]",bVe="[object Date]",xVe="[object Error]",kVe="[object Function]",QVe="[object Map]",FVe="[object Number]",RVe="[object Object]",TVe="[object RegExp]",NVe="[object Set]",LVe="[object String]",OVe="[object WeakMap]",MVe="[object ArrayBuffer]",UVe="[object DataView]",_Ve="[object Float32Array]",HVe="[object Float64Array]",qVe="[object Int8Array]",jVe="[object Int16Array]",GVe="[object Int32Array]",WVe="[object Uint8Array]",YVe="[object Uint8ClampedArray]",KVe="[object Uint16Array]",VVe="[object Uint32Array]",di={};di[_Ve]=di[HVe]=di[qVe]=di[jVe]=di[GVe]=di[WVe]=di[YVe]=di[KVe]=di[VVe]=!0;di[DVe]=di[PVe]=di[MVe]=di[SVe]=di[UVe]=di[bVe]=di[xVe]=di[kVe]=di[QVe]=di[FVe]=di[RVe]=di[TVe]=di[NVe]=di[LVe]=di[OVe]=!1;function JVe(t){return vVe(t)&&BVe(t.length)&&!!di[wVe(t)]}Mte.exports=JVe});var wS=_((XFt,_te)=>{function zVe(t){return function(e){return t(e)}}_te.exports=zVe});var BS=_((i1,Wm)=>{var XVe=IL(),Hte=typeof i1=="object"&&i1&&!i1.nodeType&&i1,s1=Hte&&typeof Wm=="object"&&Wm&&!Wm.nodeType&&Wm,ZVe=s1&&s1.exports===Hte,xL=ZVe&&XVe.process,$Ve=function(){try{var t=s1&&s1.require&&s1.require("util").types;return t||xL&&xL.binding&&xL.binding("util")}catch{}}();Wm.exports=$Ve});var vS=_((ZFt,Gte)=>{var eJe=Ute(),tJe=wS(),qte=BS(),jte=qte&&qte.isTypedArray,rJe=jte?tJe(jte):eJe;Gte.exports=rJe});var kL=_(($Ft,Wte)=>{var nJe=vte(),iJe=e1(),sJe=jl(),oJe=r1(),aJe=n1(),lJe=vS(),cJe=Object.prototype,uJe=cJe.hasOwnProperty;function AJe(t,e){var r=sJe(t),o=!r&&iJe(t),a=!r&&!o&&oJe(t),n=!r&&!o&&!a&&lJe(t),u=r||o||a||n,A=u?nJe(t.length,String):[],p=A.length;for(var h in t)(e||uJe.call(t,h))&&!(u&&(h=="length"||a&&(h=="offset"||h=="parent")||n&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||aJe(h,p)))&&A.push(h);return A}Wte.exports=AJe});var DS=_((eRt,Yte)=>{var fJe=Object.prototype;function pJe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||fJe;return t===r}Yte.exports=pJe});var QL=_((tRt,Kte)=>{function hJe(t,e){return function(r){return t(e(r))}}Kte.exports=hJe});var Jte=_((rRt,Vte)=>{var gJe=QL(),dJe=gJe(Object.keys,Object);Vte.exports=dJe});var Xte=_((nRt,zte)=>{var mJe=DS(),yJe=Jte(),EJe=Object.prototype,CJe=EJe.hasOwnProperty;function IJe(t){if(!mJe(t))return yJe(t);var e=[];for(var r in Object(t))CJe.call(t,r)&&r!="constructor"&&e.push(r);return e}zte.exports=IJe});var o1=_((iRt,Zte)=>{var wJe=hS(),BJe=IS();function vJe(t){return t!=null&&BJe(t.length)&&!wJe(t)}Zte.exports=vJe});var PS=_((sRt,$te)=>{var DJe=kL(),PJe=Xte(),SJe=o1();function bJe(t){return SJe(t)?DJe(t):PJe(t)}$te.exports=bJe});var FL=_((oRt,ere)=>{var xJe=SL(),kJe=CS(),QJe=PS();function FJe(t){return xJe(t,QJe,kJe)}ere.exports=FJe});var nre=_((aRt,rre)=>{var tre=FL(),RJe=1,TJe=Object.prototype,NJe=TJe.hasOwnProperty;function LJe(t,e,r,o,a,n){var u=r&RJe,A=tre(t),p=A.length,h=tre(e),E=h.length;if(p!=E&&!u)return!1;for(var w=p;w--;){var D=A[w];if(!(u?D in e:NJe.call(e,D)))return!1}var x=n.get(t),C=n.get(e);if(x&&C)return x==e&&C==t;var T=!0;n.set(t,e),n.set(e,t);for(var L=u;++w{var OJe=$p(),MJe=ql(),UJe=OJe(MJe,"DataView");ire.exports=UJe});var are=_((cRt,ore)=>{var _Je=$p(),HJe=ql(),qJe=_Je(HJe,"Promise");ore.exports=qJe});var cre=_((uRt,lre)=>{var jJe=$p(),GJe=ql(),WJe=jJe(GJe,"Set");lre.exports=WJe});var Are=_((ARt,ure)=>{var YJe=$p(),KJe=ql(),VJe=YJe(KJe,"WeakMap");ure.exports=VJe});var a1=_((fRt,yre)=>{var RL=sre(),TL=gS(),NL=are(),LL=cre(),OL=Are(),mre=mg(),Ym=BL(),fre="[object Map]",JJe="[object Object]",pre="[object Promise]",hre="[object Set]",gre="[object WeakMap]",dre="[object DataView]",zJe=Ym(RL),XJe=Ym(TL),ZJe=Ym(NL),$Je=Ym(LL),eze=Ym(OL),yg=mre;(RL&&yg(new RL(new ArrayBuffer(1)))!=dre||TL&&yg(new TL)!=fre||NL&&yg(NL.resolve())!=pre||LL&&yg(new LL)!=hre||OL&&yg(new OL)!=gre)&&(yg=function(t){var e=mre(t),r=e==JJe?t.constructor:void 0,o=r?Ym(r):"";if(o)switch(o){case zJe:return dre;case XJe:return fre;case ZJe:return pre;case $Je:return hre;case eze:return gre}return e});yre.exports=yg});var Pre=_((pRt,Dre)=>{var ML=mS(),tze=vL(),rze=hte(),nze=nre(),Ere=a1(),Cre=jl(),Ire=r1(),ize=vS(),sze=1,wre="[object Arguments]",Bre="[object Array]",SS="[object Object]",oze=Object.prototype,vre=oze.hasOwnProperty;function aze(t,e,r,o,a,n){var u=Cre(t),A=Cre(e),p=u?Bre:Ere(t),h=A?Bre:Ere(e);p=p==wre?SS:p,h=h==wre?SS:h;var E=p==SS,w=h==SS,D=p==h;if(D&&Ire(t)){if(!Ire(e))return!1;u=!0,E=!1}if(D&&!E)return n||(n=new ML),u||ize(t)?tze(t,e,r,o,a,n):rze(t,e,p,r,o,a,n);if(!(r&sze)){var x=E&&vre.call(t,"__wrapped__"),C=w&&vre.call(e,"__wrapped__");if(x||C){var T=x?t.value():t,L=C?e.value():e;return n||(n=new ML),a(T,L,r,o,n)}}return D?(n||(n=new ML),nze(t,e,r,o,a,n)):!1}Dre.exports=aze});var kre=_((hRt,xre)=>{var lze=Pre(),Sre=Zu();function bre(t,e,r,o,a){return t===e?!0:t==null||e==null||!Sre(t)&&!Sre(e)?t!==t&&e!==e:lze(t,e,r,o,bre,a)}xre.exports=bre});var Fre=_((gRt,Qre)=>{var cze=kre();function uze(t,e){return cze(t,e)}Qre.exports=uze});var UL=_((dRt,Rre)=>{var Aze=$p(),fze=function(){try{var t=Aze(Object,"defineProperty");return t({},"",{}),t}catch{}}();Rre.exports=fze});var bS=_((mRt,Nre)=>{var Tre=UL();function pze(t,e,r){e=="__proto__"&&Tre?Tre(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}Nre.exports=pze});var _L=_((yRt,Lre)=>{var hze=bS(),gze=Um();function dze(t,e,r){(r!==void 0&&!gze(t[e],r)||r===void 0&&!(e in t))&&hze(t,e,r)}Lre.exports=dze});var Mre=_((ERt,Ore)=>{function mze(t){return function(e,r,o){for(var a=-1,n=Object(e),u=o(e),A=u.length;A--;){var p=u[t?A:++a];if(r(n[p],p,n)===!1)break}return e}}Ore.exports=mze});var _re=_((CRt,Ure)=>{var yze=Mre(),Eze=yze();Ure.exports=Eze});var HL=_((l1,Km)=>{var Cze=ql(),Gre=typeof l1=="object"&&l1&&!l1.nodeType&&l1,Hre=Gre&&typeof Km=="object"&&Km&&!Km.nodeType&&Km,Ize=Hre&&Hre.exports===Gre,qre=Ize?Cze.Buffer:void 0,jre=qre?qre.allocUnsafe:void 0;function wze(t,e){if(e)return t.slice();var r=t.length,o=jre?jre(r):new t.constructor(r);return t.copy(o),o}Km.exports=wze});var xS=_((IRt,Yre)=>{var Wre=DL();function Bze(t){var e=new t.constructor(t.byteLength);return new Wre(e).set(new Wre(t)),e}Yre.exports=Bze});var qL=_((wRt,Kre)=>{var vze=xS();function Dze(t,e){var r=e?vze(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}Kre.exports=Dze});var kS=_((BRt,Vre)=>{function Pze(t,e){var r=-1,o=t.length;for(e||(e=Array(o));++r{var Sze=cl(),Jre=Object.create,bze=function(){function t(){}return function(e){if(!Sze(e))return{};if(Jre)return Jre(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();zre.exports=bze});var QS=_((DRt,Zre)=>{var xze=QL(),kze=xze(Object.getPrototypeOf,Object);Zre.exports=kze});var jL=_((PRt,$re)=>{var Qze=Xre(),Fze=QS(),Rze=DS();function Tze(t){return typeof t.constructor=="function"&&!Rze(t)?Qze(Fze(t)):{}}$re.exports=Tze});var tne=_((SRt,ene)=>{var Nze=o1(),Lze=Zu();function Oze(t){return Lze(t)&&Nze(t)}ene.exports=Oze});var WL=_((bRt,nne)=>{var Mze=mg(),Uze=QS(),_ze=Zu(),Hze="[object Object]",qze=Function.prototype,jze=Object.prototype,rne=qze.toString,Gze=jze.hasOwnProperty,Wze=rne.call(Object);function Yze(t){if(!_ze(t)||Mze(t)!=Hze)return!1;var e=Uze(t);if(e===null)return!0;var r=Gze.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&rne.call(r)==Wze}nne.exports=Yze});var YL=_((xRt,ine)=>{function Kze(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}ine.exports=Kze});var RS=_((kRt,sne)=>{var Vze=bS(),Jze=Um(),zze=Object.prototype,Xze=zze.hasOwnProperty;function Zze(t,e,r){var o=t[e];(!(Xze.call(t,e)&&Jze(o,r))||r===void 0&&!(e in t))&&Vze(t,e,r)}sne.exports=Zze});var Eg=_((QRt,one)=>{var $ze=RS(),eXe=bS();function tXe(t,e,r,o){var a=!r;r||(r={});for(var n=-1,u=e.length;++n{function rXe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}ane.exports=rXe});var une=_((RRt,cne)=>{var nXe=cl(),iXe=DS(),sXe=lne(),oXe=Object.prototype,aXe=oXe.hasOwnProperty;function lXe(t){if(!nXe(t))return sXe(t);var e=iXe(t),r=[];for(var o in t)o=="constructor"&&(e||!aXe.call(t,o))||r.push(o);return r}cne.exports=lXe});var Vm=_((TRt,Ane)=>{var cXe=kL(),uXe=une(),AXe=o1();function fXe(t){return AXe(t)?cXe(t,!0):uXe(t)}Ane.exports=fXe});var pne=_((NRt,fne)=>{var pXe=Eg(),hXe=Vm();function gXe(t){return pXe(t,hXe(t))}fne.exports=gXe});var Ene=_((LRt,yne)=>{var hne=_L(),dXe=HL(),mXe=qL(),yXe=kS(),EXe=jL(),gne=e1(),dne=jl(),CXe=tne(),IXe=r1(),wXe=hS(),BXe=cl(),vXe=WL(),DXe=vS(),mne=YL(),PXe=pne();function SXe(t,e,r,o,a,n,u){var A=mne(t,r),p=mne(e,r),h=u.get(p);if(h){hne(t,r,h);return}var E=n?n(A,p,r+"",t,e,u):void 0,w=E===void 0;if(w){var D=dne(p),x=!D&&IXe(p),C=!D&&!x&&DXe(p);E=p,D||x||C?dne(A)?E=A:CXe(A)?E=yXe(A):x?(w=!1,E=dXe(p,!0)):C?(w=!1,E=mXe(p,!0)):E=[]:vXe(p)||gne(p)?(E=A,gne(A)?E=PXe(A):(!BXe(A)||wXe(A))&&(E=EXe(p))):w=!1}w&&(u.set(p,E),a(E,p,o,n,u),u.delete(p)),hne(t,r,E)}yne.exports=SXe});var wne=_((ORt,Ine)=>{var bXe=mS(),xXe=_L(),kXe=_re(),QXe=Ene(),FXe=cl(),RXe=Vm(),TXe=YL();function Cne(t,e,r,o,a){t!==e&&kXe(e,function(n,u){if(a||(a=new bXe),FXe(n))QXe(t,e,u,r,Cne,o,a);else{var A=o?o(TXe(t,u),n,u+"",t,e,a):void 0;A===void 0&&(A=n),xXe(t,u,A)}},RXe)}Ine.exports=Cne});var KL=_((MRt,Bne)=>{function NXe(t){return t}Bne.exports=NXe});var Dne=_((URt,vne)=>{function LXe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}vne.exports=LXe});var VL=_((_Rt,Sne)=>{var OXe=Dne(),Pne=Math.max;function MXe(t,e,r){return e=Pne(e===void 0?t.length-1:e,0),function(){for(var o=arguments,a=-1,n=Pne(o.length-e,0),u=Array(n);++a{function UXe(t){return function(){return t}}bne.exports=UXe});var Fne=_((qRt,Qne)=>{var _Xe=xne(),kne=UL(),HXe=KL(),qXe=kne?function(t,e){return kne(t,"toString",{configurable:!0,enumerable:!1,value:_Xe(e),writable:!0})}:HXe;Qne.exports=qXe});var Tne=_((jRt,Rne)=>{var jXe=800,GXe=16,WXe=Date.now;function YXe(t){var e=0,r=0;return function(){var o=WXe(),a=GXe-(o-r);if(r=o,a>0){if(++e>=jXe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}Rne.exports=YXe});var JL=_((GRt,Nne)=>{var KXe=Fne(),VXe=Tne(),JXe=VXe(KXe);Nne.exports=JXe});var One=_((WRt,Lne)=>{var zXe=KL(),XXe=VL(),ZXe=JL();function $Xe(t,e){return ZXe(XXe(t,e,zXe),t+"")}Lne.exports=$Xe});var Une=_((YRt,Mne)=>{var eZe=Um(),tZe=o1(),rZe=n1(),nZe=cl();function iZe(t,e,r){if(!nZe(r))return!1;var o=typeof e;return(o=="number"?tZe(r)&&rZe(e,r.length):o=="string"&&e in r)?eZe(r[e],t):!1}Mne.exports=iZe});var Hne=_((KRt,_ne)=>{var sZe=One(),oZe=Une();function aZe(t){return sZe(function(e,r){var o=-1,a=r.length,n=a>1?r[a-1]:void 0,u=a>2?r[2]:void 0;for(n=t.length>3&&typeof n=="function"?(a--,n):void 0,u&&oZe(r[0],r[1],u)&&(n=a<3?void 0:n,a=1),e=Object(e);++o{var lZe=wne(),cZe=Hne(),uZe=cZe(function(t,e,r,o){lZe(t,e,r,o)});qne.exports=uZe});var qe={};Kt(qe,{AsyncActions:()=>ZL,BufferStream:()=>XL,CachingStrategy:()=>tie,DefaultStream:()=>$L,allSettledSafe:()=>Wc,assertNever:()=>tO,bufferStream:()=>Xm,buildIgnorePattern:()=>mZe,convertMapsToIndexableObjects:()=>NS,dynamicRequire:()=>vf,escapeRegExp:()=>fZe,getArrayWithDefault:()=>u1,getFactoryWithDefault:()=>Al,getMapWithDefault:()=>A1,getSetWithDefault:()=>Jm,groupBy:()=>CZe,isIndexableObject:()=>zL,isPathLike:()=>yZe,isTaggedYarnVersion:()=>AZe,makeDeferred:()=>Zne,mapAndFilter:()=>ul,mapAndFind:()=>eh,mergeIntoTarget:()=>nie,overrideType:()=>pZe,parseBoolean:()=>f1,parseInt:()=>Zm,parseOptionalBoolean:()=>rie,plural:()=>TS,prettifyAsyncErrors:()=>zm,prettifySyncErrors:()=>rO,releaseAfterUseAsync:()=>gZe,replaceEnvVariables:()=>LS,sortMap:()=>Ps,toMerged:()=>EZe,tryParseOptionalBoolean:()=>nO,validateEnum:()=>hZe});function AZe(t){return!!(Jne.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function TS(t,{one:e,more:r,zero:o=r}){return t===0?o:t===1?e:r}function fZe(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function pZe(t){}function tO(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function hZe(t,e){let r=Object.values(t);if(!r.includes(e))throw new it(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(o=>JSON.stringify(o)).join(", ")})`);return e}function ul(t,e){let r=[];for(let o of t){let a=e(o);a!==zne&&r.push(a)}return r}function eh(t,e){for(let r of t){let o=e(r);if(o!==Xne)return o}}function zL(t){return typeof t=="object"&&t!==null}async function Wc(t){let e=await Promise.allSettled(t),r=[];for(let o of e){if(o.status==="rejected")throw o.reason;r.push(o.value)}return r}function NS(t){if(t instanceof Map&&(t=Object.fromEntries(t)),zL(t))for(let e of Object.keys(t)){let r=t[e];zL(r)&&(t[e]=NS(r))}return t}function Al(t,e,r){let o=t.get(e);return typeof o>"u"&&t.set(e,o=r()),o}function u1(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=[]),r}function Jm(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Set),r}function A1(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Map),r}async function gZe(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function zm(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function rO(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function Xm(t){return await new Promise((e,r)=>{let o=[];t.on("error",a=>{r(a)}),t.on("data",a=>{o.push(a)}),t.on("end",()=>{e(Buffer.concat(o))})})}function Zne(){let t,e;return{promise:new Promise((o,a)=>{t=o,e=a}),resolve:t,reject:e}}function $ne(t){return c1(Ae.fromPortablePath(t))}function eie(path){let physicalPath=Ae.fromPortablePath(path),currentCacheEntry=c1.cache[physicalPath];delete c1.cache[physicalPath];let result;try{result=$ne(physicalPath);let freshCacheEntry=c1.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{c1.cache[physicalPath]=currentCacheEntry}return result}function dZe(t){let e=Gne.get(t),r=ae.statSync(t);if(e?.mtime===r.mtimeMs)return e.instance;let o=eie(t);return Gne.set(t,{mtime:r.mtimeMs,instance:o}),o}function vf(t,{cachingStrategy:e=2}={}){switch(e){case 0:return eie(t);case 1:return dZe(t);case 2:return $ne(t);default:throw new Error("Unsupported caching strategy")}}function Ps(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function mZe(t){return t.length===0?null:t.map(e=>`(${Kne.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function LS(t,{env:e}){let r=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return t.replace(r,(...o)=>{let{variableName:a,colon:n,fallback:u}=o[o.length-1],A=Object.hasOwn(e,a),p=e[a];if(p||A&&!n)return p;if(u!=null)return u;throw new it(`Environment variable not found (${a})`)})}function f1(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function rie(t){return typeof t>"u"?t:f1(t)}function nO(t){try{return rie(t)}catch{return null}}function yZe(t){return!!(Ae.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}function nie(t,...e){let r=u=>({value:u}),o=r(t),a=e.map(u=>r(u)),{value:n}=(0,Yne.default)(o,...a,(u,A)=>{if(Array.isArray(u)&&Array.isArray(A)){for(let p of A)u.find(h=>(0,Wne.default)(h,p))||u.push(p);return u}});return n}function EZe(...t){return nie({},...t)}function CZe(t,e){let r=Object.create(null);for(let o of t){let a=o[e];r[a]??=[],r[a].push(o)}return r}function Zm(t){return typeof t=="string"?Number.parseInt(t,10):t}var Wne,Yne,Kne,Vne,Jne,eO,zne,Xne,XL,ZL,$L,c1,Gne,tie,Gl=It(()=>{Pt();Gt();Wne=et(Fre()),Yne=et(jne()),Kne=et(Xo()),Vne=et(lg()),Jne=et(ni()),eO=ve("stream");zne=Symbol();ul.skip=zne;Xne=Symbol();eh.skip=Xne;XL=class extends eO.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(r),a(null,null)}_flush(r){r(null,Buffer.concat(this.chunks))}};ZL=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,Vne.default)(e)}set(e,r){let o=this.deferred.get(e);typeof o>"u"&&this.deferred.set(e,o=Zne());let a=this.limit(()=>r());return this.promises.set(e,a),a.then(()=>{this.promises.get(e)===a&&o.resolve()},n=>{this.promises.get(e)===a&&o.reject(n)}),o.promise}reduce(e,r){let o=this.promises.get(e)??Promise.resolve();this.set(e,()=>r(o))}async wait(){await Promise.all(this.promises.values())}},$L=class extends eO.Transform{constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,a(null,r)}_flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}},c1=eval("require");Gne=new Map;tie=(o=>(o[o.NoCache=0]="NoCache",o[o.FsTime=1]="FsTime",o[o.Node=2]="Node",o))(tie||{})});var $m,iO,sO,iie=It(()=>{$m=(r=>(r.HARD="HARD",r.SOFT="SOFT",r))($m||{}),iO=(o=>(o.Dependency="Dependency",o.PeerDependency="PeerDependency",o.PeerDependencyMeta="PeerDependencyMeta",o))(iO||{}),sO=(o=>(o.Inactive="inactive",o.Redundant="redundant",o.Active="active",o))(sO||{})});var pe={};Kt(pe,{LogLevel:()=>HS,Style:()=>MS,Type:()=>Ct,addLogFilterSupport:()=>g1,applyColor:()=>Gs,applyHyperlink:()=>ty,applyStyle:()=>Cg,json:()=>Ig,jsonOrPretty:()=>BZe,mark:()=>uO,pretty:()=>Ut,prettyField:()=>$u,prettyList:()=>cO,prettyTruncatedLocatorList:()=>_S,stripAnsi:()=>ey.default,supportsColor:()=>US,supportsHyperlinks:()=>lO,tuple:()=>Yc});function sie(t){let e=["KiB","MiB","GiB","TiB"],r=e.length;for(;r>1&&t<1024**r;)r-=1;let o=1024**r;return`${Math.floor(t*100/o)/100} ${e[r-1]}`}function Yc(t,e){return[e,t]}function Cg(t,e,r){return t.get("enableColors")&&r&2&&(e=h1.default.bold(e)),e}function Gs(t,e,r){if(!t.get("enableColors"))return e;let o=IZe.get(r);if(o===null)return e;let a=typeof o>"u"?r:aO.level>=3?o[0]:o[1],n=typeof a=="number"?oO.ansi256(a):a.startsWith("#")?oO.hex(a):oO[a];if(typeof n!="function")throw new Error(`Invalid format type ${a}`);return n(e)}function ty(t,e,r){return t.get("enableHyperlinks")?wZe?`\x1B]8;;${r}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${e}\x1B]8;;\x07`:e}function Ut(t,e,r){if(e===null)return Gs(t,"null",Ct.NULL);if(Object.hasOwn(OS,r))return OS[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Gs(t,e,r)}function cO(t,e,r,{separator:o=", "}={}){return[...e].map(a=>Ut(t,a,r)).join(o)}function Ig(t,e){if(t===null)return null;if(Object.hasOwn(OS,e))return OS[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function BZe(t,e,[r,o]){return t?Ig(r,o):Ut(e,r,o)}function uO(t){return{Check:Gs(t,"\u2713","green"),Cross:Gs(t,"\u2718","red"),Question:Gs(t,"?","cyan")}}function $u(t,{label:e,value:[r,o]}){return`${Ut(t,e,Ct.CODE)}: ${Ut(t,r,o)}`}function _S(t,e,r){let o=[],a=[...e],n=r;for(;a.length>0;){let h=a[0],E=`${jr(t,h)}, `,w=AO(h).length+2;if(o.length>0&&nh).join("").slice(0,-2);let u="X".repeat(a.length.toString().length),A=`and ${u} more.`,p=a.length;for(;o.length>1&&nh).join(""),A.replace(u,Ut(t,p,Ct.NUMBER))].join("")}function g1(t,{configuration:e}){let r=e.get("logFilters"),o=new Map,a=new Map,n=[];for(let w of r){let D=w.get("level");if(typeof D>"u")continue;let x=w.get("code");typeof x<"u"&&o.set(x,D);let C=w.get("text");typeof C<"u"&&a.set(C,D);let T=w.get("pattern");typeof T<"u"&&n.push([oie.default.matcher(T,{contains:!0}),D])}n.reverse();let u=(w,D,x)=>{if(w===null||w===0)return x;let C=a.size>0||n.length>0?(0,ey.default)(D):D;if(a.size>0){let T=a.get(C);if(typeof T<"u")return T??x}if(n.length>0){for(let[T,L]of n)if(T(C))return L??x}if(o.size>0){let T=o.get(Ju(w));if(typeof T<"u")return T??x}return x},A=t.reportInfo,p=t.reportWarning,h=t.reportError,E=function(w,D,x,C){switch(u(D,x,C)){case"info":A.call(w,D,x);break;case"warning":p.call(w,D??0,x);break;case"error":h.call(w,D??0,x);break}};t.reportInfo=function(...w){return E(this,...w,"info")},t.reportWarning=function(...w){return E(this,...w,"warning")},t.reportError=function(...w){return E(this,...w,"error")}}var h1,p1,oie,ey,aie,Ct,MS,aO,US,lO,oO,IZe,Co,OS,wZe,HS,Wl=It(()=>{Pt();h1=et(iL()),p1=et(sg());Gt();oie=et(Xo()),ey=et(pS()),aie=ve("util");jP();Io();Ct={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"},MS=(e=>(e[e.BOLD=2]="BOLD",e))(MS||{}),aO=p1.default.GITHUB_ACTIONS?{level:2}:h1.default.supportsColor?{level:h1.default.supportsColor.level}:{level:0},US=aO.level!==0,lO=US&&!p1.default.GITHUB_ACTIONS&&!p1.default.CIRCLE&&!p1.default.GITLAB,oO=new h1.default.Instance(aO),IZe=new Map([[Ct.NO_HINT,null],[Ct.NULL,["#a853b5",129]],[Ct.SCOPE,["#d75f00",166]],[Ct.NAME,["#d7875f",173]],[Ct.RANGE,["#00afaf",37]],[Ct.REFERENCE,["#87afff",111]],[Ct.NUMBER,["#ffd700",220]],[Ct.PATH,["#d75fd7",170]],[Ct.URL,["#d75fd7",170]],[Ct.ADDED,["#5faf00",70]],[Ct.REMOVED,["#ff3131",160]],[Ct.CODE,["#87afff",111]],[Ct.SIZE,["#ffd700",220]]]),Co=t=>t;OS={[Ct.ID]:Co({pretty:(t,e)=>typeof e=="number"?Gs(t,`${e}`,Ct.NUMBER):Gs(t,e,Ct.CODE),json:t=>t}),[Ct.INSPECT]:Co({pretty:(t,e)=>(0,aie.inspect)(e,{depth:1/0,colors:t.get("enableColors"),compact:!0,breakLength:1/0}),json:t=>t}),[Ct.NUMBER]:Co({pretty:(t,e)=>Gs(t,`${e}`,Ct.NUMBER),json:t=>t}),[Ct.IDENT]:Co({pretty:(t,e)=>Ui(t,e),json:t=>rn(t)}),[Ct.LOCATOR]:Co({pretty:(t,e)=>jr(t,e),json:t=>Qa(t)}),[Ct.DESCRIPTOR]:Co({pretty:(t,e)=>Jn(t,e),json:t=>ka(t)}),[Ct.RESOLUTION]:Co({pretty:(t,{descriptor:e,locator:r})=>d1(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:ka(t),locator:e!==null?Qa(e):null})}),[Ct.DEPENDENT]:Co({pretty:(t,{locator:e,descriptor:r})=>fO(t,e,r),json:({locator:t,descriptor:e})=>({locator:Qa(t),descriptor:ka(e)})}),[Ct.PACKAGE_EXTENSION]:Co({pretty:(t,e)=>{switch(e.type){case"Dependency":return`${Ui(t,e.parentDescriptor)} \u27A4 ${Gs(t,"dependencies",Ct.CODE)} \u27A4 ${Ui(t,e.descriptor)}`;case"PeerDependency":return`${Ui(t,e.parentDescriptor)} \u27A4 ${Gs(t,"peerDependencies",Ct.CODE)} \u27A4 ${Ui(t,e.descriptor)}`;case"PeerDependencyMeta":return`${Ui(t,e.parentDescriptor)} \u27A4 ${Gs(t,"peerDependenciesMeta",Ct.CODE)} \u27A4 ${Ui(t,Zo(e.selector))} \u27A4 ${Gs(t,e.key,Ct.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case"Dependency":return`${rn(t.parentDescriptor)} > ${rn(t.descriptor)}`;case"PeerDependency":return`${rn(t.parentDescriptor)} >> ${rn(t.descriptor)}`;case"PeerDependencyMeta":return`${rn(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[Ct.SETTING]:Co({pretty:(t,e)=>(t.get(e),ty(t,Gs(t,e,Ct.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[Ct.DURATION]:Co({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),o=Math.ceil((e-r*60*1e3)/1e3);return o===0?`${r}m`:`${r}m ${o}s`}else{let r=Math.floor(e/1e3),o=e-r*1e3;return o===0?`${r}s`:`${r}s ${o}ms`}},json:t=>t}),[Ct.SIZE]:Co({pretty:(t,e)=>Gs(t,sie(e),Ct.NUMBER),json:t=>t}),[Ct.SIZE_DIFF]:Co({pretty:(t,e)=>{let r=e>=0?"+":"-",o=r==="+"?Ct.REMOVED:Ct.ADDED;return Gs(t,`${r} ${sie(Math.max(Math.abs(e),1))}`,o)},json:t=>t}),[Ct.PATH]:Co({pretty:(t,e)=>Gs(t,Ae.fromPortablePath(e),Ct.PATH),json:t=>Ae.fromPortablePath(t)}),[Ct.MARKDOWN]:Co({pretty:(t,{text:e,format:r,paragraphs:o})=>yo(e,{format:r,paragraphs:o}),json:({text:t})=>t}),[Ct.MARKDOWN_INLINE]:Co({pretty:(t,e)=>(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(r,o,a)=>Ut(t,o+a+o,Ct.CODE)),e=e.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,o,a)=>Cg(t,a,2)),e),json:t=>t})};wZe=!!process.env.KONSOLE_VERSION;HS=(a=>(a.Error="error",a.Warning="warning",a.Info="info",a.Discard="discard",a))(HS||{})});var lie=_(ry=>{"use strict";Object.defineProperty(ry,"__esModule",{value:!0});ry.splitWhen=ry.flatten=void 0;function vZe(t){return t.reduce((e,r)=>[].concat(e,r),[])}ry.flatten=vZe;function DZe(t,e){let r=[[]],o=0;for(let a of t)e(a)?(o++,r[o]=[]):r[o].push(a);return r}ry.splitWhen=DZe});var cie=_(qS=>{"use strict";Object.defineProperty(qS,"__esModule",{value:!0});qS.isEnoentCodeError=void 0;function PZe(t){return t.code==="ENOENT"}qS.isEnoentCodeError=PZe});var uie=_(jS=>{"use strict";Object.defineProperty(jS,"__esModule",{value:!0});jS.createDirentFromStats=void 0;var pO=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function SZe(t,e){return new pO(t,e)}jS.createDirentFromStats=SZe});var hie=_(Vi=>{"use strict";Object.defineProperty(Vi,"__esModule",{value:!0});Vi.convertPosixPathToPattern=Vi.convertWindowsPathToPattern=Vi.convertPathToPattern=Vi.escapePosixPath=Vi.escapeWindowsPath=Vi.escape=Vi.removeLeadingDotSegment=Vi.makeAbsolute=Vi.unixify=void 0;var bZe=ve("os"),xZe=ve("path"),Aie=bZe.platform()==="win32",kZe=2,QZe=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,FZe=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,RZe=/^\\\\([.?])/,TZe=/\\(?![!()+@[\]{}])/g;function NZe(t){return t.replace(/\\/g,"/")}Vi.unixify=NZe;function LZe(t,e){return xZe.resolve(t,e)}Vi.makeAbsolute=LZe;function OZe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(kZe)}return t}Vi.removeLeadingDotSegment=OZe;Vi.escape=Aie?hO:gO;function hO(t){return t.replace(FZe,"\\$2")}Vi.escapeWindowsPath=hO;function gO(t){return t.replace(QZe,"\\$2")}Vi.escapePosixPath=gO;Vi.convertPathToPattern=Aie?fie:pie;function fie(t){return hO(t).replace(RZe,"//$1").replace(TZe,"/")}Vi.convertWindowsPathToPattern=fie;function pie(t){return gO(t)}Vi.convertPosixPathToPattern=pie});var die=_((cTt,gie)=>{gie.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var Eie=_((uTt,yie)=>{var MZe=die(),mie={"{":"}","(":")","[":"]"},UZe=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,o=-2,a=-2,n=-2,u=-2;ee&&(u===-1||u>o||(u=t.indexOf("\\",e),u===-1||u>o)))||a!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(a=t.indexOf("}",e),a>e&&(u=t.indexOf("\\",e),u===-1||u>a))||n!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(n=t.indexOf(")",e),n>e&&(u=t.indexOf("\\",e),u===-1||u>n))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(rr&&(u=t.indexOf("\\",r),u===-1||u>n))))return!0;if(t[e]==="\\"){var A=t[e+1];e+=2;var p=mie[A];if(p){var h=t.indexOf(p,e);h!==-1&&(e=h+1)}if(t[e]==="!")return!0}else e++}return!1},_Ze=function(t){if(t[0]==="!")return!0;for(var e=0;e{"use strict";var HZe=Eie(),qZe=ve("path").posix.dirname,jZe=ve("os").platform()==="win32",dO="/",GZe=/\\/g,WZe=/[\{\[].*[\}\]]$/,YZe=/(^|[^\\])([\{\[]|\([^\)]+$)/,KZe=/\\([\!\*\?\|\[\]\(\)\{\}])/g;Cie.exports=function(e,r){var o=Object.assign({flipBackslashes:!0},r);o.flipBackslashes&&jZe&&e.indexOf(dO)<0&&(e=e.replace(GZe,dO)),WZe.test(e)&&(e+=dO),e+="a";do e=qZe(e);while(HZe(e)||YZe.test(e));return e.replace(KZe,"$1")}});var xie=_(Mr=>{"use strict";Object.defineProperty(Mr,"__esModule",{value:!0});Mr.removeDuplicateSlashes=Mr.matchAny=Mr.convertPatternsToRe=Mr.makeRe=Mr.getPatternParts=Mr.expandBraceExpansion=Mr.expandPatternsWithBraceExpansion=Mr.isAffectDepthOfReadingPattern=Mr.endsWithSlashGlobStar=Mr.hasGlobStar=Mr.getBaseDirectory=Mr.isPatternRelatedToParentDirectory=Mr.getPatternsOutsideCurrentDirectory=Mr.getPatternsInsideCurrentDirectory=Mr.getPositivePatterns=Mr.getNegativePatterns=Mr.isPositivePattern=Mr.isNegativePattern=Mr.convertToNegativePattern=Mr.convertToPositivePattern=Mr.isDynamicPattern=Mr.isStaticPattern=void 0;var VZe=ve("path"),JZe=Iie(),mO=Xo(),wie="**",zZe="\\",XZe=/[*?]|^!/,ZZe=/\[[^[]*]/,$Ze=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,e$e=/[!*+?@]\([^(]*\)/,t$e=/,|\.\./,r$e=/(?!^)\/{2,}/g;function Bie(t,e={}){return!vie(t,e)}Mr.isStaticPattern=Bie;function vie(t,e={}){return t===""?!1:!!(e.caseSensitiveMatch===!1||t.includes(zZe)||XZe.test(t)||ZZe.test(t)||$Ze.test(t)||e.extglob!==!1&&e$e.test(t)||e.braceExpansion!==!1&&n$e(t))}Mr.isDynamicPattern=vie;function n$e(t){let e=t.indexOf("{");if(e===-1)return!1;let r=t.indexOf("}",e+1);if(r===-1)return!1;let o=t.slice(e,r);return t$e.test(o)}function i$e(t){return GS(t)?t.slice(1):t}Mr.convertToPositivePattern=i$e;function s$e(t){return"!"+t}Mr.convertToNegativePattern=s$e;function GS(t){return t.startsWith("!")&&t[1]!=="("}Mr.isNegativePattern=GS;function Die(t){return!GS(t)}Mr.isPositivePattern=Die;function o$e(t){return t.filter(GS)}Mr.getNegativePatterns=o$e;function a$e(t){return t.filter(Die)}Mr.getPositivePatterns=a$e;function l$e(t){return t.filter(e=>!yO(e))}Mr.getPatternsInsideCurrentDirectory=l$e;function c$e(t){return t.filter(yO)}Mr.getPatternsOutsideCurrentDirectory=c$e;function yO(t){return t.startsWith("..")||t.startsWith("./..")}Mr.isPatternRelatedToParentDirectory=yO;function u$e(t){return JZe(t,{flipBackslashes:!1})}Mr.getBaseDirectory=u$e;function A$e(t){return t.includes(wie)}Mr.hasGlobStar=A$e;function Pie(t){return t.endsWith("/"+wie)}Mr.endsWithSlashGlobStar=Pie;function f$e(t){let e=VZe.basename(t);return Pie(t)||Bie(e)}Mr.isAffectDepthOfReadingPattern=f$e;function p$e(t){return t.reduce((e,r)=>e.concat(Sie(r)),[])}Mr.expandPatternsWithBraceExpansion=p$e;function Sie(t){let e=mO.braces(t,{expand:!0,nodupes:!0,keepEscaping:!0});return e.sort((r,o)=>r.length-o.length),e.filter(r=>r!=="")}Mr.expandBraceExpansion=Sie;function h$e(t,e){let{parts:r}=mO.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.length===0&&(r=[t]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}Mr.getPatternParts=h$e;function bie(t,e){return mO.makeRe(t,e)}Mr.makeRe=bie;function g$e(t,e){return t.map(r=>bie(r,e))}Mr.convertPatternsToRe=g$e;function d$e(t,e){return e.some(r=>r.test(t))}Mr.matchAny=d$e;function m$e(t){return t.replace(r$e,"/")}Mr.removeDuplicateSlashes=m$e});var Rie=_((pTt,Fie)=>{"use strict";var y$e=ve("stream"),kie=y$e.PassThrough,E$e=Array.prototype.slice;Fie.exports=C$e;function C$e(){let t=[],e=E$e.call(arguments),r=!1,o=e[e.length-1];o&&!Array.isArray(o)&&o.pipe==null?e.pop():o={};let a=o.end!==!1,n=o.pipeError===!0;o.objectMode==null&&(o.objectMode=!0),o.highWaterMark==null&&(o.highWaterMark=64*1024);let u=kie(o);function A(){for(let E=0,w=arguments.length;E0||(r=!1,p())}function x(C){function T(){C.removeListener("merge2UnpipeEnd",T),C.removeListener("end",T),n&&C.removeListener("error",L),D()}function L(U){u.emit("error",U)}if(C._readableState.endEmitted)return D();C.on("merge2UnpipeEnd",T),C.on("end",T),n&&C.on("error",L),C.pipe(u,{end:!1}),C.resume()}for(let C=0;C{"use strict";Object.defineProperty(WS,"__esModule",{value:!0});WS.merge=void 0;var I$e=Rie();function w$e(t){let e=I$e(t);return t.forEach(r=>{r.once("error",o=>e.emit("error",o))}),e.once("close",()=>Tie(t)),e.once("end",()=>Tie(t)),e}WS.merge=w$e;function Tie(t){t.forEach(e=>e.emit("close"))}});var Lie=_(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.isEmpty=ny.isString=void 0;function B$e(t){return typeof t=="string"}ny.isString=B$e;function v$e(t){return t===""}ny.isEmpty=v$e});var Df=_(wo=>{"use strict";Object.defineProperty(wo,"__esModule",{value:!0});wo.string=wo.stream=wo.pattern=wo.path=wo.fs=wo.errno=wo.array=void 0;var D$e=lie();wo.array=D$e;var P$e=cie();wo.errno=P$e;var S$e=uie();wo.fs=S$e;var b$e=hie();wo.path=b$e;var x$e=xie();wo.pattern=x$e;var k$e=Nie();wo.stream=k$e;var Q$e=Lie();wo.string=Q$e});var _ie=_(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.convertPatternGroupToTask=Bo.convertPatternGroupsToTasks=Bo.groupPatternsByBaseDirectory=Bo.getNegativePatternsAsPositive=Bo.getPositivePatterns=Bo.convertPatternsToTasks=Bo.generate=void 0;var Kc=Df();function F$e(t,e){let r=Oie(t,e),o=Oie(e.ignore,e),a=Mie(r),n=Uie(r,o),u=a.filter(E=>Kc.pattern.isStaticPattern(E,e)),A=a.filter(E=>Kc.pattern.isDynamicPattern(E,e)),p=EO(u,n,!1),h=EO(A,n,!0);return p.concat(h)}Bo.generate=F$e;function Oie(t,e){let r=t;return e.braceExpansion&&(r=Kc.pattern.expandPatternsWithBraceExpansion(r)),e.baseNameMatch&&(r=r.map(o=>o.includes("/")?o:`**/${o}`)),r.map(o=>Kc.pattern.removeDuplicateSlashes(o))}function EO(t,e,r){let o=[],a=Kc.pattern.getPatternsOutsideCurrentDirectory(t),n=Kc.pattern.getPatternsInsideCurrentDirectory(t),u=CO(a),A=CO(n);return o.push(...IO(u,e,r)),"."in A?o.push(wO(".",n,e,r)):o.push(...IO(A,e,r)),o}Bo.convertPatternsToTasks=EO;function Mie(t){return Kc.pattern.getPositivePatterns(t)}Bo.getPositivePatterns=Mie;function Uie(t,e){return Kc.pattern.getNegativePatterns(t).concat(e).map(Kc.pattern.convertToPositivePattern)}Bo.getNegativePatternsAsPositive=Uie;function CO(t){let e={};return t.reduce((r,o)=>{let a=Kc.pattern.getBaseDirectory(o);return a in r?r[a].push(o):r[a]=[o],r},e)}Bo.groupPatternsByBaseDirectory=CO;function IO(t,e,r){return Object.keys(t).map(o=>wO(o,t[o],e,r))}Bo.convertPatternGroupsToTasks=IO;function wO(t,e,r,o){return{dynamic:o,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(Kc.pattern.convertToNegativePattern))}}Bo.convertPatternGroupToTask=wO});var qie=_(YS=>{"use strict";Object.defineProperty(YS,"__esModule",{value:!0});YS.read=void 0;function R$e(t,e,r){e.fs.lstat(t,(o,a)=>{if(o!==null){Hie(r,o);return}if(!a.isSymbolicLink()||!e.followSymbolicLink){BO(r,a);return}e.fs.stat(t,(n,u)=>{if(n!==null){if(e.throwErrorOnBrokenSymbolicLink){Hie(r,n);return}BO(r,a);return}e.markSymbolicLink&&(u.isSymbolicLink=()=>!0),BO(r,u)})})}YS.read=R$e;function Hie(t,e){t(e)}function BO(t,e){t(null,e)}});var jie=_(KS=>{"use strict";Object.defineProperty(KS,"__esModule",{value:!0});KS.read=void 0;function T$e(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let o=e.fs.statSync(t);return e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),o}catch(o){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw o}}KS.read=T$e});var Gie=_(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});th.createFileSystemAdapter=th.FILE_SYSTEM_ADAPTER=void 0;var VS=ve("fs");th.FILE_SYSTEM_ADAPTER={lstat:VS.lstat,stat:VS.stat,lstatSync:VS.lstatSync,statSync:VS.statSync};function N$e(t){return t===void 0?th.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},th.FILE_SYSTEM_ADAPTER),t)}th.createFileSystemAdapter=N$e});var Wie=_(DO=>{"use strict";Object.defineProperty(DO,"__esModule",{value:!0});var L$e=Gie(),vO=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=L$e.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e??r}};DO.default=vO});var wg=_(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});rh.statSync=rh.stat=rh.Settings=void 0;var Yie=qie(),O$e=jie(),PO=Wie();rh.Settings=PO.default;function M$e(t,e,r){if(typeof e=="function"){Yie.read(t,SO(),e);return}Yie.read(t,SO(e),r)}rh.stat=M$e;function U$e(t,e){let r=SO(e);return O$e.read(t,r)}rh.statSync=U$e;function SO(t={}){return t instanceof PO.default?t:new PO.default(t)}});var Jie=_((BTt,Vie)=>{var Kie;Vie.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window<"u"?window:global):t=>(Kie||(Kie=Promise.resolve())).then(t).catch(e=>setTimeout(()=>{throw e},0))});var Xie=_((vTt,zie)=>{zie.exports=H$e;var _$e=Jie();function H$e(t,e){let r,o,a,n=!0;Array.isArray(t)?(r=[],o=t.length):(a=Object.keys(t),r={},o=a.length);function u(p){function h(){e&&e(p,r),e=null}n?_$e(h):h()}function A(p,h,E){r[p]=E,(--o===0||h)&&u(h)}o?a?a.forEach(function(p){t[p](function(h,E){A(p,h,E)})}):t.forEach(function(p,h){p(function(E,w){A(h,E,w)})}):u(null),n=!1}});var bO=_(zS=>{"use strict";Object.defineProperty(zS,"__esModule",{value:!0});zS.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var JS=process.versions.node.split(".");if(JS[0]===void 0||JS[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var Zie=Number.parseInt(JS[0],10),q$e=Number.parseInt(JS[1],10),$ie=10,j$e=10,G$e=Zie>$ie,W$e=Zie===$ie&&q$e>=j$e;zS.IS_SUPPORT_READDIR_WITH_FILE_TYPES=G$e||W$e});var ese=_(XS=>{"use strict";Object.defineProperty(XS,"__esModule",{value:!0});XS.createDirentFromStats=void 0;var xO=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function Y$e(t,e){return new xO(t,e)}XS.createDirentFromStats=Y$e});var kO=_(ZS=>{"use strict";Object.defineProperty(ZS,"__esModule",{value:!0});ZS.fs=void 0;var K$e=ese();ZS.fs=K$e});var QO=_($S=>{"use strict";Object.defineProperty($S,"__esModule",{value:!0});$S.joinPathSegments=void 0;function V$e(t,e,r){return t.endsWith(r)?t+e:t+r+e}$S.joinPathSegments=V$e});var ose=_(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0});nh.readdir=nh.readdirWithFileTypes=nh.read=void 0;var J$e=wg(),tse=Xie(),z$e=bO(),rse=kO(),nse=QO();function X$e(t,e,r){if(!e.stats&&z$e.IS_SUPPORT_READDIR_WITH_FILE_TYPES){ise(t,e,r);return}sse(t,e,r)}nh.read=X$e;function ise(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(o,a)=>{if(o!==null){eb(r,o);return}let n=a.map(A=>({dirent:A,name:A.name,path:nse.joinPathSegments(t,A.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){FO(r,n);return}let u=n.map(A=>Z$e(A,e));tse(u,(A,p)=>{if(A!==null){eb(r,A);return}FO(r,p)})})}nh.readdirWithFileTypes=ise;function Z$e(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(o,a)=>{if(o!==null){if(e.throwErrorOnBrokenSymbolicLink){r(o);return}r(null,t);return}t.dirent=rse.fs.createDirentFromStats(t.name,a),r(null,t)})}}function sse(t,e,r){e.fs.readdir(t,(o,a)=>{if(o!==null){eb(r,o);return}let n=a.map(u=>{let A=nse.joinPathSegments(t,u,e.pathSegmentSeparator);return p=>{J$e.stat(A,e.fsStatSettings,(h,E)=>{if(h!==null){p(h);return}let w={name:u,path:A,dirent:rse.fs.createDirentFromStats(u,E)};e.stats&&(w.stats=E),p(null,w)})}});tse(n,(u,A)=>{if(u!==null){eb(r,u);return}FO(r,A)})})}nh.readdir=sse;function eb(t,e){t(e)}function FO(t,e){t(null,e)}});var Ase=_(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});ih.readdir=ih.readdirWithFileTypes=ih.read=void 0;var $$e=wg(),eet=bO(),ase=kO(),lse=QO();function tet(t,e){return!e.stats&&eet.IS_SUPPORT_READDIR_WITH_FILE_TYPES?cse(t,e):use(t,e)}ih.read=tet;function cse(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(o=>{let a={dirent:o,name:o.name,path:lse.joinPathSegments(t,o.name,e.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let n=e.fs.statSync(a.path);a.dirent=ase.fs.createDirentFromStats(a.name,n)}catch(n){if(e.throwErrorOnBrokenSymbolicLink)throw n}return a})}ih.readdirWithFileTypes=cse;function use(t,e){return e.fs.readdirSync(t).map(o=>{let a=lse.joinPathSegments(t,o,e.pathSegmentSeparator),n=$$e.statSync(a,e.fsStatSettings),u={name:o,path:a,dirent:ase.fs.createDirentFromStats(o,n)};return e.stats&&(u.stats=n),u})}ih.readdir=use});var fse=_(sh=>{"use strict";Object.defineProperty(sh,"__esModule",{value:!0});sh.createFileSystemAdapter=sh.FILE_SYSTEM_ADAPTER=void 0;var iy=ve("fs");sh.FILE_SYSTEM_ADAPTER={lstat:iy.lstat,stat:iy.stat,lstatSync:iy.lstatSync,statSync:iy.statSync,readdir:iy.readdir,readdirSync:iy.readdirSync};function ret(t){return t===void 0?sh.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},sh.FILE_SYSTEM_ADAPTER),t)}sh.createFileSystemAdapter=ret});var pse=_(TO=>{"use strict";Object.defineProperty(TO,"__esModule",{value:!0});var net=ve("path"),iet=wg(),set=fse(),RO=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=set.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,net.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new iet.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};TO.default=RO});var tb=_(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});oh.Settings=oh.scandirSync=oh.scandir=void 0;var hse=ose(),oet=Ase(),NO=pse();oh.Settings=NO.default;function aet(t,e,r){if(typeof e=="function"){hse.read(t,LO(),e);return}hse.read(t,LO(e),r)}oh.scandir=aet;function cet(t,e){let r=LO(e);return oet.read(t,r)}oh.scandirSync=cet;function LO(t={}){return t instanceof NO.default?t:new NO.default(t)}});var dse=_((TTt,gse)=>{"use strict";function uet(t){var e=new t,r=e;function o(){var n=e;return n.next?e=n.next:(e=new t,r=e),n.next=null,n}function a(n){r.next=n,r=n}return{get:o,release:a}}gse.exports=uet});var yse=_((NTt,OO)=>{"use strict";var Aet=dse();function mse(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),!(r>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var o=Aet(fet),a=null,n=null,u=0,A=null,p={push:T,drain:Yl,saturated:Yl,pause:E,paused:!1,get concurrency(){return r},set concurrency(ce){if(!(ce>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(r=ce,!p.paused)for(;a&&u=r||p.paused?n?(n.next=Ie,n=Ie):(a=Ie,n=Ie,p.saturated()):(u++,e.call(t,Ie.value,Ie.worked))}function L(ce,ue){var Ie=o.get();Ie.context=t,Ie.release=U,Ie.value=ce,Ie.callback=ue||Yl,Ie.errorHandler=A,u>=r||p.paused?a?(Ie.next=a,a=Ie):(a=Ie,n=Ie,p.saturated()):(u++,e.call(t,Ie.value,Ie.worked))}function U(ce){ce&&o.release(ce);var ue=a;ue&&u<=r?p.paused?u--:(n===a&&(n=null),a=ue.next,ue.next=null,e.call(t,ue.value,ue.worked),n===null&&p.empty()):--u===0&&p.drain()}function J(){a=null,n=null,p.drain=Yl}function te(){a=null,n=null,p.drain(),p.drain=Yl}function le(ce){A=ce}}function Yl(){}function fet(){this.value=null,this.callback=Yl,this.next=null,this.release=Yl,this.context=null,this.errorHandler=null;var t=this;this.worked=function(r,o){var a=t.callback,n=t.errorHandler,u=t.value;t.value=null,t.callback=Yl,t.errorHandler&&n(r,u),a.call(t.context,r,o),t.release(t)}}function pet(t,e,r){typeof t=="function"&&(r=e,e=t,t=null);function o(E,w){e.call(this,E).then(function(D){w(null,D)},w)}var a=mse(t,o,r),n=a.push,u=a.unshift;return a.push=A,a.unshift=p,a.drained=h,a;function A(E){var w=new Promise(function(D,x){n(E,function(C,T){if(C){x(C);return}D(T)})});return w.catch(Yl),w}function p(E){var w=new Promise(function(D,x){u(E,function(C,T){if(C){x(C);return}D(T)})});return w.catch(Yl),w}function h(){if(a.idle())return new Promise(function(D){D()});var E=a.drain,w=new Promise(function(D){a.drain=function(){E(),D()}});return w}}OO.exports=mse;OO.exports.promise=pet});var rb=_(eA=>{"use strict";Object.defineProperty(eA,"__esModule",{value:!0});eA.joinPathSegments=eA.replacePathSegmentSeparator=eA.isAppliedFilter=eA.isFatalError=void 0;function het(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}eA.isFatalError=het;function get(t,e){return t===null||t(e)}eA.isAppliedFilter=get;function det(t,e){return t.split(/[/\\]/).join(e)}eA.replacePathSegmentSeparator=det;function met(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}eA.joinPathSegments=met});var _O=_(UO=>{"use strict";Object.defineProperty(UO,"__esModule",{value:!0});var yet=rb(),MO=class{constructor(e,r){this._root=e,this._settings=r,this._root=yet.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};UO.default=MO});var jO=_(qO=>{"use strict";Object.defineProperty(qO,"__esModule",{value:!0});var Eet=ve("events"),Cet=tb(),Iet=yse(),nb=rb(),wet=_O(),HO=class extends wet.default{constructor(e,r){super(e,r),this._settings=r,this._scandir=Cet.scandir,this._emitter=new Eet.EventEmitter,this._queue=Iet(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let o={directory:e,base:r};this._queue.push(o,a=>{a!==null&&this._handleError(a)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(o,a)=>{if(o!==null){r(o,void 0);return}for(let n of a)this._handleEntry(n,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!nb.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let o=e.path;r!==void 0&&(e.path=nb.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),nb.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&nb.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};qO.default=HO});var Ese=_(WO=>{"use strict";Object.defineProperty(WO,"__esModule",{value:!0});var Bet=jO(),GO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Bet.default(this._root,this._settings),this._storage=[]}read(e){this._reader.onError(r=>{vet(e,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{Det(e,this._storage)}),this._reader.read()}};WO.default=GO;function vet(t,e){t(e)}function Det(t,e){t(null,e)}});var Cse=_(KO=>{"use strict";Object.defineProperty(KO,"__esModule",{value:!0});var Pet=ve("stream"),bet=jO(),YO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new bet.default(this._root,this._settings),this._stream=new Pet.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};KO.default=YO});var Ise=_(JO=>{"use strict";Object.defineProperty(JO,"__esModule",{value:!0});var xet=tb(),ib=rb(),ket=_O(),VO=class extends ket.default{constructor(){super(...arguments),this._scandir=xet.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let o=this._scandir(e,this._settings.fsScandirSettings);for(let a of o)this._handleEntry(a,r)}catch(o){this._handleError(o)}}_handleError(e){if(ib.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let o=e.path;r!==void 0&&(e.path=ib.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),ib.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&ib.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_pushToStorage(e){this._storage.push(e)}};JO.default=VO});var wse=_(XO=>{"use strict";Object.defineProperty(XO,"__esModule",{value:!0});var Qet=Ise(),zO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Qet.default(this._root,this._settings)}read(){return this._reader.read()}};XO.default=zO});var Bse=_($O=>{"use strict";Object.defineProperty($O,"__esModule",{value:!0});var Fet=ve("path"),Ret=tb(),ZO=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,Fet.sep),this.fsScandirSettings=new Ret.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};$O.default=ZO});var ob=_(tA=>{"use strict";Object.defineProperty(tA,"__esModule",{value:!0});tA.Settings=tA.walkStream=tA.walkSync=tA.walk=void 0;var vse=Ese(),Tet=Cse(),Net=wse(),eM=Bse();tA.Settings=eM.default;function Let(t,e,r){if(typeof e=="function"){new vse.default(t,sb()).read(e);return}new vse.default(t,sb(e)).read(r)}tA.walk=Let;function Oet(t,e){let r=sb(e);return new Net.default(t,r).read()}tA.walkSync=Oet;function Met(t,e){let r=sb(e);return new Tet.default(t,r).read()}tA.walkStream=Met;function sb(t={}){return t instanceof eM.default?t:new eM.default(t)}});var ab=_(rM=>{"use strict";Object.defineProperty(rM,"__esModule",{value:!0});var Uet=ve("path"),_et=wg(),Dse=Df(),tM=class{constructor(e){this._settings=e,this._fsStatSettings=new _et.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return Uet.resolve(this._settings.cwd,e)}_makeEntry(e,r){let o={name:r,path:r,dirent:Dse.fs.createDirentFromStats(r,e)};return this._settings.stats&&(o.stats=e),o}_isFatalError(e){return!Dse.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};rM.default=tM});var sM=_(iM=>{"use strict";Object.defineProperty(iM,"__esModule",{value:!0});var Het=ve("stream"),qet=wg(),jet=ob(),Get=ab(),nM=class extends Get.default{constructor(){super(...arguments),this._walkStream=jet.walkStream,this._stat=qet.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let o=e.map(this._getFullEntryPath,this),a=new Het.PassThrough({objectMode:!0});a._write=(n,u,A)=>this._getEntry(o[n],e[n],r).then(p=>{p!==null&&r.entryFilter(p)&&a.push(p),n===o.length-1&&a.end(),A()}).catch(A);for(let n=0;nthis._makeEntry(a,r)).catch(a=>{if(o.errorFilter(a))return null;throw a})}_getStat(e){return new Promise((r,o)=>{this._stat(e,this._fsStatSettings,(a,n)=>a===null?r(n):o(a))})}};iM.default=nM});var Pse=_(aM=>{"use strict";Object.defineProperty(aM,"__esModule",{value:!0});var Wet=ob(),Yet=ab(),Ket=sM(),oM=class extends Yet.default{constructor(){super(...arguments),this._walkAsync=Wet.walk,this._readerStream=new Ket.default(this._settings)}dynamic(e,r){return new Promise((o,a)=>{this._walkAsync(e,r,(n,u)=>{n===null?o(u):a(n)})})}async static(e,r){let o=[],a=this._readerStream.static(e,r);return new Promise((n,u)=>{a.once("error",u),a.on("data",A=>o.push(A)),a.once("end",()=>n(o))})}};aM.default=oM});var Sse=_(cM=>{"use strict";Object.defineProperty(cM,"__esModule",{value:!0});var m1=Df(),lM=class{constructor(e,r,o){this._patterns=e,this._settings=r,this._micromatchOptions=o,this._storage=[],this._fillStorage()}_fillStorage(){for(let e of this._patterns){let r=this._getPatternSegments(e),o=this._splitSegmentsIntoSections(r);this._storage.push({complete:o.length<=1,pattern:e,segments:r,sections:o})}}_getPatternSegments(e){return m1.pattern.getPatternParts(e,this._micromatchOptions).map(o=>m1.pattern.isDynamicPattern(o,this._settings)?{dynamic:!0,pattern:o,patternRe:m1.pattern.makeRe(o,this._micromatchOptions)}:{dynamic:!1,pattern:o})}_splitSegmentsIntoSections(e){return m1.array.splitWhen(e,r=>r.dynamic&&m1.pattern.hasGlobStar(r.pattern))}};cM.default=lM});var bse=_(AM=>{"use strict";Object.defineProperty(AM,"__esModule",{value:!0});var Vet=Sse(),uM=class extends Vet.default{match(e){let r=e.split("/"),o=r.length,a=this._storage.filter(n=>!n.complete||n.segments.length>o);for(let n of a){let u=n.sections[0];if(!n.complete&&o>u.length||r.every((p,h)=>{let E=n.segments[h];return!!(E.dynamic&&E.patternRe.test(p)||!E.dynamic&&E.pattern===p)}))return!0}return!1}};AM.default=uM});var xse=_(pM=>{"use strict";Object.defineProperty(pM,"__esModule",{value:!0});var lb=Df(),Jet=bse(),fM=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,o){let a=this._getMatcher(r),n=this._getNegativePatternsRe(o);return u=>this._filter(e,u,a,n)}_getMatcher(e){return new Jet.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(lb.pattern.isAffectDepthOfReadingPattern);return lb.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,o,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymbolicLink(r))return!1;let n=lb.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(n,o)?!1:this._isSkippedByNegativePatterns(n,a)}_isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntryLevel(e,r)>=this._settings.deep}_getEntryLevel(e,r){let o=r.split("/").length;if(e==="")return o;let a=e.split("/").length;return o-a}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!lb.pattern.matchAny(e,r)}};pM.default=fM});var kse=_(gM=>{"use strict";Object.defineProperty(gM,"__esModule",{value:!0});var Bg=Df(),hM=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let o=Bg.pattern.convertPatternsToRe(e,this._micromatchOptions),a=Bg.pattern.convertPatternsToRe(r,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}));return n=>this._filter(n,o,a)}_filter(e,r,o){let a=Bg.path.removeLeadingDotSegment(e.path);if(this._settings.unique&&this._isDuplicateEntry(a)||this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(a,o))return!1;let n=e.dirent.isDirectory(),u=this._isMatchToPatterns(a,r,n)&&!this._isMatchToPatterns(a,o,n);return this._settings.unique&&u&&this._createIndexRecord(a),u}_isDuplicateEntry(e){return this.index.has(e)}_createIndexRecord(e){this.index.set(e,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let o=Bg.path.makeAbsolute(this._settings.cwd,e);return Bg.pattern.matchAny(o,r)}_isMatchToPatterns(e,r,o){let a=Bg.pattern.matchAny(e,r);return!a&&o?Bg.pattern.matchAny(e+"/",r):a}};gM.default=hM});var Qse=_(mM=>{"use strict";Object.defineProperty(mM,"__esModule",{value:!0});var zet=Df(),dM=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return zet.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};mM.default=dM});var Rse=_(EM=>{"use strict";Object.defineProperty(EM,"__esModule",{value:!0});var Fse=Df(),yM=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=Fse.path.makeAbsolute(this._settings.cwd,r),r=Fse.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};EM.default=yM});var ub=_(IM=>{"use strict";Object.defineProperty(IM,"__esModule",{value:!0});var Xet=ve("path"),Zet=xse(),$et=kse(),ett=Qse(),ttt=Rse(),CM=class{constructor(e){this._settings=e,this.errorFilter=new ett.default(this._settings),this.entryFilter=new $et.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new Zet.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new ttt.default(this._settings)}_getRootDirectory(e){return Xet.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};IM.default=CM});var Tse=_(BM=>{"use strict";Object.defineProperty(BM,"__esModule",{value:!0});var rtt=Pse(),ntt=ub(),wM=class extends ntt.default{constructor(){super(...arguments),this._reader=new rtt.default(this._settings)}async read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return(await this.api(r,e,o)).map(n=>o.transform(n))}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};BM.default=wM});var Nse=_(DM=>{"use strict";Object.defineProperty(DM,"__esModule",{value:!0});var itt=ve("stream"),stt=sM(),ott=ub(),vM=class extends ott.default{constructor(){super(...arguments),this._reader=new stt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e),a=this.api(r,e,o),n=new itt.Readable({objectMode:!0,read:()=>{}});return a.once("error",u=>n.emit("error",u)).on("data",u=>n.emit("data",o.transform(u))).once("end",()=>n.emit("end")),n.once("close",()=>a.destroy()),n}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};DM.default=vM});var Lse=_(SM=>{"use strict";Object.defineProperty(SM,"__esModule",{value:!0});var att=wg(),ltt=ob(),ctt=ab(),PM=class extends ctt.default{constructor(){super(...arguments),this._walkSync=ltt.walkSync,this._statSync=att.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let o=[];for(let a of e){let n=this._getFullEntryPath(a),u=this._getEntry(n,a,r);u===null||!r.entryFilter(u)||o.push(u)}return o}_getEntry(e,r,o){try{let a=this._getStat(e);return this._makeEntry(a,r)}catch(a){if(o.errorFilter(a))return null;throw a}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};SM.default=PM});var Ose=_(xM=>{"use strict";Object.defineProperty(xM,"__esModule",{value:!0});var utt=Lse(),Att=ub(),bM=class extends Att.default{constructor(){super(...arguments),this._reader=new utt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return this.api(r,e,o).map(o.transform)}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};xM.default=bM});var Mse=_(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var sy=ve("fs"),ftt=ve("os"),ptt=Math.max(ftt.cpus().length,1);oy.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:sy.lstat,lstatSync:sy.lstatSync,stat:sy.stat,statSync:sy.statSync,readdir:sy.readdir,readdirSync:sy.readdirSync};var kM=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,ptt),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},oy.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};oy.default=kM});var Ab=_((oNt,_se)=>{"use strict";var Use=_ie(),htt=Tse(),gtt=Nse(),dtt=Ose(),QM=Mse(),Kl=Df();async function FM(t,e){Vc(t);let r=RM(t,htt.default,e),o=await Promise.all(r);return Kl.array.flatten(o)}(function(t){t.glob=t,t.globSync=e,t.globStream=r,t.async=t;function e(h,E){Vc(h);let w=RM(h,dtt.default,E);return Kl.array.flatten(w)}t.sync=e;function r(h,E){Vc(h);let w=RM(h,gtt.default,E);return Kl.stream.merge(w)}t.stream=r;function o(h,E){Vc(h);let w=[].concat(h),D=new QM.default(E);return Use.generate(w,D)}t.generateTasks=o;function a(h,E){Vc(h);let w=new QM.default(E);return Kl.pattern.isDynamicPattern(h,w)}t.isDynamicPattern=a;function n(h){return Vc(h),Kl.path.escape(h)}t.escapePath=n;function u(h){return Vc(h),Kl.path.convertPathToPattern(h)}t.convertPathToPattern=u;let A;(function(h){function E(D){return Vc(D),Kl.path.escapePosixPath(D)}h.escapePath=E;function w(D){return Vc(D),Kl.path.convertPosixPathToPattern(D)}h.convertPathToPattern=w})(A=t.posix||(t.posix={}));let p;(function(h){function E(D){return Vc(D),Kl.path.escapeWindowsPath(D)}h.escapePath=E;function w(D){return Vc(D),Kl.path.convertWindowsPathToPattern(D)}h.convertPathToPattern=w})(p=t.win32||(t.win32={}))})(FM||(FM={}));function RM(t,e,r){let o=[].concat(t),a=new QM.default(r),n=Use.generate(o,a),u=new e(a);return n.map(u.read,u)}function Vc(t){if(![].concat(t).every(o=>Kl.string.isString(o)&&!Kl.string.isEmpty(o)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}_se.exports=FM});var xn={};Kt(xn,{checksumFile:()=>pb,checksumPattern:()=>hb,makeHash:()=>Ji});function Ji(...t){let e=(0,fb.createHash)("sha512"),r="";for(let o of t)typeof o=="string"?r+=o:o&&(r&&(e.update(r),r=""),e.update(o));return r&&e.update(r),e.digest("hex")}async function pb(t,{baseFs:e,algorithm:r}={baseFs:ae,algorithm:"sha512"}){let o=await e.openPromise(t,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,fb.createHash)(r),A=0;for(;(A=await e.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await e.closePromise(o)}}async function hb(t,{cwd:e}){let o=(await(0,TM.default)(t,{cwd:Ae.fromPortablePath(e),onlyDirectories:!0})).map(A=>`${A}/**/*`),a=await(0,TM.default)([t,...o],{cwd:Ae.fromPortablePath(e),onlyFiles:!1});a.sort();let n=await Promise.all(a.map(async A=>{let p=[Buffer.from(A)],h=K.join(e,Ae.toPortablePath(A)),E=await ae.lstatPromise(h);return E.isSymbolicLink()?p.push(Buffer.from(await ae.readlinkPromise(h))):E.isFile()&&p.push(await ae.readFilePromise(h)),p.join("\0")})),u=(0,fb.createHash)("sha512");for(let A of n)u.update(A);return u.digest("hex")}var fb,TM,ah=It(()=>{Pt();fb=ve("crypto"),TM=et(Ab())});var G={};Kt(G,{allPeerRequests:()=>S1,areDescriptorsEqual:()=>Wse,areIdentsEqual:()=>w1,areLocatorsEqual:()=>B1,areVirtualPackagesEquivalent:()=>Dtt,bindDescriptor:()=>Btt,bindLocator:()=>vtt,convertDescriptorToLocator:()=>gb,convertLocatorToDescriptor:()=>LM,convertPackageToLocator:()=>Ctt,convertToIdent:()=>Ett,convertToManifestRange:()=>Ntt,copyPackage:()=>E1,devirtualizeDescriptor:()=>C1,devirtualizeLocator:()=>I1,ensureDevirtualizedDescriptor:()=>Itt,ensureDevirtualizedLocator:()=>wtt,getIdentVendorPath:()=>_M,isPackageCompatible:()=>Cb,isVirtualDescriptor:()=>Pf,isVirtualLocator:()=>Jc,makeDescriptor:()=>kn,makeIdent:()=>rA,makeLocator:()=>Ss,makeRange:()=>yb,parseDescriptor:()=>lh,parseFileStyleRange:()=>Rtt,parseIdent:()=>Zo,parseLocator:()=>Sf,parseRange:()=>vg,prettyDependent:()=>fO,prettyDescriptor:()=>Jn,prettyIdent:()=>Ui,prettyLocator:()=>jr,prettyLocatorNoColors:()=>AO,prettyRange:()=>cy,prettyReference:()=>D1,prettyResolution:()=>d1,prettyWorkspace:()=>P1,renamePackage:()=>OM,slugifyIdent:()=>NM,slugifyLocator:()=>ly,sortDescriptors:()=>uy,stringifyDescriptor:()=>ka,stringifyIdent:()=>rn,stringifyLocator:()=>Qa,tryParseDescriptor:()=>v1,tryParseIdent:()=>Yse,tryParseLocator:()=>mb,tryParseRange:()=>Ftt,virtualizeDescriptor:()=>MM,virtualizePackage:()=>UM});function rA(t,e){if(t?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:Ji(t,e),scope:t,name:e}}function kn(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:Ji(t.identHash,e),range:e}}function Ss(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:Ji(t.identHash,e),reference:e}}function Ett(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function gb(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function LM(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function Ctt(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function OM(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function E1(t){return OM(t,t)}function MM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return kn(t,`virtual:${e}#${t.range}`)}function UM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return OM(t,Ss(t,`virtual:${e}#${t.reference}`))}function Pf(t){return t.range.startsWith(y1)}function Jc(t){return t.reference.startsWith(y1)}function C1(t){if(!Pf(t))throw new Error("Not a virtual descriptor");return kn(t,t.range.replace(db,""))}function I1(t){if(!Jc(t))throw new Error("Not a virtual descriptor");return Ss(t,t.reference.replace(db,""))}function Itt(t){return Pf(t)?kn(t,t.range.replace(db,"")):t}function wtt(t){return Jc(t)?Ss(t,t.reference.replace(db,"")):t}function Btt(t,e){return t.range.includes("::")?t:kn(t,`${t.range}::${ay.default.stringify(e)}`)}function vtt(t,e){return t.reference.includes("::")?t:Ss(t,`${t.reference}::${ay.default.stringify(e)}`)}function w1(t,e){return t.identHash===e.identHash}function Wse(t,e){return t.descriptorHash===e.descriptorHash}function B1(t,e){return t.locatorHash===e.locatorHash}function Dtt(t,e){if(!Jc(t))throw new Error("Invalid package type");if(!Jc(e))throw new Error("Invalid package type");if(!w1(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let o=e.dependencies.get(r.identHash);if(!o||!Wse(r,o))return!1}return!0}function Zo(t){let e=Yse(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function Yse(t){let e=t.match(Ptt);if(!e)return null;let[,r,o]=e;return rA(typeof r<"u"?r:null,o)}function lh(t,e=!1){let r=v1(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function v1(t,e=!1){let r=e?t.match(Stt):t.match(btt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid range (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return kn(rA(u,a),A)}function Sf(t,e=!1){let r=mb(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function mb(t,e=!1){let r=e?t.match(xtt):t.match(ktt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid reference (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return Ss(rA(u,a),A)}function vg(t,e){let r=t.match(Qtt);if(r===null)throw new Error(`Invalid range (${t})`);let o=typeof r[1]<"u"?r[1]:null;if(typeof e?.requireProtocol=="string"&&o!==e.requireProtocol)throw new Error(`Invalid protocol (${o})`);if(e?.requireProtocol&&o===null)throw new Error(`Missing protocol (${o})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(e?.requireSource&&a===null)throw new Error(`Missing source (${t})`);let n=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),u=e?.parseSelector?ay.default.parse(n):n,A=typeof r[4]<"u"?ay.default.parse(r[4]):null;return{protocol:o,source:a,selector:u,params:A}}function Ftt(t,e){try{return vg(t,e)}catch{return null}}function Rtt(t,{protocol:e}){let{selector:r,params:o}=vg(t,{requireProtocol:e,requireBindings:!0});if(typeof o.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:Sf(o.locator,!0),path:r}}function Hse(t){return t=t.replaceAll("%","%25"),t=t.replaceAll(":","%3A"),t=t.replaceAll("#","%23"),t}function Ttt(t){return t===null?!1:Object.entries(t).length>0}function yb({protocol:t,source:e,selector:r,params:o}){let a="";return t!==null&&(a+=`${t}`),e!==null&&(a+=`${Hse(e)}#`),a+=Hse(r),Ttt(o)&&(a+=`::${ay.default.stringify(o)}`),a}function Ntt(t){let{params:e,protocol:r,source:o,selector:a}=vg(t);for(let n in e)n.startsWith("__")&&delete e[n];return yb({protocol:r,source:o,params:e,selector:a})}function rn(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function ka(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function Qa(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function NM(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function ly(t){let{protocol:e,selector:r}=vg(t.reference),o=e!==null?e.replace(Ltt,""):"exotic",a=qse.default.valid(r),n=a!==null?`${o}-${a}`:`${o}`,u=10;return t.scope?`${NM(t)}-${n}-${t.locatorHash.slice(0,u)}`:`${NM(t)}-${n}-${t.locatorHash.slice(0,u)}`}function Ui(t,e){return e.scope?`${Ut(t,`@${e.scope}/`,Ct.SCOPE)}${Ut(t,e.name,Ct.NAME)}`:`${Ut(t,e.name,Ct.NAME)}`}function Eb(t){if(t.startsWith(y1)){let e=Eb(t.substring(t.indexOf("#")+1)),r=t.substring(y1.length,y1.length+mtt);return`${e} [${r}]`}else return t.replace(Ott,"?[...]")}function cy(t,e){return`${Ut(t,Eb(e),Ct.RANGE)}`}function Jn(t,e){return`${Ui(t,e)}${Ut(t,"@",Ct.RANGE)}${cy(t,e.range)}`}function D1(t,e){return`${Ut(t,Eb(e),Ct.REFERENCE)}`}function jr(t,e){return`${Ui(t,e)}${Ut(t,"@",Ct.REFERENCE)}${D1(t,e.reference)}`}function AO(t){return`${rn(t)}@${Eb(t.reference)}`}function uy(t){return Ps(t,[e=>rn(e),e=>e.range])}function P1(t,e){return Ui(t,e.anchoredLocator)}function d1(t,e,r){let o=Pf(e)?C1(e):e;return r===null?`${Jn(t,o)} \u2192 ${uO(t).Cross}`:o.identHash===r.identHash?`${Jn(t,o)} \u2192 ${D1(t,r.reference)}`:`${Jn(t,o)} \u2192 ${jr(t,r)}`}function fO(t,e,r){return r===null?`${jr(t,e)}`:`${jr(t,e)} (via ${cy(t,r.range)})`}function _M(t){return`node_modules/${rn(t)}`}function Cb(t,e){return t.conditions?ytt(t.conditions,r=>{let[,o,a]=r.match(Gse),n=e[o];return n?n.includes(a):!0}):!0}function S1(t){let e=new Set;if("children"in t)e.add(t);else for(let r of t.requests.values())e.add(r);for(let r of e)for(let o of r.children.values())e.add(o);return e}var ay,qse,jse,y1,mtt,Gse,ytt,db,Ptt,Stt,btt,xtt,ktt,Qtt,Ltt,Ott,Io=It(()=>{ay=et(ve("querystring")),qse=et(ni()),jse=et(MX());Wl();ah();Gl();Io();y1="virtual:",mtt=5,Gse=/(os|cpu|libc)=([a-z0-9_-]+)/,ytt=(0,jse.makeParser)(Gse);db=/^[^#]*#/;Ptt=/^(?:@([^/]+?)\/)?([^@/]+)$/;Stt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,btt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;xtt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,ktt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;Qtt=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;Ltt=/:$/;Ott=/\?.*/});var Kse,Vse=It(()=>{Io();Kse={hooks:{reduceDependency:(t,e,r,o,{resolver:a,resolveOptions:n})=>{for(let{pattern:u,reference:A}of e.topLevelWorkspace.manifest.resolutions){if(u.from&&(u.from.fullName!==rn(r)||e.configuration.normalizeLocator(Ss(Zo(u.from.fullName),u.from.description??r.reference)).locatorHash!==r.locatorHash)||u.descriptor.fullName!==rn(t)||e.configuration.normalizeDependency(kn(Sf(u.descriptor.fullName),u.descriptor.description??t.range)).descriptorHash!==t.descriptorHash)continue;return a.bindDescriptor(e.configuration.normalizeDependency(kn(t,A)),e.topLevelWorkspace.anchoredLocator,n)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let o=P1(t.configuration,r);await t.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,n)=>e.reportWarning(a,`${o}: ${n}`),reportError:(a,n)=>e.reportError(a,`${o}: ${n}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let o of r.errors)e.reportWarning(57,o.message)}}}});var ci,Dg=It(()=>{ci=class t{static{this.protocol="workspace:"}supportsDescriptor(e,r){return!!(e.range.startsWith(t.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(t.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[o.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.getWorkspaceByCwd(e.reference.slice(t.protocol.length));return{...e,version:o.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...o.manifest.dependencies,...o.manifest.devDependencies])),peerDependencies:new Map([...o.manifest.peerDependencies]),dependenciesMeta:o.manifest.dependenciesMeta,peerDependenciesMeta:o.manifest.peerDependenciesMeta,bin:o.manifest.bin}}}});var Ur={};Kt(Ur,{SemVer:()=>$se.SemVer,clean:()=>Utt,getComparator:()=>Xse,mergeComparators:()=>HM,satisfiesWithPrereleases:()=>nA,simplifyRanges:()=>qM,stringifyComparator:()=>Zse,validRange:()=>Fa});function nA(t,e,r=!1){if(!t)return!1;let o=`${e}${r}`,a=Jse.get(o);if(typeof a>"u")try{a=new bf.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{Jse.set(o,a||null)}else if(a===null)return!1;let n;try{n=new bf.default.SemVer(t,a)}catch{return!1}return a.test(n)?!0:(n.prerelease&&(n.prerelease=[]),a.set.some(u=>{for(let A of u)A.semver.prerelease&&(A.semver.prerelease=[]);return u.every(A=>A.test(n))}))}function Fa(t){if(t.indexOf(":")!==-1)return null;let e=zse.get(t);if(typeof e<"u")return e;try{e=new bf.default.Range(t)}catch{e=null}return zse.set(t,e),e}function Utt(t){let e=Mtt.exec(t);return e?e[1]:null}function Xse(t){if(t.semver===bf.default.Comparator.ANY)return{gt:null,lt:null};switch(t.operator){case"":return{gt:[">=",t.semver],lt:["<=",t.semver]};case">":case">=":return{gt:[t.operator,t.semver],lt:null};case"<":case"<=":return{gt:null,lt:[t.operator,t.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${t.operator})`)}}function HM(t){if(t.length===0)return null;let e=null,r=null;for(let o of t){if(o.gt){let a=e!==null?bf.default.compare(o.gt[1],e[1]):null;(a===null||a>0||a===0&&o.gt[0]===">")&&(e=o.gt)}if(o.lt){let a=r!==null?bf.default.compare(o.lt[1],r[1]):null;(a===null||a<0||a===0&&o.lt[0]==="<")&&(r=o.lt)}}if(e&&r){let o=bf.default.compare(e[1],r[1]);if(o===0&&(e[0]===">"||r[0]==="<")||o>0)return null}return{gt:e,lt:r}}function Zse(t){if(t.gt&&t.lt){if(t.gt[0]===">="&&t.lt[0]==="<="&&t.gt[1].version===t.lt[1].version)return t.gt[1].version;if(t.gt[0]===">="&&t.lt[0]==="<"){if(t.lt[1].version===`${t.gt[1].major+1}.0.0-0`)return`^${t.gt[1].version}`;if(t.lt[1].version===`${t.gt[1].major}.${t.gt[1].minor+1}.0-0`)return`~${t.gt[1].version}`}}let e=[];return t.gt&&e.push(t.gt[0]+t.gt[1].version),t.lt&&e.push(t.lt[0]+t.lt[1].version),e.length?e.join(" "):"*"}function qM(t){let e=t.map(_tt).map(o=>Fa(o).set.map(a=>a.map(n=>Xse(n)))),r=e.shift().map(o=>HM(o)).filter(o=>o!==null);for(let o of e){let a=[];for(let n of r)for(let u of o){let A=HM([n,...u]);A!==null&&a.push(A)}r=a}return r.length===0?null:r.map(o=>Zse(o)).join(" || ")}function _tt(t){let e=t.split("||");if(e.length>1){let r=new Set;for(let o of e)e.some(a=>a!==o&&bf.default.subset(o,a))||r.add(o);if(r.size{bf=et(ni()),$se=et(ni()),Jse=new Map;zse=new Map;Mtt=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/});function eoe(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function toe(t){return t.charCodeAt(0)===65279?t.slice(1):t}function $o(t){return t.replace(/\\/g,"/")}function Ib(t,{yamlCompatibilityMode:e}){return e?nO(t):typeof t>"u"||typeof t=="boolean"?t:null}function roe(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let o=r%2===0?"":"!",a=e.slice(r);return`${o}${t}=${a}`}function jM(t,e){return e.length===1?roe(t,e[0]):`(${e.map(r=>roe(t,r)).join(" | ")})`}var noe,_t,Ay=It(()=>{Pt();Ol();noe=et(ni());Dg();Gl();xf();Io();_t=class t{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static{this.fileName="package.json"}static{this.allDependencies=["dependencies","devDependencies","peerDependencies"]}static{this.hardDependencies=["dependencies","devDependencies"]}static async tryFind(e,{baseFs:r=new _n}={}){let o=K.join(e,"package.json");try{return await t.fromFile(o,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(e,{baseFs:r}={}){let o=await t.tryFind(e,{baseFs:r});if(o===null)throw new Error("Manifest not found");return o}static async fromFile(e,{baseFs:r=new _n}={}){let o=new t;return await o.loadFile(e,{baseFs:r}),o}static fromText(e){let r=new t;return r.loadFromText(e),r}loadFromText(e){let r;try{r=JSON.parse(toe(e)||"{}")}catch(o){throw o.message+=` (when parsing ${e})`,o}this.load(r),this.indent=eoe(e)}async loadFile(e,{baseFs:r=new _n}){let o=await r.readFilePromise(e,"utf8"),a;try{a=JSON.parse(toe(o)||"{}")}catch(n){throw n.message+=` (when parsing ${e})`,n}this.load(a),this.indent=eoe(o)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let o=[];if(this.name=null,typeof e.name=="string")try{this.name=Zo(e.name)}catch{o.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let n=[];this.os=n;for(let u of e.os)typeof u!="string"?o.push(new Error("Parsing failed for the 'os' field")):n.push(u)}else this.os=null;if(Array.isArray(e.cpu)){let n=[];this.cpu=n;for(let u of e.cpu)typeof u!="string"?o.push(new Error("Parsing failed for the 'cpu' field")):n.push(u)}else this.cpu=null;if(Array.isArray(e.libc)){let n=[];this.libc=n;for(let u of e.libc)typeof u!="string"?o.push(new Error("Parsing failed for the 'libc' field")):n.push(u)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=$o(e.main):this.main=null,typeof e.module=="string"?this.module=$o(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=$o(e.browser);else{this.browser=new Map;for(let[n,u]of Object.entries(e.browser))this.browser.set($o(n),typeof u=="string"?$o(u):u)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?o.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,$o(e.bin)):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[n,u]of Object.entries(e.bin)){if(typeof u!="string"||u.trim()===""){o.push(new Error(`Invalid bin definition for '${n}'`));continue}let A=Zo(n);this.bin.set(A.name,$o(u))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[n,u]of Object.entries(e.scripts)){if(typeof u!="string"){o.push(new Error(`Invalid script definition for '${n}'`));continue}this.scripts.set(n,u)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[n,u]of Object.entries(e.dependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Zo(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=kn(A,u);this.dependencies.set(p.identHash,p)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[n,u]of Object.entries(e.devDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Zo(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=kn(A,u);this.devDependencies.set(p.identHash,p)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[n,u]of Object.entries(e.peerDependencies)){let A;try{A=Zo(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}(typeof u!="string"||!u.startsWith(ci.protocol)&&!Fa(u))&&(o.push(new Error(`Invalid dependency range for '${n}'`)),u="*");let p=kn(A,u);this.peerDependencies.set(p.identHash,p)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&o.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let n of a){if(typeof n!="string"){o.push(new Error(`Invalid workspace definition for '${n}'`));continue}this.workspaceDefinitions.push({pattern:n})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[n,u]of Object.entries(e.dependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}`));continue}let A=lh(n),p=this.ensureDependencyMeta(A),h=Ib(u.built,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid built meta field for '${n}'`));continue}let E=Ib(u.optional,{yamlCompatibilityMode:r});if(E===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}let w=Ib(u.unplugged,{yamlCompatibilityMode:r});if(w===null){o.push(new Error(`Invalid unplugged meta field for '${n}'`));continue}Object.assign(p,{built:h,optional:E,unplugged:w})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[n,u]of Object.entries(e.peerDependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}'`));continue}let A=lh(n),p=this.ensurePeerDependencyMeta(A),h=Ib(u.optional,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}Object.assign(p,{optional:h})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[n,u]of Object.entries(e.resolutions)){if(typeof u!="string"){o.push(new Error(`Invalid resolution entry for '${n}'`));continue}try{this.resolutions.push({pattern:pP(n),reference:u})}catch(A){o.push(A);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let n of e.files){if(typeof n!="string"){o.push(new Error(`Invalid files entry for '${n}'`));continue}this.files.add(n)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=$o(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=$o(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=$o(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[n,u]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set($o(n),typeof u=="string"?$o(u):u)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,$o(e.publishConfig.bin)]]):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[n,u]of Object.entries(e.publishConfig.bin)){if(typeof u!="string"){o.push(new Error(`Invalid bin definition for '${n}'`));continue}this.publishConfig.bin.set(n,$o(u))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let n of e.publishConfig.executableFiles){if(typeof n!="string"){o.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add($o(n))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let n of Object.keys(e.installConfig))n==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:o.push(new Error("Invalid hoisting limits definition")):n=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:o.push(new Error("Invalid selfReferences definition, must be a boolean value")):o.push(new Error(`Unrecognized installConfig key: ${n}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[n,u]of Object.entries(e.optionalDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Zo(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=kn(A,u);this.dependencies.set(p.identHash,p);let h=kn(A,"unknown"),E=this.ensureDependencyMeta(h);Object.assign(E,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=o}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(jM("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(jM("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(jM("libc",this.libc)),e.length>0?e.join(" & "):null}ensureDependencyMeta(e){if(e.range!=="unknown"&&!noe.default.valid(e.range))throw new Error(`Invalid meta field range for '${ka(e)}'`);let r=rn(e),o=e.range!=="unknown"?e.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let n=a.get(o);return n||a.set(o,n={}),n}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${ka(e)}'`);let r=rn(e),o=this.peerDependenciesMeta.get(r);return o||this.peerDependenciesMeta.set(r,o={}),o}setRawField(e,r,{after:o=[]}={}){let a=new Set(o.filter(n=>Object.hasOwn(this.raw,n)));if(a.size===0||Object.hasOwn(this.raw,e))this.raw[e]=r;else{let n=this.raw,u=this.raw={},A=!1;for(let p of Object.keys(n))u[p]=n[p],A||(a.delete(p),a.size===0&&(u[e]=r,A=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),this.name!==null?e.name=rn(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let n=this.browser;typeof n=="string"?e.browser=n:n instanceof Map&&(e.browser=Object.assign({},...Array.from(n.keys()).sort().map(u=>({[u]:n.get(u)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(n=>({[n]:this.bin.get(n)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:n})=>n)}:e.workspaces=this.workspaceDefinitions.map(({pattern:n})=>n):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let o=[],a=[];for(let n of this.dependencies.values()){let u=this.dependenciesMeta.get(rn(n)),A=!1;if(r&&u){let p=u.get(null);p&&p.optional&&(A=!0)}A?a.push(n):o.push(n)}o.length>0?e.dependencies=Object.assign({},...uy(o).map(n=>({[rn(n)]:n.range}))):delete e.dependencies,a.length>0?e.optionalDependencies=Object.assign({},...uy(a).map(n=>({[rn(n)]:n.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...uy(this.devDependencies.values()).map(n=>({[rn(n)]:n.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...uy(this.peerDependencies.values()).map(n=>({[rn(n)]:n.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[n,u]of Ps(this.dependenciesMeta.entries(),([A,p])=>A))for(let[A,p]of Ps(u.entries(),([h,E])=>h!==null?`0${h}`:"1")){let h=A!==null?ka(kn(Zo(n),A)):n,E={...p};r&&A===null&&delete E.optional,Object.keys(E).length!==0&&(e.dependenciesMeta[h]=E)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Ps(this.peerDependenciesMeta.entries(),([n,u])=>n).map(([n,u])=>({[n]:u}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:n,reference:u})=>({[hP(n)]:u}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){e.scripts??={};for(let n of Object.keys(e.scripts))this.scripts.has(n)||delete e.scripts[n];for(let[n,u]of this.scripts.entries())e.scripts[n]=u}else delete e.scripts;return e}}});var soe=_((INt,ioe)=>{var Htt=ql(),qtt=function(){return Htt.Date.now()};ioe.exports=qtt});var aoe=_((wNt,ooe)=>{var jtt=/\s/;function Gtt(t){for(var e=t.length;e--&&jtt.test(t.charAt(e)););return e}ooe.exports=Gtt});var coe=_((BNt,loe)=>{var Wtt=aoe(),Ytt=/^\s+/;function Ktt(t){return t&&t.slice(0,Wtt(t)+1).replace(Ytt,"")}loe.exports=Ktt});var fy=_((vNt,uoe)=>{var Vtt=mg(),Jtt=Zu(),ztt="[object Symbol]";function Xtt(t){return typeof t=="symbol"||Jtt(t)&&Vtt(t)==ztt}uoe.exports=Xtt});var hoe=_((DNt,poe)=>{var Ztt=coe(),Aoe=cl(),$tt=fy(),foe=NaN,ert=/^[-+]0x[0-9a-f]+$/i,trt=/^0b[01]+$/i,rrt=/^0o[0-7]+$/i,nrt=parseInt;function irt(t){if(typeof t=="number")return t;if($tt(t))return foe;if(Aoe(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Aoe(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Ztt(t);var r=trt.test(t);return r||rrt.test(t)?nrt(t.slice(2),r?2:8):ert.test(t)?foe:+t}poe.exports=irt});var moe=_((PNt,doe)=>{var srt=cl(),GM=soe(),goe=hoe(),ort="Expected a function",art=Math.max,lrt=Math.min;function crt(t,e,r){var o,a,n,u,A,p,h=0,E=!1,w=!1,D=!0;if(typeof t!="function")throw new TypeError(ort);e=goe(e)||0,srt(r)&&(E=!!r.leading,w="maxWait"in r,n=w?art(goe(r.maxWait)||0,e):n,D="trailing"in r?!!r.trailing:D);function x(ue){var Ie=o,he=a;return o=a=void 0,h=ue,u=t.apply(he,Ie),u}function C(ue){return h=ue,A=setTimeout(U,e),E?x(ue):u}function T(ue){var Ie=ue-p,he=ue-h,De=e-Ie;return w?lrt(De,n-he):De}function L(ue){var Ie=ue-p,he=ue-h;return p===void 0||Ie>=e||Ie<0||w&&he>=n}function U(){var ue=GM();if(L(ue))return J(ue);A=setTimeout(U,T(ue))}function J(ue){return A=void 0,D&&o?x(ue):(o=a=void 0,u)}function te(){A!==void 0&&clearTimeout(A),h=0,o=p=a=A=void 0}function le(){return A===void 0?u:J(GM())}function ce(){var ue=GM(),Ie=L(ue);if(o=arguments,a=this,p=ue,Ie){if(A===void 0)return C(p);if(w)return clearTimeout(A),A=setTimeout(U,e),x(p)}return A===void 0&&(A=setTimeout(U,e)),u}return ce.cancel=te,ce.flush=le,ce}doe.exports=crt});var WM=_((SNt,yoe)=>{var urt=moe(),Art=cl(),frt="Expected a function";function prt(t,e,r){var o=!0,a=!0;if(typeof t!="function")throw new TypeError(frt);return Art(r)&&(o="leading"in r?!!r.leading:o,a="trailing"in r?!!r.trailing:a),urt(t,e,{leading:o,maxWait:e,trailing:a})}yoe.exports=prt});function grt(t){return typeof t.reportCode<"u"}var Eoe,Coe,Ioe,hrt,Jt,Ws,Vl=It(()=>{Eoe=et(WM()),Coe=ve("stream"),Ioe=ve("string_decoder"),hrt=15,Jt=class extends Error{constructor(r,o,a){super(o);this.reportExtra=a;this.reportCode=r}};Ws=class{constructor(){this.cacheHits=new Set;this.cacheMisses=new Set;this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(e){this.cacheHits.add(e.locatorHash)}reportCacheMiss(e,r){this.cacheMisses.add(e.locatorHash)}static progressViaCounter(e){let r=0,o,a=new Promise(p=>{o=p}),n=p=>{let h=o;a=new Promise(E=>{o=E}),r=p,h()},u=(p=0)=>{n(r+1)},A=async function*(){for(;r{r=u}),a=(0,Eoe.default)(u=>{let A=r;o=new Promise(p=>{r=p}),e=u,A()},1e3/hrt),n=async function*(){for(;;)await o,yield{title:e}}();return{[Symbol.asyncIterator](){return n},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(e,r){let o=this.reportProgress(e);try{return await r(e)}finally{o.stop()}}startProgressSync(e,r){let o=this.reportProgress(e);try{return r(e)}finally{o.stop()}}reportInfoOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(e,r),o?.reportExtra?.(this))}reportWarningOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(e,r),o?.reportExtra?.(this))}reportErrorOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(e,r),o?.reportExtra?.(this))}reportExceptionOnce(e){grt(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new Coe.PassThrough,o=new Ioe.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` +`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var py,YM=It(()=>{Vl();Io();py=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));return o||null}getFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));if(!o)throw new Jt(11,`${jr(r.project.configuration,e)} isn't supported by any available fetcher`);return o}}});var Pg,KM=It(()=>{Io();Pg=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.getResolverByDescriptor(e,o).bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,o){return await this.getResolverByDescriptor(e,o).getCandidates(e,r,o)}async getSatisfying(e,r,o,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,o,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));return o||null}getResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!o)throw new Error(`${Jn(r.project.configuration,e)} isn't supported by any available resolver`);return o}tryResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));return o||null}getResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));if(!o)throw new Error(`${jr(r.project.configuration,e)} isn't supported by any available resolver`);return o}}});var hy,VM=It(()=>{Pt();Io();hy=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Ss(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Ss(e,a),u=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,u,r)}getLocatorFilename(e){return ly(e)}async ensureVirtualLink(e,r,o){let a=r.packageFs.getRealPath(),n=o.project.configuration.get("virtualFolder"),u=this.getLocatorFilename(e),A=qs.makeVirtualPath(n,u,a),p=new ju(A,{baseFs:r.packageFs,pathUtils:K});return{...r,packageFs:p}}}});var wb,woe=It(()=>{wb=class t{static{this.protocol="virtual:"}static isVirtualDescriptor(e){return!!e.range.startsWith(t.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(t.protocol)}supportsDescriptor(e,r){return t.isVirtualDescriptor(e)}supportsLocator(e,r){return t.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,o){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,o,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}});var gy,JM=It(()=>{Pt();Dg();gy=class{supports(e){return!!e.reference.startsWith(ci.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let o=this.getWorkspace(e,r).cwd;return{packageFs:new En(o),prefixPath:Bt.dot,localPath:o}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(ci.protocol.length))}}});function b1(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Boe(t){return typeof t>"u"?3:b1(t)?0:Array.isArray(t)?1:2}function ZM(t,e){return Object.hasOwn(t,e)}function mrt(t){return b1(t)&&ZM(t,"onConflict")&&typeof t.onConflict=="string"}function yrt(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!mrt(t))return{onConflict:"default",value:t};if(ZM(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function voe(t,e){let r=b1(t)&&ZM(t,e)?t[e]:void 0;return yrt(r)}function dy(t,e){return[t,e,Doe]}function $M(t){return Array.isArray(t)?t[2]===Doe:!1}function zM(t,e){if(b1(t)){let r={};for(let o of Object.keys(t))r[o]=zM(t[o],e);return dy(e,r)}return Array.isArray(t)?dy(e,t.map(r=>zM(r,e))):dy(e,t)}function XM(t,e,r,o,a){let n,u=[],A=a,p=0;for(let E=a-1;E>=o;--E){let[w,D]=t[E],{onConflict:x,value:C}=voe(D,r),T=Boe(C);if(T!==3){if(n??=T,T!==n||x==="hardReset"){p=A;break}if(T===2)return dy(w,C);if(u.unshift([w,C]),x==="reset"){p=E;break}x==="extend"&&E===o&&(o=0),A=E}}if(typeof n>"u")return null;let h=u.map(([E])=>E).join(", ");switch(n){case 1:return dy(h,new Array().concat(...u.map(([E,w])=>w.map(D=>zM(D,E)))));case 0:{let E=Object.assign({},...u.map(([,T])=>T)),w=Object.keys(E),D={},x=t.map(([T,L])=>[T,voe(L,r).value]),C=drt(x,([T,L])=>{let U=Boe(L);return U!==0&&U!==3});if(C!==-1){let T=x.slice(C+1);for(let L of w)D[L]=XM(T,e,L,0,T.length)}else for(let T of w)D[T]=XM(x,e,T,p,x.length);return dy(h,D)}default:throw new Error("Assertion failed: Non-extendable value type")}}function Poe(t){return XM(t.map(([e,r])=>[e,{".":r}]),[],".",0,t.length)}function x1(t){return $M(t)?t[1]:t}function Bb(t){let e=$M(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>Bb(r));if(b1(e)){let r={};for(let[o,a]of Object.entries(e))r[o]=Bb(a);return r}return e}function eU(t){return $M(t)?t[0]:null}var drt,Doe,Soe=It(()=>{drt=(t,e,r)=>{let o=[...t];return o.reverse(),o.findIndex(e,r)};Doe=Symbol()});var vb={};Kt(vb,{getDefaultGlobalFolder:()=>rU,getHomeFolder:()=>my,isFolderInside:()=>nU});function rU(){if(process.platform==="win32"){let t=Ae.toPortablePath(process.env.LOCALAPPDATA||Ae.join((0,tU.homedir)(),"AppData","Local"));return K.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=Ae.toPortablePath(process.env.XDG_DATA_HOME);return K.resolve(t,"yarn/berry")}return K.resolve(my(),".yarn/berry")}function my(){return Ae.toPortablePath((0,tU.homedir)()||"/usr/local/share")}function nU(t,e){let r=K.relative(e,t);return r&&!r.startsWith("..")&&!K.isAbsolute(r)}var tU,Db=It(()=>{Pt();tU=ve("os")});var Qoe=_(yy=>{"use strict";var _Nt=ve("net"),Crt=ve("tls"),iU=ve("http"),boe=ve("https"),Irt=ve("events"),HNt=ve("assert"),wrt=ve("util");yy.httpOverHttp=Brt;yy.httpsOverHttp=vrt;yy.httpOverHttps=Drt;yy.httpsOverHttps=Prt;function Brt(t){var e=new kf(t);return e.request=iU.request,e}function vrt(t){var e=new kf(t);return e.request=iU.request,e.createSocket=xoe,e.defaultPort=443,e}function Drt(t){var e=new kf(t);return e.request=boe.request,e}function Prt(t){var e=new kf(t);return e.request=boe.request,e.createSocket=xoe,e.defaultPort=443,e}function kf(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||iU.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(o,a,n,u){for(var A=koe(a,n,u),p=0,h=e.requests.length;p=this.maxSockets){n.requests.push(u);return}n.createSocket(u,function(A){A.on("free",p),A.on("close",h),A.on("agentRemove",h),e.onSocket(A);function p(){n.emit("free",A,u)}function h(E){n.removeSocket(A),A.removeListener("free",p),A.removeListener("close",h),A.removeListener("agentRemove",h)}})};kf.prototype.createSocket=function(e,r){var o=this,a={};o.sockets.push(a);var n=sU({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),ch("making CONNECT request");var u=o.request(n);u.useChunkedEncodingByDefault=!1,u.once("response",A),u.once("upgrade",p),u.once("connect",h),u.once("error",E),u.end();function A(w){w.upgrade=!0}function p(w,D,x){process.nextTick(function(){h(w,D,x)})}function h(w,D,x){if(u.removeAllListeners(),D.removeAllListeners(),w.statusCode!==200){ch("tunneling socket could not be established, statusCode=%d",w.statusCode),D.destroy();var C=new Error("tunneling socket could not be established, statusCode="+w.statusCode);C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}if(x.length>0){ch("got illegal response body from proxy"),D.destroy();var C=new Error("got illegal response body from proxy");C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}return ch("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=D,r(D)}function E(w){u.removeAllListeners(),ch(`tunneling socket could not be established, cause=%s +`,w.message,w.stack);var D=new Error("tunneling socket could not be established, cause="+w.message);D.code="ECONNRESET",e.request.emit("error",D),o.removeSocket(a)}};kf.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var o=this.requests.shift();o&&this.createSocket(o,function(a){o.request.onSocket(a)})}};function xoe(t,e){var r=this;kf.prototype.createSocket.call(r,t,function(o){var a=t.request.getHeader("host"),n=sU({},r.options,{socket:o,servername:a?a.replace(/:.*$/,""):t.host}),u=Crt.connect(0,n);r.sockets[r.sockets.indexOf(o)]=u,e(u)})}function koe(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function sU(t){for(var e=1,r=arguments.length;e{Foe.exports=Qoe()});var Ff=_((Qf,Pb)=>{"use strict";Object.defineProperty(Qf,"__esModule",{value:!0});var Toe=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Srt(t){return Toe.includes(t)}var brt=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Toe];function xrt(t){return brt.includes(t)}var krt=["null","undefined","string","number","bigint","boolean","symbol"];function Qrt(t){return krt.includes(t)}function Ey(t){return e=>typeof e===t}var{toString:Noe}=Object.prototype,k1=t=>{let e=Noe.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&Se.domElement(t))return"HTMLElement";if(xrt(e))return e},ii=t=>e=>k1(e)===t;function Se(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Se.observable(t))return"Observable";if(Se.array(t))return"Array";if(Se.buffer(t))return"Buffer";let e=k1(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Se.undefined=Ey("undefined");Se.string=Ey("string");var Frt=Ey("number");Se.number=t=>Frt(t)&&!Se.nan(t);Se.bigint=Ey("bigint");Se.function_=Ey("function");Se.null_=t=>t===null;Se.class_=t=>Se.function_(t)&&t.toString().startsWith("class ");Se.boolean=t=>t===!0||t===!1;Se.symbol=Ey("symbol");Se.numericString=t=>Se.string(t)&&!Se.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));Se.array=(t,e)=>Array.isArray(t)?Se.function_(e)?t.every(e):!0:!1;Se.buffer=t=>{var e,r,o,a;return(a=(o=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||o===void 0?void 0:o.call(r,t))!==null&&a!==void 0?a:!1};Se.blob=t=>ii("Blob")(t);Se.nullOrUndefined=t=>Se.null_(t)||Se.undefined(t);Se.object=t=>!Se.null_(t)&&(typeof t=="object"||Se.function_(t));Se.iterable=t=>{var e;return Se.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};Se.asyncIterable=t=>{var e;return Se.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};Se.generator=t=>{var e,r;return Se.iterable(t)&&Se.function_((e=t)===null||e===void 0?void 0:e.next)&&Se.function_((r=t)===null||r===void 0?void 0:r.throw)};Se.asyncGenerator=t=>Se.asyncIterable(t)&&Se.function_(t.next)&&Se.function_(t.throw);Se.nativePromise=t=>ii("Promise")(t);var Rrt=t=>{var e,r;return Se.function_((e=t)===null||e===void 0?void 0:e.then)&&Se.function_((r=t)===null||r===void 0?void 0:r.catch)};Se.promise=t=>Se.nativePromise(t)||Rrt(t);Se.generatorFunction=ii("GeneratorFunction");Se.asyncGeneratorFunction=t=>k1(t)==="AsyncGeneratorFunction";Se.asyncFunction=t=>k1(t)==="AsyncFunction";Se.boundFunction=t=>Se.function_(t)&&!t.hasOwnProperty("prototype");Se.regExp=ii("RegExp");Se.date=ii("Date");Se.error=ii("Error");Se.map=t=>ii("Map")(t);Se.set=t=>ii("Set")(t);Se.weakMap=t=>ii("WeakMap")(t);Se.weakSet=t=>ii("WeakSet")(t);Se.int8Array=ii("Int8Array");Se.uint8Array=ii("Uint8Array");Se.uint8ClampedArray=ii("Uint8ClampedArray");Se.int16Array=ii("Int16Array");Se.uint16Array=ii("Uint16Array");Se.int32Array=ii("Int32Array");Se.uint32Array=ii("Uint32Array");Se.float32Array=ii("Float32Array");Se.float64Array=ii("Float64Array");Se.bigInt64Array=ii("BigInt64Array");Se.bigUint64Array=ii("BigUint64Array");Se.arrayBuffer=ii("ArrayBuffer");Se.sharedArrayBuffer=ii("SharedArrayBuffer");Se.dataView=ii("DataView");Se.enumCase=(t,e)=>Object.values(e).includes(t);Se.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;Se.urlInstance=t=>ii("URL")(t);Se.urlString=t=>{if(!Se.string(t))return!1;try{return new URL(t),!0}catch{return!1}};Se.truthy=t=>!!t;Se.falsy=t=>!t;Se.nan=t=>Number.isNaN(t);Se.primitive=t=>Se.null_(t)||Qrt(typeof t);Se.integer=t=>Number.isInteger(t);Se.safeInteger=t=>Number.isSafeInteger(t);Se.plainObject=t=>{if(Noe.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};Se.typedArray=t=>Srt(k1(t));var Trt=t=>Se.safeInteger(t)&&t>=0;Se.arrayLike=t=>!Se.nullOrUndefined(t)&&!Se.function_(t)&&Trt(t.length);Se.inRange=(t,e)=>{if(Se.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(Se.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var Nrt=1,Lrt=["innerHTML","ownerDocument","style","attributes","nodeValue"];Se.domElement=t=>Se.object(t)&&t.nodeType===Nrt&&Se.string(t.nodeName)&&!Se.plainObject(t)&&Lrt.every(e=>e in t);Se.observable=t=>{var e,r,o,a;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((a=(o=t)["@@observable"])===null||a===void 0?void 0:a.call(o)):!1};Se.nodeStream=t=>Se.object(t)&&Se.function_(t.pipe)&&!Se.observable(t);Se.infinite=t=>t===1/0||t===-1/0;var Loe=t=>e=>Se.integer(e)&&Math.abs(e%2)===t;Se.evenInteger=Loe(0);Se.oddInteger=Loe(1);Se.emptyArray=t=>Se.array(t)&&t.length===0;Se.nonEmptyArray=t=>Se.array(t)&&t.length>0;Se.emptyString=t=>Se.string(t)&&t.length===0;var Ort=t=>Se.string(t)&&!/\S/.test(t);Se.emptyStringOrWhitespace=t=>Se.emptyString(t)||Ort(t);Se.nonEmptyString=t=>Se.string(t)&&t.length>0;Se.nonEmptyStringAndNotWhitespace=t=>Se.string(t)&&!Se.emptyStringOrWhitespace(t);Se.emptyObject=t=>Se.object(t)&&!Se.map(t)&&!Se.set(t)&&Object.keys(t).length===0;Se.nonEmptyObject=t=>Se.object(t)&&!Se.map(t)&&!Se.set(t)&&Object.keys(t).length>0;Se.emptySet=t=>Se.set(t)&&t.size===0;Se.nonEmptySet=t=>Se.set(t)&&t.size>0;Se.emptyMap=t=>Se.map(t)&&t.size===0;Se.nonEmptyMap=t=>Se.map(t)&&t.size>0;Se.propertyKey=t=>Se.any([Se.string,Se.number,Se.symbol],t);Se.formData=t=>ii("FormData")(t);Se.urlSearchParams=t=>ii("URLSearchParams")(t);var Ooe=(t,e,r)=>{if(!Se.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};Se.any=(t,...e)=>(Se.array(t)?t:[t]).some(o=>Ooe(Array.prototype.some,o,e));Se.all=(t,...e)=>Ooe(Array.prototype.every,t,e);var Mt=(t,e,r,o={})=>{if(!t){let{multipleValues:a}=o,n=a?`received values of types ${[...new Set(r.map(u=>`\`${Se(u)}\``))].join(", ")}`:`received value of type \`${Se(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${n}.`)}};Qf.assert={undefined:t=>Mt(Se.undefined(t),"undefined",t),string:t=>Mt(Se.string(t),"string",t),number:t=>Mt(Se.number(t),"number",t),bigint:t=>Mt(Se.bigint(t),"bigint",t),function_:t=>Mt(Se.function_(t),"Function",t),null_:t=>Mt(Se.null_(t),"null",t),class_:t=>Mt(Se.class_(t),"Class",t),boolean:t=>Mt(Se.boolean(t),"boolean",t),symbol:t=>Mt(Se.symbol(t),"symbol",t),numericString:t=>Mt(Se.numericString(t),"string with a number",t),array:(t,e)=>{Mt(Se.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>Mt(Se.buffer(t),"Buffer",t),blob:t=>Mt(Se.blob(t),"Blob",t),nullOrUndefined:t=>Mt(Se.nullOrUndefined(t),"null or undefined",t),object:t=>Mt(Se.object(t),"Object",t),iterable:t=>Mt(Se.iterable(t),"Iterable",t),asyncIterable:t=>Mt(Se.asyncIterable(t),"AsyncIterable",t),generator:t=>Mt(Se.generator(t),"Generator",t),asyncGenerator:t=>Mt(Se.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>Mt(Se.nativePromise(t),"native Promise",t),promise:t=>Mt(Se.promise(t),"Promise",t),generatorFunction:t=>Mt(Se.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>Mt(Se.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>Mt(Se.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>Mt(Se.boundFunction(t),"Function",t),regExp:t=>Mt(Se.regExp(t),"RegExp",t),date:t=>Mt(Se.date(t),"Date",t),error:t=>Mt(Se.error(t),"Error",t),map:t=>Mt(Se.map(t),"Map",t),set:t=>Mt(Se.set(t),"Set",t),weakMap:t=>Mt(Se.weakMap(t),"WeakMap",t),weakSet:t=>Mt(Se.weakSet(t),"WeakSet",t),int8Array:t=>Mt(Se.int8Array(t),"Int8Array",t),uint8Array:t=>Mt(Se.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>Mt(Se.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>Mt(Se.int16Array(t),"Int16Array",t),uint16Array:t=>Mt(Se.uint16Array(t),"Uint16Array",t),int32Array:t=>Mt(Se.int32Array(t),"Int32Array",t),uint32Array:t=>Mt(Se.uint32Array(t),"Uint32Array",t),float32Array:t=>Mt(Se.float32Array(t),"Float32Array",t),float64Array:t=>Mt(Se.float64Array(t),"Float64Array",t),bigInt64Array:t=>Mt(Se.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>Mt(Se.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>Mt(Se.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>Mt(Se.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>Mt(Se.dataView(t),"DataView",t),enumCase:(t,e)=>Mt(Se.enumCase(t,e),"EnumCase",t),urlInstance:t=>Mt(Se.urlInstance(t),"URL",t),urlString:t=>Mt(Se.urlString(t),"string with a URL",t),truthy:t=>Mt(Se.truthy(t),"truthy",t),falsy:t=>Mt(Se.falsy(t),"falsy",t),nan:t=>Mt(Se.nan(t),"NaN",t),primitive:t=>Mt(Se.primitive(t),"primitive",t),integer:t=>Mt(Se.integer(t),"integer",t),safeInteger:t=>Mt(Se.safeInteger(t),"integer",t),plainObject:t=>Mt(Se.plainObject(t),"plain object",t),typedArray:t=>Mt(Se.typedArray(t),"TypedArray",t),arrayLike:t=>Mt(Se.arrayLike(t),"array-like",t),domElement:t=>Mt(Se.domElement(t),"HTMLElement",t),observable:t=>Mt(Se.observable(t),"Observable",t),nodeStream:t=>Mt(Se.nodeStream(t),"Node.js Stream",t),infinite:t=>Mt(Se.infinite(t),"infinite number",t),emptyArray:t=>Mt(Se.emptyArray(t),"empty array",t),nonEmptyArray:t=>Mt(Se.nonEmptyArray(t),"non-empty array",t),emptyString:t=>Mt(Se.emptyString(t),"empty string",t),emptyStringOrWhitespace:t=>Mt(Se.emptyStringOrWhitespace(t),"empty string or whitespace",t),nonEmptyString:t=>Mt(Se.nonEmptyString(t),"non-empty string",t),nonEmptyStringAndNotWhitespace:t=>Mt(Se.nonEmptyStringAndNotWhitespace(t),"non-empty string and not whitespace",t),emptyObject:t=>Mt(Se.emptyObject(t),"empty object",t),nonEmptyObject:t=>Mt(Se.nonEmptyObject(t),"non-empty object",t),emptySet:t=>Mt(Se.emptySet(t),"empty set",t),nonEmptySet:t=>Mt(Se.nonEmptySet(t),"non-empty set",t),emptyMap:t=>Mt(Se.emptyMap(t),"empty map",t),nonEmptyMap:t=>Mt(Se.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>Mt(Se.propertyKey(t),"PropertyKey",t),formData:t=>Mt(Se.formData(t),"FormData",t),urlSearchParams:t=>Mt(Se.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>Mt(Se.evenInteger(t),"even integer",t),oddInteger:t=>Mt(Se.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>Mt(Se.directInstanceOf(t,e),"T",t),inRange:(t,e)=>Mt(Se.inRange(t,e),"in range",t),any:(t,...e)=>Mt(Se.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>Mt(Se.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(Se,{class:{value:Se.class_},function:{value:Se.function_},null:{value:Se.null_}});Object.defineProperties(Qf.assert,{class:{value:Qf.assert.class_},function:{value:Qf.assert.function_},null:{value:Qf.assert.null_}});Qf.default=Se;Pb.exports=Se;Pb.exports.default=Se;Pb.exports.assert=Qf.assert});var Moe=_((GNt,oU)=>{"use strict";var Sb=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},bb=class t{static fn(e){return(...r)=>new t((o,a,n)=>{r.push(n),e(...r).then(o,a)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,o)=>{this._reject=o;let a=A=>{this._isPending=!1,r(A)},n=A=>{this._isPending=!1,o(A)},u=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(u,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),e(a,n,u)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Sb(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(bb.prototype,Promise.prototype);oU.exports=bb;oU.exports.CancelError=Sb});var Uoe=_((lU,cU)=>{"use strict";Object.defineProperty(lU,"__esModule",{value:!0});function Mrt(t){return t.encrypted}var aU=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let o=typeof r.connect=="function",a=typeof r.secureConnect=="function",n=typeof r.close=="function",u=()=>{o&&r.connect(),Mrt(t)&&a&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),n&&t.once("close",r.close)};t.writable&&!t.connecting?u():t.connecting?t.once("connect",u):t.destroyed&&n&&r.close(t._hadError)};lU.default=aU;cU.exports=aU;cU.exports.default=aU});var _oe=_((AU,fU)=>{"use strict";Object.defineProperty(AU,"__esModule",{value:!0});var Urt=Uoe(),_rt=Number(process.versions.node.split(".")[0]),uU=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=u=>{let A=u.emit.bind(u);u.emit=(p,...h)=>(p==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,u.emit=A),A(p,...h))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||_rt>=13)&&(e.phases.total=Date.now()-e.start)});let o=u=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let A=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};u.prependOnceListener("lookup",A),Urt.default(u,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(u.removeListener("lookup",A),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?o(t.socket):t.prependOnceListener("socket",o);let a=()=>{var u;e.upload=Date.now(),e.phases.request=e.upload-(u=e.secureConnect,u??e.connect)};return(typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))?a():t.prependOnceListener("finish",a),t.prependOnceListener("response",u=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,u.timings=e,r(u),u.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};AU.default=uU;fU.exports=uU;fU.exports.default=uU});var Koe=_((WNt,gU)=>{"use strict";var{V4MAPPED:Hrt,ADDRCONFIG:qrt,ALL:Yoe,promises:{Resolver:Hoe},lookup:jrt}=ve("dns"),{promisify:pU}=ve("util"),Grt=ve("os"),Cy=Symbol("cacheableLookupCreateConnection"),hU=Symbol("cacheableLookupInstance"),qoe=Symbol("expires"),Wrt=typeof Yoe=="number",joe=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Yrt=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Goe=()=>{let t=!1,e=!1;for(let r of Object.values(Grt.networkInterfaces()))for(let o of r)if(!o.internal&&(o.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},Krt=t=>Symbol.iterator in t,Woe={ttl:!0},Vrt={all:!0},xb=class{constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:o=3600,errorTtl:a=.15,resolver:n=new Hoe,lookup:u=jrt}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=e,this._resolver=n,this._dnsLookup=pU(u),this._resolver instanceof Hoe?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=pU(this._resolver.resolve4.bind(this._resolver)),this._resolve6=pU(this._resolver.resolve6.bind(this._resolver))),this._iface=Goe(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,o<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},o*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,o){if(typeof r=="function"?(o=r,r={}):typeof r=="number"&&(r={family:r}),!o)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(a=>{r.all?o(null,a):o(null,a.address,a.family,a.expires,a.ttl)},o)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let o=await this.query(e);if(r.family===6){let a=o.filter(n=>n.family===6);r.hints&Hrt&&(Wrt&&r.hints&Yoe||a.length===0)?Yrt(o):o=a}else r.family===4&&(o=o.filter(a=>a.family===4));if(r.hints&qrt){let{_iface:a}=this;o=o.filter(n=>n.family===6?a.has6:a.has4)}if(o.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${e}`);throw a.code="ENOTFOUND",a.hostname=e,a}return r.all?o:o[0]}async query(e){let r=await this._cache.get(e);if(!r){let o=this._pending[e];if(o)r=await o;else{let a=this.queryAndCache(e);this._pending[e]=a,r=await a}}return r=r.map(o=>({...o})),r}async _resolve(e){let r=async h=>{try{return await h}catch(E){if(E.code==="ENODATA"||E.code==="ENOTFOUND")return[];throw E}},[o,a]=await Promise.all([this._resolve4(e,Woe),this._resolve6(e,Woe)].map(h=>r(h))),n=0,u=0,A=0,p=Date.now();for(let h of o)h.family=4,h.expires=p+h.ttl*1e3,n=Math.max(n,h.ttl);for(let h of a)h.family=6,h.expires=p+h.ttl*1e3,u=Math.max(u,h.ttl);return o.length>0?a.length>0?A=Math.min(n,u):A=n:A=u,{entries:[...o,...a],cacheTtl:A}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,r,o){if(this.maxTtl>0&&o>0){o=Math.min(o,this.maxTtl)*1e3,r[qoe]=Date.now()+o;try{await this._cache.set(e,r,o)}catch(a){this.lookupAsync=async()=>{let n=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw n.cause=a,n}}Krt(this._cache)&&this._tick(o)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Vrt);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let o=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,o),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e{this._nextRemovalTime=!1;let o=1/0,a=Date.now();for(let[n,u]of this._cache){let A=u[qoe];a>=A?this._cache.delete(n):A("lookup"in r||(r.lookup=this.lookup),e[Cy](r,o))}uninstall(e){if(joe(e),e[Cy]){if(e[hU]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Cy],delete e[Cy],delete e[hU]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Goe(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};gU.exports=xb;gU.exports.default=xb});var zoe=_((YNt,dU)=>{"use strict";var Jrt=typeof URL>"u"?ve("url").URL:URL,zrt="text/plain",Xrt="us-ascii",Voe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),Zrt=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let o=r[1].split(";"),a=r[2],n=e?"":r[3],u=!1;o[o.length-1]==="base64"&&(o.pop(),u=!0);let A=(o.shift()||"").toLowerCase(),h=[...o.map(E=>{let[w,D=""]=E.split("=").map(x=>x.trim());return w==="charset"&&(D=D.toLowerCase(),D===Xrt)?"":`${w}${D?`=${D}`:""}`}).filter(Boolean)];return u&&h.push("base64"),(h.length!==0||A&&A!==zrt)&&h.unshift(A),`data:${h.join(";")},${u?a.trim():a}${n?`#${n}`:""}`},Joe=(t,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return Zrt(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new Jrt(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash&&(a.hash=""),a.pathname&&(a.pathname=a.pathname.replace(/((?!:).|^)\/{2,}/g,(n,u)=>/^(?!\/)/g.test(u)?`${u}/`:"/")),a.pathname&&(a.pathname=decodeURI(a.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let n=a.pathname.split("/"),u=n[n.length-1];Voe(u,e.removeDirectoryIndex)&&(n=n.slice(0,n.length-1),a.pathname=n.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let n of[...a.searchParams.keys()])Voe(n,e.removeQueryParameters)&&a.searchParams.delete(n);return e.sortQueryParameters&&a.searchParams.sort(),e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,"")),t=a.toString(),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};dU.exports=Joe;dU.exports.default=Joe});var $oe=_((KNt,Zoe)=>{Zoe.exports=Xoe;function Xoe(t,e){if(t&&e)return Xoe(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(o){r[o]=t[o]}),r;function r(){for(var o=new Array(arguments.length),a=0;a{var eae=$oe();mU.exports=eae(kb);mU.exports.strict=eae(tae);kb.proto=kb(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return kb(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return tae(this)},configurable:!0})});function kb(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function tae(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var EU=_((JNt,nae)=>{var $rt=yU(),ent=function(){},tnt=function(t){return t.setHeader&&typeof t.abort=="function"},rnt=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},rae=function(t,e,r){if(typeof e=="function")return rae(t,null,e);e||(e={}),r=$rt(r||ent);var o=t._writableState,a=t._readableState,n=e.readable||e.readable!==!1&&t.readable,u=e.writable||e.writable!==!1&&t.writable,A=function(){t.writable||p()},p=function(){u=!1,n||r.call(t)},h=function(){n=!1,u||r.call(t)},E=function(C){r.call(t,C?new Error("exited with error code: "+C):null)},w=function(C){r.call(t,C)},D=function(){if(n&&!(a&&a.ended))return r.call(t,new Error("premature close"));if(u&&!(o&&o.ended))return r.call(t,new Error("premature close"))},x=function(){t.req.on("finish",p)};return tnt(t)?(t.on("complete",p),t.on("abort",D),t.req?x():t.on("request",x)):u&&!o&&(t.on("end",A),t.on("close",A)),rnt(t)&&t.on("exit",E),t.on("end",h),t.on("finish",p),e.error!==!1&&t.on("error",w),t.on("close",D),function(){t.removeListener("complete",p),t.removeListener("abort",D),t.removeListener("request",x),t.req&&t.req.removeListener("finish",p),t.removeListener("end",A),t.removeListener("close",A),t.removeListener("finish",p),t.removeListener("exit",E),t.removeListener("end",h),t.removeListener("error",w),t.removeListener("close",D)}};nae.exports=rae});var oae=_((zNt,sae)=>{var nnt=yU(),int=EU(),CU=ve("fs"),Q1=function(){},snt=/^v?\.0/.test(process.version),Qb=function(t){return typeof t=="function"},ont=function(t){return!snt||!CU?!1:(t instanceof(CU.ReadStream||Q1)||t instanceof(CU.WriteStream||Q1))&&Qb(t.close)},ant=function(t){return t.setHeader&&Qb(t.abort)},lnt=function(t,e,r,o){o=nnt(o);var a=!1;t.on("close",function(){a=!0}),int(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,ont(t))return t.close(Q1);if(ant(t))return t.abort();if(Qb(t.destroy))return t.destroy();o(u||new Error("stream was destroyed"))}}},iae=function(t){t()},cnt=function(t,e){return t.pipe(e)},unt=function(){var t=Array.prototype.slice.call(arguments),e=Qb(t[t.length-1]||Q1)&&t.pop()||Q1;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,o=t.map(function(a,n){var u=n0;return lnt(a,u,A,function(p){r||(r=p),p&&o.forEach(iae),!u&&(o.forEach(iae),e(r))})});return t.reduce(cnt)};sae.exports=unt});var lae=_((XNt,aae)=>{"use strict";var{PassThrough:Ant}=ve("stream");aae.exports=t=>{t={...t};let{array:e}=t,{encoding:r}=t,o=r==="buffer",a=!1;e?a=!(r||o):r=r||"utf8",o&&(r=null);let n=new Ant({objectMode:a});r&&n.setEncoding(r);let u=0,A=[];return n.on("data",p=>{A.push(p),a?u=A.length:u+=p.length}),n.getBufferedValue=()=>e?A:o?Buffer.concat(A,u):A.join(""),n.getBufferedLength=()=>u,n}});var cae=_((ZNt,Iy)=>{"use strict";var fnt=oae(),pnt=lae(),Fb=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Rb(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:r}=e,o;return await new Promise((a,n)=>{let u=A=>{A&&(A.bufferedData=o.getBufferedValue()),n(A)};o=fnt(t,pnt(e),A=>{if(A){u(A);return}a()}),o.on("data",()=>{o.getBufferedLength()>r&&u(new Fb)})}),o.getBufferedValue()}Iy.exports=Rb;Iy.exports.default=Rb;Iy.exports.buffer=(t,e)=>Rb(t,{...e,encoding:"buffer"});Iy.exports.array=(t,e)=>Rb(t,{...e,array:!0});Iy.exports.MaxBufferError=Fb});var Aae=_((eLt,uae)=>{"use strict";var hnt=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),gnt=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),dnt=new Set([500,502,503,504]),mnt={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},ynt={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Sg(t){let e=parseInt(t,10);return isFinite(e)?e:0}function Ent(t){return t?dnt.has(t.status):!0}function IU(t){let e={};if(!t)return e;let r=t.trim().split(/,/);for(let o of r){let[a,n]=o.split(/=/,2);e[a.trim()]=n===void 0?!0:n.trim().replace(/^"|"$/g,"")}return e}function Cnt(t){let e=[];for(let r in t){let o=t[r];e.push(o===!0?r:r+"="+o)}if(e.length)return e.join(", ")}uae.exports=class{constructor(e,r,{shared:o,cacheHeuristic:a,immutableMinTimeToLive:n,ignoreCargoCult:u,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=o!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=n!==void 0?n:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=IU(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=IU(e.headers["cache-control"]),u&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":Cnt(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&gnt.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||hnt.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=IU(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let o of r)if(e.headers[o]!==this._reqHeaders[o])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let o in e)mnt[o]||(r[o]=e[o]);if(e.connection){let o=e.connection.trim().split(/\s*,\s*/);for(let a of o)delete r[a]}if(r.warning){let o=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));o.length?r.warning=o.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){return Sg(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Sg(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Sg(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let o=Date.parse(this._resHeaders.expires);return Number.isNaN(o)||oo)return Math.max(e,(r-o)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),r=e+Sg(this._rescc["stale-if-error"]),o=e+Sg(this._rescc["stale-while-revalidate"]);return Math.max(0,e,r,o)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Sg(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Sg(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(n=>!/^\s*W\//.test(n));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Ent(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let o=!1;if(r.status!==void 0&&r.status!=304?o=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?o=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?o=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?o=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(o=!0),!o)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let a={};for(let u in this._resHeaders)a[u]=u in r.headers&&!ynt[u]?r.headers[u]:this._resHeaders[u];let n=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(e,n,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Tb=_((tLt,fae)=>{"use strict";fae.exports=t=>{let e={};for(let[r,o]of Object.entries(t))e[r.toLowerCase()]=o;return e}});var hae=_((rLt,pae)=>{"use strict";var Int=ve("stream").Readable,wnt=Tb(),wU=class extends Int{constructor(e,r,o,a){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(o instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=wnt(r),this.body=o,this.url=a}_read(){this.push(this.body),this.push(null)}};pae.exports=wU});var dae=_((nLt,gae)=>{"use strict";var Bnt=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];gae.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(Bnt));for(let o of r)o in e||(e[o]=typeof t[o]=="function"?t[o].bind(t):t[o])}});var yae=_((iLt,mae)=>{"use strict";var vnt=ve("stream").PassThrough,Dnt=dae(),Pnt=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new vnt;return Dnt(t,e),t.pipe(e)};mae.exports=Pnt});var Eae=_(BU=>{BU.stringify=function t(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",o=Array.isArray(e);r=o?"[":"{";var a=!0;for(var n in e){var u=typeof e[n]=="function"||!o&&typeof e[n]>"u";Object.hasOwnProperty.call(e,n)&&!u&&(a||(r+=","),a=!1,o?e[n]==null?r+="null":r+=t(e[n]):e[n]!==void 0&&(r+=t(n)+":"+t(e[n])))}return r+=o?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};BU.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var Bae=_((oLt,wae)=>{"use strict";var Snt=ve("events"),Cae=Eae(),bnt=t=>{let e={redis:"@keyv/redis",rediss:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql",etcd:"@keyv/etcd",offline:"@keyv/offline",tiered:"@keyv/tiered"};if(t.adapter||t.uri){let r=t.adapter||/^[^:+]*/.exec(t.uri)[0];return new(ve(e[r]))(t)}return new Map},Iae=["sqlite","postgres","mysql","mongo","redis","tiered"],vU=class extends Snt{constructor(e,{emitErrors:r=!0,...o}={}){if(super(),this.opts={namespace:"keyv",serialize:Cae.stringify,deserialize:Cae.parse,...typeof e=="string"?{uri:e}:e,...o},!this.opts.store){let n={...this.opts};this.opts.store=bnt(n)}if(this.opts.compression){let n=this.opts.compression;this.opts.serialize=n.serialize.bind(n),this.opts.deserialize=n.deserialize.bind(n)}typeof this.opts.store.on=="function"&&r&&this.opts.store.on("error",n=>this.emit("error",n)),this.opts.store.namespace=this.opts.namespace;let a=n=>async function*(){for await(let[u,A]of typeof n=="function"?n(this.opts.store.namespace):n){let p=await this.opts.deserialize(A);if(!(this.opts.store.namespace&&!u.includes(this.opts.store.namespace))){if(typeof p.expires=="number"&&Date.now()>p.expires){this.delete(u);continue}yield[this._getKeyUnprefix(u),p.value]}}};typeof this.opts.store[Symbol.iterator]=="function"&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator=="function"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return Iae.includes(this.opts.store.opts.dialect)||Iae.findIndex(e=>this.opts.store.opts.url.includes(e))>=0}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}_getKeyPrefixArray(e){return e.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(e){return e.split(":").splice(1).join(":")}get(e,r){let{store:o}=this.opts,a=Array.isArray(e),n=a?this._getKeyPrefixArray(e):this._getKeyPrefix(e);if(a&&o.getMany===void 0){let u=[];for(let A of n)u.push(Promise.resolve().then(()=>o.get(A)).then(p=>typeof p=="string"?this.opts.deserialize(p):this.opts.compression?this.opts.deserialize(p):p).then(p=>{if(p!=null)return typeof p.expires=="number"&&Date.now()>p.expires?this.delete(A).then(()=>{}):r&&r.raw?p:p.value}));return Promise.allSettled(u).then(A=>{let p=[];for(let h of A)p.push(h.value);return p})}return Promise.resolve().then(()=>a?o.getMany(n):o.get(n)).then(u=>typeof u=="string"?this.opts.deserialize(u):this.opts.compression?this.opts.deserialize(u):u).then(u=>{if(u!=null)return a?u.map((A,p)=>{if(typeof A=="string"&&(A=this.opts.deserialize(A)),A!=null){if(typeof A.expires=="number"&&Date.now()>A.expires){this.delete(e[p]).then(()=>{});return}return r&&r.raw?A:A.value}}):typeof u.expires=="number"&&Date.now()>u.expires?this.delete(e).then(()=>{}):r&&r.raw?u:u.value})}set(e,r,o){let a=this._getKeyPrefix(e);typeof o>"u"&&(o=this.opts.ttl),o===0&&(o=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let u=typeof o=="number"?Date.now()+o:null;return typeof r=="symbol"&&this.emit("error","symbol cannot be serialized"),r={value:r,expires:u},this.opts.serialize(r)}).then(u=>n.set(a,u,o)).then(()=>!0)}delete(e){let{store:r}=this.opts;if(Array.isArray(e)){let a=this._getKeyPrefixArray(e);if(r.deleteMany===void 0){let n=[];for(let u of a)n.push(r.delete(u));return Promise.allSettled(n).then(u=>u.every(A=>A.value===!0))}return Promise.resolve().then(()=>r.deleteMany(a))}let o=this._getKeyPrefix(e);return Promise.resolve().then(()=>r.delete(o))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}has(e){let r=this._getKeyPrefix(e),{store:o}=this.opts;return Promise.resolve().then(async()=>typeof o.has=="function"?o.has(r):await o.get(r)!==void 0)}disconnect(){let{store:e}=this.opts;if(typeof e.disconnect=="function")return e.disconnect()}};wae.exports=vU});var Pae=_((lLt,Dae)=>{"use strict";var xnt=ve("events"),Nb=ve("url"),knt=zoe(),Qnt=cae(),DU=Aae(),vae=hae(),Fnt=Tb(),Rnt=yae(),Tnt=Bae(),F1=class t{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Tnt({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,o)=>{let a;if(typeof r=="string")a=PU(Nb.parse(r)),r={};else if(r instanceof Nb.URL)a=PU(Nb.parse(r.toString())),r={};else{let[w,...D]=(r.path||"").split("?"),x=D.length>0?`?${D.join("?")}`:"";a=PU({...r,pathname:w,search:x})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...Nnt(a)},r.headers=Fnt(r.headers);let n=new xnt,u=knt(Nb.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${u}`,p=!1,h=!1,E=w=>{h=!0;let D=!1,x,C=new Promise(L=>{x=()=>{D||(D=!0,L())}}),T=L=>{if(p&&!w.forceRefresh){L.status=L.statusCode;let J=DU.fromObject(p.cachePolicy).revalidatedPolicy(w,L);if(!J.modified){let te=J.policy.responseHeaders();L=new vae(p.statusCode,te,p.body,p.url),L.cachePolicy=J.policy,L.fromCache=!0}}L.fromCache||(L.cachePolicy=new DU(w,L,w),L.fromCache=!1);let U;w.cache&&L.cachePolicy.storable()?(U=Rnt(L),(async()=>{try{let J=Qnt.buffer(L);if(await Promise.race([C,new Promise(ue=>L.once("end",ue))]),D)return;let te=await J,le={cachePolicy:L.cachePolicy.toObject(),url:L.url,statusCode:L.fromCache?p.statusCode:L.statusCode,body:te},ce=w.strictTtl?L.cachePolicy.timeToLive():void 0;w.maxTtl&&(ce=ce?Math.min(ce,w.maxTtl):w.maxTtl),await this.cache.set(A,le,ce)}catch(J){n.emit("error",new t.CacheError(J))}})()):w.cache&&p&&(async()=>{try{await this.cache.delete(A)}catch(J){n.emit("error",new t.CacheError(J))}})(),n.emit("response",U||L),typeof o=="function"&&o(U||L)};try{let L=e(w,T);L.once("error",x),L.once("abort",x),n.emit("request",L)}catch(L){n.emit("error",new t.RequestError(L))}};return(async()=>{let w=async x=>{await Promise.resolve();let C=x.cache?await this.cache.get(A):void 0;if(typeof C>"u")return E(x);let T=DU.fromObject(C.cachePolicy);if(T.satisfiesWithoutRevalidation(x)&&!x.forceRefresh){let L=T.responseHeaders(),U=new vae(C.statusCode,L,C.body,C.url);U.cachePolicy=T,U.fromCache=!0,n.emit("response",U),typeof o=="function"&&o(U)}else p=C,x.headers=T.revalidationHeaders(x),E(x)},D=x=>n.emit("error",new t.CacheError(x));this.cache.once("error",D),n.on("response",()=>this.cache.removeListener("error",D));try{await w(r)}catch(x){r.automaticFailover&&!h&&E(r),n.emit("error",new t.CacheError(x))}})(),n}}};function Nnt(t){let e={...t};return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function PU(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}F1.RequestError=class extends Error{constructor(t){super(t.message),this.name="RequestError",Object.assign(this,t)}};F1.CacheError=class extends Error{constructor(t){super(t.message),this.name="CacheError",Object.assign(this,t)}};Dae.exports=F1});var bae=_((ALt,Sae)=>{"use strict";var Lnt=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];Sae.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(Lnt)),o={};for(let a of r)a in e||(o[a]={get(){let n=t[a];return typeof n=="function"?n.bind(t):n},set(n){t[a]=n},enumerable:!0,configurable:!1});return Object.defineProperties(e,o),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var kae=_((fLt,xae)=>{"use strict";var{Transform:Ont,PassThrough:Mnt}=ve("stream"),SU=ve("zlib"),Unt=bae();xae.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof SU.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let o=!0,a=new Ont({transform(A,p,h){o=!1,h(null,A)},flush(A){A()}}),n=new Mnt({autoDestroy:!1,destroy(A,p){t.destroy(),p(A)}}),u=r?SU.createBrotliDecompress():SU.createUnzip();return u.once("error",A=>{if(o&&!t.readable){n.end();return}n.destroy(A)}),Unt(t,n),t.pipe(a).pipe(u).pipe(n),n}});var xU=_((pLt,Qae)=>{"use strict";var bU=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[o,a]of this.oldCache.entries())this.onEviction(o,a);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};Qae.exports=bU});var QU=_((hLt,Nae)=>{"use strict";var _nt=ve("events"),Hnt=ve("tls"),qnt=ve("http2"),jnt=xU(),ea=Symbol("currentStreamsCount"),Fae=Symbol("request"),Jl=Symbol("cachedOriginSet"),wy=Symbol("gracefullyClosing"),Gnt=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Wnt=(t,e,r)=>{let o=0,a=t.length;for(;o>>1;r(t[n],e)?o=n+1:a=n}return o},Ynt=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,kU=(t,e)=>{for(let r of t)r[Jl].lengthe[Jl].includes(o))&&r[ea]+e[ea]<=e.remoteSettings.maxConcurrentStreams&&Tae(r)},Knt=(t,e)=>{for(let r of t)e[Jl].lengthr[Jl].includes(o))&&e[ea]+r[ea]<=r.remoteSettings.maxConcurrentStreams&&Tae(e)},Rae=({agent:t,isFree:e})=>{let r={};for(let o in t.sessions){let n=t.sessions[o].filter(u=>{let A=u[bg.kCurrentStreamsCount]{t[wy]=!0,t[ea]===0&&t.close()},bg=class t extends _nt{constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:o=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=o,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new jnt({maxSize:a})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let o of Gnt)e[o]&&(r+=`:${e[o]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let o=this.queue[e][r];this._sessionsCount{Array.isArray(o)?(o=[...o],a()):o=[{resolve:a,reject:n}];let u=this.normalizeOptions(r),A=t.normalizeOrigin(e,r&&r.servername);if(A===void 0){for(let{reject:E}of o)E(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(u in this.sessions){let E=this.sessions[u],w=-1,D=-1,x;for(let C of E){let T=C.remoteSettings.maxConcurrentStreams;if(T=T||C[wy]||C.destroyed)continue;x||(w=T),L>D&&(x=C,D=L)}}if(x){if(o.length!==1){for(let{reject:C}of o){let T=new Error(`Expected the length of listeners to be 1, got ${o.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);C(T)}return}o[0].resolve(x);return}}if(u in this.queue){if(A in this.queue[u]){this.queue[u][A].listeners.push(...o),this._tryToCreateNewSession(u,A);return}}else this.queue[u]={};let p=()=>{u in this.queue&&this.queue[u][A]===h&&(delete this.queue[u][A],Object.keys(this.queue[u]).length===0&&delete this.queue[u])},h=()=>{let E=`${A}:${u}`,w=!1;try{let D=qnt.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});D[ea]=0,D[wy]=!1;let x=()=>D[ea]{this.tlsSessionCache.set(E,L)}),D.once("error",L=>{for(let{reject:U}of o)U(L);this.tlsSessionCache.delete(E)}),D.setTimeout(this.timeout,()=>{D.destroy()}),D.once("close",()=>{if(w){C&&this._freeSessionsCount--,this._sessionsCount--;let L=this.sessions[u];L.splice(L.indexOf(D),1),L.length===0&&delete this.sessions[u]}else{let L=new Error("Session closed without receiving a SETTINGS frame");L.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:U}of o)U(L);p()}this._tryToCreateNewSession(u,A)});let T=()=>{if(!(!(u in this.queue)||!x())){for(let L of D[Jl])if(L in this.queue[u]){let{listeners:U}=this.queue[u][L];for(;U.length!==0&&x();)U.shift().resolve(D);let J=this.queue[u];if(J[L].listeners.length===0&&(delete J[L],Object.keys(J).length===0)){delete this.queue[u];break}if(!x())break}}};D.on("origin",()=>{D[Jl]=D.originSet,x()&&(T(),kU(this.sessions[u],D))}),D.once("remoteSettings",()=>{if(D.ref(),D.unref(),this._sessionsCount++,h.destroyed){let L=new Error("Agent has been destroyed");for(let U of o)U.reject(L);D.destroy();return}D[Jl]=D.originSet;{let L=this.sessions;if(u in L){let U=L[u];U.splice(Wnt(U,D,Ynt),0,D)}else L[u]=[D]}this._freeSessionsCount+=1,w=!0,this.emit("session",D),T(),p(),D[ea]===0&&this._freeSessionsCount>this.maxFreeSessions&&D.close(),o.length!==0&&(this.getSession(A,r,o),o.length=0),D.on("remoteSettings",()=>{T(),kU(this.sessions[u],D)})}),D[Fae]=D.request,D.request=(L,U)=>{if(D[wy])throw new Error("The session is gracefully closing. No new streams are allowed.");let J=D[Fae](L,U);return D.ref(),++D[ea],D[ea]===D.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,J.once("close",()=>{if(C=x(),--D[ea],!D.destroyed&&!D.closed&&(Knt(this.sessions[u],D),x()&&!D.closed)){C||(this._freeSessionsCount++,C=!0);let te=D[ea]===0;te&&D.unref(),te&&(this._freeSessionsCount>this.maxFreeSessions||D[wy])?D.close():(kU(this.sessions[u],D),T())}}),J}}catch(D){for(let x of o)x.reject(D);p()}};h.listeners=o,h.completed=!1,h.destroyed=!1,this.queue[u][A]=h,this._tryToCreateNewSession(u,A)})}request(e,r,o,a){return new Promise((n,u)=>{this.getSession(e,r,[{reject:u,resolve:A=>{try{n(A.request(o,a))}catch(p){u(p)}}}])})}createConnection(e,r){return t.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let o=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),Hnt.connect(o,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[ea]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let o of r)o.destroy(e);for(let r of Object.values(this.queue))for(let o of Object.values(r))o.destroyed=!0;this.queue={}}get freeSessions(){return Rae({agent:this,isFree:!0})}get busySessions(){return Rae({agent:this,isFree:!1})}};bg.kCurrentStreamsCount=ea;bg.kGracefullyClosing=wy;Nae.exports={Agent:bg,globalAgent:new bg}});var RU=_((gLt,Lae)=>{"use strict";var{Readable:Vnt}=ve("stream"),FU=class extends Vnt{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Lae.exports=FU});var TU=_((dLt,Oae)=>{"use strict";Oae.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var Uae=_((mLt,Mae)=>{"use strict";Mae.exports=(t,e,r)=>{for(let o of r)t.on(o,(...a)=>e.emit(o,...a))}});var Hae=_((yLt,_ae)=>{"use strict";_ae.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var jae=_((CLt,qae)=>{"use strict";var By=(t,e,r)=>{qae.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${e}]`,this.code=e}}};By(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],o=Array.isArray(r);return o&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${o?"one of":"of"} type ${r}. Received ${typeof t[2]}`});By(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);By(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);By(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);By(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);By(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var UU=_((ILt,zae)=>{"use strict";var Jnt=ve("http2"),{Writable:znt}=ve("stream"),{Agent:Gae,globalAgent:Xnt}=QU(),Znt=RU(),$nt=TU(),eit=Uae(),tit=Hae(),{ERR_INVALID_ARG_TYPE:NU,ERR_INVALID_PROTOCOL:rit,ERR_HTTP_HEADERS_SENT:Wae,ERR_INVALID_HTTP_TOKEN:nit,ERR_HTTP_INVALID_HEADER_VALUE:iit,ERR_INVALID_CHAR:sit}=jae(),{HTTP2_HEADER_STATUS:Yae,HTTP2_HEADER_METHOD:Kae,HTTP2_HEADER_PATH:Vae,HTTP2_METHOD_CONNECT:oit}=Jnt.constants,vo=Symbol("headers"),LU=Symbol("origin"),OU=Symbol("session"),Jae=Symbol("options"),Lb=Symbol("flushedHeaders"),R1=Symbol("jobs"),ait=/^[\^`\-\w!#$%&*+.|~]+$/,lit=/[^\t\u0020-\u007E\u0080-\u00FF]/,MU=class extends znt{constructor(e,r,o){super({autoDestroy:!1});let a=typeof e=="string"||e instanceof URL;if(a&&(e=$nt(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(o=r,r=a?e:{...e}):r={...e,...r},r.h2session)this[OU]=r.h2session;else if(r.agent===!1)this.agent=new Gae({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new Gae({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=Xnt;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new NU("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new rit(r.protocol,"https:");let n=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,u=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[vo]=Object.create(null),this[R1]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[p,h]of Object.entries(r.headers))this.setHeader(p,h);r.auth&&!("authorization"in this[vo])&&(this[vo].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[Jae]=r,n===443?(this[LU]=`https://${u}`,":authority"in this[vo]||(this[vo][":authority"]=u)):(this[LU]=`https://${u}:${n}`,":authority"in this[vo]||(this[vo][":authority"]=`${u}:${n}`)),A&&this.setTimeout(A),o&&this.once("response",o),this[Lb]=!1}get method(){return this[vo][Kae]}set method(e){e&&(this[vo][Kae]=e.toUpperCase())}get path(){return this[vo][Vae]}set path(e){e&&(this[vo][Vae]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,o){if(this._mustNotHaveABody){o(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(e,r,o);this._request?a():this[R1].push(a)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[R1].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[Lb]||this.destroyed)return;this[Lb]=!0;let e=this.method===oit,r=o=>{if(this._request=o,this.destroyed){o.destroy();return}e||eit(o,this,["timeout","continue","close","error"]);let a=u=>(...A)=>{!this.writable&&!this.destroyed?u(...A):this.once("finish",()=>{u(...A)})};o.once("response",a((u,A,p)=>{let h=new Znt(this.socket,o.readableHighWaterMark);this.res=h,h.req=this,h.statusCode=u[Yae],h.headers=u,h.rawHeaders=p,h.once("end",()=>{this.aborted?(h.aborted=!0,h.emit("aborted")):(h.complete=!0,h.socket=null,h.connection=null)}),e?(h.upgrade=!0,this.emit("connect",h,o,Buffer.alloc(0))?this.emit("close"):o.destroy()):(o.on("data",E=>{!h._dumped&&!h.push(E)&&o.pause()}),o.once("end",()=>{h.push(null)}),this.emit("response",h)||h._dump())})),o.once("headers",a(u=>this.emit("information",{statusCode:u[Yae]}))),o.once("trailers",a((u,A,p)=>{let{res:h}=this;h.trailers=u,h.rawTrailers=p}));let{socket:n}=o.session;this.socket=n,this.connection=n;for(let u of this[R1])u();this.emit("socket",this.socket)};if(this[OU])try{r(this[OU].request(this[vo]))}catch(o){this.emit("error",o)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[LU],this[Jae],this[vo]))}catch(o){this.emit("error",o)}}}getHeader(e){if(typeof e!="string")throw new NU("name","string",e);return this[vo][e.toLowerCase()]}get headersSent(){return this[Lb]}removeHeader(e){if(typeof e!="string")throw new NU("name","string",e);if(this.headersSent)throw new Wae("remove");delete this[vo][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new Wae("set");if(typeof e!="string"||!ait.test(e)&&!tit(e))throw new nit("Header name",e);if(typeof r>"u")throw new iit(r,e);if(lit.test(r))throw new sit("header content",e);this[vo][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let o=()=>this._request.setTimeout(e,r);return this._request?o():this[R1].push(o),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};zae.exports=MU});var Zae=_((wLt,Xae)=>{"use strict";var cit=ve("tls");Xae.exports=(t={},e=cit.connect)=>new Promise((r,o)=>{let a=!1,n,u=async()=>{await p,n.off("timeout",A),n.off("error",o),t.resolveSocket?(r({alpnProtocol:n.alpnProtocol,socket:n,timeout:a}),a&&(await Promise.resolve(),n.emit("timeout"))):(n.destroy(),r({alpnProtocol:n.alpnProtocol,timeout:a}))},A=async()=>{a=!0,u()},p=(async()=>{try{n=await e(t,u),n.on("error",o),n.once("timeout",A)}catch(h){o(h)}})()})});var ele=_((BLt,$ae)=>{"use strict";var uit=ve("net");$ae.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),uit.isIP(e)?"":e}});var nle=_((vLt,HU)=>{"use strict";var tle=ve("http"),_U=ve("https"),Ait=Zae(),fit=xU(),pit=UU(),hit=ele(),git=TU(),Ob=new fit({maxSize:100}),T1=new Map,rle=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let o=()=>{t.emit("free",e,r)};e.on("free",o);let a=()=>{t.removeSocket(e,r)};e.on("close",a);let n=()=>{t.removeSocket(e,r),e.off("close",a),e.off("free",o),e.off("agentRemove",n)};e.on("agentRemove",n),t.emit("free",e,r)},dit=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!Ob.has(e)){if(T1.has(e))return(await T1.get(e)).alpnProtocol;let{path:r,agent:o}=t;t.path=t.socketPath;let a=Ait(t);T1.set(e,a);try{let{socket:n,alpnProtocol:u}=await a;if(Ob.set(e,u),t.path=r,u==="h2")n.destroy();else{let{globalAgent:A}=_U,p=_U.Agent.prototype.createConnection;o?o.createConnection===p?rle(o,n,t):n.destroy():A.createConnection===p?rle(A,n,t):n.destroy()}return T1.delete(e),u}catch(n){throw T1.delete(e),n}}return Ob.get(e)};HU.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=git(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...t,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let o=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||hit(e),e.port=e.port||(o?443:80),e._defaultAgent=o?_U.globalAgent:tle.globalAgent;let a=e.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=a[o?"https":"http"]}return o&&await dit(e)==="h2"?(a&&(e.agent=a.http2),new pit(e,r)):tle.request(e,r)};HU.exports.protocolCache=Ob});var sle=_((DLt,ile)=>{"use strict";var mit=ve("http2"),yit=QU(),qU=UU(),Eit=RU(),Cit=nle(),Iit=(t,e,r)=>new qU(t,e,r),wit=(t,e,r)=>{let o=new qU(t,e,r);return o.end(),o};ile.exports={...mit,ClientRequest:qU,IncomingMessage:Eit,...yit,request:Iit,get:wit,auto:Cit}});var GU=_(jU=>{"use strict";Object.defineProperty(jU,"__esModule",{value:!0});var ole=Ff();jU.default=t=>ole.default.nodeStream(t)&&ole.default.function_(t.getBoundary)});var ule=_(WU=>{"use strict";Object.defineProperty(WU,"__esModule",{value:!0});var lle=ve("fs"),cle=ve("util"),ale=Ff(),Bit=GU(),vit=cle.promisify(lle.stat);WU.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(ale.default.string(t))return Buffer.byteLength(t);if(ale.default.buffer(t))return t.length;if(Bit.default(t))return cle.promisify(t.getLength.bind(t))();if(t instanceof lle.ReadStream){let{size:r}=await vit(t.path);return r===0?void 0:r}}});var KU=_(YU=>{"use strict";Object.defineProperty(YU,"__esModule",{value:!0});function Dit(t,e,r){let o={};for(let a of r)o[a]=(...n)=>{e.emit(a,...n)},t.on(a,o[a]);return()=>{for(let a of r)t.off(a,o[a])}}YU.default=Dit});var Ale=_(VU=>{"use strict";Object.defineProperty(VU,"__esModule",{value:!0});VU.default=()=>{let t=[];return{once(e,r,o){e.once(r,o),t.push({origin:e,event:r,fn:o})},unhandleAll(){for(let e of t){let{origin:r,event:o,fn:a}=e;r.removeListener(o,a)}t.length=0}}}});var ple=_(N1=>{"use strict";Object.defineProperty(N1,"__esModule",{value:!0});N1.TimeoutError=void 0;var Pit=ve("net"),Sit=Ale(),fle=Symbol("reentry"),bit=()=>{},Mb=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};N1.TimeoutError=Mb;N1.default=(t,e,r)=>{if(fle in t)return bit;t[fle]=!0;let o=[],{once:a,unhandleAll:n}=Sit.default(),u=(w,D,x)=>{var C;let T=setTimeout(D,w,w,x);(C=T.unref)===null||C===void 0||C.call(T);let L=()=>{clearTimeout(T)};return o.push(L),L},{host:A,hostname:p}=r,h=(w,D)=>{t.destroy(new Mb(w,D))},E=()=>{for(let w of o)w();n()};if(t.once("error",w=>{if(E(),t.listenerCount("error")===0)throw w}),t.once("close",E),a(t,"response",w=>{a(w,"end",E)}),typeof e.request<"u"&&u(e.request,h,"request"),typeof e.socket<"u"){let w=()=>{h(e.socket,"socket")};t.setTimeout(e.socket,w),o.push(()=>{t.removeListener("timeout",w)})}return a(t,"socket",w=>{var D;let{socketPath:x}=t;if(w.connecting){let C=!!(x??Pit.isIP((D=p??A)!==null&&D!==void 0?D:"")!==0);if(typeof e.lookup<"u"&&!C&&typeof w.address().address>"u"){let T=u(e.lookup,h,"lookup");a(w,"lookup",T)}if(typeof e.connect<"u"){let T=()=>u(e.connect,h,"connect");C?a(w,"connect",T()):a(w,"lookup",L=>{L===null&&a(w,"connect",T())})}typeof e.secureConnect<"u"&&r.protocol==="https:"&&a(w,"connect",()=>{let T=u(e.secureConnect,h,"secureConnect");a(w,"secureConnect",T)})}if(typeof e.send<"u"){let C=()=>u(e.send,h,"send");w.connecting?a(w,"connect",()=>{a(t,"upload-complete",C())}):a(t,"upload-complete",C())}}),typeof e.response<"u"&&a(t,"upload-complete",()=>{let w=u(e.response,h,"response");a(t,"response",w)}),E}});var gle=_(JU=>{"use strict";Object.defineProperty(JU,"__esModule",{value:!0});var hle=Ff();JU.default=t=>{t=t;let e={protocol:t.protocol,hostname:hle.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return hle.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var dle=_(zU=>{"use strict";Object.defineProperty(zU,"__esModule",{value:!0});var xit=ve("url"),kit=["protocol","host","hostname","port","pathname","search"];zU.default=(t,e)=>{var r,o;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(o=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&o!==void 0?o:""}`}let a=new xit.URL(t);if(e.path){let n=e.path.indexOf("?");n===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,n),e.search=e.path.slice(n+1)),delete e.path}for(let n of kit)e[n]&&(a[n]=e[n].toString());return a}});var mle=_(ZU=>{"use strict";Object.defineProperty(ZU,"__esModule",{value:!0});var XU=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};ZU.default=XU});var e4=_($U=>{"use strict";Object.defineProperty($U,"__esModule",{value:!0});var Qit=async t=>{let e=[],r=0;for await(let o of t)e.push(o),r+=Buffer.byteLength(o);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};$U.default=Qit});var Ele=_(xg=>{"use strict";Object.defineProperty(xg,"__esModule",{value:!0});xg.dnsLookupIpVersionToFamily=xg.isDnsLookupIpVersion=void 0;var yle={auto:0,ipv4:4,ipv6:6};xg.isDnsLookupIpVersion=t=>t in yle;xg.dnsLookupIpVersionToFamily=t=>{if(xg.isDnsLookupIpVersion(t))return yle[t];throw new Error("Invalid DNS lookup IP version")}});var t4=_(Ub=>{"use strict";Object.defineProperty(Ub,"__esModule",{value:!0});Ub.isResponseOk=void 0;Ub.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var Ile=_(r4=>{"use strict";Object.defineProperty(r4,"__esModule",{value:!0});var Cle=new Set;r4.default=t=>{Cle.has(t)||(Cle.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var wle=_(n4=>{"use strict";Object.defineProperty(n4,"__esModule",{value:!0});var mi=Ff(),Fit=(t,e)=>{if(mi.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");mi.assert.any([mi.default.string,mi.default.undefined],t.encoding),mi.assert.any([mi.default.boolean,mi.default.undefined],t.resolveBodyOnly),mi.assert.any([mi.default.boolean,mi.default.undefined],t.methodRewriting),mi.assert.any([mi.default.boolean,mi.default.undefined],t.isStream),mi.assert.any([mi.default.string,mi.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry={...e.retry}:t.retry={calculateDelay:o=>o.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},mi.default.object(r)?(t.retry={...t.retry,...r},t.retry.methods=[...new Set(t.retry.methods.map(o=>o.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):mi.default.number(r)&&(t.retry.limit=r),mi.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(mi.default.number))),mi.default.object(t.pagination)){e&&(t.pagination={...e.pagination,...t.pagination});let{pagination:o}=t;if(!mi.default.function_(o.transform))throw new Error("`options.pagination.transform` must be implemented");if(!mi.default.function_(o.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!mi.default.function_(o.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!mi.default.function_(o.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};n4.default=Fit});var Ble=_(L1=>{"use strict";Object.defineProperty(L1,"__esModule",{value:!0});L1.retryAfterStatusCodes=void 0;L1.retryAfterStatusCodes=new Set([413,429,503]);var Rit=({attemptCount:t,retryOptions:e,error:r,retryAfter:o})=>{if(t>e.limit)return 0;let a=e.methods.includes(r.options.method),n=e.errorCodes.includes(r.code),u=r.response&&e.statusCodes.includes(r.response.statusCode);if(!a||!n&&!u)return 0;if(r.response){if(o)return e.maxRetryAfter===void 0||o>e.maxRetryAfter?0:o;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(t-1)*1e3+A};L1.default=Rit});var U1=_(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});Qn.UnsupportedProtocolError=Qn.ReadError=Qn.TimeoutError=Qn.UploadError=Qn.CacheError=Qn.HTTPError=Qn.MaxRedirectsError=Qn.RequestError=Qn.setNonEnumerableProperties=Qn.knownHookEvents=Qn.withoutBody=Qn.kIsNormalizedAlready=void 0;var vle=ve("util"),Dle=ve("stream"),Tit=ve("fs"),uh=ve("url"),Ple=ve("http"),i4=ve("http"),Nit=ve("https"),Lit=_oe(),Oit=Koe(),Sle=Pae(),Mit=kae(),Uit=sle(),_it=Tb(),at=Ff(),Hit=ule(),ble=GU(),qit=KU(),xle=ple(),jit=gle(),kle=dle(),Git=mle(),Wit=e4(),Qle=Ele(),Yit=t4(),Ah=Ile(),Kit=wle(),Vit=Ble(),s4,Ys=Symbol("request"),qb=Symbol("response"),vy=Symbol("responseSize"),Dy=Symbol("downloadedSize"),Py=Symbol("bodySize"),Sy=Symbol("uploadedSize"),_b=Symbol("serverResponsesPiped"),Fle=Symbol("unproxyEvents"),Rle=Symbol("isFromCache"),o4=Symbol("cancelTimeouts"),Tle=Symbol("startedReading"),by=Symbol("stopReading"),Hb=Symbol("triggerRead"),fh=Symbol("body"),O1=Symbol("jobs"),Nle=Symbol("originalResponse"),Lle=Symbol("retryTimeout");Qn.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Jit=at.default.string(process.versions.brotli);Qn.withoutBody=new Set(["GET","HEAD"]);Qn.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function zit(t){for(let e in t){let r=t[e];if(!at.default.string(r)&&!at.default.number(r)&&!at.default.boolean(r)&&!at.default.null_(r)&&!at.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function Xit(t){return at.default.object(t)&&!("statusCode"in t)}var a4=new Git.default,Zit=async t=>new Promise((e,r)=>{let o=a=>{r(a)};t.pending||e(),t.once("error",o),t.once("ready",()=>{t.off("error",o),e()})}),$it=new Set([300,301,302,303,304,307,308]),est=["context","body","json","form"];Qn.setNonEnumerableProperties=(t,e)=>{let r={};for(let o of t)if(o)for(let a of est)a in o&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:o[a]});Object.defineProperties(e,r)};var zi=class extends Error{constructor(e,r,o){var a;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,o instanceof Jb?(Object.defineProperty(this,"request",{enumerable:!1,value:o}),Object.defineProperty(this,"response",{enumerable:!1,value:o[qb]}),Object.defineProperty(this,"options",{enumerable:!1,value:o.options})):Object.defineProperty(this,"options",{enumerable:!1,value:o}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,at.default.string(r.stack)&&at.default.string(this.stack)){let n=this.stack.indexOf(this.message)+this.message.length,u=this.stack.slice(n).split(` +`).reverse(),A=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` +`).reverse();for(;A.length!==0&&A[0]===u[0];)u.shift();this.stack=`${this.stack.slice(0,n)}${u.reverse().join(` +`)}${A.reverse().join(` +`)}`}}};Qn.RequestError=zi;var jb=class extends zi{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Qn.MaxRedirectsError=jb;var Gb=class extends zi{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Qn.HTTPError=Gb;var Wb=class extends zi{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};Qn.CacheError=Wb;var Yb=class extends zi{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};Qn.UploadError=Yb;var Kb=class extends zi{constructor(e,r,o){super(e.message,e,o),this.name="TimeoutError",this.event=e.event,this.timings=r}};Qn.TimeoutError=Kb;var M1=class extends zi{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};Qn.ReadError=M1;var Vb=class extends zi{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Qn.UnsupportedProtocolError=Vb;var tst=["socket","connect","continue","information","upgrade","timeout"],Jb=class extends Dle.Duplex{constructor(e,r={},o){super({autoDestroy:!1,highWaterMark:0}),this[Dy]=0,this[Sy]=0,this.requestInitialized=!1,this[_b]=new Set,this.redirects=[],this[by]=!1,this[Hb]=!1,this[O1]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",h=>{h.prependListener("data",a),h.on("data",n),h.prependListener("end",a),h.on("end",n)}),this.on("unpipe",h=>{h.off("data",a),h.off("data",n),h.off("end",a),h.off("end",n)}),this.on("pipe",h=>{h instanceof i4.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:u,body:A,form:p}=r;if((u||A||p)&&this._lockWrite(),Qn.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,o)}catch(h){at.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof Tit.ReadStream&&await Zit(this.options.body);let{url:E}=this.options;if(!E)throw new TypeError("Missing `url` property");if(this.requestUrl=E.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[Ys])===null||h===void 0||h.destroy();return}for(let w of this[O1])w();this[O1].length=0,this.requestInitialized=!0}catch(E){if(E instanceof zi){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(e,r,o){var a,n,u,A,p;let h=r;if(at.default.object(e)&&!at.default.urlInstance(e))r={...o,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...o,...r},e!==void 0&&(r.url=e),at.default.urlInstance(r.url)&&(r.url=new uh.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),at.assert.any([at.default.string,at.default.undefined],r.method),at.assert.any([at.default.object,at.default.undefined],r.headers),at.assert.any([at.default.string,at.default.urlInstance,at.default.undefined],r.prefixUrl),at.assert.any([at.default.object,at.default.undefined],r.cookieJar),at.assert.any([at.default.object,at.default.string,at.default.undefined],r.searchParams),at.assert.any([at.default.object,at.default.string,at.default.undefined],r.cache),at.assert.any([at.default.object,at.default.number,at.default.undefined],r.timeout),at.assert.any([at.default.object,at.default.undefined],r.context),at.assert.any([at.default.object,at.default.undefined],r.hooks),at.assert.any([at.default.boolean,at.default.undefined],r.decompress),at.assert.any([at.default.boolean,at.default.undefined],r.ignoreInvalidCookies),at.assert.any([at.default.boolean,at.default.undefined],r.followRedirect),at.assert.any([at.default.number,at.default.undefined],r.maxRedirects),at.assert.any([at.default.boolean,at.default.undefined],r.throwHttpErrors),at.assert.any([at.default.boolean,at.default.undefined],r.http2),at.assert.any([at.default.boolean,at.default.undefined],r.allowGetBody),at.assert.any([at.default.string,at.default.undefined],r.localAddress),at.assert.any([Qle.isDnsLookupIpVersion,at.default.undefined],r.dnsLookupIpVersion),at.assert.any([at.default.object,at.default.undefined],r.https),at.assert.any([at.default.boolean,at.default.undefined],r.rejectUnauthorized),r.https&&(at.assert.any([at.default.boolean,at.default.undefined],r.https.rejectUnauthorized),at.assert.any([at.default.function_,at.default.undefined],r.https.checkServerIdentity),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.certificateAuthority),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.key),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.certificate),at.assert.any([at.default.string,at.default.undefined],r.https.passphrase),at.assert.any([at.default.string,at.default.buffer,at.default.array,at.default.undefined],r.https.pfx)),at.assert.any([at.default.object,at.default.undefined],r.cacheOptions),at.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===o?.headers?r.headers={...r.headers}:r.headers=_it({...o?.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==o?.searchParams){let x;if(at.default.string(r.searchParams)||r.searchParams instanceof uh.URLSearchParams)x=new uh.URLSearchParams(r.searchParams);else{zit(r.searchParams),x=new uh.URLSearchParams;for(let C in r.searchParams){let T=r.searchParams[C];T===null?x.append(C,""):T!==void 0&&x.append(C,T)}}(a=o?.searchParams)===null||a===void 0||a.forEach((C,T)=>{x.has(T)||x.append(T,C)}),r.searchParams=x}if(r.username=(n=r.username)!==null&&n!==void 0?n:"",r.password=(u=r.password)!==null&&u!==void 0?u:"",at.default.undefined(r.prefixUrl)?r.prefixUrl=(A=o?.prefixUrl)!==null&&A!==void 0?A:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),at.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=kle.default(r.prefixUrl+r.url,r)}else(at.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=kle.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:x}=r;Object.defineProperty(r,"prefixUrl",{set:T=>{let L=r.url;if(!L.href.startsWith(T))throw new Error(`Cannot change \`prefixUrl\` from ${x} to ${T}: ${L.href}`);r.url=new uh.URL(T+L.href.slice(x.length)),x=T},get:()=>x});let{protocol:C}=r.url;if(C==="unix:"&&(C="http:",r.url=new uh.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),C!=="http:"&&C!=="https:")throw new Vb(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:E}=r;if(E){let{setCookie:x,getCookieString:C}=E;at.assert.function_(x),at.assert.function_(C),x.length===4&&C.length===0&&(x=vle.promisify(x.bind(r.cookieJar)),C=vle.promisify(C.bind(r.cookieJar)),r.cookieJar={setCookie:x,getCookieString:C})}let{cache:w}=r;if(w&&(a4.has(w)||a4.set(w,new Sle((x,C)=>{let T=x[Ys](x,C);return at.default.promise(T)&&(T.once=(L,U)=>{if(L==="error")T.catch(U);else if(L==="abort")(async()=>{try{(await T).once("abort",U)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${L}`);return T}),T},w))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)s4||(s4=new Oit.default),r.dnsCache=s4;else if(!at.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${at.default(r.dnsCache)}`);at.default.number(r.timeout)?r.timeout={request:r.timeout}:o&&r.timeout!==o.timeout?r.timeout={...o.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let D=r.hooks===o?.hooks;r.hooks={...r.hooks};for(let x of Qn.knownHookEvents)if(x in r.hooks)if(at.default.array(r.hooks[x]))r.hooks[x]=[...r.hooks[x]];else throw new TypeError(`Parameter \`${x}\` must be an Array, got ${at.default(r.hooks[x])}`);else r.hooks[x]=[];if(o&&!D)for(let x of Qn.knownHookEvents)o.hooks[x].length>0&&(r.hooks[x]=[...o.hooks[x],...r.hooks[x]]);if("family"in r&&Ah.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),o?.https&&(r.https={...o.https,...r.https}),"rejectUnauthorized"in r&&Ah.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&Ah.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&Ah.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&Ah.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&Ah.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&Ah.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&Ah.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let x in r.agent)if(x!=="http"&&x!=="https"&&x!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${x}\``)}return r.maxRedirects=(p=r.maxRedirects)!==null&&p!==void 0?p:0,Qn.setNonEnumerableProperties([o,h],r),Kit.default(r,o)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,o=!at.default.undefined(e.form),a=!at.default.undefined(e.json),n=!at.default.undefined(e.body),u=o||a||n,A=Qn.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=A,u){if(A)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([n,o,a].filter(p=>p).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(n&&!(e.body instanceof Dle.Readable)&&!at.default.string(e.body)&&!at.default.buffer(e.body)&&!ble.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(o&&!at.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let p=!at.default.string(r["content-type"]);n?(ble.default(e.body)&&p&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[fh]=e.body):o?(p&&(r["content-type"]="application/x-www-form-urlencoded"),this[fh]=new uh.URLSearchParams(e.form).toString()):(p&&(r["content-type"]="application/json"),this[fh]=e.stringifyJson(e.json));let h=await Hit.default(this[fh],e.headers);at.default.undefined(r["content-length"])&&at.default.undefined(r["transfer-encoding"])&&!A&&!at.default.undefined(h)&&(r["content-length"]=String(h))}}else A?this._lockWrite():this._unlockWrite();this[Py]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:o}=r;this[Nle]=e,r.decompress&&(e=Mit(e));let a=e.statusCode,n=e;n.statusMessage=n.statusMessage?n.statusMessage:Ple.STATUS_CODES[a],n.url=r.url.toString(),n.requestUrl=this.requestUrl,n.redirectUrls=this.redirects,n.request=this,n.isFromCache=e.fromCache||!1,n.ip=this.ip,n.retryCount=this.retryCount,this[Rle]=n.isFromCache,this[vy]=Number(e.headers["content-length"])||void 0,this[qb]=e,e.once("end",()=>{this[vy]=this[Dy],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",A=>{e.destroy(),this._beforeError(new M1(A,this))}),e.once("aborted",()=>{this._beforeError(new M1({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let u=e.headers["set-cookie"];if(at.default.object(r.cookieJar)&&u){let A=u.map(async p=>r.cookieJar.setCookie(p,o.toString()));r.ignoreInvalidCookies&&(A=A.map(async p=>p.catch(()=>{})));try{await Promise.all(A)}catch(p){this._beforeError(p);return}}if(r.followRedirect&&e.headers.location&&$it.has(a)){if(e.resume(),this[Ys]&&(this[o4](),delete this[Ys],this[Fle]()),(a===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[fh]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new jb(this));return}try{let p=Buffer.from(e.headers.location,"binary").toString(),h=new uh.URL(p,o),E=h.toString();decodeURI(E),h.hostname!==o.hostname||h.port!==o.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(h.username=r.username,h.password=r.password),this.redirects.push(E),r.url=h;for(let w of r.hooks.beforeRedirect)await w(r,n);this.emit("redirect",n,r),await this._makeRequest()}catch(p){this._beforeError(p);return}return}if(r.isStream&&r.throwHttpErrors&&!Yit.isResponseOk(n)){this._beforeError(new Gb(n));return}e.on("readable",()=>{this[Hb]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let A of this[_b])if(!A.headersSent){for(let p in e.headers){let h=r.decompress?p!=="content-encoding":!0,E=e.headers[p];h&&A.setHeader(p,E)}A.statusCode=a}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:o,url:a}=r;Lit.default(e),this[o4]=xle.default(e,o,a);let n=r.cache?"cacheableResponse":"response";e.once(n,p=>{this._onResponse(p)}),e.once("error",p=>{var h;e.destroy(),(h=e.res)===null||h===void 0||h.removeAllListeners("end"),p=p instanceof xle.TimeoutError?new Kb(p,this.timings,this):new zi(p.message,p,this),this._beforeError(p)}),this[Fle]=qit.default(e,this,tst),this[Ys]=e,this.emit("uploadProgress",this.uploadProgress);let u=this[fh],A=this.redirects.length===0?this:e;at.default.nodeStream(u)?(u.pipe(A),u.once("error",p=>{this._beforeError(new Yb(p,this))})):(this._unlockWrite(),at.default.undefined(u)?(this._cannotHaveBody||this._noPipe)&&(A.end(),this._lockWrite()):(this._writeRequest(u,void 0,()=>{}),A.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((o,a)=>{Object.assign(r,jit.default(e)),delete r.url;let n,u=a4.get(r.cache)(r,async A=>{A._readableState.autoDestroy=!1,n&&(await n).emit("cacheableResponse",A),o(A)});r.url=e,u.once("error",a),u.once("request",async A=>{n=A,o(n)})})}async _makeRequest(){var e,r,o,a,n;let{options:u}=this,{headers:A}=u;for(let U in A)if(at.default.undefined(A[U]))delete A[U];else if(at.default.null_(A[U]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${U}\` header`);if(u.decompress&&at.default.undefined(A["accept-encoding"])&&(A["accept-encoding"]=Jit?"gzip, deflate, br":"gzip, deflate"),u.cookieJar){let U=await u.cookieJar.getCookieString(u.url.toString());at.default.nonEmptyString(U)&&(u.headers.cookie=U)}for(let U of u.hooks.beforeRequest){let J=await U(u);if(!at.default.undefined(J)){u.request=()=>J;break}}u.body&&this[fh]!==u.body&&(this[fh]=u.body);let{agent:p,request:h,timeout:E,url:w}=u;if(u.dnsCache&&!("lookup"in u)&&(u.lookup=u.dnsCache.lookup),w.hostname==="unix"){let U=/(?.+?):(?.+)/.exec(`${w.pathname}${w.search}`);if(U?.groups){let{socketPath:J,path:te}=U.groups;Object.assign(u,{socketPath:J,path:te,host:""})}}let D=w.protocol==="https:",x;u.http2?x=Uit.auto:x=D?Nit.request:Ple.request;let C=(e=u.request)!==null&&e!==void 0?e:x,T=u.cache?this._createCacheableRequest:C;p&&!u.http2&&(u.agent=p[D?"https":"http"]),u[Ys]=C,delete u.request,delete u.timeout;let L=u;if(L.shared=(r=u.cacheOptions)===null||r===void 0?void 0:r.shared,L.cacheHeuristic=(o=u.cacheOptions)===null||o===void 0?void 0:o.cacheHeuristic,L.immutableMinTimeToLive=(a=u.cacheOptions)===null||a===void 0?void 0:a.immutableMinTimeToLive,L.ignoreCargoCult=(n=u.cacheOptions)===null||n===void 0?void 0:n.ignoreCargoCult,u.dnsLookupIpVersion!==void 0)try{L.family=Qle.dnsLookupIpVersionToFamily(u.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}u.https&&("rejectUnauthorized"in u.https&&(L.rejectUnauthorized=u.https.rejectUnauthorized),u.https.checkServerIdentity&&(L.checkServerIdentity=u.https.checkServerIdentity),u.https.certificateAuthority&&(L.ca=u.https.certificateAuthority),u.https.certificate&&(L.cert=u.https.certificate),u.https.key&&(L.key=u.https.key),u.https.passphrase&&(L.passphrase=u.https.passphrase),u.https.pfx&&(L.pfx=u.https.pfx));try{let U=await T(w,L);at.default.undefined(U)&&(U=x(w,L)),u.request=h,u.timeout=E,u.agent=p,u.https&&("rejectUnauthorized"in u.https&&delete L.rejectUnauthorized,u.https.checkServerIdentity&&delete L.checkServerIdentity,u.https.certificateAuthority&&delete L.ca,u.https.certificate&&delete L.cert,u.https.key&&delete L.key,u.https.passphrase&&delete L.passphrase,u.https.pfx&&delete L.pfx),Xit(U)?this._onRequest(U):this.writable?(this.once("finish",()=>{this._onResponse(U)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(U)}catch(U){throw U instanceof Sle.CacheError?new Wb(U,this):new zi(U.message,U,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new zi(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[by])return;let{options:r}=this,o=this.retryCount+1;this[by]=!0,e instanceof zi||(e=new zi(e.message,e,this));let a=e,{response:n}=a;(async()=>{if(n&&!n.body){n.setEncoding(this._readableState.encoding);try{n.rawBody=await Wit.default(n),n.body=n.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let u;try{let A;n&&"retry-after"in n.headers&&(A=Number(n.headers["retry-after"]),Number.isNaN(A)?(A=Date.parse(n.headers["retry-after"])-Date.now(),A<=0&&(A=1)):A*=1e3),u=await r.retry.calculateDelay({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:Vit.default({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:0})})}catch(A){this._error(new zi(A.message,A,this));return}if(u){let A=async()=>{try{for(let p of this.options.hooks.beforeRetry)await p(this.options,a,o)}catch(p){this._error(new zi(p.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",o,e))};this[Lle]=setTimeout(A,u);return}}this._error(a)})()}_read(){this[Hb]=!0;let e=this[qb];if(e&&!this[by]){e.readableLength&&(this[Hb]=!1);let r;for(;(r=e.read())!==null;){this[Dy]+=r.length,this[Tle]=!0;let o=this.downloadProgress;o.percent<1&&this.emit("downloadProgress",o),this.push(r)}}}_write(e,r,o){let a=()=>{this._writeRequest(e,r,o)};this.requestInitialized?a():this[O1].push(a)}_writeRequest(e,r,o){this[Ys].destroyed||(this._progressCallbacks.push(()=>{this[Sy]+=Buffer.byteLength(e,r);let a=this.uploadProgress;a.percent<1&&this.emit("uploadProgress",a)}),this[Ys].write(e,r,a=>{!a&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),o(a)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Ys in this)){e();return}if(this[Ys].destroyed){e();return}this[Ys].end(o=>{o||(this[Py]=this[Sy],this.emit("uploadProgress",this.uploadProgress),this[Ys].emit("upload-complete")),e(o)})};this.requestInitialized?r():this[O1].push(r)}_destroy(e,r){var o;this[by]=!0,clearTimeout(this[Lle]),Ys in this&&(this[o4](),!((o=this[qb])===null||o===void 0)&&o.complete||this[Ys].destroy()),e!==null&&!at.default.undefined(e)&&!(e instanceof zi)&&(e=new zi(e.message,e,this)),r(e)}get _isAboutToError(){return this[by]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,o;return((r=(e=this[Ys])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((o=this[Nle])===null||o===void 0)&&o.complete)}get socket(){var e,r;return(r=(e=this[Ys])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[vy]?e=this[Dy]/this[vy]:this[vy]===this[Dy]?e=1:e=0,{percent:e,transferred:this[Dy],total:this[vy]}}get uploadProgress(){let e;return this[Py]?e=this[Sy]/this[Py]:this[Py]===this[Sy]?e=1:e=0,{percent:e,transferred:this[Sy],total:this[Py]}}get timings(){var e;return(e=this[Ys])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[Rle]}pipe(e,r){if(this[Tle])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof i4.ServerResponse&&this[_b].add(e),super.pipe(e,r)}unpipe(e){return e instanceof i4.ServerResponse&&this[_b].delete(e),super.unpipe(e),this}};Qn.default=Jb});var _1=_(zc=>{"use strict";var rst=zc&&zc.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),nst=zc&&zc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&rst(e,t,r)};Object.defineProperty(zc,"__esModule",{value:!0});zc.CancelError=zc.ParseError=void 0;var Ole=U1(),l4=class extends Ole.RequestError{constructor(e,r){let{options:o}=r.request;super(`${e.message} in "${o.url.toString()}"`,e,r.request),this.name="ParseError"}};zc.ParseError=l4;var c4=class extends Ole.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};zc.CancelError=c4;nst(U1(),zc)});var Ule=_(u4=>{"use strict";Object.defineProperty(u4,"__esModule",{value:!0});var Mle=_1(),ist=(t,e,r,o)=>{let{rawBody:a}=t;try{if(e==="text")return a.toString(o);if(e==="json")return a.length===0?"":r(a.toString());if(e==="buffer")return a;throw new Mle.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(n){throw new Mle.ParseError(n,t)}};u4.default=ist});var A4=_(ph=>{"use strict";var sst=ph&&ph.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),ost=ph&&ph.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&sst(e,t,r)};Object.defineProperty(ph,"__esModule",{value:!0});var ast=ve("events"),lst=Ff(),cst=Moe(),zb=_1(),_le=Ule(),Hle=U1(),ust=KU(),Ast=e4(),qle=t4(),fst=["request","response","redirect","uploadProgress","downloadProgress"];function jle(t){let e,r,o=new ast.EventEmitter,a=new cst((u,A,p)=>{let h=E=>{let w=new Hle.default(void 0,t);w.retryCount=E,w._noPipe=!0,p(()=>w.destroy()),p.shouldReject=!1,p(()=>A(new zb.CancelError(w))),e=w,w.once("response",async C=>{var T;if(C.retryCount=E,C.request.aborted)return;let L;try{L=await Ast.default(w),C.rawBody=L}catch{return}if(w._isAboutToError)return;let U=((T=C.headers["content-encoding"])!==null&&T!==void 0?T:"").toLowerCase(),J=["gzip","deflate","br"].includes(U),{options:te}=w;if(J&&!te.decompress)C.body=L;else try{C.body=_le.default(C,te.responseType,te.parseJson,te.encoding)}catch(le){if(C.body=L.toString(),qle.isResponseOk(C)){w._beforeError(le);return}}try{for(let[le,ce]of te.hooks.afterResponse.entries())C=await ce(C,async ue=>{let Ie=Hle.default.normalizeArguments(void 0,{...ue,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},te);Ie.hooks.afterResponse=Ie.hooks.afterResponse.slice(0,le);for(let De of Ie.hooks.beforeRetry)await De(Ie);let he=jle(Ie);return p(()=>{he.catch(()=>{}),he.cancel()}),he})}catch(le){w._beforeError(new zb.RequestError(le.message,le,w));return}if(!qle.isResponseOk(C)){w._beforeError(new zb.HTTPError(C));return}r=C,u(w.options.resolveBodyOnly?C.body:C)});let D=C=>{if(a.isCanceled)return;let{options:T}=w;if(C instanceof zb.HTTPError&&!T.throwHttpErrors){let{response:L}=C;u(w.options.resolveBodyOnly?L.body:L);return}A(C)};w.once("error",D);let x=w.options.body;w.once("retry",(C,T)=>{var L,U;if(x===((L=T.request)===null||L===void 0?void 0:L.options.body)&&lst.default.nodeStream((U=T.request)===null||U===void 0?void 0:U.options.body)){D(T);return}h(C)}),ust.default(w,o,fst)};h(0)});a.on=(u,A)=>(o.on(u,A),a);let n=u=>{let A=(async()=>{await a;let{options:p}=r.request;return _le.default(r,u,p.parseJson,p.encoding)})();return Object.defineProperties(A,Object.getOwnPropertyDescriptors(a)),A};return a.json=()=>{let{headers:u}=e.options;return!e.writableFinished&&u.accept===void 0&&(u.accept="application/json"),n("json")},a.buffer=()=>n("buffer"),a.text=()=>n("text"),a}ph.default=jle;ost(_1(),ph)});var Gle=_(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});var pst=_1();function hst(t,...e){let r=(async()=>{if(t instanceof pst.RequestError)try{for(let a of e)if(a)for(let n of a)t=await n(t)}catch(a){t=a}throw t})(),o=()=>r;return r.json=o,r.text=o,r.buffer=o,r.on=o,r}f4.default=hst});var Kle=_(p4=>{"use strict";Object.defineProperty(p4,"__esModule",{value:!0});var Wle=Ff();function Yle(t){for(let e of Object.values(t))(Wle.default.plainObject(e)||Wle.default.array(e))&&Yle(e);return Object.freeze(t)}p4.default=Yle});var Jle=_(Vle=>{"use strict";Object.defineProperty(Vle,"__esModule",{value:!0})});var h4=_(Xl=>{"use strict";var gst=Xl&&Xl.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),dst=Xl&&Xl.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&gst(e,t,r)};Object.defineProperty(Xl,"__esModule",{value:!0});Xl.defaultHandler=void 0;var zle=Ff(),zl=A4(),mst=Gle(),Zb=U1(),yst=Kle(),Est={RequestError:zl.RequestError,CacheError:zl.CacheError,ReadError:zl.ReadError,HTTPError:zl.HTTPError,MaxRedirectsError:zl.MaxRedirectsError,TimeoutError:zl.TimeoutError,ParseError:zl.ParseError,CancelError:zl.CancelError,UnsupportedProtocolError:zl.UnsupportedProtocolError,UploadError:zl.UploadError},Cst=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:Xb}=Zb.default,Xle=(...t)=>{let e;for(let r of t)e=Xb(void 0,r,e);return e},Ist=t=>t.isStream?new Zb.default(void 0,t):zl.default(t),wst=t=>"defaults"in t&&"options"in t.defaults,Bst=["get","post","put","patch","head","delete"];Xl.defaultHandler=(t,e)=>e(t);var Zle=(t,e)=>{if(t)for(let r of t)r(e)},$le=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(o=>(a,n)=>{let u,A=o(a,p=>(u=n(p),u));if(A!==u&&!a.isStream&&u){let p=A,{then:h,catch:E,finally:w}=p;Object.setPrototypeOf(p,Object.getPrototypeOf(u)),Object.defineProperties(p,Object.getOwnPropertyDescriptors(u)),p.then=h,p.catch=E,p.finally=w}return A});let e=(o,a={},n)=>{var u,A;let p=0,h=E=>t.handlers[p++](E,p===t.handlers.length?Ist:h);if(zle.default.plainObject(o)){let E={...o,...a};Zb.setNonEnumerableProperties([o,a],E),a=E,o=void 0}try{let E;try{Zle(t.options.hooks.init,a),Zle((u=a.hooks)===null||u===void 0?void 0:u.init,a)}catch(D){E=D}let w=Xb(o,a,n??t.options);if(w[Zb.kIsNormalizedAlready]=!0,E)throw new zl.RequestError(E.message,E,w);return h(w)}catch(E){if(a.isStream)throw E;return mst.default(E,t.options.hooks.beforeError,(A=a.hooks)===null||A===void 0?void 0:A.beforeError)}};e.extend=(...o)=>{let a=[t.options],n=[...t._rawHandlers],u;for(let A of o)wst(A)?(a.push(A.defaults.options),n.push(...A.defaults._rawHandlers),u=A.defaults.mutableDefaults):(a.push(A),"handlers"in A&&n.push(...A.handlers),u=A.mutableDefaults);return n=n.filter(A=>A!==Xl.defaultHandler),n.length===0&&n.push(Xl.defaultHandler),$le({options:Xle(...a),handlers:n,mutableDefaults:!!u})};let r=async function*(o,a){let n=Xb(o,a,t.options);n.resolveBodyOnly=!1;let u=n.pagination;if(!zle.default.object(u))throw new TypeError("`options.pagination` must be implemented");let A=[],{countLimit:p}=u,h=0;for(;h{let n=[];for await(let u of r(o,a))n.push(u);return n},e.paginate.each=r,e.stream=(o,a)=>e(o,{...a,isStream:!0});for(let o of Bst)e[o]=(a,n)=>e(a,{...n,method:o}),e.stream[o]=(a,n)=>e(a,{...n,method:o,isStream:!0});return Object.assign(e,Est),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:yst.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=Xle,e};Xl.default=$le;dst(Jle(),Xl)});var rce=_((Rf,$b)=>{"use strict";var vst=Rf&&Rf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),ece=Rf&&Rf.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&vst(e,t,r)};Object.defineProperty(Rf,"__esModule",{value:!0});var Dst=ve("url"),tce=h4(),Pst={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let o of e){let a=o.split(";");if(a[1].includes("next")){r=a[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new Dst.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[tce.defaultHandler],mutableDefaults:!1},g4=tce.default(Pst);Rf.default=g4;$b.exports=g4;$b.exports.default=g4;$b.exports.__esModule=!0;ece(h4(),Rf);ece(A4(),Rf)});var on={};Kt(on,{Method:()=>cce,del:()=>Qst,get:()=>E4,getNetworkSettings:()=>lce,post:()=>C4,put:()=>kst,request:()=>H1});function sce(t){let e=new URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),e.username&&e.password&&(r.proxyAuth=`${e.username}:${e.password}`),{proxy:r}}async function d4(t){return Al(ice,t,()=>ae.readFilePromise(t).then(e=>(ice.set(t,e),e)))}function xst({statusCode:t,statusMessage:e},r){let o=Ut(r,t,Ct.NUMBER),a=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return ty(r,`${o}${e?` (${e})`:""}`,a)}async function ex(t,{configuration:e,customErrorMessage:r}){try{return await t}catch(o){if(o.name!=="HTTPError")throw o;let a=r?.(o,e)??o.response.body?.error;a==null&&(o.message.startsWith("Response code")?a="The remote server failed to provide the requested resource":a=o.message),o.code==="ETIMEDOUT"&&o.event==="socket"&&(a+=`(can be increased via ${Ut(e,"httpTimeout",Ct.SETTING)})`);let n=new Jt(35,a,u=>{o.response&&u.reportError(35,` ${$u(e,{label:"Response Code",value:Yc(Ct.NO_HINT,xst(o.response,e))})}`),o.request&&(u.reportError(35,` ${$u(e,{label:"Request Method",value:Yc(Ct.NO_HINT,o.request.options.method)})}`),u.reportError(35,` ${$u(e,{label:"Request URL",value:Yc(Ct.URL,o.request.requestUrl)})}`)),o.request.redirects.length>0&&u.reportError(35,` ${$u(e,{label:"Request Redirects",value:Yc(Ct.NO_HINT,cO(e,o.request.redirects,Ct.URL))})}`),o.request.retryCount===o.request.options.retry.limit&&u.reportError(35,` ${$u(e,{label:"Request Retry Count",value:Yc(Ct.NO_HINT,`${Ut(e,o.request.retryCount,Ct.NUMBER)} (can be increased via ${Ut(e,"httpRetry",Ct.SETTING)})`)})}`)});throw n.originalError=o,n}}function lce(t,e){let r=[...e.configuration.get("networkSettings")].sort(([u],[A])=>A.length-u.length),o={enableNetwork:void 0,httpsCaFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},a=Object.keys(o),n=typeof t=="string"?new URL(t):t;for(let[u,A]of r)if(y4.default.isMatch(n.hostname,u))for(let p of a){let h=A.get(p);h!==null&&typeof o[p]>"u"&&(o[p]=h)}for(let u of a)typeof o[u]>"u"&&(o[u]=e.configuration.get(u));return o}async function H1(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET",wrapNetworkRequest:A}){let p={target:t,body:e,configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u},h=async()=>await Fst(t,e,p),E=typeof A<"u"?await A(h,p):h;return await(await r.reduceHook(D=>D.wrapNetworkRequest,E,p))()}async function E4(t,{configuration:e,jsonResponse:r,customErrorMessage:o,wrapNetworkRequest:a,...n}){let u=()=>ex(H1(t,null,{configuration:e,wrapNetworkRequest:a,...n}),{configuration:e,customErrorMessage:o}).then(p=>p.body),A=await(typeof a<"u"?u():Al(nce,t,()=>u().then(p=>(nce.set(t,p),p))));return r?JSON.parse(A.toString()):A}async function kst(t,e,{customErrorMessage:r,...o}){return(await ex(H1(t,e,{...o,method:"PUT"}),{customErrorMessage:r,configuration:o.configuration})).body}async function C4(t,e,{customErrorMessage:r,...o}){return(await ex(H1(t,e,{...o,method:"POST"}),{customErrorMessage:r,configuration:o.configuration})).body}async function Qst(t,{customErrorMessage:e,...r}){return(await ex(H1(t,null,{...r,method:"DELETE"}),{customErrorMessage:e,configuration:r.configuration})).body}async function Fst(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET"}){let A=typeof t=="string"?new URL(t):t,p=lce(A,{configuration:r});if(p.enableNetwork===!1)throw new Jt(80,`Request to '${A.href}' has been blocked because of your configuration settings`);if(A.protocol==="http:"&&!y4.default.isMatch(A.hostname,r.get("unsafeHttpWhitelist")))throw new Jt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${A.hostname})`);let E={agent:{http:p.httpProxy?m4.default.httpOverHttp(sce(p.httpProxy)):Sst,https:p.httpsProxy?m4.default.httpsOverHttp(sce(p.httpsProxy)):bst},headers:o,method:u};E.responseType=n?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!a&&typeof e=="string"?E.body=e:E.json=e);let w=r.get("httpTimeout"),D=r.get("httpRetry"),x=r.get("enableStrictSsl"),C=p.httpsCaFilePath,T=p.httpsCertFilePath,L=p.httpsKeyFilePath,{default:U}=await Promise.resolve().then(()=>et(rce())),J=C?await d4(C):void 0,te=T?await d4(T):void 0,le=L?await d4(L):void 0,ce=U.extend({timeout:{socket:w},retry:D,https:{rejectUnauthorized:x,certificateAuthority:J,certificate:te,key:le},...E});return r.getLimit("networkConcurrency")(()=>ce(A))}var oce,ace,y4,m4,nce,ice,Sst,bst,cce,tx=It(()=>{Pt();oce=ve("https"),ace=ve("http"),y4=et(Xo()),m4=et(Roe());Vl();Wl();Gl();nce=new Map,ice=new Map,Sst=new ace.Agent({keepAlive:!0}),bst=new oce.Agent({keepAlive:!0});cce=(a=>(a.GET="GET",a.PUT="PUT",a.POST="POST",a.DELETE="DELETE",a))(cce||{})});var Xi={};Kt(Xi,{availableParallelism:()=>w4,getArchitecture:()=>q1,getArchitectureName:()=>Ost,getArchitectureSet:()=>I4,getCaller:()=>Hst,major:()=>Rst,openUrl:()=>Tst});function Lst(){if(process.platform==="darwin"||process.platform==="win32")return null;let t;try{t=ae.readFileSync(Nst)}catch{}if(typeof t<"u"){if(t&&(t.includes("GLIBC")||t.includes("libc")))return"glibc";if(t&&t.includes("musl"))return"musl"}let r=(process.report?.getReport()??{}).sharedObjects??[],o=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return eh(r,a=>{let n=a.match(o);if(!n)return eh.skip;if(n[1])return"glibc";if(n[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")})??null}function q1(){return Ace=Ace??{os:process.platform,cpu:process.arch,libc:Lst()}}function Ost(t=q1()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function I4(){let t=q1();return fce=fce??{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}function _st(t){let e=Mst.exec(t);if(!e)return null;let r=e[2]&&e[2].indexOf("native")===0,o=e[2]&&e[2].indexOf("eval")===0,a=Ust.exec(e[2]);return o&&a!=null&&(e[2]=a[1],e[3]=a[2],e[4]=a[3]),{file:r?null:e[2],methodName:e[1]||"",arguments:r?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}function Hst(){let e=new Error().stack.split(` +`)[3];return _st(e)}function w4(){return typeof rx.default.availableParallelism<"u"?rx.default.availableParallelism():Math.max(1,rx.default.cpus().length)}var rx,Rst,uce,Tst,Nst,Ace,fce,Mst,Ust,nx=It(()=>{Pt();rx=et(ve("os"));ix();Gl();Rst=Number(process.versions.node.split(".")[0]),uce=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Tst=typeof uce<"u"?async t=>{try{return await B4(uce,[t],{cwd:K.cwd()}),!0}catch{return!1}}:void 0,Nst="/usr/bin/ldd";Mst=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Ust=/\((\S*)(?::(\d+))(?::(\d+))\)/});function b4(t,e,r,o,a){let n=x1(r);if(o.isArray||o.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((u,A)=>v4(t,`${e}[${A}]`,u,o,a)):String(n).split(/,/).map(u=>v4(t,e,u,o,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return v4(t,e,r,o,a)}function v4(t,e,r,o,a){let n=x1(r);switch(o.type){case"ANY":return Bb(n);case"SHAPE":return Wst(t,e,r,o,a);case"MAP":return Yst(t,e,r,o,a)}if(n===null&&!o.isNullable&&o.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if(o.values?.includes(n))return n;let A=(()=>{if(o.type==="BOOLEAN"&&typeof n!="string")return f1(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof n}`);let p=LS(n,{env:t.env});switch(o.type){case"ABSOLUTE_PATH":{let h=a,E=eU(r);return E&&E[0]!=="<"&&(h=K.dirname(E)),K.resolve(h,Ae.toPortablePath(p))}case"LOCATOR_LOOSE":return Sf(p,!1);case"NUMBER":return parseInt(p);case"LOCATOR":return Sf(p);case"BOOLEAN":return f1(p);default:return p}})();if(o.values&&!o.values.includes(A))throw new Error(`Invalid value, expected one of ${o.values.join(", ")}`);return A}function Wst(t,e,r,o,a){let n=x1(r);if(typeof n!="object"||Array.isArray(n))throw new it(`Object configuration settings "${e}" must be an object`);let u=x4(t,o,{ignoreArrays:!0});if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=`${e}.${A}`;if(!o.properties[A])throw new it(`Unrecognized configuration settings found: ${e}.${A} - run "yarn config -v" to see the list of settings supported in Yarn`);u.set(A,b4(t,h,p,o.properties[A],a))}return u}function Yst(t,e,r,o,a){let n=x1(r),u=new Map;if(typeof n!="object"||Array.isArray(n))throw new it(`Map configuration settings "${e}" must be an object`);if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=o.normalizeKeys?o.normalizeKeys(A):A,E=`${e}['${h}']`,w=o.valueDefinition;u.set(h,b4(t,E,p,w,a))}return u}function x4(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let o=new Map;for(let[a,n]of Object.entries(e.properties))o.set(a,x4(t,n));return o}case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?Array.isArray(e.default)?e.default.map(o=>K.normalize(o)):K.isAbsolute(e.default)?K.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(o=>K.resolve(t.projectCwd,o)):K.resolve(t.projectCwd,e.default);default:return e.default}}function ox(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return Gst;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return Ae.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let o=[];for(let a of t)o.push(ox(a,e,r));return o}if(e.type==="MAP"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=ox(n,e.valueDefinition,r);typeof u<"u"&&o.set(a,u)}return o}if(e.type==="SHAPE"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=e.properties[a],A=ox(n,u,r);typeof A<"u"&&o.set(a,A)}return o}return t}function Kst(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(ax)&&(e=(0,hce.default)(e.slice(ax.length)),t[e]=r);return t}function P4(){let t=`${ax}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return S4}async function pce(t){try{return await ae.readFilePromise(t)}catch{return Buffer.of()}}async function Vst(t,e){return Buffer.compare(...await Promise.all([pce(t),pce(e)]))===0}async function Jst(t,e){let[r,o]=await Promise.all([ae.statPromise(t),ae.statPromise(e)]);return r.dev===o.dev&&r.ino===o.ino}async function Xst({configuration:t,selfPath:e}){let r=t.get("yarnPath");return t.get("ignorePath")||r===null||r===e||await zst(r,e)?null:r}var hce,Tf,gce,dce,mce,D4,qst,j1,jst,xy,ax,S4,Gst,G1,yce,lx,sx,zst,ze,W1=It(()=>{Pt();Ol();hce=et(jV()),Tf=et(sg());Gt();gce=et(LJ()),dce=ve("module"),mce=et(lg()),D4=ve("stream");Vse();Ay();YM();KM();VM();woe();JM();Dg();Soe();Db();Wl();ah();tx();Gl();nx();xf();Io();qst=function(){if(!Tf.GITHUB_ACTIONS||!process.env.GITHUB_EVENT_PATH)return!1;let t=Ae.toPortablePath(process.env.GITHUB_EVENT_PATH),e;try{e=ae.readJsonSync(t)}catch{return!1}return!(!("repository"in e)||!e.repository||(e.repository.private??!0))}(),j1=new Set(["@yarnpkg/plugin-constraints","@yarnpkg/plugin-exec","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]),jst=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","zipDataEpilogue","cacheCheckpointOverride","cacheVersionOverride","lockfileVersionOverride","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry","ignoreCwd"]),xy=/^(?!v)[a-z0-9._-]+$/i,ax="yarn_",S4=".yarnrc.yml",Gst="********",G1=(E=>(E.ANY="ANY",E.BOOLEAN="BOOLEAN",E.ABSOLUTE_PATH="ABSOLUTE_PATH",E.LOCATOR="LOCATOR",E.LOCATOR_LOOSE="LOCATOR_LOOSE",E.NUMBER="NUMBER",E.STRING="STRING",E.SECRET="SECRET",E.SHAPE="SHAPE",E.MAP="MAP",E))(G1||{}),yce=Ct,lx=(r=>(r.JUNCTIONS="junctions",r.SYMLINKS="symlinks",r))(lx||{}),sx={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:rU()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:0},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:P4()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!0},cacheMigrationMode:{description:"Defines the conditions under which Yarn upgrades should cause the cache archives to be regenerated.",type:"STRING",values:["always","match-spec","required-only"],default:"always"},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:US,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:lO,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Tf.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Tf.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},enableTips:{description:"If true, installs will print a helpful message every day of the week",type:"BOOLEAN",default:!Tf.isCI,defaultText:""},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, Yarn will refuse to use the network if required to",type:"BOOLEAN",default:!0},enableOfflineMode:{description:"If true, Yarn will attempt to retrieve files and metadata from the global cache rather than the network",type:"BOOLEAN",default:!1},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},taskPoolConcurrency:{description:"Maximal amount of concurrent heavy task processing",type:"NUMBER",default:w4()},taskPoolMode:{description:"Execution strategy for heavy tasks",type:"STRING",values:["async","workers"],default:"workers"},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{httpsCaFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},httpsCaFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(HS),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableHardenedMode:{description:"If true, automatically enable --check-resolutions --refresh-lockfile on installs",type:"BOOLEAN",default:Tf.isPR&&qst,defaultText:""},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},enableCacheClean:{description:"If false, disallows the `cache clean` command",type:"BOOLEAN",default:!0},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},injectEnvironmentFiles:{description:"List of all the environment files that Yarn should inject inside the process when it starts",type:"ABSOLUTE_PATH",default:[".env.yarn?"],isArray:!0},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};zst=process.platform==="win32"?Vst:Jst;ze=class t{constructor(e){this.isCI=Tf.isCI;this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.env={};this.limits=new Map;this.packageExtensions=null;this.startingCwd=e}static{this.deleteProperty=Symbol()}static{this.telemetry=null}static create(e,r,o){let a=new t(e);typeof r<"u"&&!(r instanceof Map)&&(a.projectCwd=r),a.importSettings(sx);let n=typeof o<"u"?o:r instanceof Map?r:new Map;for(let[u,A]of n)a.activatePlugin(u,A);return a}static async find(e,r,{strict:o=!0,usePathCheck:a=null,useRc:n=!0}={}){let u=Kst();delete u.rcFilename;let A=new t(e),p=await t.findRcFiles(e),h=await t.findFolderRcFile(my());h&&(p.find(Ie=>Ie.path===h.path)||p.unshift(h));let E=Poe(p.map(ue=>[ue.path,ue.data])),w=Bt.dot,D=new Set(Object.keys(sx)),x=({yarnPath:ue,ignorePath:Ie,injectEnvironmentFiles:he})=>({yarnPath:ue,ignorePath:Ie,injectEnvironmentFiles:he}),C=({yarnPath:ue,ignorePath:Ie,injectEnvironmentFiles:he,...De})=>{let Ee={};for(let[g,me]of Object.entries(De))D.has(g)&&(Ee[g]=me);return Ee},T=({yarnPath:ue,ignorePath:Ie,...he})=>{let De={};for(let[Ee,g]of Object.entries(he))D.has(Ee)||(De[Ee]=g);return De};if(A.importSettings(x(sx)),A.useWithSource("",x(u),e,{strict:!1}),E){let[ue,Ie]=E;A.useWithSource(ue,x(Ie),w,{strict:!1})}if(a){if(await Xst({configuration:A,selfPath:a})!==null)return A;A.useWithSource("",{ignorePath:!0},e,{strict:!1,overwrite:!0})}let L=await t.findProjectCwd(e);A.startingCwd=e,A.projectCwd=L;let U=Object.assign(Object.create(null),process.env);A.env=U;let J=await Promise.all(A.get("injectEnvironmentFiles").map(async ue=>{let Ie=ue.endsWith("?")?await ae.readFilePromise(ue.slice(0,-1),"utf8").catch(()=>""):await ae.readFilePromise(ue,"utf8");return(0,gce.parse)(Ie)}));for(let ue of J)for(let[Ie,he]of Object.entries(ue))A.env[Ie]=LS(he,{env:U});if(A.importSettings(C(sx)),A.useWithSource("",C(u),e,{strict:o}),E){let[ue,Ie]=E;A.useWithSource(ue,C(Ie),w,{strict:o})}let te=ue=>"default"in ue?ue.default:ue,le=new Map([["@@core",Kse]]);if(r!==null)for(let ue of r.plugins.keys())le.set(ue,te(r.modules.get(ue)));for(let[ue,Ie]of le)A.activatePlugin(ue,Ie);let ce=new Map([]);if(r!==null){let ue=new Map;for(let[De,Ee]of r.modules)ue.set(De,()=>Ee);let Ie=new Set,he=async(De,Ee)=>{let{factory:g,name:me}=vf(De);if(!g||Ie.has(me))return;let Ce=new Map(ue),fe=Z=>{if((0,dce.isBuiltin)(Z))return vf(Z);if(Ce.has(Z))return Ce.get(Z)();throw new it(`This plugin cannot access the package referenced via ${Z} which is neither a builtin, nor an exposed entry`)},ie=await zm(async()=>te(await g(fe)),Z=>`${Z} (when initializing ${me}, defined in ${Ee})`);ue.set(me,()=>ie),Ie.add(me),ce.set(me,ie)};if(u.plugins)for(let De of u.plugins.split(";")){let Ee=K.resolve(e,Ae.toPortablePath(De));await he(Ee,"")}for(let{path:De,cwd:Ee,data:g}of p)if(n&&Array.isArray(g.plugins))for(let me of g.plugins){let Ce=typeof me!="string"?me.path:me,fe=me?.spec??"",ie=me?.checksum??"";if(j1.has(fe))continue;let Z=K.resolve(Ee,Ae.toPortablePath(Ce));if(!await ae.existsPromise(Z)){if(!fe){let ht=Ut(A,K.basename(Z,".cjs"),Ct.NAME),q=Ut(A,".gitignore",Ct.NAME),nt=Ut(A,A.values.get("rcFilename"),Ct.NAME),Ne=Ut(A,"https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored",Ct.URL);throw new it(`Missing source for the ${ht} plugin - please try to remove the plugin from ${nt} then reinstall it manually. This error usually occurs because ${q} is incorrect, check ${Ne} to make sure your plugin folder isn't gitignored.`)}if(!fe.match(/^https?:/)){let ht=Ut(A,K.basename(Z,".cjs"),Ct.NAME),q=Ut(A,A.values.get("rcFilename"),Ct.NAME);throw new it(`Failed to recognize the source for the ${ht} plugin - please try to delete the plugin from ${q} then reinstall it manually.`)}let Pe=await E4(fe,{configuration:A}),Re=Ji(Pe);if(ie&&ie!==Re){let ht=Ut(A,K.basename(Z,".cjs"),Ct.NAME),q=Ut(A,A.values.get("rcFilename"),Ct.NAME),nt=Ut(A,`yarn plugin import ${fe}`,Ct.CODE);throw new it(`Failed to fetch the ${ht} plugin from its remote location: its checksum seems to have changed. If this is expected, please remove the plugin from ${q} then run ${nt} to reimport it.`)}await ae.mkdirPromise(K.dirname(Z),{recursive:!0}),await ae.writeFilePromise(Z,Pe)}await he(Z,De)}}for(let[ue,Ie]of ce)A.activatePlugin(ue,Ie);if(A.useWithSource("",T(u),e,{strict:o}),E){let[ue,Ie]=E;A.useWithSource(ue,T(Ie),w,{strict:o})}return A.get("enableGlobalCache")&&(A.values.set("cacheFolder",`${A.get("globalFolder")}/cache`),A.sources.set("cacheFolder","")),A}static async findRcFiles(e){let r=P4(),o=[],a=e,n=null;for(;a!==n;){n=a;let u=K.join(n,r);if(ae.existsSync(u)){let A=await ae.readFilePromise(u,"utf8"),p;try{p=Ki(A)}catch{let E="";throw A.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(E=" (in particular, make sure you list the colons after each key name)"),new it(`Parse error when loading ${u}; please check it's proper Yaml${E}`)}o.unshift({path:u,cwd:n,data:p})}a=K.dirname(n)}return o}static async findFolderRcFile(e){let r=K.join(e,mr.rc),o;try{o=await ae.readFilePromise(r,"utf8")}catch(n){if(n.code==="ENOENT")return null;throw n}let a=Ki(o);return{path:r,cwd:e,data:a}}static async findProjectCwd(e){let r=null,o=e,a=null;for(;o!==a;){if(a=o,ae.existsSync(K.join(a,mr.lockfile)))return a;ae.existsSync(K.join(a,mr.manifest))&&(r=a),o=K.dirname(a)}return r}static async updateConfiguration(e,r,o={}){let a=P4(),n=K.join(e,a),u=ae.existsSync(n)?Ki(await ae.readFilePromise(n,"utf8")):{},A=!1,p;if(typeof r=="function"){try{p=r(u)}catch{p=r({})}if(p===u)return!1}else{p=u;for(let h of Object.keys(r)){let E=u[h],w=r[h],D;if(typeof w=="function")try{D=w(E)}catch{D=w(void 0)}else D=w;E!==D&&(D===t.deleteProperty?delete p[h]:p[h]=D,A=!0)}if(!A)return!1}return await ae.changeFilePromise(n,Pa(p),{automaticNewlines:!0}),!0}static async addPlugin(e,r){r.length!==0&&await t.updateConfiguration(e,o=>{let a=o.plugins??[];if(a.length===0)return{...o,plugins:r};let n=[],u=[...r];for(let A of a){let p=typeof A!="string"?A.path:A,h=u.find(E=>E.path===p);h?(n.push(h),u=u.filter(E=>E!==h)):n.push(A)}return n.push(...u),{...o,plugins:n}})}static async updateHomeConfiguration(e){let r=my();return await t.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<"u"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,o]of Object.entries(e))if(o!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,o),this.values.set(r,x4(this,o))}}useWithSource(e,r,o,a){try{this.use(e,r,o,a)}catch(n){throw n.message+=` (in ${Ut(this,e,Ct.PATH)})`,n}}use(e,r,o,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get("enableStrictSettings");for(let u of["enableStrictSettings",...Object.keys(r)]){let A=r[u],p=eU(A);if(p&&(e=p),typeof A>"u"||u==="plugins"||e===""&&jst.has(u))continue;if(u==="rcFilename")throw new it(`The rcFilename settings can only be set via ${`${ax}RC_FILENAME`.toUpperCase()}, not via a rc file`);let h=this.settings.get(u);if(!h){let w=my(),D=e[0]!=="<"?K.dirname(e):null;if(a&&!(D!==null?w===D:!1))throw new it(`Unrecognized or legacy configuration settings found: ${u} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(u,e);continue}if(this.sources.has(u)&&!(n||h.type==="MAP"||h.isArray&&h.concatenateValues))continue;let E;try{E=b4(this,u,A,h,o)}catch(w){throw w.message+=` in ${Ut(this,e,Ct.PATH)}`,w}if(u==="enableStrictSettings"&&e!==""){a=E;continue}if(h.type==="MAP"){let w=this.values.get(u);this.values.set(u,new Map(n?[...w,...E]:[...E,...w])),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else if(h.isArray&&h.concatenateValues){let w=this.values.get(u);this.values.set(u,n?[...w,...E]:[...E,...w]),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else this.values.set(u,E),this.sources.set(u,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:o=!1}){let a=this.get(e),n=this.settings.get(e);if(typeof n>"u")throw new it(`Couldn't find a configuration settings named "${e}"`);return ox(a,n,{hideSecrets:r,getNativePaths:o})}getSubprocessStreams(e,{header:r,prefix:o,report:a}){let n,u,A=ae.createWriteStream(e);if(this.get("enableInlineBuilds")){let p=a.createStreamReporter(`${o} ${Ut(this,"STDOUT","green")}`),h=a.createStreamReporter(`${o} ${Ut(this,"STDERR","red")}`);n=new D4.PassThrough,n.pipe(p),n.pipe(A),u=new D4.PassThrough,u.pipe(h),u.pipe(A)}else n=A,u=A,typeof r<"u"&&n.write(`${r} +`);return{stdout:n,stderr:u}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let o of r.resolvers||[])e.push(new o);return new Pg([new wb,new ci,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let o of r.fetchers||[])e.push(new o);return new py([new hy,new gy,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let o of r.linkers||[])e.push(new o);return e}getSupportedArchitectures(){let e=q1(),r=this.get("supportedArchitectures"),o=r.get("os");o!==null&&(o=o.map(u=>u==="current"?e.os:u));let a=r.get("cpu");a!==null&&(a=a.map(u=>u==="current"?e.cpu:u));let n=r.get("libc");return n!==null&&(n=ul(n,u=>u==="current"?e.libc??ul.skip:u)),{os:o,cpu:a,libc:n}}isInteractive({interactive:e,stdout:r}){return r.isTTY?e??this.get("preferInteractive"):!1}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let e=this.packageExtensions,r=(o,a,{userProvided:n=!1}={})=>{if(!Fa(o.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let u=new _t;u.load(a,{yamlCompatibilityMode:!0});let A=u1(e,o.identHash),p=[];A.push([o.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:o};for(let E of u.dependencies.values())p.push({...h,type:"Dependency",descriptor:E});for(let E of u.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:E});for(let[E,w]of u.peerDependenciesMeta)for(let[D,x]of Object.entries(w))p.push({...h,type:"PeerDependencyMeta",selector:E,key:D,value:x})};await this.triggerHook(o=>o.registerPackageExtensions,this,r);for(let[o,a]of this.get("packageExtensions"))r(lh(o,!0),NS(a),{userProvided:!0});return e}normalizeLocator(e){return Fa(e.reference)?Ss(e,`${this.get("defaultProtocol")}${e.reference}`):xy.test(e.reference)?Ss(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return Fa(e.range)?kn(e,`${this.get("defaultProtocol")}${e.range}`):xy.test(e.range)?kn(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,o])=>[r,this.normalizeDependency(o)]))}normalizePackage(e,{packageExtensions:r}){let o=E1(e),a=r.get(e.identHash);if(typeof a<"u"){let u=e.version;if(u!==null){for(let[A,p]of a)if(nA(u,A))for(let h of p)switch(h.status==="inactive"&&(h.status="redundant"),h.type){case"Dependency":typeof o.dependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.dependencies.set(h.descriptor.identHash,this.normalizeDependency(h.descriptor)));break;case"PeerDependency":typeof o.peerDependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.peerDependencies.set(h.descriptor.identHash,h.descriptor));break;case"PeerDependencyMeta":{let E=o.peerDependenciesMeta.get(h.selector);(typeof E>"u"||!Object.hasOwn(E,h.key)||E[h.key]!==h.value)&&(h.status="active",Al(o.peerDependenciesMeta,h.selector,()=>({}))[h.key]=h.value)}break;default:tO(h)}}}let n=u=>u.scope?`${u.scope}__${u.name}`:`${u.name}`;for(let u of o.peerDependenciesMeta.keys()){let A=Zo(u);o.peerDependencies.has(A.identHash)||o.peerDependencies.set(A.identHash,kn(A,"*"))}for(let u of o.peerDependencies.values()){if(u.scope==="types")continue;let A=n(u),p=rA("types",A),h=rn(p);o.peerDependencies.has(p.identHash)||o.peerDependenciesMeta.has(h)||(o.peerDependencies.set(p.identHash,kn(p,"*")),o.peerDependenciesMeta.set(h,{optional:!0}))}return o.dependencies=new Map(Ps(o.dependencies,([,u])=>ka(u))),o.peerDependencies=new Map(Ps(o.peerDependencies,([,u])=>ka(u))),o}getLimit(e){return Al(this.limits,e,()=>(0,mce.default)(this.get(e)))}async triggerHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);n&&await n(...r)}}async triggerMultipleHooks(e,r){for(let o of r)await this.triggerHook(e,...o)}async reduceHook(e,r,...o){let a=r;for(let n of this.plugins.values()){let u=n.hooks;if(!u)continue;let A=e(u);A&&(a=await A(a,...o))}return a}async firstHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);if(!n)continue;let u=await n(...r);if(typeof u<"u")return u}return null}}});var Hr={};Kt(Hr,{EndStrategy:()=>R4,ExecError:()=>cx,PipeError:()=>Y1,execvp:()=>B4,pipevp:()=>Xc});function kg(t){return t!==null&&typeof t.fd=="number"}function k4(){}function Q4(){for(let t of Qg)t.kill()}async function Xc(t,e,{cwd:r,env:o=process.env,strict:a=!1,stdin:n=null,stdout:u,stderr:A,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":kg(n)&&(h[0]=n),kg(u)&&(h[1]=u),kg(A)&&(h[2]=A);let E=(0,F4.default)(t,e,{cwd:Ae.fromPortablePath(r),env:{...o,PWD:Ae.fromPortablePath(r)},stdio:h});Qg.add(E),Qg.size===1&&(process.on("SIGINT",k4),process.on("SIGTERM",Q4)),!kg(n)&&n!==null&&n.pipe(E.stdin),kg(u)||E.stdout.pipe(u,{end:!1}),kg(A)||E.stderr.pipe(A,{end:!1});let w=()=>{for(let D of new Set([u,A]))kg(D)||D.end()};return new Promise((D,x)=>{E.on("error",C=>{Qg.delete(E),Qg.size===0&&(process.off("SIGINT",k4),process.off("SIGTERM",Q4)),(p===2||p===1)&&w(),x(C)}),E.on("close",(C,T)=>{Qg.delete(E),Qg.size===0&&(process.off("SIGINT",k4),process.off("SIGTERM",Q4)),(p===2||p===1&&C!==0)&&w(),C===0||!a?D({code:T4(C,T)}):x(new Y1({fileName:t,code:C,signal:T}))})})}async function B4(t,e,{cwd:r,env:o=process.env,encoding:a="utf8",strict:n=!1}){let u=["ignore","pipe","pipe"],A=[],p=[],h=Ae.fromPortablePath(r);typeof o.PWD<"u"&&(o={...o,PWD:h});let E=(0,F4.default)(t,e,{cwd:h,env:o,stdio:u});return E.stdout.on("data",w=>{A.push(w)}),E.stderr.on("data",w=>{p.push(w)}),await new Promise((w,D)=>{E.on("error",x=>{let C=ze.create(r),T=Ut(C,t,Ct.PATH);D(new Jt(1,`Process ${T} failed to spawn`,L=>{L.reportError(1,` ${$u(C,{label:"Thrown Error",value:Yc(Ct.NO_HINT,x.message)})}`)}))}),E.on("close",(x,C)=>{let T=a==="buffer"?Buffer.concat(A):Buffer.concat(A).toString(a),L=a==="buffer"?Buffer.concat(p):Buffer.concat(p).toString(a);x===0||!n?w({code:T4(x,C),stdout:T,stderr:L}):D(new cx({fileName:t,code:x,signal:C,stdout:T,stderr:L}))})})}function T4(t,e){let r=Zst.get(e);return typeof r<"u"?128+r:t??1}function $st(t,e,{configuration:r,report:o}){o.reportError(1,` ${$u(r,t!==null?{label:"Exit Code",value:Yc(Ct.NUMBER,t)}:{label:"Exit Signal",value:Yc(Ct.CODE,e)})}`)}var F4,R4,Y1,cx,Qg,Zst,ix=It(()=>{Pt();F4=et(MT());W1();Vl();Wl();R4=(o=>(o[o.Never=0]="Never",o[o.ErrorCode=1]="ErrorCode",o[o.Always=2]="Always",o))(R4||{}),Y1=class extends Jt{constructor({fileName:e,code:r,signal:o}){let a=ze.create(K.cwd()),n=Ut(a,e,Ct.PATH);super(1,`Child ${n} reported an error`,u=>{$st(r,o,{configuration:a,report:u})}),this.code=T4(r,o)}},cx=class extends Y1{constructor({fileName:e,code:r,signal:o,stdout:a,stderr:n}){super({fileName:e,code:r,signal:o}),this.stdout=a,this.stderr=n}};Qg=new Set;Zst=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]])});function Cce(t){Ece=t}function K1(){return typeof N4>"u"&&(N4=Ece()),N4}var N4,Ece,L4=It(()=>{Ece=()=>{throw new Error("Assertion failed: No libzip instance is available, and no factory was configured")}});var Ice=_((ux,M4)=>{var eot=Object.assign({},ve("fs")),O4=function(){var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(t=t||__filename),function(e){e=e||{};var r=typeof e<"u"?e:{},o,a;r.ready=new Promise(function(Je,st){o=Je,a=st});var n={},u;for(u in r)r.hasOwnProperty(u)&&(n[u]=r[u]);var A=[],p="./this.program",h=function(Je,st){throw st},E=!1,w=!0,D="";function x(Je){return r.locateFile?r.locateFile(Je,D):D+Je}var C,T,L,U;w&&(E?D=ve("path").dirname(D)+"/":D=__dirname+"/",C=function(st,vt){var ar=ia(st);return ar?vt?ar:ar.toString():(L||(L=eot),U||(U=ve("path")),st=U.normalize(st),L.readFileSync(st,vt?null:"utf8"))},T=function(st){var vt=C(st,!0);return vt.buffer||(vt=new Uint8Array(vt)),me(vt.buffer),vt},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),A=process.argv.slice(2),h=function(Je){process.exit(Je)},r.inspect=function(){return"[Emscripten Module object]"});var J=r.print||console.log.bind(console),te=r.printErr||console.warn.bind(console);for(u in n)n.hasOwnProperty(u)&&(r[u]=n[u]);n=null,r.arguments&&(A=r.arguments),r.thisProgram&&(p=r.thisProgram),r.quit&&(h=r.quit);var le=0,ce=function(Je){le=Je},ue;r.wasmBinary&&(ue=r.wasmBinary);var Ie=r.noExitRuntime||!0;typeof WebAssembly!="object"&&Hi("no native wasm support detected");function he(Je,st,vt){switch(st=st||"i8",st.charAt(st.length-1)==="*"&&(st="i32"),st){case"i1":return Ve[Je>>0];case"i8":return Ve[Je>>0];case"i16":return ap((Je>>1)*2);case"i32":return Rs((Je>>2)*4);case"i64":return Rs((Je>>2)*4);case"float":return gu((Je>>2)*4);case"double":return op((Je>>3)*8);default:Hi("invalid type for getValue: "+st)}return null}var De,Ee=!1,g;function me(Je,st){Je||Hi("Assertion failed: "+st)}function Ce(Je){var st=r["_"+Je];return me(st,"Cannot call unknown function "+Je+", make sure it is exported"),st}function fe(Je,st,vt,ar,ee){var ye={string:function(Qi){var Pn=0;if(Qi!=null&&Qi!==0){var fa=(Qi.length<<2)+1;Pn=pi(fa),ht(Qi,Pn,fa)}return Pn},array:function(Qi){var Pn=pi(Qi.length);return Ne(Qi,Pn),Pn}};function Le(Qi){return st==="string"?Pe(Qi):st==="boolean"?!!Qi:Qi}var gt=Ce(Je),mt=[],Dt=0;if(ar)for(var er=0;er=vt)&&be[ar];)++ar;return Z.decode(be.subarray(Je,ar))}function Re(Je,st,vt,ar){if(!(ar>0))return 0;for(var ee=vt,ye=vt+ar-1,Le=0;Le=55296&><=57343){var mt=Je.charCodeAt(++Le);gt=65536+((gt&1023)<<10)|mt&1023}if(gt<=127){if(vt>=ye)break;st[vt++]=gt}else if(gt<=2047){if(vt+1>=ye)break;st[vt++]=192|gt>>6,st[vt++]=128|gt&63}else if(gt<=65535){if(vt+2>=ye)break;st[vt++]=224|gt>>12,st[vt++]=128|gt>>6&63,st[vt++]=128|gt&63}else{if(vt+3>=ye)break;st[vt++]=240|gt>>18,st[vt++]=128|gt>>12&63,st[vt++]=128|gt>>6&63,st[vt++]=128|gt&63}}return st[vt]=0,vt-ee}function ht(Je,st,vt){return Re(Je,be,st,vt)}function q(Je){for(var st=0,vt=0;vt=55296&&ar<=57343&&(ar=65536+((ar&1023)<<10)|Je.charCodeAt(++vt)&1023),ar<=127?++st:ar<=2047?st+=2:ar<=65535?st+=3:st+=4}return st}function nt(Je){var st=q(Je)+1,vt=aa(st);return vt&&Re(Je,Ve,vt,st),vt}function Ne(Je,st){Ve.set(Je,st)}function Te(Je,st){return Je%st>0&&(Je+=st-Je%st),Je}var ke,Ve,be,tt,He,b,I,S,y,R;function z(Je){ke=Je,r.HEAP_DATA_VIEW=R=new DataView(Je),r.HEAP8=Ve=new Int8Array(Je),r.HEAP16=tt=new Int16Array(Je),r.HEAP32=b=new Int32Array(Je),r.HEAPU8=be=new Uint8Array(Je),r.HEAPU16=He=new Uint16Array(Je),r.HEAPU32=I=new Uint32Array(Je),r.HEAPF32=S=new Float32Array(Je),r.HEAPF64=y=new Float64Array(Je)}var X=r.INITIAL_MEMORY||16777216,$,se=[],xe=[],Fe=[],lt=!1;function Et(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)St(r.preRun.shift());hs(se)}function qt(){lt=!0,hs(xe)}function nr(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)Pr(r.postRun.shift());hs(Fe)}function St(Je){se.unshift(Je)}function cn(Je){xe.unshift(Je)}function Pr(Je){Fe.unshift(Je)}var yr=0,Rr=null,Xr=null;function $n(Je){yr++,r.monitorRunDependencies&&r.monitorRunDependencies(yr)}function Xs(Je){if(yr--,r.monitorRunDependencies&&r.monitorRunDependencies(yr),yr==0&&(Rr!==null&&(clearInterval(Rr),Rr=null),Xr)){var st=Xr;Xr=null,st()}}r.preloadedImages={},r.preloadedAudios={};function Hi(Je){r.onAbort&&r.onAbort(Je),Je+="",te(Je),Ee=!0,g=1,Je="abort("+Je+"). Build with -s ASSERTIONS=1 for more info.";var st=new WebAssembly.RuntimeError(Je);throw a(st),st}var Qs="data:application/octet-stream;base64,";function Zs(Je){return Je.startsWith(Qs)}var xi="data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w==";Zs(xi)||(xi=x(xi));function Fs(Je){try{if(Je==xi&&ue)return new Uint8Array(ue);var st=ia(Je);if(st)return st;if(T)return T(Je);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(vt){Hi(vt)}}function $s(Je,st){var vt,ar,ee;try{ee=Fs(Je),ar=new WebAssembly.Module(ee),vt=new WebAssembly.Instance(ar,st)}catch(Le){var ye=Le.toString();throw te("failed to compile wasm module: "+ye),(ye.includes("imported Memory")||ye.includes("memory import"))&&te("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),Le}return[vt,ar]}function SA(){var Je={a:dc};function st(ee,ye){var Le=ee.exports;r.asm=Le,De=r.asm.g,z(De.buffer),$=r.asm.W,cn(r.asm.h),Xs("wasm-instantiate")}if($n("wasm-instantiate"),r.instantiateWasm)try{var vt=r.instantiateWasm(Je,st);return vt}catch(ee){return te("Module.instantiateWasm callback failed with error: "+ee),!1}var ar=$s(xi,Je);return st(ar[0]),r.asm}function gu(Je){return R.getFloat32(Je,!0)}function op(Je){return R.getFloat64(Je,!0)}function ap(Je){return R.getInt16(Je,!0)}function Rs(Je){return R.getInt32(Je,!0)}function Ln(Je,st){R.setInt32(Je,st,!0)}function hs(Je){for(;Je.length>0;){var st=Je.shift();if(typeof st=="function"){st(r);continue}var vt=st.func;typeof vt=="number"?st.arg===void 0?$.get(vt)():$.get(vt)(st.arg):vt(st.arg===void 0?null:st.arg)}}function Ts(Je,st){var vt=new Date(Rs((Je>>2)*4)*1e3);Ln((st>>2)*4,vt.getUTCSeconds()),Ln((st+4>>2)*4,vt.getUTCMinutes()),Ln((st+8>>2)*4,vt.getUTCHours()),Ln((st+12>>2)*4,vt.getUTCDate()),Ln((st+16>>2)*4,vt.getUTCMonth()),Ln((st+20>>2)*4,vt.getUTCFullYear()-1900),Ln((st+24>>2)*4,vt.getUTCDay()),Ln((st+36>>2)*4,0),Ln((st+32>>2)*4,0);var ar=Date.UTC(vt.getUTCFullYear(),0,1,0,0,0,0),ee=(vt.getTime()-ar)/(1e3*60*60*24)|0;return Ln((st+28>>2)*4,ee),Ts.GMTString||(Ts.GMTString=nt("GMT")),Ln((st+40>>2)*4,Ts.GMTString),st}function pc(Je,st){return Ts(Je,st)}function hc(Je,st,vt){be.copyWithin(Je,st,st+vt)}function gc(Je){try{return De.grow(Je-ke.byteLength+65535>>>16),z(De.buffer),1}catch{}}function bA(Je){var st=be.length;Je=Je>>>0;var vt=2147483648;if(Je>vt)return!1;for(var ar=1;ar<=4;ar*=2){var ee=st*(1+.2/ar);ee=Math.min(ee,Je+100663296);var ye=Math.min(vt,Te(Math.max(Je,ee),65536)),Le=gc(ye);if(Le)return!0}return!1}function xA(Je){ce(Je)}function Ro(Je){var st=Date.now()/1e3|0;return Je&&Ln((Je>>2)*4,st),st}function To(){if(To.called)return;To.called=!0;var Je=new Date().getFullYear(),st=new Date(Je,0,1),vt=new Date(Je,6,1),ar=st.getTimezoneOffset(),ee=vt.getTimezoneOffset(),ye=Math.max(ar,ee);Ln((ja()>>2)*4,ye*60),Ln((rs()>>2)*4,+(ar!=ee));function Le(sn){var ei=sn.toTimeString().match(/\(([A-Za-z ]+)\)$/);return ei?ei[1]:"GMT"}var gt=Le(st),mt=Le(vt),Dt=nt(gt),er=nt(mt);ee>2)*4,Dt),Ln((Di()+4>>2)*4,er)):(Ln((Di()>>2)*4,er),Ln((Di()+4>>2)*4,Dt))}function kA(Je){To();var st=Date.UTC(Rs((Je+20>>2)*4)+1900,Rs((Je+16>>2)*4),Rs((Je+12>>2)*4),Rs((Je+8>>2)*4),Rs((Je+4>>2)*4),Rs((Je>>2)*4),0),vt=new Date(st);Ln((Je+24>>2)*4,vt.getUTCDay());var ar=Date.UTC(vt.getUTCFullYear(),0,1,0,0,0,0),ee=(vt.getTime()-ar)/(1e3*60*60*24)|0;return Ln((Je+28>>2)*4,ee),vt.getTime()/1e3|0}var pr=typeof atob=="function"?atob:function(Je){var st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",vt="",ar,ee,ye,Le,gt,mt,Dt,er=0;Je=Je.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Le=st.indexOf(Je.charAt(er++)),gt=st.indexOf(Je.charAt(er++)),mt=st.indexOf(Je.charAt(er++)),Dt=st.indexOf(Je.charAt(er++)),ar=Le<<2|gt>>4,ee=(gt&15)<<4|mt>>2,ye=(mt&3)<<6|Dt,vt=vt+String.fromCharCode(ar),mt!==64&&(vt=vt+String.fromCharCode(ee)),Dt!==64&&(vt=vt+String.fromCharCode(ye));while(er0||(Et(),yr>0))return;function st(){Dn||(Dn=!0,r.calledRun=!0,!Ee&&(qt(),o(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),nr()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),st()},1)):st()}if(r.run=Sl,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Sl(),e}}();typeof ux=="object"&&typeof M4=="object"?M4.exports=O4:typeof define=="function"&&define.amd?define([],function(){return O4}):typeof ux=="object"&&(ux.createModule=O4)});var Nf,wce,Bce,vce=It(()=>{Nf=["number","number"],wce=(Z=>(Z[Z.ZIP_ER_OK=0]="ZIP_ER_OK",Z[Z.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",Z[Z.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",Z[Z.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",Z[Z.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",Z[Z.ZIP_ER_READ=5]="ZIP_ER_READ",Z[Z.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",Z[Z.ZIP_ER_CRC=7]="ZIP_ER_CRC",Z[Z.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",Z[Z.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",Z[Z.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",Z[Z.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",Z[Z.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",Z[Z.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",Z[Z.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",Z[Z.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",Z[Z.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",Z[Z.ZIP_ER_EOF=17]="ZIP_ER_EOF",Z[Z.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",Z[Z.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",Z[Z.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",Z[Z.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",Z[Z.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",Z[Z.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",Z[Z.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",Z[Z.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",Z[Z.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",Z[Z.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",Z[Z.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",Z[Z.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",Z[Z.ZIP_ER_TELL=30]="ZIP_ER_TELL",Z[Z.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",Z))(wce||{}),Bce=t=>({get HEAPU8(){return t.HEAPU8},errors:wce,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_EXCL:2,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint32S:t._malloc(4),malloc:t._malloc,free:t._free,getValue:t.getValue,openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...Nf,"number","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...Nf,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...Nf,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...Nf,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...Nf,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...Nf,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number",...Nf,"number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...Nf,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...Nf,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"])},struct:{statS:t.cwrap("zipstruct_statS","number",[]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}})});function U4(t,e){let r=t.indexOf(e);if(r<=0)return null;let o=r;for(;r>=0&&(o=r+e.length,t[o]!==K.sep);){if(t[r-1]===K.sep)return null;r=t.indexOf(e,o)}return t.length>o&&t[o]!==K.sep?null:t.slice(0,o)}var iA,Dce=It(()=>{Pt();Pt();sA();iA=class t extends Gp{static async openPromise(e,r){let o=new t(r);try{return await e(o)}finally{o.saveAndClose()}}constructor(e={}){let r=e.fileExtensions,o=e.readOnlyArchives,a=typeof r>"u"?A=>U4(A,".zip"):A=>{for(let p of r){let h=U4(A,p);if(h)return h}return null},n=(A,p)=>new Zi(p,{baseFs:A,readOnly:o,stats:A.statSync(p)}),u=async(A,p)=>{let h={baseFs:A,readOnly:o,stats:await A.statPromise(p)};return()=>new Zi(p,h)};super({...e,factorySync:n,factoryPromise:u,getMountPoint:a})}}});function tot(t){if(typeof t=="string"&&String(+t)===t)return+t;if(typeof t=="number"&&Number.isFinite(t))return t<0?Date.now()/1e3:t;if(Pce.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function Ax(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var ta,_4,Pce,H4,Sce,fx,Zi,q4=It(()=>{Pt();Pt();Pt();Pt();Pt();Pt();ta=ve("fs"),_4=ve("stream"),Pce=ve("util"),H4=et(ve("zlib"));L4();Sce="mixed";fx=class extends Error{constructor(e,r){super(e),this.name="Libzip Error",this.code=r}},Zi=class extends qu{constructor(r,o={}){super();this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;let a=o;if(this.level=typeof a.level<"u"?a.level:Sce,r??=Ax(),typeof r=="string"){let{baseFs:A=new _n}=a;this.baseFs=A,this.path=r}else this.path=null,this.baseFs=null;if(o.stats)this.stats=o.stats;else if(typeof r=="string")try{this.stats=this.baseFs.statSync(r)}catch(A){if(A.code==="ENOENT"&&a.create)this.stats=wa.makeDefaultStats();else throw A}else this.stats=wa.makeDefaultStats();this.libzip=K1();let n=this.libzip.malloc(4);try{let A=0;o.readOnly&&(A|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof r=="string"&&(r=a.create?Ax():this.baseFs.readFileSync(r));let p=this.allocateUnattachedSource(r);try{this.zip=this.libzip.openFromSource(p,A,n),this.lzSource=p}catch(h){throw this.libzip.source.free(p),h}if(this.zip===0){let h=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(h,this.libzip.getValue(n,"i32")),this.makeLibzipError(h)}}finally{this.libzip.free(n)}this.listings.set(Bt.root,new Set);let u=this.libzip.getNumEntries(this.zip,0);for(let A=0;Ar)throw new Error("Overread");let n=Buffer.from(this.libzip.HEAPU8.subarray(o,o+r));return process.env.YARN_IS_TEST_ENV&&process.env.YARN_ZIP_DATA_EPILOGUE&&(n=Buffer.concat([n,Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)])),n}finally{this.libzip.free(o)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.readOnly){this.discardAndClose();return}let r=this.baseFs.existsSync(this.path)||this.stats.mode===wa.DEFAULT_MODE?void 0:this.stats.mode;this.baseFs.writeFileSync(this.path,this.getBufferAndClose(),{mode:r}),this.ready=!1}resolve(r){return K.resolve(Bt.root,r)}async openPromise(r,o,a){return this.openSync(r,o,a)}openSync(r,o,a){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:r}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(r,o){return this.opendirSync(r,o)}opendirSync(r,o={}){let a=this.resolveFilename(`opendir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`opendir '${r}'`);let n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`opendir '${r}'`);let u=[...n],A=this.openSync(a,"r");return eP(this,a,u,{onClose:()=>{this.closeSync(A)}})}async readPromise(r,o,a,n,u){return this.readSync(r,o,a,n,u)}readSync(r,o,a=0,n=o.byteLength,u=-1){let A=this.fds.get(r);if(typeof A>"u")throw sr.EBADF("read");let p=u===-1||u===null?A.cursor:u,h=this.readFileSync(A.p);h.copy(o,a,p,p+n);let E=Math.max(0,Math.min(h.length-p,n));return(u===-1||u===null)&&(A.cursor+=E),E}async writePromise(r,o,a,n,u){return typeof o=="string"?this.writeSync(r,o,u):this.writeSync(r,o,a,n,u)}writeSync(r,o,a,n,u){throw typeof this.fds.get(r)>"u"?sr.EBADF("read"):new Error("Unimplemented")}async closePromise(r){return this.closeSync(r)}closeSync(r){if(typeof this.fds.get(r)>"u")throw sr.EBADF("read");this.fds.delete(r)}createReadStream(r,{encoding:o}={}){if(r===null)throw new Error("Unimplemented");let a=this.openSync(r,"r"),n=Object.assign(new _4.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(A,p)=>{clearImmediate(u),this.closeSync(a),p(A)}}),{close(){n.destroy()},bytesRead:0,path:r,pending:!1}),u=setImmediate(async()=>{try{let A=await this.readFilePromise(r,o);n.bytesRead=A.length,n.end(A)}catch(A){n.destroy(A)}});return n}createWriteStream(r,{encoding:o}={}){if(this.readOnly)throw sr.EROFS(`open '${r}'`);if(r===null)throw new Error("Unimplemented");let a=[],n=this.openSync(r,"w"),u=Object.assign(new _4.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(A,p)=>{try{A?p(A):(this.writeFileSync(r,Buffer.concat(a),o),p(null))}catch(h){p(h)}finally{this.closeSync(n)}}}),{close(){u.destroy()},bytesWritten:0,path:r,pending:!1});return u.on("data",A=>{let p=Buffer.from(A);u.bytesWritten+=p.length,a.push(p)}),u}async realpathPromise(r){return this.realpathSync(r)}realpathSync(r){let o=this.resolveFilename(`lstat '${r}'`,r);if(!this.entries.has(o)&&!this.listings.has(o))throw sr.ENOENT(`lstat '${r}'`);return o}async existsPromise(r){return this.existsSync(r)}existsSync(r){if(!this.ready)throw sr.EBUSY(`archive closed, existsSync '${r}'`);if(this.symlinkCount===0){let a=K.resolve(Bt.root,r);return this.entries.has(a)||this.listings.has(a)}let o;try{o=this.resolveFilename(`stat '${r}'`,r,void 0,!1)}catch{return!1}return o===void 0?!1:this.entries.has(o)||this.listings.has(o)}async accessPromise(r,o){return this.accessSync(r,o)}accessSync(r,o=ta.constants.F_OK){let a=this.resolveFilename(`access '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`access '${r}'`);if(this.readOnly&&o&ta.constants.W_OK)throw sr.EROFS(`access '${r}'`)}async statPromise(r,o={bigint:!1}){return o.bigint?this.statSync(r,{bigint:!0}):this.statSync(r)}statSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`stat '${r}'`,r,void 0,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw sr.ENOENT(`stat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`stat '${r}'`);return this.statImpl(`stat '${r}'`,a,o)}}async fstatPromise(r,o){return this.fstatSync(r,o)}fstatSync(r,o){let a=this.fds.get(r);if(typeof a>"u")throw sr.EBADF("fstatSync");let{p:n}=a,u=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(u)&&!this.listings.has(u))throw sr.ENOENT(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(u))throw sr.ENOTDIR(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,u,o)}async lstatPromise(r,o={bigint:!1}){return o.bigint?this.lstatSync(r,{bigint:!0}):this.lstatSync(r)}lstatSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`lstat '${r}'`,r,!1,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw sr.ENOENT(`lstat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`lstat '${r}'`);return this.statImpl(`lstat '${r}'`,a,o)}}statImpl(r,o,a={}){let n=this.entries.get(o);if(typeof n<"u"){let u=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,u)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let p=this.stats.uid,h=this.stats.gid,E=this.libzip.struct.statSize(u)>>>0,w=512,D=Math.ceil(E/w),x=(this.libzip.struct.statMtime(u)>>>0)*1e3,C=x,T=x,L=x,U=new Date(C),J=new Date(T),te=new Date(L),le=new Date(x),ce=this.listings.has(o)?ta.constants.S_IFDIR:this.isSymbolicLink(n)?ta.constants.S_IFLNK:ta.constants.S_IFREG,ue=ce===ta.constants.S_IFDIR?493:420,Ie=ce|this.getUnixMode(n,ue)&511,he=this.libzip.struct.statCrc(u),De=Object.assign(new wa.StatEntry,{uid:p,gid:h,size:E,blksize:w,blocks:D,atime:U,birthtime:J,ctime:te,mtime:le,atimeMs:C,birthtimeMs:T,ctimeMs:L,mtimeMs:x,mode:Ie,crc:he});return a.bigint===!0?wa.convertToBigIntStats(De):De}if(this.listings.has(o)){let u=this.stats.uid,A=this.stats.gid,p=0,h=512,E=0,w=this.stats.mtimeMs,D=this.stats.mtimeMs,x=this.stats.mtimeMs,C=this.stats.mtimeMs,T=new Date(w),L=new Date(D),U=new Date(x),J=new Date(C),te=ta.constants.S_IFDIR|493,ce=Object.assign(new wa.StatEntry,{uid:u,gid:A,size:p,blksize:h,blocks:E,atime:T,birthtime:L,ctime:U,mtime:J,atimeMs:w,birthtimeMs:D,ctimeMs:x,mtimeMs:C,mode:te,crc:0});return a.bigint===!0?wa.convertToBigIntStats(ce):ce}throw new Error("Unreachable")}getUnixMode(r,o){if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?o:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(r){let o=this.listings.get(r);if(o)return o;this.registerListing(K.dirname(r)).add(K.basename(r));let n=new Set;return this.listings.set(r,n),n}registerEntry(r,o){this.registerListing(K.dirname(r)).add(K.basename(r)),this.entries.set(r,o)}unregisterListing(r){this.listings.delete(r),this.listings.get(K.dirname(r))?.delete(K.basename(r))}unregisterEntry(r){this.unregisterListing(r);let o=this.entries.get(r);this.entries.delete(r),!(typeof o>"u")&&(this.fileSources.delete(o),this.isSymbolicLink(o)&&this.symlinkCount--)}deleteEntry(r,o){if(this.unregisterEntry(r),this.libzip.delete(this.zip,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(r,o,a=!0,n=!0){if(!this.ready)throw sr.EBUSY(`archive closed, ${r}`);let u=K.resolve(Bt.root,o);if(u==="/")return Bt.root;let A=this.entries.get(u);if(a&&A!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(A)){let p=this.getFileSource(A).toString();return this.resolveFilename(r,K.resolve(K.dirname(u),p),!0,n)}else return u;for(;;){let p=this.resolveFilename(r,K.dirname(u),!0,n);if(p===void 0)return p;let h=this.listings.has(p),E=this.entries.has(p);if(!h&&!E){if(n===!1)return;throw sr.ENOENT(r)}if(!h)throw sr.ENOTDIR(r);if(u=K.resolve(p,K.basename(u)),!a||this.symlinkCount===0)break;let w=this.libzip.name.locate(this.zip,u.slice(1),0);if(w===-1)break;if(this.isSymbolicLink(w)){let D=this.getFileSource(w).toString();u=K.resolve(K.dirname(u),D)}else break}return u}allocateBuffer(r){Buffer.isBuffer(r)||(r=Buffer.from(r));let o=this.libzip.malloc(r.byteLength);if(!o)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,o,r.byteLength).set(r),{buffer:o,byteLength:r.byteLength}}allocateUnattachedSource(r){let o=this.libzip.struct.errorS(),{buffer:a,byteLength:n}=this.allocateBuffer(r),u=this.libzip.source.fromUnattachedBuffer(a,n,0,1,o);if(u===0)throw this.libzip.free(o),this.makeLibzipError(o);return u}allocateSource(r){let{buffer:o,byteLength:a}=this.allocateBuffer(r),n=this.libzip.source.fromBuffer(this.zip,o,a,0,1);if(n===0)throw this.libzip.free(o),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(r,o){let a=Buffer.isBuffer(o)?o:Buffer.from(o),n=K.relative(Bt.root,r),u=this.allocateSource(o);try{let A=this.libzip.file.add(this.zip,n,u,this.libzip.ZIP_FL_OVERWRITE);if(A===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let p=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,A,0,p,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(A,a),A}catch(A){throw this.libzip.source.free(u),A}}isSymbolicLink(r){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&ta.constants.S_IFMT)===ta.constants.S_IFLNK}getFileSource(r,o={asyncDecompress:!1}){let a=this.fileSources.get(r);if(typeof a<"u")return a;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,r,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let A=this.libzip.struct.statCompSize(n),p=this.libzip.struct.statCompMethod(n),h=this.libzip.malloc(A);try{let E=this.libzip.fopenIndex(this.zip,r,0,this.libzip.ZIP_FL_COMPRESSED);if(E===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let w=this.libzip.fread(E,h,A,0);if(w===-1)throw this.makeLibzipError(this.libzip.file.getError(E));if(wA)throw new Error("Overread");let D=this.libzip.HEAPU8.subarray(h,h+A),x=Buffer.from(D);if(p===0)return this.fileSources.set(r,x),x;if(o.asyncDecompress)return new Promise((C,T)=>{H4.default.inflateRaw(x,(L,U)=>{L?T(L):(this.fileSources.set(r,U),C(U))})});{let C=H4.default.inflateRawSync(x);return this.fileSources.set(r,C),C}}finally{this.libzip.fclose(E)}}finally{this.libzip.free(h)}}async fchmodPromise(r,o){return this.chmodPromise(this.fdToPath(r,"fchmod"),o)}fchmodSync(r,o){return this.chmodSync(this.fdToPath(r,"fchmodSync"),o)}async chmodPromise(r,o){return this.chmodSync(r,o)}chmodSync(r,o){if(this.readOnly)throw sr.EROFS(`chmod '${r}'`);o&=493;let a=this.resolveFilename(`chmod '${r}'`,r,!1),n=this.entries.get(a);if(typeof n>"u")throw new Error(`Assertion failed: The entry should have been registered (${a})`);let A=this.getUnixMode(n,ta.constants.S_IFREG|0)&-512|o;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,A<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(r,o,a){return this.chownPromise(this.fdToPath(r,"fchown"),o,a)}fchownSync(r,o,a){return this.chownSync(this.fdToPath(r,"fchownSync"),o,a)}async chownPromise(r,o,a){return this.chownSync(r,o,a)}chownSync(r,o,a){throw new Error("Unimplemented")}async renamePromise(r,o){return this.renameSync(r,o)}renameSync(r,o){throw new Error("Unimplemented")}async copyFilePromise(r,o,a){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=await this.getFileSource(n,{asyncDecompress:!0}),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}copyFileSync(r,o,a=0){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=this.getFileSource(n),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}prepareCopyFile(r,o,a=0){if(this.readOnly)throw sr.EROFS(`copyfile '${r} -> '${o}'`);if(a&ta.constants.COPYFILE_FICLONE_FORCE)throw sr.ENOSYS("unsupported clone operation",`copyfile '${r}' -> ${o}'`);let n=this.resolveFilename(`copyfile '${r} -> ${o}'`,r),u=this.entries.get(n);if(typeof u>"u")throw sr.EINVAL(`copyfile '${r}' -> '${o}'`);let A=this.resolveFilename(`copyfile '${r}' -> ${o}'`,o),p=this.entries.get(A);if(a&(ta.constants.COPYFILE_EXCL|ta.constants.COPYFILE_FICLONE_FORCE)&&typeof p<"u")throw sr.EEXIST(`copyfile '${r}' -> '${o}'`);return{indexSource:u,resolvedDestP:A,indexDest:p}}async appendFilePromise(r,o,a){if(this.readOnly)throw sr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFilePromise(r,o,a)}appendFileSync(r,o,a={}){if(this.readOnly)throw sr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFileSync(r,o,a)}fdToPath(r,o){let a=this.fds.get(r)?.p;if(typeof a>"u")throw sr.EBADF(o);return a}async writeFilePromise(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([await this.getFileSource(A,{asyncDecompress:!0}),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&await this.chmodPromise(p,u)}writeFileSync(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([this.getFileSource(A),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&this.chmodSync(p,u)}prepareWriteFile(r,o){if(typeof r=="number"&&(r=this.fdToPath(r,"read")),this.readOnly)throw sr.EROFS(`open '${r}'`);let a=this.resolveFilename(`open '${r}'`,r);if(this.listings.has(a))throw sr.EISDIR(`open '${r}'`);let n=null,u=null;typeof o=="string"?n=o:typeof o=="object"&&({encoding:n=null,mode:u=null}=o);let A=this.entries.get(a);return{encoding:n,mode:u,resolvedP:a,index:A}}async unlinkPromise(r){return this.unlinkSync(r)}unlinkSync(r){if(this.readOnly)throw sr.EROFS(`unlink '${r}'`);let o=this.resolveFilename(`unlink '${r}'`,r);if(this.listings.has(o))throw sr.EISDIR(`unlink '${r}'`);let a=this.entries.get(o);if(typeof a>"u")throw sr.EINVAL(`unlink '${r}'`);this.deleteEntry(o,a)}async utimesPromise(r,o,a){return this.utimesSync(r,o,a)}utimesSync(r,o,a){if(this.readOnly)throw sr.EROFS(`utimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r);this.utimesImpl(n,a)}async lutimesPromise(r,o,a){return this.lutimesSync(r,o,a)}lutimesSync(r,o,a){if(this.readOnly)throw sr.EROFS(`lutimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r,!1);this.utimesImpl(n,a)}utimesImpl(r,o){this.listings.has(r)&&(this.entries.has(r)||this.hydrateDirectory(r));let a=this.entries.get(r);if(a===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,a,0,tot(o),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(r,o){return this.mkdirSync(r,o)}mkdirSync(r,{mode:o=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(r,{chmod:o});if(this.readOnly)throw sr.EROFS(`mkdir '${r}'`);let n=this.resolveFilename(`mkdir '${r}'`,r);if(this.entries.has(n)||this.listings.has(n))throw sr.EEXIST(`mkdir '${r}'`);this.hydrateDirectory(n),this.chmodSync(n,o)}async rmdirPromise(r,o){return this.rmdirSync(r,o)}rmdirSync(r,{recursive:o=!1}={}){if(this.readOnly)throw sr.EROFS(`rmdir '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rmdir '${r}'`,r),n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`rmdir '${r}'`);if(n.size>0)throw sr.ENOTEMPTY(`rmdir '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw sr.EINVAL(`rmdir '${r}'`);this.deleteEntry(r,u)}async rmPromise(r,o){return this.rmSync(r,o)}rmSync(r,{recursive:o=!1}={}){if(this.readOnly)throw sr.EROFS(`rm '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rm '${r}'`,r),n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`rm '${r}'`);if(n.size>0)throw sr.ENOTEMPTY(`rm '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw sr.EINVAL(`rm '${r}'`);this.deleteEntry(r,u)}hydrateDirectory(r){let o=this.libzip.dir.add(this.zip,K.relative(Bt.root,r));if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(r),this.registerEntry(r,o),o}async linkPromise(r,o){return this.linkSync(r,o)}linkSync(r,o){throw sr.EOPNOTSUPP(`link '${r}' -> '${o}'`)}async symlinkPromise(r,o){return this.symlinkSync(r,o)}symlinkSync(r,o){if(this.readOnly)throw sr.EROFS(`symlink '${r}' -> '${o}'`);let a=this.resolveFilename(`symlink '${r}' -> '${o}'`,o);if(this.listings.has(a))throw sr.EISDIR(`symlink '${r}' -> '${o}'`);if(this.entries.has(a))throw sr.EEXIST(`symlink '${r}' -> '${o}'`);let n=this.setFileSource(a,r);if(this.registerEntry(a,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(ta.constants.S_IFLNK|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=await this.readFileBuffer(r,{asyncDecompress:!0});return o?a.toString(o):a}readFileSync(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=this.readFileBuffer(r);return o?a.toString(o):a}readFileBuffer(r,o={asyncDecompress:!1}){typeof r=="number"&&(r=this.fdToPath(r,"read"));let a=this.resolveFilename(`open '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`open '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`open '${r}'`);if(this.listings.has(a))throw sr.EISDIR("read");let n=this.entries.get(a);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,o)}async readdirPromise(r,o){return this.readdirSync(r,o)}readdirSync(r,o){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`scandir '${r}'`);let n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`scandir '${r}'`);if(o?.recursive)if(o?.withFileTypes){let u=Array.from(n,A=>Object.assign(this.statImpl("lstat",K.join(r,A)),{name:A,path:Bt.dot}));for(let A of u){if(!A.isDirectory())continue;let p=K.join(A.path,A.name),h=this.listings.get(K.join(a,p));for(let E of h)u.push(Object.assign(this.statImpl("lstat",K.join(r,p,E)),{name:E,path:p}))}return u}else{let u=[...n];for(let A of u){let p=this.listings.get(K.join(a,A));if(!(typeof p>"u"))for(let h of p)u.push(K.join(A,h))}return u}else return o?.withFileTypes?Array.from(n,u=>Object.assign(this.statImpl("lstat",K.join(r,u)),{name:u,path:void 0})):[...n]}async readlinkPromise(r){let o=this.prepareReadlink(r);return(await this.getFileSource(o,{asyncDecompress:!0})).toString()}readlinkSync(r){let o=this.prepareReadlink(r);return this.getFileSource(o).toString()}prepareReadlink(r){let o=this.resolveFilename(`readlink '${r}'`,r,!1);if(!this.entries.has(o)&&!this.listings.has(o))throw sr.ENOENT(`readlink '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(o))throw sr.ENOTDIR(`open '${r}'`);if(this.listings.has(o))throw sr.EINVAL(`readlink '${r}'`);let a=this.entries.get(o);if(a===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(a))throw sr.EINVAL(`readlink '${r}'`);return a}async truncatePromise(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw sr.EINVAL(`open '${r}'`);let u=await this.getFileSource(n,{asyncDecompress:!0}),A=Buffer.alloc(o,0);return u.copy(A),await this.writeFilePromise(r,A)}truncateSync(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw sr.EINVAL(`open '${r}'`);let u=this.getFileSource(n),A=Buffer.alloc(o,0);return u.copy(A),this.writeFileSync(r,A)}async ftruncatePromise(r,o){return this.truncatePromise(this.fdToPath(r,"ftruncate"),o)}ftruncateSync(r,o){return this.truncateSync(this.fdToPath(r,"ftruncateSync"),o)}watch(r,o,a){let n;switch(typeof o){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=o);break}if(!n)return{on:()=>{},close:()=>{}};let u=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(u)}}}watchFile(r,o,a){let n=K.resolve(Bt.root,r);return um(this,n,o,a)}unwatchFile(r,o){let a=K.resolve(Bt.root,r);return q0(this,a,o)}}});function xce(t,e,r=Buffer.alloc(0),o){let a=new Zi(r),n=w=>w===e||w.startsWith(`${e}/`)?w.slice(0,e.length):null,u=async(w,D)=>()=>a,A=(w,D)=>a,p={...t},h=new _n(p),E=new Gp({baseFs:h,getMountPoint:n,factoryPromise:u,factorySync:A,magicByte:21,maxAge:1/0,typeCheck:o?.typeCheck});return uw(bce.default,new Wp(E)),a}var bce,kce=It(()=>{Pt();bce=et(ve("fs"));q4()});var Qce=It(()=>{Dce();q4();kce()});var V1={};Kt(V1,{DEFAULT_COMPRESSION_LEVEL:()=>Sce,LibzipError:()=>fx,ZipFS:()=>Zi,ZipOpenFS:()=>iA,getArchivePart:()=>U4,getLibzipPromise:()=>not,getLibzipSync:()=>rot,makeEmptyArchive:()=>Ax,mountMemoryDrive:()=>xce});function rot(){return K1()}async function not(){return K1()}var Fce,sA=It(()=>{L4();Fce=et(Ice());vce();Qce();Cce(()=>{let t=(0,Fce.default)();return Bce(t)})});var J1,Rce=It(()=>{Pt();Gt();z1();J1=class extends ot{constructor(){super(...arguments);this.cwd=de.String("--cwd",process.cwd(),{description:"The directory to run the command in"});this.commandName=de.String();this.args=de.Proxy()}static{this.usage={description:"run a command using yarn's portable shell",details:` + This command will run a command using Yarn's portable shell. + + Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell. + + Note: To escape something from Yarn's shell, you might have to escape it twice, the first time from your own shell. + + Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used. + + For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md. + `,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await ky(r,[],{cwd:Ae.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}}});var fl,Tce=It(()=>{fl=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var gx={};Kt(gx,{fastGlobOptions:()=>Oce,isBraceExpansion:()=>j4,isGlobPattern:()=>iot,match:()=>sot,micromatchOptions:()=>hx});function iot(t){if(!px.default.scan(t,hx).isGlob)return!1;try{px.default.parse(t,hx)}catch{return!1}return!0}function sot(t,{cwd:e,baseFs:r}){return(0,Nce.default)(t,{...Oce,cwd:Ae.fromPortablePath(e),fs:aP(Lce.default,new Wp(r))})}function j4(t){return px.default.scan(t,hx).isBrace}var Nce,Lce,px,hx,Oce,Mce=It(()=>{Pt();Nce=et(Ab()),Lce=et(ve("fs")),px=et(Xo()),hx={strictBrackets:!0},Oce={onlyDirectories:!1,onlyFiles:!1}});function G4(){}function W4(){for(let t of Fg)t.kill()}function qce(t,e,r,o){return a=>{let n=a[0]instanceof oA.Transform?"pipe":a[0],u=a[1]instanceof oA.Transform?"pipe":a[1],A=a[2]instanceof oA.Transform?"pipe":a[2],p=(0,_ce.default)(t,e,{...o,stdio:[n,u,A]});return Fg.add(p),Fg.size===1&&(process.on("SIGINT",G4),process.on("SIGTERM",W4)),a[0]instanceof oA.Transform&&a[0].pipe(p.stdin),a[1]instanceof oA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof oA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",E=>{switch(Fg.delete(p),Fg.size===0&&(process.off("SIGINT",G4),process.off("SIGTERM",W4)),E.code){case"ENOENT":a[2].write(`command not found: ${t} +`),h(127);break;case"EACCES":a[2].write(`permission denied: ${t} +`),h(128);break;default:a[2].write(`uncaught error: ${E.message} +`),h(1);break}}),p.on("close",E=>{Fg.delete(p),Fg.size===0&&(process.off("SIGINT",G4),process.off("SIGTERM",W4)),h(E!==null?E:129)})})}}}function jce(t){return e=>{let r=e[0]==="pipe"?new oA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function dx(t,e){return K4.start(t,e)}function Uce(t,e=null){let r=new oA.PassThrough,o=new Hce.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` +`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",t(e!==null?`${e} ${p}`:p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function Gce(t,{prefix:e}){return{stdout:Uce(r=>t.stdout.write(`${r} +`),t.stdout.isTTY?e:null),stderr:Uce(r=>t.stderr.write(`${r} +`),t.stderr.isTTY?e:null)}}var _ce,oA,Hce,Fg,Zl,Y4,K4,V4=It(()=>{_ce=et(MT()),oA=ve("stream"),Hce=ve("string_decoder"),Fg=new Set;Zl=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},Y4=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},K4=class t{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:o,stderr:a}){let n=new t(null,e);return n.stdin=r,n.stdout=o,n.stderr=a,n}pipeTo(e,r=1){let o=new t(this,e),a=new Y4;return o.pipe=a,o.stdout=this.stdout,o.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),o}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let o;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");o=this.stderr,e[2]=o.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),o.close(),n))}async run(){let e=[];for(let o=this;o;o=o.ancestor)e.push(o.exec());return(await Promise.all(e))[0]}}});var e2={};Kt(e2,{EntryCommand:()=>J1,ShellError:()=>fl,execute:()=>ky,globUtils:()=>gx});function Wce(t,e,r){let o=new pl.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(o,{end:!1}),(e&2)===2&&r.stdin instanceof pl.Writable&&o.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stderr,{end:!1});break;default:throw new fl(`Bad file descriptor: "${t}"`)}return o}function yx(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function aot(t,e,r){let o=[],a=new pl.PassThrough;return a.on("data",n=>o.push(n)),await Ex(t,e,yx(r,{stdout:a})),Buffer.concat(o).toString().replace(/[\r\n]+$/,"")}async function Yce(t,e,r){let o=t.map(async n=>{let u=await Rg(n.args,e,r);return{name:n.name,value:u.join(" ")}});return(await Promise.all(o)).reduce((n,u)=>(n[u.name]=u.value,n),{})}function mx(t){return t.match(/[^ \r\n\t]+/g)||[]}async function Zce(t,e,r,o,a=o){switch(t.name){case"$":o(String(process.pid));break;case"#":o(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let u=mx(n);for(let A=0;A=0&&n"u"&&(t.defaultValue?u=(await Rg(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(u="")),typeof u>"u")throw A?new fl(`Unbound argument #${n}`):new fl(`Unbound variable "${t.name}"`);if(t.quoted)o(u);else{let p=mx(u);for(let E=0;Eo.push(n));let a=Number(o.join(" "));return Number.isNaN(a)?X1({type:"variable",name:o.join(" ")},e,r):X1({type:"number",value:a},e,r)}else return lot[t.type](await X1(t.left,e,r),await X1(t.right,e,r))}async function Rg(t,e,r){let o=new Map,a=[],n=[],u=E=>{n.push(E)},A=()=>{n.length>0&&a.push(n.join("")),n=[]},p=E=>{u(E),A()},h=(E,w,D)=>{let x=JSON.stringify({type:E,fd:w}),C=o.get(x);typeof C>"u"&&o.set(x,C=[]),C.push(D)};for(let E of t){let w=!1;switch(E.type){case"redirection":{let D=await Rg(E.args,e,r);for(let x of D)h(E.subtype,E.fd,x)}break;case"argument":for(let D of E.segments)switch(D.type){case"text":u(D.text);break;case"glob":u(D.pattern),w=!0;break;case"shell":{let x=await aot(D.shell,e,r);if(D.quoted)u(x);else{let C=mx(x);for(let T=0;T"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let x=await e.glob.match(D,{cwd:r.cwd,baseFs:e.baseFs});if(x.length===0){let C=j4(D)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new fl(`No matches found: "${D}"${C}`)}for(let C of x.sort())p(C)}}if(o.size>0){let E=[];for(let[w,D]of o.entries())E.splice(E.length,0,w,String(D.length),...D);a.splice(0,0,"__ysh_set_redirects",...E,"--")}return a}function Z1(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let o=Ae.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:o});let[n,...u]=t;if(n==="command")return qce(u[0],u.slice(1),e,{cwd:o,env:a});let A=e.builtins.get(n);if(typeof A>"u")throw new Error(`Assertion failed: A builtin should exist for "${n}"`);return jce(async({stdin:p,stdout:h,stderr:E})=>{let{stdin:w,stdout:D,stderr:x}=r;r.stdin=p,r.stdout=h,r.stderr=E;try{return await A(u,e,r)}finally{r.stdin=w,r.stdout=D,r.stderr=x}})}function cot(t,e,r){return o=>{let a=new pl.PassThrough,n=Ex(t,e,yx(r,{stdin:a}));return{stdin:a,promise:n}}}function uot(t,e,r){return o=>{let a=new pl.PassThrough,n=Ex(t,e,r);return{stdin:a,promise:n}}}function Kce(t,e,r,o){if(e.length===0)return t;{let a;do a=String(Math.random());while(Object.hasOwn(o.procedures,a));return o.procedures={...o.procedures},o.procedures[a]=t,Z1([...e,"__ysh_run_procedure",a],r,o)}}async function Vce(t,e,r){let o=t,a=null,n=null;for(;o;){let u=o.then?{...r}:r,A;switch(o.type){case"command":{let p=await Rg(o.args,e,r),h=await Yce(o.envs,e,r);A=o.envs.length?Z1(p,e,yx(u,{environment:h})):Z1(p,e,u)}break;case"subshell":{let p=await Rg(o.args,e,r),h=cot(o.subshell,e,u);A=Kce(h,p,e,u)}break;case"group":{let p=await Rg(o.args,e,r),h=uot(o.group,e,u);A=Kce(h,p,e,u)}break;case"envs":{let p=await Yce(o.envs,e,r);u.environment={...u.environment,...p},A=Z1(["true"],e,u)}break}if(typeof A>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)n=dx(A,{stdin:new Zl(u.stdin),stdout:new Zl(u.stdout),stderr:new Zl(u.stderr)});else{if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":n=n.pipeTo(A,1);break;case"|&":n=n.pipeTo(A,3);break}}o.then?(a=o.then.type,o=o.then.chain):o=null}if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await n.run()}async function Aot(t,e,r,{background:o=!1}={}){function a(n){let u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[n%u.length];return Jce.default.hex(A)}if(o){let n=r.nextBackgroundJobIndex++,u=a(n),A=`[${n}]`,p=u(A),{stdout:h,stderr:E}=Gce(r,{prefix:p});return r.backgroundJobs.push(Vce(t,e,yx(r,{stdout:h,stderr:E})).catch(w=>E.write(`${w.message} +`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${u(mm(t))}' has ended +`)})),0}return await Vce(t,e,r)}async function fot(t,e,r,{background:o=!1}={}){let a,n=A=>{a=A,r.variables["?"]=String(A)},u=async A=>{try{return await Aot(A.chain,e,r,{background:o&&typeof A.then>"u"})}catch(p){if(!(p instanceof fl))throw p;return r.stderr.write(`${p.message} +`),1}};for(n(await u(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await u(t.then.line));break;case"||":a!==0&&n(await u(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function Ex(t,e,r){let o=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:u}of t){if(a=await fot(n,e,r,{background:u==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=o,a}function $ce(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>$1(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>$1(e));case"arithmetic":return J4(t.arithmetic);case"shell":return z4(t.shell);default:return!1}}function $1(t){switch(t.type){case"redirection":return t.args.some(e=>$1(e));case"argument":return t.segments.some(e=>$ce(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function J4(t){switch(t.type){case"variable":return $ce(t);case"number":return!1;default:return J4(t.left)||J4(t.right)}}function z4(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let o;switch(r.type){case"subshell":o=z4(r.subshell);break;case"command":o=r.envs.some(a=>a.args.some(n=>$1(n)))||r.args.some(a=>$1(a));break}if(o)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function ky(t,e=[],{baseFs:r=new _n,builtins:o={},cwd:a=Ae.toPortablePath(process.cwd()),env:n=process.env,stdin:u=process.stdin,stdout:A=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=gx}={}){let w={};for(let[C,T]of Object.entries(n))typeof T<"u"&&(w[C]=T);let D=new Map(oot);for(let[C,T]of Object.entries(o))D.set(C,T);u===null&&(u=new pl.PassThrough,u.end());let x=uP(t,E);if(!z4(x)&&x.length>0&&e.length>0){let{command:C}=x[x.length-1];for(;C.then;)C=C.then.line;let T=C.chain;for(;T.then;)T=T.then.chain;T.type==="command"&&(T.args=T.args.concat(e.map(L=>({type:"argument",segments:[{type:"text",text:L}]}))))}return await Ex(x,{args:e,baseFs:r,builtins:D,initialStdin:u,initialStdout:A,initialStderr:p,glob:E},{cwd:a,environment:w,exitCode:null,procedures:{},stdin:u,stdout:A,stderr:p,variables:Object.assign({},h,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var Jce,zce,pl,Xce,oot,lot,z1=It(()=>{Pt();Ol();Jce=et(iL()),zce=ve("os"),pl=ve("stream"),Xce=ve("timers/promises");Rce();Tce();Mce();V4();V4();oot=new Map([["cd",async([t=(0,zce.homedir)(),...e],r,o)=>{let a=K.resolve(o.cwd,Ae.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(u=>{throw u.code==="ENOENT"?new fl(`cd: no such file or directory: ${t}`):u})).isDirectory())throw new fl(`cd: not a directory: ${t}`);return o.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${Ae.fromPortablePath(r.cwd)} +`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,o)=>o.exitCode=parseInt(t??o.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} +`),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new fl("sleep: missing operand");let o=Number(t);if(Number.isNaN(o))throw new fl(`sleep: invalid time interval '${t}'`);return await(0,Xce.setTimeout)(1e3*o,0)}],["unset",async(t,e,r)=>{for(let o of t)delete r.environment[o],delete r.variables[o];return 0}],["__ysh_run_procedure",async(t,e,r)=>{let o=r.procedures[t[0]];return await dx(o,{stdin:new Zl(r.stdin),stdout:new Zl(r.stdout),stderr:new Zl(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let o=r.stdin,a=r.stdout,n=r.stderr,u=[],A=[],p=[],h=0;for(;t[h]!=="--";){let w=t[h++],{type:D,fd:x}=JSON.parse(w),C=J=>{switch(x){case null:case 0:u.push(J);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},T=J=>{switch(x){case null:case 1:A.push(J);break;case 2:p.push(J);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},L=Number(t[h++]),U=h+L;for(let J=h;Je.baseFs.createReadStream(K.resolve(r.cwd,Ae.toPortablePath(t[J]))));break;case"<<<":C(()=>{let te=new pl.PassThrough;return process.nextTick(()=>{te.write(`${t[J]} +`),te.end()}),te});break;case"<&":C(()=>Wce(Number(t[J]),1,r));break;case">":case">>":{let te=K.resolve(r.cwd,Ae.toPortablePath(t[J]));T(te==="/dev/null"?new pl.Writable({autoDestroy:!0,emitClose:!0,write(le,ce,ue){setImmediate(ue)}}):e.baseFs.createWriteStream(te,D===">>"?{flags:"a"}:void 0))}break;case">&":T(Wce(Number(t[J]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${D}"`)}}if(u.length>0){let w=new pl.PassThrough;o=w;let D=x=>{if(x===u.length)w.end();else{let C=u[x]();C.pipe(w,{end:!1}),C.on("end",()=>{D(x+1)})}};D(0)}if(A.length>0){let w=new pl.PassThrough;a=w;for(let D of A)w.pipe(D)}if(p.length>0){let w=new pl.PassThrough;n=w;for(let D of p)w.pipe(D)}let E=await dx(Z1(t.slice(h+1),e,r),{stdin:new Zl(o),stdout:new Zl(a),stderr:new Zl(n)}).run();return await Promise.all(A.map(w=>new Promise((D,x)=>{w.on("error",C=>{x(C)}),w.on("close",()=>{D()}),w.end()}))),await Promise.all(p.map(w=>new Promise((D,x)=>{w.on("error",C=>{x(C)}),w.on("close",()=>{D()}),w.end()}))),E}]]);lot={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var Cx=_((MMt,eue)=>{function pot(t,e){for(var r=-1,o=t==null?0:t.length,a=Array(o);++r{var tue=dg(),hot=Cx(),got=jl(),dot=fy(),mot=1/0,rue=tue?tue.prototype:void 0,nue=rue?rue.toString:void 0;function iue(t){if(typeof t=="string")return t;if(got(t))return hot(t,iue)+"";if(dot(t))return nue?nue.call(t):"";var e=t+"";return e=="0"&&1/t==-mot?"-0":e}sue.exports=iue});var t2=_((_Mt,aue)=>{var yot=oue();function Eot(t){return t==null?"":yot(t)}aue.exports=Eot});var X4=_((HMt,lue)=>{function Cot(t,e,r){var o=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++o{var Iot=X4();function wot(t,e,r){var o=t.length;return r=r===void 0?o:r,!e&&r>=o?t:Iot(t,e,r)}cue.exports=wot});var Z4=_((jMt,Aue)=>{var Bot="\\ud800-\\udfff",vot="\\u0300-\\u036f",Dot="\\ufe20-\\ufe2f",Pot="\\u20d0-\\u20ff",Sot=vot+Dot+Pot,bot="\\ufe0e\\ufe0f",xot="\\u200d",kot=RegExp("["+xot+Bot+Sot+bot+"]");function Qot(t){return kot.test(t)}Aue.exports=Qot});var pue=_((GMt,fue)=>{function Fot(t){return t.split("")}fue.exports=Fot});var Iue=_((WMt,Cue)=>{var hue="\\ud800-\\udfff",Rot="\\u0300-\\u036f",Tot="\\ufe20-\\ufe2f",Not="\\u20d0-\\u20ff",Lot=Rot+Tot+Not,Oot="\\ufe0e\\ufe0f",Mot="["+hue+"]",$4="["+Lot+"]",e3="\\ud83c[\\udffb-\\udfff]",Uot="(?:"+$4+"|"+e3+")",gue="[^"+hue+"]",due="(?:\\ud83c[\\udde6-\\uddff]){2}",mue="[\\ud800-\\udbff][\\udc00-\\udfff]",_ot="\\u200d",yue=Uot+"?",Eue="["+Oot+"]?",Hot="(?:"+_ot+"(?:"+[gue,due,mue].join("|")+")"+Eue+yue+")*",qot=Eue+yue+Hot,jot="(?:"+[gue+$4+"?",$4,due,mue,Mot].join("|")+")",Got=RegExp(e3+"(?="+e3+")|"+jot+qot,"g");function Wot(t){return t.match(Got)||[]}Cue.exports=Wot});var Bue=_((YMt,wue)=>{var Yot=pue(),Kot=Z4(),Vot=Iue();function Jot(t){return Kot(t)?Vot(t):Yot(t)}wue.exports=Jot});var Due=_((KMt,vue)=>{var zot=uue(),Xot=Z4(),Zot=Bue(),$ot=t2();function eat(t){return function(e){e=$ot(e);var r=Xot(e)?Zot(e):void 0,o=r?r[0]:e.charAt(0),a=r?zot(r,1).join(""):e.slice(1);return o[t]()+a}}vue.exports=eat});var Sue=_((VMt,Pue)=>{var tat=Due(),rat=tat("toUpperCase");Pue.exports=rat});var t3=_((JMt,bue)=>{var nat=t2(),iat=Sue();function sat(t){return iat(nat(t).toLowerCase())}bue.exports=sat});var xue=_((zMt,Ix)=>{function oat(){var t=0,e=1,r=2,o=3,a=4,n=5,u=6,A=7,p=8,h=9,E=10,w=11,D=12,x=13,C=14,T=15,L=16,U=17,J=0,te=1,le=2,ce=3,ue=4;function Ie(g,me){return 55296<=g.charCodeAt(me)&&g.charCodeAt(me)<=56319&&56320<=g.charCodeAt(me+1)&&g.charCodeAt(me+1)<=57343}function he(g,me){me===void 0&&(me=0);var Ce=g.charCodeAt(me);if(55296<=Ce&&Ce<=56319&&me=1){var fe=g.charCodeAt(me-1),ie=Ce;return 55296<=fe&&fe<=56319?(fe-55296)*1024+(ie-56320)+65536:ie}return Ce}function De(g,me,Ce){var fe=[g].concat(me).concat([Ce]),ie=fe[fe.length-2],Z=Ce,Pe=fe.lastIndexOf(C);if(Pe>1&&fe.slice(1,Pe).every(function(q){return q==o})&&[o,x,U].indexOf(g)==-1)return le;var Re=fe.lastIndexOf(a);if(Re>0&&fe.slice(1,Re).every(function(q){return q==a})&&[D,a].indexOf(ie)==-1)return fe.filter(function(q){return q==a}).length%2==1?ce:ue;if(ie==t&&Z==e)return J;if(ie==r||ie==t||ie==e)return Z==C&&me.every(function(q){return q==o})?le:te;if(Z==r||Z==t||Z==e)return te;if(ie==u&&(Z==u||Z==A||Z==h||Z==E))return J;if((ie==h||ie==A)&&(Z==A||Z==p))return J;if((ie==E||ie==p)&&Z==p)return J;if(Z==o||Z==T)return J;if(Z==n)return J;if(ie==D)return J;var ht=fe.indexOf(o)!=-1?fe.lastIndexOf(o)-1:fe.length-2;return[x,U].indexOf(fe[ht])!=-1&&fe.slice(ht+1,-1).every(function(q){return q==o})&&Z==C||ie==T&&[L,U].indexOf(Z)!=-1?J:me.indexOf(a)!=-1?le:ie==a&&Z==a?J:te}this.nextBreak=function(g,me){if(me===void 0&&(me=0),me<0)return 0;if(me>=g.length-1)return g.length;for(var Ce=Ee(he(g,me)),fe=[],ie=me+1;ie{var aat=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,wx;function lat(){if(wx)return wx;if(typeof Intl.Segmenter<"u"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return wx=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=xue(),e=new t;return wx=r=>e.splitGraphemes(r)}}kue.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let o=r-e,a="",n=0,u=0;for(;t.length>0;){let A=t.match(aat)||[t,t,void 0],p=lat()(A[1]),h=Math.min(e-n,p.length);p=p.slice(h);let E=Math.min(o-u,p.length);a+=p.slice(0,E).join(""),n+=h,u+=E,typeof A[2]<"u"&&(a+=A[2]),t=t.slice(A[0].length)}return a}});var nn,r2=It(()=>{nn=process.env.YARN_IS_TEST_ENV?"0.0.0":"4.6.0"});function Oue(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let a=Ju(t===null?0:t);return!r&&t===null?Ut(e,a,"grey"):a}function r3(t,{configuration:e,json:r}){let o=Oue(t,{configuration:e,json:r});if(!o||t===null||t===0)return o;let a=vr[t],n=`https://yarnpkg.com/advanced/error-codes#${o}---${a}`.toLowerCase();return ty(e,o,n)}async function Qy({configuration:t,stdout:e,forceError:r},o){let a=await Nt.start({configuration:t,stdout:e,includeFooter:!1},async n=>{let u=!1,A=!1;for(let p of o)typeof p.option<"u"&&(p.error||r?(A=!0,n.reportError(50,p.message)):(u=!0,n.reportWarning(50,p.message)),p.callback?.());u&&!A&&n.reportSeparator()});return a.hasErrors()?a.exitCode():null}var Nue,Bx,cat,Fue,Rue,hh,Lue,Tue,uat,Aat,vx,fat,Nt,n2=It(()=>{Nue=et(Que()),Bx=et(sg());jP();Vl();r2();Wl();cat="\xB7",Fue=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Rue=80,hh=Bx.default.GITHUB_ACTIONS?{start:t=>`::group::${t} +`,end:t=>`::endgroup:: +`}:Bx.default.TRAVIS?{start:t=>`travis_fold:start:${t} +`,end:t=>`travis_fold:end:${t} +`}:Bx.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t} +`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,Lue=hh!==null,Tue=new Date,uat=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,Aat=t=>t,vx=Aat({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),fat=uat&&Object.keys(vx).find(t=>{let e=vx[t];return!(e.date&&(e.date[0]!==Tue.getDate()||e.date[1]!==Tue.getMonth()+1))})||"default";Nt=class extends Ws{constructor({configuration:r,stdout:o,json:a=!1,forceSectionAlignment:n=!1,includeNames:u=!0,includePrefix:A=!0,includeFooter:p=!0,includeLogs:h=!a,includeInfos:E=h,includeWarnings:w=h}){super();this.uncommitted=new Set;this.warningCount=0;this.errorCount=0;this.timerFooter=[];this.startTime=Date.now();this.indent=0;this.level=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;if(g1(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=u,this.includePrefix=A,this.includeFooter=p,this.includeInfos=E,this.includeWarnings=w,this.json=a,this.stdout=o,r.get("enableProgressBars")&&!a&&o.isTTY&&o.columns>22){let D=r.get("progressBarStyle")||fat;if(!Object.hasOwn(vx,D))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=vx[D];let x=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*x/80)}}static async start(r,o){let a=new this(r),n=process.emitWarning;process.emitWarning=(u,A)=>{if(typeof u!="string"){let h=u;u=h.message,A=A??h.name}let p=typeof A<"u"?`${A}: ${u}`:u;a.reportWarning(0,p)},r.includeVersion&&a.reportInfo(0,Cg(r.configuration,`Yarn ${nn}`,2));try{await o(a)}catch(u){a.reportExceptionOnce(u)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let o=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,o-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}async startSectionPromise({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}startTimerImpl(r,o,a){return{cb:typeof o=="function"?o:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\u250C ${r}`),this.indent+=1,hh!==null&&!this.json&&this.includeInfos&&this.stdout.write(hh.start(r))},reportFooter:A=>{if(this.indent-=1,hh!==null&&!this.json&&this.includeInfos){this.stdout.write(hh.end(r));for(let p of this.timerFooter)p()}this.configuration.get("enableTimers")&&A>200?this.reportInfo(null,`\u2514 Completed in ${Ut(this.configuration,A,Ct.DURATION)}`):this.reportInfo(null,"\u2514 Completed"),this.level-=1},skipIfEmpty:(typeof o=="function"?{}:o).skipIfEmpty}}startTimerSync(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionSync(u,n)}async startTimerPromise(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionPromise(u,n)}reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(null,"")}reportInfo(r,o){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",u=`${this.formatPrefix(n,"blueBright")}${o}`;this.json?this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(u)}reportWarning(r,o){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"yellowBright")}${o}`)}reportError(r,o){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,o)),this.reportErrorImpl(r,o)}reportErrorImpl(r,o){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"redBright")}${o}`,{truncate:!1})}reportFold(r,o){if(!hh)return;let a=`${hh.start(r)}${o}${hh.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(r.hasProgress&&r.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let o=!1,a=Promise.resolve().then(async()=>{let u={progress:r.hasProgress?0:void 0,title:r.hasTitle?"":void 0};this.progress.set(r,{definition:u,lastScaledSize:r.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:A,title:p}of r)o||u.progress===A&&u.title===p||(u.progress=A,u.title=p,this.refreshProgress());n()}),n=()=>{o||(o=!0,this.progress.delete(r),this.refreshProgress({delta:1}))};return{...a,stop:n}}reportJson(r){this.json&&this.writeLine(`${JSON.stringify(r)}`)}async finalize(){if(!this.includeFooter)return;let r="";this.errorCount>0?r="Failed with errors":this.warningCount>0?r="Done with warnings":r="Done";let o=Ut(this.configuration,Date.now()-this.startTime,Ct.DURATION),a=this.configuration.get("enableTimers")?`${r} in ${o}`:r;this.errorCount>0?this.reportError(0,a):this.warningCount>0?this.reportWarning(0,a):this.reportInfo(0,a)}writeLine(r,{truncate:o}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(r,{truncate:o})} +`),this.writeProgress()}writeLines(r,{truncate:o}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:o})} +`);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let o of r)o.committed=!0,o.action()}clearProgress({delta:r=0,clear:o=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||o)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>Rue&&(this.progressFrame=(this.progressFrame+1)%Fue.length,this.progressTime=r);let o=Fue[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),E=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${E}`}let u=this.formatName(null),A=u?`${u}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Ut(this.configuration,"\u27A4","blueBright")} ${A}${o}${n}${p} +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},Rue)}refreshProgress({delta:r=0,force:o=!1}={}){let a=!1,n=!1;if(o||this.progress.size===0)a=!0;else for(let u of this.progress.values()){let A=typeof u.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*u.definition.progress):void 0,p=u.lastScaledSize;u.lastScaledSize=A;let h=u.lastTitle;if(u.lastTitle=u.definition.title,A!==p||(n=h!==u.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:o}={}){return this.progressStyle===null&&(o=!1),typeof o>"u"&&(o=this.configuration.get("preferTruncatedLines")),o&&(r=(0,Nue.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?Oue(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,o){return this.includePrefix?`${Ut(this.configuration,"\u27A4",o)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?r3(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ".repeat(this.indent):`${cat} `}}});var hn={};Kt(hn,{PackageManager:()=>_ue,detectPackageManager:()=>Hue,executePackageAccessibleBinary:()=>Yue,executePackageScript:()=>Dx,executePackageShellcode:()=>n3,executeWorkspaceAccessibleBinary:()=>Eat,executeWorkspaceLifecycleScript:()=>Gue,executeWorkspaceScript:()=>jue,getPackageAccessibleBinaries:()=>Px,getWorkspaceAccessibleBinaries:()=>Wue,hasPackageScript:()=>dat,hasWorkspaceScript:()=>i3,isNodeScript:()=>s3,makeScriptEnv:()=>i2,maybeExecuteWorkspaceLifecycleScript:()=>yat,prepareExternalProject:()=>gat});async function gh(t,e,r,o=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${o.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await ae.writeFilePromise(K.format({dir:t,name:e,ext:".cmd"}),a)}await ae.writeFilePromise(K.join(t,e),`#!/bin/sh +exec "${r}" ${o.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" +`,{mode:493})}async function Hue(t){let e=await _t.tryFind(t);if(e?.packageManager){let o=mb(e.packageManager);if(o?.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=o.reference.split(".");switch(o.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await ae.readFilePromise(K.join(t,mr.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:ae.existsSync(K.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:ae.existsSync(K.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function i2({project:t,locator:e,binFolder:r,ignoreCorepack:o,lifecycleScript:a,baseEnv:n=t?.configuration.env??process.env}){let u={};for(let[E,w]of Object.entries(n))typeof w<"u"&&(u[E.toLowerCase()!=="path"?E:"PATH"]=w);let A=Ae.fromPortablePath(r);u.BERRY_BIN_FOLDER=Ae.fromPortablePath(A);let p=process.env.COREPACK_ROOT&&!o?Ae.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([gh(r,"node",process.execPath),...nn!==null?[gh(r,"run",process.execPath,[p,"run"]),gh(r,"yarn",process.execPath,[p]),gh(r,"yarnpkg",process.execPath,[p]),gh(r,"node-gyp",process.execPath,[p,"run","--top-level","node-gyp"])]:[]]),t&&(u.INIT_CWD=Ae.fromPortablePath(t.configuration.startingCwd),u.PROJECT_CWD=Ae.fromPortablePath(t.cwd)),u.PATH=u.PATH?`${A}${Ae.delimiter}${u.PATH}`:`${A}`,u.npm_execpath=`${A}${Ae.sep}yarn`,u.npm_node_execpath=`${A}${Ae.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let E=t.tryWorkspaceByLocator(e),w=E?E.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";u.npm_package_name=rn(e),u.npm_package_version=w;let D;if(E)D=E.cwd;else{let x=t.storedPackages.get(e.locatorHash);if(!x)throw new Error(`Package for ${jr(t.configuration,e)} not found in the project`);let C=t.configuration.getLinkers(),T={project:t,report:new Nt({stdout:new dh.PassThrough,configuration:t.configuration})},L=C.find(U=>U.supportsPackage(x,T));if(!L)throw new Error(`The package ${jr(t.configuration,x)} isn't supported by any of the available linkers`);D=await L.findPackageLocation(x,T)}u.npm_package_json=Ae.fromPortablePath(K.join(D,mr.manifest))}let h=nn!==null?`yarn/${nn}`:`yarn/${vf("@yarnpkg/core").version}-core`;return u.npm_config_user_agent=`${h} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(u.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(E=>E.setupScriptEnvironment,t,u,async(E,w,D)=>await gh(r,E,w,D)),u}async function gat(t,e,{configuration:r,report:o,workspace:a=null,locator:n=null}){await hat(async()=>{await ae.mktempPromise(async u=>{let A=K.join(u,"pack.log"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(A,{prefix:Ae.fromPortablePath(t),report:o}),w=n&&Jc(n)?I1(n):n,D=w?Qa(w):"an external project";h.write(`Packing ${D} from sources +`);let x=await Hue(t),C;x!==null?(h.write(`Using ${x.packageManager} for bootstrap. Reason: ${x.reason} + +`),C=x.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn + +`),C="Yarn");let T=C==="Yarn"&&!x?.packageManagerField;await ae.mktempPromise(async L=>{let U=await i2({binFolder:L,ignoreCorepack:T,baseEnv:{...process.env,COREPACK_ENABLE_AUTO_PIN:"0"}}),te=new Map([["Yarn Classic",async()=>{let ce=a!==null?["workspace",a]:[],ue=K.join(t,mr.manifest),Ie=await ae.readFilePromise(ue),he=await Xc(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(he.code!==0)return he.code;await ae.writeFilePromise(ue,Ie),await ae.appendFilePromise(K.join(t,".npmignore"),`/.yarn +`),h.write(` +`),delete U.NODE_ENV;let De=await Xc("yarn",["install"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(De.code!==0)return De.code;h.write(` +`);let Ee=await Xc("yarn",[...ce,"pack","--filename",Ae.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ee.code!==0?Ee.code:0}],["Yarn",async()=>{let ce=a!==null?["workspace",a]:[];U.YARN_ENABLE_INLINE_BUILDS="1";let ue=K.join(t,mr.lockfile);await ae.existsPromise(ue)||await ae.writeFilePromise(ue,"");let Ie=await Xc("yarn",[...ce,"pack","--install-if-needed","--filename",Ae.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ie.code!==0?Ie.code:0}],["npm",async()=>{if(a!==null){let me=new dh.PassThrough,Ce=Xm(me);me.pipe(h,{end:!1});let fe=await Xc("npm",["--version"],{cwd:t,env:U,stdin:p,stdout:me,stderr:E,end:0});if(me.end(),fe.code!==0)return h.end(),E.end(),fe.code;let ie=(await Ce).toString().trim();if(!nA(ie,">=7.x")){let Z=rA(null,"npm"),Pe=kn(Z,ie),Re=kn(Z,">=7.x");throw new Error(`Workspaces aren't supported by ${Jn(r,Pe)}; please upgrade to ${Jn(r,Re)} (npm has been detected as the primary package manager for ${Ut(r,t,Ct.PATH)})`)}}let ce=a!==null?["--workspace",a]:[];delete U.npm_config_user_agent,delete U.npm_config_production,delete U.NPM_CONFIG_PRODUCTION,delete U.NODE_ENV;let ue=await Xc("npm",["install","--legacy-peer-deps"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(ue.code!==0)return ue.code;let Ie=new dh.PassThrough,he=Xm(Ie);Ie.pipe(h);let De=await Xc("npm",["pack","--silent",...ce],{cwd:t,env:U,stdin:p,stdout:Ie,stderr:E});if(De.code!==0)return De.code;let Ee=(await he).toString().trim().replace(/^.*\n/s,""),g=K.resolve(t,Ae.toPortablePath(Ee));return await ae.renamePromise(g,e),0}]]).get(C);if(typeof te>"u")throw new Error("Assertion failed: Unsupported workflow");let le=await te();if(!(le===0||typeof le>"u"))throw ae.detachTemp(u),new Jt(58,`Packing the package failed (exit code ${le}, logs can be found here: ${Ut(r,A,Ct.PATH)})`)})})})}async function dat(t,e,{project:r}){let o=r.tryWorkspaceByLocator(t);if(o!==null)return i3(o,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${jr(r.configuration,t)} not found in the project`);return await iA.openPromise(async n=>{let u=r.configuration,A=r.configuration.getLinkers(),p={project:r,report:new Nt({stdout:new dh.PassThrough,configuration:u})},h=A.find(x=>x.supportsPackage(a,p));if(!h)throw new Error(`The package ${jr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),w=new En(E,{baseFs:n});return(await _t.find(Bt.dot,{baseFs:w})).scripts.has(e)})}async function Dx(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await ae.mktempPromise(async p=>{let{manifest:h,env:E,cwd:w}=await que(t,{project:a,binFolder:p,cwd:o,lifecycleScript:e}),D=h.scripts.get(e);if(typeof D>"u")return 1;let x=async()=>await ky(D,r,{cwd:w,env:E,stdin:n,stdout:u,stderr:A});return await(await a.configuration.reduceHook(T=>T.wrapScriptExecution,x,a,t,e,{script:D,args:r,cwd:w,env:E,stdin:n,stdout:u,stderr:A}))()})}async function n3(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await ae.mktempPromise(async p=>{let{env:h,cwd:E}=await que(t,{project:a,binFolder:p,cwd:o});return await ky(e,r,{cwd:E,env:h,stdin:n,stdout:u,stderr:A})})}async function mat(t,{binFolder:e,cwd:r,lifecycleScript:o}){let a=await i2({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:o});return await o3(e,await Wue(t)),typeof r>"u"&&(r=K.dirname(await ae.realpathPromise(K.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function que(t,{project:e,binFolder:r,cwd:o,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return mat(n,{binFolder:r,cwd:o,lifecycleScript:a});let u=e.storedPackages.get(t.locatorHash);if(!u)throw new Error(`Package for ${jr(e.configuration,t)} not found in the project`);return await iA.openPromise(async A=>{let p=e.configuration,h=e.configuration.getLinkers(),E={project:e,report:new Nt({stdout:new dh.PassThrough,configuration:p})},w=h.find(L=>L.supportsPackage(u,E));if(!w)throw new Error(`The package ${jr(e.configuration,u)} isn't supported by any of the available linkers`);let D=await i2({project:e,locator:t,binFolder:r,lifecycleScript:a});await o3(r,await Px(t,{project:e}));let x=await w.findPackageLocation(u,E),C=new En(x,{baseFs:A}),T=await _t.find(Bt.dot,{baseFs:C});return typeof o>"u"&&(o=x),{manifest:T,binFolder:r,env:D,cwd:o}})}async function jue(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u}){return await Dx(t.anchoredLocator,e,r,{cwd:o,project:t.project,stdin:a,stdout:n,stderr:u})}function i3(t,e){return t.manifest.scripts.has(e)}async function Gue(t,e,{cwd:r,report:o}){let{configuration:a}=t.project,n=null;await ae.mktempPromise(async u=>{let A=K.join(u,`${e}.log`),p=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${Ae.fromPortablePath(t.cwd)}") +`,{stdout:h,stderr:E}=a.getSubprocessStreams(A,{report:o,prefix:jr(a,t.anchoredLocator),header:p});o.reportInfo(36,`Calling the "${e}" lifecycle script`);let w=await jue(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),w!==0)throw ae.detachTemp(u),new Jt(36,`${(0,Mue.default)(e)} script failed (exit code ${Ut(a,w,Ct.NUMBER)}, logs can be found here: ${Ut(a,A,Ct.PATH)}); run ${Ut(a,`yarn ${e}`,Ct.CODE)} to investigate`)})}async function yat(t,e,r){i3(t,e)&&await Gue(t,e,r)}function s3(t){let e=K.extname(t);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let r=Buffer.alloc(4),o;try{o=ae.openSync(t,"r")}catch{return!0}try{ae.readSync(o,r,0,r.length,0)}finally{ae.closeSync(o)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function Px(t,{project:e}){let r=e.configuration,o=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${jr(r,t)} not found in the project`);let n=new dh.Writable,u=r.getLinkers(),A={project:e,report:new Nt({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let E of a.dependencies.values()){let w=e.storedResolutions.get(E.descriptorHash);if(!w)throw new Error(`Assertion failed: The resolution (${Jn(r,E)}) should have been registered`);p.add(w)}let h=await Promise.all(Array.from(p,async E=>{let w=e.storedPackages.get(E);if(!w)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(w.bin.size===0)return ul.skip;let D=u.find(C=>C.supportsPackage(w,A));if(!D)return ul.skip;let x=null;try{x=await D.findPackageLocation(w,A)}catch(C){if(C.code==="LOCATOR_NOT_INSTALLED")return ul.skip;throw C}return{dependency:w,packageLocation:x}}));for(let E of h){if(E===ul.skip)continue;let{dependency:w,packageLocation:D}=E;for(let[x,C]of w.bin){let T=K.resolve(D,C);o.set(x,[w,Ae.fromPortablePath(T),s3(T)])}}return o}async function Wue(t){return await Px(t.anchoredLocator,{project:t.project})}async function o3(t,e){await Promise.all(Array.from(e,([r,[,o,a]])=>a?gh(t,r,process.execPath,[o]):gh(t,r,o,[])))}async function Yue(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A,nodeArgs:p=[],packageAccessibleBinaries:h}){h??=await Px(t,{project:a});let E=h.get(e);if(!E)throw new Error(`Binary not found (${e}) for ${jr(a.configuration,t)}`);return await ae.mktempPromise(async w=>{let[,D]=E,x=await i2({project:a,locator:t,binFolder:w});await o3(x.BERRY_BIN_FOLDER,h);let C=s3(Ae.toPortablePath(D))?Xc(process.execPath,[...p,D,...r],{cwd:o,env:x,stdin:n,stdout:u,stderr:A}):Xc(D,r,{cwd:o,env:x,stdin:n,stdout:u,stderr:A}),T;try{T=await C}finally{await ae.removePromise(x.BERRY_BIN_FOLDER)}return T.code})}async function Eat(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A}){return await Yue(t.anchoredLocator,e,r,{project:t.project,cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A})}var Mue,Uue,dh,_ue,pat,hat,a3=It(()=>{Pt();Pt();sA();z1();Mue=et(t3()),Uue=et(lg()),dh=ve("stream");Ay();Vl();n2();r2();ix();Wl();Gl();xf();Io();_ue=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(_ue||{});pat=2,hat=(0,Uue.default)(pat)});var Fy=_((yUt,Vue)=>{"use strict";var Kue=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);Vue.exports=t=>t?Object.keys(t).map(e=>[Kue.has(e)?Kue.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var Ty=_((EUt,nAe)=>{"use strict";var Jue=typeof process=="object"&&process?process:{stdout:null,stderr:null},Cat=ve("events"),zue=ve("stream"),Xue=ve("string_decoder").StringDecoder,Lf=Symbol("EOF"),Of=Symbol("maybeEmitEnd"),mh=Symbol("emittedEnd"),Sx=Symbol("emittingEnd"),s2=Symbol("emittedError"),bx=Symbol("closed"),Zue=Symbol("read"),xx=Symbol("flush"),$ue=Symbol("flushChunk"),Ra=Symbol("encoding"),Mf=Symbol("decoder"),kx=Symbol("flowing"),o2=Symbol("paused"),Ry=Symbol("resume"),bs=Symbol("bufferLength"),l3=Symbol("bufferPush"),c3=Symbol("bufferShift"),Do=Symbol("objectMode"),Po=Symbol("destroyed"),u3=Symbol("emitData"),eAe=Symbol("emitEnd"),A3=Symbol("emitEnd2"),Uf=Symbol("async"),a2=t=>Promise.resolve().then(t),tAe=global._MP_NO_ITERATOR_SYMBOLS_!=="1",Iat=tAe&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),wat=tAe&&Symbol.iterator||Symbol("iterator not implemented"),Bat=t=>t==="end"||t==="finish"||t==="prefinish",vat=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,Dat=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),Qx=class{constructor(e,r,o){this.src=e,this.dest=r,this.opts=o,this.ondrain=()=>e[Ry](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},f3=class extends Qx{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,o){super(e,r,o),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}};nAe.exports=class rAe extends zue{constructor(e){super(),this[kx]=!1,this[o2]=!1,this.pipes=[],this.buffer=[],this[Do]=e&&e.objectMode||!1,this[Do]?this[Ra]=null:this[Ra]=e&&e.encoding||null,this[Ra]==="buffer"&&(this[Ra]=null),this[Uf]=e&&!!e.async||!1,this[Mf]=this[Ra]?new Xue(this[Ra]):null,this[Lf]=!1,this[mh]=!1,this[Sx]=!1,this[bx]=!1,this[s2]=null,this.writable=!0,this.readable=!0,this[bs]=0,this[Po]=!1}get bufferLength(){return this[bs]}get encoding(){return this[Ra]}set encoding(e){if(this[Do])throw new Error("cannot set encoding in objectMode");if(this[Ra]&&e!==this[Ra]&&(this[Mf]&&this[Mf].lastNeed||this[bs]))throw new Error("cannot change encoding");this[Ra]!==e&&(this[Mf]=e?new Xue(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[Mf].write(r)))),this[Ra]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Do]}set objectMode(e){this[Do]=this[Do]||!!e}get async(){return this[Uf]}set async(e){this[Uf]=this[Uf]||!!e}write(e,r,o){if(this[Lf])throw new Error("write after end");if(this[Po])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(o=r,r="utf8"),r||(r="utf8");let a=this[Uf]?a2:n=>n();return!this[Do]&&!Buffer.isBuffer(e)&&(Dat(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):vat(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Do]?(this.flowing&&this[bs]!==0&&this[xx](!0),this.flowing?this.emit("data",e):this[l3](e),this[bs]!==0&&this.emit("readable"),o&&a(o),this.flowing):e.length?(typeof e=="string"&&!(r===this[Ra]&&!this[Mf].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[Ra]&&(e=this[Mf].write(e)),this.flowing&&this[bs]!==0&&this[xx](!0),this.flowing?this.emit("data",e):this[l3](e),this[bs]!==0&&this.emit("readable"),o&&a(o),this.flowing):(this[bs]!==0&&this.emit("readable"),o&&a(o),this.flowing)}read(e){if(this[Po])return null;if(this[bs]===0||e===0||e>this[bs])return this[Of](),null;this[Do]&&(e=null),this.buffer.length>1&&!this[Do]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[bs])]);let r=this[Zue](e||null,this.buffer[0]);return this[Of](),r}[Zue](e,r){return e===r.length||e===null?this[c3]():(this.buffer[0]=r.slice(e),r=r.slice(0,e),this[bs]-=e),this.emit("data",r),!this.buffer.length&&!this[Lf]&&this.emit("drain"),r}end(e,r,o){return typeof e=="function"&&(o=e,e=null),typeof r=="function"&&(o=r,r="utf8"),e&&this.write(e,r),o&&this.once("end",o),this[Lf]=!0,this.writable=!1,(this.flowing||!this[o2])&&this[Of](),this}[Ry](){this[Po]||(this[o2]=!1,this[kx]=!0,this.emit("resume"),this.buffer.length?this[xx]():this[Lf]?this[Of]():this.emit("drain"))}resume(){return this[Ry]()}pause(){this[kx]=!1,this[o2]=!0}get destroyed(){return this[Po]}get flowing(){return this[kx]}get paused(){return this[o2]}[l3](e){this[Do]?this[bs]+=1:this[bs]+=e.length,this.buffer.push(e)}[c3](){return this.buffer.length&&(this[Do]?this[bs]-=1:this[bs]-=this.buffer[0].length),this.buffer.shift()}[xx](e){do;while(this[$ue](this[c3]()));!e&&!this.buffer.length&&!this[Lf]&&this.emit("drain")}[$ue](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Po])return;let o=this[mh];return r=r||{},e===Jue.stdout||e===Jue.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,o?r.end&&e.end():(this.pipes.push(r.proxyErrors?new f3(this,e,r):new Qx(this,e,r)),this[Uf]?a2(()=>this[Ry]()):this[Ry]()),e}unpipe(e){let r=this.pipes.find(o=>o.dest===e);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let o=super.on(e,r);return e==="data"&&!this.pipes.length&&!this.flowing?this[Ry]():e==="readable"&&this[bs]!==0?super.emit("readable"):Bat(e)&&this[mh]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[s2]&&(this[Uf]?a2(()=>r.call(this,this[s2])):r.call(this,this[s2])),o}get emittedEnd(){return this[mh]}[Of](){!this[Sx]&&!this[mh]&&!this[Po]&&this.buffer.length===0&&this[Lf]&&(this[Sx]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[bx]&&this.emit("close"),this[Sx]=!1)}emit(e,r,...o){if(e!=="error"&&e!=="close"&&e!==Po&&this[Po])return;if(e==="data")return r?this[Uf]?a2(()=>this[u3](r)):this[u3](r):!1;if(e==="end")return this[eAe]();if(e==="close"){if(this[bx]=!0,!this[mh]&&!this[Po])return;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[s2]=r;let n=super.emit("error",r);return this[Of](),n}else if(e==="resume"){let n=super.emit("resume");return this[Of](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,r,...o);return this[Of](),a}[u3](e){for(let o of this.pipes)o.dest.write(e)===!1&&this.pause();let r=super.emit("data",e);return this[Of](),r}[eAe](){this[mh]||(this[mh]=!0,this.readable=!1,this[Uf]?a2(()=>this[A3]()):this[A3]())}[A3](){if(this[Mf]){let r=this[Mf].end();if(r){for(let o of this.pipes)o.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Do]||(e.dataLength=0);let r=this.promise();return this.on("data",o=>{e.push(o),this[Do]||(e.dataLength+=o.length)}),r.then(()=>e)}concat(){return this[Do]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Do]?Promise.reject(new Error("cannot concat in objectMode")):this[Ra]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Po,()=>r(new Error("stream destroyed"))),this.on("error",o=>r(o)),this.on("end",()=>e())})}[Iat](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Lf])return Promise.resolve({done:!0});let o=null,a=null,n=h=>{this.removeListener("data",u),this.removeListener("end",A),a(h)},u=h=>{this.removeListener("error",n),this.removeListener("end",A),this.pause(),o({value:h,done:!!this[Lf]})},A=()=>{this.removeListener("error",n),this.removeListener("data",u),o({done:!0})},p=()=>n(new Error("stream destroyed"));return new Promise((h,E)=>{a=E,o=h,this.once(Po,p),this.once("error",n),this.once("end",A),this.once("data",u)})}}}[wat](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Po]?(e?this.emit("error",e):this.emit(Po),this):(this[Po]=!0,this.buffer.length=0,this[bs]=0,typeof this.close=="function"&&!this[bx]&&this.close(),e?this.emit("error",e):this.emit(Po),this)}static isStream(e){return!!e&&(e instanceof rAe||e instanceof zue||e instanceof Cat&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var sAe=_((CUt,iAe)=>{var Pat=ve("zlib").constants||{ZLIB_VERNUM:4736};iAe.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},Pat))});var b3=_(hl=>{"use strict";var m3=ve("assert"),yh=ve("buffer").Buffer,lAe=ve("zlib"),Tg=hl.constants=sAe(),Sat=Ty(),oAe=yh.concat,Ng=Symbol("_superWrite"),Ly=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},bat=Symbol("opts"),l2=Symbol("flushFlag"),aAe=Symbol("finishFlushFlag"),S3=Symbol("fullFlushFlag"),ui=Symbol("handle"),Fx=Symbol("onError"),Ny=Symbol("sawError"),p3=Symbol("level"),h3=Symbol("strategy"),g3=Symbol("ended"),IUt=Symbol("_defaultFullFlush"),Rx=class extends Sat{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[Ny]=!1,this[g3]=!1,this[bat]=e,this[l2]=e.flush,this[aAe]=e.finishFlush;try{this[ui]=new lAe[r](e)}catch(o){throw new Ly(o)}this[Fx]=o=>{this[Ny]||(this[Ny]=!0,this.close(),this.emit("error",o))},this[ui].on("error",o=>this[Fx](new Ly(o))),this.once("end",()=>this.close)}close(){this[ui]&&(this[ui].close(),this[ui]=null,this.emit("close"))}reset(){if(!this[Ny])return m3(this[ui],"zlib binding closed"),this[ui].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[S3]),this.write(Object.assign(yh.alloc(0),{[l2]:e})))}end(e,r,o){return e&&this.write(e,r),this.flush(this[aAe]),this[g3]=!0,super.end(null,null,o)}get ended(){return this[g3]}write(e,r,o){if(typeof r=="function"&&(o=r,r="utf8"),typeof e=="string"&&(e=yh.from(e,r)),this[Ny])return;m3(this[ui],"zlib binding closed");let a=this[ui]._handle,n=a.close;a.close=()=>{};let u=this[ui].close;this[ui].close=()=>{},yh.concat=h=>h;let A;try{let h=typeof e[l2]=="number"?e[l2]:this[l2];A=this[ui]._processChunk(e,h),yh.concat=oAe}catch(h){yh.concat=oAe,this[Fx](new Ly(h))}finally{this[ui]&&(this[ui]._handle=a,a.close=n,this[ui].close=u,this[ui].removeAllListeners("error"))}this[ui]&&this[ui].on("error",h=>this[Fx](new Ly(h)));let p;if(A)if(Array.isArray(A)&&A.length>0){p=this[Ng](yh.from(A[0]));for(let h=1;h{this.flush(a),n()};try{this[ui].params(e,r)}finally{this[ui].flush=o}this[ui]&&(this[p3]=e,this[h3]=r)}}}},y3=class extends _f{constructor(e){super(e,"Deflate")}},E3=class extends _f{constructor(e){super(e,"Inflate")}},d3=Symbol("_portable"),C3=class extends _f{constructor(e){super(e,"Gzip"),this[d3]=e&&!!e.portable}[Ng](e){return this[d3]?(this[d3]=!1,e[9]=255,super[Ng](e)):super[Ng](e)}},I3=class extends _f{constructor(e){super(e,"Gunzip")}},w3=class extends _f{constructor(e){super(e,"DeflateRaw")}},B3=class extends _f{constructor(e){super(e,"InflateRaw")}},v3=class extends _f{constructor(e){super(e,"Unzip")}},Tx=class extends Rx{constructor(e,r){e=e||{},e.flush=e.flush||Tg.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Tg.BROTLI_OPERATION_FINISH,super(e,r),this[S3]=Tg.BROTLI_OPERATION_FLUSH}},D3=class extends Tx{constructor(e){super(e,"BrotliCompress")}},P3=class extends Tx{constructor(e){super(e,"BrotliDecompress")}};hl.Deflate=y3;hl.Inflate=E3;hl.Gzip=C3;hl.Gunzip=I3;hl.DeflateRaw=w3;hl.InflateRaw=B3;hl.Unzip=v3;typeof lAe.BrotliCompress=="function"?(hl.BrotliCompress=D3,hl.BrotliDecompress=P3):hl.BrotliCompress=hl.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var Oy=_((vUt,cAe)=>{var xat=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;cAe.exports=xat!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/")});var Nx=_((PUt,uAe)=>{"use strict";var kat=Ty(),x3=Oy(),k3=Symbol("slurp");uAe.exports=class extends kat{constructor(e,r,o){switch(super(),this.pause(),this.extended=r,this.globalExtended=o,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=x3(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=x3(e.linkpath),this.uname=e.uname,this.gname=e.gname,r&&this[k3](r),o&&this[k3](o,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let o=this.remain,a=this.blockRemain;return this.remain=Math.max(0,o-r),this.blockRemain=Math.max(0,a-r),this.ignore?!0:o>=r?super.write(e):super.write(e.slice(0,o))}[k3](e,r){for(let o in e)e[o]!==null&&e[o]!==void 0&&!(r&&o==="path")&&(this[o]=o==="path"||o==="linkpath"?x3(e[o]):e[o])}}});var Q3=_(Lx=>{"use strict";Lx.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);Lx.code=new Map(Array.from(Lx.name).map(t=>[t[1],t[0]]))});var hAe=_((bUt,pAe)=>{"use strict";var Qat=(t,e)=>{if(Number.isSafeInteger(t))t<0?Rat(t,e):Fat(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},Fat=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},Rat=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var o=e.length;o>1;o--){var a=t&255;t=Math.floor(t/256),r?e[o-1]=AAe(a):a===0?e[o-1]=0:(r=!0,e[o-1]=fAe(a))}},Tat=t=>{let e=t[0],r=e===128?Lat(t.slice(1,t.length)):e===255?Nat(t):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},Nat=t=>{for(var e=t.length,r=0,o=!1,a=e-1;a>-1;a--){var n=t[a],u;o?u=AAe(n):n===0?u=n:(o=!0,u=fAe(n)),u!==0&&(r-=u*Math.pow(256,e-a-1))}return r},Lat=t=>{for(var e=t.length,r=0,o=e-1;o>-1;o--){var a=t[o];a!==0&&(r+=a*Math.pow(256,e-o-1))}return r},AAe=t=>(255^t)&255,fAe=t=>(255^t)+1&255;pAe.exports={encode:Qat,parse:Tat}});var Uy=_((xUt,dAe)=>{"use strict";var F3=Q3(),My=ve("path").posix,gAe=hAe(),R3=Symbol("slurp"),gl=Symbol("type"),L3=class{constructor(e,r,o,a){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[gl]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,o,a):e&&this.set(e)}decode(e,r,o,a){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=Lg(e,r,100),this.mode=Eh(e,r+100,8),this.uid=Eh(e,r+108,8),this.gid=Eh(e,r+116,8),this.size=Eh(e,r+124,12),this.mtime=T3(e,r+136,12),this.cksum=Eh(e,r+148,12),this[R3](o),this[R3](a,!0),this[gl]=Lg(e,r+156,1),this[gl]===""&&(this[gl]="0"),this[gl]==="0"&&this.path.substr(-1)==="/"&&(this[gl]="5"),this[gl]==="5"&&(this.size=0),this.linkpath=Lg(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=Lg(e,r+265,32),this.gname=Lg(e,r+297,32),this.devmaj=Eh(e,r+329,8),this.devmin=Eh(e,r+337,8),e[r+475]!==0){let u=Lg(e,r+345,155);this.path=u+"/"+this.path}else{let u=Lg(e,r+345,130);u&&(this.path=u+"/"+this.path),this.atime=T3(e,r+476,12),this.ctime=T3(e,r+488,12)}let n=8*32;for(let u=r;u=r+512))throw new Error("need 512 bytes for header");let o=this.ctime||this.atime?130:155,a=Oat(this.path||"",o),n=a[0],u=a[1];this.needPax=a[2],this.needPax=Og(e,r,100,n)||this.needPax,this.needPax=Ch(e,r+100,8,this.mode)||this.needPax,this.needPax=Ch(e,r+108,8,this.uid)||this.needPax,this.needPax=Ch(e,r+116,8,this.gid)||this.needPax,this.needPax=Ch(e,r+124,12,this.size)||this.needPax,this.needPax=N3(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[gl].charCodeAt(0),this.needPax=Og(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=Og(e,r+265,32,this.uname)||this.needPax,this.needPax=Og(e,r+297,32,this.gname)||this.needPax,this.needPax=Ch(e,r+329,8,this.devmaj)||this.needPax,this.needPax=Ch(e,r+337,8,this.devmin)||this.needPax,this.needPax=Og(e,r+345,o,u)||this.needPax,e[r+475]!==0?this.needPax=Og(e,r+345,155,u)||this.needPax:(this.needPax=Og(e,r+345,130,u)||this.needPax,this.needPax=N3(e,r+476,12,this.atime)||this.needPax,this.needPax=N3(e,r+488,12,this.ctime)||this.needPax);let A=8*32;for(let p=r;p{let o=t,a="",n,u=My.parse(t).root||".";if(Buffer.byteLength(o)<100)n=[o,a,!1];else{a=My.dirname(o),o=My.basename(o);do Buffer.byteLength(o)<=100&&Buffer.byteLength(a)<=e?n=[o,a,!1]:Buffer.byteLength(o)>100&&Buffer.byteLength(a)<=e?n=[o.substr(0,99),a,!0]:(o=My.join(My.basename(a),o),a=My.dirname(a));while(a!==u&&!n);n||(n=[t.substr(0,99),"",!0])}return n},Lg=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),T3=(t,e,r)=>Mat(Eh(t,e,r)),Mat=t=>t===null?null:new Date(t*1e3),Eh=(t,e,r)=>t[e]&128?gAe.parse(t.slice(e,e+r)):_at(t,e,r),Uat=t=>isNaN(t)?null:t,_at=(t,e,r)=>Uat(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),Hat={12:8589934591,8:2097151},Ch=(t,e,r,o)=>o===null?!1:o>Hat[r]||o<0?(gAe.encode(o,t.slice(e,e+r)),!0):(qat(t,e,r,o),!1),qat=(t,e,r,o)=>t.write(jat(o,r),e,r,"ascii"),jat=(t,e)=>Gat(Math.floor(t).toString(8),e),Gat=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",N3=(t,e,r,o)=>o===null?!1:Ch(t,e,r,o.getTime()/1e3),Wat=new Array(156).join("\0"),Og=(t,e,r,o)=>o===null?!1:(t.write(o+Wat,e,r,"utf8"),o.length!==Buffer.byteLength(o)||o.length>r);dAe.exports=L3});var Ox=_((kUt,mAe)=>{"use strict";var Yat=Uy(),Kat=ve("path"),c2=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),o=512*Math.ceil(1+r/512),a=Buffer.allocUnsafe(o);for(let n=0;n<512;n++)a[n]=0;new Yat({path:("PaxHeader/"+Kat.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,r,"utf8");for(let n=r+512;n=Math.pow(10,n)&&(n+=1),n+a+o}};c2.parse=(t,e,r)=>new c2(Vat(Jat(t),e),r);var Vat=(t,e)=>e?Object.keys(t).reduce((r,o)=>(r[o]=t[o],r),e):t,Jat=t=>t.replace(/\n$/,"").split(` +`).reduce(zat,Object.create(null)),zat=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let o=e.split("="),a=o.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!a)return t;let n=o.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};mAe.exports=c2});var _y=_((QUt,yAe)=>{yAe.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)==="/";)r=e,e--;return r===-1?t:t.slice(0,r)}});var Mx=_((FUt,EAe)=>{"use strict";EAe.exports=t=>class extends t{warn(e,r,o={}){this.file&&(o.file=this.file),this.cwd&&(o.cwd=this.cwd),o.code=r instanceof Error&&r.code||e,o.tarCode=e,!this.strict&&o.recoverable!==!1?(r instanceof Error&&(o=Object.assign(r,o),r=r.message),this.emit("warn",o.tarCode,r,o)):r instanceof Error?this.emit("error",Object.assign(r,o)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),o))}}});var M3=_((TUt,CAe)=>{"use strict";var Ux=["|","<",">","?",":"],O3=Ux.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),Xat=new Map(Ux.map((t,e)=>[t,O3[e]])),Zat=new Map(O3.map((t,e)=>[t,Ux[e]]));CAe.exports={encode:t=>Ux.reduce((e,r)=>e.split(r).join(Xat.get(r)),t),decode:t=>O3.reduce((e,r)=>e.split(r).join(Zat.get(r)),t)}});var U3=_((NUt,wAe)=>{var{isAbsolute:$at,parse:IAe}=ve("path").win32;wAe.exports=t=>{let e="",r=IAe(t);for(;$at(t)||r.root;){let o=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":r.root;t=t.substr(o.length),e+=o,r=IAe(t)}return[e,t]}});var vAe=_((LUt,BAe)=>{"use strict";BAe.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var J3=_((UUt,MAe)=>{"use strict";var QAe=Ty(),FAe=Ox(),RAe=Uy(),lA=ve("fs"),DAe=ve("path"),aA=Oy(),elt=_y(),TAe=(t,e)=>e?(t=aA(t).replace(/^\.(\/|$)/,""),elt(e)+"/"+t):aA(t),tlt=16*1024*1024,PAe=Symbol("process"),SAe=Symbol("file"),bAe=Symbol("directory"),H3=Symbol("symlink"),xAe=Symbol("hardlink"),u2=Symbol("header"),_x=Symbol("read"),q3=Symbol("lstat"),Hx=Symbol("onlstat"),j3=Symbol("onread"),G3=Symbol("onreadlink"),W3=Symbol("openfile"),Y3=Symbol("onopenfile"),Ih=Symbol("close"),qx=Symbol("mode"),K3=Symbol("awaitDrain"),_3=Symbol("ondrain"),cA=Symbol("prefix"),kAe=Symbol("hadError"),NAe=Mx(),rlt=M3(),LAe=U3(),OAe=vAe(),jx=NAe(class extends QAe{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=aA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||tlt,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=aA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?aA(r.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=LAe(this.path);a&&(this.path=n,o=a)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=rlt.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=aA(r.absolute||DAe.resolve(this.cwd,e)),this.path===""&&(this.path="./"),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.statCache.has(this.absolute)?this[Hx](this.statCache.get(this.absolute)):this[q3]()}emit(e,...r){return e==="error"&&(this[kAe]=!0),super.emit(e,...r)}[q3](){lA.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[Hx](r)})}[Hx](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=ilt(e),this.emit("stat",e),this[PAe]()}[PAe](){switch(this.type){case"File":return this[SAe]();case"Directory":return this[bAe]();case"SymbolicLink":return this[H3]();default:return this.end()}}[qx](e){return OAe(e,this.type==="Directory",this.portable)}[cA](e){return TAe(e,this.prefix)}[u2](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new RAe({path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,mode:this[qx](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new FAe({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[bAe](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[u2](),this.end()}[H3](){lA.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[G3](r)})}[G3](e){this.linkpath=aA(e),this[u2](),this.end()}[xAe](e){this.type="Link",this.linkpath=aA(DAe.relative(this.cwd,e)),this.stat.size=0,this[u2](),this.end()}[SAe](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[xAe](r)}this.linkCache.set(e,this.absolute)}if(this[u2](),this.stat.size===0)return this.end();this[W3]()}[W3](){lA.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[Y3](r)})}[Y3](e){if(this.fd=e,this[kAe])return this[Ih]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let r=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(r),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[_x]()}[_x](){let{fd:e,buf:r,offset:o,length:a,pos:n}=this;lA.read(e,r,o,a,n,(u,A)=>{if(u)return this[Ih](()=>this.emit("error",u));this[j3](A)})}[Ih](e){lA.close(this.fd,e)}[j3](e){if(e<=0&&this.remain>0){let a=new Error("encountered unexpected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[Ih](()=>this.emit("error",a))}if(e>this.remain){let a=new Error("did not encounter expected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[Ih](()=>this.emit("error",a))}if(e===this.remain)for(let a=e;athis[_3]())}[K3](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[_x]()}}),V3=class extends jx{[q3](){this[Hx](lA.lstatSync(this.absolute))}[H3](){this[G3](lA.readlinkSync(this.absolute))}[W3](){this[Y3](lA.openSync(this.absolute,"r"))}[_x](){let e=!0;try{let{fd:r,buf:o,offset:a,length:n,pos:u}=this,A=lA.readSync(r,o,a,n,u);this[j3](A),e=!1}finally{if(e)try{this[Ih](()=>{})}catch{}}}[K3](e){e()}[Ih](e){lA.closeSync(this.fd),e()}},nlt=NAe(class extends QAe{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix||null,this.path=aA(e.path),this.mode=this[qx](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=aA(e.linkpath),typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=LAe(this.path);a&&(this.path=n,o=a)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new RAe({path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.header.encode()&&!this.noPax&&super.write(new FAe({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[cA](e){return TAe(e,this.prefix)}[qx](e){return OAe(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});jx.Sync=V3;jx.Tar=nlt;var ilt=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";MAe.exports=jx});var Zx=_((HUt,WAe)=>{"use strict";var zx=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},slt=Ty(),olt=b3(),alt=Nx(),i8=J3(),llt=i8.Sync,clt=i8.Tar,ult=$P(),UAe=Buffer.alloc(1024),Yx=Symbol("onStat"),Gx=Symbol("ended"),uA=Symbol("queue"),Hy=Symbol("current"),Mg=Symbol("process"),Wx=Symbol("processing"),_Ae=Symbol("processJob"),AA=Symbol("jobs"),z3=Symbol("jobDone"),Kx=Symbol("addFSEntry"),HAe=Symbol("addTarEntry"),e8=Symbol("stat"),t8=Symbol("readdir"),Vx=Symbol("onreaddir"),Jx=Symbol("pipe"),qAe=Symbol("entry"),X3=Symbol("entryOpt"),r8=Symbol("writeEntryClass"),GAe=Symbol("write"),Z3=Symbol("ondrain"),Xx=ve("fs"),jAe=ve("path"),Alt=Mx(),$3=Oy(),s8=Alt(class extends slt{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=$3(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[r8]=i8,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new olt.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[Z3]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[Z3]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[uA]=new ult,this[AA]=0,this.jobs=+e.jobs||4,this[Wx]=!1,this[Gx]=!1}[GAe](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[Gx]=!0,this[Mg](),this}write(e){if(this[Gx])throw new Error("write after end");return e instanceof alt?this[HAe](e):this[Kx](e),this.flowing}[HAe](e){let r=$3(jAe.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let o=new zx(e.path,r,!1);o.entry=new clt(e,this[X3](o)),o.entry.on("end",a=>this[z3](o)),this[AA]+=1,this[uA].push(o)}this[Mg]()}[Kx](e){let r=$3(jAe.resolve(this.cwd,e));this[uA].push(new zx(e,r)),this[Mg]()}[e8](e){e.pending=!0,this[AA]+=1;let r=this.follow?"stat":"lstat";Xx[r](e.absolute,(o,a)=>{e.pending=!1,this[AA]-=1,o?this.emit("error",o):this[Yx](e,a)})}[Yx](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[Mg]()}[t8](e){e.pending=!0,this[AA]+=1,Xx.readdir(e.absolute,(r,o)=>{if(e.pending=!1,this[AA]-=1,r)return this.emit("error",r);this[Vx](e,o)})}[Vx](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[Mg]()}[Mg](){if(!this[Wx]){this[Wx]=!0;for(let e=this[uA].head;e!==null&&this[AA]this.warn(r,o,a),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[qAe](e){this[AA]+=1;try{return new this[r8](e.path,this[X3](e)).on("end",()=>this[z3](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[Z3](){this[Hy]&&this[Hy].entry&&this[Hy].entry.resume()}[Jx](e){e.piped=!0,e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[Kx](u+a)});let r=e.entry,o=this.zip;o?r.on("data",a=>{o.write(a)||r.pause()}):r.on("data",a=>{super.write(a)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),n8=class extends s8{constructor(e){super(e),this[r8]=llt}pause(){}resume(){}[e8](e){let r=this.follow?"statSync":"lstatSync";this[Yx](e,Xx[r](e.absolute))}[t8](e,r){this[Vx](e,Xx.readdirSync(e.absolute))}[Jx](e){let r=e.entry,o=this.zip;e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[Kx](u+a)}),o?r.on("data",a=>{o.write(a)}):r.on("data",a=>{super[GAe](a)})}};s8.Sync=n8;WAe.exports=s8});var Jy=_(f2=>{"use strict";var flt=Ty(),plt=ve("events").EventEmitter,Ta=ve("fs"),l8=Ta.writev;if(!l8){let t=process.binding("fs"),e=t.FSReqWrap||t.FSReqCallback;l8=(r,o,a,n)=>{let u=(p,h)=>n(p,h,o),A=new e;A.oncomplete=u,t.writeBuffers(r,o,a,A)}}var Ky=Symbol("_autoClose"),Zc=Symbol("_close"),A2=Symbol("_ended"),zn=Symbol("_fd"),YAe=Symbol("_finished"),Bh=Symbol("_flags"),o8=Symbol("_flush"),c8=Symbol("_handleChunk"),u8=Symbol("_makeBuf"),nk=Symbol("_mode"),$x=Symbol("_needDrain"),Wy=Symbol("_onerror"),Vy=Symbol("_onopen"),a8=Symbol("_onread"),jy=Symbol("_onwrite"),vh=Symbol("_open"),Hf=Symbol("_path"),Ug=Symbol("_pos"),fA=Symbol("_queue"),Gy=Symbol("_read"),KAe=Symbol("_readSize"),wh=Symbol("_reading"),ek=Symbol("_remain"),VAe=Symbol("_size"),tk=Symbol("_write"),qy=Symbol("_writing"),rk=Symbol("_defaultFlag"),Yy=Symbol("_errored"),ik=class extends flt{constructor(e,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[Yy]=!1,this[zn]=typeof r.fd=="number"?r.fd:null,this[Hf]=e,this[KAe]=r.readSize||16*1024*1024,this[wh]=!1,this[VAe]=typeof r.size=="number"?r.size:1/0,this[ek]=this[VAe],this[Ky]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[zn]=="number"?this[Gy]():this[vh]()}get fd(){return this[zn]}get path(){return this[Hf]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[vh](){Ta.open(this[Hf],"r",(e,r)=>this[Vy](e,r))}[Vy](e,r){e?this[Wy](e):(this[zn]=r,this.emit("open",r),this[Gy]())}[u8](){return Buffer.allocUnsafe(Math.min(this[KAe],this[ek]))}[Gy](){if(!this[wh]){this[wh]=!0;let e=this[u8]();if(e.length===0)return process.nextTick(()=>this[a8](null,0,e));Ta.read(this[zn],e,0,e.length,null,(r,o,a)=>this[a8](r,o,a))}}[a8](e,r,o){this[wh]=!1,e?this[Wy](e):this[c8](r,o)&&this[Gy]()}[Zc](){if(this[Ky]&&typeof this[zn]=="number"){let e=this[zn];this[zn]=null,Ta.close(e,r=>r?this.emit("error",r):this.emit("close"))}}[Wy](e){this[wh]=!0,this[Zc](),this.emit("error",e)}[c8](e,r){let o=!1;return this[ek]-=e,e>0&&(o=super.write(ethis[Vy](e,r))}[Vy](e,r){this[rk]&&this[Bh]==="r+"&&e&&e.code==="ENOENT"?(this[Bh]="w",this[vh]()):e?this[Wy](e):(this[zn]=r,this.emit("open",r),this[o8]())}end(e,r){return e&&this.write(e,r),this[A2]=!0,!this[qy]&&!this[fA].length&&typeof this[zn]=="number"&&this[jy](null,0),this}write(e,r){return typeof e=="string"&&(e=Buffer.from(e,r)),this[A2]?(this.emit("error",new Error("write() after end()")),!1):this[zn]===null||this[qy]||this[fA].length?(this[fA].push(e),this[$x]=!0,!1):(this[qy]=!0,this[tk](e),!0)}[tk](e){Ta.write(this[zn],e,0,e.length,this[Ug],(r,o)=>this[jy](r,o))}[jy](e,r){e?this[Wy](e):(this[Ug]!==null&&(this[Ug]+=r),this[fA].length?this[o8]():(this[qy]=!1,this[A2]&&!this[YAe]?(this[YAe]=!0,this[Zc](),this.emit("finish")):this[$x]&&(this[$x]=!1,this.emit("drain"))))}[o8](){if(this[fA].length===0)this[A2]&&this[jy](null,0);else if(this[fA].length===1)this[tk](this[fA].pop());else{let e=this[fA];this[fA]=[],l8(this[zn],e,this[Ug],(r,o)=>this[jy](r,o))}}[Zc](){if(this[Ky]&&typeof this[zn]=="number"){let e=this[zn];this[zn]=null,Ta.close(e,r=>r?this.emit("error",r):this.emit("close"))}}},f8=class extends sk{[vh](){let e;if(this[rk]&&this[Bh]==="r+")try{e=Ta.openSync(this[Hf],this[Bh],this[nk])}catch(r){if(r.code==="ENOENT")return this[Bh]="w",this[vh]();throw r}else e=Ta.openSync(this[Hf],this[Bh],this[nk]);this[Vy](null,e)}[Zc](){if(this[Ky]&&typeof this[zn]=="number"){let e=this[zn];this[zn]=null,Ta.closeSync(e),this.emit("close")}}[tk](e){let r=!0;try{this[jy](null,Ta.writeSync(this[zn],e,0,e.length,this[Ug])),r=!1}finally{if(r)try{this[Zc]()}catch{}}}};f2.ReadStream=ik;f2.ReadStreamSync=A8;f2.WriteStream=sk;f2.WriteStreamSync=f8});var fk=_((GUt,tfe)=>{"use strict";var hlt=Mx(),glt=Uy(),dlt=ve("events"),mlt=$P(),ylt=1024*1024,Elt=Nx(),JAe=Ox(),Clt=b3(),p8=Buffer.from([31,139]),$l=Symbol("state"),_g=Symbol("writeEntry"),qf=Symbol("readEntry"),h8=Symbol("nextEntry"),zAe=Symbol("processEntry"),ec=Symbol("extendedHeader"),p2=Symbol("globalExtendedHeader"),Dh=Symbol("meta"),XAe=Symbol("emitMeta"),yi=Symbol("buffer"),jf=Symbol("queue"),Hg=Symbol("ended"),ZAe=Symbol("emittedEnd"),qg=Symbol("emit"),Na=Symbol("unzip"),ok=Symbol("consumeChunk"),ak=Symbol("consumeChunkSub"),g8=Symbol("consumeBody"),$Ae=Symbol("consumeMeta"),efe=Symbol("consumeHeader"),lk=Symbol("consuming"),d8=Symbol("bufferConcat"),m8=Symbol("maybeEnd"),h2=Symbol("writing"),Ph=Symbol("aborted"),ck=Symbol("onDone"),jg=Symbol("sawValidEntry"),uk=Symbol("sawNullBlock"),Ak=Symbol("sawEOF"),Ilt=t=>!0;tfe.exports=hlt(class extends dlt{constructor(e){e=e||{},super(e),this.file=e.file||"",this[jg]=null,this.on(ck,r=>{(this[$l]==="begin"||this[jg]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(ck,e.ondone):this.on(ck,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||ylt,this.filter=typeof e.filter=="function"?e.filter:Ilt,this.writable=!0,this.readable=!1,this[jf]=new mlt,this[yi]=null,this[qf]=null,this[_g]=null,this[$l]="begin",this[Dh]="",this[ec]=null,this[p2]=null,this[Hg]=!1,this[Na]=null,this[Ph]=!1,this[uk]=!1,this[Ak]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[efe](e,r){this[jg]===null&&(this[jg]=!1);let o;try{o=new glt(e,r,this[ec],this[p2])}catch(a){return this.warn("TAR_ENTRY_INVALID",a)}if(o.nullBlock)this[uk]?(this[Ak]=!0,this[$l]==="begin"&&(this[$l]="header"),this[qg]("eof")):(this[uk]=!0,this[qg]("nullBlock"));else if(this[uk]=!1,!o.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:o});else if(!o.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:o});else{let a=o.type;if(/^(Symbolic)?Link$/.test(a)&&!o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:o});else if(!/^(Symbolic)?Link$/.test(a)&&o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:o});else{let n=this[_g]=new Elt(o,this[ec],this[p2]);if(!this[jg])if(n.remain){let u=()=>{n.invalid||(this[jg]=!0)};n.on("end",u)}else this[jg]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[qg]("ignoredEntry",n),this[$l]="ignore",n.resume()):n.size>0&&(this[Dh]="",n.on("data",u=>this[Dh]+=u),this[$l]="meta"):(this[ec]=null,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[qg]("ignoredEntry",n),this[$l]=n.remain?"ignore":"header",n.resume()):(n.remain?this[$l]="body":(this[$l]="header",n.end()),this[qf]?this[jf].push(n):(this[jf].push(n),this[h8]())))}}}[zAe](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[qf]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",o=>this[h8]()),r=!1)):(this[qf]=null,r=!1),r}[h8](){do;while(this[zAe](this[jf].shift()));if(!this[jf].length){let e=this[qf];!e||e.flowing||e.size===e.remain?this[h2]||this.emit("drain"):e.once("drain",o=>this.emit("drain"))}}[g8](e,r){let o=this[_g],a=o.blockRemain,n=a>=e.length&&r===0?e:e.slice(r,r+a);return o.write(n),o.blockRemain||(this[$l]="header",this[_g]=null,o.end()),n.length}[$Ae](e,r){let o=this[_g],a=this[g8](e,r);return this[_g]||this[XAe](o),a}[qg](e,r,o){!this[jf].length&&!this[qf]?this.emit(e,r,o):this[jf].push([e,r,o])}[XAe](e){switch(this[qg]("meta",this[Dh]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[ec]=JAe.parse(this[Dh],this[ec],!1);break;case"GlobalExtendedHeader":this[p2]=JAe.parse(this[Dh],this[p2],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[ec]=this[ec]||Object.create(null),this[ec].path=this[Dh].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[ec]=this[ec]||Object.create(null),this[ec].linkpath=this[Dh].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[Ph]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[Ph])return;if(this[Na]===null&&e){if(this[yi]&&(e=Buffer.concat([this[yi],e]),this[yi]=null),e.lengththis[ok](n)),this[Na].on("error",n=>this.abort(n)),this[Na].on("end",n=>{this[Hg]=!0,this[ok]()}),this[h2]=!0;let a=this[Na][o?"end":"write"](e);return this[h2]=!1,a}}this[h2]=!0,this[Na]?this[Na].write(e):this[ok](e),this[h2]=!1;let r=this[jf].length?!1:this[qf]?this[qf].flowing:!0;return!r&&!this[jf].length&&this[qf].once("drain",o=>this.emit("drain")),r}[d8](e){e&&!this[Ph]&&(this[yi]=this[yi]?Buffer.concat([this[yi],e]):e)}[m8](){if(this[Hg]&&!this[ZAe]&&!this[Ph]&&!this[lk]){this[ZAe]=!0;let e=this[_g];if(e&&e.blockRemain){let r=this[yi]?this[yi].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[yi]&&e.write(this[yi]),e.end()}this[qg](ck)}}[ok](e){if(this[lk])this[d8](e);else if(!e&&!this[yi])this[m8]();else{if(this[lk]=!0,this[yi]){this[d8](e);let r=this[yi];this[yi]=null,this[ak](r)}else this[ak](e);for(;this[yi]&&this[yi].length>=512&&!this[Ph]&&!this[Ak];){let r=this[yi];this[yi]=null,this[ak](r)}this[lk]=!1}(!this[yi]||this[Hg])&&this[m8]()}[ak](e){let r=0,o=e.length;for(;r+512<=o&&!this[Ph]&&!this[Ak];)switch(this[$l]){case"begin":case"header":this[efe](e,r),r+=512;break;case"ignore":case"body":r+=this[g8](e,r);break;case"meta":r+=this[$Ae](e,r);break;default:throw new Error("invalid state: "+this[$l])}r{"use strict";var wlt=Fy(),nfe=fk(),zy=ve("fs"),Blt=Jy(),rfe=ve("path"),y8=_y();sfe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=wlt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Dlt(o,e),o.noResume||vlt(o),o.file&&o.sync?Plt(o):o.file?Slt(o,r):ife(o)};var vlt=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},Dlt=(t,e)=>{let r=new Map(e.map(n=>[y8(n),!0])),o=t.filter,a=(n,u)=>{let A=u||rfe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(rfe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(y8(n)):n=>a(y8(n))},Plt=t=>{let e=ife(t),r=t.file,o=!0,a;try{let n=zy.statSync(r),u=t.maxReadSize||16*1024*1024;if(n.size{let r=new nfe(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("end",u),zy.stat(a,(p,h)=>{if(p)A(p);else{let E=new Blt.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},ife=t=>new nfe(t)});var Afe=_((YUt,ufe)=>{"use strict";var blt=Fy(),hk=Zx(),ofe=Jy(),afe=pk(),lfe=ve("path");ufe.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let o=blt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return o.file&&o.sync?xlt(o,e):o.file?klt(o,e,r):o.sync?Qlt(o,e):Flt(o,e)};var xlt=(t,e)=>{let r=new hk.Sync(t),o=new ofe.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(o),cfe(r,e)},klt=(t,e,r)=>{let o=new hk(t),a=new ofe.WriteStream(t.file,{mode:t.mode||438});o.pipe(a);let n=new Promise((u,A)=>{a.on("error",A),a.on("close",u),o.on("error",A)});return E8(o,e),r?n.then(r,r):n},cfe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?afe({file:lfe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},E8=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return afe({file:lfe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>E8(t,e));t.add(r)}t.end()},Qlt=(t,e)=>{let r=new hk.Sync(t);return cfe(r,e),r},Flt=(t,e)=>{let r=new hk(t);return E8(r,e),r}});var C8=_((KUt,yfe)=>{"use strict";var Rlt=Fy(),ffe=Zx(),dl=ve("fs"),pfe=Jy(),hfe=pk(),gfe=ve("path"),dfe=Uy();yfe.exports=(t,e,r)=>{let o=Rlt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),o.sync?Tlt(o,e):Llt(o,e,r)};var Tlt=(t,e)=>{let r=new ffe.Sync(t),o=!0,a,n;try{try{a=dl.openSync(t.file,"r+")}catch(p){if(p.code==="ENOENT")a=dl.openSync(t.file,"w+");else throw p}let u=dl.fstatSync(a),A=Buffer.alloc(512);e:for(n=0;nu.size)break;n+=h,t.mtimeCache&&t.mtimeCache.set(p.path,p.mtime)}o=!1,Nlt(t,r,n,a,e)}finally{if(o)try{dl.closeSync(a)}catch{}}},Nlt=(t,e,r,o,a)=>{let n=new pfe.WriteStreamSync(t.file,{fd:o,start:r});e.pipe(n),Olt(e,a)},Llt=(t,e,r)=>{e=Array.from(e);let o=new ffe(t),a=(u,A,p)=>{let h=(C,T)=>{C?dl.close(u,L=>p(C)):p(null,T)},E=0;if(A===0)return h(null,0);let w=0,D=Buffer.alloc(512),x=(C,T)=>{if(C)return h(C);if(w+=T,w<512&&T)return dl.read(u,D,w,D.length-w,E+w,x);if(E===0&&D[0]===31&&D[1]===139)return h(new Error("cannot append to compressed archives"));if(w<512)return h(null,E);let L=new dfe(D);if(!L.cksumValid)return h(null,E);let U=512*Math.ceil(L.size/512);if(E+U+512>A||(E+=U+512,E>=A))return h(null,E);t.mtimeCache&&t.mtimeCache.set(L.path,L.mtime),w=0,dl.read(u,D,0,512,E,x)};dl.read(u,D,0,512,E,x)},n=new Promise((u,A)=>{o.on("error",A);let p="r+",h=(E,w)=>{if(E&&E.code==="ENOENT"&&p==="r+")return p="w+",dl.open(t.file,p,h);if(E)return A(E);dl.fstat(w,(D,x)=>{if(D)return dl.close(w,()=>A(D));a(w,x.size,(C,T)=>{if(C)return A(C);let L=new pfe.WriteStream(t.file,{fd:w,start:T});o.pipe(L),L.on("error",A),L.on("close",u),mfe(o,e)})})};dl.open(t.file,p,h)});return r?n.then(r,r):n},Olt=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?hfe({file:gfe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},mfe=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return hfe({file:gfe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>mfe(t,e));t.add(r)}t.end()}});var Cfe=_((VUt,Efe)=>{"use strict";var Mlt=Fy(),Ult=C8();Efe.exports=(t,e,r)=>{let o=Mlt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),_lt(o),Ult(o,e,r)};var _lt=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,o)=>e(r,o)&&!(t.mtimeCache.get(r)>o.mtime):(r,o)=>!(t.mtimeCache.get(r)>o.mtime)}});var Bfe=_((JUt,wfe)=>{var{promisify:Ife}=ve("util"),Sh=ve("fs"),Hlt=t=>{if(!t)t={mode:511,fs:Sh};else if(typeof t=="object")t={mode:511,fs:Sh,...t};else if(typeof t=="number")t={mode:t,fs:Sh};else if(typeof t=="string")t={mode:parseInt(t,8),fs:Sh};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||Sh.mkdir,t.mkdirAsync=Ife(t.mkdir),t.stat=t.stat||t.fs.stat||Sh.stat,t.statAsync=Ife(t.stat),t.statSync=t.statSync||t.fs.statSync||Sh.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||Sh.mkdirSync,t};wfe.exports=Hlt});var Dfe=_((zUt,vfe)=>{var qlt=process.platform,{resolve:jlt,parse:Glt}=ve("path"),Wlt=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=jlt(t),qlt==="win32"){let e=/[*|"<>?:]/,{root:r}=Glt(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};vfe.exports=Wlt});var kfe=_((XUt,xfe)=>{var{dirname:Pfe}=ve("path"),Sfe=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(o=>o.isDirectory()?r:void 0,o=>o.code==="ENOENT"?Sfe(t,Pfe(e),e):void 0),bfe=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(o){return o.code==="ENOENT"?bfe(t,Pfe(e),e):void 0}};xfe.exports={findMade:Sfe,findMadeSync:bfe}});var B8=_((ZUt,Ffe)=>{var{dirname:Qfe}=ve("path"),I8=(t,e,r)=>{e.recursive=!1;let o=Qfe(t);return o===t?e.mkdirAsync(t,e).catch(a=>{if(a.code!=="EISDIR")throw a}):e.mkdirAsync(t,e).then(()=>r||t,a=>{if(a.code==="ENOENT")return I8(o,e).then(n=>I8(t,e,n));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;return e.statAsync(t).then(n=>{if(n.isDirectory())return r;throw a},()=>{throw a})})},w8=(t,e,r)=>{let o=Qfe(t);if(e.recursive=!1,o===t)try{return e.mkdirSync(t,e)}catch(a){if(a.code!=="EISDIR")throw a;return}try{return e.mkdirSync(t,e),r||t}catch(a){if(a.code==="ENOENT")return w8(t,e,w8(o,e,r));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;try{if(!e.statSync(t).isDirectory())throw a}catch{throw a}}};Ffe.exports={mkdirpManual:I8,mkdirpManualSync:w8}});var Nfe=_(($Ut,Tfe)=>{var{dirname:Rfe}=ve("path"),{findMade:Ylt,findMadeSync:Klt}=kfe(),{mkdirpManual:Vlt,mkdirpManualSync:Jlt}=B8(),zlt=(t,e)=>(e.recursive=!0,Rfe(t)===t?e.mkdirAsync(t,e):Ylt(e,t).then(o=>e.mkdirAsync(t,e).then(()=>o).catch(a=>{if(a.code==="ENOENT")return Vlt(t,e);throw a}))),Xlt=(t,e)=>{if(e.recursive=!0,Rfe(t)===t)return e.mkdirSync(t,e);let o=Klt(e,t);try{return e.mkdirSync(t,e),o}catch(a){if(a.code==="ENOENT")return Jlt(t,e);throw a}};Tfe.exports={mkdirpNative:zlt,mkdirpNativeSync:Xlt}});var Ufe=_((e4t,Mfe)=>{var Lfe=ve("fs"),Zlt=process.version,v8=Zlt.replace(/^v/,"").split("."),Ofe=+v8[0]>10||+v8[0]==10&&+v8[1]>=12,$lt=Ofe?t=>t.mkdir===Lfe.mkdir:()=>!1,ect=Ofe?t=>t.mkdirSync===Lfe.mkdirSync:()=>!1;Mfe.exports={useNative:$lt,useNativeSync:ect}});var Wfe=_((t4t,Gfe)=>{var Xy=Bfe(),Zy=Dfe(),{mkdirpNative:_fe,mkdirpNativeSync:Hfe}=Nfe(),{mkdirpManual:qfe,mkdirpManualSync:jfe}=B8(),{useNative:tct,useNativeSync:rct}=Ufe(),$y=(t,e)=>(t=Zy(t),e=Xy(e),tct(e)?_fe(t,e):qfe(t,e)),nct=(t,e)=>(t=Zy(t),e=Xy(e),rct(e)?Hfe(t,e):jfe(t,e));$y.sync=nct;$y.native=(t,e)=>_fe(Zy(t),Xy(e));$y.manual=(t,e)=>qfe(Zy(t),Xy(e));$y.nativeSync=(t,e)=>Hfe(Zy(t),Xy(e));$y.manualSync=(t,e)=>jfe(Zy(t),Xy(e));Gfe.exports=$y});var Zfe=_((r4t,Xfe)=>{"use strict";var tc=ve("fs"),Gg=ve("path"),ict=tc.lchown?"lchown":"chown",sct=tc.lchownSync?"lchownSync":"chownSync",Kfe=tc.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),Yfe=(t,e,r)=>{try{return tc[sct](t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},oct=(t,e,r)=>{try{return tc.chownSync(t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},act=Kfe?(t,e,r,o)=>a=>{!a||a.code!=="EISDIR"?o(a):tc.chown(t,e,r,o)}:(t,e,r,o)=>o,D8=Kfe?(t,e,r)=>{try{return Yfe(t,e,r)}catch(o){if(o.code!=="EISDIR")throw o;oct(t,e,r)}}:(t,e,r)=>Yfe(t,e,r),lct=process.version,Vfe=(t,e,r)=>tc.readdir(t,e,r),cct=(t,e)=>tc.readdirSync(t,e);/^v4\./.test(lct)&&(Vfe=(t,e,r)=>tc.readdir(t,r));var gk=(t,e,r,o)=>{tc[ict](t,e,r,act(t,e,r,a=>{o(a&&a.code!=="ENOENT"?a:null)}))},Jfe=(t,e,r,o,a)=>{if(typeof e=="string")return tc.lstat(Gg.resolve(t,e),(n,u)=>{if(n)return a(n.code!=="ENOENT"?n:null);u.name=e,Jfe(t,u,r,o,a)});if(e.isDirectory())P8(Gg.resolve(t,e.name),r,o,n=>{if(n)return a(n);let u=Gg.resolve(t,e.name);gk(u,r,o,a)});else{let n=Gg.resolve(t,e.name);gk(n,r,o,a)}},P8=(t,e,r,o)=>{Vfe(t,{withFileTypes:!0},(a,n)=>{if(a){if(a.code==="ENOENT")return o();if(a.code!=="ENOTDIR"&&a.code!=="ENOTSUP")return o(a)}if(a||!n.length)return gk(t,e,r,o);let u=n.length,A=null,p=h=>{if(!A){if(h)return o(A=h);if(--u===0)return gk(t,e,r,o)}};n.forEach(h=>Jfe(t,h,e,r,p))})},uct=(t,e,r,o)=>{if(typeof e=="string")try{let a=tc.lstatSync(Gg.resolve(t,e));a.name=e,e=a}catch(a){if(a.code==="ENOENT")return;throw a}e.isDirectory()&&zfe(Gg.resolve(t,e.name),r,o),D8(Gg.resolve(t,e.name),r,o)},zfe=(t,e,r)=>{let o;try{o=cct(t,{withFileTypes:!0})}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR"||a.code==="ENOTSUP")return D8(t,e,r);throw a}return o&&o.length&&o.forEach(a=>uct(t,a,e,r)),D8(t,e,r)};Xfe.exports=P8;P8.sync=zfe});var rpe=_((n4t,S8)=>{"use strict";var $fe=Wfe(),rc=ve("fs"),dk=ve("path"),epe=Zfe(),$c=Oy(),mk=class extends Error{constructor(e,r){super("Cannot extract through symbolic link"),this.path=r,this.symlink=e}get name(){return"SylinkError"}},yk=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'"),this.path=e,this.code=r}get name(){return"CwdError"}},Ek=(t,e)=>t.get($c(e)),g2=(t,e,r)=>t.set($c(e),r),Act=(t,e)=>{rc.stat(t,(r,o)=>{(r||!o.isDirectory())&&(r=new yk(t,r&&r.code||"ENOTDIR")),e(r)})};S8.exports=(t,e,r)=>{t=$c(t);let o=e.umask,a=e.mode|448,n=(a&o)!==0,u=e.uid,A=e.gid,p=typeof u=="number"&&typeof A=="number"&&(u!==e.processUid||A!==e.processGid),h=e.preserve,E=e.unlink,w=e.cache,D=$c(e.cwd),x=(L,U)=>{L?r(L):(g2(w,t,!0),U&&p?epe(U,u,A,J=>x(J)):n?rc.chmod(t,a,r):r())};if(w&&Ek(w,t)===!0)return x();if(t===D)return Act(t,x);if(h)return $fe(t,{mode:a}).then(L=>x(null,L),x);let T=$c(dk.relative(D,t)).split("/");Ck(D,T,a,w,E,D,null,x)};var Ck=(t,e,r,o,a,n,u,A)=>{if(!e.length)return A(null,u);let p=e.shift(),h=$c(dk.resolve(t+"/"+p));if(Ek(o,h))return Ck(h,e,r,o,a,n,u,A);rc.mkdir(h,r,tpe(h,e,r,o,a,n,u,A))},tpe=(t,e,r,o,a,n,u,A)=>p=>{p?rc.lstat(t,(h,E)=>{if(h)h.path=h.path&&$c(h.path),A(h);else if(E.isDirectory())Ck(t,e,r,o,a,n,u,A);else if(a)rc.unlink(t,w=>{if(w)return A(w);rc.mkdir(t,r,tpe(t,e,r,o,a,n,u,A))});else{if(E.isSymbolicLink())return A(new mk(t,t+"/"+e.join("/")));A(p)}}):(u=u||t,Ck(t,e,r,o,a,n,u,A))},fct=t=>{let e=!1,r="ENOTDIR";try{e=rc.statSync(t).isDirectory()}catch(o){r=o.code}finally{if(!e)throw new yk(t,r)}};S8.exports.sync=(t,e)=>{t=$c(t);let r=e.umask,o=e.mode|448,a=(o&r)!==0,n=e.uid,u=e.gid,A=typeof n=="number"&&typeof u=="number"&&(n!==e.processUid||u!==e.processGid),p=e.preserve,h=e.unlink,E=e.cache,w=$c(e.cwd),D=L=>{g2(E,t,!0),L&&A&&epe.sync(L,n,u),a&&rc.chmodSync(t,o)};if(E&&Ek(E,t)===!0)return D();if(t===w)return fct(w),D();if(p)return D($fe.sync(t,o));let C=$c(dk.relative(w,t)).split("/"),T=null;for(let L=C.shift(),U=w;L&&(U+="/"+L);L=C.shift())if(U=$c(dk.resolve(U)),!Ek(E,U))try{rc.mkdirSync(U,o),T=T||U,g2(E,U,!0)}catch{let te=rc.lstatSync(U);if(te.isDirectory()){g2(E,U,!0);continue}else if(h){rc.unlinkSync(U),rc.mkdirSync(U,o),T=T||U,g2(E,U,!0);continue}else if(te.isSymbolicLink())return new mk(U,U+"/"+C.join("/"))}return D(T)}});var x8=_((i4t,npe)=>{var b8=Object.create(null),{hasOwnProperty:pct}=Object.prototype;npe.exports=t=>(pct.call(b8,t)||(b8[t]=t.normalize("NFKD")),b8[t])});var ape=_((s4t,ope)=>{var ipe=ve("assert"),hct=x8(),gct=_y(),{join:spe}=ve("path"),dct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,mct=dct==="win32";ope.exports=()=>{let t=new Map,e=new Map,r=h=>h.split("/").slice(0,-1).reduce((w,D)=>(w.length&&(D=spe(w[w.length-1],D)),w.push(D||"/"),w),[]),o=new Set,a=h=>{let E=e.get(h);if(!E)throw new Error("function does not have any path reservations");return{paths:E.paths.map(w=>t.get(w)),dirs:[...E.dirs].map(w=>t.get(w))}},n=h=>{let{paths:E,dirs:w}=a(h);return E.every(D=>D[0]===h)&&w.every(D=>D[0]instanceof Set&&D[0].has(h))},u=h=>o.has(h)||!n(h)?!1:(o.add(h),h(()=>A(h)),!0),A=h=>{if(!o.has(h))return!1;let{paths:E,dirs:w}=e.get(h),D=new Set;return E.forEach(x=>{let C=t.get(x);ipe.equal(C[0],h),C.length===1?t.delete(x):(C.shift(),typeof C[0]=="function"?D.add(C[0]):C[0].forEach(T=>D.add(T)))}),w.forEach(x=>{let C=t.get(x);ipe(C[0]instanceof Set),C[0].size===1&&C.length===1?t.delete(x):C[0].size===1?(C.shift(),D.add(C[0])):C[0].delete(h)}),o.delete(h),D.forEach(x=>u(x)),!0};return{check:n,reserve:(h,E)=>{h=mct?["win32 parallelization disabled"]:h.map(D=>hct(gct(spe(D))).toLowerCase());let w=new Set(h.map(D=>r(D)).reduce((D,x)=>D.concat(x)));return e.set(E,{dirs:w,paths:h}),h.forEach(D=>{let x=t.get(D);x?x.push(E):t.set(D,[E])}),w.forEach(D=>{let x=t.get(D);x?x[x.length-1]instanceof Set?x[x.length-1].add(E):x.push(new Set([E])):t.set(D,[new Set([E])])}),u(E)}}}});var upe=_((o4t,cpe)=>{var yct=process.platform,Ect=yct==="win32",Cct=global.__FAKE_TESTING_FS__||ve("fs"),{O_CREAT:Ict,O_TRUNC:wct,O_WRONLY:Bct,UV_FS_O_FILEMAP:lpe=0}=Cct.constants,vct=Ect&&!!lpe,Dct=512*1024,Pct=lpe|wct|Ict|Bct;cpe.exports=vct?t=>t"w"});var M8=_((a4t,vpe)=>{"use strict";var Sct=ve("assert"),bct=fk(),Fn=ve("fs"),xct=Jy(),Gf=ve("path"),Ipe=rpe(),Ape=M3(),kct=ape(),Qct=U3(),ml=Oy(),Fct=_y(),Rct=x8(),fpe=Symbol("onEntry"),F8=Symbol("checkFs"),ppe=Symbol("checkFs2"),Bk=Symbol("pruneCache"),R8=Symbol("isReusable"),nc=Symbol("makeFs"),T8=Symbol("file"),N8=Symbol("directory"),vk=Symbol("link"),hpe=Symbol("symlink"),gpe=Symbol("hardlink"),dpe=Symbol("unsupported"),mpe=Symbol("checkPath"),bh=Symbol("mkdir"),So=Symbol("onError"),Ik=Symbol("pending"),ype=Symbol("pend"),eE=Symbol("unpend"),k8=Symbol("ended"),Q8=Symbol("maybeClose"),L8=Symbol("skip"),d2=Symbol("doChown"),m2=Symbol("uid"),y2=Symbol("gid"),E2=Symbol("checkedCwd"),wpe=ve("crypto"),Bpe=upe(),Tct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,C2=Tct==="win32",Nct=(t,e)=>{if(!C2)return Fn.unlink(t,e);let r=t+".DELETE."+wpe.randomBytes(16).toString("hex");Fn.rename(t,r,o=>{if(o)return e(o);Fn.unlink(r,e)})},Lct=t=>{if(!C2)return Fn.unlinkSync(t);let e=t+".DELETE."+wpe.randomBytes(16).toString("hex");Fn.renameSync(t,e),Fn.unlinkSync(e)},Epe=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,Cpe=t=>Rct(Fct(ml(t))).toLowerCase(),Oct=(t,e)=>{e=Cpe(e);for(let r of t.keys()){let o=Cpe(r);(o===e||o.indexOf(e+"/")===0)&&t.delete(r)}},Mct=t=>{for(let e of t.keys())t.delete(e)},I2=class extends bct{constructor(e){if(e||(e={}),e.ondone=r=>{this[k8]=!0,this[Q8]()},super(e),this[E2]=!1,this.reservations=kct(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[Ik]=0,this[k8]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||C2,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=ml(Gf.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[fpe](r))}warn(e,r,o={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(o.recoverable=!1),super.warn(e,r,o)}[Q8](){this[k8]&&this[Ik]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[mpe](e){if(this.strip){let r=ml(e.path).split("/");if(r.length=this.strip)e.linkpath=o.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let r=ml(e.path),o=r.split("/");if(o.includes("..")||C2&&/^[a-z]:\.\.$/i.test(o[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;let[a,n]=Qct(r);a&&(e.path=n,this.warn("TAR_ENTRY_INFO",`stripping ${a} from absolute path`,{entry:e,path:r}))}if(Gf.isAbsolute(e.path)?e.absolute=ml(Gf.resolve(e.path)):e.absolute=ml(Gf.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:ml(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:r}=Gf.win32.parse(e.absolute);e.absolute=r+Ape.encode(e.absolute.substr(r.length));let{root:o}=Gf.win32.parse(e.path);e.path=o+Ape.encode(e.path.substr(o.length))}return!0}[fpe](e){if(!this[mpe](e))return e.resume();switch(Sct.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[F8](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[dpe](e)}}[So](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[eE](),r.resume())}[bh](e,r,o){Ipe(ml(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r,noChmod:this.noChmod},o)}[d2](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[m2](e){return Epe(this.uid,e.uid,this.processUid)}[y2](e){return Epe(this.gid,e.gid,this.processGid)}[T8](e,r){let o=e.mode&4095||this.fmode,a=new xct.WriteStream(e.absolute,{flags:Bpe(e.size),mode:o,autoClose:!1});a.on("error",p=>{a.fd&&Fn.close(a.fd,()=>{}),a.write=()=>!0,this[So](p,e),r()});let n=1,u=p=>{if(p){a.fd&&Fn.close(a.fd,()=>{}),this[So](p,e),r();return}--n===0&&Fn.close(a.fd,h=>{h?this[So](h,e):this[eE](),r()})};a.on("finish",p=>{let h=e.absolute,E=a.fd;if(e.mtime&&!this.noMtime){n++;let w=e.atime||new Date,D=e.mtime;Fn.futimes(E,w,D,x=>x?Fn.utimes(h,w,D,C=>u(C&&x)):u())}if(this[d2](e)){n++;let w=this[m2](e),D=this[y2](e);Fn.fchown(E,w,D,x=>x?Fn.chown(h,w,D,C=>u(C&&x)):u())}u()});let A=this.transform&&this.transform(e)||e;A!==e&&(A.on("error",p=>{this[So](p,e),r()}),e.pipe(A)),A.pipe(a)}[N8](e,r){let o=e.mode&4095||this.dmode;this[bh](e.absolute,o,a=>{if(a){this[So](a,e),r();return}let n=1,u=A=>{--n===0&&(r(),this[eE](),e.resume())};e.mtime&&!this.noMtime&&(n++,Fn.utimes(e.absolute,e.atime||new Date,e.mtime,u)),this[d2](e)&&(n++,Fn.chown(e.absolute,this[m2](e),this[y2](e),u)),u()})}[dpe](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[hpe](e,r){this[vk](e,e.linkpath,"symlink",r)}[gpe](e,r){let o=ml(Gf.resolve(this.cwd,e.linkpath));this[vk](e,o,"link",r)}[ype](){this[Ik]++}[eE](){this[Ik]--,this[Q8]()}[L8](e){this[eE](),e.resume()}[R8](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&!C2}[F8](e){this[ype]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,o=>this[ppe](e,o))}[Bk](e){e.type==="SymbolicLink"?Mct(this.dirCache):e.type!=="Directory"&&Oct(this.dirCache,e.absolute)}[ppe](e,r){this[Bk](e);let o=A=>{this[Bk](e),r(A)},a=()=>{this[bh](this.cwd,this.dmode,A=>{if(A){this[So](A,e),o();return}this[E2]=!0,n()})},n=()=>{if(e.absolute!==this.cwd){let A=ml(Gf.dirname(e.absolute));if(A!==this.cwd)return this[bh](A,this.dmode,p=>{if(p){this[So](p,e),o();return}u()})}u()},u=()=>{Fn.lstat(e.absolute,(A,p)=>{if(p&&(this.keep||this.newer&&p.mtime>e.mtime)){this[L8](e),o();return}if(A||this[R8](e,p))return this[nc](null,e,o);if(p.isDirectory()){if(e.type==="Directory"){let h=!this.noChmod&&e.mode&&(p.mode&4095)!==e.mode,E=w=>this[nc](w,e,o);return h?Fn.chmod(e.absolute,e.mode,E):E()}if(e.absolute!==this.cwd)return Fn.rmdir(e.absolute,h=>this[nc](h,e,o))}if(e.absolute===this.cwd)return this[nc](null,e,o);Nct(e.absolute,h=>this[nc](h,e,o))})};this[E2]?n():a()}[nc](e,r,o){if(e){this[So](e,r),o();return}switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[T8](r,o);case"Link":return this[gpe](r,o);case"SymbolicLink":return this[hpe](r,o);case"Directory":case"GNUDumpDir":return this[N8](r,o)}}[vk](e,r,o,a){Fn[o](r,e.absolute,n=>{n?this[So](n,e):(this[eE](),e.resume()),a()})}},wk=t=>{try{return[null,t()]}catch(e){return[e,null]}},O8=class extends I2{[nc](e,r){return super[nc](e,r,()=>{})}[F8](e){if(this[Bk](e),!this[E2]){let n=this[bh](this.cwd,this.dmode);if(n)return this[So](n,e);this[E2]=!0}if(e.absolute!==this.cwd){let n=ml(Gf.dirname(e.absolute));if(n!==this.cwd){let u=this[bh](n,this.dmode);if(u)return this[So](u,e)}}let[r,o]=wk(()=>Fn.lstatSync(e.absolute));if(o&&(this.keep||this.newer&&o.mtime>e.mtime))return this[L8](e);if(r||this[R8](e,o))return this[nc](null,e);if(o.isDirectory()){if(e.type==="Directory"){let u=!this.noChmod&&e.mode&&(o.mode&4095)!==e.mode,[A]=u?wk(()=>{Fn.chmodSync(e.absolute,e.mode)}):[];return this[nc](A,e)}let[n]=wk(()=>Fn.rmdirSync(e.absolute));this[nc](n,e)}let[a]=e.absolute===this.cwd?[]:wk(()=>Lct(e.absolute));this[nc](a,e)}[T8](e,r){let o=e.mode&4095||this.fmode,a=A=>{let p;try{Fn.closeSync(n)}catch(h){p=h}(A||p)&&this[So](A||p,e),r()},n;try{n=Fn.openSync(e.absolute,Bpe(e.size),o)}catch(A){return a(A)}let u=this.transform&&this.transform(e)||e;u!==e&&(u.on("error",A=>this[So](A,e)),e.pipe(u)),u.on("data",A=>{try{Fn.writeSync(n,A,0,A.length)}catch(p){a(p)}}),u.on("end",A=>{let p=null;if(e.mtime&&!this.noMtime){let h=e.atime||new Date,E=e.mtime;try{Fn.futimesSync(n,h,E)}catch(w){try{Fn.utimesSync(e.absolute,h,E)}catch{p=w}}}if(this[d2](e)){let h=this[m2](e),E=this[y2](e);try{Fn.fchownSync(n,h,E)}catch(w){try{Fn.chownSync(e.absolute,h,E)}catch{p=p||w}}}a(p)})}[N8](e,r){let o=e.mode&4095||this.dmode,a=this[bh](e.absolute,o);if(a){this[So](a,e),r();return}if(e.mtime&&!this.noMtime)try{Fn.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[d2](e))try{Fn.chownSync(e.absolute,this[m2](e),this[y2](e))}catch{}r(),e.resume()}[bh](e,r){try{return Ipe.sync(ml(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(o){return o}}[vk](e,r,o,a){try{Fn[o+"Sync"](r,e.absolute),a(),e.resume()}catch(n){return this[So](n,e)}}};I2.Sync=O8;vpe.exports=I2});var xpe=_((l4t,bpe)=>{"use strict";var Uct=Fy(),Dk=M8(),Ppe=ve("fs"),Spe=Jy(),Dpe=ve("path"),U8=_y();bpe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=Uct(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&_ct(o,e),o.file&&o.sync?Hct(o):o.file?qct(o,r):o.sync?jct(o):Gct(o)};var _ct=(t,e)=>{let r=new Map(e.map(n=>[U8(n),!0])),o=t.filter,a=(n,u)=>{let A=u||Dpe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(Dpe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(U8(n)):n=>a(U8(n))},Hct=t=>{let e=new Dk.Sync(t),r=t.file,o=Ppe.statSync(r),a=t.maxReadSize||16*1024*1024;new Spe.ReadStreamSync(r,{readSize:a,size:o.size}).pipe(e)},qct=(t,e)=>{let r=new Dk(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("close",u),Ppe.stat(a,(p,h)=>{if(p)A(p);else{let E=new Spe.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},jct=t=>new Dk.Sync(t),Gct=t=>new Dk(t)});var kpe=_(us=>{"use strict";us.c=us.create=Afe();us.r=us.replace=C8();us.t=us.list=pk();us.u=us.update=Cfe();us.x=us.extract=xpe();us.Pack=Zx();us.Unpack=M8();us.Parse=fk();us.ReadEntry=Nx();us.WriteEntry=J3();us.Header=Uy();us.Pax=Ox();us.types=Q3()});var _8,Qpe,xh,w2,B2,Fpe=It(()=>{_8=et(lg()),Qpe=ve("worker_threads"),xh=Symbol("kTaskInfo"),w2=class{constructor(e,r){this.fn=e;this.limit=(0,_8.default)(r.poolSize)}run(e){return this.limit(()=>this.fn(e))}},B2=class{constructor(e,r){this.source=e;this.workers=[];this.limit=(0,_8.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let o=this.workers.pop();o?o.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new Qpe.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[xh])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[xh].resolve(r),e[xh]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{e[xh]?.reject(r),e[xh]=null}),e.on("exit",r=>{r!==0&&e[xh]?.reject(new Error(`Worker exited with code ${r}`)),e[xh]=null}),e}run(e){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((o,a)=>{r[xh]={resolve:o,reject:a},r.postMessage(e)})})}}});var Tpe=_((f4t,Rpe)=>{var H8;Rpe.exports.getContent=()=>(typeof H8>"u"&&(H8=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),H8)});var $i={};Kt($i,{convertToZip:()=>Vct,convertToZipWorker:()=>G8,extractArchiveTo:()=>Upe,getDefaultTaskPool:()=>Ope,getTaskPoolForConfiguration:()=>Mpe,makeArchiveFromDirectory:()=>Kct});function Wct(t,e){switch(t){case"async":return new w2(G8,{poolSize:e});case"workers":return new B2((0,j8.getContent)(),{poolSize:e});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}}function Ope(){return typeof q8>"u"&&(q8=Wct("workers",Xi.availableParallelism())),q8}function Mpe(t){return typeof t>"u"?Ope():Al(Yct,t,()=>{let e=t.get("taskPoolMode"),r=t.get("taskPoolConcurrency");switch(e){case"async":return new w2(G8,{poolSize:r});case"workers":return new B2((0,j8.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}})}async function G8(t){let{tmpFile:e,tgz:r,compressionLevel:o,extractBufferOpts:a}=t,n=new Zi(e,{create:!0,level:o,stats:wa.makeDefaultStats()}),u=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await Upe(u,n,a),n.saveAndClose(),e}async function Kct(t,{baseFs:e=new _n,prefixPath:r=Bt.root,compressionLevel:o,inMemory:a=!1}={}){let n;if(a)n=new Zi(null,{level:o});else{let A=await ae.mktempPromise(),p=K.join(A,"archive.zip");n=new Zi(p,{create:!0,level:o})}let u=K.resolve(Bt.root,r);return await n.copyPromise(u,t,{baseFs:e,stableTime:!0,stableSort:!0}),n}async function Vct(t,e={}){let r=await ae.mktempPromise(),o=K.join(r,"archive.zip"),a=e.compressionLevel??e.configuration?.get("compressionLevel")??"mixed",n={prefixPath:e.prefixPath,stripComponents:e.stripComponents};return await(e.taskPool??Mpe(e.configuration)).run({tmpFile:o,tgz:t,compressionLevel:a,extractBufferOpts:n}),new Zi(o,{level:e.compressionLevel})}async function*Jct(t){let e=new Lpe.default.Parse,r=new Npe.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",o=>{r.write(o)}),e.on("error",o=>{r.destroy(o)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let o of r){let a=o;yield a,a.resume()}}async function Upe(t,e,{stripComponents:r=0,prefixPath:o=Bt.dot}={}){function a(n){if(n.path[0]==="/")return!0;let u=n.path.split(/\//g);return!!(u.some(A=>A==="..")||u.length<=r)}for await(let n of Jct(t)){if(a(n))continue;let u=K.normalize(Ae.toPortablePath(n.path)).replace(/\/$/,"").split(/\//g);if(u.length<=r)continue;let A=u.slice(r).join("/"),p=K.join(o,A),h=420;switch((n.type==="Directory"||(n.mode??0)&73)&&(h|=73),n.type){case"Directory":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[Pi.SAFE_TIME,Pi.SAFE_TIME]}),e.mkdirSync(p,{mode:h}),e.utimesSync(p,Pi.SAFE_TIME,Pi.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[Pi.SAFE_TIME,Pi.SAFE_TIME]}),e.writeFileSync(p,await Xm(n),{mode:h}),e.utimesSync(p,Pi.SAFE_TIME,Pi.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[Pi.SAFE_TIME,Pi.SAFE_TIME]}),e.symlinkSync(n.linkpath,p),e.lutimesSync(p,Pi.SAFE_TIME,Pi.SAFE_TIME);break}}return e}var Npe,Lpe,j8,q8,Yct,_pe=It(()=>{Ke();Pt();sA();Npe=ve("stream"),Lpe=et(kpe());Fpe();Gl();j8=et(Tpe());Yct=new WeakMap});var qpe=_((W8,Hpe)=>{(function(t,e){typeof W8=="object"?Hpe.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(W8,function(){function t(a,n){var u=n?"\u2514":"\u251C";return a?u+="\u2500 ":u+="\u2500\u2500\u2510",u}function e(a,n){var u=[];for(var A in a)a.hasOwnProperty(A)&&(n&&typeof a[A]=="function"||u.push(A));return u}function r(a,n,u,A,p,h,E){var w="",D=0,x,C,T=A.slice(0);if(T.push([n,u])&&A.length>0&&(A.forEach(function(U,J){J>0&&(w+=(U[1]?" ":"\u2502")+" "),!C&&U[0]===n&&(C=!0)}),w+=t(a,u)+a,p&&(typeof n!="object"||n instanceof Date)&&(w+=": "+n),C&&(w+=" (circular ref.)"),E(w)),!C&&typeof n=="object"){var L=e(n,h);L.forEach(function(U){x=++D===L.length,r(U,n[U],x,T,p,h,E)})}}var o={};return o.asLines=function(a,n,u,A){var p=typeof u!="function"?u:!1;r(".",a,!1,[],n,p,A||u)},o.asTree=function(a,n,u){var A="";return r(".",a,!1,[],n,u,function(p){A+=p+` +`}),A},o})});var As={};Kt(As,{emitList:()=>zct,emitTree:()=>Ype,treeNodeToJson:()=>Wpe,treeNodeToTreeify:()=>Gpe});function Gpe(t,{configuration:e}){let r={},o=0,a=(n,u)=>{let A=Array.isArray(n)?n.entries():Object.entries(n);for(let[p,h]of A){if(!h)continue;let{label:E,value:w,children:D}=h,x=[];typeof E<"u"&&x.push(Cg(e,E,2)),typeof w<"u"&&x.push(Ut(e,w[0],w[1])),x.length===0&&x.push(Cg(e,`${p}`,2));let C=x.join(": ").trim(),T=`\0${o++}\0`,L=u[`${T}${C}`]={};typeof D<"u"&&a(D,L)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return a(t.children,r),r}function Wpe(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Ig(r.value[0],r.value[1])}let o=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,u]of o)u&&(a[Xct(n)]=e(u));return typeof r.value>"u"?a:{value:Ig(r.value[0],r.value[1]),children:a}};return e(t)}function zct(t,{configuration:e,stdout:r,json:o}){let a=t.map(n=>({value:n}));Ype({children:a},{configuration:e,stdout:r,json:o})}function Ype(t,{configuration:e,stdout:r,json:o,separators:a=0}){if(o){let u=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let A of u)A&&r.write(`${JSON.stringify(Wpe(A))} +`);return}let n=(0,jpe.asTree)(Gpe(t,{configuration:e}),!1,!1);if(n=n.replace(/\0[0-9]+\0/g,""),a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502 +$1`).replace(/^│\n/,"")),a>=2)for(let u=0;u<2;++u)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 +$2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}function Xct(t){return typeof t=="string"?t.replace(/^\0[0-9]+\0/,""):t}var jpe,Kpe=It(()=>{jpe=et(qpe());Wl()});function v2(t){let e=t.match(Zct);if(!e?.groups)throw new Error("Assertion failed: Expected the checksum to match the requested pattern");let r=e.groups.cacheVersion?parseInt(e.groups.cacheVersion):null;return{cacheKey:e.groups.cacheKey??null,cacheVersion:r,cacheSpec:e.groups.cacheSpec??null,hash:e.groups.hash}}var Vpe,Y8,K8,Pk,Wr,Zct,V8=It(()=>{Ke();Pt();Pt();sA();Vpe=ve("crypto"),Y8=et(ve("fs"));Vl();ah();Gl();Io();K8=Zm(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),Pk=Zm(process.env.YARN_CACHE_VERSION_OVERRIDE??10),Wr=class t{constructor(e,{configuration:r,immutable:o=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,Vpe.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=o,this.check=a;let{cacheSpec:n,cacheKey:u}=t.getCacheKey(r);this.cacheSpec=n,this.cacheKey=u}static async find(e,{immutable:r,check:o}={}){let a=new t(e.get("cacheFolder"),{configuration:e,immutable:r,check:o});return await a.setup(),a}static getCacheKey(e){let r=e.get("compressionLevel"),o=r!=="mixed"?`c${r}`:"";return{cacheKey:[Pk,o].join(""),cacheSpec:o}}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${ly(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=v2(r).hash.slice(0,10);return`${ly(e)}-${a}.zip`}isChecksumCompatible(e){if(e===null)return!1;let{cacheVersion:r,cacheSpec:o}=v2(e);if(r===null||r{let he=new Zi,De=K.join(Bt.root,_M(e));return he.mkdirSync(De,{recursive:!0}),he.writeJsonSync(K.join(De,mr.manifest),{name:rn(e),mocked:!0}),he},E=async(he,{isColdHit:De,controlPath:Ee=null})=>{if(Ee===null&&u.unstablePackages?.has(e.locatorHash))return{isValid:!0,hash:null};let g=r&&!De?v2(r).cacheKey:this.cacheKey,me=!u.skipIntegrityCheck||!r?`${g}/${await pb(he)}`:r;if(Ee!==null){let fe=!u.skipIntegrityCheck||!r?`${this.cacheKey}/${await pb(Ee)}`:r;if(me!==fe)throw new Jt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}let Ce=null;switch(r!==null&&me!==r&&(this.check?Ce="throw":v2(r).cacheKey!==v2(me).cacheKey?Ce="update":Ce=this.configuration.get("checksumBehavior")),Ce){case null:case"update":return{isValid:!0,hash:me};case"ignore":return{isValid:!0,hash:r};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new Jt(18,"The remote archive doesn't match the expected checksum")}},w=async he=>{if(!n)throw new Error(`Cache check required but no loader configured for ${jr(this.configuration,e)}`);let De=await n(),Ee=De.getRealPath();De.saveAndClose(),await ae.chmodPromise(Ee,420);let g=await E(he,{controlPath:Ee,isColdHit:!1});if(!g.isValid)throw new Error("Assertion failed: Expected a valid checksum");return g.hash},D=async()=>{if(A===null||!await ae.existsPromise(A)){let he=await n(),De=he.getRealPath();return he.saveAndClose(),{source:"loader",path:De}}return{source:"mirror",path:A}},x=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${jr(this.configuration,e)}`);if(this.immutable)throw new Jt(56,`Cache entry required but missing for ${jr(this.configuration,e)}`);let{path:he,source:De}=await D(),{hash:Ee}=await E(he,{isColdHit:!0}),g=this.getLocatorPath(e,Ee),me=[];De!=="mirror"&&A!==null&&me.push(async()=>{let fe=`${A}${this.cacheId}`;await ae.copyFilePromise(he,fe,Y8.default.constants.COPYFILE_FICLONE),await ae.chmodPromise(fe,420),await ae.renamePromise(fe,A)}),(!u.mirrorWriteOnly||A===null)&&me.push(async()=>{let fe=`${g}${this.cacheId}`;await ae.copyFilePromise(he,fe,Y8.default.constants.COPYFILE_FICLONE),await ae.chmodPromise(fe,420),await ae.renamePromise(fe,g)});let Ce=u.mirrorWriteOnly?A??g:g;return await Promise.all(me.map(fe=>fe())),[!1,Ce,Ee]},C=async()=>{let De=(async()=>{let Ee=u.unstablePackages?.has(e.locatorHash),g=Ee||!r||this.isChecksumCompatible(r)?this.getLocatorPath(e,r):null,me=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,Ce=!!u.mockedPackages?.has(e.locatorHash)&&(!this.check||!me),fe=Ce||me,ie=fe?o:a;if(ie&&ie(),fe){let Z=null,Pe=g;if(!Ce)if(this.check)Z=await w(Pe);else{let Re=await E(Pe,{isColdHit:!1});if(Re.isValid)Z=Re.hash;else return x()}return[Ce,Pe,Z]}else{if(this.immutable&&Ee)throw new Jt(56,`Cache entry required but missing for ${jr(this.configuration,e)}; consider defining ${pe.pretty(this.configuration,"supportedArchitectures",pe.Type.CODE)} to cache packages for multiple systems`);return x()}})();this.mutexes.set(e.locatorHash,De);try{return await De}finally{this.mutexes.delete(e.locatorHash)}};for(let he;he=this.mutexes.get(e.locatorHash);)await he;let[T,L,U]=await C();T||this.markedFiles.add(L);let J,te=T?()=>h():()=>new Zi(L,{baseFs:p,readOnly:!0}),le=new Am(()=>rO(()=>J=te(),he=>`Failed to open the cache entry for ${jr(this.configuration,e)}: ${he}`),K),ce=new ju(L,{baseFs:le,pathUtils:K}),ue=()=>{J?.discardAndClose()},Ie=u.unstablePackages?.has(e.locatorHash)?null:U;return[ce,ue,Ie]}},Zct=/^(?:(?(?[0-9]+)(?.*))\/)?(?.*)$/});var Sk,Jpe=It(()=>{Sk=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(Sk||{})});var $ct,tE,J8=It(()=>{Pt();Ol();xf();Io();$ct=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,o)=>`${r}#commit=${o}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>yb({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],tE=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let o=K.join(e.cwd,mr.lockfile);if(!ae.existsSync(o))return;let a=await ae.readFilePromise(o,"utf8"),n=Ki(a);if(Object.hasOwn(n,"__metadata"))return;let u=this.resolutions=new Map;for(let A of Object.keys(n)){let p=v1(A);if(!p){r.reportWarning(14,`Failed to parse the string "${A}" into a proper descriptor`);continue}let h=Fa(p.range)?kn(p,`npm:${p.range}`):p,{version:E,resolved:w}=n[A];if(!w)continue;let D;for(let[C,T]of $ct){let L=w.match(C);if(L){D=T(E,...L);break}}if(!D){r.reportWarning(14,`${Jn(e.configuration,h)}: Only some patterns can be imported from legacy lockfiles (not "${w}")`);continue}let x=h;try{let C=vg(h.range),T=v1(C.selector,!0);T&&(x=T)}catch{}u.set(h.descriptorHash,Ss(x,D))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let a=this.resolutions.get(e.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");let n=LM(a),u=o.project.configuration.normalizeDependency(n);return await this.resolver.getCandidates(u,r,o)}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}});var pA,zpe=It(()=>{Vl();n2();Wl();pA=class extends Ws{constructor({configuration:r,stdout:o,suggestInstall:a=!0}){super();this.errorCount=0;g1(this,{configuration:r}),this.configuration=r,this.stdout=o,this.suggestInstall=a}static async start(r,o){let a=new this(r);try{await o(a)}catch(n){a.reportExceptionOnce(n)}finally{await a.finalize()}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){}reportCacheMiss(r){}startSectionSync(r,o){return o()}async startSectionPromise(r,o){return await o()}startTimerSync(r,o,a){return(typeof o=="function"?o:a)()}async startTimerPromise(r,o,a){return await(typeof o=="function"?o:a)()}reportSeparator(){}reportInfo(r,o){}reportWarning(r,o){}reportError(r,o){this.errorCount+=1,this.stdout.write(`${Ut(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(r)}: ${o} +`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,o){}async finalize(){this.errorCount>0&&(this.stdout.write(` +`),this.stdout.write(`${Ut(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. +`),this.suggestInstall&&this.stdout.write(`${Ut(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. +`))}formatNameWithHyperlink(r){return r3(r,{configuration:this.configuration,json:!1})}}});var rE,z8=It(()=>{Io();rE=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(gb(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){let a=o.project.storedResolutions.get(e.descriptorHash);if(a){let u=o.project.originalPackages.get(a);if(u)return[u]}let n=o.project.originalPackages.get(gb(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.originalPackages.get(e.locatorHash);if(!o)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return o}}});function Wf(){}function eut(t,e,r,o,a){for(var n=0,u=e.length,A=0,p=0;nx.length?T:x}),h.value=t.join(E)}else h.value=t.join(r.slice(A,A+h.count));A+=h.count,h.added||(p+=h.count)}}var D=e[u-1];return u>1&&typeof D.value=="string"&&(D.added||D.removed)&&t.equals("",D.value)&&(e[u-2].value+=D.value,e.pop()),e}function tut(t){return{newPos:t.newPos,components:t.components.slice(0)}}function rut(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function $pe(t,e,r){return r=rut(r,{ignoreWhitespace:!0}),t_.diff(t,e,r)}function nut(t,e,r){return r_.diff(t,e,r)}function bk(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?bk=function(e){return typeof e}:bk=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bk(t)}function X8(t){return out(t)||aut(t)||lut(t)||cut()}function out(t){if(Array.isArray(t))return Z8(t)}function aut(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function lut(t,e){if(t){if(typeof t=="string")return Z8(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Z8(t,e)}}function Z8(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,o=new Array(e);r"u"&&(u.context=4);var A=nut(r,o,u);if(!A)return;A.push({value:"",lines:[]});function p(U){return U.map(function(J){return" "+J})}for(var h=[],E=0,w=0,D=[],x=1,C=1,T=function(J){var te=A[J],le=te.lines||te.value.replace(/\n$/,"").split(` +`);if(te.lines=le,te.added||te.removed){var ce;if(!E){var ue=A[J-1];E=x,w=C,ue&&(D=u.context>0?p(ue.lines.slice(-u.context)):[],E-=D.length,w-=D.length)}(ce=D).push.apply(ce,X8(le.map(function(fe){return(te.added?"+":"-")+fe}))),te.added?C+=le.length:x+=le.length}else{if(E)if(le.length<=u.context*2&&J=A.length-2&&le.length<=u.context){var g=/\n$/.test(r),me=/\n$/.test(o),Ce=le.length==0&&D.length>Ee.oldLines;!g&&Ce&&r.length>0&&D.splice(Ee.oldLines,0,"\\ No newline at end of file"),(!g&&!Ce||!me)&&D.push("\\ No newline at end of file")}h.push(Ee),E=0,w=0,D=[]}x+=le.length,C+=le.length}},L=0;L{Wf.prototype={diff:function(e,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=o.callback;typeof o=="function"&&(a=o,o={}),this.options=o;var n=this;function u(T){return a?(setTimeout(function(){a(void 0,T)},0),!0):T}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var A=r.length,p=e.length,h=1,E=A+p;o.maxEditLength&&(E=Math.min(E,o.maxEditLength));var w=[{newPos:-1,components:[]}],D=this.extractCommon(w[0],r,e,0);if(w[0].newPos+1>=A&&D+1>=p)return u([{value:this.join(r),count:r.length}]);function x(){for(var T=-1*h;T<=h;T+=2){var L=void 0,U=w[T-1],J=w[T+1],te=(J?J.newPos:0)-T;U&&(w[T-1]=void 0);var le=U&&U.newPos+1=A&&te+1>=p)return u(eut(n,L.components,r,e,n.useLongestToken));w[T]=L}h++}if(a)(function T(){setTimeout(function(){if(h>E)return a();x()||T()},0)})();else for(;h<=E;){var C=x();if(C)return C}},pushComponent:function(e,r,o){var a=e[e.length-1];a&&a.added===r&&a.removed===o?e[e.length-1]={count:a.count+1,added:r,removed:o}:e.push({count:1,added:r,removed:o})},extractCommon:function(e,r,o,a){for(var n=r.length,u=o.length,A=e.newPos,p=A-a,h=0;A+1"u"?r:u}:o;return typeof t=="string"?t:JSON.stringify($8(t,null,null,a),a," ")};D2.equals=function(t,e){return Wf.prototype.equals.call(D2,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};e_=new Wf;e_.tokenize=function(t){return t.slice()};e_.join=e_.removeEmpty=function(t){return t}});var rhe=_((H4t,the)=>{var Aut=jl(),fut=fy(),put=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hut=/^\w*$/;function gut(t,e){if(Aut(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||fut(t)?!0:hut.test(t)||!put.test(t)||e!=null&&t in Object(e)}the.exports=gut});var she=_((q4t,ihe)=>{var nhe=dS(),dut="Expected a function";function i_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(dut);var r=function(){var o=arguments,a=e?e.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var u=t.apply(this,o);return r.cache=n.set(a,u)||n,u};return r.cache=new(i_.Cache||nhe),r}i_.Cache=nhe;ihe.exports=i_});var ahe=_((j4t,ohe)=>{var mut=she(),yut=500;function Eut(t){var e=mut(t,function(o){return r.size===yut&&r.clear(),o}),r=e.cache;return e}ohe.exports=Eut});var s_=_((G4t,lhe)=>{var Cut=ahe(),Iut=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,wut=/\\(\\)?/g,But=Cut(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(Iut,function(r,o,a,n){e.push(a?n.replace(wut,"$1"):o||r)}),e});lhe.exports=But});var Wg=_((W4t,che)=>{var vut=jl(),Dut=rhe(),Put=s_(),Sut=t2();function but(t,e){return vut(t)?t:Dut(t,e)?[t]:Put(Sut(t))}che.exports=but});var nE=_((Y4t,uhe)=>{var xut=fy(),kut=1/0;function Qut(t){if(typeof t=="string"||xut(t))return t;var e=t+"";return e=="0"&&1/t==-kut?"-0":e}uhe.exports=Qut});var xk=_((K4t,Ahe)=>{var Fut=Wg(),Rut=nE();function Tut(t,e){e=Fut(e,t);for(var r=0,o=e.length;t!=null&&r{var Nut=RS(),Lut=Wg(),Out=n1(),fhe=cl(),Mut=nE();function Uut(t,e,r,o){if(!fhe(t))return t;e=Lut(e,t);for(var a=-1,n=e.length,u=n-1,A=t;A!=null&&++a{var _ut=xk(),Hut=o_(),qut=Wg();function jut(t,e,r){for(var o=-1,a=e.length,n={};++o{function Gut(t,e){return t!=null&&e in Object(t)}dhe.exports=Gut});var a_=_((X4t,yhe)=>{var Wut=Wg(),Yut=e1(),Kut=jl(),Vut=n1(),Jut=IS(),zut=nE();function Xut(t,e,r){e=Wut(e,t);for(var o=-1,a=e.length,n=!1;++o{var Zut=mhe(),$ut=a_();function eAt(t,e){return t!=null&&$ut(t,e,Zut)}Ehe.exports=eAt});var whe=_(($4t,Ihe)=>{var tAt=ghe(),rAt=Che();function nAt(t,e){return tAt(t,e,function(r,o){return rAt(t,o)})}Ihe.exports=nAt});var Phe=_((e3t,Dhe)=>{var Bhe=dg(),iAt=e1(),sAt=jl(),vhe=Bhe?Bhe.isConcatSpreadable:void 0;function oAt(t){return sAt(t)||iAt(t)||!!(vhe&&t&&t[vhe])}Dhe.exports=oAt});var xhe=_((t3t,bhe)=>{var aAt=ES(),lAt=Phe();function She(t,e,r,o,a){var n=-1,u=t.length;for(r||(r=lAt),a||(a=[]);++n0&&r(A)?e>1?She(A,e-1,r,o,a):aAt(a,A):o||(a[a.length]=A)}return a}bhe.exports=She});var Qhe=_((r3t,khe)=>{var cAt=xhe();function uAt(t){var e=t==null?0:t.length;return e?cAt(t,1):[]}khe.exports=uAt});var l_=_((n3t,Fhe)=>{var AAt=Qhe(),fAt=VL(),pAt=JL();function hAt(t){return pAt(fAt(t,void 0,AAt),t+"")}Fhe.exports=hAt});var c_=_((i3t,Rhe)=>{var gAt=whe(),dAt=l_(),mAt=dAt(function(t,e){return t==null?{}:gAt(t,e)});Rhe.exports=mAt});var kk,The=It(()=>{Vl();kk=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.resolver.bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,o,a){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}}});var Ri,u_=It(()=>{Vl();Ri=class extends Ws{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,o){return(typeof r=="function"?r:o)()}async startTimerPromise(e,r,o){return await(typeof r=="function"?r:o)()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}reportFold(e,r){}async finalize(){}}});var Nhe,iE,A_=It(()=>{Pt();Nhe=et(Ab());Ay();Dg();Wl();ah();xf();Io();iE=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.project=r,this.cwd=e}async setup(){this.manifest=await _t.tryFind(this.cwd)??new _t,this.relativeCwd=K.relative(this.project.cwd,this.cwd)||Bt.dot;let e=this.manifest.name?this.manifest.name:rA(null,`${this.computeCandidateName()}-${Ji(this.relativeCwd).substring(0,6)}`);this.anchoredDescriptor=kn(e,`${ci.protocol}${this.relativeCwd}`),this.anchoredLocator=Ss(e,`${ci.protocol}${this.relativeCwd}`);let r=this.manifest.workspaceDefinitions.map(({pattern:a})=>a);if(r.length===0)return;let o=await(0,Nhe.default)(r,{cwd:Ae.fromPortablePath(this.cwd),onlyDirectories:!0,ignore:["**/node_modules","**/.git","**/.yarn"]});o.sort(),await o.reduce(async(a,n)=>{let u=K.resolve(this.cwd,Ae.toPortablePath(n)),A=await ae.existsPromise(K.join(u,"package.json"));await a,A&&this.workspacesCwds.add(u)},Promise.resolve())}get anchoredPackage(){let e=this.project.storedPackages.get(this.anchoredLocator.locatorHash);if(!e)throw new Error(`Assertion failed: Expected workspace ${P1(this.project.configuration,this)} (${Ut(this.project.configuration,K.join(this.cwd,mr.manifest),Ct.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);return e}accepts(e){let r=e.indexOf(":"),o=r!==-1?e.slice(0,r+1):null,a=r!==-1?e.slice(r+1):e;if(o===ci.protocol&&K.normalize(a)===this.relativeCwd||o===ci.protocol&&(a==="*"||a==="^"||a==="~"))return!0;let n=Fa(a);return n?o===ci.protocol?n.test(this.manifest.version??"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?n.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${K.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=_t.hardDependencies}={}){let r=new Set,o=a=>{for(let n of e)for(let u of a.manifest[n].values()){let A=this.project.tryWorkspaceByDescriptor(u);A===null||r.has(A)||(r.add(A),o(A))}};return o(this),r}getRecursiveWorkspaceDependents({dependencies:e=_t.hardDependencies}={}){let r=new Set,o=a=>{for(let n of this.project.workspaces)e.some(A=>[...n.manifest[A].values()].some(p=>{let h=this.project.tryWorkspaceByDescriptor(p);return h!==null&&B1(h.anchoredLocator,a.anchoredLocator)}))&&!r.has(n)&&(r.add(n),o(n))};return o(this),r}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let r of e)for(let o of r.workspacesCwds){let a=this.project.workspacesByCwd.get(o);a&&e.add(a)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let r=K.join(this.cwd,_t.fileName),o=`${JSON.stringify(e,null,this.manifest.indent)} +`;await ae.changeFilePromise(r,o,{automaticNewlines:!0}),this.manifest.raw=e}}});function BAt({project:t,allDescriptors:e,allResolutions:r,allPackages:o,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:u=new Map,peerWarnings:A=[],peerRequirementNodes:p=new Map,volatileDescriptors:h=new Set}){let E=new Map,w=[],D=new Map,x=new Map,C=new Map,T=new Map,L=new Map(t.workspaces.map(ce=>{let ue=ce.anchoredLocator.locatorHash,Ie=o.get(ue);if(typeof Ie>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[ue,E1(Ie)]})),U=()=>{let ce=ae.mktempSync(),ue=K.join(ce,"stacktrace.log"),Ie=String(w.length+1).length,he=w.map((De,Ee)=>`${`${Ee+1}.`.padStart(Ie," ")} ${Qa(De)} +`).join("");throw ae.writeFileSync(ue,he),ae.detachTemp(ce),new Jt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${Ae.fromPortablePath(ue)}`)},J=ce=>{let ue=r.get(ce.descriptorHash);if(typeof ue>"u")throw new Error("Assertion failed: The resolution should have been registered");let Ie=o.get(ue);if(!Ie)throw new Error("Assertion failed: The package could not be found");return Ie},te=(ce,ue,Ie,{top:he,optional:De})=>{w.length>1e3&&U(),w.push(ue);let Ee=le(ce,ue,Ie,{top:he,optional:De});return w.pop(),Ee},le=(ce,ue,Ie,{top:he,optional:De})=>{if(De||n.delete(ue.locatorHash),a.has(ue.locatorHash))return;a.add(ue.locatorHash);let Ee=o.get(ue.locatorHash);if(!Ee)throw new Error(`Assertion failed: The package (${jr(t.configuration,ue)}) should have been registered`);let g=[],me=new Map,Ce=[],fe=[],ie=[],Z=[];for(let Re of Array.from(Ee.dependencies.values())){if(Ee.peerDependencies.has(Re.identHash)&&Ee.locatorHash!==he)continue;if(Pf(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");h.delete(Re.descriptorHash);let ht=De;if(!ht){let be=Ee.dependenciesMeta.get(rn(Re));if(typeof be<"u"){let tt=be.get(null);typeof tt<"u"&&tt.optional&&(ht=!0)}}let q=r.get(Re.descriptorHash);if(!q)throw new Error(`Assertion failed: The resolution (${Jn(t.configuration,Re)}) should have been registered`);let nt=L.get(q)||o.get(q);if(!nt)throw new Error(`Assertion failed: The package (${q}, resolved from ${Jn(t.configuration,Re)}) should have been registered`);if(nt.peerDependencies.size===0){te(Re,nt,new Map,{top:he,optional:ht});continue}let Ne,Te,ke=new Set,Ve=new Map;Ce.push(()=>{Ne=MM(Re,ue.locatorHash),Te=UM(nt,ue.locatorHash),Ee.dependencies.delete(Re.identHash),Ee.dependencies.set(Ne.identHash,Ne),r.set(Ne.descriptorHash,Te.locatorHash),e.set(Ne.descriptorHash,Ne),o.set(Te.locatorHash,Te),g.push([nt,Ne,Te])}),fe.push(()=>{T.set(Te.locatorHash,Ve);for(let be of Te.peerDependencies.values()){let He=Al(me,be.identHash,()=>{let b=Ie.get(be.identHash)??null,I=Ee.dependencies.get(be.identHash);return!I&&w1(ue,be)&&(ce.identHash===ue.identHash?I=ce:(I=kn(ue,ce.range),e.set(I.descriptorHash,I),r.set(I.descriptorHash,ue.locatorHash),h.delete(I.descriptorHash),b=null)),I||(I=kn(be,"missing:")),{subject:ue,ident:be,provided:I,root:!b,requests:new Map,hash:`p${Ji(ue.locatorHash,be.identHash).slice(0,5)}`}}).provided;if(He.range==="missing:"&&Te.dependencies.has(be.identHash)){Te.peerDependencies.delete(be.identHash);continue}Ve.set(be.identHash,{requester:Te,descriptor:be,meta:Te.peerDependenciesMeta.get(rn(be)),children:new Map}),Te.dependencies.set(be.identHash,He),Pf(He)&&Jm(C,He.descriptorHash).add(Te.locatorHash),D.set(He.identHash,He),He.range==="missing:"&&ke.add(He.identHash)}Te.dependencies=new Map(Ps(Te.dependencies,([be,tt])=>rn(tt)))}),ie.push(()=>{if(!o.has(Te.locatorHash))return;let be=E.get(nt.locatorHash);typeof be=="number"&&be>=2&&U();let tt=E.get(nt.locatorHash),He=typeof tt<"u"?tt+1:1;E.set(nt.locatorHash,He),te(Ne,Te,Ve,{top:he,optional:ht}),E.set(nt.locatorHash,He-1)}),Z.push(()=>{let be=Ee.dependencies.get(Re.identHash);if(typeof be>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let tt=r.get(be.descriptorHash);if(typeof tt>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let He=T.get(tt);if(typeof He>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let b of me.values()){let I=He.get(b.ident.identHash);I&&(b.requests.set(be.descriptorHash,I),p.set(b.hash,b),b.root||Ie.get(b.ident.identHash)?.children.set(be.descriptorHash,I))}if(o.has(Te.locatorHash))for(let b of ke)Te.dependencies.delete(b)})}for(let Re of[...Ce,...fe])Re();let Pe;do{Pe=!0;for(let[Re,ht,q]of g){let nt=A1(x,Re.locatorHash),Ne=Ji(...[...q.dependencies.values()].map(be=>{let tt=be.range!=="missing:"?r.get(be.descriptorHash):"missing:";if(typeof tt>"u")throw new Error(`Assertion failed: Expected the resolution for ${Jn(t.configuration,be)} to have been registered`);return tt===he?`${tt} (top)`:tt}),ht.identHash),Te=nt.get(Ne);if(typeof Te>"u"){nt.set(Ne,ht);continue}if(Te===ht)continue;o.delete(q.locatorHash),e.delete(ht.descriptorHash),r.delete(ht.descriptorHash),a.delete(q.locatorHash);let ke=C.get(ht.descriptorHash)||[],Ve=[Ee.locatorHash,...ke];C.delete(ht.descriptorHash);for(let be of Ve){let tt=o.get(be);typeof tt>"u"||(tt.dependencies.get(ht.identHash).descriptorHash!==Te.descriptorHash&&(Pe=!1),tt.dependencies.set(ht.identHash,Te))}for(let be of me.values())be.provided.descriptorHash===ht.descriptorHash&&(be.provided=Te)}}while(!Pe);for(let Re of[...ie,...Z])Re()};for(let ce of t.workspaces){let ue=ce.anchoredLocator;h.delete(ce.anchoredDescriptor.descriptorHash),te(ce.anchoredDescriptor,ue,new Map,{top:ue.locatorHash,optional:!1})}for(let ce of p.values()){if(!ce.root)continue;let ue=o.get(ce.subject.locatorHash);if(typeof ue>"u")continue;for(let he of ce.requests.values()){let De=`p${Ji(ce.subject.locatorHash,rn(ce.ident),he.requester.locatorHash).slice(0,5)}`;u.set(De,{subject:ce.subject.locatorHash,requested:ce.ident,rootRequester:he.requester.locatorHash,allRequesters:Array.from(S1(he),Ee=>Ee.requester.locatorHash)})}let Ie=[...S1(ce)];if(ce.provided.range!=="missing:"){let he=J(ce.provided),De=he.version??"0.0.0",Ee=me=>{if(me.startsWith(ci.protocol)){if(!t.tryWorkspaceByLocator(he))return null;me=me.slice(ci.protocol.length),(me==="^"||me==="~")&&(me="*")}return me},g=!0;for(let me of Ie){let Ce=Ee(me.descriptor.range);if(Ce===null){g=!1;continue}if(!nA(De,Ce)){g=!1;let fe=`p${Ji(ce.subject.locatorHash,rn(ce.ident),me.requester.locatorHash).slice(0,5)}`;A.push({type:1,subject:ue,requested:ce.ident,requester:me.requester,version:De,hash:fe,requirementCount:Ie.length})}}if(!g){let me=Ie.map(Ce=>Ee(Ce.descriptor.range));A.push({type:3,node:ce,range:me.includes(null)?null:qM(me),hash:ce.hash})}}else{let he=!0;for(let De of Ie)if(!De.meta?.optional){he=!1;let Ee=`p${Ji(ce.subject.locatorHash,rn(ce.ident),De.requester.locatorHash).slice(0,5)}`;A.push({type:0,subject:ue,requested:ce.ident,requester:De.requester,hash:Ee})}he||A.push({type:2,node:ce,hash:ce.hash})}}}function*vAt(t){let e=new Map;if("children"in t)e.set(t,t);else for(let r of t.requests.values())e.set(r,r);for(let[r,o]of e){yield{request:r,root:o};for(let a of r.children.values())e.has(a)||e.set(a,o)}}function DAt(t,e){let r=[],o=[],a=!1;for(let n of t.peerWarnings)if(!(n.type===1||n.type===0)){if(!t.tryWorkspaceByLocator(n.node.subject)){a=!0;continue}if(n.type===3){let u=t.storedResolutions.get(n.node.provided.descriptorHash);if(typeof u>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=t.storedPackages.get(u);if(typeof A>"u")throw new Error("Assertion failed: Expected the package to be registered");let p=eh(vAt(n.node),({request:w,root:D})=>nA(A.version??"0.0.0",w.descriptor.range)?eh.skip:w===D?Ui(t.configuration,w.requester):`${Ui(t.configuration,w.requester)} (via ${Ui(t.configuration,D.requester)})`),h=[...S1(n.node)].length>1?"and other dependencies request":"requests",E=n.range?cy(t.configuration,n.range):Ut(t.configuration,"but they have non-overlapping ranges!","redBright");r.push(`${Ui(t.configuration,n.node.ident)} is listed by your project with version ${D1(t.configuration,A.version??"0.0.0")} (${Ut(t.configuration,n.hash,Ct.CODE)}), which doesn't satisfy what ${p} ${h} (${E}).`)}if(n.type===2){let u=n.node.requests.size>1?" and other dependencies":"";o.push(`${jr(t.configuration,n.node.subject)} doesn't provide ${Ui(t.configuration,n.node.ident)} (${Ut(t.configuration,n.hash,Ct.CODE)}), requested by ${Ui(t.configuration,n.node.requests.values().next().value.requester)}${u}.`)}}e.startSectionSync({reportFooter:()=>{e.reportWarning(86,`Some peer dependencies are incorrectly met by your project; run ${Ut(t.configuration,"yarn explain peer-requirements ",Ct.CODE)} for details, where ${Ut(t.configuration,"",Ct.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let n of Ps(r,u=>ey.default(u)))e.reportWarning(60,n);for(let n of Ps(o,u=>ey.default(u)))e.reportWarning(2,n)}),a&&e.reportWarning(86,`Some peer dependencies are incorrectly met by dependencies; run ${Ut(t.configuration,"yarn explain peer-requirements",Ct.CODE)} for details.`)}var Qk,Fk,Rk,Mhe,h_,p_,g_,Tk,yAt,EAt,Lhe,CAt,IAt,wAt,yl,f_,Nk,Ohe,Qt,Uhe=It(()=>{Pt();Pt();Ol();Gt();Qk=ve("crypto");n_();Fk=et(c_()),Rk=et(lg()),Mhe=et(ni()),h_=ve("util"),p_=et(ve("v8")),g_=et(ve("zlib"));V8();W1();J8();z8();Ay();KM();Vl();The();n2();u_();Dg();A_();Db();Wl();ah();Gl();nx();a3();xf();Io();Tk=Zm(process.env.YARN_LOCKFILE_VERSION_OVERRIDE??8),yAt=3,EAt=/ *, */g,Lhe=/\/$/,CAt=32,IAt=(0,h_.promisify)(g_.default.gzip),wAt=(0,h_.promisify)(g_.default.gunzip),yl=(r=>(r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build",r))(yl||{}),f_={restoreLinkersCustomData:["linkersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["skippedBuilds","storedBuildState"]},Nk=(a=>(a[a.NotProvided=0]="NotProvided",a[a.NotCompatible=1]="NotCompatible",a[a.NodeNotProvided=2]="NodeNotProvided",a[a.NodeNotCompatible=3]="NodeNotCompatible",a))(Nk||{}),Ohe=t=>Ji(`${yAt}`,t),Qt=class t{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.skippedBuilds=new Set;this.lockfileLastVersion=null;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.peerWarnings=[];this.peerRequirementNodes=new Map;this.linkersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){if(!e.projectCwd)throw new it(`No project found in ${r}`);let o=e.projectCwd,a=r,n=null;for(;n!==e.projectCwd;){if(n=a,ae.existsSync(K.join(n,mr.manifest))){o=n;break}a=K.dirname(n)}let u=new t(e.projectCwd,{configuration:e});ze.telemetry?.reportProject(u.cwd),await u.setupResolutions(),await u.setupWorkspaces(),ze.telemetry?.reportWorkspaceCount(u.workspaces.length),ze.telemetry?.reportDependencyCount(u.workspaces.reduce((C,T)=>C+T.manifest.dependencies.size+T.manifest.devDependencies.size,0));let A=u.tryWorkspaceByCwd(o);if(A)return{project:u,workspace:A,locator:A.anchoredLocator};let p=await u.findLocatorForLocation(`${o}/`,{strict:!0});if(p)return{project:u,locator:p,workspace:null};let h=Ut(e,u.cwd,Ct.PATH),E=Ut(e,K.relative(u.cwd,o),Ct.PATH),w=`- If ${h} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,D=`- If ${h} is intended to be a project, it might be that you forgot to list ${E} in its workspace configuration.`,x=`- Finally, if ${h} is fine and you intend ${E} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new it(`The nearest package directory (${Ut(e,o,Ct.PATH)}) doesn't seem to be part of the project declared in ${Ut(e,u.cwd,Ct.PATH)}. + +${[w,D,x].join(` +`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=K.join(this.cwd,mr.lockfile),r=this.configuration.get("defaultLanguageName");if(ae.existsSync(e)){let o=await ae.readFilePromise(e,"utf8");this.lockFileChecksum=Ohe(o);let a=Ki(o);if(a.__metadata){let n=a.__metadata.version,u=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${A})`);let h=Sf(p.resolution,!0),E=new _t;E.load(p,{yamlCompatibilityMode:!0});let w=E.version,D=E.languageName||r,x=p.linkType.toUpperCase(),C=p.conditions??null,T=E.dependencies,L=E.peerDependencies,U=E.dependenciesMeta,J=E.peerDependenciesMeta,te=E.bin;if(p.checksum!=null){let ce=typeof u<"u"&&!p.checksum.includes("/")?`${u}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,ce)}let le={...h,version:w,languageName:D,linkType:x,conditions:C,dependencies:T,peerDependencies:L,dependenciesMeta:U,peerDependenciesMeta:J,bin:te};this.originalPackages.set(le.locatorHash,le);for(let ce of A.split(EAt)){let ue=lh(ce);n<=6&&(ue=this.configuration.normalizeDependency(ue),ue=kn(ue,ue.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(ue.descriptorHash,ue),this.storedResolutions.set(ue.descriptorHash,h.locatorHash)}}}else o.includes("yarn lockfile v1")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,Rk.default)(4),o=async(a,n)=>{if(e.has(n))return a;e.add(n);let u=new iE(n,{project:this});await r(()=>u.setup());let A=a.then(()=>{this.addWorkspace(u)});return Array.from(u.workspacesCwds).reduce(o,A)};await o(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.anchoredLocator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${Ui(this.configuration,e.anchoredLocator)}: ${Ae.fromPortablePath(e.cwd)} conflicts with ${Ae.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.anchoredLocator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){K.isAbsolute(e)||(e=K.resolve(this.cwd,e)),e=K.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let o of this.workspaces)K.relative(o.cwd,e).startsWith("../")||r&&r.cwd.length>=o.cwd.length||(r=o);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${Ui(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(ci.protocol)){let o=e.range.slice(ci.protocol.length);if(o!=="^"&&o!=="~"&&o!=="*"&&!Fa(o))return this.tryWorkspaceByCwd(o)}let r=this.tryWorkspaceByIdent(e);return r===null||(Pf(e)&&(e=C1(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${Jn(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Jc(e)&&(e=I1(e)),r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${jr(this.configuration,e)})`);return r}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let o=new Set(this.storedResolutions.values());typeof r<"u"&&!o.has(r)&&this.deleteLocator(r)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[r,o]of this.storedResolutions)o===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[o,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(o)}for(let o of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(o,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(o.locatorHash);let n=r.get(o.locatorHash);if(n){r.delete(o.locatorHash);for(let u of n)this.deleteDescriptor(u)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,o]of e.dependencies)Pf(o)&&e.dependencies.set(r,C1(o))}getDependencyMeta(e,r){let o={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(rn(e));if(!n)return o;let u=n.get(null);if(u&&Object.assign(o,u),r===null||!Mhe.default.valid(r))return o;for(let[A,p]of n)A!==null&&A===r&&Object.assign(o,p);return o}async findLocatorForLocation(e,{strict:r=!1}={}){let o=new Ri,a=this.configuration.getLinkers(),n={project:this,report:o};for(let u of a){let A=await u.findPackageLocator(e,n);if(A){if(r&&(await u.findPackageLocation(A,n)).replace(Lhe,"")!==e.replace(Lhe,""))continue;return A}}return null}async loadUserConfig(){let e=K.join(this.cwd,".pnp.cjs");await ae.existsPromise(e)&&vf(e).setup();let r=K.join(this.cwd,"yarn.config.cjs");return await ae.existsPromise(r)?vf(r):null}async preparePackage(e,{resolver:r,resolveOptions:o}){let a=await this.configuration.getPackageExtensions(),n=this.configuration.normalizePackage(e,{packageExtensions:a});for(let[u,A]of n.dependencies){let p=await this.configuration.reduceHook(E=>E.reduceDependency,A,this,n,A,{resolver:r,resolveOptions:o});if(!w1(A,p))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let h=r.bindDescriptor(p,n,o);n.dependencies.set(u,h)}return n}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions();let r=new Map(this.originalPackages),o=[];e.lockfileOnly||this.forgetTransientResolutions();let a=e.resolver||this.configuration.makeResolver(),n=new tE(a);await n.setup(this,{report:e.report});let u=e.lockfileOnly?[new kk(a)]:[n,a],A=new Pg([new rE(a),...u]),p=new Pg([...u]),h=this.configuration.makeFetcher(),E=e.lockfileOnly?{project:this,report:e.report,resolver:A}:{project:this,report:e.report,resolver:A,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:h,cacheOptions:{mirrorWriteOnly:!0}}},w=new Map,D=new Map,x=new Map,C=new Map,T=new Map,L=new Map,U=this.topLevelWorkspace.anchoredLocator,J=new Set,te=[],le=I4(),ce=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Ws.progressViaTitle(),async ie=>{let Z=async nt=>{let Ne=await zm(async()=>await A.resolve(nt,E),be=>`${jr(this.configuration,nt)}: ${be}`);if(!B1(nt,Ne))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${jr(this.configuration,nt)} to ${jr(this.configuration,Ne)})`);C.set(Ne.locatorHash,Ne),!r.delete(Ne.locatorHash)&&!this.tryWorkspaceByLocator(Ne)&&o.push(Ne);let ke=await this.preparePackage(Ne,{resolver:A,resolveOptions:E}),Ve=Wc([...ke.dependencies.values()].map(be=>q(be)));return te.push(Ve),Ve.catch(()=>{}),D.set(ke.locatorHash,ke),ke},Pe=async nt=>{let Ne=T.get(nt.locatorHash);if(typeof Ne<"u")return Ne;let Te=Promise.resolve().then(()=>Z(nt));return T.set(nt.locatorHash,Te),Te},Re=async(nt,Ne)=>{let Te=await q(Ne);return w.set(nt.descriptorHash,nt),x.set(nt.descriptorHash,Te.locatorHash),Te},ht=async nt=>{ie.setTitle(Jn(this.configuration,nt));let Ne=this.resolutionAliases.get(nt.descriptorHash);if(typeof Ne<"u")return Re(nt,this.storedDescriptors.get(Ne));let Te=A.getResolutionDependencies(nt,E),ke=Object.fromEntries(await Wc(Object.entries(Te).map(async([tt,He])=>{let b=A.bindDescriptor(He,U,E),I=await q(b);return J.add(I.locatorHash),[tt,I]}))),be=(await zm(async()=>await A.getCandidates(nt,ke,E),tt=>`${Jn(this.configuration,nt)}: ${tt}`))[0];if(typeof be>"u")throw new Jt(82,`${Jn(this.configuration,nt)}: No candidates found`);if(e.checkResolutions){let{locators:tt}=await p.getSatisfying(nt,ke,[be],{...E,resolver:p});if(!tt.find(He=>He.locatorHash===be.locatorHash))throw new Jt(78,`Invalid resolution ${d1(this.configuration,nt,be)}`)}return w.set(nt.descriptorHash,nt),x.set(nt.descriptorHash,be.locatorHash),Pe(be)},q=nt=>{let Ne=L.get(nt.descriptorHash);if(typeof Ne<"u")return Ne;w.set(nt.descriptorHash,nt);let Te=Promise.resolve().then(()=>ht(nt));return L.set(nt.descriptorHash,Te),Te};for(let nt of this.workspaces){let Ne=nt.anchoredDescriptor;te.push(q(Ne))}for(;te.length>0;){let nt=[...te];te.length=0,await Wc(nt)}});let ue=ul(r.values(),ie=>this.tryWorkspaceByLocator(ie)?ul.skip:ie);if(o.length>0||ue.length>0){let ie=new Set(this.workspaces.flatMap(nt=>{let Ne=D.get(nt.anchoredLocator.locatorHash);if(!Ne)throw new Error("Assertion failed: The workspace should have been resolved");return Array.from(Ne.dependencies.values(),Te=>{let ke=x.get(Te.descriptorHash);if(!ke)throw new Error("Assertion failed: The resolution should have been registered");return ke})})),Z=nt=>ie.has(nt.locatorHash)?"0":"1",Pe=nt=>Qa(nt),Re=Ps(o,[Z,Pe]),ht=Ps(ue,[Z,Pe]),q=e.report.getRecommendedLength();Re.length>0&&e.report.reportInfo(85,`${Ut(this.configuration,"+",Ct.ADDED)} ${_S(this.configuration,Re,q)}`),ht.length>0&&e.report.reportInfo(85,`${Ut(this.configuration,"-",Ct.REMOVED)} ${_S(this.configuration,ht,q)}`)}let Ie=new Set(this.resolutionAliases.values()),he=new Set(D.keys()),De=new Set,Ee=new Map,g=[],me=new Map;BAt({project:this,accessibleLocators:De,volatileDescriptors:Ie,optionalBuilds:he,peerRequirements:Ee,peerWarnings:g,peerRequirementNodes:me,allDescriptors:w,allResolutions:x,allPackages:D});for(let ie of J)he.delete(ie);for(let ie of Ie)w.delete(ie),x.delete(ie);let Ce=new Set,fe=new Set;for(let ie of D.values())ie.conditions!=null&&he.has(ie.locatorHash)&&(Cb(ie,ce)||(Cb(ie,le)&&e.report.reportWarningOnce(77,`${jr(this.configuration,ie)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Ut(this.configuration,"supportedArchitectures",Ct.SETTING)} setting`),fe.add(ie.locatorHash)),Ce.add(ie.locatorHash));this.storedResolutions=x,this.storedDescriptors=w,this.storedPackages=D,this.accessibleLocators=De,this.conditionalLocators=Ce,this.disabledLocators=fe,this.originalPackages=C,this.optionalBuilds=he,this.peerRequirements=Ee,this.peerWarnings=g,this.peerRequirementNodes=me}async fetchEverything({cache:e,report:r,fetcher:o,mode:a,persistProject:n=!0}){let u={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},A=o||this.configuration.makeFetcher(),p={checksums:this.storedChecksums,project:this,cache:e,fetcher:A,report:r,cacheOptions:u},h=Array.from(new Set(Ps(this.storedResolutions.values(),[C=>{let T=this.storedPackages.get(C);if(!T)throw new Error("Assertion failed: The locator should have been registered");return Qa(T)}])));a==="update-lockfile"&&(h=h.filter(C=>!this.storedChecksums.has(C)));let E=!1,w=Ws.progressViaCounter(h.length);await r.reportProgress(w);let D=(0,Rk.default)(CAt);if(await Wc(h.map(C=>D(async()=>{let T=this.storedPackages.get(C);if(!T)throw new Error("Assertion failed: The locator should have been registered");if(Jc(T))return;let L;try{L=await A.fetch(T,p)}catch(U){U.message=`${jr(this.configuration,T)}: ${U.message}`,r.reportExceptionOnce(U),E=U;return}L.checksum!=null?this.storedChecksums.set(T.locatorHash,L.checksum):this.storedChecksums.delete(T.locatorHash),L.releaseFs&&L.releaseFs()}).finally(()=>{w.tick()}))),E)throw E;let x=n&&a!=="update-lockfile"?await this.cacheCleanup({cache:e,report:r}):null;if(r.cacheMisses.size>0||x){let T=(await Promise.all([...r.cacheMisses].map(async ue=>{let Ie=this.storedPackages.get(ue),he=this.storedChecksums.get(ue)??null,De=e.getLocatorPath(Ie,he);return(await ae.statPromise(De)).size}))).reduce((ue,Ie)=>ue+Ie,0)-(x?.size??0),L=r.cacheMisses.size,U=x?.count??0,J=`${TS(L,{zero:"No new packages",one:"A package was",more:`${Ut(this.configuration,L,Ct.NUMBER)} packages were`})} added to the project`,te=`${TS(U,{zero:"none were",one:"one was",more:`${Ut(this.configuration,U,Ct.NUMBER)} were`})} removed`,le=T!==0?` (${Ut(this.configuration,T,Ct.SIZE_DIFF)})`:"",ce=U>0?L>0?`${J}, and ${te}${le}.`:`${J}, but ${te}${le}.`:`${J}${le}.`;r.reportInfo(13,ce)}}async linkEverything({cache:e,report:r,fetcher:o,mode:a}){let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},u=o||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:u,report:r,cacheOptions:n},p=this.configuration.getLinkers(),h={project:this,report:r},E=new Map(p.map(Ce=>{let fe=Ce.makeInstaller(h),ie=Ce.getCustomDataKey(),Z=this.linkersCustomData.get(ie);return typeof Z<"u"&&fe.attachCustomData(Z),[Ce,fe]})),w=new Map,D=new Map,x=new Map,C=new Map(await Wc([...this.accessibleLocators].map(async Ce=>{let fe=this.storedPackages.get(Ce);if(!fe)throw new Error("Assertion failed: The locator should have been registered");return[Ce,await u.fetch(fe,A)]}))),T=[],L=new Set,U=[];for(let Ce of this.accessibleLocators){let fe=this.storedPackages.get(Ce);if(typeof fe>"u")throw new Error("Assertion failed: The locator should have been registered");let ie=C.get(fe.locatorHash);if(typeof ie>"u")throw new Error("Assertion failed: The fetch result should have been registered");let Z=[],Pe=ht=>{Z.push(ht)},Re=this.tryWorkspaceByLocator(fe);if(Re!==null){let ht=[],{scripts:q}=Re.manifest;for(let Ne of["preinstall","install","postinstall"])q.has(Ne)&&ht.push({type:0,script:Ne});try{for(let[Ne,Te]of E)if(Ne.supportsPackage(fe,h)&&(await Te.installPackage(fe,ie,{holdFetchResult:Pe})).buildRequest!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{Z.length===0?ie.releaseFs?.():T.push(Wc(Z).catch(()=>{}).then(()=>{ie.releaseFs?.()}))}let nt=K.join(ie.packageFs.getRealPath(),ie.prefixPath);D.set(fe.locatorHash,nt),!Jc(fe)&&ht.length>0&&x.set(fe.locatorHash,{buildDirectives:ht,buildLocations:[nt]})}else{let ht=p.find(Ne=>Ne.supportsPackage(fe,h));if(!ht)throw new Jt(12,`${jr(this.configuration,fe)} isn't supported by any available linker`);let q=E.get(ht);if(!q)throw new Error("Assertion failed: The installer should have been registered");let nt;try{nt=await q.installPackage(fe,ie,{holdFetchResult:Pe})}finally{Z.length===0?ie.releaseFs?.():T.push(Wc(Z).then(()=>{}).then(()=>{ie.releaseFs?.()}))}w.set(fe.locatorHash,ht),D.set(fe.locatorHash,nt.packageLocation),nt.buildRequest&&nt.packageLocation&&(nt.buildRequest.skipped?(L.add(fe.locatorHash),this.skippedBuilds.has(fe.locatorHash)||U.push([fe,nt.buildRequest.explain])):x.set(fe.locatorHash,{buildDirectives:nt.buildRequest.directives,buildLocations:[nt.packageLocation]}))}}let J=new Map;for(let Ce of this.accessibleLocators){let fe=this.storedPackages.get(Ce);if(!fe)throw new Error("Assertion failed: The locator should have been registered");let ie=this.tryWorkspaceByLocator(fe)!==null,Z=async(Pe,Re)=>{let ht=D.get(fe.locatorHash);if(typeof ht>"u")throw new Error(`Assertion failed: The package (${jr(this.configuration,fe)}) should have been registered`);let q=[];for(let nt of fe.dependencies.values()){let Ne=this.storedResolutions.get(nt.descriptorHash);if(typeof Ne>"u")throw new Error(`Assertion failed: The resolution (${Jn(this.configuration,nt)}, from ${jr(this.configuration,fe)})should have been registered`);let Te=this.storedPackages.get(Ne);if(typeof Te>"u")throw new Error(`Assertion failed: The package (${Ne}, resolved from ${Jn(this.configuration,nt)}) should have been registered`);let ke=this.tryWorkspaceByLocator(Te)===null?w.get(Ne):null;if(typeof ke>"u")throw new Error(`Assertion failed: The package (${Ne}, resolved from ${Jn(this.configuration,nt)}) should have been registered`);ke===Pe||ke===null?D.get(Te.locatorHash)!==null&&q.push([nt,Te]):!ie&&ht!==null&&u1(J,Ne).push(ht)}ht!==null&&await Re.attachInternalDependencies(fe,q)};if(ie)for(let[Pe,Re]of E)Pe.supportsPackage(fe,h)&&await Z(Pe,Re);else{let Pe=w.get(fe.locatorHash);if(!Pe)throw new Error("Assertion failed: The linker should have been found");let Re=E.get(Pe);if(!Re)throw new Error("Assertion failed: The installer should have been registered");await Z(Pe,Re)}}for(let[Ce,fe]of J){let ie=this.storedPackages.get(Ce);if(!ie)throw new Error("Assertion failed: The package should have been registered");let Z=w.get(ie.locatorHash);if(!Z)throw new Error("Assertion failed: The linker should have been found");let Pe=E.get(Z);if(!Pe)throw new Error("Assertion failed: The installer should have been registered");await Pe.attachExternalDependents(ie,fe)}let te=new Map;for(let[Ce,fe]of E){let ie=await fe.finalizeInstall();for(let Z of ie?.records??[])Z.buildRequest.skipped?(L.add(Z.locator.locatorHash),this.skippedBuilds.has(Z.locator.locatorHash)||U.push([Z.locator,Z.buildRequest.explain])):x.set(Z.locator.locatorHash,{buildDirectives:Z.buildRequest.directives,buildLocations:Z.buildLocations});typeof ie?.customData<"u"&&te.set(Ce.getCustomDataKey(),ie.customData)}if(this.linkersCustomData=te,await Wc(T),a==="skip-build")return;for(let[,Ce]of Ps(U,([fe])=>Qa(fe)))Ce(r);let le=new Set(x.keys()),ce=(0,Qk.createHash)("sha512");ce.update(process.versions.node),await this.configuration.triggerHook(Ce=>Ce.globalHashGeneration,this,Ce=>{ce.update("\0"),ce.update(Ce)});let ue=ce.digest("hex"),Ie=new Map,he=Ce=>{let fe=Ie.get(Ce.locatorHash);if(typeof fe<"u")return fe;let ie=this.storedPackages.get(Ce.locatorHash);if(typeof ie>"u")throw new Error("Assertion failed: The package should have been registered");let Z=(0,Qk.createHash)("sha512");Z.update(Ce.locatorHash),Ie.set(Ce.locatorHash,"");for(let Pe of ie.dependencies.values()){let Re=this.storedResolutions.get(Pe.descriptorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The resolution (${Jn(this.configuration,Pe)}) should have been registered`);let ht=this.storedPackages.get(Re);if(typeof ht>"u")throw new Error("Assertion failed: The package should have been registered");Z.update(he(ht))}return fe=Z.digest("hex"),Ie.set(Ce.locatorHash,fe),fe},De=(Ce,fe)=>{let ie=(0,Qk.createHash)("sha512");ie.update(ue),ie.update(he(Ce));for(let Z of fe)ie.update(Z);return ie.digest("hex")},Ee=new Map,g=!1,me=Ce=>{let fe=new Set([Ce.locatorHash]);for(let ie of fe){let Z=this.storedPackages.get(ie);if(!Z)throw new Error("Assertion failed: The package should have been registered");for(let Pe of Z.dependencies.values()){let Re=this.storedResolutions.get(Pe.descriptorHash);if(!Re)throw new Error(`Assertion failed: The resolution (${Jn(this.configuration,Pe)}) should have been registered`);if(Re!==Ce.locatorHash&&le.has(Re))return!1;let ht=this.storedPackages.get(Re);if(!ht)throw new Error("Assertion failed: The package should have been registered");let q=this.tryWorkspaceByLocator(ht);if(q){if(q.anchoredLocator.locatorHash!==Ce.locatorHash&&le.has(q.anchoredLocator.locatorHash))return!1;fe.add(q.anchoredLocator.locatorHash)}fe.add(Re)}}return!0};for(;le.size>0;){let Ce=le.size,fe=[];for(let ie of le){let Z=this.storedPackages.get(ie);if(!Z)throw new Error("Assertion failed: The package should have been registered");if(!me(Z))continue;let Pe=x.get(Z.locatorHash);if(!Pe)throw new Error("Assertion failed: The build directive should have been registered");let Re=De(Z,Pe.buildLocations);if(this.storedBuildState.get(Z.locatorHash)===Re){Ee.set(Z.locatorHash,Re),le.delete(ie);continue}g||(await this.persistInstallStateFile(),g=!0),this.storedBuildState.has(Z.locatorHash)?r.reportInfo(8,`${jr(this.configuration,Z)} must be rebuilt because its dependency tree changed`):r.reportInfo(7,`${jr(this.configuration,Z)} must be built because it never has been before or the last one failed`);let ht=Pe.buildLocations.map(async q=>{if(!K.isAbsolute(q))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${q})`);for(let nt of Pe.buildDirectives){let Ne=`# This file contains the result of Yarn building a package (${Qa(Z)}) +`;switch(nt.type){case 0:Ne+=`# Script name: ${nt.script} +`;break;case 1:Ne+=`# Script code: ${nt.script} +`;break}let Te=null;if(!await ae.mktempPromise(async Ve=>{let be=K.join(Ve,"build.log"),{stdout:tt,stderr:He}=this.configuration.getSubprocessStreams(be,{header:Ne,prefix:jr(this.configuration,Z),report:r}),b;try{switch(nt.type){case 0:b=await Dx(Z,nt.script,[],{cwd:q,project:this,stdin:Te,stdout:tt,stderr:He});break;case 1:b=await n3(Z,nt.script,[],{cwd:q,project:this,stdin:Te,stdout:tt,stderr:He});break}}catch(y){He.write(y.stack),b=1}if(tt.end(),He.end(),b===0)return!0;ae.detachTemp(Ve);let I=`${jr(this.configuration,Z)} couldn't be built successfully (exit code ${Ut(this.configuration,b,Ct.NUMBER)}, logs can be found here: ${Ut(this.configuration,be,Ct.PATH)})`,S=this.optionalBuilds.has(Z.locatorHash);return S?r.reportInfo(9,I):r.reportError(9,I),Lue&&r.reportFold(Ae.fromPortablePath(be),ae.readFileSync(be,"utf8")),S}))return!1}return!0});fe.push(...ht,Promise.allSettled(ht).then(q=>{le.delete(ie),q.every(nt=>nt.status==="fulfilled"&&nt.value===!0)&&Ee.set(Z.locatorHash,Re)}))}if(await Wc(fe),Ce===le.size){let ie=Array.from(le).map(Z=>{let Pe=this.storedPackages.get(Z);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return jr(this.configuration,Pe)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ie})`);break}}this.storedBuildState=Ee,this.skippedBuilds=L}async installWithNewReport(e,r){return(await Nt.start({configuration:this.configuration,json:e.json,stdout:e.stdout,forceSectionAlignment:!0,includeLogs:!e.json&&!e.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(e){let r=this.configuration.get("nodeLinker");ze.telemetry?.reportInstall(r);let o=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{this.configuration.get("enableOfflineMode")&&e.report.reportWarning(90,"Offline work is enabled; Yarn won't fetch packages from the remote registry if it can avoid it"),await this.configuration.triggerHook(E=>E.validateProject,this,{reportWarning:(E,w)=>{e.report.reportWarning(E,w)},reportError:(E,w)=>{e.report.reportError(E,w),o=!0}})}),o)return;let a=await this.configuration.getPackageExtensions();for(let E of a.values())for(let[,w]of E)for(let D of w)D.status="inactive";let n=K.join(this.cwd,mr.lockfile),u=null;if(e.immutable)try{u=await ae.readFilePromise(n,"utf8")}catch(E){throw E.code==="ENOENT"?new Jt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):E}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{DAt(this,e.report);for(let[,E]of a)for(let[,w]of E)for(let D of w)if(D.userProvided){let x=Ut(this.configuration,D,Ct.PACKAGE_EXTENSION);switch(D.status){case"inactive":e.report.reportWarning(68,`${x}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${x}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(u!==null){let E=G0(u,this.generateLockfile());if(E!==u){let w=ehe(n,n,u,E,void 0,void 0,{maxEditLength:100});if(w){e.report.reportSeparator();for(let D of w.hunks){e.report.reportInfo(null,`@@ -${D.oldStart},${D.oldLines} +${D.newStart},${D.newLines} @@`);for(let x of D.lines)x.startsWith("+")?e.report.reportError(28,Ut(this.configuration,x,Ct.ADDED)):x.startsWith("-")?e.report.reportError(28,Ut(this.configuration,x,Ct.REMOVED)):e.report.reportInfo(null,Ut(this.configuration,x,"grey"))}e.report.reportSeparator()}throw new Jt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let E of a.values())for(let[,w]of E)for(let D of w)D.userProvided&&D.status==="active"&&ze.telemetry?.reportPackageExtension(Ig(D,Ct.PACKAGE_EXTENSION));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e)});let A=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],p=await Promise.all(A.map(async E=>hb(E,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${Ut(this.configuration,"mode=update-lockfile",Ct.CODE)}`);return}await this.linkEverything(e);let E=await Promise.all(A.map(async w=>hb(w,{cwd:this.cwd})));for(let w=0;w{await this.configuration.triggerHook(E=>E.validateProjectAfterInstall,this,{reportWarning:(E,w)=>{e.report.reportWarning(E,w)},reportError:(E,w)=>{e.report.reportError(E,w),h=!0}})}),!h&&await this.configuration.triggerHook(E=>E.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,u]of this.storedResolutions.entries()){let A=e.get(u);A||e.set(u,A=new Set),A.add(n)}let r={},{cacheKey:o}=Wr.getCacheKey(this.configuration);r.__metadata={version:Tk,cacheKey:o};for(let[n,u]of e.entries()){let A=this.originalPackages.get(n);if(!A)continue;let p=[];for(let w of u){let D=this.storedDescriptors.get(w);if(!D)throw new Error("Assertion failed: The descriptor should have been registered");p.push(D)}let h=p.map(w=>ka(w)).sort().join(", "),E=new _t;E.version=A.linkType==="HARD"?A.version:"0.0.0-use.local",E.languageName=A.languageName,E.dependencies=new Map(A.dependencies),E.peerDependencies=new Map(A.peerDependencies),E.dependenciesMeta=new Map(A.dependenciesMeta),E.peerDependenciesMeta=new Map(A.peerDependenciesMeta),E.bin=new Map(A.bin),r[h]={...E.exportTo({},{compatibilityMode:!1}),linkType:A.linkType.toLowerCase(),resolution:Qa(A),checksum:this.storedChecksums.get(A.locatorHash),conditions:A.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. +`,`# Manual changes might be lost - proceed with caution! +`].join("")} +`+Pa(r)}async persistLockfile(){let e=K.join(this.cwd,mr.lockfile),r="";try{r=await ae.readFilePromise(e,"utf8")}catch{}let o=this.generateLockfile(),a=G0(r,o);a!==r&&(await ae.writeFilePromise(e,a),this.lockFileChecksum=Ohe(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let u of Object.values(f_))e.push(...u);let r=(0,Fk.default)(this,e),o=p_.default.serialize(r),a=Ji(o);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await ae.mkdirPromise(K.dirname(n),{recursive:!0}),await ae.writeFilePromise(n,await IAt(o)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:o=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let u=await wAt(await ae.readFilePromise(a));n=p_.default.deserialize(u),this.installStateChecksum=Ji(u)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),o&&Object.assign(this,(0,Fk.default)(n,f_.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,Fk.default)(n,f_.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new Ri}),await this.persistInstallStateFile()}async persist(){let e=(0,Rk.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let o=new Set([".gitignore"]);if(!nU(e.cwd,this.cwd)||!await ae.existsPromise(e.cwd))return null;let a=[];for(let u of await ae.readdirPromise(e.cwd)){if(o.has(u))continue;let A=K.resolve(e.cwd,u);e.markedFiles.has(A)||(e.immutable?r.reportError(56,`${Ut(this.configuration,K.basename(A),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(ae.lstatPromise(A).then(async p=>(await ae.removePromise(A),p.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((u,A)=>u+A,0)}}}});function PAt(t){let o=Math.floor(t.timeNow/864e5),a=t.updateInterval*864e5,n=t.state.lastUpdate??t.timeNow+a+Math.floor(a*t.randomInitialInterval),u=n+a,A=t.state.lastTips??o*864e5,p=A+864e5+8*36e5-t.timeZone,h=u<=t.timeNow,E=p<=t.timeNow,w=null;return(h||E||!t.state.lastUpdate||!t.state.lastTips)&&(w={},w.lastUpdate=h?t.timeNow:n,w.lastTips=A,w.blocks=h?{}:t.state.blocks,w.displayedTips=t.state.displayedTips),{nextState:w,triggerUpdate:h,triggerTips:E,nextTips:E?o*864e5:A}}var sE,_he=It(()=>{Pt();r2();ah();tx();Gl();xf();sE=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=e;let o=this.getRegistryPath();this.isNew=!ae.existsSync(o),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(e){let r=new Set(this.displayedTips),o=A=>A&&nn?nA(nn,A):!1,a=e.map((A,p)=>p).filter(A=>e[A]&&o(e[A]?.selector));if(a.length===0)return null;let n=a.filter(A=>!r.has(A));if(n.length===0){let A=Math.floor(a.length*.2);this.displayedTips=A>0?this.displayedTips.slice(-A):[],n=a.filter(p=>!r.has(p))}let u=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(u),this.commitTips(),e[u]}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,r){Jm(this.values,e).add(r)}reportEnumerator(e,r){Jm(this.enumerators,e).add(Ji(r))}reportHit(e,r="*"){let o=A1(this.hits,e),a=Al(o,r,()=>0);o.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return K.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),o;try{o=ae.readJsonSync(r)}catch{o={}}let{nextState:a,triggerUpdate:n,triggerTips:u,nextTips:A}=PAt({state:o,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=A,this.displayedTips=o.displayedTips??[],a!==null)try{ae.mkdirSync(K.dirname(r),{recursive:!0}),ae.writeJsonSync(r,a)}catch{return!1}if(u&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),n){let p=o.blocks??{};if(Object.keys(p).length===0){let h=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,E=w=>C4(h,w,{configuration:this.configuration}).catch(()=>{});for(let[w,D]of Object.entries(o.blocks??{})){if(Object.keys(D).length===0)continue;let x=D;x.userId=w,x.reportType="primary";for(let L of Object.keys(x.enumerators??{}))x.enumerators[L]=x.enumerators[L].length;E(x);let C=new Map,T=20;for(let[L,U]of Object.entries(x.values))U.length>0&&C.set(L,U.slice(0,T));for(;C.size>0;){let L={};L.userId=w,L.reportType="secondary",L.metrics={};for(let[U,J]of C)L.metrics[U]=J.shift(),J.length===0&&C.delete(U);E(L)}}}}return!0}applyChanges(){let e=this.getRegistryPath(),r;try{r=ae.readJsonSync(e)}catch{r={}}let o=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},n=a[o]=a[o]??{};for(let u of this.hits.keys()){let A=n.hits=n.hits??{},p=A[u]=A[u]??{};for(let[h,E]of this.hits.get(u))p[h]=(p[h]??0)+E}for(let u of["values","enumerators"])for(let A of this[u].keys()){let p=n[u]=n[u]??{};p[A]=[...new Set([...p[A]??[],...this[u].get(A)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),ae.mkdirSync(K.dirname(e),{recursive:!0}),ae.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}}});var P2={};Kt(P2,{BuildDirectiveType:()=>Sk,CACHE_CHECKPOINT:()=>K8,CACHE_VERSION:()=>Pk,Cache:()=>Wr,Configuration:()=>ze,DEFAULT_RC_FILENAME:()=>S4,FormatType:()=>yce,InstallMode:()=>yl,LEGACY_PLUGINS:()=>j1,LOCKFILE_VERSION:()=>Tk,LegacyMigrationResolver:()=>tE,LightReport:()=>pA,LinkType:()=>$m,LockfileResolver:()=>rE,Manifest:()=>_t,MessageName:()=>vr,MultiFetcher:()=>py,PackageExtensionStatus:()=>sO,PackageExtensionType:()=>iO,PeerWarningType:()=>Nk,Project:()=>Qt,Report:()=>Ws,ReportError:()=>Jt,SettingsType:()=>G1,StreamReport:()=>Nt,TAG_REGEXP:()=>xy,TelemetryManager:()=>sE,ThrowReport:()=>Ri,VirtualFetcher:()=>hy,WindowsLinkType:()=>lx,Workspace:()=>iE,WorkspaceFetcher:()=>gy,WorkspaceResolver:()=>ci,YarnVersion:()=>nn,execUtils:()=>Hr,folderUtils:()=>vb,formatUtils:()=>pe,hashUtils:()=>xn,httpUtils:()=>on,miscUtils:()=>qe,nodeUtils:()=>Xi,parseMessageName:()=>qP,reportOptionDeprecations:()=>Qy,scriptUtils:()=>hn,semverUtils:()=>Ur,stringifyMessageName:()=>Ju,structUtils:()=>G,tgzUtils:()=>$i,treeUtils:()=>As});var Ke=It(()=>{ix();Db();Wl();ah();tx();Gl();nx();a3();xf();Io();_pe();Kpe();V8();W1();W1();Jpe();J8();zpe();z8();Ay();jP();YM();Uhe();Vl();n2();_he();u_();VM();JM();Dg();A_();r2();iie()});var Yhe=_((x8t,b2)=>{"use strict";var bAt=process.env.TERM_PROGRAM==="Hyper",xAt=process.platform==="win32",jhe=process.platform==="linux",d_={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},Ghe=Object.assign({},d_,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),Whe=Object.assign({},d_,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:jhe?"\u25B8":"\u276F",pointerSmall:jhe?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});b2.exports=xAt&&!bAt?Ghe:Whe;Reflect.defineProperty(b2.exports,"common",{enumerable:!1,value:d_});Reflect.defineProperty(b2.exports,"windows",{enumerable:!1,value:Ghe});Reflect.defineProperty(b2.exports,"other",{enumerable:!1,value:Whe})});var eu=_((k8t,m_)=>{"use strict";var kAt=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),QAt=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,Khe=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=n=>{let u=n.open=`\x1B[${n.codes[0]}m`,A=n.close=`\x1B[${n.codes[1]}m`,p=n.regex=new RegExp(`\\u001b\\[${n.codes[1]}m`,"g");return n.wrap=(h,E)=>{h.includes(A)&&(h=h.replace(p,A+u));let w=u+h+A;return E?w.replace(/\r*\n/g,`${A}$&${u}`):w},n},r=(n,u,A)=>typeof n=="function"?n(u):n.wrap(u,A),o=(n,u)=>{if(n===""||n==null)return"";if(t.enabled===!1)return n;if(t.visible===!1)return"";let A=""+n,p=A.includes(` +`),h=u.length;for(h>0&&u.includes("unstyle")&&(u=[...new Set(["unstyle",...u])].reverse());h-- >0;)A=r(t.styles[u[h]],A,p);return A},a=(n,u,A)=>{t.styles[n]=e({name:n,codes:u}),(t.keys[A]||(t.keys[A]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=E=>o(E,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=QAt,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,u)=>{let A=typeof u=="string"?t[u]:u;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:n}),t.styles[n]=A,A.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>o(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(A.stack):A.stack,p}})},t.theme=n=>{if(!kAt(n))throw new TypeError("Expected theme to be an object");for(let u of Object.keys(n))t.alias(u,n[u]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=Yhe(),t.define=a,t};m_.exports=Khe();m_.exports.create=Khe});var bo=_(an=>{"use strict";var FAt=Object.prototype.toString,ic=eu(),Vhe=!1,y_=[],Jhe={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};an.longest=(t,e)=>t.reduce((r,o)=>Math.max(r,e?o[e].length:o.length),0);an.hasColor=t=>!!t&&ic.hasColor(t);var Ok=an.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);an.nativeType=t=>FAt.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");an.isAsyncFn=t=>an.nativeType(t)==="asyncfunction";an.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";an.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;an.scrollDown=(t=[])=>[...t.slice(1),t[0]];an.scrollUp=(t=[])=>[t.pop(),...t];an.reorder=(t=[])=>{let e=t.slice();return e.sort((r,o)=>r.index>o.index?1:r.index{let o=t.length,a=r===o?0:r<0?o-1:r,n=t[e];t[e]=t[a],t[a]=n};an.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};an.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};an.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:o=` +`+r,width:a=80}=e,n=(o+r).match(/[^\S\n]/g)||[];a-=n.length;let u=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=t.trim(),p=new RegExp(u,"g"),h=A.match(p)||[];return h=h.map(E=>E.replace(/\n$/,"")),e.padEnd&&(h=h.map(E=>E.padEnd(a," "))),e.padStart&&(h=h.map(E=>E.padStart(a," "))),r+h.join(o)};an.unmute=t=>{let e=t.stack.find(o=>ic.keys.color.includes(o));return e?ic[e]:t.stack.find(o=>o.slice(2)==="bg")?ic[e.slice(2)]:o=>o};an.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";an.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>ic.keys.color.includes(o));if(e){let o=ic["bg"+an.pascal(e)];return o?o.black:t}let r=t.stack.find(o=>o.slice(0,2)==="bg");return r?ic[r.slice(2).toLowerCase()]||t:ic.none};an.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>ic.keys.color.includes(o)),r=t.stack.find(o=>o.slice(0,2)==="bg");if(e&&!r)return ic[Jhe[e]||e];if(r){let o=r.slice(2).toLowerCase(),a=Jhe[o];return a&&ic["bg"+an.pascal(a)]||t}return ic.none};an.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),o=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+o};an.set=(t={},e="",r)=>e.split(".").reduce((o,a,n,u)=>{let A=u.length-1>n?o[a]||{}:r;return!an.isObject(A)&&n{let o=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return o??r};an.mixin=(t,e)=>{if(!Ok(t))return e;if(!Ok(e))return t;for(let r of Object.keys(e)){let o=Object.getOwnPropertyDescriptor(e,r);if(o.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&Ok(o.value)){let a=Object.getOwnPropertyDescriptor(t,r);Ok(a.value)?t[r]=an.merge({},t[r],e[r]):Reflect.defineProperty(t,r,o)}else Reflect.defineProperty(t,r,o);else Reflect.defineProperty(t,r,o)}return t};an.merge=(...t)=>{let e={};for(let r of t)an.mixin(e,r);return e};an.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let o of Object.keys(r)){let a=r[o];typeof a=="function"?an.define(t,o,a.bind(e)):an.define(t,o,a)}};an.onExit=t=>{let e=(r,o)=>{Vhe||(Vhe=!0,y_.forEach(a=>a()),r===!0&&process.exit(128+o))};y_.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),y_.push(t)};an.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};an.defineExport=(t,e,r)=>{let o;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){o=a},get(){return o?o():r()}})}});var zhe=_(cE=>{"use strict";cE.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};cE.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};cE.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};cE.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};cE.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var $he=_((R8t,Zhe)=>{"use strict";var Xhe=ve("readline"),RAt=zhe(),TAt=/^(?:\x1b)([a-zA-Z0-9])$/,NAt=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,LAt={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function OAt(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function MAt(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var Mk=(t="",e={})=>{let r,o={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=o.sequence||""),o.sequence=o.sequence||t||o.name,t==="\r")o.raw=void 0,o.name="return";else if(t===` +`)o.name="enter";else if(t===" ")o.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")o.name="backspace",o.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")o.name="escape",o.meta=t.length===2;else if(t===" "||t==="\x1B ")o.name="space",o.meta=t.length===2;else if(t<="")o.name=String.fromCharCode(t.charCodeAt(0)+97-1),o.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")o.name="number";else if(t.length===1&&t>="a"&&t<="z")o.name=t;else if(t.length===1&&t>="A"&&t<="Z")o.name=t.toLowerCase(),o.shift=!0;else if(r=TAt.exec(t))o.meta=!0,o.shift=/^[A-Z]$/.test(r[1]);else if(r=NAt.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(o.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),u=(r[3]||r[5]||1)-1;o.ctrl=!!(u&4),o.meta=!!(u&10),o.shift=!!(u&1),o.code=n,o.name=LAt[n],o.shift=OAt(n)||o.shift,o.ctrl=MAt(n)||o.ctrl}return o};Mk.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let o=Xhe.createInterface({terminal:!0,input:r});Xhe.emitKeypressEvents(r,o);let a=(A,p)=>e(A,Mk(A,p),o),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),o.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),o.pause(),o.close()}};Mk.action=(t,e,r)=>{let o={...RAt,...r};return e.ctrl?(e.action=o.ctrl[e.name],e):e.option&&o.option?(e.action=o.option[e.name],e):e.shift?(e.action=o.shift[e.name],e):(e.action=o.keys[e.name],e)};Zhe.exports=Mk});var t0e=_((T8t,e0e)=>{"use strict";e0e.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(e)for(let r of Object.keys(e)){let o=e[r];typeof o=="number"&&(o={interval:o}),UAt(t,r,o)}};function UAt(t,e,r={}){let o=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;o.frames=r.frames||[],o.loading=!0;let n=setInterval(()=>{o.ms=Date.now()-o.start,o.tick++,t.render()},a);return o.stop=()=>{o.loading=!1,clearInterval(n)},Reflect.defineProperty(o,"interval",{value:n}),t.once("close",()=>o.stop()),o.stop}});var n0e=_((N8t,r0e)=>{"use strict";var{define:_At,width:HAt}=bo(),E_=class{constructor(e){let r=e.options;_At(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=HAt(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};r0e.exports=E_});var s0e=_((L8t,i0e)=>{"use strict";var C_=bo(),Ks=eu(),I_={default:Ks.noop,noop:Ks.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||C_.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||C_.complement(this.primary)},primary:Ks.cyan,success:Ks.green,danger:Ks.magenta,strong:Ks.bold,warning:Ks.yellow,muted:Ks.dim,disabled:Ks.gray,dark:Ks.dim.gray,underline:Ks.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};I_.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(Ks.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(Ks.visible=t.styles.visible);let e=C_.merge({},I_,t.styles);delete e.merge;for(let r of Object.keys(Ks))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Ks[r]});for(let r of Object.keys(Ks.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Ks[r]});return e};i0e.exports=I_});var a0e=_((O8t,o0e)=>{"use strict";var w_=process.platform==="win32",Yf=eu(),qAt=bo(),B_={...Yf.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Yf.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Yf.symbols.question,submitted:Yf.symbols.check,cancelled:Yf.symbols.cross},separator:{pending:Yf.symbols.pointerSmall,submitted:Yf.symbols.middot,cancelled:Yf.symbols.middot},radio:{off:w_?"( )":"\u25EF",on:w_?"(*)":"\u25C9",disabled:w_?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};B_.merge=t=>{let e=qAt.merge({},Yf.symbols,B_,t.symbols);return delete e.merge,e};o0e.exports=B_});var c0e=_((M8t,l0e)=>{"use strict";var jAt=s0e(),GAt=a0e(),WAt=bo();l0e.exports=t=>{t.options=WAt.merge({},t.options.theme,t.options),t.symbols=GAt.merge(t.options),t.styles=jAt.merge(t.options)}});var h0e=_((f0e,p0e)=>{"use strict";var u0e=process.env.TERM_PROGRAM==="Apple_Terminal",YAt=eu(),v_=bo(),tu=p0e.exports=f0e,Si="\x1B[",A0e="\x07",D_=!1,kh=tu.code={bell:A0e,beep:A0e,beginning:`${Si}G`,down:`${Si}J`,esc:Si,getPosition:`${Si}6n`,hide:`${Si}?25l`,line:`${Si}2K`,lineEnd:`${Si}K`,lineStart:`${Si}1K`,restorePosition:Si+(u0e?"8":"u"),savePosition:Si+(u0e?"7":"s"),screen:`${Si}2J`,show:`${Si}?25h`,up:`${Si}1J`},Yg=tu.cursor={get hidden(){return D_},hide(){return D_=!0,kh.hide},show(){return D_=!1,kh.show},forward:(t=1)=>`${Si}${t}C`,backward:(t=1)=>`${Si}${t}D`,nextLine:(t=1)=>`${Si}E`.repeat(t),prevLine:(t=1)=>`${Si}F`.repeat(t),up:(t=1)=>t?`${Si}${t}A`:"",down:(t=1)=>t?`${Si}${t}B`:"",right:(t=1)=>t?`${Si}${t}C`:"",left:(t=1)=>t?`${Si}${t}D`:"",to(t,e){return e?`${Si}${e+1};${t+1}H`:`${Si}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?Yg.left(-t):t>0?Yg.right(t):"",r+=e<0?Yg.up(-e):e>0?Yg.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:o,input:a,prompt:n,size:u,value:A}=t;if(o=v_.isPrimitive(o)?String(o):"",a=v_.isPrimitive(a)?String(a):"",A=v_.isPrimitive(A)?String(A):"",u){let p=tu.cursor.up(u)+tu.cursor.to(n.length),h=a.length-r;return h>0&&(p+=tu.cursor.left(h)),p}if(A||e){let p=!a&&o?-o.length:-a.length+r;return e&&(p-=e.length),a===""&&o&&!n.includes(o)&&(p+=o.length),tu.cursor.move(p)}}},P_=tu.erase={screen:kh.screen,up:kh.up,down:kh.down,line:kh.line,lineEnd:kh.lineEnd,lineStart:kh.lineStart,lines(t){let e="";for(let r=0;r{if(!e)return P_.line+Yg.to(0);let r=n=>[...YAt.unstyle(n)].length,o=t.split(/\r?\n/),a=0;for(let n of o)a+=1+Math.floor(Math.max(r(n)-1,0)/e);return(P_.line+Yg.prevLine()).repeat(a-1)+P_.line+Yg.to(0)}});var uE=_((U8t,d0e)=>{"use strict";var KAt=ve("events"),g0e=eu(),S_=$he(),VAt=t0e(),JAt=n0e(),zAt=c0e(),La=bo(),Kg=h0e(),b_=class t extends KAt{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,zAt(this),VAt(this),this.state=new JAt(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=ZAt(this.options.margin),this.setMaxListeners(0),XAt(this)}async keypress(e,r={}){this.keypressed=!0;let o=S_.action(e,S_(e,r),this.options.actions);this.state.keypress=o,this.emit("keypress",e,o),this.emit("state",this.state.clone());let a=this.options[o.action]||this[o.action]||this.dispatch;if(typeof a=="function")return await a.call(this,e,o);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Kg.code.beep)}cursorHide(){this.stdout.write(Kg.cursor.hide()),La.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Kg.cursor.show())}write(e){e&&(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Kg.cursor.down(e)+Kg.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:o}=this.sections(),{cursor:a,initial:n="",input:u="",value:A=""}=this,p=this.state.size=o.length,h={after:r,cursor:a,initial:n,input:u,prompt:e,size:p,value:A},E=Kg.cursor.restore(h);E&&this.stdout.write(E)}sections(){let{buffer:e,input:r,prompt:o}=this.state;o=g0e.unstyle(o);let a=g0e.unstyle(e),n=a.indexOf(o),u=a.slice(0,n),p=a.slice(n).split(` +`),h=p[0],E=p[p.length-1],D=(o+(r?" "+r:"")).length,x=De.call(this,this.value),this.result=()=>o.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,o){let{options:a,state:n,symbols:u,timers:A}=this,p=A&&A[e];n.timer=p;let h=a[e]||n[e]||u[e],E=r&&r[e]!=null?r[e]:await h;if(E==="")return E;let w=await this.resolve(E,n,r,o);return!w&&r&&r[e]?this.resolve(h,n,r,o):w}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,o=this.state;return o.timer=r,La.isObject(e)&&(e=e[o.status]||e.pending),La.hasColor(e)?e:(this.styles[o.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return La.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,o=this.state;o.timer=r;let a=e[o.status]||e.pending||o.separator,n=await this.resolve(a,o);return La.isObject(n)&&(n=n[o.status]||n.pending),La.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let o=await this.element("pointer",e,r);if(typeof o=="string"&&La.hasColor(o))return o;if(o){let a=this.styles,n=this.index===r,u=n?a.primary:h=>h,A=await this.resolve(o[n?"on":"off"]||o,this.state),p=La.hasColor(A)?A:u(A);return n?p:" ".repeat(A.length)}}async indicator(e,r){let o=await this.element("indicator",e,r);if(typeof o=="string"&&La.hasColor(o))return o;if(o){let a=this.styles,n=e.enabled===!0,u=n?a.success:a.dark,A=o[n?"on":"off"]||o;return La.hasColor(A)?A:u(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return La.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return La.resolve(this,e,...r)}get base(){return t.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||La.height(this.stdout,25)}get width(){return this.options.columns||La.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,o=[r,e].find(this.isValue.bind(this));return this.isValue(o)?o:this.initial}static get prompt(){return e=>new this(e).run()}};function XAt(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],o=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?o.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function ZAt(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?` +`:" ",o=[];for(let a=0;a<4;a++){let n=r(a);e[a]?o.push(n.repeat(e[a])):o.push("")}return o}d0e.exports=b_});var E0e=_((_8t,y0e)=>{"use strict";var $At=bo(),m0e={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return m0e.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};y0e.exports=(t,e={})=>{let r=$At.merge({},m0e,e.roles);return r[t]||r.default}});var x2=_((H8t,w0e)=>{"use strict";var eft=eu(),tft=uE(),rft=E0e(),Uk=bo(),{reorder:x_,scrollUp:nft,scrollDown:ift,isObject:C0e,swap:sft}=Uk,k_=class extends tft{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:o,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");C0e(r)&&(r=Object.keys(r)),Array.isArray(r)?(o!=null&&(this.index=this.findIndex(o)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(o!=null&&(r=o),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let o=[],a=0,n=async(u,A)=>{typeof u=="function"&&(u=await u.call(this)),u instanceof Promise&&(u=await u);for(let p=0;p(this.state.loadingChoices=!1,u))}async toChoice(e,r,o){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=rft(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,Uk.define(e,"parent",o),e.level=o?o.level+1:1,e.indent==null&&(e.indent=o?o.indent+" ":e.indent||""),e.path=o?o.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,eft.unstyle(e.message).length));let u={...e};return e.reset=(A=u.input,p=u.value)=>{for(let h of Object.keys(u))e[h]=u[h];e.input=A,e.value=p},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,o){let a=await this.toChoice(e,r,o);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,o){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,o);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(a=>this.toggle(a,r));let o=e.parent;for(;o;){let a=o.choices.filter(n=>this.isDisabled(n));o.enabled=a.every(n=>n.enabled===!0),o=o.parent}return I0e(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=o=>{let a=Number(o);if(a>this.choices.length-1)return this.alert();let n=this.focused,u=this.choices.find(A=>a===A.index);if(!u.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(u)===-1){let A=x_(this.choices),p=A.indexOf(u);if(n.index>p){let h=A.slice(p,p+this.limit),E=A.filter(w=>!h.includes(w));this.choices=h.concat(E)}else{let h=p-this.limit+1;this.choices=A.slice(h).concat(A.slice(0,h))}}return this.index=this.choices.indexOf(u),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(o=>{let a=this.choices.length,n=this.num,u=(A=!1,p)=>{clearTimeout(this.numberTimeout),A&&(p=r(n)),this.num="",o(p)};if(n==="0"||n.length===1&&+(n+"0")>a)return u(!0);if(Number(n)>a)return u(!1,this.alert());this.numberTimeout=setTimeout(()=>u(!0),this.delay)})}home(){return this.choices=x_(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=x_(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===0?this.alert():e>r&&o===0?this.scrollUp():(this.index=(o-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===r-1?this.alert():e>r&&o===r-1?this.scrollDown():(this.index=(o+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=nft(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=ift(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){sft(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(o=>e[o]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(o=>!this.isDisabled(o));return e.enabled&&r.every(o=>this.isEnabled(o))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((o,a)=>(o[a]=this.find(a,r),o),{})}filter(e,r){let a=typeof e=="function"?e:(A,p)=>[A.name,p].includes(e),u=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?u.map(A=>A[r]):u}find(e,r){if(C0e(e))return r?e[r]:e;let a=typeof e=="function"?e:(u,A)=>[u.name,A].includes(e),n=this.choices.find(a);if(n)return r?n[r]:n}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(u=>u.newChoice))return this.alert();let{reorder:r,sort:o}=this.options,a=this.multiple===!0,n=this.selected;return n===void 0?this.alert():(Array.isArray(n)&&r!==!1&&o!==!0&&(n=Uk.reorder(n)),this.value=a?n.map(u=>u.name):n.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(o=>o.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let o=this.find(r);o&&(this.initial=o.index,this.focus(o,!0))}}}get choices(){return I0e(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:o}=this,a=e.limit||this._limit||r.limit||o.length;return Math.min(a,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function I0e(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(Uk.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let o=r.choices.filter(a=>!t.isDisabled(a));r.enabled=o.every(a=>a.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}w0e.exports=k_});var Qh=_((q8t,B0e)=>{"use strict";var oft=x2(),Q_=bo(),F_=class extends oft{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let o=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!Q_.hasColor(o)&&(o=this.styles.strong(o)),this.resolve(o,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await this.indicator(e,r)+(e.pad||""),u=await this.resolve(e.hint,this.state,e,r);u&&!Q_.hasColor(u)&&(u=this.styles.muted(u));let A=this.indent(e),p=await this.choiceMessage(e,r),h=()=>[this.margin[3],A+a+n,p,this.margin[1],u].filter(Boolean).join(" ");return e.role==="heading"?h():e.disabled?(Q_.hasColor(p)||(p=this.styles.disabled(p)),h()):(o&&(p=this.styles.em(p)),h())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(n,u)=>await this.renderChoice(n,u)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let o=this.margin[0]+r.join(` +`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,o].filter(Boolean).join(` +`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,o="",a=await this.header(),n=await this.prefix(),u=await this.separator(),A=await this.message();this.options.promptLine!==!1&&(o=[n,A,u,""].join(" "),this.state.prompt=o);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),w=await this.footer();p&&(o+=p),h&&!o.includes(h)&&(o+=" "+h),e&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,o,E,w].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};B0e.exports=F_});var D0e=_((j8t,v0e)=>{"use strict";var aft=Qh(),lft=(t,e)=>{let r=t.toLowerCase();return o=>{let n=o.toLowerCase().indexOf(r),u=e(o.slice(n,n+r.length));return n>=0?o.slice(0,n)+u+o.slice(n+r.length):o}},R_=class extends aft{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:o}=this.state;return this.input=o.slice(0,r)+e+o.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let o=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(o))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=lft(this.input,e),o=this.choices;this.choices=o.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=o}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};v0e.exports=R_});var N_=_((G8t,P0e)=>{"use strict";var T_=bo();P0e.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:o="",pos:a,showCursor:n=!0,color:u}=e,A=u||t.styles.placeholder,p=T_.inverse(t.styles.primary),h=T=>p(t.styles.black(T)),E=r,w=" ",D=h(w);if(t.blink&&t.blink.off===!0&&(h=T=>T,D=""),n&&a===0&&o===""&&r==="")return h(w);if(n&&a===0&&(r===o||r===""))return h(o[0])+A(o.slice(1));o=T_.isPrimitive(o)?`${o}`:"",r=T_.isPrimitive(r)?`${r}`:"";let x=o&&o.startsWith(r)&&o!==r,C=x?h(o[r.length]):D;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),C=""),n===!1&&(C=""),x){let T=t.styles.unstyle(E+C);return E+C+A(o.slice(T.length))}return E+C}});var _k=_((W8t,S0e)=>{"use strict";var cft=eu(),uft=Qh(),Aft=N_(),L_=class extends uft{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:o,input:a}=r;return r.value=r.input=a.slice(0,o)+e+a.slice(o),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:o}=e;return e.value=e.input=o.slice(0,r-1)+o.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:o}=e;if(o[r]===void 0)return this.alert();let a=`${o}`.slice(0,r)+`${o}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:o}=e;return r&&r.startsWith(o)&&o!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let o=await this.resolve(e.separator,this.state,e,r)||":";return o?" "+this.styles.disabled(o):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:o,styles:a}=this,{cursor:n,initial:u="",name:A,hint:p,input:h=""}=e,{muted:E,submitted:w,primary:D,danger:x}=a,C=p,T=this.index===r,L=e.validate||(()=>!0),U=await this.choiceSeparator(e,r),J=e.message;this.align==="right"&&(J=J.padStart(this.longest+1," ")),this.align==="left"&&(J=J.padEnd(this.longest+1," "));let te=this.values[A]=h||u,le=h?"success":"dark";await L.call(e,te,this.state)!==!0&&(le="danger");let ce=a[le],ue=ce(await this.indicator(e,r))+(e.pad||""),Ie=this.indent(e),he=()=>[Ie,ue,J+U,h,C].filter(Boolean).join(" ");if(o.submitted)return J=cft.unstyle(J),h=w(h),C="",he();if(e.format)h=await e.format.call(this,h,e,r);else{let De=this.styles.muted;h=Aft(this,{input:h,initial:u,pos:n,showCursor:T,color:De})}return this.isValue(h)||(h=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[A]=await e.result.call(this,te,e,r)),T&&(J=D(J)),e.error?h+=(h?" ":"")+x(e.error.trim()):e.hint&&(h+=(h?" ":"")+E(e.hint.trim())),he()}async submit(){return this.value=this.values,super.base.submit.call(this)}};S0e.exports=L_});var O_=_((Y8t,x0e)=>{"use strict";var fft=_k(),pft=()=>{throw new Error("expected prompt to have a custom authenticate method")},b0e=(t=pft)=>{class e extends fft{constructor(o){super(o)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(o){return b0e(o)}}return e};x0e.exports=b0e()});var F0e=_((K8t,Q0e)=>{"use strict";var hft=O_();function gft(t,e){return t.username===this.options.username&&t.password===this.options.password}var k0e=(t=gft)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(o){return this.options.showPassword?o:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(o.length))}}];class r extends hft.create(t){constructor(a){super({...a,choices:e})}static create(a){return k0e(a)}}return r};Q0e.exports=k0e()});var Hk=_((V8t,R0e)=>{"use strict";var dft=uE(),{isPrimitive:mft,hasColor:yft}=bo(),M_=class extends dft{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:o}=this;return o.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return mft(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return yft(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=this.styles.muted(this.default),A=[o,n,u,a].filter(Boolean).join(" ");this.state.prompt=A;let p=await this.header(),h=this.value=this.cast(e),E=await this.format(h),w=await this.error()||await this.hint(),D=await this.footer();w&&!A.includes(w)&&(E+=" "+w),A+=" "+E,this.clear(r),this.write([p,A,D].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};R0e.exports=M_});var N0e=_((J8t,T0e)=>{"use strict";var Eft=Hk(),U_=class extends Eft{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};T0e.exports=U_});var O0e=_((z8t,L0e)=>{"use strict";var Cft=Qh(),Ift=_k(),AE=Ift.prototype,__=class extends Cft{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let o=this.focused,a=o.parent||{};return!o.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():AE.dispatch.call(this,e,r)}append(e,r){return AE.append.call(this,e,r)}delete(e,r){return AE.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?AE.next.call(this):super.next()}prev(){return this.focused.editable?AE.prev.call(this):super.prev()}async indicator(e,r){let o=e.indicator||"",a=e.editable?o:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?AE.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let o=r.parent?this.value[r.parent.name]:this.value;if(r.editable?o=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(o=r.enabled===!0),e=await r.validate(o,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};L0e.exports=__});var Vg=_((X8t,M0e)=>{"use strict";var wft=uE(),Bft=N_(),{isPrimitive:vft}=bo(),H_=class extends wft{constructor(e){super(e),this.initial=vft(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let o=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!o||o.name!=="return")?this.append(` +`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:o}=this.state;this.input=`${o}`.slice(0,r)+e+`${o}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),o=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=o,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):Bft(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),o=await this.separator(),a=await this.message(),n=[r,a,o].filter(Boolean).join(" ");this.state.prompt=n;let u=await this.header(),A=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!A.includes(p)&&(A+=" "+p),n+=" "+A,this.clear(e),this.write([u,n,h].filter(Boolean).join(` +`)),this.restore()}};M0e.exports=H_});var _0e=_((Z8t,U0e)=>{"use strict";var Dft=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),qk=t=>Dft(t).filter(Boolean);U0e.exports=(t,e={},r="")=>{let{past:o=[],present:a=""}=e,n,u;switch(t){case"prev":case"undo":return n=o.slice(0,o.length-1),u=o[o.length-1]||"",{past:qk([r,...n]),present:u};case"next":case"redo":return n=o.slice(1),u=o[0]||"",{past:qk([...n,r]),present:u};case"save":return{past:qk([...o,r]),present:""};case"remove":return u=qk(o.filter(A=>A!==r)),a="",u.length&&(a=u.pop()),{past:u,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var j_=_(($8t,q0e)=>{"use strict";var Pft=Vg(),H0e=_0e(),q_=class extends Pft{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let o=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:o},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=H0e(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=H0e("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};q0e.exports=q_});var G0e=_((e_t,j0e)=>{"use strict";var Sft=Vg(),G_=class extends Sft{format(){return""}};j0e.exports=G_});var Y0e=_((t_t,W0e)=>{"use strict";var bft=Vg(),W_=class extends bft{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};W0e.exports=W_});var V0e=_((r_t,K0e)=>{"use strict";var xft=Qh(),Y_=class extends xft{constructor(e){super({...e,multiple:!0})}};K0e.exports=Y_});var V_=_((n_t,J0e)=>{"use strict";var kft=Vg(),K_=class extends kft{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,o=this.toNumber(this.input);return o>this.max+r?this.alert():(this.input=`${o+r}`,this.render())}down(e){let r=e||this.minor,o=this.toNumber(this.input);return othis.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};J0e.exports=K_});var X0e=_((i_t,z0e)=>{z0e.exports=V_()});var $0e=_((s_t,Z0e)=>{"use strict";var Qft=Vg(),J_=class extends Qft{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Z0e.exports=J_});var rge=_((o_t,tge)=>{"use strict";var Fft=eu(),Rft=x2(),ege=bo(),z_=class extends Rft{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` + `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((o,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let o=0;o=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(o=>` ${o.name} - ${o.message}`)].map(o=>this.styles.muted(o)).join(` +`)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let o=this.scaleLength-r.join("").length,a=Math.round(o/(r.length-1)),u=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+u}scaleIndicator(e,r,o){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,o);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let o=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return o.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!ege.hasColor(n)&&(n=this.styles.muted(n));let u=C=>this.margin[3]+C.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),E=await this.renderScale(e,r),w=this.margin[1]+this.margin[3];this.scaleLength=Fft.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-w.length);let x=ege.wordWrap(h,{width:this.widths[0],newline:A}).split(` +`).map(C=>u(C)+this.margin[1]);return o&&(E=this.styles.info(E),x=x.map(C=>this.styles.info(C))),x[0]+=E,this.linebreak&&x.push(""),[p+a,x.join(` +`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),o=await this.renderScaleHeading();return this.margin[0]+[o,...r.map(a=>a.join(" "))].join(` +`)}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u="";this.options.promptLine!==!1&&(u=[o,n,a,""].join(" "),this.state.prompt=u);let A=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),w=await this.renderChoices(),D=await this.footer(),x=this.emptyError;p&&(u+=p),E&&!u.includes(E)&&(u+=" "+E),e&&!p&&!w.trim()&&this.multiple&&x!=null&&(u+=this.styles.danger(x)),this.clear(r),this.write([A,u,h,w,D].filter(Boolean).join(` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};tge.exports=z_});var sge=_((a_t,ige)=>{"use strict";var nge=eu(),Tft=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",Z_=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=Tft(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Nft=async(t={},e={},r=o=>o)=>{let o=new Set,a=t.fields||[],n=t.template,u=[],A=[],p=[],h=1;typeof n=="function"&&(n=await n());let E=-1,w=()=>n[++E],D=()=>n[E+1],x=C=>{C.line=h,u.push(C)};for(x({type:"bos",value:""});Ele.name===U.key);U.field=a.find(le=>le.name===U.key),te||(te=new Z_(U),A.push(te)),te.lines.push(U.line-1);continue}let T=u[u.length-1];T.type==="text"&&T.line===h?T.value+=C:x({type:"text",value:C})}return x({type:"eos",value:""}),{input:n,tabstops:u,unique:o,keys:p,items:A}};ige.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),o={...e.values,...e.initial},{tabstops:a,items:n,keys:u}=await Nft(e,o),A=X_("result",t,e),p=X_("format",t,e),h=X_("validate",t,e,!0),E=t.isValue.bind(t);return async(w={},D=!1)=>{let x=0;w.required=r,w.items=n,w.keys=u,w.output="";let C=async(J,te,le,ce)=>{let ue=await h(J,te,le,ce);return ue===!1?"Invalid field "+le.name:ue};for(let J of a){let te=J.value,le=J.key;if(J.type!=="template"){te&&(w.output+=te);continue}if(J.type==="template"){let ce=n.find(Ee=>Ee.name===le);e.required===!0&&w.required.add(ce.name);let ue=[ce.input,w.values[ce.value],ce.value,te].find(E),he=(ce.field||{}).message||J.inner;if(D){let Ee=await C(w.values[le],w,ce,x);if(Ee&&typeof Ee=="string"||Ee===!1){w.invalid.set(le,Ee);continue}w.invalid.delete(le);let g=await A(w.values[le],w,ce,x);w.output+=nge.unstyle(g);continue}ce.placeholder=!1;let De=te;te=await p(te,w,ce,x),ue!==te?(w.values[le]=ue,te=t.styles.typing(ue),w.missing.delete(he)):(w.values[le]=void 0,ue=`<${he}>`,te=t.styles.primary(ue),ce.placeholder=!0,w.required.has(le)&&w.missing.add(he)),w.missing.has(he)&&w.validating&&(te=t.styles.warning(ue)),w.invalid.has(le)&&w.validating&&(te=t.styles.danger(ue)),x===w.index&&(De!==te?te=t.styles.underline(te):te=t.styles.heading(nge.unstyle(te))),x++}te&&(w.output+=te)}let T=w.output.split(` +`).map(J=>" "+J),L=n.length,U=0;for(let J of n)w.invalid.has(J.name)&&J.lines.forEach(te=>{T[te][0]===" "&&(T[te]=w.styles.danger(w.symbols.bullet)+T[te].slice(1))}),t.isValue(w.values[J.name])&&U++;return w.completed=(U/L*100).toFixed(0),w.output=T.join(` +`),w.output}};function X_(t,e,r,o){return(a,n,u,A)=>typeof u.field[t]=="function"?u.field[t].call(e,a,n,u,A):[o,a].find(p=>e.isValue(p))}});var age=_((l_t,oge)=>{"use strict";var Lft=eu(),Oft=sge(),Mft=uE(),$_=class extends Mft{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Oft(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let o=this.getItem(),a=o.input.slice(0,this.cursor),n=o.input.slice(this.cursor);this.input=o.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),o=e.input.slice(0,this.cursor-1);this.input=e.input=`${o}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:o,size:a}=this.state,n=[this.options.newline,` +`].find(J=>J!=null),u=await this.prefix(),A=await this.separator(),p=await this.message(),h=[u,p,A].filter(Boolean).join(" ");this.state.prompt=h;let E=await this.header(),w=await this.error()||"",D=await this.hint()||"",x=o?"":await this.interpolate(this.state),C=this.state.key=r[e]||"",T=await this.format(C),L=await this.footer();T&&(h+=" "+T),D&&!T&&this.state.completed===0&&(h+=" "+D),this.clear(a);let U=[E,h,x,L,w.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:o,index:a}=this.state,n=r.find(u=>u.name===o[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:o,values:a}=this.state;if(e.size){let A="";for(let[p,h]of e)A+=`Invalid ${p}: ${h} +`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let u=Lft.unstyle(o).split(` +`).map(A=>A.slice(1)).join(` +`);return this.value={values:a,result:u},super.submit()}};oge.exports=$_});var cge=_((c_t,lge)=>{"use strict";var Uft="(Use + to sort)",_ft=Qh(),eH=class extends _ft{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,Uft].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let o=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+o:n+o}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};lge.exports=eH});var Age=_((u_t,uge)=>{"use strict";var Hft=x2(),tH=class extends Hft{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(o=>this.styles.muted(o)),this.state.header=r.join(` + `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let o of r)o.scale=qft(5,this.options),o.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],o=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!o,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=this.term==="Hyper",n=a?9:8,u=a?"":" ",A=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=te=>(te?this.styles.success("\u25C9"):"\u25EF")+u,E=r+1+".",w=o?this.styles.heading:this.styles.noop,D=await this.resolve(e.message,this.state,e,r),x=this.indent(e),C=x+e.scale.map((te,le)=>h(le===e.scaleIdx)).join(A),T=te=>te===e.scaleIdx?w(te):te,L=x+e.scale.map((te,le)=>T(le)).join(p),U=()=>[E,D].filter(Boolean).join(" "),J=()=>[U(),C,L," "].filter(Boolean).join(` +`);return o&&(C=this.styles.cyan(C),L=this.styles.cyan(L)),J()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(o,a)=>await this.renderChoice(o,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` +`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=[o,n,a].filter(Boolean).join(" ");this.state.prompt=u;let A=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),w=await this.footer();(p||!h)&&(u+=" "+p),h&&!u.includes(h)&&(u+=" "+h),e&&!p&&!E&&this.multiple&&this.type!=="form"&&(u+=this.styles.danger(this.emptyError)),this.clear(r),this.write([u,A,E,w].filter(Boolean).join(` +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function qft(t,e={}){if(Array.isArray(e.scale))return e.scale.map(o=>({...o}));let r=[];for(let o=1;o{fge.exports=j_()});var gge=_((f_t,hge)=>{"use strict";var jft=Hk(),rH=class extends jft{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=o=>this.styles.primary.underline(o);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),o=await this.prefix(),a=await this.separator(),n=await this.message(),u=await this.format(),A=await this.error()||await this.hint(),p=await this.footer(),h=[o,n,a,u].join(" ");this.state.prompt=h,A&&!h.includes(A)&&(h+=" "+A),this.clear(e),this.write([r,h,p].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};hge.exports=rH});var mge=_((p_t,dge)=>{"use strict";var Gft=Qh(),nH=class extends Gft{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let o=await super.toChoices(e,r);if(o.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>o.length)throw new Error("Please specify the index of the correct answer from the list of choices");return o}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};dge.exports=nH});var Ege=_(iH=>{"use strict";var yge=bo(),fs=(t,e)=>{yge.defineExport(iH,t,e),yge.defineExport(iH,t.toLowerCase(),e)};fs("AutoComplete",()=>D0e());fs("BasicAuth",()=>F0e());fs("Confirm",()=>N0e());fs("Editable",()=>O0e());fs("Form",()=>_k());fs("Input",()=>j_());fs("Invisible",()=>G0e());fs("List",()=>Y0e());fs("MultiSelect",()=>V0e());fs("Numeral",()=>X0e());fs("Password",()=>$0e());fs("Scale",()=>rge());fs("Select",()=>Qh());fs("Snippet",()=>age());fs("Sort",()=>cge());fs("Survey",()=>Age());fs("Text",()=>pge());fs("Toggle",()=>gge());fs("Quiz",()=>mge())});var Ige=_((g_t,Cge)=>{Cge.exports={ArrayPrompt:x2(),AuthPrompt:O_(),BooleanPrompt:Hk(),NumberPrompt:V_(),StringPrompt:Vg()}});var Q2=_((d_t,Bge)=>{"use strict";var wge=ve("assert"),oH=ve("events"),Fh=bo(),ru=class extends oH{constructor(e,r){super(),this.options=Fh.merge({},e),this.answers={...r}}register(e,r){if(Fh.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}wge.equal(typeof r,"function","expected a function");let o=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[o]=r:this.prompts[o]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(Fh.merge({},this.options,r))}catch(o){return Promise.reject(o)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=Fh.merge({},this.options,e),{type:o,name:a}=e,{set:n,get:u}=Fh;if(typeof o=="function"&&(o=await o.call(this,e,this.answers)),!o)return this.answers[a];wge(this.prompts[o],`Prompt "${o}" is not registered`);let A=new this.prompts[o](r),p=u(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",E=>{this.emit("answer",a,E,A),n(this.answers,a,E)});let h=A.emit.bind(A);return A.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit("prompt",A,this),r.autofill&&p!=null?(A.value=A.input=p,r.autofill==="show"&&await A.submit()):p=A.value=await A.run(),p}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||uE()}static get prompts(){return Ege()}static get types(){return Ige()}static get prompt(){let e=(r,...o)=>{let a=new this(...o),n=a.emit.bind(a);return a.emit=(...u)=>(e.emit(...u),n(...u)),a.prompt(r)};return Fh.mixinEmitter(e,new oH),e}};Fh.mixinEmitter(ru,new oH);var sH=ru.prompts;for(let t of Object.keys(sH)){let e=t.toLowerCase(),r=o=>new sH[t](o).run();ru.prompt[e]=r,ru[e]=r,ru[t]||Reflect.defineProperty(ru,t,{get:()=>sH[t]})}var k2=t=>{Fh.defineExport(ru,t,()=>ru.types[t])};k2("ArrayPrompt");k2("AuthPrompt");k2("BooleanPrompt");k2("NumberPrompt");k2("StringPrompt");Bge.exports=ru});var N2=_((Z_t,kge)=>{var zft=xk();function Xft(t,e,r){var o=t==null?void 0:zft(t,e);return o===void 0?r:o}kge.exports=Xft});var Rge=_((iHt,Fge)=>{function Zft(t,e){for(var r=-1,o=t==null?0:t.length;++r{var $ft=Eg(),ept=PS();function tpt(t,e){return t&&$ft(e,ept(e),t)}Tge.exports=tpt});var Oge=_((oHt,Lge)=>{var rpt=Eg(),npt=Vm();function ipt(t,e){return t&&rpt(e,npt(e),t)}Lge.exports=ipt});var Uge=_((aHt,Mge)=>{var spt=Eg(),opt=CS();function apt(t,e){return spt(t,opt(t),e)}Mge.exports=apt});var fH=_((lHt,_ge)=>{var lpt=ES(),cpt=QS(),upt=CS(),Apt=bL(),fpt=Object.getOwnPropertySymbols,ppt=fpt?function(t){for(var e=[];t;)lpt(e,upt(t)),t=cpt(t);return e}:Apt;_ge.exports=ppt});var qge=_((cHt,Hge)=>{var hpt=Eg(),gpt=fH();function dpt(t,e){return hpt(t,gpt(t),e)}Hge.exports=dpt});var pH=_((uHt,jge)=>{var mpt=SL(),ypt=fH(),Ept=Vm();function Cpt(t){return mpt(t,Ept,ypt)}jge.exports=Cpt});var Wge=_((AHt,Gge)=>{var Ipt=Object.prototype,wpt=Ipt.hasOwnProperty;function Bpt(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&wpt.call(t,"index")&&(r.index=t.index,r.input=t.input),r}Gge.exports=Bpt});var Kge=_((fHt,Yge)=>{var vpt=xS();function Dpt(t,e){var r=e?vpt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}Yge.exports=Dpt});var Jge=_((pHt,Vge)=>{var Ppt=/\w*$/;function Spt(t){var e=new t.constructor(t.source,Ppt.exec(t));return e.lastIndex=t.lastIndex,e}Vge.exports=Spt});var ede=_((hHt,$ge)=>{var zge=dg(),Xge=zge?zge.prototype:void 0,Zge=Xge?Xge.valueOf:void 0;function bpt(t){return Zge?Object(Zge.call(t)):{}}$ge.exports=bpt});var rde=_((gHt,tde)=>{var xpt=xS(),kpt=Kge(),Qpt=Jge(),Fpt=ede(),Rpt=qL(),Tpt="[object Boolean]",Npt="[object Date]",Lpt="[object Map]",Opt="[object Number]",Mpt="[object RegExp]",Upt="[object Set]",_pt="[object String]",Hpt="[object Symbol]",qpt="[object ArrayBuffer]",jpt="[object DataView]",Gpt="[object Float32Array]",Wpt="[object Float64Array]",Ypt="[object Int8Array]",Kpt="[object Int16Array]",Vpt="[object Int32Array]",Jpt="[object Uint8Array]",zpt="[object Uint8ClampedArray]",Xpt="[object Uint16Array]",Zpt="[object Uint32Array]";function $pt(t,e,r){var o=t.constructor;switch(e){case qpt:return xpt(t);case Tpt:case Npt:return new o(+t);case jpt:return kpt(t,r);case Gpt:case Wpt:case Ypt:case Kpt:case Vpt:case Jpt:case zpt:case Xpt:case Zpt:return Rpt(t,r);case Lpt:return new o;case Opt:case _pt:return new o(t);case Mpt:return Qpt(t);case Upt:return new o;case Hpt:return Fpt(t)}}tde.exports=$pt});var ide=_((dHt,nde)=>{var eht=a1(),tht=Zu(),rht="[object Map]";function nht(t){return tht(t)&&eht(t)==rht}nde.exports=nht});var lde=_((mHt,ade)=>{var iht=ide(),sht=wS(),sde=BS(),ode=sde&&sde.isMap,oht=ode?sht(ode):iht;ade.exports=oht});var ude=_((yHt,cde)=>{var aht=a1(),lht=Zu(),cht="[object Set]";function uht(t){return lht(t)&&aht(t)==cht}cde.exports=uht});var hde=_((EHt,pde)=>{var Aht=ude(),fht=wS(),Ade=BS(),fde=Ade&&Ade.isSet,pht=fde?fht(fde):Aht;pde.exports=pht});var hH=_((CHt,yde)=>{var hht=mS(),ght=Rge(),dht=RS(),mht=Nge(),yht=Oge(),Eht=HL(),Cht=kS(),Iht=Uge(),wht=qge(),Bht=FL(),vht=pH(),Dht=a1(),Pht=Wge(),Sht=rde(),bht=jL(),xht=jl(),kht=r1(),Qht=lde(),Fht=cl(),Rht=hde(),Tht=PS(),Nht=Vm(),Lht=1,Oht=2,Mht=4,gde="[object Arguments]",Uht="[object Array]",_ht="[object Boolean]",Hht="[object Date]",qht="[object Error]",dde="[object Function]",jht="[object GeneratorFunction]",Ght="[object Map]",Wht="[object Number]",mde="[object Object]",Yht="[object RegExp]",Kht="[object Set]",Vht="[object String]",Jht="[object Symbol]",zht="[object WeakMap]",Xht="[object ArrayBuffer]",Zht="[object DataView]",$ht="[object Float32Array]",e0t="[object Float64Array]",t0t="[object Int8Array]",r0t="[object Int16Array]",n0t="[object Int32Array]",i0t="[object Uint8Array]",s0t="[object Uint8ClampedArray]",o0t="[object Uint16Array]",a0t="[object Uint32Array]",Ai={};Ai[gde]=Ai[Uht]=Ai[Xht]=Ai[Zht]=Ai[_ht]=Ai[Hht]=Ai[$ht]=Ai[e0t]=Ai[t0t]=Ai[r0t]=Ai[n0t]=Ai[Ght]=Ai[Wht]=Ai[mde]=Ai[Yht]=Ai[Kht]=Ai[Vht]=Ai[Jht]=Ai[i0t]=Ai[s0t]=Ai[o0t]=Ai[a0t]=!0;Ai[qht]=Ai[dde]=Ai[zht]=!1;function Gk(t,e,r,o,a,n){var u,A=e&Lht,p=e&Oht,h=e&Mht;if(r&&(u=a?r(t,o,a,n):r(t)),u!==void 0)return u;if(!Fht(t))return t;var E=xht(t);if(E){if(u=Pht(t),!A)return Cht(t,u)}else{var w=Dht(t),D=w==dde||w==jht;if(kht(t))return Eht(t,A);if(w==mde||w==gde||D&&!a){if(u=p||D?{}:bht(t),!A)return p?wht(t,yht(u,t)):Iht(t,mht(u,t))}else{if(!Ai[w])return a?t:{};u=Sht(t,w,A)}}n||(n=new hht);var x=n.get(t);if(x)return x;n.set(t,u),Rht(t)?t.forEach(function(L){u.add(Gk(L,e,r,L,t,n))}):Qht(t)&&t.forEach(function(L,U){u.set(U,Gk(L,e,r,U,t,n))});var C=h?p?vht:Bht:p?Nht:Tht,T=E?void 0:C(t);return ght(T||t,function(L,U){T&&(U=L,L=t[U]),dht(u,U,Gk(L,e,r,U,t,n))}),u}yde.exports=Gk});var gH=_((IHt,Ede)=>{var l0t=hH(),c0t=1,u0t=4;function A0t(t){return l0t(t,c0t|u0t)}Ede.exports=A0t});var dH=_((wHt,Cde)=>{var f0t=o_();function p0t(t,e,r){return t==null?t:f0t(t,e,r)}Cde.exports=p0t});var Dde=_((bHt,vde)=>{var h0t=Object.prototype,g0t=h0t.hasOwnProperty;function d0t(t,e){return t!=null&&g0t.call(t,e)}vde.exports=d0t});var Sde=_((xHt,Pde)=>{var m0t=Dde(),y0t=a_();function E0t(t,e){return t!=null&&y0t(t,e,m0t)}Pde.exports=E0t});var xde=_((kHt,bde)=>{function C0t(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}bde.exports=C0t});var Qde=_((QHt,kde)=>{var I0t=xk(),w0t=X4();function B0t(t,e){return e.length<2?t:I0t(t,w0t(e,0,-1))}kde.exports=B0t});var yH=_((FHt,Fde)=>{var v0t=Wg(),D0t=xde(),P0t=Qde(),S0t=nE();function b0t(t,e){return e=v0t(e,t),t=P0t(t,e),t==null||delete t[S0t(D0t(e))]}Fde.exports=b0t});var EH=_((RHt,Rde)=>{var x0t=yH();function k0t(t,e){return t==null?!0:x0t(t,e)}Rde.exports=k0t});var Mde=_((l6t,R0t)=>{R0t.exports={name:"@yarnpkg/cli",version:"4.6.0",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^4.0.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var bH=_((U5t,zde)=>{"use strict";zde.exports=function(e,r){r===!0&&(r=0);var o="";if(typeof e=="string")try{o=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(o=e.protocol);var a=o.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var Zde=_((_5t,Xde)=>{"use strict";var $0t=bH();function egt(t){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:t,query:{},parse_failed:!1};try{var r=new URL(t);e.protocols=$0t(r),e.protocol=e.protocols[0],e.port=r.port,e.resource=r.hostname,e.host=r.host,e.user=r.username||"",e.password=r.password||"",e.pathname=r.pathname,e.hash=r.hash.slice(1),e.search=r.search.slice(1),e.href=r.href,e.query=Object.fromEntries(r.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=t,e.query={},e.parse_failed=!0}return e}Xde.exports=egt});var tme=_((H5t,eme)=>{"use strict";var tgt=Zde();function rgt(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var ngt=rgt(tgt),igt="text/plain",sgt="us-ascii",$de=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),ogt=(t,{stripHash:e})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:o,data:a,hash:n}=r.groups,u=o.split(";");n=e?"":n;let A=!1;u[u.length-1]==="base64"&&(u.pop(),A=!0);let p=(u.shift()||"").toLowerCase(),E=[...u.map(w=>{let[D,x=""]=w.split("=").map(C=>C.trim());return D==="charset"&&(x=x.toLowerCase(),x===sgt)?"":`${D}${x?`=${x}`:""}`}).filter(Boolean)];return A&&E.push("base64"),(E.length>0||p&&p!==igt)&&E.unshift(p),`data:${E.join(";")},${A?a.trim():a}${n?`#${n}`:""}`};function agt(t,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},t=t.trim(),/^data:/i.test(t))return ogt(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash?a.hash="":e.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let u=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,p="";for(;;){let E=u.exec(a.pathname);if(!E)break;let w=E[0],D=E.index,x=a.pathname.slice(A,D);p+=x.replace(/\/{2,}/g,"/"),p+=w,A=D+w.length}let h=a.pathname.slice(A,a.pathname.length);p+=h.replace(/\/{2,}/g,"/"),a.pathname=p}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let u=a.pathname.split("/"),A=u[u.length-1];$de(A,e.removeDirectoryIndex)&&(u=u.slice(0,-1),a.pathname=u.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let u of[...a.searchParams.keys()])$de(u,e.removeQueryParameters)&&a.searchParams.delete(u);if(e.removeQueryParameters===!0&&(a.search=""),e.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let n=t;return t=a.toString(),!e.removeSingleSlash&&a.pathname==="/"&&!n.endsWith("/")&&a.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t}var xH=(t,e=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,o=n=>{let u=new Error(n);throw u.subject_url=t,u};(typeof t!="string"||!t.trim())&&o("Invalid url."),t.length>xH.MAX_INPUT_LENGTH&&o("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),t=agt(t,e));let a=ngt.default(t);if(a.parse_failed){let n=a.href.match(r);n?(a.protocols=["ssh"],a.protocol="ssh",a.resource=n[2],a.host=n[2],a.user=n[1],a.pathname=`/${n[3]}`,a.parse_failed=!1):o("URL parsing failed.")}return a};xH.MAX_INPUT_LENGTH=2048;eme.exports=xH});var ime=_((q5t,nme)=>{"use strict";var lgt=bH();function rme(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=lgt(t);if(t=t.substring(t.indexOf("://")+3),rme(e))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!t.match(r)&&t.indexOf("@"){"use strict";var cgt=tme(),sme=ime();function ugt(t){var e=cgt(t);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),sme(e.protocols)||e.protocols.length===0&&sme(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}ome.exports=ugt});var cme=_((G5t,lme)=>{"use strict";var Agt=ame();function kH(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(t)&&(t="https://github.com/"+t);var r=Agt(t),o=r.resource.split("."),a=null;switch(r.toString=function(L){return kH.stringify(this,L)},r.source=o.length>2?o.slice(1-o.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=o[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var n=a.length-1;if(a.length>=2){var u=a.indexOf("-",2),A=a.indexOf("blob",2),p=a.indexOf("tree",2),h=a.indexOf("commit",2),E=a.indexOf("src",2),w=a.indexOf("raw",2),D=a.indexOf("edit",2);n=u>0?u-1:A>0?A-1:p>0?p-1:h>0?h-1:E>0?E-1:w>0?w-1:D>0?D-1:n,r.owner=a.slice(0,n).join("/"),r.name=a[n],h&&(r.commit=a[n+2])}r.ref="",r.filepathtype="",r.filepath="";var x=a.length>n&&a[n+1]==="-"?n+1:n;a.length>x+2&&["raw","src","blob","tree","edit"].indexOf(a[x+1])>=0&&(r.filepathtype=a[x+1],r.ref=a[x+2],a.length>x+3&&(r.filepath=a.slice(x+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var C=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,T=C.exec(r.pathname);return T!=null&&(r.source="bitbucket-server",T[1]==="users"?r.owner="~"+T[2]:r.owner=T[2],r.organization=r.owner,r.name=T[3],a=T[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}kH.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",o=t.user||"git",a=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+o+"@"+t.resource+r+"/"+t.full_name+a:o+"@"+t.resource+":"+t.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+o+"@"+t.resource+r+"/"+t.full_name+a;case"http":case"https":var n=t.token?fgt(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+n+t.resource+r+"/"+pgt(t)+a;default:return t.href}};function fgt(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}function pgt(t){switch(t.source){case"bitbucket-server":return"scm/"+t.full_name;default:return""+t.full_name}}lme.exports=kH});var Dme=_((B9t,vme)=>{var vgt=Cx(),Dgt=kS(),Pgt=jl(),Sgt=fy(),bgt=s_(),xgt=nE(),kgt=t2();function Qgt(t){return Pgt(t)?vgt(t,xgt):Sgt(t)?[t]:Dgt(bgt(kgt(t)))}vme.exports=Qgt});function Ngt(t,e){return e===1&&Tgt.has(t[0])}function q2(t){let e=Array.isArray(t)?t:(0,bme.default)(t);return e.map((o,a)=>Fgt.test(o)?`[${o}]`:Rgt.test(o)&&!Ngt(e,a)?`.${o}`:`[${JSON.stringify(o)}]`).join("").replace(/^\./,"")}function Lgt(t,e){let r=[];if(e.methodName!==null&&r.push(pe.pretty(t,e.methodName,pe.Type.CODE)),e.file!==null){let o=[];o.push(pe.pretty(t,e.file,pe.Type.PATH)),e.line!==null&&(o.push(pe.pretty(t,e.line,pe.Type.NUMBER)),e.column!==null&&o.push(pe.pretty(t,e.column,pe.Type.NUMBER))),r.push(`(${o.join(pe.pretty(t,":","grey"))})`)}return r.join(" ")}function Vk(t,{manifestUpdates:e,reportedErrors:r},{fix:o}={}){let a=new Map,n=new Map,u=[...r.keys()].map(A=>[A,new Map]);for(let[A,p]of[...u,...e]){let h=r.get(A)?.map(x=>({text:x,fixable:!1}))??[],E=!1,w=t.getWorkspaceByCwd(A),D=w.manifest.exportTo({});for(let[x,C]of p){if(C.size>1){let T=[...C].map(([L,U])=>{let J=pe.pretty(t.configuration,L,pe.Type.INSPECT),te=U.size>0?Lgt(t.configuration,U.values().next().value):null;return te!==null?` +${J} at ${te}`:` +${J}`}).join("");h.push({text:`Conflict detected in constraint targeting ${pe.pretty(t.configuration,x,pe.Type.CODE)}; conflicting values are:${T}`,fixable:!1})}else{let[[T]]=C,L=(0,Pme.default)(D,x);if(JSON.stringify(L)===JSON.stringify(T))continue;if(!o){let U=typeof L>"u"?`Missing field ${pe.pretty(t.configuration,x,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,T,pe.Type.INSPECT)}`:typeof T>"u"?`Extraneous field ${pe.pretty(t.configuration,x,pe.Type.CODE)} currently set to ${pe.pretty(t.configuration,L,pe.Type.INSPECT)}`:`Invalid field ${pe.pretty(t.configuration,x,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,T,pe.Type.INSPECT)}, found ${pe.pretty(t.configuration,L,pe.Type.INSPECT)}`;h.push({text:U,fixable:!0});continue}typeof T>"u"?(0,xme.default)(D,x):(0,Sme.default)(D,x,T),E=!0}E&&a.set(w,D)}h.length>0&&n.set(w,h)}return{changedWorkspaces:a,remainingErrors:n}}function kme(t,{configuration:e}){let r={children:[]};for(let[o,a]of t){let n=[];for(let A of a){let p=A.text.split(/\n/);A.fixable&&(p[0]=`${pe.pretty(e,"\u2699","gray")} ${p[0]}`),n.push({value:pe.tuple(pe.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:pe.tuple(pe.Type.NO_HINT,h)}))})}let u={value:pe.tuple(pe.Type.LOCATOR,o.anchoredLocator),children:qe.sortMap(n,A=>A.value[1])};r.children.push(u)}return r.children=qe.sortMap(r.children,o=>o.value[1]),r}var Pme,Sme,bme,xme,ZE,Fgt,Rgt,Tgt,j2=It(()=>{Ke();Pme=et(N2()),Sme=et(dH()),bme=et(Dme()),xme=et(EH()),ZE=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let o=Object.hasOwn(e,r)?e[r]:void 0;if(typeof o>"u")continue;qe.getArrayWithDefault(this.indexes[r],o).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let o=[],a;for(let[u,A]of r){let p=u,h=Object.hasOwn(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){o.push([p,A]);continue}let E=new Set(h.get(A)??[]);if(E.size===0)return[];if(typeof a>"u")a=E;else for(let w of a)E.has(w)||a.delete(w);if(a.size===0)break}let n=[...a??[]];return o.length>0&&(n=n.filter(u=>{for(let[A,p]of o)if(!(typeof p<"u"?Object.hasOwn(u,A)&&u[A]===p:Object.hasOwn(u,A)===!1))return!1;return!0})),n}},Fgt=/^[0-9]+$/,Rgt=/^[a-zA-Z0-9_]+$/,Tgt=new Set(["scripts",..._t.allDependencies])});var Qme=_((N9t,GH)=>{var Ogt;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs")])]))],"maplist/5":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds")])]))],"maplist/6":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es")])]))],"maplist/7":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs")])]))],"maplist/8":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")]),new t.type.Term(".",[new t.type.Var("G"),new t.type.Var("Gs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F"),new t.type.Var("G")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs"),new t.type.Var("Gs")])]))],"include/3":[new t.type.Rule(new t.type.Term("include",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("include",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("A")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("A"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("F"),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("F")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("L"),new t.type.Var("S")])]),new t.type.Term("include",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("S")])])])])]))],"exclude/3":[new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("E")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("Q")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("R"),new t.type.Var("Q")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("!",[]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("E")])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("E")])])])])])])]))],"foldl/4":[new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Var("I"),new t.type.Var("I")]),null),new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("I"),new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("I"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])])])]),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P2"),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P2")]),new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("R")])])])])]))],"select/3":[new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Xs")]),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term("select",[new t.type.Var("E"),new t.type.Var("Xs"),new t.type.Var("Ys")]))],"sum_list/2":[new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term("[]",[]),new t.type.Num(0,!1)]),null),new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("sum_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("+",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"max_list/2":[new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("max_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"min_list/2":[new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("min_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("=<",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"prod_list/2":[new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term("[]",[]),new t.type.Num(1,!1)]),null),new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("prod_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("*",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"last/2":[new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")]),new t.type.Var("X")]),new t.type.Term("last",[new t.type.Var("Xs"),new t.type.Var("X")]))],"prefix/2":[new t.type.Rule(new t.type.Term("prefix",[new t.type.Var("Part"),new t.type.Var("Whole")]),new t.type.Term("append",[new t.type.Var("Part"),new t.type.Var("_"),new t.type.Var("Whole")]))],"nth0/3":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth1/3":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth0/4":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth1/4":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth/5":[new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("N"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("X"),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("O"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("Y"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term(",",[new t.type.Term("is",[new t.type.Var("M"),new t.type.Term("+",[new t.type.Var("N"),new t.type.Num(1,!1)])]),new t.type.Term("nth",[new t.type.Var("M"),new t.type.Var("O"),new t.type.Var("Xs"),new t.type.Var("Y"),new t.type.Var("Ys")])]))],"length/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(!t.type.is_variable(A)&&!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(t.type.is_integer(A)&&A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else{var p=new t.type.Term("length",[u,new t.type.Num(0,!1),A]);t.type.is_integer(A)&&(p=new t.type.Term(",",[p,new t.type.Term("!",[])])),o.prepend([new t.type.State(a.goal.replace(p),a.substitution,a)])}},"length/3":[new t.type.Rule(new t.type.Term("length",[new t.type.Term("[]",[]),new t.type.Var("N"),new t.type.Var("N")]),null),new t.type.Rule(new t.type.Term("length",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("X")]),new t.type.Var("A"),new t.type.Var("N")]),new t.type.Term(",",[new t.type.Term("succ",[new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("length",[new t.type.Var("X"),new t.type.Var("B"),new t.type.Var("N")])]))],"replicate/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=new t.type.Term("[]"),E=0;E0;w--)E[w].equals(E[w-1])&&E.splice(w,1);for(var D=new t.type.Term("[]"),w=E.length-1;w>=0;w--)D=new t.type.Term(".",[E[w],D]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[D,A])),a.substitution,a)])}}},"msort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h=u;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=p.sort(t.compare),w=new t.type.Term("[]"),D=E.length-1;D>=0;D--)w=new t.type.Term(".",[E[D],w]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,A])),a.substitution,a)])}}},"keysort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h,E=u;E.indicator==="./2";){if(h=E.args[0],t.type.is_variable(h)){o.throw_error(t.error.instantiation(n.indicator));return}else if(!t.type.is_term(h)||h.indicator!=="-/2"){o.throw_error(t.error.type("pair",h,n.indicator));return}h.args[0].pair=h.args[1],p.push(h.args[0]),E=E.args[1]}if(t.type.is_variable(E))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(E))o.throw_error(t.error.type("list",u,n.indicator));else{for(var w=p.sort(t.compare),D=new t.type.Term("[]"),x=w.length-1;x>=0;x--)D=new t.type.Term(".",[new t.type.Term("-",[w[x],w[x].pair]),D]),delete w[x].pair;o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[D,A])),a.substitution,a)])}}},"take/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],w=A;h>0&&w.indicator==="./2";)E.push(w.args[0]),w=w.args[1],h--;if(h===0){for(var D=new t.type.Term("[]"),h=E.length-1;h>=0;h--)D=new t.type.Term(".",[E[h],D]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[D,p])),a.substitution,a)])}}},"drop/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],w=A;h>0&&w.indicator==="./2";)E.push(w.args[0]),w=w.args[1],h--;h===0&&o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,p])),a.substitution,a)])}},"reverse/2":function(o,a,n){var u=n.args[0],A=n.args[1],p=t.type.is_instantiated_list(u),h=t.type.is_instantiated_list(A);if(t.type.is_variable(u)&&t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(u)&&!t.type.is_fully_list(u))o.throw_error(t.error.type("list",u,n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!p&&!h)o.throw_error(t.error.instantiation(n.indicator));else{for(var E=p?u:A,w=new t.type.Term("[]",[]);E.indicator==="./2";)w=new t.type.Term(".",[E.args[0],w]),E=E.args[1];o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,p?A:u])),a.substitution,a)])}},"list_to_set/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else{for(var p=u,h=[];p.indicator==="./2";)h.push(p.args[0]),p=p.args[1];if(t.type.is_variable(p))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_term(p)||p.indicator!=="[]/0")o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=[],w=new t.type.Term("[]",[]),D,x=0;x=0;x--)w=new t.type.Term(".",[E[x],w]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[A,w])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof GH<"u"?GH.exports=function(o){t=o,new t.type.Module("lists",e(),r)}:new t.type.Module("lists",e(),r)})(Ogt)});var Yme=_(Vr=>{"use strict";var Xg=process.platform==="win32",WH="aes-256-cbc",Mgt="sha256",Tme="The current environment doesn't support interactive reading from TTY.",Xn=ve("fs"),Fme=process.binding("tty_wrap").TTY,KH=ve("child_process"),Nh=ve("path"),VH={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},Kf="none",iu,eC,Rme=!1,Th,zk,YH,Ugt=0,$H="",zg=[],Xk,Nme=!1,JH=!1,G2=!1;function Lme(t){function e(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(o){return"#"+o.charCodeAt(0)+";"})}return zk.concat(function(r){var o=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?t[a]&&o.push("--"+a):r[a]==="string"&&t[a]&&o.push("--"+a,e(t[a]))}),o}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function _gt(t,e){function r(U){var J,te="",le;for(YH=YH||ve("os").tmpdir();;){J=Nh.join(YH,U+te);try{le=Xn.openSync(J,"wx")}catch(ce){if(ce.code==="EEXIST"){te++;continue}else throw ce}Xn.closeSync(le);break}return J}var o,a,n,u={},A,p,h=r("readline-sync.stdout"),E=r("readline-sync.stderr"),w=r("readline-sync.exit"),D=r("readline-sync.done"),x=ve("crypto"),C,T,L;C=x.createHash(Mgt),C.update(""+process.pid+Ugt+++Math.random()),L=C.digest("hex"),T=x.createDecipher(WH,L),o=Lme(t),Xg?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',n=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+Th+"%Q%"+o.map(function(U){return" %Q%"+U+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+w+"%Q%%Q%) 2>%Q%"+E+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+WH+"%Q% %Q%"+L+"%Q% >%Q%"+h+"%Q% & (echo 1)>%Q%"+D+"%Q%"]):(a="/bin/sh",n=["-c",'("'+Th+'"'+o.map(function(U){return" '"+U.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+w+'") 2>"'+E+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+WH+'" "'+L+'" >"'+h+'"; echo 1 >"'+D+'"']),G2&&G2("_execFileSync",o);try{KH.spawn(a,n,e)}catch(U){u.error=new Error(U.message),u.error.method="_execFileSync - spawn",u.error.program=a,u.error.args=n}for(;Xn.readFileSync(D,{encoding:t.encoding}).trim()!=="1";);return(A=Xn.readFileSync(w,{encoding:t.encoding}).trim())==="0"?u.input=T.update(Xn.readFileSync(h,{encoding:"binary"}),"hex",t.encoding)+T.final(t.encoding):(p=Xn.readFileSync(E,{encoding:t.encoding}).trim(),u.error=new Error(Tme+(p?` +`+p:"")),u.error.method="_execFileSync",u.error.program=a,u.error.args=n,u.error.extMessage=p,u.error.exitCode=+A),Xn.unlinkSync(h),Xn.unlinkSync(E),Xn.unlinkSync(w),Xn.unlinkSync(D),u}function Hgt(t){var e,r={},o,a={env:process.env,encoding:t.encoding};if(Th||(Xg?process.env.PSModulePath?(Th="powershell.exe",zk=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(Th="cscript.exe",zk=["//nologo",__dirname+"\\read.cs.js"]):(Th="/bin/sh",zk=[__dirname+"/read.sh"])),Xg&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),KH.execFileSync){e=Lme(t),G2&&G2("execFileSync",e);try{r.input=KH.execFileSync(Th,e,a)}catch(n){o=n.stderr?(n.stderr+"").trim():"",r.error=new Error(Tme+(o?` +`+o:"")),r.error.method="execFileSync",r.error.program=Th,r.error.args=e,r.error.extMessage=o,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=_gt(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function zH(t){var e="",r=t.display,o=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=Hgt(t);if(n.error)throw n.error;return n.input}return JH&&JH(t),function(){var n,u,A;function p(){return n||(n=process.binding("fs"),u=process.binding("constants")),n}if(typeof Kf=="string")if(Kf=null,Xg){if(A=function(h){var E=h.replace(/^\D+/,"").split("."),w=0;return(E[0]=+E[0])&&(w+=E[0]*1e4),(E[1]=+E[1])&&(w+=E[1]*100),(E[2]=+E[2])&&(w+=E[2]),w}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),Kf=process.stdin.fd,eC=process.stdin._handle;else try{Kf=p().open("CONIN$",u.O_RDWR,parseInt("0666",8)),eC=new Fme(Kf,!0)}catch{}if(process.stdout.isTTY)iu=process.stdout.fd;else{try{iu=Xn.openSync("\\\\.\\CON","w")}catch{}if(typeof iu!="number")try{iu=p().open("CONOUT$",u.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{Kf=Xn.openSync("/dev/tty","r"),eC=process.stdin._handle}catch{}}else try{Kf=Xn.openSync("/dev/tty","r"),eC=new Fme(Kf,!1)}catch{}if(process.stdout.isTTY)iu=process.stdout.fd;else try{iu=Xn.openSync("/dev/tty","w")}catch{}}}(),function(){var n,u,A=!t.hideEchoBack&&!t.keyIn,p,h,E,w,D;Xk="";function x(C){return C===Rme?!0:eC.setRawMode(C)!==0?!1:(Rme=C,!0)}if(Nme||!eC||typeof iu!="number"&&(t.display||!A)){e=a();return}if(t.display&&(Xn.writeSync(iu,t.display),t.display=""),!t.displayOnly){if(!x(!A)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(u=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){E=0;try{E=Xn.readSync(Kf,p,0,h)}catch(C){if(C.code!=="EOF"){x(!1),e+=a();return}}if(E>0?(w=p.toString(t.encoding,0,E),Xk+=w):(w=` +`,Xk+="\0"),w&&typeof(D=(w.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(w=D,n=!0),w&&(w=w.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),w&&u&&(w=w.replace(u,"")),w&&(A||(t.hideEchoBack?t.mask&&Xn.writeSync(iu,new Array(w.length+1).join(t.mask)):Xn.writeSync(iu,w)),e+=w),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!A&&!o&&Xn.writeSync(iu,` +`),x(!1)}}(),t.print&&!o&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+` +`),t.encoding),t.displayOnly?"":$H=t.keepWhitespace||t.keyIn?e:e.trim()}function qgt(t,e){var r=[];function o(a){a!=null&&(Array.isArray(a)?a.forEach(o):(!e||e(a))&&r.push(a))}return o(t),r}function e6(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function xs(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(VH),t.unshift(VH))),t.reduce(function(o,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var u;if(a.hasOwnProperty(n))switch(u=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":u=u!=null?u+"":"",u&&n!=="limitMessage"&&(u=u.replace(/[\r\n]/g,"")),o[n]=u;break;case"bufferSize":!isNaN(u=parseInt(u,10))&&typeof u=="number"&&(o[n]=u);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":o[n]=!!u;break;case"limit":case"trueValue":case"falseValue":o[n]=qgt(u,function(A){var p=typeof A;return p==="string"||p==="number"||p==="function"||A instanceof RegExp}).map(function(A){return typeof A=="string"?A.replace(/[\r\n]/g,""):A});break;case"print":case"phContent":case"preCheck":o[n]=typeof u=="function"?u:void 0;break;case"prompt":case"display":o[n]=u??"";break}})),o},{})}function XH(t,e,r){return e.some(function(o){var a=typeof o;return a==="string"?r?t===o:t.toLowerCase()===o.toLowerCase():a==="number"?parseFloat(t)===o:a==="function"?o(t):o instanceof RegExp?o.test(t):!1})}function t6(t,e){var r=Nh.normalize(Xg?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=Nh.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+e6(r)+"(?=\\/|\\\\|$)",Xg?"i":""),"~")}function tC(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",o=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(u,A,p,h,E,w){var D;return A||typeof(D=e(E))!="string"?p:D?(h||"")+D+(w||""):""}return t.replace(o,n).replace(a,n)}function Ome(t,e,r){var o,a=[],n=-1,u=0,A="",p;function h(E,w){return w.length>3?(E.push(w[0]+"..."+w[w.length-1]),p=!0):w.length&&(E=E.concat(w)),E}return o=t.reduce(function(E,w){return E.concat((w+"").split(""))},[]).reduce(function(E,w){var D,x;return e||(w=w.toLowerCase()),D=/^\d$/.test(w)?1:/^[A-Z]$/.test(w)?2:/^[a-z]$/.test(w)?3:0,r&&D===0?A+=w:(x=w.charCodeAt(0),D&&D===n&&x===u+1?a.push(w):(E=h(E,a),a=[w],n=D),u=x),E},[]),o=h(o,a),A&&(o.push(A),p=!0),{values:o,suppressed:p}}function Mme(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function Ume(t,e){var r,o,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":o=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=Ome(o,e.caseSensitive),o=a.values):o=o.filter(function(u){var A=typeof u;return A==="string"||A==="number"}),r=Mme(o,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=$H;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=Nh.basename(r):t==="cwdHome"&&(r=t6(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(u){return u.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=zg[zg.length-n]||"")}return r}function _me(t){var e=/^(.)-(.)$/.exec(t),r="",o,a,n,u;if(!e)return null;for(o=e[1].charCodeAt(0),a=e[2].charCodeAt(0),u=o +And the length must be: $`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(x){return x==="charlist"?r.text:x==="length"?o+"..."+a:null}}),u,A,p,h,E,w,D;for(e=e||{},u=tC(e.charlist?e.charlist+"":"$",_me),(isNaN(o=parseInt(e.min,10))||typeof o!="number")&&(o=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+e6(u)+"]{"+o+","+a+"}$"),r=Ome([u],n.caseSensitive,!0),r.text=Mme(r.values,r.suppressed),A=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",p=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),E=n.limitMessage;!D;)n.limit=h,n.limitMessage=E,w=Vr.question(t,n),n.limit=[w,""],n.limitMessage=p,D=Vr.question(A,n);return w};function jme(t,e,r){var o;function a(n){return o=r(n),!isNaN(o)&&typeof o=="number"}return Vr.question(t,xs({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),o}Vr.questionInt=function(t,e){return jme(t,e,function(r){return parseInt(r,10)})};Vr.questionFloat=function(t,e){return jme(t,e,parseFloat)};Vr.questionPath=function(t,e){var r,o="",a=xs({hideEchoBack:!1,limitMessage:`$Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var u,A,p;n=t6(n,!0),o="";function h(E){E.split(/\/|\\/).reduce(function(w,D){var x=Nh.resolve(w+=D+Nh.sep);if(!Xn.existsSync(x))Xn.mkdirSync(x);else if(!Xn.statSync(x).isDirectory())throw new Error("Non directory already exists: "+x);return w},"")}try{if(u=Xn.existsSync(n),r=u?Xn.realpathSync(n):Nh.resolve(n),!e.hasOwnProperty("exists")&&!u||typeof e.exists=="boolean"&&e.exists!==u)return o=(u?"Already exists":"No such file or directory")+": "+r,!1;if(!u&&e.create&&(e.isDirectory?h(r):(h(Nh.dirname(r)),Xn.closeSync(Xn.openSync(r,"w"))),r=Xn.realpathSync(r)),u&&(e.min||e.max||e.isFile||e.isDirectory)){if(A=Xn.statSync(r),e.isFile&&!A.isFile())return o="Not file: "+r,!1;if(e.isDirectory&&!A.isDirectory())return o="Not directory: "+r,!1;if(e.min&&A.size<+e.min||e.max&&A.size>+e.max)return o="Size "+A.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(p=e.validate(r))!==!0)return typeof p=="string"&&(o=p),!1}catch(E){return o=E+"",!1}return!0},phContent:function(n){return n==="error"?o:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),Vr.question(t,a),r};function Gme(t,e){var r={},o={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(o[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=ZH(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&o.hasOwnProperty(n)?o[n].apply(a,r.args.slice(1)):o.hasOwnProperty("_")?o._.apply(a,r.args):null,{res:a,forceNext:!1}},o.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),o.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=ZH(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}Vr.promptCL=function(t,e){var r=xs({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=Gme(t,r);return r.limit=o.limit,r.preCheck=o.preCheck,Vr.prompt(r),o.args};Vr.promptLoop=function(t,e){for(var r=xs({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t(Vr.prompt(r)););};Vr.promptCLLoop=function(t,e){var r=xs({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=Gme(t,r);for(r.limit=o.limit,r.preCheck=o.preCheck;Vr.prompt(r),!o.hRes;);};Vr.promptSimShell=function(t){return Vr.prompt(xs({hideEchoBack:!1,history:!0},t,{prompt:function(){return Xg?"$>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$$ "}()}))};function Wme(t,e,r){var o;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),o=Vr.keyIn(t,xs(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof o=="boolean"?o:""}Vr.keyInYN=function(t,e){return Wme(t,e)};Vr.keyInYNStrict=function(t,e){return Wme(t,e,"yn")};Vr.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),Vr.keyIn(t,xs({limit:null},e,{hideEchoBack:!0,mask:""}))};Vr.keyInSelect=function(t,e,r){var o=xs({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?t.length+"":p==="firstItem"?(t[0]+"").trim():p==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},u=49,A=` +`;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(p,h){var E=String.fromCharCode(u);a+=E,n[E]=h,A+="["+E+"] "+(p+"").trim()+` +`,u=u===57?97:u+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,A+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+` +`),o.limit=a,A+=` +`,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$]: "),A+=e),n[Vr.keyIn(A,o).toLowerCase()]};Vr.getRawInput=function(){return Xk};function W2(t,e){var r;return e.length&&(r={},r[t]=e[0]),Vr.setDefaultOptions(r)[t]}Vr.setPrint=function(){return W2("print",arguments)};Vr.setPrompt=function(){return W2("prompt",arguments)};Vr.setEncoding=function(){return W2("encoding",arguments)};Vr.setMask=function(){return W2("mask",arguments)};Vr.setBufferSize=function(){return W2("bufferSize",arguments)}});var r6=_((O9t,El)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(I,S,y){var R=tau_file_system.files[I];if(!R){if(y==="read")return null;R={path:I,text:"",type:S,get:function(z,X){return X===this.text.length||X>this.text.length?"end_of_file":this.text.substring(X,X+z)},put:function(z,X){return X==="end_of_file"?(this.text+=z,!0):X==="past_end_of_file"?null:(this.text=this.text.substring(0,X)+z+this.text.substring(X+z.length),!0)},get_byte:function(z){if(z==="end_of_stream")return-1;var X=Math.floor(z/2);if(this.text.length<=X)return-1;var $=n(this.text[Math.floor(z/2)],0);return z%2===0?$&255:$/256>>>0},put_byte:function(z,X){var $=X==="end_of_stream"?this.text.length:Math.floor(X/2);if(this.text.length<$)return null;var se=this.text.length===$?-1:n(this.text[Math.floor(X/2)],0);return X%2===0?(se=se/256>>>0,se=(se&255)<<8|z&255):(se=se&255,se=(z&255)<<8|se&255),this.text.length===$?this.text+=u(se):this.text=this.text.substring(0,$)+u(se)+this.text.substring($+1),!0},flush:function(){return!0},close:function(){var z=tau_file_system.files[this.path];return z?!0:null}},tau_file_system.files[I]=R}return y==="write"&&(R.text=""),R}},tau_user_input={buffer:"",get:function(I,S){for(var y;tau_user_input.buffer.length\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function L(I,S){return I.get_flag("char_conversion").id==="on"?S.replace(/./g,function(y){return I.get_char_conversion(y)}):S}function U(I){this.thread=I,this.text="",this.tokens=[]}U.prototype.set_last_tokens=function(I){return this.tokens=I},U.prototype.new_text=function(I){this.text=I,this.tokens=[]},U.prototype.get_tokens=function(I){var S,y=0,R=0,z=0,X=[],$=!1;if(I){var se=this.tokens[I-1];y=se.len,S=L(this.thread,this.text.substr(se.len)),R=se.line,z=se.start}else S=this.text;if(/^\s*$/.test(S))return null;for(;S!=="";){var xe=[],Fe=!1;if(/^\n/.exec(S)!==null){R++,z=0,y++,S=S.replace(/\n/,""),$=!0;continue}for(var lt in T)if(T.hasOwnProperty(lt)){var Et=T[lt].exec(S);Et&&xe.push({value:Et[0],name:lt,matches:Et})}if(!xe.length)return this.set_last_tokens([{value:S,matches:[],name:"lexical",line:R,start:z}]);var se=r(xe,function(Pr,yr){return Pr.value.length>=yr.value.length?Pr:yr});switch(se.start=z,se.line=R,S=S.replace(se.value,""),z+=se.value.length,y+=se.value.length,se.name){case"atom":se.raw=se.value,se.value.charAt(0)==="'"&&(se.value=D(se.value.substr(1,se.value.length-2),"'"),se.value===null&&(se.name="lexical",se.value="unknown escape sequence"));break;case"number":se.float=se.value.substring(0,2)!=="0x"&&se.value.match(/[.eE]/)!==null&&se.value!=="0'.",se.value=C(se.value),se.blank=Fe;break;case"string":var qt=se.value.charAt(0);se.value=D(se.value.substr(1,se.value.length-2),qt),se.value===null&&(se.name="lexical",se.value="unknown escape sequence");break;case"whitespace":var nr=X[X.length-1];nr&&(nr.space=!0),Fe=!0;continue;case"r_bracket":X.length>0&&X[X.length-1].name==="l_bracket"&&(se=X.pop(),se.name="atom",se.value="{}",se.raw="{}",se.space=!1);break;case"r_brace":X.length>0&&X[X.length-1].name==="l_brace"&&(se=X.pop(),se.name="atom",se.value="[]",se.raw="[]",se.space=!1);break}se.len=y,X.push(se),Fe=!1}var St=this.set_last_tokens(X);return St.length===0?null:St};function J(I,S,y,R,z){if(!S[y])return{type:A,value:b.error.syntax(S[y-1],"expression expected",!0)};var X;if(R==="0"){var $=S[y];switch($.name){case"number":return{type:p,len:y+1,value:new b.type.Num($.value,$.float)};case"variable":return{type:p,len:y+1,value:new b.type.Var($.value)};case"string":var se;switch(I.get_flag("double_quotes").id){case"atom":se=new q($.value,[]);break;case"codes":se=new q("[]",[]);for(var xe=$.value.length-1;xe>=0;xe--)se=new q(".",[new b.type.Num(n($.value,xe),!1),se]);break;case"chars":se=new q("[]",[]);for(var xe=$.value.length-1;xe>=0;xe--)se=new q(".",[new b.type.Term($.value.charAt(xe),[]),se]);break}return{type:p,len:y+1,value:se};case"l_paren":var St=J(I,S,y+1,I.__get_max_priority(),!0);return St.type!==p?St:S[St.len]&&S[St.len].name==="r_paren"?(St.len++,St):{type:A,derived:!0,value:b.error.syntax(S[St.len]?S[St.len]:S[St.len-1],") or operator expected",!S[St.len])};case"l_bracket":var St=J(I,S,y+1,I.__get_max_priority(),!0);return St.type!==p?St:S[St.len]&&S[St.len].name==="r_bracket"?(St.len++,St.value=new q("{}",[St.value]),St):{type:A,derived:!0,value:b.error.syntax(S[St.len]?S[St.len]:S[St.len-1],"} or operator expected",!S[St.len])}}var Fe=te(I,S,y,z);return Fe.type===p||Fe.derived||(Fe=le(I,S,y),Fe.type===p||Fe.derived)?Fe:{type:A,derived:!1,value:b.error.syntax(S[y],"unexpected token")}}var lt=I.__get_max_priority(),Et=I.__get_next_priority(R),qt=y;if(S[y].name==="atom"&&S[y+1]&&(S[y].space||S[y+1].name!=="l_paren")){var $=S[y++],nr=I.__lookup_operator_classes(R,$.value);if(nr&&nr.indexOf("fy")>-1){var St=J(I,S,y,R,z);if(St.type!==A)return $.value==="-"&&!$.space&&b.type.is_number(St.value)?{value:new b.type.Num(-St.value.value,St.value.is_float),len:St.len,type:p}:{value:new b.type.Term($.value,[St.value]),len:St.len,type:p};X=St}else if(nr&&nr.indexOf("fx")>-1){var St=J(I,S,y,Et,z);if(St.type!==A)return{value:new b.type.Term($.value,[St.value]),len:St.len,type:p};X=St}}y=qt;var St=J(I,S,y,Et,z);if(St.type===p){y=St.len;var $=S[y];if(S[y]&&(S[y].name==="atom"&&I.__lookup_operator_classes(R,$.value)||S[y].name==="bar"&&I.__lookup_operator_classes(R,"|"))){var cn=Et,Pr=R,nr=I.__lookup_operator_classes(R,$.value);if(nr.indexOf("xf")>-1)return{value:new b.type.Term($.value,[St.value]),len:++St.len,type:p};if(nr.indexOf("xfx")>-1){var yr=J(I,S,y+1,cn,z);return yr.type===p?{value:new b.type.Term($.value,[St.value,yr.value]),len:yr.len,type:p}:(yr.derived=!0,yr)}else if(nr.indexOf("xfy")>-1){var yr=J(I,S,y+1,Pr,z);return yr.type===p?{value:new b.type.Term($.value,[St.value,yr.value]),len:yr.len,type:p}:(yr.derived=!0,yr)}else if(St.type!==A)for(;;){y=St.len;var $=S[y];if($&&$.name==="atom"&&I.__lookup_operator_classes(R,$.value)){var nr=I.__lookup_operator_classes(R,$.value);if(nr.indexOf("yf")>-1)St={value:new b.type.Term($.value,[St.value]),len:++y,type:p};else if(nr.indexOf("yfx")>-1){var yr=J(I,S,++y,cn,z);if(yr.type===A)return yr.derived=!0,yr;y=yr.len,St={value:new b.type.Term($.value,[St.value,yr.value]),len:y,type:p}}else break}else break}}else X={type:A,value:b.error.syntax(S[St.len-1],"operator expected")};return St}return St}function te(I,S,y,R){if(!S[y]||S[y].name==="atom"&&S[y].raw==="."&&!R&&(S[y].space||!S[y+1]||S[y+1].name!=="l_paren"))return{type:A,derived:!1,value:b.error.syntax(S[y-1],"unfounded token")};var z=S[y],X=[];if(S[y].name==="atom"&&S[y].raw!==","){if(y++,S[y-1].space)return{type:p,len:y,value:new b.type.Term(z.value,X)};if(S[y]&&S[y].name==="l_paren"){if(S[y+1]&&S[y+1].name==="r_paren")return{type:A,derived:!0,value:b.error.syntax(S[y+1],"argument expected")};var $=J(I,S,++y,"999",!0);if($.type===A)return $.derived?$:{type:A,derived:!0,value:b.error.syntax(S[y]?S[y]:S[y-1],"argument expected",!S[y])};for(X.push($.value),y=$.len;S[y]&&S[y].name==="atom"&&S[y].value===",";){if($=J(I,S,y+1,"999",!0),$.type===A)return $.derived?$:{type:A,derived:!0,value:b.error.syntax(S[y+1]?S[y+1]:S[y],"argument expected",!S[y+1])};X.push($.value),y=$.len}if(S[y]&&S[y].name==="r_paren")y++;else return{type:A,derived:!0,value:b.error.syntax(S[y]?S[y]:S[y-1],", or ) expected",!S[y])}}return{type:p,len:y,value:new b.type.Term(z.value,X)}}return{type:A,derived:!1,value:b.error.syntax(S[y],"term expected")}}function le(I,S,y){if(!S[y])return{type:A,derived:!1,value:b.error.syntax(S[y-1],"[ expected")};if(S[y]&&S[y].name==="l_brace"){var R=J(I,S,++y,"999",!0),z=[R.value],X=void 0;if(R.type===A)return S[y]&&S[y].name==="r_brace"?{type:p,len:y+1,value:new b.type.Term("[]",[])}:{type:A,derived:!0,value:b.error.syntax(S[y],"] expected")};for(y=R.len;S[y]&&S[y].name==="atom"&&S[y].value===",";){if(R=J(I,S,y+1,"999",!0),R.type===A)return R.derived?R:{type:A,derived:!0,value:b.error.syntax(S[y+1]?S[y+1]:S[y],"argument expected",!S[y+1])};z.push(R.value),y=R.len}var $=!1;if(S[y]&&S[y].name==="bar"){if($=!0,R=J(I,S,y+1,"999",!0),R.type===A)return R.derived?R:{type:A,derived:!0,value:b.error.syntax(S[y+1]?S[y+1]:S[y],"argument expected",!S[y+1])};X=R.value,y=R.len}return S[y]&&S[y].name==="r_brace"?{type:p,len:y+1,value:g(z,X)}:{type:A,derived:!0,value:b.error.syntax(S[y]?S[y]:S[y-1],$?"] expected":", or | or ] expected",!S[y])}}return{type:A,derived:!1,value:b.error.syntax(S[y],"list expected")}}function ce(I,S,y){var R=S[y].line,z=J(I,S,y,I.__get_max_priority(),!1),X=null,$;if(z.type!==A)if(y=z.len,S[y]&&S[y].name==="atom"&&S[y].raw===".")if(y++,b.type.is_term(z.value)){if(z.value.indicator===":-/2"?(X=new b.type.Rule(z.value.args[0],Ee(z.value.args[1])),$={value:X,len:y,type:p}):z.value.indicator==="-->/2"?(X=he(new b.type.Rule(z.value.args[0],z.value.args[1]),I),X.body=Ee(X.body),$={value:X,len:y,type:b.type.is_rule(X)?p:A}):(X=new b.type.Rule(z.value,null),$={value:X,len:y,type:p}),X){var se=X.singleton_variables();se.length>0&&I.throw_warning(b.warning.singleton(se,X.head.indicator,R))}return $}else return{type:A,value:b.error.syntax(S[y],"callable expected")};else return{type:A,value:b.error.syntax(S[y]?S[y]:S[y-1],". or operator expected")};return z}function ue(I,S,y){y=y||{},y.from=y.from?y.from:"$tau-js",y.reconsult=y.reconsult!==void 0?y.reconsult:!0;var R=new U(I),z={},X;R.new_text(S);var $=0,se=R.get_tokens($);do{if(se===null||!se[$])break;var xe=ce(I,se,$);if(xe.type===A)return new q("throw",[xe.value]);if(xe.value.body===null&&xe.value.head.indicator==="?-/1"){var Fe=new tt(I.session);Fe.add_goal(xe.value.head.args[0]),Fe.answer(function(Et){b.type.is_error(Et)?I.throw_warning(Et.args[0]):(Et===!1||Et===null)&&I.throw_warning(b.warning.failed_goal(xe.value.head.args[0],xe.len))}),$=xe.len;var lt=!0}else if(xe.value.body===null&&xe.value.head.indicator===":-/1"){var lt=I.run_directive(xe.value.head.args[0]);$=xe.len,xe.value.head.args[0].indicator==="char_conversion/2"&&(se=R.get_tokens($),$=0)}else{X=xe.value.head.indicator,y.reconsult!==!1&&z[X]!==!0&&!I.is_multifile_predicate(X)&&(I.session.rules[X]=a(I.session.rules[X]||[],function(qt){return qt.dynamic}),z[X]=!0);var lt=I.add_rule(xe.value,y);$=xe.len}if(!lt)return lt}while(!0);return!0}function Ie(I,S){var y=new U(I);y.new_text(S);var R=0;do{var z=y.get_tokens(R);if(z===null)break;var X=J(I,z,0,I.__get_max_priority(),!1);if(X.type!==A){var $=X.len,se=$;if(z[$]&&z[$].name==="atom"&&z[$].raw===".")I.add_goal(Ee(X.value));else{var xe=z[$];return new q("throw",[b.error.syntax(xe||z[$-1],". or operator expected",!xe)])}R=X.len+1}else return new q("throw",[X.value])}while(!0);return!0}function he(I,S){I=I.rename(S);var y=S.next_free_variable(),R=De(I.body,y,S);return R.error?R.value:(I.body=R.value,I.head.args=I.head.args.concat([y,R.variable]),I.head=new q(I.head.id,I.head.args),I)}function De(I,S,y){var R;if(b.type.is_term(I)&&I.indicator==="!/0")return{value:I,variable:S,error:!1};if(b.type.is_term(I)&&I.indicator===",/2"){var z=De(I.args[0],S,y);if(z.error)return z;var X=De(I.args[1],z.variable,y);return X.error?X:{value:new q(",",[z.value,X.value]),variable:X.variable,error:!1}}else{if(b.type.is_term(I)&&I.indicator==="{}/1")return{value:I.args[0],variable:S,error:!1};if(b.type.is_empty_list(I))return{value:new q("true",[]),variable:S,error:!1};if(b.type.is_list(I)){R=y.next_free_variable();for(var $=I,se;$.indicator==="./2";)se=$,$=$.args[1];return b.type.is_variable($)?{value:b.error.instantiation("DCG"),variable:S,error:!0}:b.type.is_empty_list($)?(se.args[1]=R,{value:new q("=",[S,I]),variable:R,error:!1}):{value:b.error.type("list",I,"DCG"),variable:S,error:!0}}else return b.type.is_callable(I)?(R=y.next_free_variable(),I.args=I.args.concat([S,R]),I=new q(I.id,I.args),{value:I,variable:R,error:!1}):{value:b.error.type("callable",I,"DCG"),variable:S,error:!0}}}function Ee(I){return b.type.is_variable(I)?new q("call",[I]):b.type.is_term(I)&&[",/2",";/2","->/2"].indexOf(I.indicator)!==-1?new q(I.id,[Ee(I.args[0]),Ee(I.args[1])]):I}function g(I,S){for(var y=S||new b.type.Term("[]",[]),R=I.length-1;R>=0;R--)y=new b.type.Term(".",[I[R],y]);return y}function me(I,S){for(var y=I.length-1;y>=0;y--)I[y]===S&&I.splice(y,1)}function Ce(I){for(var S={},y=[],R=0;R=0;S--)if(I.charAt(S)==="/")return new q("/",[new q(I.substring(0,S)),new Re(parseInt(I.substring(S+1)),!1)])}function Pe(I){this.id=I}function Re(I,S){this.is_float=S!==void 0?S:parseInt(I)!==I,this.value=this.is_float?I:parseInt(I)}var ht=0;function q(I,S,y){this.ref=y||++ht,this.id=I,this.args=S||[],this.indicator=I+"/"+this.args.length}var nt=0;function Ne(I,S,y,R,z,X){this.id=nt++,this.stream=I,this.mode=S,this.alias=y,this.type=R!==void 0?R:"text",this.reposition=z!==void 0?z:!0,this.eof_action=X!==void 0?X:"eof_code",this.position=this.mode==="append"?"end_of_stream":0,this.output=this.mode==="write"||this.mode==="append",this.input=this.mode==="read"}function Te(I){I=I||{},this.links=I}function ke(I,S,y){S=S||new Te,y=y||null,this.goal=I,this.substitution=S,this.parent=y}function Ve(I,S,y){this.head=I,this.body=S,this.dynamic=y||!1}function be(I){I=I===void 0||I<=0?1e3:I,this.rules={},this.src_predicates={},this.rename=0,this.modules=[],this.thread=new tt(this),this.total_threads=1,this.renamed_variables={},this.public_predicates={},this.multifile_predicates={},this.limit=I,this.streams={user_input:new Ne(typeof El<"u"&&El.exports?nodejs_user_input:tau_user_input,"read","user_input","text",!1,"reset"),user_output:new Ne(typeof El<"u"&&El.exports?nodejs_user_output:tau_user_output,"write","user_output","text",!1,"eof_code")},this.file_system=typeof El<"u"&&El.exports?nodejs_file_system:tau_file_system,this.standard_input=this.streams.user_input,this.standard_output=this.streams.user_output,this.current_input=this.streams.user_input,this.current_output=this.streams.user_output,this.format_success=function(S){return S.substitution},this.format_error=function(S){return S.goal},this.flag={bounded:b.flag.bounded.value,max_integer:b.flag.max_integer.value,min_integer:b.flag.min_integer.value,integer_rounding_function:b.flag.integer_rounding_function.value,char_conversion:b.flag.char_conversion.value,debug:b.flag.debug.value,max_arity:b.flag.max_arity.value,unknown:b.flag.unknown.value,double_quotes:b.flag.double_quotes.value,occurs_check:b.flag.occurs_check.value,dialect:b.flag.dialect.value,version_data:b.flag.version_data.value,nodejs:b.flag.nodejs.value},this.__loaded_modules=[],this.__char_conversion={},this.__operators={1200:{":-":["fx","xfx"],"-->":["xfx"],"?-":["fx"]},1100:{";":["xfy"]},1050:{"->":["xfy"]},1e3:{",":["xfy"]},900:{"\\+":["fy"]},700:{"=":["xfx"],"\\=":["xfx"],"==":["xfx"],"\\==":["xfx"],"@<":["xfx"],"@=<":["xfx"],"@>":["xfx"],"@>=":["xfx"],"=..":["xfx"],is:["xfx"],"=:=":["xfx"],"=\\=":["xfx"],"<":["xfx"],"=<":["xfx"],">":["xfx"],">=":["xfx"]},600:{":":["xfy"]},500:{"+":["yfx"],"-":["yfx"],"/\\":["yfx"],"\\/":["yfx"]},400:{"*":["yfx"],"/":["yfx"],"//":["yfx"],rem:["yfx"],mod:["yfx"],"<<":["yfx"],">>":["yfx"]},200:{"**":["xfx"],"^":["xfy"],"-":["fy"],"+":["fy"],"\\":["fy"]}}}function tt(I){this.epoch=Date.now(),this.session=I,this.session.total_threads++,this.total_steps=0,this.cpu_time=0,this.cpu_time_last=0,this.points=[],this.debugger=!1,this.debugger_states=[],this.level="top_level/0",this.__calls=[],this.current_limit=this.session.limit,this.warnings=[]}function He(I,S,y){this.id=I,this.rules=S,this.exports=y,b.module[I]=this}He.prototype.exports_predicate=function(I){return this.exports.indexOf(I)!==-1},Pe.prototype.unify=function(I,S){if(S&&e(I.variables(),this.id)!==-1&&!b.type.is_variable(I))return null;var y={};return y[this.id]=I,new Te(y)},Re.prototype.unify=function(I,S){return b.type.is_number(I)&&this.value===I.value&&this.is_float===I.is_float?new Te:null},q.prototype.unify=function(I,S){if(b.type.is_term(I)&&this.indicator===I.indicator){for(var y=new Te,R=0;R=0){var R=this.args[0].value,z=Math.floor(R/26),X=R%26;return"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[X]+(z!==0?z:"")}switch(this.indicator){case"[]/0":case"{}/0":case"!/0":return this.id;case"{}/1":return"{"+this.args[0].toString(I)+"}";case"./2":for(var $="["+this.args[0].toString(I),se=this.args[1];se.indicator==="./2";)$+=", "+se.args[0].toString(I),se=se.args[1];return se.indicator!=="[]/0"&&($+="|"+se.toString(I)),$+="]",$;case",/2":return"("+this.args[0].toString(I)+", "+this.args[1].toString(I)+")";default:var xe=this.id,Fe=I.session?I.session.lookup_operator(this.id,this.args.length):null;if(I.session===void 0||I.ignore_ops||Fe===null)return I.quoted&&!/^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test(xe)&&xe!=="{}"&&xe!=="[]"&&(xe="'"+x(xe)+"'"),xe+(this.args.length?"("+o(this.args,function(nr){return nr.toString(I)}).join(", ")+")":"");var lt=Fe.priority>S.priority||Fe.priority===S.priority&&(Fe.class==="xfy"&&this.indicator!==S.indicator||Fe.class==="yfx"&&this.indicator!==S.indicator||this.indicator===S.indicator&&Fe.class==="yfx"&&y==="right"||this.indicator===S.indicator&&Fe.class==="xfy"&&y==="left");Fe.indicator=this.indicator;var Et=lt?"(":"",qt=lt?")":"";return this.args.length===0?"("+this.id+")":["fy","fx"].indexOf(Fe.class)!==-1?Et+xe+" "+this.args[0].toString(I,Fe)+qt:["yf","xf"].indexOf(Fe.class)!==-1?Et+this.args[0].toString(I,Fe)+" "+xe+qt:Et+this.args[0].toString(I,Fe,"left")+" "+this.id+" "+this.args[1].toString(I,Fe,"right")+qt}},Ne.prototype.toString=function(I){return"("+this.id+")"},Te.prototype.toString=function(I){var S="{";for(var y in this.links)this.links.hasOwnProperty(y)&&(S!=="{"&&(S+=", "),S+=y+"/"+this.links[y].toString(I));return S+="}",S},ke.prototype.toString=function(I){return this.goal===null?"<"+this.substitution.toString(I)+">":"<"+this.goal.toString(I)+", "+this.substitution.toString(I)+">"},Ve.prototype.toString=function(I){return this.body?this.head.toString(I)+" :- "+this.body.toString(I)+".":this.head.toString(I)+"."},be.prototype.toString=function(I){for(var S="",y=0;y=0;z--)R=new q(".",[S[z],R]);return R}return new q(this.id,o(this.args,function(X){return X.apply(I)}),this.ref)},Ne.prototype.apply=function(I){return this},Ve.prototype.apply=function(I){return new Ve(this.head.apply(I),this.body!==null?this.body.apply(I):null)},Te.prototype.apply=function(I){var S,y={};for(S in this.links)this.links.hasOwnProperty(S)&&(y[S]=this.links[S].apply(I));return new Te(y)},q.prototype.select=function(){for(var I=this;I.indicator===",/2";)I=I.args[0];return I},q.prototype.replace=function(I){return this.indicator===",/2"?this.args[0].indicator===",/2"?new q(",",[this.args[0].replace(I),this.args[1]]):I===null?this.args[1]:new q(",",[I,this.args[1]]):I},q.prototype.search=function(I){if(b.type.is_term(I)&&I.ref!==void 0&&this.ref===I.ref)return!0;for(var S=0;SS&&R0&&(S=this.head_point().substitution.domain());e(S,b.format_variable(this.session.rename))!==-1;)this.session.rename++;if(I.id==="_")return new Pe(b.format_variable(this.session.rename));this.session.renamed_variables[I.id]=b.format_variable(this.session.rename)}return new Pe(this.session.renamed_variables[I.id])},be.prototype.next_free_variable=function(){return this.thread.next_free_variable()},tt.prototype.next_free_variable=function(){this.session.rename++;var I=[];for(this.points.length>0&&(I=this.head_point().substitution.domain());e(I,b.format_variable(this.session.rename))!==-1;)this.session.rename++;return new Pe(b.format_variable(this.session.rename))},be.prototype.is_public_predicate=function(I){return!this.public_predicates.hasOwnProperty(I)||this.public_predicates[I]===!0},tt.prototype.is_public_predicate=function(I){return this.session.is_public_predicate(I)},be.prototype.is_multifile_predicate=function(I){return this.multifile_predicates.hasOwnProperty(I)&&this.multifile_predicates[I]===!0},tt.prototype.is_multifile_predicate=function(I){return this.session.is_multifile_predicate(I)},be.prototype.prepend=function(I){return this.thread.prepend(I)},tt.prototype.prepend=function(I){for(var S=I.length-1;S>=0;S--)this.points.push(I[S])},be.prototype.success=function(I,S){return this.thread.success(I,S)},tt.prototype.success=function(I,y){var y=typeof y>"u"?I:y;this.prepend([new ke(I.goal.replace(null),I.substitution,y)])},be.prototype.throw_error=function(I){return this.thread.throw_error(I)},tt.prototype.throw_error=function(I){this.prepend([new ke(new q("throw",[I]),new Te,null,null)])},be.prototype.step_rule=function(I,S){return this.thread.step_rule(I,S)},tt.prototype.step_rule=function(I,S){var y=S.indicator;if(I==="user"&&(I=null),I===null&&this.session.rules.hasOwnProperty(y))return this.session.rules[y];for(var R=I===null?this.session.modules:e(this.session.modules,I)===-1?[]:[I],z=0;z1)&&this.again()},be.prototype.answers=function(I,S,y){return this.thread.answers(I,S,y)},tt.prototype.answers=function(I,S,y){var R=S||1e3,z=this;if(S<=0){y&&y();return}this.answer(function(X){I(X),X!==!1?setTimeout(function(){z.answers(I,S-1,y)},1):y&&y()})},be.prototype.again=function(I){return this.thread.again(I)},tt.prototype.again=function(I){for(var S,y=Date.now();this.__calls.length>0;){for(this.warnings=[],I!==!1&&(this.current_limit=this.session.limit);this.current_limit>0&&this.points.length>0&&this.head_point().goal!==null&&!b.type.is_error(this.head_point().goal);)if(this.current_limit--,this.step()===!0)return;var R=Date.now();this.cpu_time_last=R-y,this.cpu_time+=this.cpu_time_last;var z=this.__calls.shift();this.current_limit<=0?z(null):this.points.length===0?z(!1):b.type.is_error(this.head_point().goal)?(S=this.session.format_error(this.points.pop()),this.points=[],z(S)):(this.debugger&&this.debugger_states.push(this.head_point()),S=this.session.format_success(this.points.pop()),z(S))}},be.prototype.unfold=function(I){if(I.body===null)return!1;var S=I.head,y=I.body,R=y.select(),z=new tt(this),X=[];z.add_goal(R),z.step();for(var $=z.points.length-1;$>=0;$--){var se=z.points[$],xe=S.apply(se.substitution),Fe=y.replace(se.goal);Fe!==null&&(Fe=Fe.apply(se.substitution)),X.push(new Ve(xe,Fe))}var lt=this.rules[S.indicator],Et=e(lt,I);return X.length>0&&Et!==-1?(lt.splice.apply(lt,[Et,1].concat(X)),!0):!1},tt.prototype.unfold=function(I){return this.session.unfold(I)},Pe.prototype.interpret=function(I){return b.error.instantiation(I.level)},Re.prototype.interpret=function(I){return this},q.prototype.interpret=function(I){return b.type.is_unitary_list(this)?this.args[0].interpret(I):b.operate(I,this)},Pe.prototype.compare=function(I){return this.idI.id?1:0},Re.prototype.compare=function(I){if(this.value===I.value&&this.is_float===I.is_float)return 0;if(this.valueI.value)return 1},q.prototype.compare=function(I){if(this.args.lengthI.args.length||this.args.length===I.args.length&&this.id>I.id)return 1;for(var S=0;SR)return 1;if(I.constructor===Re){if(I.is_float&&S.is_float)return 0;if(I.is_float)return-1;if(S.is_float)return 1}return 0},is_substitution:function(I){return I instanceof Te},is_state:function(I){return I instanceof ke},is_rule:function(I){return I instanceof Ve},is_variable:function(I){return I instanceof Pe},is_stream:function(I){return I instanceof Ne},is_anonymous_var:function(I){return I instanceof Pe&&I.id==="_"},is_callable:function(I){return I instanceof q},is_number:function(I){return I instanceof Re},is_integer:function(I){return I instanceof Re&&!I.is_float},is_float:function(I){return I instanceof Re&&I.is_float},is_term:function(I){return I instanceof q},is_atom:function(I){return I instanceof q&&I.args.length===0},is_ground:function(I){if(I instanceof Pe)return!1;if(I instanceof q){for(var S=0;S0},is_list:function(I){return I instanceof q&&(I.indicator==="[]/0"||I.indicator==="./2")},is_empty_list:function(I){return I instanceof q&&I.indicator==="[]/0"},is_non_empty_list:function(I){return I instanceof q&&I.indicator==="./2"},is_fully_list:function(I){for(;I instanceof q&&I.indicator==="./2";)I=I.args[1];return I instanceof Pe||I instanceof q&&I.indicator==="[]/0"},is_instantiated_list:function(I){for(;I instanceof q&&I.indicator==="./2";)I=I.args[1];return I instanceof q&&I.indicator==="[]/0"},is_unitary_list:function(I){return I instanceof q&&I.indicator==="./2"&&I.args[1]instanceof q&&I.args[1].indicator==="[]/0"},is_character:function(I){return I instanceof q&&(I.id.length===1||I.id.length>0&&I.id.length<=2&&n(I.id,0)>=65536)},is_character_code:function(I){return I instanceof Re&&!I.is_float&&I.value>=0&&I.value<=1114111},is_byte:function(I){return I instanceof Re&&!I.is_float&&I.value>=0&&I.value<=255},is_operator:function(I){return I instanceof q&&b.arithmetic.evaluation[I.indicator]},is_directive:function(I){return I instanceof q&&b.directive[I.indicator]!==void 0},is_builtin:function(I){return I instanceof q&&b.predicate[I.indicator]!==void 0},is_error:function(I){return I instanceof q&&I.indicator==="throw/1"},is_predicate_indicator:function(I){return I instanceof q&&I.indicator==="//2"&&I.args[0]instanceof q&&I.args[0].args.length===0&&I.args[1]instanceof Re&&I.args[1].is_float===!1},is_flag:function(I){return I instanceof q&&I.args.length===0&&b.flag[I.id]!==void 0},is_value_flag:function(I,S){if(!b.type.is_flag(I))return!1;for(var y in b.flag[I.id].allowed)if(b.flag[I.id].allowed.hasOwnProperty(y)&&b.flag[I.id].allowed[y].equals(S))return!0;return!1},is_io_mode:function(I){return b.type.is_atom(I)&&["read","write","append"].indexOf(I.id)!==-1},is_stream_option:function(I){return b.type.is_term(I)&&(I.indicator==="alias/1"&&b.type.is_atom(I.args[0])||I.indicator==="reposition/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="type/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="text"||I.args[0].id==="binary")||I.indicator==="eof_action/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="error"||I.args[0].id==="eof_code"||I.args[0].id==="reset"))},is_stream_position:function(I){return b.type.is_integer(I)&&I.value>=0||b.type.is_atom(I)&&(I.id==="end_of_stream"||I.id==="past_end_of_stream")},is_stream_property:function(I){return b.type.is_term(I)&&(I.indicator==="input/0"||I.indicator==="output/0"||I.indicator==="alias/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0]))||I.indicator==="file_name/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0]))||I.indicator==="position/1"&&(b.type.is_variable(I.args[0])||b.type.is_stream_position(I.args[0]))||I.indicator==="reposition/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false"))||I.indicator==="type/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0])&&(I.args[0].id==="text"||I.args[0].id==="binary"))||I.indicator==="mode/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0])&&(I.args[0].id==="read"||I.args[0].id==="write"||I.args[0].id==="append"))||I.indicator==="eof_action/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0])&&(I.args[0].id==="error"||I.args[0].id==="eof_code"||I.args[0].id==="reset"))||I.indicator==="end_of_stream/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0])&&(I.args[0].id==="at"||I.args[0].id==="past"||I.args[0].id==="not")))},is_streamable:function(I){return I.__proto__.stream!==void 0},is_read_option:function(I){return b.type.is_term(I)&&["variables/1","variable_names/1","singletons/1"].indexOf(I.indicator)!==-1},is_write_option:function(I){return b.type.is_term(I)&&(I.indicator==="quoted/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="ignore_ops/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="numbervars/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false"))},is_close_option:function(I){return b.type.is_term(I)&&I.indicator==="force/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")},is_modifiable_flag:function(I){return b.type.is_flag(I)&&b.flag[I.id].changeable},is_module:function(I){return I instanceof q&&I.indicator==="library/1"&&I.args[0]instanceof q&&I.args[0].args.length===0&&b.module[I.args[0].id]!==void 0}},arithmetic:{evaluation:{"e/0":{type_args:null,type_result:!0,fn:function(I){return Math.E}},"pi/0":{type_args:null,type_result:!0,fn:function(I){return Math.PI}},"tau/0":{type_args:null,type_result:!0,fn:function(I){return 2*Math.PI}},"epsilon/0":{type_args:null,type_result:!0,fn:function(I){return Number.EPSILON}},"+/1":{type_args:null,type_result:null,fn:function(I,S){return I}},"-/1":{type_args:null,type_result:null,fn:function(I,S){return-I}},"\\/1":{type_args:!1,type_result:!1,fn:function(I,S){return~I}},"abs/1":{type_args:null,type_result:null,fn:function(I,S){return Math.abs(I)}},"sign/1":{type_args:null,type_result:null,fn:function(I,S){return Math.sign(I)}},"float_integer_part/1":{type_args:!0,type_result:!1,fn:function(I,S){return parseInt(I)}},"float_fractional_part/1":{type_args:!0,type_result:!0,fn:function(I,S){return I-parseInt(I)}},"float/1":{type_args:null,type_result:!0,fn:function(I,S){return parseFloat(I)}},"floor/1":{type_args:!0,type_result:!1,fn:function(I,S){return Math.floor(I)}},"truncate/1":{type_args:!0,type_result:!1,fn:function(I,S){return parseInt(I)}},"round/1":{type_args:!0,type_result:!1,fn:function(I,S){return Math.round(I)}},"ceiling/1":{type_args:!0,type_result:!1,fn:function(I,S){return Math.ceil(I)}},"sin/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.sin(I)}},"cos/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.cos(I)}},"tan/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.tan(I)}},"asin/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.asin(I)}},"acos/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.acos(I)}},"atan/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.atan(I)}},"atan2/2":{type_args:null,type_result:!0,fn:function(I,S,y){return Math.atan2(I,S)}},"exp/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.exp(I)}},"sqrt/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.sqrt(I)}},"log/1":{type_args:null,type_result:!0,fn:function(I,S){return I>0?Math.log(I):b.error.evaluation("undefined",S.__call_indicator)}},"+/2":{type_args:null,type_result:null,fn:function(I,S,y){return I+S}},"-/2":{type_args:null,type_result:null,fn:function(I,S,y){return I-S}},"*/2":{type_args:null,type_result:null,fn:function(I,S,y){return I*S}},"//2":{type_args:null,type_result:!0,fn:function(I,S,y){return S?I/S:b.error.evaluation("zero_division",y.__call_indicator)}},"///2":{type_args:!1,type_result:!1,fn:function(I,S,y){return S?parseInt(I/S):b.error.evaluation("zero_division",y.__call_indicator)}},"**/2":{type_args:null,type_result:!0,fn:function(I,S,y){return Math.pow(I,S)}},"^/2":{type_args:null,type_result:null,fn:function(I,S,y){return Math.pow(I,S)}},"<>/2":{type_args:!1,type_result:!1,fn:function(I,S,y){return I>>S}},"/\\/2":{type_args:!1,type_result:!1,fn:function(I,S,y){return I&S}},"\\//2":{type_args:!1,type_result:!1,fn:function(I,S,y){return I|S}},"xor/2":{type_args:!1,type_result:!1,fn:function(I,S,y){return I^S}},"rem/2":{type_args:!1,type_result:!1,fn:function(I,S,y){return S?I%S:b.error.evaluation("zero_division",y.__call_indicator)}},"mod/2":{type_args:!1,type_result:!1,fn:function(I,S,y){return S?I-parseInt(I/S)*S:b.error.evaluation("zero_division",y.__call_indicator)}},"max/2":{type_args:null,type_result:null,fn:function(I,S,y){return Math.max(I,S)}},"min/2":{type_args:null,type_result:null,fn:function(I,S,y){return Math.min(I,S)}}}},directive:{"dynamic/1":function(I,S){var y=S.args[0];if(b.type.is_variable(y))I.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_compound(y)||y.indicator!=="//2")I.throw_error(b.error.type("predicate_indicator",y,S.indicator));else if(b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1]))I.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_atom(y.args[0]))I.throw_error(b.error.type("atom",y.args[0],S.indicator));else if(!b.type.is_integer(y.args[1]))I.throw_error(b.error.type("integer",y.args[1],S.indicator));else{var R=S.args[0].args[0].id+"/"+S.args[0].args[1].value;I.session.public_predicates[R]=!0,I.session.rules[R]||(I.session.rules[R]=[])}},"multifile/1":function(I,S){var y=S.args[0];b.type.is_variable(y)?I.throw_error(b.error.instantiation(S.indicator)):!b.type.is_compound(y)||y.indicator!=="//2"?I.throw_error(b.error.type("predicate_indicator",y,S.indicator)):b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1])?I.throw_error(b.error.instantiation(S.indicator)):b.type.is_atom(y.args[0])?b.type.is_integer(y.args[1])?I.session.multifile_predicates[S.args[0].args[0].id+"/"+S.args[0].args[1].value]=!0:I.throw_error(b.error.type("integer",y.args[1],S.indicator)):I.throw_error(b.error.type("atom",y.args[0],S.indicator))},"set_prolog_flag/2":function(I,S){var y=S.args[0],R=S.args[1];b.type.is_variable(y)||b.type.is_variable(R)?I.throw_error(b.error.instantiation(S.indicator)):b.type.is_atom(y)?b.type.is_flag(y)?b.type.is_value_flag(y,R)?b.type.is_modifiable_flag(y)?I.session.flag[y.id]=R:I.throw_error(b.error.permission("modify","flag",y)):I.throw_error(b.error.domain("flag_value",new q("+",[y,R]),S.indicator)):I.throw_error(b.error.domain("prolog_flag",y,S.indicator)):I.throw_error(b.error.type("atom",y,S.indicator))},"use_module/1":function(I,S){var y=S.args[0];if(b.type.is_variable(y))I.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_term(y))I.throw_error(b.error.type("term",y,S.indicator));else if(b.type.is_module(y)){var R=y.args[0].id;e(I.session.modules,R)===-1&&I.session.modules.push(R)}},"char_conversion/2":function(I,S){var y=S.args[0],R=S.args[1];b.type.is_variable(y)||b.type.is_variable(R)?I.throw_error(b.error.instantiation(S.indicator)):b.type.is_character(y)?b.type.is_character(R)?y.id===R.id?delete I.session.__char_conversion[y.id]:I.session.__char_conversion[y.id]=R.id:I.throw_error(b.error.type("character",R,S.indicator)):I.throw_error(b.error.type("character",y,S.indicator))},"op/3":function(I,S){var y=S.args[0],R=S.args[1],z=S.args[2];if(b.type.is_variable(y)||b.type.is_variable(R)||b.type.is_variable(z))I.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_integer(y))I.throw_error(b.error.type("integer",y,S.indicator));else if(!b.type.is_atom(R))I.throw_error(b.error.type("atom",R,S.indicator));else if(!b.type.is_atom(z))I.throw_error(b.error.type("atom",z,S.indicator));else if(y.value<0||y.value>1200)I.throw_error(b.error.domain("operator_priority",y,S.indicator));else if(z.id===",")I.throw_error(b.error.permission("modify","operator",z,S.indicator));else if(z.id==="|"&&(y.value<1001||R.id.length!==3))I.throw_error(b.error.permission("modify","operator",z,S.indicator));else if(["fy","fx","yf","xf","xfx","yfx","xfy"].indexOf(R.id)===-1)I.throw_error(b.error.domain("operator_specifier",R,S.indicator));else{var X={prefix:null,infix:null,postfix:null};for(var $ in I.session.__operators)if(I.session.__operators.hasOwnProperty($)){var se=I.session.__operators[$][z.id];se&&(e(se,"fx")!==-1&&(X.prefix={priority:$,type:"fx"}),e(se,"fy")!==-1&&(X.prefix={priority:$,type:"fy"}),e(se,"xf")!==-1&&(X.postfix={priority:$,type:"xf"}),e(se,"yf")!==-1&&(X.postfix={priority:$,type:"yf"}),e(se,"xfx")!==-1&&(X.infix={priority:$,type:"xfx"}),e(se,"xfy")!==-1&&(X.infix={priority:$,type:"xfy"}),e(se,"yfx")!==-1&&(X.infix={priority:$,type:"yfx"}))}var xe;switch(R.id){case"fy":case"fx":xe="prefix";break;case"yf":case"xf":xe="postfix";break;default:xe="infix";break}if(((X.prefix&&xe==="prefix"||X.postfix&&xe==="postfix"||X.infix&&xe==="infix")&&X[xe].type!==R.id||X.infix&&xe==="postfix"||X.postfix&&xe==="infix")&&y.value!==0)I.throw_error(b.error.permission("create","operator",z,S.indicator));else return X[xe]&&(me(I.session.__operators[X[xe].priority][z.id],R.id),I.session.__operators[X[xe].priority][z.id].length===0&&delete I.session.__operators[X[xe].priority][z.id]),y.value>0&&(I.session.__operators[y.value]||(I.session.__operators[y.value.toString()]={}),I.session.__operators[y.value][z.id]||(I.session.__operators[y.value][z.id]=[]),I.session.__operators[y.value][z.id].push(R.id)),!0}}},predicate:{"op/3":function(I,S,y){b.directive["op/3"](I,y)&&I.success(S)},"current_op/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2],$=[];for(var se in I.session.__operators)for(var xe in I.session.__operators[se])for(var Fe=0;Fe/2"){var R=I.points,z=I.session.format_success,X=I.session.format_error;I.session.format_success=function(Fe){return Fe.substitution},I.session.format_error=function(Fe){return Fe.goal},I.points=[new ke(y.args[0].args[0],S.substitution,S)];var $=function(Fe){I.points=R,I.session.format_success=z,I.session.format_error=X,Fe===!1?I.prepend([new ke(S.goal.replace(y.args[1]),S.substitution,S)]):b.type.is_error(Fe)?I.throw_error(Fe.args[0]):Fe===null?(I.prepend([S]),I.__calls.shift()(null)):I.prepend([new ke(S.goal.replace(y.args[0].args[1]).apply(Fe),S.substitution.apply(Fe),S)])};I.__calls.unshift($)}else{var se=new ke(S.goal.replace(y.args[0]),S.substitution,S),xe=new ke(S.goal.replace(y.args[1]),S.substitution,S);I.prepend([se,xe])}},"!/0":function(I,S,y){var R,z,X=[];for(R=S,z=null;R.parent!==null&&R.parent.goal.search(y);)if(z=R,R=R.parent,R.goal!==null){var $=R.goal.select();if($&&$.id==="call"&&$.search(y)){R=z;break}}for(var se=I.points.length-1;se>=0;se--){for(var xe=I.points[se],Fe=xe.parent;Fe!==null&&Fe!==R.parent;)Fe=Fe.parent;Fe===null&&Fe!==R.parent&&X.push(xe)}I.points=X.reverse(),I.success(S)},"\\+/1":function(I,S,y){var R=y.args[0];b.type.is_variable(R)?I.throw_error(b.error.instantiation(I.level)):b.type.is_callable(R)?I.prepend([new ke(S.goal.replace(new q(",",[new q(",",[new q("call",[R]),new q("!",[])]),new q("fail",[])])),S.substitution,S),new ke(S.goal.replace(null),S.substitution,S)]):I.throw_error(b.error.type("callable",R,I.level))},"->/2":function(I,S,y){var R=S.goal.replace(new q(",",[y.args[0],new q(",",[new q("!"),y.args[1]])]));I.prepend([new ke(R,S.substitution,S)])},"fail/0":function(I,S,y){},"false/0":function(I,S,y){},"true/0":function(I,S,y){I.success(S)},"call/1":ie(1),"call/2":ie(2),"call/3":ie(3),"call/4":ie(4),"call/5":ie(5),"call/6":ie(6),"call/7":ie(7),"call/8":ie(8),"once/1":function(I,S,y){var R=y.args[0];I.prepend([new ke(S.goal.replace(new q(",",[new q("call",[R]),new q("!",[])])),S.substitution,S)])},"forall/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q("\\+",[new q(",",[new q("call",[R]),new q("\\+",[new q("call",[z])])])])),S.substitution,S)])},"repeat/0":function(I,S,y){I.prepend([new ke(S.goal.replace(null),S.substitution,S),S])},"throw/1":function(I,S,y){b.type.is_variable(y.args[0])?I.throw_error(b.error.instantiation(I.level)):I.throw_error(y.args[0])},"catch/3":function(I,S,y){var R=I.points;I.points=[],I.prepend([new ke(y.args[0],S.substitution,S)]);var z=I.session.format_success,X=I.session.format_error;I.session.format_success=function(se){return se.substitution},I.session.format_error=function(se){return se.goal};var $=function(se){var xe=I.points;if(I.points=R,I.session.format_success=z,I.session.format_error=X,b.type.is_error(se)){for(var Fe=[],lt=I.points.length-1;lt>=0;lt--){for(var nr=I.points[lt],Et=nr.parent;Et!==null&&Et!==S.parent;)Et=Et.parent;Et===null&&Et!==S.parent&&Fe.push(nr)}I.points=Fe;var qt=I.get_flag("occurs_check").indicator==="true/0",nr=new ke,St=b.unify(se.args[0],y.args[1],qt);St!==null?(nr.substitution=S.substitution.apply(St),nr.goal=S.goal.replace(y.args[2]).apply(St),nr.parent=S,I.prepend([nr])):I.throw_error(se.args[0])}else if(se!==!1){for(var cn=se===null?[]:[new ke(S.goal.apply(se).replace(null),S.substitution.apply(se),S)],Pr=[],lt=xe.length-1;lt>=0;lt--){Pr.push(xe[lt]);var yr=xe[lt].goal!==null?xe[lt].goal.select():null;if(b.type.is_term(yr)&&yr.indicator==="!/0")break}var Rr=o(Pr,function(Xr){return Xr.goal===null&&(Xr.goal=new q("true",[])),Xr=new ke(S.goal.replace(new q("catch",[Xr.goal,y.args[1],y.args[2]])),S.substitution.apply(Xr.substitution),Xr.parent),Xr.exclude=y.args[0].variables(),Xr}).reverse();I.prepend(Rr),I.prepend(cn),se===null&&(this.current_limit=0,I.__calls.shift()(null))}};I.__calls.unshift($)},"=/2":function(I,S,y){var R=I.get_flag("occurs_check").indicator==="true/0",z=new ke,X=b.unify(y.args[0],y.args[1],R);X!==null&&(z.goal=S.goal.apply(X).replace(null),z.substitution=S.substitution.apply(X),z.parent=S,I.prepend([z]))},"unify_with_occurs_check/2":function(I,S,y){var R=new ke,z=b.unify(y.args[0],y.args[1],!0);z!==null&&(R.goal=S.goal.apply(z).replace(null),R.substitution=S.substitution.apply(z),R.parent=S,I.prepend([R]))},"\\=/2":function(I,S,y){var R=I.get_flag("occurs_check").indicator==="true/0",z=b.unify(y.args[0],y.args[1],R);z===null&&I.success(S)},"subsumes_term/2":function(I,S,y){var R=I.get_flag("occurs_check").indicator==="true/0",z=b.unify(y.args[1],y.args[0],R);z!==null&&y.args[1].apply(z).equals(y.args[1])&&I.success(S)},"findall/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(z))I.throw_error(b.error.type("callable",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))I.throw_error(b.error.type("list",X,y.indicator));else{var $=I.next_free_variable(),se=new q(",",[z,new q("=",[$,R])]),xe=I.points,Fe=I.session.limit,lt=I.session.format_success;I.session.format_success=function(nr){return nr.substitution},I.add_goal(se,!0,S);var Et=[],qt=function(nr){if(nr!==!1&&nr!==null&&!b.type.is_error(nr))I.__calls.unshift(qt),Et.push(nr.links[$.id]),I.session.limit=I.current_limit;else if(I.points=xe,I.session.limit=Fe,I.session.format_success=lt,b.type.is_error(nr))I.throw_error(nr.args[0]);else if(I.current_limit>0){for(var St=new q("[]"),cn=Et.length-1;cn>=0;cn--)St=new q(".",[Et[cn],St]);I.prepend([new ke(S.goal.replace(new q("=",[X,St])),S.substitution,S)])}};I.__calls.unshift(qt)}},"bagof/3":function(I,S,y){var R,z=y.args[0],X=y.args[1],$=y.args[2];if(b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(X))I.throw_error(b.error.type("callable",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_list($))I.throw_error(b.error.type("list",$,y.indicator));else{var se=I.next_free_variable(),xe;X.indicator==="^/2"?(xe=X.args[0].variables(),X=X.args[1]):xe=[],xe=xe.concat(z.variables());for(var Fe=X.variables().filter(function(Rr){return e(xe,Rr)===-1}),lt=new q("[]"),Et=Fe.length-1;Et>=0;Et--)lt=new q(".",[new Pe(Fe[Et]),lt]);var qt=new q(",",[X,new q("=",[se,new q(",",[lt,z])])]),nr=I.points,St=I.session.limit,cn=I.session.format_success;I.session.format_success=function(Rr){return Rr.substitution},I.add_goal(qt,!0,S);var Pr=[],yr=function(Rr){if(Rr!==!1&&Rr!==null&&!b.type.is_error(Rr)){I.__calls.unshift(yr);var Xr=!1,$n=Rr.links[se.id].args[0],Xs=Rr.links[se.id].args[1];for(var Hi in Pr)if(Pr.hasOwnProperty(Hi)){var Qs=Pr[Hi];if(Qs.variables.equals($n)){Qs.answers.push(Xs),Xr=!0;break}}Xr||Pr.push({variables:$n,answers:[Xs]}),I.session.limit=I.current_limit}else if(I.points=nr,I.session.limit=St,I.session.format_success=cn,b.type.is_error(Rr))I.throw_error(Rr.args[0]);else if(I.current_limit>0){for(var Zs=[],xi=0;xi=0;$s--)Fs=new q(".",[Rr[$s],Fs]);Zs.push(new ke(S.goal.replace(new q(",",[new q("=",[lt,Pr[xi].variables]),new q("=",[$,Fs])])),S.substitution,S))}I.prepend(Zs)}};I.__calls.unshift(yr)}},"setof/3":function(I,S,y){var R,z=y.args[0],X=y.args[1],$=y.args[2];if(b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(X))I.throw_error(b.error.type("callable",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_list($))I.throw_error(b.error.type("list",$,y.indicator));else{var se=I.next_free_variable(),xe;X.indicator==="^/2"?(xe=X.args[0].variables(),X=X.args[1]):xe=[],xe=xe.concat(z.variables());for(var Fe=X.variables().filter(function(Rr){return e(xe,Rr)===-1}),lt=new q("[]"),Et=Fe.length-1;Et>=0;Et--)lt=new q(".",[new Pe(Fe[Et]),lt]);var qt=new q(",",[X,new q("=",[se,new q(",",[lt,z])])]),nr=I.points,St=I.session.limit,cn=I.session.format_success;I.session.format_success=function(Rr){return Rr.substitution},I.add_goal(qt,!0,S);var Pr=[],yr=function(Rr){if(Rr!==!1&&Rr!==null&&!b.type.is_error(Rr)){I.__calls.unshift(yr);var Xr=!1,$n=Rr.links[se.id].args[0],Xs=Rr.links[se.id].args[1];for(var Hi in Pr)if(Pr.hasOwnProperty(Hi)){var Qs=Pr[Hi];if(Qs.variables.equals($n)){Qs.answers.push(Xs),Xr=!0;break}}Xr||Pr.push({variables:$n,answers:[Xs]}),I.session.limit=I.current_limit}else if(I.points=nr,I.session.limit=St,I.session.format_success=cn,b.type.is_error(Rr))I.throw_error(Rr.args[0]);else if(I.current_limit>0){for(var Zs=[],xi=0;xi=0;$s--)Fs=new q(".",[Rr[$s],Fs]);Zs.push(new ke(S.goal.replace(new q(",",[new q("=",[lt,Pr[xi].variables]),new q("=",[$,Fs])])),S.substitution,S))}I.prepend(Zs)}};I.__calls.unshift(yr)}},"functor/3":function(I,S,y){var R,z=y.args[0],X=y.args[1],$=y.args[2];if(b.type.is_variable(z)&&(b.type.is_variable(X)||b.type.is_variable($)))I.throw_error(b.error.instantiation("functor/3"));else if(!b.type.is_variable($)&&!b.type.is_integer($))I.throw_error(b.error.type("integer",y.args[2],"functor/3"));else if(!b.type.is_variable(X)&&!b.type.is_atomic(X))I.throw_error(b.error.type("atomic",y.args[1],"functor/3"));else if(b.type.is_integer(X)&&b.type.is_integer($)&&$.value!==0)I.throw_error(b.error.type("atom",y.args[1],"functor/3"));else if(b.type.is_variable(z)){if(y.args[2].value>=0){for(var se=[],xe=0;xe<$.value;xe++)se.push(I.next_free_variable());var Fe=b.type.is_integer(X)?X:new q(X.id,se);I.prepend([new ke(S.goal.replace(new q("=",[z,Fe])),S.substitution,S)])}}else{var lt=b.type.is_integer(z)?z:new q(z.id,[]),Et=b.type.is_integer(z)?new Re(0,!1):new Re(z.args.length,!1),qt=new q(",",[new q("=",[lt,X]),new q("=",[Et,$])]);I.prepend([new ke(S.goal.replace(qt),S.substitution,S)])}},"arg/3":function(I,S,y){if(b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1]))I.throw_error(b.error.instantiation(y.indicator));else if(y.args[0].value<0)I.throw_error(b.error.domain("not_less_than_zero",y.args[0],y.indicator));else if(!b.type.is_compound(y.args[1]))I.throw_error(b.error.type("compound",y.args[1],y.indicator));else{var R=y.args[0].value;if(R>0&&R<=y.args[1].args.length){var z=new q("=",[y.args[1].args[R-1],y.args[2]]);I.prepend([new ke(S.goal.replace(z),S.substitution,S)])}}},"=../2":function(I,S,y){var R;if(b.type.is_variable(y.args[0])&&(b.type.is_variable(y.args[1])||b.type.is_non_empty_list(y.args[1])&&b.type.is_variable(y.args[1].args[0])))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_fully_list(y.args[1]))I.throw_error(b.error.type("list",y.args[1],y.indicator));else if(b.type.is_variable(y.args[0])){if(!b.type.is_variable(y.args[1])){var X=[];for(R=y.args[1].args[1];R.indicator==="./2";)X.push(R.args[0]),R=R.args[1];b.type.is_variable(y.args[0])&&b.type.is_variable(R)?I.throw_error(b.error.instantiation(y.indicator)):X.length===0&&b.type.is_compound(y.args[1].args[0])?I.throw_error(b.error.type("atomic",y.args[1].args[0],y.indicator)):X.length>0&&(b.type.is_compound(y.args[1].args[0])||b.type.is_number(y.args[1].args[0]))?I.throw_error(b.error.type("atom",y.args[1].args[0],y.indicator)):X.length===0?I.prepend([new ke(S.goal.replace(new q("=",[y.args[1].args[0],y.args[0]],S)),S.substitution,S)]):I.prepend([new ke(S.goal.replace(new q("=",[new q(y.args[1].args[0].id,X),y.args[0]])),S.substitution,S)])}}else{if(b.type.is_atomic(y.args[0]))R=new q(".",[y.args[0],new q("[]")]);else{R=new q("[]");for(var z=y.args[0].args.length-1;z>=0;z--)R=new q(".",[y.args[0].args[z],R]);R=new q(".",[new q(y.args[0].id),R])}I.prepend([new ke(S.goal.replace(new q("=",[R,y.args[1]])),S.substitution,S)])}},"copy_term/2":function(I,S,y){var R=y.args[0].rename(I);I.prepend([new ke(S.goal.replace(new q("=",[R,y.args[1]])),S.substitution,S.parent)])},"term_variables/2":function(I,S,y){var R=y.args[0],z=y.args[1];if(!b.type.is_fully_list(z))I.throw_error(b.error.type("list",z,y.indicator));else{var X=g(o(Ce(R.variables()),function($){return new Pe($)}));I.prepend([new ke(S.goal.replace(new q("=",[z,X])),S.substitution,S)])}},"clause/2":function(I,S,y){if(b.type.is_variable(y.args[0]))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))I.throw_error(b.error.type("callable",y.args[0],y.indicator));else if(!b.type.is_variable(y.args[1])&&!b.type.is_callable(y.args[1]))I.throw_error(b.error.type("callable",y.args[1],y.indicator));else if(I.session.rules[y.args[0].indicator]!==void 0)if(I.is_public_predicate(y.args[0].indicator)){var R=[];for(var z in I.session.rules[y.args[0].indicator])if(I.session.rules[y.args[0].indicator].hasOwnProperty(z)){var X=I.session.rules[y.args[0].indicator][z];I.session.renamed_variables={},X=X.rename(I),X.body===null&&(X.body=new q("true"));var $=new q(",",[new q("=",[X.head,y.args[0]]),new q("=",[X.body,y.args[1]])]);R.push(new ke(S.goal.replace($),S.substitution,S))}I.prepend(R)}else I.throw_error(b.error.permission("access","private_procedure",y.args[0].indicator,y.indicator))},"current_predicate/1":function(I,S,y){var R=y.args[0];if(!b.type.is_variable(R)&&(!b.type.is_compound(R)||R.indicator!=="//2"))I.throw_error(b.error.type("predicate_indicator",R,y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_variable(R.args[0])&&!b.type.is_atom(R.args[0]))I.throw_error(b.error.type("atom",R.args[0],y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_variable(R.args[1])&&!b.type.is_integer(R.args[1]))I.throw_error(b.error.type("integer",R.args[1],y.indicator));else{var z=[];for(var X in I.session.rules)if(I.session.rules.hasOwnProperty(X)){var $=X.lastIndexOf("/"),se=X.substr(0,$),xe=parseInt(X.substr($+1,X.length-($+1))),Fe=new q("/",[new q(se),new Re(xe,!1)]),lt=new q("=",[Fe,R]);z.push(new ke(S.goal.replace(lt),S.substitution,S))}I.prepend(z)}},"asserta/1":function(I,S,y){if(b.type.is_variable(y.args[0]))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))I.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var R,z;y.args[0].indicator===":-/2"?(R=y.args[0].args[0],z=Ee(y.args[0].args[1])):(R=y.args[0],z=null),b.type.is_callable(R)?z!==null&&!b.type.is_callable(z)?I.throw_error(b.error.type("callable",z,y.indicator)):I.is_public_predicate(R.indicator)?(I.session.rules[R.indicator]===void 0&&(I.session.rules[R.indicator]=[]),I.session.public_predicates[R.indicator]=!0,I.session.rules[R.indicator]=[new Ve(R,z,!0)].concat(I.session.rules[R.indicator]),I.success(S)):I.throw_error(b.error.permission("modify","static_procedure",R.indicator,y.indicator)):I.throw_error(b.error.type("callable",R,y.indicator))}},"assertz/1":function(I,S,y){if(b.type.is_variable(y.args[0]))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))I.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var R,z;y.args[0].indicator===":-/2"?(R=y.args[0].args[0],z=Ee(y.args[0].args[1])):(R=y.args[0],z=null),b.type.is_callable(R)?z!==null&&!b.type.is_callable(z)?I.throw_error(b.error.type("callable",z,y.indicator)):I.is_public_predicate(R.indicator)?(I.session.rules[R.indicator]===void 0&&(I.session.rules[R.indicator]=[]),I.session.public_predicates[R.indicator]=!0,I.session.rules[R.indicator].push(new Ve(R,z,!0)),I.success(S)):I.throw_error(b.error.permission("modify","static_procedure",R.indicator,y.indicator)):I.throw_error(b.error.type("callable",R,y.indicator))}},"retract/1":function(I,S,y){if(b.type.is_variable(y.args[0]))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))I.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var R,z;if(y.args[0].indicator===":-/2"?(R=y.args[0].args[0],z=y.args[0].args[1]):(R=y.args[0],z=new q("true")),typeof S.retract>"u")if(I.is_public_predicate(R.indicator)){if(I.session.rules[R.indicator]!==void 0){for(var X=[],$=0;$I.get_flag("max_arity").value)I.throw_error(b.error.representation("max_arity",y.indicator));else{var R=y.args[0].args[0].id+"/"+y.args[0].args[1].value;I.is_public_predicate(R)?(delete I.session.rules[R],I.success(S)):I.throw_error(b.error.permission("modify","static_procedure",R,y.indicator))}},"atom_length/2":function(I,S,y){if(b.type.is_variable(y.args[0]))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_atom(y.args[0]))I.throw_error(b.error.type("atom",y.args[0],y.indicator));else if(!b.type.is_variable(y.args[1])&&!b.type.is_integer(y.args[1]))I.throw_error(b.error.type("integer",y.args[1],y.indicator));else if(b.type.is_integer(y.args[1])&&y.args[1].value<0)I.throw_error(b.error.domain("not_less_than_zero",y.args[1],y.indicator));else{var R=new Re(y.args[0].id.length,!1);I.prepend([new ke(S.goal.replace(new q("=",[R,y.args[1]])),S.substitution,S)])}},"atom_concat/3":function(I,S,y){var R,z,X=y.args[0],$=y.args[1],se=y.args[2];if(b.type.is_variable(se)&&(b.type.is_variable(X)||b.type.is_variable($)))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_atom(X))I.throw_error(b.error.type("atom",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_atom($))I.throw_error(b.error.type("atom",$,y.indicator));else if(!b.type.is_variable(se)&&!b.type.is_atom(se))I.throw_error(b.error.type("atom",se,y.indicator));else{var xe=b.type.is_variable(X),Fe=b.type.is_variable($);if(!xe&&!Fe)z=new q("=",[se,new q(X.id+$.id)]),I.prepend([new ke(S.goal.replace(z),S.substitution,S)]);else if(xe&&!Fe)R=se.id.substr(0,se.id.length-$.id.length),R+$.id===se.id&&(z=new q("=",[X,new q(R)]),I.prepend([new ke(S.goal.replace(z),S.substitution,S)]));else if(Fe&&!xe)R=se.id.substr(X.id.length),X.id+R===se.id&&(z=new q("=",[$,new q(R)]),I.prepend([new ke(S.goal.replace(z),S.substitution,S)]));else{for(var lt=[],Et=0;Et<=se.id.length;Et++){var qt=new q(se.id.substr(0,Et)),nr=new q(se.id.substr(Et));z=new q(",",[new q("=",[qt,X]),new q("=",[nr,$])]),lt.push(new ke(S.goal.replace(z),S.substitution,S))}I.prepend(lt)}}},"sub_atom/5":function(I,S,y){var R,z=y.args[0],X=y.args[1],$=y.args[2],se=y.args[3],xe=y.args[4];if(b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_integer(X))I.throw_error(b.error.type("integer",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_integer($))I.throw_error(b.error.type("integer",$,y.indicator));else if(!b.type.is_variable(se)&&!b.type.is_integer(se))I.throw_error(b.error.type("integer",se,y.indicator));else if(b.type.is_integer(X)&&X.value<0)I.throw_error(b.error.domain("not_less_than_zero",X,y.indicator));else if(b.type.is_integer($)&&$.value<0)I.throw_error(b.error.domain("not_less_than_zero",$,y.indicator));else if(b.type.is_integer(se)&&se.value<0)I.throw_error(b.error.domain("not_less_than_zero",se,y.indicator));else{var Fe=[],lt=[],Et=[];if(b.type.is_variable(X))for(R=0;R<=z.id.length;R++)Fe.push(R);else Fe.push(X.value);if(b.type.is_variable($))for(R=0;R<=z.id.length;R++)lt.push(R);else lt.push($.value);if(b.type.is_variable(se))for(R=0;R<=z.id.length;R++)Et.push(R);else Et.push(se.value);var qt=[];for(var nr in Fe)if(Fe.hasOwnProperty(nr)){R=Fe[nr];for(var St in lt)if(lt.hasOwnProperty(St)){var cn=lt[St],Pr=z.id.length-R-cn;if(e(Et,Pr)!==-1&&R+cn+Pr===z.id.length){var yr=z.id.substr(R,cn);if(z.id===z.id.substr(0,R)+yr+z.id.substr(R+cn,Pr)){var Rr=new q("=",[new q(yr),xe]),Xr=new q("=",[X,new Re(R)]),$n=new q("=",[$,new Re(cn)]),Xs=new q("=",[se,new Re(Pr)]),Hi=new q(",",[new q(",",[new q(",",[Xr,$n]),Xs]),Rr]);qt.push(new ke(S.goal.replace(Hi),S.substitution,S))}}}}I.prepend(qt)}},"atom_chars/2":function(I,S,y){var R=y.args[0],z=y.args[1];if(b.type.is_variable(R)&&b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_atom(R))I.throw_error(b.error.type("atom",R,y.indicator));else if(b.type.is_variable(R)){for(var se=z,xe=b.type.is_variable(R),Fe="";se.indicator==="./2";){if(b.type.is_character(se.args[0]))Fe+=se.args[0].id;else if(b.type.is_variable(se.args[0])&&xe){I.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_variable(se.args[0])){I.throw_error(b.error.type("character",se.args[0],y.indicator));return}se=se.args[1]}b.type.is_variable(se)&&xe?I.throw_error(b.error.instantiation(y.indicator)):!b.type.is_empty_list(se)&&!b.type.is_variable(se)?I.throw_error(b.error.type("list",z,y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[new q(Fe),R])),S.substitution,S)])}else{for(var X=new q("[]"),$=R.id.length-1;$>=0;$--)X=new q(".",[new q(R.id.charAt($)),X]);I.prepend([new ke(S.goal.replace(new q("=",[z,X])),S.substitution,S)])}},"atom_codes/2":function(I,S,y){var R=y.args[0],z=y.args[1];if(b.type.is_variable(R)&&b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_atom(R))I.throw_error(b.error.type("atom",R,y.indicator));else if(b.type.is_variable(R)){for(var se=z,xe=b.type.is_variable(R),Fe="";se.indicator==="./2";){if(b.type.is_character_code(se.args[0]))Fe+=u(se.args[0].value);else if(b.type.is_variable(se.args[0])&&xe){I.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_variable(se.args[0])){I.throw_error(b.error.representation("character_code",y.indicator));return}se=se.args[1]}b.type.is_variable(se)&&xe?I.throw_error(b.error.instantiation(y.indicator)):!b.type.is_empty_list(se)&&!b.type.is_variable(se)?I.throw_error(b.error.type("list",z,y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[new q(Fe),R])),S.substitution,S)])}else{for(var X=new q("[]"),$=R.id.length-1;$>=0;$--)X=new q(".",[new Re(n(R.id,$),!1),X]);I.prepend([new ke(S.goal.replace(new q("=",[z,X])),S.substitution,S)])}},"char_code/2":function(I,S,y){var R=y.args[0],z=y.args[1];if(b.type.is_variable(R)&&b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_character(R))I.throw_error(b.error.type("character",R,y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_integer(z))I.throw_error(b.error.type("integer",z,y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_character_code(z))I.throw_error(b.error.representation("character_code",y.indicator));else if(b.type.is_variable(z)){var X=new Re(n(R.id,0),!1);I.prepend([new ke(S.goal.replace(new q("=",[X,z])),S.substitution,S)])}else{var $=new q(u(z.value));I.prepend([new ke(S.goal.replace(new q("=",[$,R])),S.substitution,S)])}},"number_chars/2":function(I,S,y){var R,z=y.args[0],X=y.args[1];if(b.type.is_variable(z)&&b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_number(z))I.throw_error(b.error.type("number",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))I.throw_error(b.error.type("list",X,y.indicator));else{var $=b.type.is_variable(z);if(!b.type.is_variable(X)){var se=X,xe=!0;for(R="";se.indicator==="./2";){if(b.type.is_character(se.args[0]))R+=se.args[0].id;else if(b.type.is_variable(se.args[0]))xe=!1;else if(!b.type.is_variable(se.args[0])){I.throw_error(b.error.type("character",se.args[0],y.indicator));return}se=se.args[1]}if(xe=xe&&b.type.is_empty_list(se),!b.type.is_empty_list(se)&&!b.type.is_variable(se)){I.throw_error(b.error.type("list",X,y.indicator));return}if(!xe&&$){I.throw_error(b.error.instantiation(y.indicator));return}else if(xe)if(b.type.is_variable(se)&&$){I.throw_error(b.error.instantiation(y.indicator));return}else{var Fe=I.parse(R),lt=Fe.value;!b.type.is_number(lt)||Fe.tokens[Fe.tokens.length-1].space?I.throw_error(b.error.syntax_by_predicate("parseable_number",y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[z,lt])),S.substitution,S)]);return}}if(!$){R=z.toString();for(var Et=new q("[]"),qt=R.length-1;qt>=0;qt--)Et=new q(".",[new q(R.charAt(qt)),Et]);I.prepend([new ke(S.goal.replace(new q("=",[X,Et])),S.substitution,S)])}}},"number_codes/2":function(I,S,y){var R,z=y.args[0],X=y.args[1];if(b.type.is_variable(z)&&b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_number(z))I.throw_error(b.error.type("number",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))I.throw_error(b.error.type("list",X,y.indicator));else{var $=b.type.is_variable(z);if(!b.type.is_variable(X)){var se=X,xe=!0;for(R="";se.indicator==="./2";){if(b.type.is_character_code(se.args[0]))R+=u(se.args[0].value);else if(b.type.is_variable(se.args[0]))xe=!1;else if(!b.type.is_variable(se.args[0])){I.throw_error(b.error.type("character_code",se.args[0],y.indicator));return}se=se.args[1]}if(xe=xe&&b.type.is_empty_list(se),!b.type.is_empty_list(se)&&!b.type.is_variable(se)){I.throw_error(b.error.type("list",X,y.indicator));return}if(!xe&&$){I.throw_error(b.error.instantiation(y.indicator));return}else if(xe)if(b.type.is_variable(se)&&$){I.throw_error(b.error.instantiation(y.indicator));return}else{var Fe=I.parse(R),lt=Fe.value;!b.type.is_number(lt)||Fe.tokens[Fe.tokens.length-1].space?I.throw_error(b.error.syntax_by_predicate("parseable_number",y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[z,lt])),S.substitution,S)]);return}}if(!$){R=z.toString();for(var Et=new q("[]"),qt=R.length-1;qt>=0;qt--)Et=new q(".",[new Re(n(R,qt),!1),Et]);I.prepend([new ke(S.goal.replace(new q("=",[X,Et])),S.substitution,S)])}}},"upcase_atom/2":function(I,S,y){var R=y.args[0],z=y.args[1];b.type.is_variable(R)?I.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(R)?!b.type.is_variable(z)&&!b.type.is_atom(z)?I.throw_error(b.error.type("atom",z,y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[z,new q(R.id.toUpperCase(),[])])),S.substitution,S)]):I.throw_error(b.error.type("atom",R,y.indicator))},"downcase_atom/2":function(I,S,y){var R=y.args[0],z=y.args[1];b.type.is_variable(R)?I.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(R)?!b.type.is_variable(z)&&!b.type.is_atom(z)?I.throw_error(b.error.type("atom",z,y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[z,new q(R.id.toLowerCase(),[])])),S.substitution,S)]):I.throw_error(b.error.type("atom",R,y.indicator))},"atomic_list_concat/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q("atomic_list_concat",[R,new q("",[]),z])),S.substitution,S)])},"atomic_list_concat/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(z)||b.type.is_variable(R)&&b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_list(R))I.throw_error(b.error.type("list",R,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_atom(X))I.throw_error(b.error.type("atom",X,y.indicator));else if(b.type.is_variable(X)){for(var se="",xe=R;b.type.is_term(xe)&&xe.indicator==="./2";){if(!b.type.is_atom(xe.args[0])&&!b.type.is_number(xe.args[0])){I.throw_error(b.error.type("atomic",xe.args[0],y.indicator));return}se!==""&&(se+=z.id),b.type.is_atom(xe.args[0])?se+=xe.args[0].id:se+=""+xe.args[0].value,xe=xe.args[1]}se=new q(se,[]),b.type.is_variable(xe)?I.throw_error(b.error.instantiation(y.indicator)):!b.type.is_term(xe)||xe.indicator!=="[]/0"?I.throw_error(b.error.type("list",R,y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[se,X])),S.substitution,S)])}else{var $=g(o(X.id.split(z.id),function(Fe){return new q(Fe,[])}));I.prepend([new ke(S.goal.replace(new q("=",[$,R])),S.substitution,S)])}},"@=/2":function(I,S,y){b.compare(y.args[0],y.args[1])>0&&I.success(S)},"@>=/2":function(I,S,y){b.compare(y.args[0],y.args[1])>=0&&I.success(S)},"compare/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2];if(!b.type.is_variable(R)&&!b.type.is_atom(R))I.throw_error(b.error.type("atom",R,y.indicator));else if(b.type.is_atom(R)&&["<",">","="].indexOf(R.id)===-1)I.throw_error(b.type.domain("order",R,y.indicator));else{var $=b.compare(z,X);$=$===0?"=":$===-1?"<":">",I.prepend([new ke(S.goal.replace(new q("=",[R,new q($,[])])),S.substitution,S)])}},"is/2":function(I,S,y){var R=y.args[1].interpret(I);b.type.is_number(R)?I.prepend([new ke(S.goal.replace(new q("=",[y.args[0],R],I.level)),S.substitution,S)]):I.throw_error(R)},"between/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(R)||b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_integer(R))I.throw_error(b.error.type("integer",R,y.indicator));else if(!b.type.is_integer(z))I.throw_error(b.error.type("integer",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_integer(X))I.throw_error(b.error.type("integer",X,y.indicator));else if(b.type.is_variable(X)){var $=[new ke(S.goal.replace(new q("=",[X,R])),S.substitution,S)];R.value=X.value&&I.success(S)},"succ/2":function(I,S,y){var R=y.args[0],z=y.args[1];b.type.is_variable(R)&&b.type.is_variable(z)?I.throw_error(b.error.instantiation(y.indicator)):!b.type.is_variable(R)&&!b.type.is_integer(R)?I.throw_error(b.error.type("integer",R,y.indicator)):!b.type.is_variable(z)&&!b.type.is_integer(z)?I.throw_error(b.error.type("integer",z,y.indicator)):!b.type.is_variable(R)&&R.value<0?I.throw_error(b.error.domain("not_less_than_zero",R,y.indicator)):!b.type.is_variable(z)&&z.value<0?I.throw_error(b.error.domain("not_less_than_zero",z,y.indicator)):(b.type.is_variable(z)||z.value>0)&&(b.type.is_variable(R)?I.prepend([new ke(S.goal.replace(new q("=",[R,new Re(z.value-1,!1)])),S.substitution,S)]):I.prepend([new ke(S.goal.replace(new q("=",[z,new Re(R.value+1,!1)])),S.substitution,S)]))},"=:=/2":function(I,S,y){var R=b.arithmetic_compare(I,y.args[0],y.args[1]);b.type.is_term(R)?I.throw_error(R):R===0&&I.success(S)},"=\\=/2":function(I,S,y){var R=b.arithmetic_compare(I,y.args[0],y.args[1]);b.type.is_term(R)?I.throw_error(R):R!==0&&I.success(S)},"/2":function(I,S,y){var R=b.arithmetic_compare(I,y.args[0],y.args[1]);b.type.is_term(R)?I.throw_error(R):R>0&&I.success(S)},">=/2":function(I,S,y){var R=b.arithmetic_compare(I,y.args[0],y.args[1]);b.type.is_term(R)?I.throw_error(R):R>=0&&I.success(S)},"var/1":function(I,S,y){b.type.is_variable(y.args[0])&&I.success(S)},"atom/1":function(I,S,y){b.type.is_atom(y.args[0])&&I.success(S)},"atomic/1":function(I,S,y){b.type.is_atomic(y.args[0])&&I.success(S)},"compound/1":function(I,S,y){b.type.is_compound(y.args[0])&&I.success(S)},"integer/1":function(I,S,y){b.type.is_integer(y.args[0])&&I.success(S)},"float/1":function(I,S,y){b.type.is_float(y.args[0])&&I.success(S)},"number/1":function(I,S,y){b.type.is_number(y.args[0])&&I.success(S)},"nonvar/1":function(I,S,y){b.type.is_variable(y.args[0])||I.success(S)},"ground/1":function(I,S,y){y.variables().length===0&&I.success(S)},"acyclic_term/1":function(I,S,y){for(var R=S.substitution.apply(S.substitution),z=y.args[0].variables(),X=0;X0?St[St.length-1]:null,St!==null&&(qt=J(I,St,0,I.__get_max_priority(),!1))}if(qt.type===p&&qt.len===St.length-1&&cn.value==="."){qt=qt.value.rename(I);var Pr=new q("=",[z,qt]);if(se.variables){var yr=g(o(Ce(qt.variables()),function(Rr){return new Pe(Rr)}));Pr=new q(",",[Pr,new q("=",[se.variables,yr])])}if(se.variable_names){var yr=g(o(Ce(qt.variables()),function(Xr){var $n;for($n in I.session.renamed_variables)if(I.session.renamed_variables.hasOwnProperty($n)&&I.session.renamed_variables[$n]===Xr)break;return new q("=",[new q($n,[]),new Pe(Xr)])}));Pr=new q(",",[Pr,new q("=",[se.variable_names,yr])])}if(se.singletons){var yr=g(o(new Ve(qt,null).singleton_variables(),function(Xr){var $n;for($n in I.session.renamed_variables)if(I.session.renamed_variables.hasOwnProperty($n)&&I.session.renamed_variables[$n]===Xr)break;return new q("=",[new q($n,[]),new Pe(Xr)])}));Pr=new q(",",[Pr,new q("=",[se.singletons,yr])])}I.prepend([new ke(S.goal.replace(Pr),S.substitution,S)])}else qt.type===p?I.throw_error(b.error.syntax(St[qt.len],"unexpected token",!1)):I.throw_error(qt.value)}}},"write/1":function(I,S,y){var R=y.args[0];I.prepend([new ke(S.goal.replace(new q(",",[new q("current_output",[new Pe("S")]),new q("write",[new Pe("S"),R])])),S.substitution,S)])},"write/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q("write_term",[R,z,new q(".",[new q("quoted",[new q("false",[])]),new q(".",[new q("ignore_ops",[new q("false")]),new q(".",[new q("numbervars",[new q("true")]),new q("[]",[])])])])])),S.substitution,S)])},"writeq/1":function(I,S,y){var R=y.args[0];I.prepend([new ke(S.goal.replace(new q(",",[new q("current_output",[new Pe("S")]),new q("writeq",[new Pe("S"),R])])),S.substitution,S)])},"writeq/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q("write_term",[R,z,new q(".",[new q("quoted",[new q("true",[])]),new q(".",[new q("ignore_ops",[new q("false")]),new q(".",[new q("numbervars",[new q("true")]),new q("[]",[])])])])])),S.substitution,S)])},"write_canonical/1":function(I,S,y){var R=y.args[0];I.prepend([new ke(S.goal.replace(new q(",",[new q("current_output",[new Pe("S")]),new q("write_canonical",[new Pe("S"),R])])),S.substitution,S)])},"write_canonical/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q("write_term",[R,z,new q(".",[new q("quoted",[new q("true",[])]),new q(".",[new q("ignore_ops",[new q("true")]),new q(".",[new q("numbervars",[new q("false")]),new q("[]",[])])])])])),S.substitution,S)])},"write_term/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q(",",[new q("current_output",[new Pe("S")]),new q("write_term",[new Pe("S"),R,z])])),S.substitution,S)])},"write_term/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2],$=b.type.is_stream(R)?R:I.get_stream_by_alias(R.id);if(b.type.is_variable(R)||b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_list(X))I.throw_error(b.error.type("list",X,y.indicator));else if(!b.type.is_stream(R)&&!b.type.is_atom(R))I.throw_error(b.error.domain("stream_or_alias",R,y.indicator));else if(!b.type.is_stream($)||$.stream===null)I.throw_error(b.error.existence("stream",R,y.indicator));else if($.input)I.throw_error(b.error.permission("output","stream",R,y.indicator));else if($.type==="binary")I.throw_error(b.error.permission("output","binary_stream",R,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")I.throw_error(b.error.permission("output","past_end_of_stream",R,y.indicator));else{for(var se={},xe=X,Fe;b.type.is_term(xe)&&xe.indicator==="./2";){if(Fe=xe.args[0],b.type.is_variable(Fe)){I.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_write_option(Fe)){I.throw_error(b.error.domain("write_option",Fe,y.indicator));return}se[Fe.id]=Fe.args[0].id==="true",xe=xe.args[1]}if(xe.indicator!=="[]/0"){b.type.is_variable(xe)?I.throw_error(b.error.instantiation(y.indicator)):I.throw_error(b.error.type("list",X,y.indicator));return}else{se.session=I.session;var lt=z.toString(se);$.stream.put(lt,$.position),typeof $.position=="number"&&($.position+=lt.length),I.success(S)}}},"halt/0":function(I,S,y){I.points=[]},"halt/1":function(I,S,y){var R=y.args[0];b.type.is_variable(R)?I.throw_error(b.error.instantiation(y.indicator)):b.type.is_integer(R)?I.points=[]:I.throw_error(b.error.type("integer",R,y.indicator))},"current_prolog_flag/2":function(I,S,y){var R=y.args[0],z=y.args[1];if(!b.type.is_variable(R)&&!b.type.is_atom(R))I.throw_error(b.error.type("atom",R,y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_flag(R))I.throw_error(b.error.domain("prolog_flag",R,y.indicator));else{var X=[];for(var $ in b.flag)if(b.flag.hasOwnProperty($)){var se=new q(",",[new q("=",[new q($),R]),new q("=",[I.get_flag($),z])]);X.push(new ke(S.goal.replace(se),S.substitution,S))}I.prepend(X)}},"set_prolog_flag/2":function(I,S,y){var R=y.args[0],z=y.args[1];b.type.is_variable(R)||b.type.is_variable(z)?I.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(R)?b.type.is_flag(R)?b.type.is_value_flag(R,z)?b.type.is_modifiable_flag(R)?(I.session.flag[R.id]=z,I.success(S)):I.throw_error(b.error.permission("modify","flag",R)):I.throw_error(b.error.domain("flag_value",new q("+",[R,z]),y.indicator)):I.throw_error(b.error.domain("prolog_flag",R,y.indicator)):I.throw_error(b.error.type("atom",R,y.indicator))}},flag:{bounded:{allowed:[new q("true"),new q("false")],value:new q("true"),changeable:!1},max_integer:{allowed:[new Re(Number.MAX_SAFE_INTEGER)],value:new Re(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Re(Number.MIN_SAFE_INTEGER)],value:new Re(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new q("down"),new q("toward_zero")],value:new q("toward_zero"),changeable:!1},char_conversion:{allowed:[new q("on"),new q("off")],value:new q("on"),changeable:!0},debug:{allowed:[new q("on"),new q("off")],value:new q("off"),changeable:!0},max_arity:{allowed:[new q("unbounded")],value:new q("unbounded"),changeable:!1},unknown:{allowed:[new q("error"),new q("fail"),new q("warning")],value:new q("error"),changeable:!0},double_quotes:{allowed:[new q("chars"),new q("codes"),new q("atom")],value:new q("codes"),changeable:!0},occurs_check:{allowed:[new q("false"),new q("true")],value:new q("false"),changeable:!0},dialect:{allowed:[new q("tau")],value:new q("tau"),changeable:!1},version_data:{allowed:[new q("tau",[new Re(t.major,!1),new Re(t.minor,!1),new Re(t.patch,!1),new q(t.status)])],value:new q("tau",[new Re(t.major,!1),new Re(t.minor,!1),new Re(t.patch,!1),new q(t.status)]),changeable:!1},nodejs:{allowed:[new q("yes"),new q("no")],value:new q(typeof El<"u"&&El.exports?"yes":"no"),changeable:!1}},unify:function(I,S,y){y=y===void 0?!1:y;for(var R=[{left:I,right:S}],z={};R.length!==0;){var X=R.pop();if(I=X.left,S=X.right,b.type.is_term(I)&&b.type.is_term(S)){if(I.indicator!==S.indicator)return null;for(var $=0;$z.value?1:0:z}else return R},operate:function(I,S){if(b.type.is_operator(S)){for(var y=b.type.is_operator(S),R=[],z,X=!1,$=0;$I.get_flag("max_integer").value||z0?I.start+I.matches[0].length:I.start,z=y?new q("token_not_found"):new q("found",[new q(I.value.toString())]),X=new q(".",[new q("line",[new Re(I.line+1)]),new q(".",[new q("column",[new Re(R+1)]),new q(".",[z,new q("[]",[])])])]);return new q("error",[new q("syntax_error",[new q(S)]),X])},syntax_by_predicate:function(I,S){return new q("error",[new q("syntax_error",[new q(I)]),Z(S)])}},warning:{singleton:function(I,S,y){for(var R=new q("[]"),z=I.length-1;z>=0;z--)R=new q(".",[new Pe(I[z]),R]);return new q("warning",[new q("singleton_variables",[R,Z(S)]),new q(".",[new q("line",[new Re(y,!1)]),new q("[]")])])},failed_goal:function(I,S){return new q("warning",[new q("failed_goal",[I]),new q(".",[new q("line",[new Re(S,!1)]),new q("[]")])])}},format_variable:function(I){return"_"+I},format_answer:function(I,S,R){S instanceof be&&(S=S.thread);var R=R||{};if(R.session=S?S.session:void 0,b.type.is_error(I))return"uncaught exception: "+I.args[0].toString();if(I===!1)return"false.";if(I===null)return"limit exceeded ;";var z=0,X="";if(b.type.is_substitution(I)){var $=I.domain(!0);I=I.filter(function(Fe,lt){return!b.type.is_variable(lt)||$.indexOf(lt.id)!==-1&&Fe!==lt.id})}for(var se in I.links)I.links.hasOwnProperty(se)&&(z++,X!==""&&(X+=", "),X+=se.toString(R)+" = "+I.links[se].toString(R));var xe=typeof S>"u"||S.points.length>0?" ;":".";return z===0?"true"+xe:X+xe},flatten_error:function(I){if(!b.type.is_error(I))return null;I=I.args[0];var S={};return S.type=I.args[0].id,S.thrown=S.type==="syntax_error"?null:I.args[1].id,S.expected=null,S.found=null,S.representation=null,S.existence=null,S.existence_type=null,S.line=null,S.column=null,S.permission_operation=null,S.permission_type=null,S.evaluation_type=null,S.type==="type_error"||S.type==="domain_error"?(S.expected=I.args[0].args[0].id,S.found=I.args[0].args[1].toString()):S.type==="syntax_error"?I.args[1].indicator==="./2"?(S.expected=I.args[0].args[0].id,S.found=I.args[1].args[1].args[1].args[0],S.found=S.found.id==="token_not_found"?S.found.id:S.found.args[0].id,S.line=I.args[1].args[0].args[0].value,S.column=I.args[1].args[1].args[0].args[0].value):S.thrown=I.args[1].id:S.type==="permission_error"?(S.found=I.args[0].args[2].toString(),S.permission_operation=I.args[0].args[0].id,S.permission_type=I.args[0].args[1].id):S.type==="evaluation_error"?S.evaluation_type=I.args[0].args[0].id:S.type==="representation_error"?S.representation=I.args[0].args[0].id:S.type==="existence_error"&&(S.existence=I.args[0].args[1].toString(),S.existence_type=I.args[0].args[0].id),S},create:function(I){return new b.type.Session(I)}};typeof El<"u"?El.exports=b:window.pl=b})()});function Kme(t,e,r){t.prepend(r.map(o=>new Oa.default.type.State(e.goal.replace(o),e.substitution,e)))}function n6(t){let e=Jme.get(t.session);if(e==null)throw new Error("Assertion failed: A project should have been registered for the active session");return e}function zme(t,e){Jme.set(t,e),t.consult(`:- use_module(library(${Wgt.id})).`)}var i6,Oa,Vme,Lh,jgt,Ggt,Jme,Wgt,Xme=It(()=>{Ke();i6=et(N2()),Oa=et(r6()),Vme=et(ve("vm")),{is_atom:Lh,is_variable:jgt,is_instantiated_list:Ggt}=Oa.default.type;Jme=new WeakMap;Wgt=new Oa.default.type.Module("constraints",{"project_workspaces_by_descriptor/3":(t,e,r)=>{let[o,a,n]=r.args;if(!Lh(o)||!Lh(a)){t.throw_error(Oa.default.error.instantiation(r.indicator));return}let u=G.parseIdent(o.id),A=G.makeDescriptor(u,a.id),h=n6(t).tryWorkspaceByDescriptor(A);jgt(n)&&h!==null&&Kme(t,e,[new Oa.default.type.Term("=",[n,new Oa.default.type.Term(String(h.relativeCwd))])]),Lh(n)&&h!==null&&h.relativeCwd===n.id&&t.success(e)},"workspace_field/3":(t,e,r)=>{let[o,a,n]=r.args;if(!Lh(o)||!Lh(a)){t.throw_error(Oa.default.error.instantiation(r.indicator));return}let A=n6(t).tryWorkspaceByCwd(o.id);if(A==null)return;let p=(0,i6.default)(A.manifest.raw,a.id);typeof p>"u"||Kme(t,e,[new Oa.default.type.Term("=",[n,new Oa.default.type.Term(typeof p=="object"?JSON.stringify(p):p)])])},"workspace_field_test/3":(t,e,r)=>{let[o,a,n]=r.args;t.prepend([new Oa.default.type.State(e.goal.replace(new Oa.default.type.Term("workspace_field_test",[o,a,n,new Oa.default.type.Term("[]",[])])),e.substitution,e)])},"workspace_field_test/4":(t,e,r)=>{let[o,a,n,u]=r.args;if(!Lh(o)||!Lh(a)||!Lh(n)||!Ggt(u)){t.throw_error(Oa.default.error.instantiation(r.indicator));return}let p=n6(t).tryWorkspaceByCwd(o.id);if(p==null)return;let h=(0,i6.default)(p.manifest.raw,a.id);if(typeof h>"u")return;let E={$$:h};for(let[D,x]of u.toJavaScript().entries())E[`$${D}`]=x;Vme.default.runInNewContext(n.id,E)&&t.success(e)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"])});var Y2={};Kt(Y2,{Constraints:()=>o6,DependencyType:()=>tye});function Vs(t){if(t instanceof rC.default.type.Num)return t.value;if(t instanceof rC.default.type.Term)switch(t.indicator){case"throw/1":return Vs(t.args[0]);case"error/1":return Vs(t.args[0]);case"error/2":if(t.args[0]instanceof rC.default.type.Term&&t.args[0].indicator==="syntax_error/1")return Object.assign(Vs(t.args[0]),...Vs(t.args[1]));{let e=Vs(t.args[0]);return e.message+=` (in ${Vs(t.args[1])})`,e}case"syntax_error/1":return new Jt(43,`Syntax error: ${Vs(t.args[0])}`);case"existence_error/2":return new Jt(44,`Existence error: ${Vs(t.args[0])} ${Vs(t.args[1])} not found`);case"instantiation_error/0":return new Jt(75,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:Vs(t.args[0])};case"column/1":return{column:Vs(t.args[0])};case"found/1":return{found:Vs(t.args[0])};case"./2":return[Vs(t.args[0])].concat(Vs(t.args[1]));case"//2":return`${Vs(t.args[0])}/${Vs(t.args[1])}`;default:return t.id}throw`couldn't pretty print because of unsupported node ${t}`}function $me(t){let e;try{e=Vs(t)}catch(r){throw typeof r=="string"?new Jt(42,`Unknown error: ${t} (note: ${r})`):r}return typeof e.line<"u"&&typeof e.column<"u"&&(e.message+=` at line ${e.line}, column ${e.column}`),e}function Zg(t){return t.id==="null"?null:`${t.toJavaScript()}`}function Ygt(t){if(t.id==="null")return null;{let e=t.toJavaScript();if(typeof e!="string")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return JSON.stringify(e)}}}function Oh(t){return typeof t=="string"?`'${t}'`:"[]"}var eye,rC,tye,Zme,s6,o6,K2=It(()=>{Ke();Ke();Pt();eye=et(Qme()),rC=et(r6());j2();Xme();(0,eye.default)(rC.default);tye=(o=>(o.Dependencies="dependencies",o.DevDependencies="devDependencies",o.PeerDependencies="peerDependencies",o))(tye||{}),Zme=["dependencies","devDependencies","peerDependencies"];s6=class{constructor(e,r){let o=1e3*e.workspaces.length;this.session=rC.default.create(o),zme(this.session,e),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(e=>{this.session.answer(r=>{e(r)})})}async*makeQuery(e){let r=this.session.query(e);if(r!==!0)throw $me(r);for(;;){let o=await this.fetchNextAnswer();if(o===null)throw new Jt(79,"Resolution limit exceeded");if(!o)break;if(o.id==="throw")throw $me(o);yield o}}};o6=class t{constructor(e){this.source="";this.project=e;let r=e.configuration.get("constraintsPath");ae.existsSync(r)&&(this.source=ae.readFileSync(r,"utf8"))}static async find(e){return new t(e)}getProjectDatabase(){let e="";for(let r of Zme)e+=`dependency_type(${r}). +`;for(let r of this.project.workspacesByCwd.values()){let o=r.relativeCwd;e+=`workspace(${Oh(o)}). +`,e+=`workspace_ident(${Oh(o)}, ${Oh(G.stringifyIdent(r.anchoredLocator))}). +`,e+=`workspace_version(${Oh(o)}, ${Oh(r.manifest.version)}). +`;for(let a of Zme)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${Oh(o)}, ${Oh(G.stringifyIdent(n))}, ${Oh(n.range)}, ${a}). +`}return e+=`workspace(_) :- false. +`,e+=`workspace_ident(_, _) :- false. +`,e+=`workspace_version(_, _) :- false. +`,e+=`workspace_has_dependency(_, _, _, _) :- false. +`,e}getDeclarations(){let e="";return e+=`gen_enforced_dependency(_, _, _, _) :- false. +`,e+=`gen_enforced_field(_, _, _) :- false. +`,e}get fullSource(){return`${this.getProjectDatabase()} +${this.source} +${this.getDeclarations()}`}createSession(){return new s6(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),o=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:u,dependencyType:A}of e){let p=q2([A,G.stringifyIdent(n)]),h=qe.getMapWithDefault(o,a.cwd);qe.getMapWithDefault(h,p).set(u??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:u}of r){let A=q2(n),p=qe.getMapWithDefault(o,a.cwd);qe.getMapWithDefault(p,A).set(JSON.parse(u)??void 0,new Set)}return{manifestUpdates:o,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=K.resolve(this.project.cwd,Zg(o.links.WorkspaceCwd)),n=Zg(o.links.DependencyIdent),u=Zg(o.links.DependencyRange),A=Zg(o.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=G.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:u,dependencyType:A})}return qe.sortMap(r,[({dependencyRange:o})=>o!==null?"0":"1",({workspace:o})=>G.stringifyIdent(o.anchoredLocator),({dependencyIdent:o})=>G.stringifyIdent(o)])}async genEnforcedFields(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=K.resolve(this.project.cwd,Zg(o.links.WorkspaceCwd)),n=Zg(o.links.FieldPath),u=Ygt(o.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:n,fieldValue:u})}return qe.sortMap(r,[({workspace:o})=>G.stringifyIdent(o.anchoredLocator),({fieldPath:o})=>o])}async*query(e){let r=this.createSession();for await(let o of r.makeQuery(e)){let a={};for(let[n,u]of Object.entries(o.links))n!=="_"&&(a[n]=Zg(u));yield a}}}});var uye=_(tQ=>{"use strict";Object.defineProperty(tQ,"__esModule",{value:!0});function lB(t){let e=[...t.caches],r=e.shift();return r===void 0?cye():{get(o,a,n={miss:()=>Promise.resolve()}){return r.get(o,a,n).catch(()=>lB({caches:e}).get(o,a,n))},set(o,a){return r.set(o,a).catch(()=>lB({caches:e}).set(o,a))},delete(o){return r.delete(o).catch(()=>lB({caches:e}).delete(o))},clear(){return r.clear().catch(()=>lB({caches:e}).clear())}}}function cye(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}tQ.createFallbackableCache=lB;tQ.createNullCache=cye});var fye=_((pYt,Aye)=>{Aye.exports=uye()});var pye=_(C6=>{"use strict";Object.defineProperty(C6,"__esModule",{value:!0});function Adt(t={serializable:!0}){let e={};return{get(r,o,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let u=o(),A=a&&a.miss||(()=>Promise.resolve());return u.then(p=>A(p)).then(()=>u)},set(r,o){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}C6.createInMemoryCache=Adt});var gye=_((gYt,hye)=>{hye.exports=pye()});var mye=_(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});function fdt(t,e,r){let o={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===I6.WithinHeaders?o:{}},queryParameters(){return t===I6.WithinQueryParameters?o:{}}}}function pdt(t){let e=0,r=()=>(e++,new Promise(o=>{setTimeout(()=>{o(t(r))},Math.min(100*e,1e3))}));return t(r)}function dye(t,e=(r,o)=>Promise.resolve()){return Object.assign(t,{wait(r){return dye(t.then(o=>Promise.all([e(o,r),o])).then(o=>o[1]))}})}function hdt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[r],t[r]=o}return t}function gdt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function ddt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var mdt="4.22.1",ydt=t=>()=>t.transporter.requester.destroy(),I6={WithinQueryParameters:0,WithinHeaders:1};su.AuthMode=I6;su.addMethods=gdt;su.createAuth=fdt;su.createRetryablePromise=pdt;su.createWaitablePromise=dye;su.destroy=ydt;su.encode=ddt;su.shuffle=hdt;su.version=mdt});var cB=_((mYt,yye)=>{yye.exports=mye()});var Eye=_(w6=>{"use strict";Object.defineProperty(w6,"__esModule",{value:!0});var Edt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};w6.MethodEnum=Edt});var uB=_((EYt,Cye)=>{Cye.exports=Eye()});var Nye=_(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});var wye=uB();function B6(t,e){let r=t||{},o=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(o[a]=r[a])}),{data:Object.entries(o).length>0?o:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var AB={Read:1,Write:2,Any:3},fC={Up:1,Down:2,Timeouted:3},Bye=2*60*1e3;function D6(t,e=fC.Up){return{...t,status:e,lastUpdate:Date.now()}}function vye(t){return t.status===fC.Up||Date.now()-t.lastUpdate>Bye}function Dye(t){return t.status===fC.Timeouted&&Date.now()-t.lastUpdate<=Bye}function P6(t){return typeof t=="string"?{protocol:"https",url:t,accept:AB.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||AB.Any}}function Cdt(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(D6(r))))).then(r=>{let o=r.filter(A=>vye(A)),a=r.filter(A=>Dye(A)),n=[...o,...a],u=n.length>0?n.map(A=>P6(A)):e;return{getTimeout(A,p){return(a.length===0&&A===0?1:a.length+3+A)*p},statelessHosts:u}})}var Idt=({isTimedOut:t,status:e})=>!t&&~~e===0,wdt=t=>{let e=t.status;return t.isTimedOut||Idt(t)||~~(e/100)!==2&&~~(e/100)!==4},Bdt=({status:t})=>~~(t/100)===2,vdt=(t,e)=>wdt(t)?e.onRetry(t):Bdt(t)?e.onSuccess(t):e.onFail(t);function Iye(t,e,r,o){let a=[],n=kye(r,o),u=Qye(t,o),A=r.method,p=r.method!==wye.MethodEnum.Get?{}:{...r.data,...o.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...o.queryParameters},E=0,w=(D,x)=>{let C=D.pop();if(C===void 0)throw Tye(v6(a));let T={data:n,headers:u,method:A,url:bye(C,r.path,h),connectTimeout:x(E,t.timeouts.connect),responseTimeout:x(E,o.timeout)},L=J=>{let te={request:T,response:J,host:C,triesLeft:D.length};return a.push(te),te},U={onSuccess:J=>Pye(J),onRetry(J){let te=L(J);return J.isTimedOut&&E++,Promise.all([t.logger.info("Retryable failure",S6(te)),t.hostsCache.set(C,D6(C,J.isTimedOut?fC.Timeouted:fC.Down))]).then(()=>w(D,x))},onFail(J){throw L(J),Sye(J,v6(a))}};return t.requester.send(T).then(J=>vdt(J,U))};return Cdt(t.hostsCache,e).then(D=>w([...D.statelessHosts].reverse(),D.getTimeout))}function Ddt(t){let{hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,hosts:p,queryParameters:h,headers:E}=t,w={hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,headers:E,queryParameters:h,hosts:p.map(D=>P6(D)),read(D,x){let C=B6(x,w.timeouts.read),T=()=>Iye(w,w.hosts.filter(J=>(J.accept&AB.Read)!==0),D,C);if((C.cacheable!==void 0?C.cacheable:D.cacheable)!==!0)return T();let U={request:D,mappedRequestOptions:C,transporter:{queryParameters:w.queryParameters,headers:w.headers}};return w.responsesCache.get(U,()=>w.requestsCache.get(U,()=>w.requestsCache.set(U,T()).then(J=>Promise.all([w.requestsCache.delete(U),J]),J=>Promise.all([w.requestsCache.delete(U),Promise.reject(J)])).then(([J,te])=>te)),{miss:J=>w.responsesCache.set(U,J)})},write(D,x){return Iye(w,w.hosts.filter(C=>(C.accept&AB.Write)!==0),D,B6(x,w.timeouts.write))}};return w}function Pdt(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let o=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(o)===-1&&(e.value=`${e.value}${o}`),e}};return e}function Pye(t){try{return JSON.parse(t.content)}catch(e){throw Rye(e.message,t)}}function Sye({content:t,status:e},r){let o=t;try{o=JSON.parse(t).message}catch{}return Fye(o,e,r)}function Sdt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function bye(t,e,r){let o=xye(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return o.length&&(a+=`?${o}`),a}function xye(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>Sdt("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function kye(t,e){if(t.method===wye.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function Qye(t,e){let r={...t.headers,...e.headers},o={};return Object.keys(r).forEach(a=>{let n=r[a];o[a.toLowerCase()]=n}),o}function v6(t){return t.map(e=>S6(e))}function S6(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function Fye(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function Rye(t,e){return{name:"DeserializationError",message:t,response:e}}function Tye(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}Ti.CallEnum=AB;Ti.HostStatusEnum=fC;Ti.createApiError=Fye;Ti.createDeserializationError=Rye;Ti.createMappedRequestOptions=B6;Ti.createRetryError=Tye;Ti.createStatefulHost=D6;Ti.createStatelessHost=P6;Ti.createTransporter=Ddt;Ti.createUserAgent=Pdt;Ti.deserializeFailure=Sye;Ti.deserializeSuccess=Pye;Ti.isStatefulHostTimeouted=Dye;Ti.isStatefulHostUp=vye;Ti.serializeData=kye;Ti.serializeHeaders=Qye;Ti.serializeQueryParameters=xye;Ti.serializeUrl=bye;Ti.stackFrameWithoutCredentials=S6;Ti.stackTraceWithoutCredentials=v6});var fB=_((IYt,Lye)=>{Lye.exports=Nye()});var Oye=_(Mh=>{"use strict";Object.defineProperty(Mh,"__esModule",{value:!0});var pC=cB(),bdt=fB(),pB=uB(),xdt=t=>{let e=t.region||"us",r=pC.createAuth(pC.AuthMode.WithinHeaders,t.appId,t.apiKey),o=bdt.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return pC.addMethods({appId:a,transporter:o},t.methods)},kdt=t=>(e,r)=>t.transporter.write({method:pB.MethodEnum.Post,path:"2/abtests",data:e},r),Qdt=t=>(e,r)=>t.transporter.write({method:pB.MethodEnum.Delete,path:pC.encode("2/abtests/%s",e)},r),Fdt=t=>(e,r)=>t.transporter.read({method:pB.MethodEnum.Get,path:pC.encode("2/abtests/%s",e)},r),Rdt=t=>e=>t.transporter.read({method:pB.MethodEnum.Get,path:"2/abtests"},e),Tdt=t=>(e,r)=>t.transporter.write({method:pB.MethodEnum.Post,path:pC.encode("2/abtests/%s/stop",e)},r);Mh.addABTest=kdt;Mh.createAnalyticsClient=xdt;Mh.deleteABTest=Qdt;Mh.getABTest=Fdt;Mh.getABTests=Rdt;Mh.stopABTest=Tdt});var Uye=_((BYt,Mye)=>{Mye.exports=Oye()});var Hye=_(hB=>{"use strict";Object.defineProperty(hB,"__esModule",{value:!0});var b6=cB(),Ndt=fB(),_ye=uB(),Ldt=t=>{let e=t.region||"us",r=b6.createAuth(b6.AuthMode.WithinHeaders,t.appId,t.apiKey),o=Ndt.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return b6.addMethods({appId:t.appId,transporter:o},t.methods)},Odt=t=>e=>t.transporter.read({method:_ye.MethodEnum.Get,path:"1/strategies/personalization"},e),Mdt=t=>(e,r)=>t.transporter.write({method:_ye.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);hB.createPersonalizationClient=Ldt;hB.getPersonalizationStrategy=Odt;hB.setPersonalizationStrategy=Mdt});var jye=_((DYt,qye)=>{qye.exports=Hye()});var nEe=_(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});var Wt=cB(),Ma=fB(),Dr=uB(),Udt=ve("crypto");function rQ(t){let e=r=>t.request(r).then(o=>{if(t.batch!==void 0&&t.batch(o.hits),!t.shouldStop(o))return o.cursor?e({cursor:o.cursor}):e({page:(r.page||0)+1})});return e({})}var _dt=t=>{let e=t.appId,r=Wt.createAuth(t.authMode!==void 0?t.authMode:Wt.AuthMode.WithinHeaders,e,t.apiKey),o=Ma.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:Ma.CallEnum.Read},{url:`${e}.algolia.net`,accept:Ma.CallEnum.Write}].concat(Wt.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:o,appId:e,addAlgoliaAgent(n,u){o.userAgent.add({segment:n,version:u})},clearCache(){return Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})}};return Wt.addMethods(a,t.methods)};function Gye(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function Wye(){return{name:"ObjectNotFoundError",message:"Object not found."}}function Yye(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var Hdt=t=>(e,r)=>{let{queryParameters:o,...a}=r||{},n={acl:e,...o!==void 0?{queryParameters:o}:{}},u=(A,p)=>Wt.createRetryablePromise(h=>gB(t)(A.key,p).catch(E=>{if(E.status!==404)throw E;return h()}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:"1/keys",data:n},a),u)},qdt=t=>(e,r,o)=>{let a=Ma.createMappedRequestOptions(o);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Dr.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},jdt=t=>(e,r,o)=>t.transporter.write({method:Dr.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},o),Gdt=t=>(e,r)=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(o,a)=>hC(t)(o.taskID,a)),nQ=t=>(e,r,o)=>{let a=(n,u)=>dB(t)(e,{methods:{waitTask:es}}).waitTask(n.taskID,u);return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},o),a)},Wdt=t=>(e,r,o)=>nQ(t)(e,r,{...o,scope:[sQ.Rules]}),Ydt=t=>(e,r,o)=>nQ(t)(e,r,{...o,scope:[sQ.Settings]}),Kdt=t=>(e,r,o)=>nQ(t)(e,r,{...o,scope:[sQ.Synonyms]}),Vdt=t=>(e,r)=>e.method===Dr.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),Jdt=t=>(e,r)=>{let o=(a,n)=>Wt.createRetryablePromise(u=>gB(t)(e,n).then(u).catch(A=>{if(A.status!==404)throw A}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Delete,path:Wt.encode("1/keys/%s",e)},r),o)},zdt=t=>(e,r,o)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>hC(t)(n.taskID,u))},Xdt=()=>(t,e)=>{let r=Ma.serializeQueryParameters(e),o=Udt.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(o+r).toString("base64")},gB=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/keys/%s",e)},r),Kye=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/task/%s",e.toString())},r),Zdt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),$dt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/logs"},e),emt=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,o=e.match(r);if(o===null)throw Yye();return parseInt(o[1],10)-Math.round(new Date().getTime()/1e3)},tmt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/clusters/mapping/top"},e),rmt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/clusters/mapping/%s",e)},r),nmt=t=>e=>{let{retrieveMappings:r,...o}=e||{};return r===!0&&(o.getClusters=!0),t.transporter.read({method:Dr.MethodEnum.Get,path:"1/clusters/mapping/pending"},o)},dB=t=>(e,r={})=>{let o={transporter:t.transporter,appId:t.appId,indexName:e};return Wt.addMethods(o,r.methods)},imt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/keys"},e),smt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/clusters"},e),omt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/indexes"},e),amt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/clusters/mapping"},e),lmt=t=>(e,r,o)=>{let a=(n,u)=>dB(t)(e,{methods:{waitTask:es}}).waitTask(n.taskID,u);return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},o),a)},cmt=t=>(e,r)=>{let o=(a,n)=>Promise.all(Object.keys(a.taskID).map(u=>dB(t)(u,{methods:{waitTask:es}}).waitTask(a.taskID[u],n)));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),o)},umt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),Amt=t=>(e,r)=>{let o=e.map(a=>({...a,params:Ma.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:Dr.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},r)},fmt=t=>(e,r)=>Promise.all(e.map(o=>{let{facetName:a,facetQuery:n,...u}=o.params;return dB(t)(o.indexName,{methods:{searchForFacetValues:eEe}}).searchForFacetValues(a,n,{...r,...u})})),pmt=t=>(e,r)=>{let o=Ma.createMappedRequestOptions(r);return o.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Dr.MethodEnum.Delete,path:"1/clusters/mapping"},o)},hmt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},o),(n,u)=>hC(t)(n.taskID,u))},gmt=t=>(e,r)=>{let o=(a,n)=>Wt.createRetryablePromise(u=>gB(t)(e,n).catch(A=>{if(A.status!==404)throw A;return u()}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/keys/%s/restore",e)},r),o)},dmt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>hC(t)(n.taskID,u))},mmt=t=>(e,r,o)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},o),ymt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),Emt=t=>(e,r)=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(o,a)=>hC(t)(o.taskID,a)),Cmt=t=>(e,r)=>{let o=Object.assign({},r),{queryParameters:a,...n}=r||{},u=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=E=>Object.keys(o).filter(w=>A.indexOf(w)!==-1).every(w=>{if(Array.isArray(E[w])&&Array.isArray(o[w])){let D=E[w];return D.length===o[w].length&&D.every((x,C)=>x===o[w][C])}else return E[w]===o[w]}),h=(E,w)=>Wt.createRetryablePromise(D=>gB(t)(e,w).then(x=>p(x)?Promise.resolve():D()));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Put,path:Wt.encode("1/keys/%s",e),data:u},n),h)},hC=t=>(e,r)=>Wt.createRetryablePromise(o=>Kye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),Vye=t=>(e,r)=>{let o=(a,n)=>es(t)(a.taskID,n);return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),o)},Imt=t=>e=>rQ({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),wmt=t=>e=>{let r={hitsPerPage:1e3,...e};return rQ({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},Bmt=t=>e=>{let r={hitsPerPage:1e3,...e};return rQ({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},iQ=t=>(e,r,o)=>{let{batchSize:a,...n}=o||{},u={taskIDs:[],objectIDs:[]},A=(p=0)=>{let h=[],E;for(E=p;E({action:r,body:w})),n).then(w=>(u.objectIDs=u.objectIDs.concat(w.objectIDs),u.taskIDs.push(w.taskID),E++,A(E)))};return Wt.createWaitablePromise(A(),(p,h)=>Promise.all(p.taskIDs.map(E=>es(t)(E,h))))},vmt=t=>e=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/clear",t.indexName)},e),(r,o)=>es(t)(r.taskID,o)),Dmt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ma.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,u)=>es(t)(n.taskID,u))},Pmt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ma.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,u)=>es(t)(n.taskID,u))},Smt=t=>(e,r)=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(o,a)=>es(t)(o.taskID,a)),bmt=t=>e=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Delete,path:Wt.encode("1/indexes/%s",t.indexName)},e),(r,o)=>es(t)(r.taskID,o)),xmt=t=>(e,r)=>Wt.createWaitablePromise(Jye(t)([e],r).then(o=>({taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),Jye=t=>(e,r)=>{let o=e.map(a=>({objectID:a}));return iQ(t)(o,ed.DeleteObject,r)},kmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Delete,path:Wt.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(u,A)=>es(t)(u.taskID,A))},Qmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Delete,path:Wt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(u,A)=>es(t)(u.taskID,A))},Fmt=t=>e=>zye(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Rmt=t=>(e,r,o)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},o),Tmt=t=>(e,r)=>{let{query:o,paginate:a,...n}=r||{},u=0,A=()=>$ye(t)(o||"",{...n,page:u}).then(p=>{for(let[h,E]of Object.entries(p.hits))if(e(E))return{object:E,position:parseInt(h,10),page:u};if(u++,a===!1||u>=p.nbPages)throw Wye();return A()});return A()},Nmt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/indexes/%s/%s",t.indexName,e)},r),Lmt=()=>(t,e)=>{for(let[r,o]of Object.entries(t.hits))if(o.objectID===e)return parseInt(r,10);return-1},Omt=t=>(e,r)=>{let{attributesToRetrieve:o,...a}=r||{},n=e.map(u=>({indexName:t.indexName,objectID:u,...o?{attributesToRetrieve:o}:{}}));return t.transporter.read({method:Dr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},Mmt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),zye=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),Umt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),Xye=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),_mt=t=>(e,r)=>Wt.createWaitablePromise(Zye(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),Zye=t=>(e,r)=>{let{createIfNotExists:o,...a}=r||{},n=o?ed.PartialUpdateObject:ed.PartialUpdateObjectNoCreate;return iQ(t)(e,n,a)},Hmt=t=>(e,r)=>{let{safe:o,autoGenerateObjectIDIfNotExist:a,batchSize:n,...u}=r||{},A=(C,T,L,U)=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/operation",C),data:{operation:L,destination:T}},U),(J,te)=>es(t)(J.taskID,te)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,E=x6({appId:t.appId,transporter:t.transporter,indexName:h}),w=[],D=A(t.indexName,h,"copy",{...u,scope:["settings","synonyms","rules"]});w.push(D);let x=(o?D.wait(u):D).then(()=>{let C=E(e,{...u,autoGenerateObjectIDIfNotExist:a,batchSize:n});return w.push(C),o?C.wait(u):C}).then(()=>{let C=A(h,t.indexName,"move",u);return w.push(C),o?C.wait(u):C}).then(()=>Promise.all(w)).then(([C,T,L])=>({objectIDs:T.objectIDs,taskIDs:[C.taskID,...T.taskIDs,L.taskID]}));return Wt.createWaitablePromise(x,(C,T)=>Promise.all(w.map(L=>L.wait(T))))},qmt=t=>(e,r)=>k6(t)(e,{...r,clearExistingRules:!0}),jmt=t=>(e,r)=>Q6(t)(e,{...r,clearExistingSynonyms:!0}),Gmt=t=>(e,r)=>Wt.createWaitablePromise(x6(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),x6=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:o,...a}=r||{},n=o?ed.AddObject:ed.UpdateObject;if(n===ed.UpdateObject){for(let u of e)if(u.objectID===void 0)return Wt.createWaitablePromise(Promise.reject(Gye()))}return iQ(t)(e,n,a)},Wmt=t=>(e,r)=>k6(t)([e],r),k6=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingRules:a,...n}=r||{},u=Ma.createMappedRequestOptions(n);return o&&(u.queryParameters.forwardToReplicas=1),a&&(u.queryParameters.clearExistingRules=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/rules/batch",t.indexName),data:e},u),(A,p)=>es(t)(A.taskID,p))},Ymt=t=>(e,r)=>Q6(t)([e],r),Q6=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingSynonyms:a,replaceExistingSynonyms:n,...u}=r||{},A=Ma.createMappedRequestOptions(u);return o&&(A.queryParameters.forwardToReplicas=1),(n||a)&&(A.queryParameters.replaceExistingSynonyms=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},A),(p,h)=>es(t)(p.taskID,h))},$ye=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),eEe=t=>(e,r,o)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},o),tEe=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),rEe=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),Kmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Put,path:Wt.encode("1/indexes/%s/settings",t.indexName),data:e},n),(u,A)=>es(t)(u.taskID,A))},es=t=>(e,r)=>Wt.createRetryablePromise(o=>Xye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),Vmt={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",Inference:"inference",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},ed={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},sQ={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},Jmt={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},zmt={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Rt.ApiKeyACLEnum=Vmt;Rt.BatchActionEnum=ed;Rt.ScopeEnum=sQ;Rt.StrategyEnum=Jmt;Rt.SynonymEnum=zmt;Rt.addApiKey=Hdt;Rt.assignUserID=qdt;Rt.assignUserIDs=jdt;Rt.batch=Vye;Rt.browseObjects=Imt;Rt.browseRules=wmt;Rt.browseSynonyms=Bmt;Rt.chunkedBatch=iQ;Rt.clearDictionaryEntries=Gdt;Rt.clearObjects=vmt;Rt.clearRules=Dmt;Rt.clearSynonyms=Pmt;Rt.copyIndex=nQ;Rt.copyRules=Wdt;Rt.copySettings=Ydt;Rt.copySynonyms=Kdt;Rt.createBrowsablePromise=rQ;Rt.createMissingObjectIDError=Gye;Rt.createObjectNotFoundError=Wye;Rt.createSearchClient=_dt;Rt.createValidUntilNotFoundError=Yye;Rt.customRequest=Vdt;Rt.deleteApiKey=Jdt;Rt.deleteBy=Smt;Rt.deleteDictionaryEntries=zdt;Rt.deleteIndex=bmt;Rt.deleteObject=xmt;Rt.deleteObjects=Jye;Rt.deleteRule=kmt;Rt.deleteSynonym=Qmt;Rt.exists=Fmt;Rt.findAnswers=Rmt;Rt.findObject=Tmt;Rt.generateSecuredApiKey=Xdt;Rt.getApiKey=gB;Rt.getAppTask=Kye;Rt.getDictionarySettings=Zdt;Rt.getLogs=$dt;Rt.getObject=Nmt;Rt.getObjectPosition=Lmt;Rt.getObjects=Omt;Rt.getRule=Mmt;Rt.getSecuredApiKeyRemainingValidity=emt;Rt.getSettings=zye;Rt.getSynonym=Umt;Rt.getTask=Xye;Rt.getTopUserIDs=tmt;Rt.getUserID=rmt;Rt.hasPendingMappings=nmt;Rt.initIndex=dB;Rt.listApiKeys=imt;Rt.listClusters=smt;Rt.listIndices=omt;Rt.listUserIDs=amt;Rt.moveIndex=lmt;Rt.multipleBatch=cmt;Rt.multipleGetObjects=umt;Rt.multipleQueries=Amt;Rt.multipleSearchForFacetValues=fmt;Rt.partialUpdateObject=_mt;Rt.partialUpdateObjects=Zye;Rt.removeUserID=pmt;Rt.replaceAllObjects=Hmt;Rt.replaceAllRules=qmt;Rt.replaceAllSynonyms=jmt;Rt.replaceDictionaryEntries=hmt;Rt.restoreApiKey=gmt;Rt.saveDictionaryEntries=dmt;Rt.saveObject=Gmt;Rt.saveObjects=x6;Rt.saveRule=Wmt;Rt.saveRules=k6;Rt.saveSynonym=Ymt;Rt.saveSynonyms=Q6;Rt.search=$ye;Rt.searchDictionaryEntries=mmt;Rt.searchForFacetValues=eEe;Rt.searchRules=tEe;Rt.searchSynonyms=rEe;Rt.searchUserIDs=ymt;Rt.setDictionarySettings=Emt;Rt.setSettings=Kmt;Rt.updateApiKey=Cmt;Rt.waitAppTask=hC;Rt.waitTask=es});var sEe=_((SYt,iEe)=>{iEe.exports=nEe()});var oEe=_(oQ=>{"use strict";Object.defineProperty(oQ,"__esModule",{value:!0});function Xmt(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var Zmt={Debug:1,Info:2,Error:3};oQ.LogLevelEnum=Zmt;oQ.createNullLogger=Xmt});var lEe=_((xYt,aEe)=>{aEe.exports=oEe()});var fEe=_(F6=>{"use strict";Object.defineProperty(F6,"__esModule",{value:!0});var cEe=ve("http"),uEe=ve("https"),$mt=ve("url"),AEe={keepAlive:!0},eyt=new cEe.Agent(AEe),tyt=new uEe.Agent(AEe);function ryt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:o={}}={}){let a=e||t||eyt,n=r||t||tyt;return{send(u){return new Promise(A=>{let p=$mt.parse(u.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,E={...o,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:u.method,headers:{...o&&o.headers?o.headers:{},...u.headers},...p.port!==void 0?{port:p.port||""}:{}},w=(p.protocol==="https:"?uEe:cEe).request(E,T=>{let L=[];T.on("data",U=>{L=L.concat(U)}),T.on("end",()=>{clearTimeout(x),clearTimeout(C),A({status:T.statusCode||0,content:Buffer.concat(L).toString(),isTimedOut:!1})})}),D=(T,L)=>setTimeout(()=>{w.abort(),A({status:0,content:L,isTimedOut:!0})},T*1e3),x=D(u.connectTimeout,"Connection timeout"),C;w.on("error",T=>{clearTimeout(x),clearTimeout(C),A({status:0,content:T.message,isTimedOut:!1})}),w.once("response",()=>{clearTimeout(x),C=D(u.responseTimeout,"Socket timeout")}),u.data!==void 0&&w.write(u.data),w.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}F6.createNodeHttpRequester=ryt});var hEe=_((QYt,pEe)=>{pEe.exports=fEe()});var yEe=_((FYt,mEe)=>{"use strict";var gEe=fye(),nyt=gye(),gC=Uye(),T6=cB(),R6=jye(),Ht=sEe(),iyt=lEe(),syt=hEe(),oyt=fB();function dEe(t,e,r){let o={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:syt.createNodeHttpRequester(),logger:iyt.createNullLogger(),responsesCache:gEe.createNullCache(),requestsCache:gEe.createNullCache(),hostsCache:nyt.createInMemoryCache(),userAgent:oyt.createUserAgent(T6.version).add({segment:"Node.js",version:process.versions.node})},a={...o,...r},n=()=>u=>R6.createPersonalizationClient({...o,...u,methods:{getPersonalizationStrategy:R6.getPersonalizationStrategy,setPersonalizationStrategy:R6.setPersonalizationStrategy}});return Ht.createSearchClient({...a,methods:{search:Ht.multipleQueries,searchForFacetValues:Ht.multipleSearchForFacetValues,multipleBatch:Ht.multipleBatch,multipleGetObjects:Ht.multipleGetObjects,multipleQueries:Ht.multipleQueries,copyIndex:Ht.copyIndex,copySettings:Ht.copySettings,copyRules:Ht.copyRules,copySynonyms:Ht.copySynonyms,moveIndex:Ht.moveIndex,listIndices:Ht.listIndices,getLogs:Ht.getLogs,listClusters:Ht.listClusters,multipleSearchForFacetValues:Ht.multipleSearchForFacetValues,getApiKey:Ht.getApiKey,addApiKey:Ht.addApiKey,listApiKeys:Ht.listApiKeys,updateApiKey:Ht.updateApiKey,deleteApiKey:Ht.deleteApiKey,restoreApiKey:Ht.restoreApiKey,assignUserID:Ht.assignUserID,assignUserIDs:Ht.assignUserIDs,getUserID:Ht.getUserID,searchUserIDs:Ht.searchUserIDs,listUserIDs:Ht.listUserIDs,getTopUserIDs:Ht.getTopUserIDs,removeUserID:Ht.removeUserID,hasPendingMappings:Ht.hasPendingMappings,generateSecuredApiKey:Ht.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:Ht.getSecuredApiKeyRemainingValidity,destroy:T6.destroy,clearDictionaryEntries:Ht.clearDictionaryEntries,deleteDictionaryEntries:Ht.deleteDictionaryEntries,getDictionarySettings:Ht.getDictionarySettings,getAppTask:Ht.getAppTask,replaceDictionaryEntries:Ht.replaceDictionaryEntries,saveDictionaryEntries:Ht.saveDictionaryEntries,searchDictionaryEntries:Ht.searchDictionaryEntries,setDictionarySettings:Ht.setDictionarySettings,waitAppTask:Ht.waitAppTask,customRequest:Ht.customRequest,initIndex:u=>A=>Ht.initIndex(u)(A,{methods:{batch:Ht.batch,delete:Ht.deleteIndex,findAnswers:Ht.findAnswers,getObject:Ht.getObject,getObjects:Ht.getObjects,saveObject:Ht.saveObject,saveObjects:Ht.saveObjects,search:Ht.search,searchForFacetValues:Ht.searchForFacetValues,waitTask:Ht.waitTask,setSettings:Ht.setSettings,getSettings:Ht.getSettings,partialUpdateObject:Ht.partialUpdateObject,partialUpdateObjects:Ht.partialUpdateObjects,deleteObject:Ht.deleteObject,deleteObjects:Ht.deleteObjects,deleteBy:Ht.deleteBy,clearObjects:Ht.clearObjects,browseObjects:Ht.browseObjects,getObjectPosition:Ht.getObjectPosition,findObject:Ht.findObject,exists:Ht.exists,saveSynonym:Ht.saveSynonym,saveSynonyms:Ht.saveSynonyms,getSynonym:Ht.getSynonym,searchSynonyms:Ht.searchSynonyms,browseSynonyms:Ht.browseSynonyms,deleteSynonym:Ht.deleteSynonym,clearSynonyms:Ht.clearSynonyms,replaceAllObjects:Ht.replaceAllObjects,replaceAllSynonyms:Ht.replaceAllSynonyms,searchRules:Ht.searchRules,getRule:Ht.getRule,deleteRule:Ht.deleteRule,saveRule:Ht.saveRule,saveRules:Ht.saveRules,replaceAllRules:Ht.replaceAllRules,browseRules:Ht.browseRules,clearRules:Ht.clearRules}}),initAnalytics:()=>u=>gC.createAnalyticsClient({...o,...u,methods:{addABTest:gC.addABTest,getABTest:gC.getABTest,getABTests:gC.getABTests,stopABTest:gC.stopABTest,deleteABTest:gC.deleteABTest}}),initPersonalization:n,initRecommendation:()=>u=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(u))}})}dEe.version=T6.version;mEe.exports=dEe});var L6=_((RYt,N6)=>{var EEe=yEe();N6.exports=EEe;N6.exports.default=EEe});var U6=_((NYt,wEe)=>{"use strict";var IEe=Object.getOwnPropertySymbols,lyt=Object.prototype.hasOwnProperty,cyt=Object.prototype.propertyIsEnumerable;function uyt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function Ayt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var o=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(o.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}wEe.exports=Ayt()?Object.assign:function(t,e){for(var r,o=uyt(t),a,n=1;n{"use strict";var H6=U6(),dC=60103,DEe=60106;Cn.Fragment=60107;Cn.StrictMode=60108;Cn.Profiler=60114;var PEe=60109,SEe=60110,bEe=60112;Cn.Suspense=60113;var xEe=60115,kEe=60116;typeof Symbol=="function"&&Symbol.for&&(sc=Symbol.for,dC=sc("react.element"),DEe=sc("react.portal"),Cn.Fragment=sc("react.fragment"),Cn.StrictMode=sc("react.strict_mode"),Cn.Profiler=sc("react.profiler"),PEe=sc("react.provider"),SEe=sc("react.context"),bEe=sc("react.forward_ref"),Cn.Suspense=sc("react.suspense"),xEe=sc("react.memo"),kEe=sc("react.lazy"));var sc,BEe=typeof Symbol=="function"&&Symbol.iterator;function fyt(t){return t===null||typeof t!="object"?null:(t=BEe&&t[BEe]||t["@@iterator"],typeof t=="function"?t:null)}function mB(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r{"use strict";UEe.exports=MEe()});var K6=_((MYt,Y6)=>{"use strict";var gn=Y6.exports;Y6.exports.default=gn;var Gn="\x1B[",yB="\x1B]",yC="\x07",cQ=";",_Ee=process.env.TERM_PROGRAM==="Apple_Terminal";gn.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?Gn+(t+1)+"G":Gn+(e+1)+";"+(t+1)+"H"};gn.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=Gn+-t+"D":t>0&&(r+=Gn+t+"C"),e<0?r+=Gn+-e+"A":e>0&&(r+=Gn+e+"B"),r};gn.cursorUp=(t=1)=>Gn+t+"A";gn.cursorDown=(t=1)=>Gn+t+"B";gn.cursorForward=(t=1)=>Gn+t+"C";gn.cursorBackward=(t=1)=>Gn+t+"D";gn.cursorLeft=Gn+"G";gn.cursorSavePosition=_Ee?"\x1B7":Gn+"s";gn.cursorRestorePosition=_Ee?"\x1B8":Gn+"u";gn.cursorGetPosition=Gn+"6n";gn.cursorNextLine=Gn+"E";gn.cursorPrevLine=Gn+"F";gn.cursorHide=Gn+"?25l";gn.cursorShow=Gn+"?25h";gn.eraseLines=t=>{let e="";for(let r=0;r[yB,"8",cQ,cQ,e,yC,t,yB,"8",cQ,cQ,yC].join("");gn.image=(t,e={})=>{let r=`${yB}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+yC};gn.iTerm={setCwd:(t=process.cwd())=>`${yB}50;CurrentDir=${t}${yC}`,annotation:(t,e={})=>{let r=`${yB}1337;`,o=typeof e.x<"u",a=typeof e.y<"u";if((o||a)&&!(o&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+yC}}});var qEe=_((UYt,V6)=>{"use strict";var HEe=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};V6.exports=HEe;V6.exports.default=HEe});var GEe=_((_Yt,AQ)=>{"use strict";var myt=qEe(),uQ=new WeakMap,jEe=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,o=0,a=t.displayName||t.name||"",n=function(...u){if(uQ.set(n,++o),o===1)r=t.apply(this,u),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return myt(n,t),uQ.set(n,o),n};AQ.exports=jEe;AQ.exports.default=jEe;AQ.exports.callCount=t=>{if(!uQ.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return uQ.get(t)}});var WEe=_((HYt,fQ)=>{fQ.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&fQ.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&fQ.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var X6=_((qYt,IC)=>{var wi=global.process,td=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};td(wi)?(YEe=ve("assert"),EC=WEe(),KEe=/^win/i.test(wi.platform),EB=ve("events"),typeof EB!="function"&&(EB=EB.EventEmitter),wi.__signal_exit_emitter__?ks=wi.__signal_exit_emitter__:(ks=wi.__signal_exit_emitter__=new EB,ks.count=0,ks.emitted={}),ks.infinite||(ks.setMaxListeners(1/0),ks.infinite=!0),IC.exports=function(t,e){if(!td(global.process))return function(){};YEe.equal(typeof t,"function","a callback must be provided for exit handler"),CC===!1&&J6();var r="exit";e&&e.alwaysLast&&(r="afterexit");var o=function(){ks.removeListener(r,t),ks.listeners("exit").length===0&&ks.listeners("afterexit").length===0&&pQ()};return ks.on(r,t),o},pQ=function(){!CC||!td(global.process)||(CC=!1,EC.forEach(function(e){try{wi.removeListener(e,hQ[e])}catch{}}),wi.emit=gQ,wi.reallyExit=z6,ks.count-=1)},IC.exports.unload=pQ,rd=function(e,r,o){ks.emitted[e]||(ks.emitted[e]=!0,ks.emit(e,r,o))},hQ={},EC.forEach(function(t){hQ[t]=function(){if(td(global.process)){var r=wi.listeners(t);r.length===ks.count&&(pQ(),rd("exit",null,t),rd("afterexit",null,t),KEe&&t==="SIGHUP"&&(t="SIGINT"),wi.kill(wi.pid,t))}}}),IC.exports.signals=function(){return EC},CC=!1,J6=function(){CC||!td(global.process)||(CC=!0,ks.count+=1,EC=EC.filter(function(e){try{return wi.on(e,hQ[e]),!0}catch{return!1}}),wi.emit=JEe,wi.reallyExit=VEe)},IC.exports.load=J6,z6=wi.reallyExit,VEe=function(e){td(global.process)&&(wi.exitCode=e||0,rd("exit",wi.exitCode,null),rd("afterexit",wi.exitCode,null),z6.call(wi,wi.exitCode))},gQ=wi.emit,JEe=function(e,r){if(e==="exit"&&td(global.process)){r!==void 0&&(wi.exitCode=r);var o=gQ.apply(this,arguments);return rd("exit",wi.exitCode,null),rd("afterexit",wi.exitCode,null),o}else return gQ.apply(this,arguments)}):IC.exports=function(){return function(){}};var YEe,EC,KEe,EB,ks,pQ,rd,hQ,CC,J6,z6,VEe,gQ,JEe});var XEe=_((jYt,zEe)=>{"use strict";var yyt=GEe(),Eyt=X6();zEe.exports=yyt(()=>{Eyt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var Z6=_(wC=>{"use strict";var Cyt=XEe(),dQ=!1;wC.show=(t=process.stderr)=>{t.isTTY&&(dQ=!1,t.write("\x1B[?25h"))};wC.hide=(t=process.stderr)=>{t.isTTY&&(Cyt(),dQ=!0,t.write("\x1B[?25l"))};wC.toggle=(t,e)=>{t!==void 0&&(dQ=t),dQ?wC.show(e):wC.hide(e)}});var tCe=_(CB=>{"use strict";var eCe=CB&&CB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(CB,"__esModule",{value:!0});var ZEe=eCe(K6()),$Ee=eCe(Z6()),Iyt=(t,{showCursor:e=!1}={})=>{let r=0,o="",a=!1,n=u=>{!e&&!a&&($Ee.default.hide(),a=!0);let A=u+` +`;A!==o&&(o=A,t.write(ZEe.default.eraseLines(r)+A),r=A.split(` +`).length)};return n.clear=()=>{t.write(ZEe.default.eraseLines(r)),o="",r=0},n.done=()=>{o="",r=0,e||($Ee.default.show(),a=!1)},n};CB.default={create:Iyt}});var rCe=_((YYt,wyt)=>{wyt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var sCe=_(Cl=>{"use strict";var iCe=rCe(),gA=process.env;Object.defineProperty(Cl,"_vendors",{value:iCe.map(function(t){return t.constant})});Cl.name=null;Cl.isPR=null;iCe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(o){return nCe(o)});if(Cl[t.constant]=r,r)switch(Cl.name=t.name,typeof t.pr){case"string":Cl.isPR=!!gA[t.pr];break;case"object":"env"in t.pr?Cl.isPR=t.pr.env in gA&&gA[t.pr.env]!==t.pr.ne:"any"in t.pr?Cl.isPR=t.pr.any.some(function(o){return!!gA[o]}):Cl.isPR=nCe(t.pr);break;default:Cl.isPR=null}});Cl.isCI=!!(gA.CI||gA.CONTINUOUS_INTEGRATION||gA.BUILD_NUMBER||gA.RUN_ID||Cl.name);function nCe(t){return typeof t=="string"?!!gA[t]:Object.keys(t).every(function(e){return gA[e]===t[e]})}});var aCe=_((VYt,oCe)=>{"use strict";oCe.exports=sCe().isCI});var cCe=_((JYt,lCe)=>{"use strict";var Byt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};lCe.exports=(t,{include:e,exclude:r}={})=>{let o=a=>{let n=u=>typeof u=="string"?a===u:u.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of Byt(t.constructor.prototype)){if(n==="constructor"||!o(n))continue;let u=Reflect.getOwnPropertyDescriptor(a,n);u&&typeof u.value=="function"&&(t[n]=t[n].bind(t))}return t}});var gCe=_(Hn=>{"use strict";var vC,BB,CQ,sq;typeof performance=="object"&&typeof performance.now=="function"?(uCe=performance,Hn.unstable_now=function(){return uCe.now()}):($6=Date,ACe=$6.now(),Hn.unstable_now=function(){return $6.now()-ACe});var uCe,$6,ACe;typeof window>"u"||typeof MessageChannel!="function"?(BC=null,eq=null,tq=function(){if(BC!==null)try{var t=Hn.unstable_now();BC(!0,t),BC=null}catch(e){throw setTimeout(tq,0),e}},vC=function(t){BC!==null?setTimeout(vC,0,t):(BC=t,setTimeout(tq,0))},BB=function(t,e){eq=setTimeout(t,e)},CQ=function(){clearTimeout(eq)},Hn.unstable_shouldYield=function(){return!1},sq=Hn.unstable_forceFrameRate=function(){}):(fCe=window.setTimeout,pCe=window.clearTimeout,typeof console<"u"&&(hCe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof hCe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),IB=!1,wB=null,mQ=-1,rq=5,nq=0,Hn.unstable_shouldYield=function(){return Hn.unstable_now()>=nq},sq=function(){},Hn.unstable_forceFrameRate=function(t){0>t||125>>1,a=t[o];if(a!==void 0&&0EQ(u,r))p!==void 0&&0>EQ(p,u)?(t[o]=p,t[A]=r,o=A):(t[o]=u,t[n]=r,o=n);else if(p!==void 0&&0>EQ(p,r))t[o]=p,t[A]=r,o=A;else break e}}return e}return null}function EQ(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var dA=[],Uh=[],vyt=1,oc=null,xo=3,wQ=!1,nd=!1,vB=!1;function aq(t){for(var e=ou(Uh);e!==null;){if(e.callback===null)IQ(Uh);else if(e.startTime<=t)IQ(Uh),e.sortIndex=e.expirationTime,oq(dA,e);else break;e=ou(Uh)}}function lq(t){if(vB=!1,aq(t),!nd)if(ou(dA)!==null)nd=!0,vC(cq);else{var e=ou(Uh);e!==null&&BB(lq,e.startTime-t)}}function cq(t,e){nd=!1,vB&&(vB=!1,CQ()),wQ=!0;var r=xo;try{for(aq(e),oc=ou(dA);oc!==null&&(!(oc.expirationTime>e)||t&&!Hn.unstable_shouldYield());){var o=oc.callback;if(typeof o=="function"){oc.callback=null,xo=oc.priorityLevel;var a=o(oc.expirationTime<=e);e=Hn.unstable_now(),typeof a=="function"?oc.callback=a:oc===ou(dA)&&IQ(dA),aq(e)}else IQ(dA);oc=ou(dA)}if(oc!==null)var n=!0;else{var u=ou(Uh);u!==null&&BB(lq,u.startTime-e),n=!1}return n}finally{oc=null,xo=r,wQ=!1}}var Dyt=sq;Hn.unstable_IdlePriority=5;Hn.unstable_ImmediatePriority=1;Hn.unstable_LowPriority=4;Hn.unstable_NormalPriority=3;Hn.unstable_Profiling=null;Hn.unstable_UserBlockingPriority=2;Hn.unstable_cancelCallback=function(t){t.callback=null};Hn.unstable_continueExecution=function(){nd||wQ||(nd=!0,vC(cq))};Hn.unstable_getCurrentPriorityLevel=function(){return xo};Hn.unstable_getFirstCallbackNode=function(){return ou(dA)};Hn.unstable_next=function(t){switch(xo){case 1:case 2:case 3:var e=3;break;default:e=xo}var r=xo;xo=e;try{return t()}finally{xo=r}};Hn.unstable_pauseExecution=function(){};Hn.unstable_requestPaint=Dyt;Hn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=xo;xo=t;try{return e()}finally{xo=r}};Hn.unstable_scheduleCallback=function(t,e,r){var o=Hn.unstable_now();switch(typeof r=="object"&&r!==null?(r=r.delay,r=typeof r=="number"&&0o?(t.sortIndex=r,oq(Uh,t),ou(dA)===null&&t===ou(Uh)&&(vB?CQ():vB=!0,BB(lq,r-o))):(t.sortIndex=a,oq(dA,t),nd||wQ||(nd=!0,vC(cq))),t};Hn.unstable_wrapCallback=function(t){var e=xo;return function(){var r=xo;xo=e;try{return t.apply(this,arguments)}finally{xo=r}}}});var uq=_((XYt,dCe)=>{"use strict";dCe.exports=gCe()});var mCe=_((ZYt,DB)=>{DB.exports=function(e){var r={},o=U6(),a=ln(),n=uq();function u(v){for(var P="https://reactjs.org/docs/error-decoder.html?invariant="+v,Q=1;QUe||Y[Be]!==ne[Ue])return` +`+Y[Be].replace(" at new "," at ");while(1<=Be&&0<=Ue);break}}}finally{we=!1,Error.prepareStackTrace=Q}return(v=v?v.displayName||v.name:"")?Il(v):""}var wl=[],Bi=-1;function Ns(v){return{current:v}}function Ft(v){0>Bi||(v.current=wl[Bi],wl[Bi]=null,Bi--)}function Bn(v,P){Bi++,wl[Bi]=v.current,v.current=P}var No={},ki=Ns(No),vi=Ns(!1),sa=No;function un(v,P){var Q=v.type.contextTypes;if(!Q)return No;var H=v.stateNode;if(H&&H.__reactInternalMemoizedUnmaskedChildContext===P)return H.__reactInternalMemoizedMaskedChildContext;var Y={},ne;for(ne in Q)Y[ne]=P[ne];return H&&(v=v.stateNode,v.__reactInternalMemoizedUnmaskedChildContext=P,v.__reactInternalMemoizedMaskedChildContext=Y),Y}function qn(v){return v=v.childContextTypes,v!=null}function Ec(){Ft(vi),Ft(ki)}function lp(v,P,Q){if(ki.current!==No)throw Error(u(168));Bn(ki,P),Bn(vi,Q)}function oa(v,P,Q){var H=v.stateNode;if(v=P.childContextTypes,typeof H.getChildContext!="function")return Q;H=H.getChildContext();for(var Y in H)if(!(Y in v))throw Error(u(108,g(P)||"Unknown",Y));return o({},Q,H)}function aa(v){return v=(v=v.stateNode)&&v.__reactInternalMemoizedMergedChildContext||No,sa=ki.current,Bn(ki,v),Bn(vi,vi.current),!0}function la(v,P,Q){var H=v.stateNode;if(!H)throw Error(u(169));Q?(v=oa(v,P,sa),H.__reactInternalMemoizedMergedChildContext=v,Ft(vi),Ft(ki),Bn(ki,v)):Ft(vi),Bn(vi,Q)}var Ze=null,ca=null,mu=n.unstable_now;mu();var Bl=0,dn=8;function Lo(v){if(1&v)return dn=15,1;if(2&v)return dn=14,2;if(4&v)return dn=13,4;var P=24&v;return P!==0?(dn=12,P):v&32?(dn=11,32):(P=192&v,P!==0?(dn=10,P):v&256?(dn=9,256):(P=3584&v,P!==0?(dn=8,P):v&4096?(dn=7,4096):(P=4186112&v,P!==0?(dn=6,P):(P=62914560&v,P!==0?(dn=5,P):v&67108864?(dn=4,67108864):v&134217728?(dn=3,134217728):(P=805306368&v,P!==0?(dn=2,P):1073741824&v?(dn=1,1073741824):(dn=8,v))))))}function RA(v){switch(v){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function TA(v){switch(v){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(u(358,v))}}function Oo(v,P){var Q=v.pendingLanes;if(Q===0)return dn=0;var H=0,Y=0,ne=v.expiredLanes,Be=v.suspendedLanes,Ue=v.pingedLanes;if(ne!==0)H=ne,Y=dn=15;else if(ne=Q&134217727,ne!==0){var ft=ne&~Be;ft!==0?(H=Lo(ft),Y=dn):(Ue&=ne,Ue!==0&&(H=Lo(Ue),Y=dn))}else ne=Q&~Be,ne!==0?(H=Lo(ne),Y=dn):Ue!==0&&(H=Lo(Ue),Y=dn);if(H===0)return 0;if(H=31-qi(H),H=Q&((0>H?0:1<Q;Q++)P.push(v);return P}function ua(v,P,Q){v.pendingLanes|=P;var H=P-1;v.suspendedLanes&=H,v.pingedLanes&=H,v=v.eventTimes,P=31-qi(P),v[P]=Q}var qi=Math.clz32?Math.clz32:Dl,vl=Math.log,Cc=Math.LN2;function Dl(v){return v===0?32:31-(vl(v)/Cc|0)|0}var Aa=n.unstable_runWithPriority,Di=n.unstable_scheduleCallback,rs=n.unstable_cancelCallback,ja=n.unstable_shouldYield,yu=n.unstable_requestPaint,Pl=n.unstable_now,pi=n.unstable_getCurrentPriorityLevel,Dn=n.unstable_ImmediatePriority,Sl=n.unstable_UserBlockingPriority,Je=n.unstable_NormalPriority,st=n.unstable_LowPriority,vt=n.unstable_IdlePriority,ar={},ee=yu!==void 0?yu:function(){},ye=null,Le=null,gt=!1,mt=Pl(),Dt=1e4>mt?Pl:function(){return Pl()-mt};function er(){switch(pi()){case Dn:return 99;case Sl:return 98;case Je:return 97;case st:return 96;case vt:return 95;default:throw Error(u(332))}}function sn(v){switch(v){case 99:return Dn;case 98:return Sl;case 97:return Je;case 96:return st;case 95:return vt;default:throw Error(u(332))}}function ei(v,P){return v=sn(v),Aa(v,P)}function Qi(v,P,Q){return v=sn(v),Di(v,P,Q)}function Pn(){if(Le!==null){var v=Le;Le=null,rs(v)}fa()}function fa(){if(!gt&&ye!==null){gt=!0;var v=0;try{var P=ye;ei(99,function(){for(;vSn?(Tn=br,br=null):Tn=br.sibling;var Yr=Xt($e,br,pt[Sn],zt);if(Yr===null){br===null&&(br=Tn);break}v&&br&&Yr.alternate===null&&P($e,br),je=ne(Yr,je,Sn),Wn===null?Br=Yr:Wn.sibling=Yr,Wn=Yr,br=Tn}if(Sn===pt.length)return Q($e,br),Br;if(br===null){for(;SnSn?(Tn=br,br=null):Tn=br.sibling;var ti=Xt($e,br,Yr.value,zt);if(ti===null){br===null&&(br=Tn);break}v&&br&&ti.alternate===null&&P($e,br),je=ne(ti,je,Sn),Wn===null?Br=ti:Wn.sibling=ti,Wn=ti,br=Tn}if(Yr.done)return Q($e,br),Br;if(br===null){for(;!Yr.done;Sn++,Yr=pt.next())Yr=Tr($e,Yr.value,zt),Yr!==null&&(je=ne(Yr,je,Sn),Wn===null?Br=Yr:Wn.sibling=Yr,Wn=Yr);return Br}for(br=H($e,br);!Yr.done;Sn++,Yr=pt.next())Yr=jn(br,$e,Sn,Yr.value,zt),Yr!==null&&(v&&Yr.alternate!==null&&br.delete(Yr.key===null?Sn:Yr.key),je=ne(Yr,je,Sn),Wn===null?Br=Yr:Wn.sibling=Yr,Wn=Yr);return v&&br.forEach(function(Rc){return P($e,Rc)}),Br}return function($e,je,pt,zt){var Br=typeof pt=="object"&&pt!==null&&pt.type===E&&pt.key===null;Br&&(pt=pt.props.children);var Wn=typeof pt=="object"&&pt!==null;if(Wn)switch(pt.$$typeof){case p:e:{for(Wn=pt.key,Br=je;Br!==null;){if(Br.key===Wn){switch(Br.tag){case 7:if(pt.type===E){Q($e,Br.sibling),je=Y(Br,pt.props.children),je.return=$e,$e=je;break e}break;default:if(Br.elementType===pt.type){Q($e,Br.sibling),je=Y(Br,pt.props),je.ref=dt($e,Br,pt),je.return=$e,$e=je;break e}}Q($e,Br);break}else P($e,Br);Br=Br.sibling}pt.type===E?(je=Ru(pt.props.children,$e.mode,zt,pt.key),je.return=$e,$e=je):(zt=k0(pt.type,pt.key,pt.props,null,$e.mode,zt),zt.ref=dt($e,je,pt),zt.return=$e,$e=zt)}return Be($e);case h:e:{for(Br=pt.key;je!==null;){if(je.key===Br)if(je.tag===4&&je.stateNode.containerInfo===pt.containerInfo&&je.stateNode.implementation===pt.implementation){Q($e,je.sibling),je=Y(je,pt.children||[]),je.return=$e,$e=je;break e}else{Q($e,je);break}else P($e,je);je=je.sibling}je=ao(pt,$e.mode,zt),je.return=$e,$e=je}return Be($e)}if(typeof pt=="string"||typeof pt=="number")return pt=""+pt,je!==null&&je.tag===6?(Q($e,je.sibling),je=Y(je,pt),je.return=$e,$e=je):(Q($e,je),je=ZI(pt,$e.mode,zt),je.return=$e,$e=je),Be($e);if(Cu(pt))return li($e,je,pt,zt);if(Ee(pt))return Ea($e,je,pt,zt);if(Wn&&wc($e,pt),typeof pt>"u"&&!Br)switch($e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(u(152,g($e.type)||"Component"))}return Q($e,je)}}var c0=bd(!0),DI=bd(!1),hp={},cr=Ns(hp),Li=Ns(hp),Iu=Ns(hp);function pa(v){if(v===hp)throw Error(u(174));return v}function u0(v,P){Bn(Iu,P),Bn(Li,v),Bn(cr,hp),v=ht(P),Ft(cr),Bn(cr,v)}function Bc(){Ft(cr),Ft(Li),Ft(Iu)}function wu(v){var P=pa(Iu.current),Q=pa(cr.current);P=q(Q,v.type,P),Q!==P&&(Bn(Li,v),Bn(cr,P))}function wt(v){Li.current===v&&(Ft(cr),Ft(Li))}var oi=Ns(0);function UA(v){for(var P=v;P!==null;){if(P.tag===13){var Q=P.memoizedState;if(Q!==null&&(Q=Q.dehydrated,Q===null||pr(Q)||Me(Q)))return P}else if(P.tag===19&&P.memoizedProps.revealOrder!==void 0){if(P.flags&64)return P}else if(P.child!==null){P.child.return=P,P=P.child;continue}if(P===v)break;for(;P.sibling===null;){if(P.return===null||P.return===v)return null;P=P.return}P.sibling.return=P.return,P=P.sibling}return null}var ha=null,Uo=null,ga=!1;function A0(v,P){var Q=ya(5,null,null,0);Q.elementType="DELETED",Q.type="DELETED",Q.stateNode=P,Q.return=v,Q.flags=8,v.lastEffect!==null?(v.lastEffect.nextEffect=Q,v.lastEffect=Q):v.firstEffect=v.lastEffect=Q}function gp(v,P){switch(v.tag){case 5:return P=To(P,v.type,v.pendingProps),P!==null?(v.stateNode=P,!0):!1;case 6:return P=kA(P,v.pendingProps),P!==null?(v.stateNode=P,!0):!1;case 13:return!1;default:return!1}}function f0(v){if(ga){var P=Uo;if(P){var Q=P;if(!gp(v,P)){if(P=ia(Q),!P||!gp(v,P)){v.flags=v.flags&-1025|2,ga=!1,ha=v;return}A0(ha,Q)}ha=v,Uo=dc(P)}else v.flags=v.flags&-1025|2,ga=!1,ha=v}}function xd(v){for(v=v.return;v!==null&&v.tag!==5&&v.tag!==3&&v.tag!==13;)v=v.return;ha=v}function _A(v){if(!X||v!==ha)return!1;if(!ga)return xd(v),ga=!0,!1;var P=v.type;if(v.tag!==5||P!=="head"&&P!=="body"&&!tt(P,v.memoizedProps))for(P=Uo;P;)A0(v,P),P=ia(P);if(xd(v),v.tag===13){if(!X)throw Error(u(316));if(v=v.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(u(317));Uo=QA(v)}else Uo=ha?ia(v.stateNode):null;return!0}function p0(){X&&(Uo=ha=null,ga=!1)}var vc=[];function Dc(){for(var v=0;vne))throw Error(u(301));ne+=1,Ci=ji=null,P.updateQueue=null,Bu.current=re,v=Q(H,Y)}while(vu)}if(Bu.current=xt,P=ji!==null&&ji.next!==null,Pc=0,Ci=ji=On=null,HA=!1,P)throw Error(u(300));return v}function Gi(){var v={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ci===null?On.memoizedState=Ci=v:Ci=Ci.next=v,Ci}function Ka(){if(ji===null){var v=On.alternate;v=v!==null?v.memoizedState:null}else v=ji.next;var P=Ci===null?On.memoizedState:Ci.next;if(P!==null)Ci=P,ji=v;else{if(v===null)throw Error(u(310));ji=v,v={memoizedState:ji.memoizedState,baseState:ji.baseState,baseQueue:ji.baseQueue,queue:ji.queue,next:null},Ci===null?On.memoizedState=Ci=v:Ci=Ci.next=v}return Ci}function io(v,P){return typeof P=="function"?P(v):P}function Du(v){var P=Ka(),Q=P.queue;if(Q===null)throw Error(u(311));Q.lastRenderedReducer=v;var H=ji,Y=H.baseQueue,ne=Q.pending;if(ne!==null){if(Y!==null){var Be=Y.next;Y.next=ne.next,ne.next=Be}H.baseQueue=Y=ne,Q.pending=null}if(Y!==null){Y=Y.next,H=H.baseState;var Ue=Be=ne=null,ft=Y;do{var jt=ft.lane;if((Pc&jt)===jt)Ue!==null&&(Ue=Ue.next={lane:0,action:ft.action,eagerReducer:ft.eagerReducer,eagerState:ft.eagerState,next:null}),H=ft.eagerReducer===v?ft.eagerState:v(H,ft.action);else{var wr={lane:jt,action:ft.action,eagerReducer:ft.eagerReducer,eagerState:ft.eagerState,next:null};Ue===null?(Be=Ue=wr,ne=H):Ue=Ue.next=wr,On.lanes|=jt,B0|=jt}ft=ft.next}while(ft!==null&&ft!==Y);Ue===null?ne=H:Ue.next=Be,eo(H,P.memoizedState)||(Ye=!0),P.memoizedState=H,P.baseState=ne,P.baseQueue=Ue,Q.lastRenderedState=H}return[P.memoizedState,Q.dispatch]}function Pu(v){var P=Ka(),Q=P.queue;if(Q===null)throw Error(u(311));Q.lastRenderedReducer=v;var H=Q.dispatch,Y=Q.pending,ne=P.memoizedState;if(Y!==null){Q.pending=null;var Be=Y=Y.next;do ne=v(ne,Be.action),Be=Be.next;while(Be!==Y);eo(ne,P.memoizedState)||(Ye=!0),P.memoizedState=ne,P.baseQueue===null&&(P.baseState=ne),Q.lastRenderedState=ne}return[ne,H]}function Va(v,P,Q){var H=P._getVersion;H=H(P._source);var Y=y?P._workInProgressVersionPrimary:P._workInProgressVersionSecondary;if(Y!==null?v=Y===H:(v=v.mutableReadLanes,(v=(Pc&v)===v)&&(y?P._workInProgressVersionPrimary=H:P._workInProgressVersionSecondary=H,vc.push(P))),v)return Q(P._source);throw vc.push(P),Error(u(350))}function fn(v,P,Q,H){var Y=Os;if(Y===null)throw Error(u(349));var ne=P._getVersion,Be=ne(P._source),Ue=Bu.current,ft=Ue.useState(function(){return Va(Y,P,Q)}),jt=ft[1],wr=ft[0];ft=Ci;var Tr=v.memoizedState,Xt=Tr.refs,jn=Xt.getSnapshot,li=Tr.source;Tr=Tr.subscribe;var Ea=On;return v.memoizedState={refs:Xt,source:P,subscribe:H},Ue.useEffect(function(){Xt.getSnapshot=Q,Xt.setSnapshot=jt;var $e=ne(P._source);if(!eo(Be,$e)){$e=Q(P._source),eo(wr,$e)||(jt($e),$e=ss(Ea),Y.mutableReadLanes|=$e&Y.pendingLanes),$e=Y.mutableReadLanes,Y.entangledLanes|=$e;for(var je=Y.entanglements,pt=$e;0Q?98:Q,function(){v(!0)}),ei(97qI&&(P.flags|=64,Y=!0,KA(H,!1),P.lanes=33554432)}else{if(!Y)if(v=UA(ne),v!==null){if(P.flags|=64,Y=!0,v=v.updateQueue,v!==null&&(P.updateQueue=v,P.flags|=4),KA(H,!0),H.tail===null&&H.tailMode==="hidden"&&!ne.alternate&&!ga)return P=P.lastEffect=H.lastEffect,P!==null&&(P.nextEffect=null),null}else 2*Dt()-H.renderingStartTime>qI&&Q!==1073741824&&(P.flags|=64,Y=!0,KA(H,!1),P.lanes=33554432);H.isBackwards?(ne.sibling=P.child,P.child=ne):(v=H.last,v!==null?v.sibling=ne:P.child=ne,H.last=ne)}return H.tail!==null?(v=H.tail,H.rendering=v,H.tail=v.sibling,H.lastEffect=P.lastEffect,H.renderingStartTime=Dt(),v.sibling=null,P=oi.current,Bn(oi,Y?P&1|2:P&1),v):null;case 23:case 24:return VI(),v!==null&&v.memoizedState!==null!=(P.memoizedState!==null)&&H.mode!=="unstable-defer-without-hiding"&&(P.flags|=4),null}throw Error(u(156,P.tag))}function qF(v){switch(v.tag){case 1:qn(v.type)&&Ec();var P=v.flags;return P&4096?(v.flags=P&-4097|64,v):null;case 3:if(Bc(),Ft(vi),Ft(ki),Dc(),P=v.flags,P&64)throw Error(u(285));return v.flags=P&-4097|64,v;case 5:return wt(v),null;case 13:return Ft(oi),P=v.flags,P&4096?(v.flags=P&-4097|64,v):null;case 19:return Ft(oi),null;case 4:return Bc(),null;case 10:return a0(v),null;case 23:case 24:return VI(),null;default:return null}}function m0(v,P){try{var Q="",H=P;do Q+=vI(H),H=H.return;while(H);var Y=Q}catch(ne){Y=` +Error generating stack: `+ne.message+` +`+ne.stack}return{value:v,source:P,stack:Y}}function y0(v,P){try{console.error(P.value)}catch(Q){setTimeout(function(){throw Q})}}var jF=typeof WeakMap=="function"?WeakMap:Map;function xI(v,P,Q){Q=Wa(-1,Q),Q.tag=3,Q.payload={element:null};var H=P.value;return Q.callback=function(){Wd||(Wd=!0,jI=H),y0(v,P)},Q}function E0(v,P,Q){Q=Wa(-1,Q),Q.tag=3;var H=v.type.getDerivedStateFromError;if(typeof H=="function"){var Y=P.value;Q.payload=function(){return y0(v,P),H(Y)}}var ne=v.stateNode;return ne!==null&&typeof ne.componentDidCatch=="function"&&(Q.callback=function(){typeof H!="function"&&(xl===null?xl=new Set([this]):xl.add(this),y0(v,P));var Be=P.stack;this.componentDidCatch(P.value,{componentStack:Be!==null?Be:""})}),Q}var GF=typeof WeakSet=="function"?WeakSet:Set;function kI(v){var P=v.ref;if(P!==null)if(typeof P=="function")try{P(null)}catch(Q){Fu(v,Q)}else P.current=null}function Td(v,P){switch(P.tag){case 0:case 11:case 15:case 22:return;case 1:if(P.flags&256&&v!==null){var Q=v.memoizedProps,H=v.memoizedState;v=P.stateNode,P=v.getSnapshotBeforeUpdate(P.elementType===P.type?Q:to(P.type,Q),H),v.__reactInternalSnapshotBeforeUpdate=P}return;case 3:R&&P.flags&256&&hs(P.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(u(163))}function wp(v,P){if(P=P.updateQueue,P=P!==null?P.lastEffect:null,P!==null){var Q=P=P.next;do{if((Q.tag&v)===v){var H=Q.destroy;Q.destroy=void 0,H!==void 0&&H()}Q=Q.next}while(Q!==P)}}function uD(v,P,Q){switch(Q.tag){case 0:case 11:case 15:case 22:if(P=Q.updateQueue,P=P!==null?P.lastEffect:null,P!==null){v=P=P.next;do{if((v.tag&3)===3){var H=v.create;v.destroy=H()}v=v.next}while(v!==P)}if(P=Q.updateQueue,P=P!==null?P.lastEffect:null,P!==null){v=P=P.next;do{var Y=v;H=Y.next,Y=Y.tag,Y&4&&Y&1&&(vD(Q,v),$F(Q,v)),v=H}while(v!==P)}return;case 1:v=Q.stateNode,Q.flags&4&&(P===null?v.componentDidMount():(H=Q.elementType===Q.type?P.memoizedProps:to(Q.type,P.memoizedProps),v.componentDidUpdate(H,P.memoizedState,v.__reactInternalSnapshotBeforeUpdate))),P=Q.updateQueue,P!==null&&Pd(Q,P,v);return;case 3:if(P=Q.updateQueue,P!==null){if(v=null,Q.child!==null)switch(Q.child.tag){case 5:v=Re(Q.child.stateNode);break;case 1:v=Q.child.stateNode}Pd(Q,P,v)}return;case 5:v=Q.stateNode,P===null&&Q.flags&4&&Qs(v,Q.type,Q.memoizedProps,Q);return;case 6:return;case 4:return;case 12:return;case 13:X&&Q.memoizedState===null&&(Q=Q.alternate,Q!==null&&(Q=Q.memoizedState,Q!==null&&(Q=Q.dehydrated,Q!==null&&mc(Q))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(u(163))}function AD(v,P){if(R)for(var Q=v;;){if(Q.tag===5){var H=Q.stateNode;P?op(H):Rs(Q.stateNode,Q.memoizedProps)}else if(Q.tag===6)H=Q.stateNode,P?ap(H):Ln(H,Q.memoizedProps);else if((Q.tag!==23&&Q.tag!==24||Q.memoizedState===null||Q===v)&&Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===v)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===v)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}}function Nd(v,P){if(ca&&typeof ca.onCommitFiberUnmount=="function")try{ca.onCommitFiberUnmount(Ze,P)}catch{}switch(P.tag){case 0:case 11:case 14:case 15:case 22:if(v=P.updateQueue,v!==null&&(v=v.lastEffect,v!==null)){var Q=v=v.next;do{var H=Q,Y=H.destroy;if(H=H.tag,Y!==void 0)if(H&4)vD(P,Q);else{H=P;try{Y()}catch(ne){Fu(H,ne)}}Q=Q.next}while(Q!==v)}break;case 1:if(kI(P),v=P.stateNode,typeof v.componentWillUnmount=="function")try{v.props=P.memoizedProps,v.state=P.memoizedState,v.componentWillUnmount()}catch(ne){Fu(P,ne)}break;case 5:kI(P);break;case 4:R?gD(v,P):z&&z&&(P=P.stateNode.containerInfo,v=pc(P),bA(P,v))}}function fD(v,P){for(var Q=P;;)if(Nd(v,Q),Q.child===null||R&&Q.tag===4){if(Q===P)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===P)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}else Q.child.return=Q,Q=Q.child}function Ld(v){v.alternate=null,v.child=null,v.dependencies=null,v.firstEffect=null,v.lastEffect=null,v.memoizedProps=null,v.memoizedState=null,v.pendingProps=null,v.return=null,v.updateQueue=null}function pD(v){return v.tag===5||v.tag===3||v.tag===4}function hD(v){if(R){e:{for(var P=v.return;P!==null;){if(pD(P))break e;P=P.return}throw Error(u(160))}var Q=P;switch(P=Q.stateNode,Q.tag){case 5:var H=!1;break;case 3:P=P.containerInfo,H=!0;break;case 4:P=P.containerInfo,H=!0;break;default:throw Error(u(161))}Q.flags&16&&(gu(P),Q.flags&=-17);e:t:for(Q=v;;){for(;Q.sibling===null;){if(Q.return===null||pD(Q.return)){Q=null;break e}Q=Q.return}for(Q.sibling.return=Q.return,Q=Q.sibling;Q.tag!==5&&Q.tag!==6&&Q.tag!==18;){if(Q.flags&2||Q.child===null||Q.tag===4)continue t;Q.child.return=Q,Q=Q.child}if(!(Q.flags&2)){Q=Q.stateNode;break e}}H?QI(v,Q,P):FI(v,Q,P)}}function QI(v,P,Q){var H=v.tag,Y=H===5||H===6;if(Y)v=Y?v.stateNode:v.stateNode.instance,P?Fs(Q,v,P):Xs(Q,v);else if(H!==4&&(v=v.child,v!==null))for(QI(v,P,Q),v=v.sibling;v!==null;)QI(v,P,Q),v=v.sibling}function FI(v,P,Q){var H=v.tag,Y=H===5||H===6;if(Y)v=Y?v.stateNode:v.stateNode.instance,P?xi(Q,v,P):$n(Q,v);else if(H!==4&&(v=v.child,v!==null))for(FI(v,P,Q),v=v.sibling;v!==null;)FI(v,P,Q),v=v.sibling}function gD(v,P){for(var Q=P,H=!1,Y,ne;;){if(!H){H=Q.return;e:for(;;){if(H===null)throw Error(u(160));switch(Y=H.stateNode,H.tag){case 5:ne=!1;break e;case 3:Y=Y.containerInfo,ne=!0;break e;case 4:Y=Y.containerInfo,ne=!0;break e}H=H.return}H=!0}if(Q.tag===5||Q.tag===6)fD(v,Q),ne?SA(Y,Q.stateNode):$s(Y,Q.stateNode);else if(Q.tag===4){if(Q.child!==null){Y=Q.stateNode.containerInfo,ne=!0,Q.child.return=Q,Q=Q.child;continue}}else if(Nd(v,Q),Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===P)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===P)return;Q=Q.return,Q.tag===4&&(H=!1)}Q.sibling.return=Q.return,Q=Q.sibling}}function RI(v,P){if(R){switch(P.tag){case 0:case 11:case 14:case 15:case 22:wp(3,P);return;case 1:return;case 5:var Q=P.stateNode;if(Q!=null){var H=P.memoizedProps;v=v!==null?v.memoizedProps:H;var Y=P.type,ne=P.updateQueue;P.updateQueue=null,ne!==null&&Zs(Q,ne,Y,v,H,P)}return;case 6:if(P.stateNode===null)throw Error(u(162));Q=P.memoizedProps,Hi(P.stateNode,v!==null?v.memoizedProps:Q,Q);return;case 3:X&&(P=P.stateNode,P.hydrate&&(P.hydrate=!1,FA(P.containerInfo)));return;case 12:return;case 13:dD(P),C0(P);return;case 19:C0(P);return;case 17:return;case 23:case 24:AD(P,P.memoizedState!==null);return}throw Error(u(163))}switch(P.tag){case 0:case 11:case 14:case 15:case 22:wp(3,P);return;case 12:return;case 13:dD(P),C0(P);return;case 19:C0(P);return;case 3:X&&(Q=P.stateNode,Q.hydrate&&(Q.hydrate=!1,FA(Q.containerInfo)));break;case 23:case 24:return}e:if(z){switch(P.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:P=P.stateNode,bA(P.containerInfo,P.pendingChildren);break e}throw Error(u(163))}}function dD(v){v.memoizedState!==null&&(HI=Dt(),R&&AD(v.child,!0))}function C0(v){var P=v.updateQueue;if(P!==null){v.updateQueue=null;var Q=v.stateNode;Q===null&&(Q=v.stateNode=new GF),P.forEach(function(H){var Y=tR.bind(null,v,H);Q.has(H)||(Q.add(H),H.then(Y,Y))})}}function WF(v,P){return v!==null&&(v=v.memoizedState,v===null||v.dehydrated!==null)?(P=P.memoizedState,P!==null&&P.dehydrated===null):!1}var Od=0,Md=1,Ud=2,I0=3,_d=4;if(typeof Symbol=="function"&&Symbol.for){var w0=Symbol.for;Od=w0("selector.component"),Md=w0("selector.has_pseudo_class"),Ud=w0("selector.role"),I0=w0("selector.test_id"),_d=w0("selector.text")}function Hd(v){var P=$(v);if(P!=null){if(typeof P.memoizedProps["data-testname"]!="string")throw Error(u(364));return P}if(v=nr(v),v===null)throw Error(u(362));return v.stateNode.current}function bu(v,P){switch(P.$$typeof){case Od:if(v.type===P.value)return!0;break;case Md:e:{P=P.value,v=[v,0];for(var Q=0;Q";case Md:return":has("+(xu(v)||"")+")";case Ud:return'[role="'+v.value+'"]';case _d:return'"'+v.value+'"';case I0:return'[data-testname="'+v.value+'"]';default:throw Error(u(365,v))}}function TI(v,P){var Q=[];v=[v,0];for(var H=0;HY&&(Y=Be),Q&=~ne}if(Q=Y,Q=Dt()-Q,Q=(120>Q?120:480>Q?480:1080>Q?1080:1920>Q?1920:3e3>Q?3e3:4320>Q?4320:1960*KF(Q/1960))-Q,10 component higher in the tree to provide a loading indicator or placeholder to display.`)}is!==5&&(is=2),ft=m0(ft,Ue),Xt=Be;do{switch(Xt.tag){case 3:ne=ft,Xt.flags|=4096,P&=-P,Xt.lanes|=P;var Wn=xI(Xt,ne,P);Dd(Xt,Wn);break e;case 1:ne=ft;var br=Xt.type,Sn=Xt.stateNode;if(!(Xt.flags&64)&&(typeof br.getDerivedStateFromError=="function"||Sn!==null&&typeof Sn.componentDidCatch=="function"&&(xl===null||!xl.has(Sn)))){Xt.flags|=4096,P&=-P,Xt.lanes|=P;var Tn=E0(Xt,ne,P);Dd(Xt,Tn);break e}}Xt=Xt.return}while(Xt!==null)}BD(Q)}catch(Yr){P=Yr,Oi===Q&&Q!==null&&(Oi=Q=Q.return);continue}break}while(!0)}function ID(){var v=jd.current;return jd.current=xt,v===null?xt:v}function x0(v,P){var Q=Sr;Sr|=16;var H=ID();Os===v&&ms===P||Pp(v,P);do try{JF();break}catch(Y){CD(v,Y)}while(!0);if(s0(),Sr=Q,jd.current=H,Oi!==null)throw Error(u(261));return Os=null,ms=0,is}function JF(){for(;Oi!==null;)wD(Oi)}function zF(){for(;Oi!==null&&!ja();)wD(Oi)}function wD(v){var P=SD(v.alternate,v,VA);v.memoizedProps=v.pendingProps,P===null?BD(v):Oi=P,LI.current=null}function BD(v){var P=v;do{var Q=P.alternate;if(v=P.return,P.flags&2048){if(Q=qF(P),Q!==null){Q.flags&=2047,Oi=Q;return}v!==null&&(v.firstEffect=v.lastEffect=null,v.flags|=2048)}else{if(Q=HF(Q,P,VA),Q!==null){Oi=Q;return}if(Q=P,Q.tag!==24&&Q.tag!==23||Q.memoizedState===null||VA&1073741824||!(Q.mode&4)){for(var H=0,Y=Q.child;Y!==null;)H|=Y.lanes|Y.childLanes,Y=Y.sibling;Q.childLanes=H}v!==null&&!(v.flags&2048)&&(v.firstEffect===null&&(v.firstEffect=P.firstEffect),P.lastEffect!==null&&(v.lastEffect!==null&&(v.lastEffect.nextEffect=P.firstEffect),v.lastEffect=P.lastEffect),1Dt()-HI?Pp(v,0):UI|=Q),qo(v,P)}function tR(v,P){var Q=v.stateNode;Q!==null&&Q.delete(P),P=0,P===0&&(P=v.mode,P&2?P&4?(kc===0&&(kc=Bp),P=vn(62914560&~kc),P===0&&(P=4194304)):P=er()===99?1:2:P=1),Q=oo(),v=Vd(v,P),v!==null&&(ua(v,P,Q),qo(v,Q))}var SD;SD=function(v,P,Q){var H=P.lanes;if(v!==null)if(v.memoizedProps!==P.pendingProps||vi.current)Ye=!0;else if(Q&H)Ye=!!(v.flags&16384);else{switch(Ye=!1,P.tag){case 3:Fd(P),p0();break;case 5:wu(P);break;case 1:qn(P.type)&&aa(P);break;case 4:u0(P,P.stateNode.containerInfo);break;case 10:o0(P,P.memoizedProps.value);break;case 13:if(P.memoizedState!==null)return Q&P.child.childLanes?SI(v,P,Q):(Bn(oi,oi.current&1),P=Mn(v,P,Q),P!==null?P.sibling:null);Bn(oi,oi.current&1);break;case 19:if(H=(Q&P.childLanes)!==0,v.flags&64){if(H)return cD(v,P,Q);P.flags|=64}var Y=P.memoizedState;if(Y!==null&&(Y.rendering=null,Y.tail=null,Y.lastEffect=null),Bn(oi,oi.current),H)break;return null;case 23:case 24:return P.lanes=0,ai(v,P,Q)}return Mn(v,P,Q)}else Ye=!1;switch(P.lanes=0,P.tag){case 2:if(H=P.type,v!==null&&(v.alternate=null,P.alternate=null,P.flags|=2),v=P.pendingProps,Y=un(P,ki.current),Eu(P,Q),Y=g0(null,P,H,v,Y,Q),P.flags|=1,typeof Y=="object"&&Y!==null&&typeof Y.render=="function"&&Y.$$typeof===void 0){if(P.tag=1,P.memoizedState=null,P.updateQueue=null,qn(H)){var ne=!0;aa(P)}else ne=!1;P.memoizedState=Y.state!==null&&Y.state!==void 0?Y.state:null,pp(P);var Be=H.getDerivedStateFromProps;typeof Be=="function"&&LA(P,H,Be,v),Y.updater=OA,P.stateNode=Y,Y._reactInternals=P,no(P,H,v,Q),P=PI(null,P,H,!0,ne,Q)}else P.tag=0,At(null,P,Y,Q),P=P.child;return P;case 16:Y=P.elementType;e:{switch(v!==null&&(v.alternate=null,P.alternate=null,P.flags|=2),v=P.pendingProps,ne=Y._init,Y=ne(Y._payload),P.type=Y,ne=P.tag=nR(Y),v=to(Y,v),ne){case 0:P=GA(null,P,Y,v,Q);break e;case 1:P=lD(null,P,Y,v,Q);break e;case 11:P=hr(null,P,Y,v,Q);break e;case 14:P=Ir(null,P,Y,to(Y.type,v),H,Q);break e}throw Error(u(306,Y,""))}return P;case 0:return H=P.type,Y=P.pendingProps,Y=P.elementType===H?Y:to(H,Y),GA(v,P,H,Y,Q);case 1:return H=P.type,Y=P.pendingProps,Y=P.elementType===H?Y:to(H,Y),lD(v,P,H,Y,Q);case 3:if(Fd(P),H=P.updateQueue,v===null||H===null)throw Error(u(282));if(H=P.pendingProps,Y=P.memoizedState,Y=Y!==null?Y.element:null,l0(v,P),NA(P,H,null,Q),H=P.memoizedState.element,H===Y)p0(),P=Mn(v,P,Q);else{if(Y=P.stateNode,(ne=Y.hydrate)&&(X?(Uo=dc(P.stateNode.containerInfo),ha=P,ne=ga=!0):ne=!1),ne){if(X&&(v=Y.mutableSourceEagerHydrationData,v!=null))for(Y=0;Y=jt&&ne>=Tr&&Y<=wr&&Be<=Xt){v.splice(P,1);break}else if(H!==jt||Q.width!==ft.width||XtBe){if(!(ne!==Tr||Q.height!==ft.height||wrY)){jt>H&&(ft.width+=jt-H,ft.x=H),wrne&&(ft.height+=Tr-ne,ft.y=ne),XtQ&&(Q=Be)),Be ")+` + +No matching component was found for: + `)+v.join(" > ")}return null},r.getPublicRootInstance=function(v){if(v=v.current,!v.child)return null;switch(v.child.tag){case 5:return Re(v.child.stateNode);default:return v.child.stateNode}},r.injectIntoDevTools=function(v){if(v={bundleType:v.bundleType,version:v.version,rendererPackageName:v.rendererPackageName,rendererConfig:v.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:A.ReactCurrentDispatcher,findHostInstanceByFiber:sR,findFiberByHostInstance:v.findFiberByHostInstance||oR,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")v=!1;else{var P=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!P.isDisabled&&P.supportsFiber)try{Ze=P.inject(v),ca=P}catch{}v=!0}return v},r.observeVisibleRects=function(v,P,Q,H){if(!qt)throw Error(u(363));v=NI(v,P);var Y=Xr(v,Q,H).disconnect;return{disconnect:function(){Y()}}},r.registerMutableSourceForHydration=function(v,P){var Q=P._getVersion;Q=Q(P._source),v.mutableSourceEagerHydrationData==null?v.mutableSourceEagerHydrationData=[P,Q]:v.mutableSourceEagerHydrationData.push(P,Q)},r.runWithPriority=function(v,P){var Q=Bl;try{return Bl=v,P()}finally{Bl=Q}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(v,P){var Q=Sr;Sr&=-2,Sr|=8;try{return v(P)}finally{Sr=Q,Sr===0&&(ku(),Pn())}},r.updateContainer=function(v,P,Q,H){var Y=P.current,ne=oo(),Be=ss(Y);e:if(Q){Q=Q._reactInternals;t:{if(me(Q)!==Q||Q.tag!==1)throw Error(u(170));var Ue=Q;do{switch(Ue.tag){case 3:Ue=Ue.stateNode.context;break t;case 1:if(qn(Ue.type)){Ue=Ue.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Ue=Ue.return}while(Ue!==null);throw Error(u(171))}if(Q.tag===1){var ft=Q.type;if(qn(ft)){Q=oa(Q,ft,Ue);break e}}Q=Ue}else Q=No;return P.context===null?P.context=Q:P.pendingContext=Q,P=Wa(ne,Be),P.payload={element:v},H=H===void 0?null:H,H!==null&&(P.callback=H),Ya(Y,P),Xa(Y,Be,ne),Be},r}});var ECe=_(($Yt,yCe)=>{"use strict";yCe.exports=mCe()});var ICe=_((eKt,CCe)=>{"use strict";var Pyt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};CCe.exports=Pyt});var DCe=_((tKt,vCe)=>{"use strict";var Syt=Object.assign||function(t){for(var e=1;e"}}]),t}(),wCe=function(){BQ(t,null,[{key:"fromJS",value:function(r){var o=r.width,a=r.height;return new t(o,a)}}]);function t(e,r){fq(this,t),this.width=e,this.height=r}return BQ(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),t}(),BCe=function(){function t(e,r){fq(this,t),this.unit=e,this.value=r}return BQ(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case au.UNIT_POINT:return String(this.value);case au.UNIT_PERCENT:return this.value+"%";case au.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();vCe.exports=function(t,e){function r(u,A,p){var h=u[A];u[A]=function(){for(var E=arguments.length,w=Array(E),D=0;D1?w-1:0),x=1;x1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:au.DIRECTION_LTR;return u.call(this,A,p,h)}),Syt({Config:e.Config,Node:e.Node,Layout:t("Layout",byt),Size:t("Size",wCe),Value:t("Value",BCe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},au)}});var PCe=_((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof ve=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var o=nodeFS.readFileSync(e);return r?o:o.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,o){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):o()},a.onerror=o,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var o=enlargeMemory();if(!o)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var o=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return o},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,o,a,n){var u=getCFunc(e),A=[],p=0;if(a)for(var h=0;h>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,o){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var u=typeof e=="string"?e:null,A;if(r==ALLOC_NONE?A=o:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,u?1:e.length)),a){var o=A,p;for(assert((A&3)==0),p=A+(n&-4);o>2]=0;for(p=A+n;o>0]=0;return A}if(u==="i8")return t.subarray||t.slice?HEAPU8.set(t,A):HEAPU8.set(new Uint8Array(t),A),A;for(var h=0,E,w,D;h>0],r|=o,!(o==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var u=1024,A;e>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,u))),n=n?n+A:A,t+=u,e-=u;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var o,a,n,u,A,p,h="";;){if(o=t[e++],!o)return h;if(!(o&128)){h+=String.fromCharCode(o);continue}if(a=t[e++]&63,(o&224)==192){h+=String.fromCharCode((o&31)<<6|a);continue}if(n=t[e++]&63,(o&240)==224?o=(o&15)<<12|a<<6|n:(u=t[e++]&63,(o&248)==240?o=(o&7)<<18|a<<12|n<<6|u:(A=t[e++]&63,(o&252)==248?o=(o&3)<<24|a<<18|n<<12|u<<6|A:(p=t[e++]&63,o=(o&1)<<30|a<<24|n<<18|u<<12|A<<6|p))),o<65536)h+=String.fromCharCode(o);else{var E=o-65536;h+=String.fromCharCode(55296|E>>10,56320|E&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,o){if(!(o>0))return 0;for(var a=r,n=r+o-1,u=0;u=55296&&A<=57343&&(A=65536+((A&1023)<<10)|t.charCodeAt(++u)&1023),A<=127){if(r>=n)break;e[r++]=A}else if(A<=2047){if(r+1>=n)break;e[r++]=192|A>>6,e[r++]=128|A&63}else if(A<=65535){if(r+2>=n)break;e[r++]=224|A>>12,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=2097151){if(r+3>=n)break;e[r++]=240|A>>18,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=67108863){if(r+4>=n)break;e[r++]=248|A>>24,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else{if(r+5>=n)break;e[r++]=252|A>>30,e[r++]=128|A>>24&63,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r=55296&&o<=57343&&(o=65536+((o&1023)<<10)|t.charCodeAt(++r)&1023),o<=127?++e:o<=2047?e+=2:o<=65535?e+=3:o<=2097151?e+=4:o<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),o=lengthBytesUTF8(r)+1,a=_malloc(o);stringToUTF8(r,a,o);var n=_malloc(4),u=e(a,0,0,n);if(getValue(n,"i32")===0&&u)return Pointer_stringify(u)}catch{}finally{a&&_free(a),n&&_free(n),u&&_free(u)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var o=demangle(r);return r===o?r:r+" ["+o+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=` +`+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var o=r>0?r:lengthBytesUTF8(t)+1,a=new Array(o),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r255&&(o&=255),e.push(String.fromCharCode(o))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var o,a;r&&(a=e+lengthBytesUTF8(t),o=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=o)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var o=0;o>0]=t.charCodeAt(o);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var o=e>>>16,a=e&65535,n=r>>>16,u=r&65535;return a*u+(o*u+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,o,a,n,u,A){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,o,a,n,u,A){return ASM_CONSTS[t](e,r,o,a,n,u,A)}function _emscripten_asm_const_iiiii(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiidddddd(t,e,r,o,a,n,u,A,p){return ASM_CONSTS[t](e,r,o,a,n,u,A,p)}function _emscripten_asm_const_iiididi(t,e,r,o,a,n,u){return ASM_CONSTS[t](e,r,o,a,n,u)}function _emscripten_asm_const_iiii(t,e,r,o){return ASM_CONSTS[t](e,r,o)}function _emscripten_asm_const_iiiid(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiiiii(t,e,r,o,a,n){return ASM_CONSTS[t](e,r,o,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,o){var a=arguments.length,n=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,o);else for(var A=t.length-1;A>=0;A--)(u=t[A])&&(n=(a<3?u(n):a>3?u(e,r,n):u(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,o){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=o/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var u=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,u)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(u){u.source===window&&u.data===o&&(u.stopPropagation(),r.shift()())};var a=n,r=[],o="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:o})):window.postMessage(o,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,o,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=o;var n;typeof o<"u"?n=function(){Module.dynCall_vi(t,o)}:n=function(){Module.dynCall_v(t)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var E=Browser.mainLoop.remainingBlockers,w=E%1==0?E-1:Math.floor(E);h.counted?Browser.mainLoop.remainingBlockers=w:(w=w+.5,Browser.mainLoop.remainingBlockers=(8*E+w)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),u1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(u0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,u,A,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(u)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(u)}))}catch(x){Runtime.warnOnce("Blob constructor present but fails: "+x+"; falling back to blob builder")}if(!h){var E=new Browser.BlobBuilder;E.append(new Uint8Array(n).buffer),h=E.getBlob()}var w=Browser.URLObject.createObjectURL(h),D=new Image;D.onload=function(){assert(D.complete,"Image "+u+" could not be decoded");var C=document.createElement("canvas");C.width=D.width,C.height=D.height;var T=C.getContext("2d");T.drawImage(D,0,0),Module.preloadedImages[u]=C,Browser.URLObject.revokeObjectURL(w),A&&A(n)},D.onerror=function(C){console.log("Image "+w+" could not be decoded"),p&&p()},D.src=w},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,u,A,p){var h=!1;function E(T){h||(h=!0,Module.preloadedAudios[u]=T,A&&A(n))}function w(){h||(h=!0,Module.preloadedAudios[u]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var D=new Blob([n],{type:Browser.getMimetype(u)})}catch{return w()}var x=Browser.URLObject.createObjectURL(D),C=new Audio;C.addEventListener("canplaythrough",function(){E(C)},!1),C.onerror=function(L){if(h)return;console.log("warning: browser could not fully decode audio "+u+", trying slower base64 approach");function U(J){for(var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",le="=",ce="",ue=0,Ie=0,he=0;he=6;){var De=ue>>Ie-6&63;Ie-=6,ce+=te[De]}return Ie==2?(ce+=te[(ue&3)<<4],ce+=le+le):Ie==4&&(ce+=te[(ue&15)<<2],ce+=le),ce}C.src="data:audio/x-"+u.substr(-3)+";base64,"+U(n),E(C)},C.src=x,Browser.safeSetTimeout(function(){E(C)},1e4)}else return w()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var o=Module.canvas;o&&(o.requestPointerLock=o.requestPointerLock||o.mozRequestPointerLock||o.webkitRequestPointerLock||o.msRequestPointerLock||function(){},o.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},o.exitPointerLock=o.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&o.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,o){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var u={antialias:!1,alpha:!1};if(o)for(var A in o)u[A]=o[A];n=GL.createContext(t,u),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var o=Module.canvas;function a(){Browser.isFullscreen=!1;var u=o.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===u?(o.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},o.exitFullscreen=o.exitFullscreen.bind(document),Browser.lockPointer&&o.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(u.parentNode.insertBefore(o,u),u.parentNode.removeChild(u),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(o)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");o.parentNode.insertBefore(n,o),n.appendChild(o),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(o,a,n){return Browser.requestFullscreen(o,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,o=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var u=t.touch;if(u===void 0)return;var A=u.pageX-(a+e.left),p=u.pageY-(n+e.top);A=A*(r/e.width),p=p*(o/e.height);var h={x:A,y:p};if(t.type==="touchstart")Browser.lastTouches[u.identifier]=h,Browser.touches[u.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var E=Browser.touches[u.identifier];E||(E=h),Browser.lastTouches[u.identifier]=E,Browser.touches[u.identifier]=h}return}var w=t.pageX-(a+e.left),D=t.pageY-(n+e.top);w=w*(r/e.width),D=D*(o/e.height),Browser.mouseMovementX=w-Browser.mouseX,Browser.mouseMovementY=D-Browser.mouseY,Browser.mouseX=w,Browser.mouseY=D}},asyncLoad:function(t,e,r,o){var a=o?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var o=Module.canvas;Browser.updateCanvasDimensions(o,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var o=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(o/a>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(o){return(typeof FS>"u"||!(o instanceof FS.ErrnoError))&&abort(o),-o.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function r(p,h,E,w,D,x){if(h==1){var C=w&896;(C==128||C==256||C==384)&&(p="X const")}var T;return x?T=E.replace("X",p).replace("Y",D):T=p.replace("X",E).replace("Y",D),T.replace(/([*&]) (?=[*&])/g,"$1")}function o(p,h,E,w,D){throw new Error(p+" type "+E.replace("X",h+"?")+(w?" with flag "+w:"")+" in "+D)}function a(p,h,E,w,D,x,C,T){x===void 0&&(x="X"),T===void 0&&(T=1);var L=E(p);if(L)return L;var U=w(p),J=U.placeholderFlag,te=e[J];C&&te&&(x=r(C[2],C[0],x,te[0],"?",!0));var le;J==0&&(le="Unbound"),J>=10&&(le="Corrupt"),T>20&&(le="Deeply nested"),le&&o(le,p,x,J,D||"?");var ce=U.paramList[0],ue=a(ce,h,E,w,D,x,te,T+1),Ie,he={flags:te[0],id:p,name:"",paramList:[ue]},De=[],Ee="?";switch(U.placeholderFlag){case 1:Ie=ue.spec;break;case 2:if((ue.flags&15360)==1024&&ue.spec.ptrSize==1){he.flags=7168;break}case 3:case 6:case 5:Ie=ue.spec,ue.flags&15360;break;case 8:Ee=""+U.paramList[1],he.paramList.push(U.paramList[1]);break;case 9:for(var g=0,me=U.paramList[1];g>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),u=SYSCALLS.get(),A=a;return FS.llseek(r,A,u),HEAP32[n>>2]=r.position,r.getdents&&A===0&&u===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(E,w){var D=___syscall146.buffers[E];assert(D),w===0||w===10?((E===1?Module.print:Module.printErr)(UTF8ArrayToString(D,0)),D.length=0):D.push(w)});for(var u=0;u>2],p=HEAP32[o+(u*8+4)>>2],h=0;h"u"||!(E instanceof FS.ErrnoError))&&abort(E),-E.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;tt.pageSize/2||e>t.pageSize-r){var o=_nbind.typeNameTbl.NBind.proto;return o.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var o=HEAPU32[t.pagePtr];if(o){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],o=new r(e);return typeIdTbl[e.id]=o,_nbind.typeNameTbl[e.name]=o,o}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var o=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(o=[o[0],o.slice(1)]),{paramList:o,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},o=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+o];if(!a)throw new Error("dynCall_"+o+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,o){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,o)):(r.arity=o,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return o.heap=a[r.ptrSize*8],o.ptrSize=r.ptrSize,o}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,o=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,o,r),o}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushCString(a,o)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(o){return!!o},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(o){__extends(a,o);function a(n,u,A,p){var h=o.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var E=u,w=A,D=p;if(n!==_nbind.ptrMarker){var x=h.__nbindConstructor.apply(h,arguments);E=4608,D=HEAPU32[x/4],w=HEAPU32[x/4+1]}var C={configurable:!0,enumerable:!1,value:null,writable:!1},T={__nbindFlags:E,__nbindPtr:w};D&&(T.__nbindShared=D,_nbind.mark(h));for(var L=0,U=Object.keys(T);L>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t=3?u=Buffer.from(n):u=new Buffer(n),u.copy(o)}else getBuffer(o).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,o,a,n){try{Module.dynCall_viiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,o){try{return Module.dynCall_fiff(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,o,a){try{Module.dynCall_viddi(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,o){try{Module.dynCall_vidd(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,o){try{return Module.dynCall_iiii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,o){try{return Module.dynCall_diii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,o,a,n){try{Module.dynCall_viiddi(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,o,a,n,u){try{Module.dynCall_viiiiii(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,o,a,n){try{return Module.dynCall_iiiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,o,a){try{Module.dynCall_viiid(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,o,a,n,u){try{Module.dynCall_viififi(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(t,e,r,o){try{Module.dynCall_viii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,o){try{Module.dynCall_viid(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,o,a){try{Module.dynCall_viiii(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var o=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),u=new t.Uint8Array(r),A=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),E=new t.Float64Array(r),w=e.DYNAMICTOP_PTR|0,D=e.tempDoublePtr|0,x=e.ABORT|0,C=e.STACKTOP|0,T=e.STACK_MAX|0,L=e.cttz_i8|0,U=e.___dso_handle|0,J=0,te=0,le=0,ce=0,ue=t.NaN,Ie=t.Infinity,he=0,De=0,Ee=0,g=0,me=0,Ce=0,fe=t.Math.floor,ie=t.Math.abs,Z=t.Math.sqrt,Pe=t.Math.pow,Re=t.Math.cos,ht=t.Math.sin,q=t.Math.tan,nt=t.Math.acos,Ne=t.Math.asin,Te=t.Math.atan,ke=t.Math.atan2,Ve=t.Math.exp,be=t.Math.log,tt=t.Math.ceil,He=t.Math.imul,b=t.Math.min,I=t.Math.max,S=t.Math.clz32,y=t.Math.fround,R=e.abort,z=e.assert,X=e.enlargeMemory,$=e.getTotalMemory,se=e.abortOnCannotGrowMemory,xe=e.invoke_viiiii,Fe=e.invoke_vif,lt=e.invoke_vid,Et=e.invoke_fiff,qt=e.invoke_vi,nr=e.invoke_vii,St=e.invoke_ii,cn=e.invoke_viddi,Pr=e.invoke_vidd,yr=e.invoke_iiii,Rr=e.invoke_diii,Xr=e.invoke_di,$n=e.invoke_iid,Xs=e.invoke_iii,Hi=e.invoke_viiddi,Qs=e.invoke_viiiiii,Zs=e.invoke_dii,xi=e.invoke_i,Fs=e.invoke_iiiiii,$s=e.invoke_viiid,SA=e.invoke_viififi,gu=e.invoke_viii,op=e.invoke_v,ap=e.invoke_viid,Rs=e.invoke_idd,Ln=e.invoke_viiii,hs=e._emscripten_asm_const_iiiii,Ts=e._emscripten_asm_const_iiidddddd,pc=e._emscripten_asm_const_iiiid,hc=e.__nbind_reference_external,gc=e._emscripten_asm_const_iiiiiiii,bA=e._removeAccessorPrefix,xA=e._typeModule,Ro=e.__nbind_register_pool,To=e.__decorate,kA=e._llvm_stackrestore,pr=e.___cxa_atexit,Me=e.__extends,ia=e.__nbind_get_value_object,dc=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,Er=e._emscripten_set_main_loop_timing,du=e.__nbind_register_primitive,QA=e.__nbind_register_type,FA=e._emscripten_memcpy_big,mc=e.__nbind_register_function,yc=e.___setErrNo,Il=e.__nbind_register_class,we=e.__nbind_finish,Tt=e._abort,wl=e._nbind_value,Bi=e._llvm_stacksave,Ns=e.___syscall54,Ft=e._defineHidden,Bn=e._emscripten_set_main_loop,No=e._emscripten_get_now,ki=e.__nbind_register_callback_signature,vi=e._emscripten_asm_const_iiiiii,sa=e.__nbind_free_external,un=e._emscripten_asm_const_iiii,qn=e._emscripten_asm_const_iiididi,Ec=e.___syscall6,lp=e._atexit,oa=e.___syscall140,aa=e.___syscall146,la=y(0);let Ze=y(0);function ca(s){s=s|0;var l=0;return l=C,C=C+s|0,C=C+15&-16,l|0}function mu(){return C|0}function Bl(s){s=s|0,C=s}function dn(s,l){s=s|0,l=l|0,C=s,T=l}function Lo(s,l){s=s|0,l=l|0,J||(J=s,te=l)}function RA(s){s=s|0,Ce=s}function TA(){return Ce|0}function Oo(){var s=0,l=0;xr(8104,8,400)|0,xr(8504,408,540)|0,s=9044,l=s+44|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));o[9088]=0,o[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,pr(17,8104,U|0)|0}function qa(s){s=s|0,gt(s+948|0)}function Ot(s){return s=y(s),((AD(s)|0)&2147483647)>>>0>2139095040|0}function vn(s,l,c){s=s|0,l=l|0,c=c|0;e:do if(n[s+(l<<3)+4>>2]|0)s=s+(l<<3)|0;else{if((l|2|0)==3&&n[s+60>>2]|0){s=s+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[s+52>>2]|0){s=s+48|0;break e}break}default:}if(n[s+68>>2]|0){s=s+64|0;break}else{s=(l|1|0)==5?948:c;break}}while(!1);return s|0}function Mo(s){s=s|0;var l=0;return l=_D(1e3)|0,ua(s,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,xr(l|0,8104,1e3)|0,o[s+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=s,l|0}function ua(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,d0(s,5,3197,f)),C=d}function qi(){return Mo(956)|0}function vl(s){s=s|0;var l=0;return l=Yt(1e3)|0,Cc(l,s),ua(n[s+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function Cc(s,l){s=s|0,l=l|0;var c=0;xr(s|0,l|0,948)|0,Qd(s+948|0,l+948|0),c=s+960|0,s=l+960|0,l=c+40|0;do n[c>>2]=n[s>>2],c=c+4|0,s=s+4|0;while((c|0)<(l|0))}function Dl(s){s=s|0;var l=0,c=0,f=0,d=0;if(l=s+944|0,c=n[l>>2]|0,c|0&&(Aa(c+948|0,s)|0,n[l>>2]=0),c=Di(s)|0,c|0){l=0;do n[(rs(s,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(c|0))}c=s+948|0,f=n[c>>2]|0,d=s+952|0,l=n[d>>2]|0,(l|0)!=(f|0)&&(n[d>>2]=l+(~((l+-4-f|0)>>>2)<<2)),ja(c),HD(s),n[2276]=(n[2276]|0)+-1}function Aa(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0;f=n[s>>2]|0,k=s+4|0,c=n[k>>2]|0,m=c;e:do if((f|0)==(c|0))d=f,B=4;else for(s=f;;){if((n[s>>2]|0)==(l|0)){d=s,B=4;break e}if(s=s+4|0,(s|0)==(c|0)){s=0;break}}while(!1);return(B|0)==4&&((d|0)!=(c|0)?(f=d+4|0,s=m-f|0,l=s>>2,l&&(rw(d|0,f|0,s|0)|0,c=n[k>>2]|0),s=d+(l<<2)|0,(c|0)==(s|0)||(n[k>>2]=c+(~((c+-4-s|0)>>>2)<<2)),s=1):s=0),s|0}function Di(s){return s=s|0,(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2|0}function rs(s,l){s=s|0,l=l|0;var c=0;return c=n[s+948>>2]|0,(n[s+952>>2]|0)-c>>2>>>0>l>>>0?s=n[c+(l<<2)>>2]|0:s=0,s|0}function ja(s){s=s|0;var l=0,c=0,f=0,d=0;f=C,C=C+32|0,l=f,d=n[s>>2]|0,c=(n[s+4>>2]|0)-d|0,((n[s+8>>2]|0)-d|0)>>>0>c>>>0&&(d=c>>2,Nd(l,d,d,s+8|0),fD(s,l),Ld(l)),C=f}function yu(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0;M=Di(s)|0;do if(M|0){if((n[(rs(s,0)|0)+944>>2]|0)==(s|0)){if(!(Aa(s+948|0,l)|0))break;xr(l+400|0,8504,540)|0,n[l+944>>2]=0,Le(s);break}B=n[(n[s+976>>2]|0)+12>>2]|0,k=s+948|0,F=(B|0)==0,c=0,m=0;do f=n[(n[k>>2]|0)+(m<<2)>>2]|0,(f|0)==(l|0)?Le(s):(d=vl(f)|0,n[(n[k>>2]|0)+(c<<2)>>2]=d,n[d+944>>2]=s,F||hT[B&15](f,d,s,c),c=c+1|0),m=m+1|0;while((m|0)!=(M|0));if(c>>>0>>0){F=s+948|0,k=s+952|0,B=c,c=n[k>>2]|0;do m=(n[F>>2]|0)+(B<<2)|0,f=m+4|0,d=c-f|0,l=d>>2,l&&(rw(m|0,f|0,d|0)|0,c=n[k>>2]|0),d=c,f=m+(l<<2)|0,(d|0)!=(f|0)&&(c=d+(~((d+-4-f|0)>>>2)<<2)|0,n[k>>2]=c),B=B+1|0;while((B|0)!=(M|0))}}while(!1)}function Pl(s){s=s|0;var l=0,c=0,f=0,d=0;pi(s,(Di(s)|0)==0,2491),pi(s,(n[s+944>>2]|0)==0,2545),l=s+948|0,c=n[l>>2]|0,f=s+952|0,d=n[f>>2]|0,(d|0)!=(c|0)&&(n[f>>2]=d+(~((d+-4-c|0)>>>2)<<2)),ja(l),l=s+976|0,c=n[l>>2]|0,xr(s|0,8104,1e3)|0,o[c+2>>0]|0&&(n[s+4>>2]=2,n[s+12>>2]=4),n[l>>2]=c}function pi(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,so(s,5,3197,f)),C=d}function Dn(){return n[2276]|0}function Sl(){var s=0;return s=_D(20)|0,Je((s|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[s>>2]=n[239],n[s+4>>2]=n[240],n[s+8>>2]=n[241],n[s+12>>2]=n[242],n[s+16>>2]=n[243],s|0}function Je(s,l){s=s|0,l=l|0;var c=0,f=0;f=C,C=C+16|0,c=f,s||(n[c>>2]=l,so(0,5,3197,c)),C=f}function st(s){s=s|0,HD(s),n[2277]=(n[2277]|0)+-1}function vt(s,l){s=s|0,l=l|0;var c=0;l?(pi(s,(Di(s)|0)==0,2629),c=1):(c=0,l=0),n[s+964>>2]=l,n[s+988>>2]=c}function ar(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+8|0,d=f+4|0,B=f,n[d>>2]=l,pi(s,(n[l+944>>2]|0)==0,2709),pi(s,(n[s+964>>2]|0)==0,2763),ee(s),l=s+948|0,n[B>>2]=(n[l>>2]|0)+(c<<2),n[m>>2]=n[B>>2],ye(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=s,Le(s),C=f}function ee(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;if(c=Di(s)|0,c|0&&(n[(rs(s,0)|0)+944>>2]|0)!=(s|0)){f=n[(n[s+976>>2]|0)+12>>2]|0,d=s+948|0,m=(f|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,k=vl(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=k,n[k+944>>2]=s,m||hT[f&15](B,k,s,l),l=l+1|0;while((l|0)!=(c|0))}}function ye(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0;rt=C,C=C+64|0,j=rt+52|0,k=rt+48|0,oe=rt+28|0,We=rt+24|0,Oe=rt+20|0,Qe=rt,f=n[s>>2]|0,m=f,l=f+((n[l>>2]|0)-m>>2<<2)|0,f=s+4|0,d=n[f>>2]|0,B=s+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[c>>2],n[f>>2]=(n[f>>2]|0)+4;break}pD(s,l,d,l+4|0),l>>>0<=c>>>0&&(c=(n[f>>2]|0)>>>0>c>>>0?c+4|0:c),n[l>>2]=n[c>>2]}else{f=(d-m>>2)+1|0,d=N(s)|0,d>>>0>>0&&Zr(s),O=n[s>>2]|0,M=(n[B>>2]|0)-O|0,m=M>>1,Nd(Qe,M>>2>>>0>>1>>>0?m>>>0>>0?f:m:d,l-O>>2,s+8|0),O=Qe+8|0,f=n[O>>2]|0,m=Qe+12|0,M=n[m>>2]|0,B=M,F=f;do if((f|0)==(M|0)){if(M=Qe+4|0,f=n[M>>2]|0,Xe=n[Qe>>2]|0,d=Xe,f>>>0<=Xe>>>0){f=B-d>>1,f=f|0?f:1,Nd(oe,f,f>>>2,n[Qe+16>>2]|0),n[We>>2]=n[M>>2],n[Oe>>2]=n[O>>2],n[k>>2]=n[We>>2],n[j>>2]=n[Oe>>2],QI(oe,k,j),f=n[Qe>>2]|0,n[Qe>>2]=n[oe>>2],n[oe>>2]=f,f=oe+4|0,Xe=n[M>>2]|0,n[M>>2]=n[f>>2],n[f>>2]=Xe,f=oe+8|0,Xe=n[O>>2]|0,n[O>>2]=n[f>>2],n[f>>2]=Xe,f=oe+12|0,Xe=n[m>>2]|0,n[m>>2]=n[f>>2],n[f>>2]=Xe,Ld(oe),f=n[O>>2]|0;break}m=f,B=((m-d>>2)+1|0)/-2|0,k=f+(B<<2)|0,d=F-m|0,m=d>>2,m&&(rw(k|0,f|0,d|0)|0,f=n[M>>2]|0),Xe=k+(m<<2)|0,n[O>>2]=Xe,n[M>>2]=f+(B<<2),f=Xe}while(!1);n[f>>2]=n[c>>2],n[O>>2]=(n[O>>2]|0)+4,l=hD(s,Qe,l)|0,Ld(Qe)}while(!1);return C=rt,l|0}function Le(s){s=s|0;var l=0;do{if(l=s+984|0,o[l>>0]|0)break;o[l>>0]=1,h[s+504>>2]=y(ue),s=n[s+944>>2]|0}while(s|0)}function gt(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),yt(c))}function mt(s){return s=s|0,n[s+944>>2]|0}function Dt(s){s=s|0,pi(s,(n[s+964>>2]|0)!=0,2832),Le(s)}function er(s){return s=s|0,(o[s+984>>0]|0)!=0|0}function sn(s,l){s=s|0,l=l|0,w4e(s,l,400)|0&&(xr(s|0,l|0,400)|0,Le(s))}function ei(s){s=s|0;var l=Ze;return l=y(h[s+44>>2]),s=Ot(l)|0,y(s?y(0):l)}function Qi(s){s=s|0;var l=Ze;return l=y(h[s+48>>2]),Ot(l)|0&&(l=o[(n[s+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function Pn(s,l){s=s|0,l=l|0,n[s+980>>2]=l}function fa(s){return s=s|0,n[s+980>>2]|0}function wd(s,l){s=s|0,l=l|0;var c=0;c=s+4|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function BI(s){return s=s|0,n[s+4>>2]|0}function eo(s,l){s=s|0,l=l|0;var c=0;c=s+8|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function Bd(s){return s=s|0,n[s+8>>2]|0}function cp(s,l){s=s|0,l=l|0;var c=0;c=s+12|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function vI(s){return s=s|0,n[s+12>>2]|0}function to(s,l){s=s|0,l=l|0;var c=0;c=s+16|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function up(s){return s=s|0,n[s+16>>2]|0}function Ap(s,l){s=s|0,l=l|0;var c=0;c=s+20|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function Ic(s){return s=s|0,n[s+20>>2]|0}function fp(s,l){s=s|0,l=l|0;var c=0;c=s+24|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function s0(s){return s=s|0,n[s+24>>2]|0}function o0(s,l){s=s|0,l=l|0;var c=0;c=s+28|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function a0(s){return s=s|0,n[s+28>>2]|0}function vd(s,l){s=s|0,l=l|0;var c=0;c=s+32|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function Eu(s){return s=s|0,n[s+32>>2]|0}function ro(s,l){s=s|0,l=l|0;var c=0;c=s+36|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function Ga(s){return s=s|0,n[s+36>>2]|0}function pp(s,l){s=s|0,l=y(l);var c=0;c=s+40|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function l0(s,l){s=s|0,l=y(l);var c=0;c=s+44|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Wa(s,l){s=s|0,l=y(l);var c=0;c=s+48|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Ya(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+52|0,d=s+56|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Dd(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+52|0,c=s+56|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,Le(s))}function NA(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+52|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Pd(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Sd(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function LA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+132+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function OA(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function W(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function bt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+60+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function MA(s,l){s=s|0,l=l|0;var c=0;c=s+60+(l<<3)+4|0,(n[c>>2]|0)!=3&&(h[s+60+(l<<3)>>2]=y(ue),n[c>>2]=3,Le(s))}function no(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Cu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function dt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+204+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+276+(l<<3)|0,l=s+276+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function bd(s,l){return s=s|0,l=l|0,y(h[s+276+(l<<3)>>2])}function c0(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+348|0,d=s+352|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function DI(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+348|0,c=s+352|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,Le(s))}function hp(s){s=s|0;var l=0;l=s+352|0,(n[l>>2]|0)!=3&&(h[s+348>>2]=y(ue),n[l>>2]=3,Le(s))}function cr(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+348|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Li(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+356|0,d=s+360|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Iu(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+356|0,c=s+360|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,Le(s))}function pa(s){s=s|0;var l=0;l=s+360|0,(n[l>>2]|0)!=3&&(h[s+356>>2]=y(ue),n[l>>2]=3,Le(s))}function u0(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+356|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Bc(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function wu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function wt(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+364|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function oi(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function UA(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function ha(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+372|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Uo(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function ga(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function A0(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+380|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function gp(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function f0(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function xd(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+388|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function _A(s,l){s=s|0,l=y(l);var c=0;c=s+396|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function p0(s){return s=s|0,y(h[s+396>>2])}function vc(s){return s=s|0,y(h[s+400>>2])}function Dc(s){return s=s|0,y(h[s+404>>2])}function Bu(s){return s=s|0,y(h[s+408>>2])}function gs(s){return s=s|0,y(h[s+412>>2])}function Pc(s){return s=s|0,y(h[s+416>>2])}function On(s){return s=s|0,y(h[s+420>>2])}function ji(s,l){switch(s=s|0,l=l|0,pi(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+424+(l<<2)>>2])}function Ci(s,l){switch(s=s|0,l=l|0,pi(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+448+(l<<2)>>2])}function HA(s,l){switch(s=s|0,l=l|0,pi(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+472+(l<<2)>>2])}function vu(s,l){s=s|0,l=l|0;var c=0,f=Ze;return c=n[s+4>>2]|0,(c|0)==(n[l+4>>2]|0)?c?(f=y(h[s>>2]),s=y(ie(y(f-y(h[l>>2]))))>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,dc(f|0,s|0,l|0,0),so(s,3,(o[f+11>>0]|0)<0?n[f>>2]|0:f,c),W4e(f),C=c}function Gi(s,l,c,f){s=y(s),l=y(l),c=c|0,f=f|0;var d=Ze;s=y(s*l),d=y(lT(s,y(1)));do if(An(d,y(0))|0)s=y(s-d);else{if(s=y(s-d),An(d,y(1))|0){s=y(s+y(1));break}if(c){s=y(s+y(1));break}f||(d>y(.5)?d=y(1):(f=An(d,y(.5))|0,d=y(f?1:0)),s=y(s+d))}while(!1);return y(s/l)}function Ka(s,l,c,f,d,m,B,k,F,M,O,j,oe){s=s|0,l=y(l),c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,k=y(k),F=y(F),M=y(M),O=y(O),j=y(j),oe=oe|0;var We=0,Oe=Ze,Qe=Ze,rt=Ze,Xe=Ze,ct=Ze,_e=Ze;return F>2]),Oe!=y(0))?(rt=y(Gi(l,Oe,0,0)),Xe=y(Gi(f,Oe,0,0)),Qe=y(Gi(m,Oe,0,0)),Oe=y(Gi(k,Oe,0,0))):(Qe=m,rt=l,Oe=k,Xe=f),(d|0)==(s|0)?We=An(Qe,rt)|0:We=0,(B|0)==(c|0)?oe=An(Oe,Xe)|0:oe=0,!We&&(ct=y(l-O),!(io(s,ct,F)|0))&&!(Du(s,ct,d,F)|0)?We=Pu(s,ct,d,m,F)|0:We=1,!oe&&(_e=y(f-j),!(io(c,_e,M)|0))&&!(Du(c,_e,B,M)|0)?oe=Pu(c,_e,B,k,M)|0:oe=1,oe=We&oe),oe|0}function io(s,l,c){return s=s|0,l=y(l),c=y(c),(s|0)==1?s=An(l,c)|0:s=0,s|0}function Du(s,l,c,f){return s=s|0,l=y(l),c=c|0,f=y(f),(s|0)==2&(c|0)==0?l>=f?s=1:s=An(l,f)|0:s=0,s|0}function Pu(s,l,c,f,d){return s=s|0,l=y(l),c=c|0,f=y(f),d=y(d),(s|0)==2&(c|0)==2&f>l?d<=l?s=1:s=An(l,d)|0:s=0,s|0}function Va(s,l,c,f,d,m,B,k,F,M,O){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),F=F|0,M=M|0,O=O|0;var j=0,oe=0,We=0,Oe=0,Qe=Ze,rt=Ze,Xe=0,ct=0,_e=0,Ge=0,Lt=0,_r=0,ur=0,Zt=0,kr=0,Or=0,lr=0,Nn=Ze,lo=Ze,co=Ze,uo=0,Ia=0;lr=C,C=C+160|0,Zt=lr+152|0,ur=lr+120|0,_r=lr+104|0,_e=lr+72|0,Oe=lr+56|0,Lt=lr+8|0,ct=lr,Ge=(n[2279]|0)+1|0,n[2279]=Ge,kr=s+984|0,o[kr>>0]|0&&(n[s+512>>2]|0)!=(n[2278]|0)?Xe=4:(n[s+516>>2]|0)==(f|0)?Or=0:Xe=4,(Xe|0)==4&&(n[s+520>>2]=0,n[s+924>>2]=-1,n[s+928>>2]=-1,h[s+932>>2]=y(-1),h[s+936>>2]=y(-1),Or=1);e:do if(n[s+964>>2]|0)if(Qe=y(fn(s,2,B)),rt=y(fn(s,0,B)),j=s+916|0,co=y(h[j>>2]),lo=y(h[s+920>>2]),Nn=y(h[s+932>>2]),Ka(d,l,m,c,n[s+924>>2]|0,co,n[s+928>>2]|0,lo,Nn,y(h[s+936>>2]),Qe,rt,O)|0)Xe=22;else if(We=n[s+520>>2]|0,!We)Xe=21;else for(oe=0;;){if(j=s+524+(oe*24|0)|0,Nn=y(h[j>>2]),lo=y(h[s+524+(oe*24|0)+4>>2]),co=y(h[s+524+(oe*24|0)+16>>2]),Ka(d,l,m,c,n[s+524+(oe*24|0)+8>>2]|0,Nn,n[s+524+(oe*24|0)+12>>2]|0,lo,co,y(h[s+524+(oe*24|0)+20>>2]),Qe,rt,O)|0){Xe=22;break e}if(oe=oe+1|0,oe>>>0>=We>>>0){Xe=21;break}}else{if(F){if(j=s+916|0,!(An(y(h[j>>2]),l)|0)){Xe=21;break}if(!(An(y(h[s+920>>2]),c)|0)){Xe=21;break}if((n[s+924>>2]|0)!=(d|0)){Xe=21;break}j=(n[s+928>>2]|0)==(m|0)?j:0,Xe=22;break}if(We=n[s+520>>2]|0,!We)Xe=21;else for(oe=0;;){if(j=s+524+(oe*24|0)|0,An(y(h[j>>2]),l)|0&&An(y(h[s+524+(oe*24|0)+4>>2]),c)|0&&(n[s+524+(oe*24|0)+8>>2]|0)==(d|0)&&(n[s+524+(oe*24|0)+12>>2]|0)==(m|0)){Xe=22;break e}if(oe=oe+1|0,oe>>>0>=We>>>0){Xe=21;break}}}while(!1);do if((Xe|0)==21)o[11697]|0?(j=0,Xe=28):(j=0,Xe=31);else if((Xe|0)==22){if(oe=(o[11697]|0)!=0,!((j|0)!=0&(Or^1)))if(oe){Xe=28;break}else{Xe=31;break}Oe=j+16|0,n[s+908>>2]=n[Oe>>2],We=j+20|0,n[s+912>>2]=n[We>>2],(o[11698]|0)==0|oe^1||(n[ct>>2]=Sc(Ge)|0,n[ct+4>>2]=Ge,so(s,4,2972,ct),oe=n[s+972>>2]|0,oe|0&&ef[oe&127](s),d=_o(d,F)|0,m=_o(m,F)|0,Ia=+y(h[Oe>>2]),uo=+y(h[We>>2]),n[Lt>>2]=d,n[Lt+4>>2]=m,E[Lt+8>>3]=+l,E[Lt+16>>3]=+c,E[Lt+24>>3]=Ia,E[Lt+32>>3]=uo,n[Lt+40>>2]=M,so(s,4,2989,Lt))}while(!1);return(Xe|0)==28&&(oe=Sc(Ge)|0,n[Oe>>2]=oe,n[Oe+4>>2]=Ge,n[Oe+8>>2]=Or?3047:11699,so(s,4,3038,Oe),oe=n[s+972>>2]|0,oe|0&&ef[oe&127](s),Lt=_o(d,F)|0,Xe=_o(m,F)|0,n[_e>>2]=Lt,n[_e+4>>2]=Xe,E[_e+8>>3]=+l,E[_e+16>>3]=+c,n[_e+24>>2]=M,so(s,4,3049,_e),Xe=31),(Xe|0)==31&&(ds(s,l,c,f,d,m,B,k,F,O),o[11697]|0&&(oe=n[2279]|0,Lt=Sc(oe)|0,n[_r>>2]=Lt,n[_r+4>>2]=oe,n[_r+8>>2]=Or?3047:11699,so(s,4,3083,_r),oe=n[s+972>>2]|0,oe|0&&ef[oe&127](s),Lt=_o(d,F)|0,_r=_o(m,F)|0,uo=+y(h[s+908>>2]),Ia=+y(h[s+912>>2]),n[ur>>2]=Lt,n[ur+4>>2]=_r,E[ur+8>>3]=uo,E[ur+16>>3]=Ia,n[ur+24>>2]=M,so(s,4,3092,ur)),n[s+516>>2]=f,j||(oe=s+520|0,j=n[oe>>2]|0,(j|0)==16&&(o[11697]|0&&so(s,4,3124,Zt),n[oe>>2]=0,j=0),F?j=s+916|0:(n[oe>>2]=j+1,j=s+524+(j*24|0)|0),h[j>>2]=l,h[j+4>>2]=c,n[j+8>>2]=d,n[j+12>>2]=m,n[j+16>>2]=n[s+908>>2],n[j+20>>2]=n[s+912>>2],j=0)),F&&(n[s+416>>2]=n[s+908>>2],n[s+420>>2]=n[s+912>>2],o[s+985>>0]=1,o[kr>>0]=0),n[2279]=(n[2279]|0)+-1,n[s+512>>2]=n[2278],C=lr,Or|(j|0)==0|0}function fn(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(V(s,l,c)),y(f+y(re(s,l,c)))}function so(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=C,C=C+16|0,d=m,n[d>>2]=f,s?f=n[s+976>>2]|0:f=0,yp(f,s,l,c,d),C=m}function Sc(s){return s=s|0,(s>>>0>60?3201:3201+(60-s)|0)|0}function _o(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+32|0,c=d+12|0,f=d,n[c>>2]=n[254],n[c+4>>2]=n[255],n[c+8>>2]=n[256],n[f>>2]=n[257],n[f+4>>2]=n[258],n[f+8>>2]=n[259],(s|0)>2?s=11699:s=n[(l?f:c)+(s<<2)>>2]|0,C=d,s|0}function ds(s,l,c,f,d,m,B,k,F,M){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),F=F|0,M=M|0;var O=0,j=0,oe=0,We=0,Oe=Ze,Qe=Ze,rt=Ze,Xe=Ze,ct=Ze,_e=Ze,Ge=Ze,Lt=0,_r=0,ur=0,Zt=Ze,kr=Ze,Or=0,lr=Ze,Nn=0,lo=0,co=0,uo=0,Ia=0,Np=0,Lp=0,kl=0,Op=0,Lu=0,Ou=0,Mp=0,Up=0,_p=0,$r=0,Ql=0,Hp=0,Nc=0,qp=Ze,jp=Ze,Mu=Ze,Uu=Ze,Lc=Ze,Ms=0,rl=0,Go=0,Fl=0,rf=0,nf=Ze,_u=Ze,sf=Ze,of=Ze,Us=Ze,Cs=Ze,Rl=0,Un=Ze,af=Ze,Ao=Ze,Oc=Ze,fo=Ze,Mc=Ze,lf=0,cf=0,Uc=Ze,_s=Ze,Tl=0,uf=0,Af=0,ff=0,Fr=Ze,ri=0,Is=0,po=0,Hs=0,Nr=0,Ar=0,Nl=0,Vt=Ze,pf=0,hi=0;Nl=C,C=C+16|0,Ms=Nl+12|0,rl=Nl+8|0,Go=Nl+4|0,Fl=Nl,pi(s,(d|0)==0|(Ot(l)|0)^1,3326),pi(s,(m|0)==0|(Ot(c)|0)^1,3406),Is=At(s,f)|0,n[s+496>>2]=Is,Nr=hr(2,Is)|0,Ar=hr(0,Is)|0,h[s+440>>2]=y(V(s,Nr,B)),h[s+444>>2]=y(re(s,Nr,B)),h[s+428>>2]=y(V(s,Ar,B)),h[s+436>>2]=y(re(s,Ar,B)),h[s+464>>2]=y(Ir(s,Nr)),h[s+468>>2]=y(Rn(s,Nr)),h[s+452>>2]=y(Ir(s,Ar)),h[s+460>>2]=y(Rn(s,Ar)),h[s+488>>2]=y(ai(s,Nr,B)),h[s+492>>2]=y(ns(s,Nr,B)),h[s+476>>2]=y(ai(s,Ar,B)),h[s+484>>2]=y(ns(s,Ar,B));do if(n[s+964>>2]|0)GA(s,l,c,d,m,B,k);else{if(po=s+948|0,Hs=(n[s+952>>2]|0)-(n[po>>2]|0)>>2,!Hs){lD(s,l,c,d,m,B,k);break}if(!F&&PI(s,l,c,d,m,B,k)|0)break;ee(s),Ql=s+508|0,o[Ql>>0]=0,Nr=hr(n[s+4>>2]|0,Is)|0,Ar=Fd(Nr,Is)|0,ri=ge(Nr)|0,Hp=n[s+8>>2]|0,uf=s+28|0,Nc=(n[uf>>2]|0)!=0,fo=ri?B:k,Uc=ri?k:B,qp=y(Cp(s,Nr,B)),jp=y(SI(s,Nr,B)),Oe=y(Cp(s,Ar,B)),Mc=y(da(s,Nr,B)),_s=y(da(s,Ar,B)),ur=ri?d:m,Tl=ri?m:d,Fr=ri?Mc:_s,ct=ri?_s:Mc,Oc=y(fn(s,2,B)),Xe=y(fn(s,0,B)),Qe=y(y(Kr(s+364|0,B))-Fr),rt=y(y(Kr(s+380|0,B))-Fr),_e=y(y(Kr(s+372|0,k))-ct),Ge=y(y(Kr(s+388|0,k))-ct),Mu=ri?Qe:_e,Uu=ri?rt:Ge,Oc=y(l-Oc),l=y(Oc-Fr),Ot(l)|0?Fr=l:Fr=y(Yn(y(M0(l,rt)),Qe)),af=y(c-Xe),l=y(af-ct),Ot(l)|0?Ao=l:Ao=y(Yn(y(M0(l,Ge)),_e)),Qe=ri?Fr:Ao,Un=ri?Ao:Fr;e:do if((ur|0)==1)for(f=0,j=0;;){if(O=rs(s,j)|0,!f)y(WA(O))>y(0)&&y(Ip(O))>y(0)?f=O:f=0;else if(bI(O)|0){We=0;break e}if(j=j+1|0,j>>>0>=Hs>>>0){We=f;break}}else We=0;while(!1);Lt=We+500|0,_r=We+504|0,f=0,O=0,l=y(0),oe=0;do{if(j=n[(n[po>>2]|0)+(oe<<2)>>2]|0,(n[j+36>>2]|0)==1)Rd(j),o[j+985>>0]=1,o[j+984>>0]=0;else{Su(j),F&&mp(j,At(j,Is)|0,Qe,Un,Fr);do if((n[j+24>>2]|0)!=1)if((j|0)==(We|0)){n[Lt>>2]=n[2278],h[_r>>2]=y(0);break}else{cD(s,j,Fr,d,Ao,Fr,Ao,m,Is,M);break}else O|0&&(n[O+960>>2]=j),n[j+960>>2]=0,O=j,f=f|0?f:j;while(!1);Cs=y(h[j+504>>2]),l=y(l+y(Cs+y(fn(j,Nr,Fr))))}oe=oe+1|0}while((oe|0)!=(Hs|0));for(co=l>Qe,Rl=Nc&((ur|0)==2&co)?1:ur,Nn=(Tl|0)==1,Ia=Nn&(F^1),Np=(Rl|0)==1,Lp=(Rl|0)==2,kl=976+(Nr<<2)|0,Op=(Tl|2|0)==2,_p=Nn&(Nc^1),Lu=1040+(Ar<<2)|0,Ou=1040+(Nr<<2)|0,Mp=976+(Ar<<2)|0,Up=(Tl|0)!=1,co=Nc&((ur|0)!=0&co),lo=s+976|0,Nn=Nn^1,l=Qe,Or=0,uo=0,Cs=y(0),Lc=y(0);;){e:do if(Or>>>0>>0)for(_r=n[po>>2]|0,oe=0,Ge=y(0),_e=y(0),rt=y(0),Qe=y(0),j=0,O=0,We=Or;;){if(Lt=n[_r+(We<<2)>>2]|0,(n[Lt+36>>2]|0)!=1&&(n[Lt+940>>2]=uo,(n[Lt+24>>2]|0)!=1)){if(Xe=y(fn(Lt,Nr,Fr)),$r=n[kl>>2]|0,c=y(Kr(Lt+380+($r<<3)|0,fo)),ct=y(h[Lt+504>>2]),c=y(M0(c,ct)),c=y(Yn(y(Kr(Lt+364+($r<<3)|0,fo)),c)),Nc&(oe|0)!=0&y(Xe+y(_e+c))>l){m=oe,Xe=Ge,ur=We;break e}Xe=y(Xe+c),c=y(_e+Xe),Xe=y(Ge+Xe),bI(Lt)|0&&(rt=y(rt+y(WA(Lt))),Qe=y(Qe-y(ct*y(Ip(Lt))))),O|0&&(n[O+960>>2]=Lt),n[Lt+960>>2]=0,oe=oe+1|0,O=Lt,j=j|0?j:Lt}else Xe=Ge,c=_e;if(We=We+1|0,We>>>0>>0)Ge=Xe,_e=c;else{m=oe,ur=We;break}}else m=0,Xe=y(0),rt=y(0),Qe=y(0),j=0,ur=Or;while(!1);$r=rt>y(0)&rty(0)&QeUu&((Ot(Uu)|0)^1))l=Uu,$r=51;else if(o[(n[lo>>2]|0)+3>>0]|0)$r=51;else{if(Zt!=y(0)&&y(WA(s))!=y(0)){$r=53;break}l=Xe,$r=53}while(!1);if(($r|0)==51&&($r=0,Ot(l)|0?$r=53:(kr=y(l-Xe),lr=l)),($r|0)==53&&($r=0,Xe>2]|0,We=kry(0),_e=y(kr/Zt),rt=y(0),Xe=y(0),l=y(0),O=j;do c=y(Kr(O+380+(oe<<3)|0,fo)),Qe=y(Kr(O+364+(oe<<3)|0,fo)),Qe=y(M0(c,y(Yn(Qe,y(h[O+504>>2]))))),We?(c=y(Qe*y(Ip(O))),c!=y(-0)&&(Vt=y(Qe-y(ct*c)),nf=y(Mn(O,Nr,Vt,lr,Fr)),Vt!=nf)&&(rt=y(rt-y(nf-Qe)),l=y(l+c))):Lt&&(_u=y(WA(O)),_u!=y(0))&&(Vt=y(Qe+y(_e*_u)),sf=y(Mn(O,Nr,Vt,lr,Fr)),Vt!=sf)&&(rt=y(rt-y(sf-Qe)),Xe=y(Xe-_u)),O=n[O+960>>2]|0;while(O|0);if(l=y(Ge+l),Qe=y(kr+rt),rf)l=y(0);else{ct=y(Zt+Xe),We=n[kl>>2]|0,Lt=Qey(0),ct=y(Qe/ct),l=y(0);do{Vt=y(Kr(j+380+(We<<3)|0,fo)),rt=y(Kr(j+364+(We<<3)|0,fo)),rt=y(M0(Vt,y(Yn(rt,y(h[j+504>>2]))))),Lt?(Vt=y(rt*y(Ip(j))),Qe=y(-Vt),Vt!=y(-0)?(Vt=y(_e*Qe),Qe=y(Mn(j,Nr,y(rt+(_r?Qe:Vt)),lr,Fr))):Qe=rt):oe&&(of=y(WA(j)),of!=y(0))?Qe=y(Mn(j,Nr,y(rt+y(ct*of)),lr,Fr)):Qe=rt,l=y(l-y(Qe-rt)),Xe=y(fn(j,Nr,Fr)),c=y(fn(j,Ar,Fr)),Qe=y(Qe+Xe),h[rl>>2]=Qe,n[Fl>>2]=1,rt=y(h[j+396>>2]);e:do if(Ot(rt)|0){O=Ot(Un)|0;do if(!O){if(co|(Ls(j,Ar,Un)|0|Nn)||(Wi(s,j)|0)!=4||(n[(Ja(j,Ar)|0)+4>>2]|0)==3||(n[(za(j,Ar)|0)+4>>2]|0)==3)break;h[Ms>>2]=Un,n[Go>>2]=1;break e}while(!1);if(Ls(j,Ar,Un)|0){O=n[j+992+(n[Mp>>2]<<2)>>2]|0,Vt=y(c+y(Kr(O,Un))),h[Ms>>2]=Vt,O=Up&(n[O+4>>2]|0)==2,n[Go>>2]=((Ot(Vt)|0|O)^1)&1;break}else{h[Ms>>2]=Un,n[Go>>2]=O?0:2;break}}else Vt=y(Qe-Xe),Zt=y(Vt/rt),Vt=y(rt*Vt),n[Go>>2]=1,h[Ms>>2]=y(c+(ri?Zt:Vt));while(!1);bc(j,Nr,lr,Fr,Fl,rl),bc(j,Ar,Un,Fr,Go,Ms);do if(!(Ls(j,Ar,Un)|0)&&(Wi(s,j)|0)==4){if((n[(Ja(j,Ar)|0)+4>>2]|0)==3){O=0;break}O=(n[(za(j,Ar)|0)+4>>2]|0)!=3}else O=0;while(!1);Vt=y(h[rl>>2]),Zt=y(h[Ms>>2]),pf=n[Fl>>2]|0,hi=n[Go>>2]|0,Va(j,ri?Vt:Zt,ri?Zt:Vt,Is,ri?pf:hi,ri?hi:pf,Fr,Ao,F&(O^1),3488,M)|0,o[Ql>>0]=o[Ql>>0]|o[j+508>>0],j=n[j+960>>2]|0}while(j|0)}}else l=y(0);if(l=y(kr+l),hi=l>0]=hi|u[Ql>>0],Lp&l>y(0)?(O=n[kl>>2]|0,n[s+364+(O<<3)+4>>2]|0&&(Us=y(Kr(s+364+(O<<3)|0,fo)),Us>=y(0))?Qe=y(Yn(y(0),y(Us-y(lr-l)))):Qe=y(0)):Qe=l,Lt=Or>>>0>>0,Lt){We=n[po>>2]|0,oe=Or,O=0;do j=n[We+(oe<<2)>>2]|0,n[j+24>>2]|0||(O=((n[(Ja(j,Nr)|0)+4>>2]|0)==3&1)+O|0,O=O+((n[(za(j,Nr)|0)+4>>2]|0)==3&1)|0),oe=oe+1|0;while((oe|0)!=(ur|0));O?(Xe=y(0),c=y(0)):$r=101}else $r=101;e:do if(($r|0)==101)switch($r=0,Hp|0){case 1:{O=0,Xe=y(Qe*y(.5)),c=y(0);break e}case 2:{O=0,Xe=Qe,c=y(0);break e}case 3:{if(m>>>0<=1){O=0,Xe=y(0),c=y(0);break e}c=y((m+-1|0)>>>0),O=0,Xe=y(0),c=y(y(Yn(Qe,y(0)))/c);break e}case 5:{c=y(Qe/y((m+1|0)>>>0)),O=0,Xe=c;break e}case 4:{c=y(Qe/y(m>>>0)),O=0,Xe=y(c*y(.5));break e}default:{O=0,Xe=y(0),c=y(0);break e}}while(!1);if(l=y(qp+Xe),Lt){rt=y(Qe/y(O|0)),oe=n[po>>2]|0,j=Or,Qe=y(0);do{O=n[oe+(j<<2)>>2]|0;e:do if((n[O+36>>2]|0)!=1){switch(n[O+24>>2]|0){case 1:{if(Ho(O,Nr)|0){if(!F)break e;Vt=y(YA(O,Nr,lr)),Vt=y(Vt+y(Ir(s,Nr))),Vt=y(Vt+y(V(O,Nr,Fr))),h[O+400+(n[Ou>>2]<<2)>>2]=Vt;break e}break}case 0:if(hi=(n[(Ja(O,Nr)|0)+4>>2]|0)==3,Vt=y(rt+l),l=hi?Vt:l,F&&(hi=O+400+(n[Ou>>2]<<2)|0,h[hi>>2]=y(l+y(h[hi>>2]))),hi=(n[(za(O,Nr)|0)+4>>2]|0)==3,Vt=y(rt+l),l=hi?Vt:l,Ia){Vt=y(c+y(fn(O,Nr,Fr))),Qe=Un,l=y(l+y(Vt+y(h[O+504>>2])));break e}else{l=y(l+y(c+y(KA(O,Nr,Fr)))),Qe=y(Yn(Qe,y(KA(O,Ar,Fr))));break e}default:}F&&(Vt=y(Xe+y(Ir(s,Nr))),hi=O+400+(n[Ou>>2]<<2)|0,h[hi>>2]=y(Vt+y(h[hi>>2])))}while(!1);j=j+1|0}while((j|0)!=(ur|0))}else Qe=y(0);if(c=y(jp+l),Op?Xe=y(y(Mn(s,Ar,y(_s+Qe),Uc,B))-_s):Xe=Un,rt=y(y(Mn(s,Ar,y(_s+(_p?Un:Qe)),Uc,B))-_s),Lt&F){j=Or;do{oe=n[(n[po>>2]|0)+(j<<2)>>2]|0;do if((n[oe+36>>2]|0)!=1){if((n[oe+24>>2]|0)==1){if(Ho(oe,Ar)|0){if(Vt=y(YA(oe,Ar,Un)),Vt=y(Vt+y(Ir(s,Ar))),Vt=y(Vt+y(V(oe,Ar,Fr))),O=n[Lu>>2]|0,h[oe+400+(O<<2)>>2]=Vt,!(Ot(Vt)|0))break}else O=n[Lu>>2]|0;Vt=y(Ir(s,Ar)),h[oe+400+(O<<2)>>2]=y(Vt+y(V(oe,Ar,Fr)));break}O=Wi(s,oe)|0;do if((O|0)==4){if((n[(Ja(oe,Ar)|0)+4>>2]|0)==3){$r=139;break}if((n[(za(oe,Ar)|0)+4>>2]|0)==3){$r=139;break}if(Ls(oe,Ar,Un)|0){l=Oe;break}pf=n[oe+908+(n[kl>>2]<<2)>>2]|0,n[Ms>>2]=pf,l=y(h[oe+396>>2]),hi=Ot(l)|0,Qe=(n[D>>2]=pf,y(h[D>>2])),hi?l=rt:(kr=y(fn(oe,Ar,Fr)),Vt=y(Qe/l),l=y(l*Qe),l=y(kr+(ri?Vt:l))),h[rl>>2]=l,h[Ms>>2]=y(y(fn(oe,Nr,Fr))+Qe),n[Go>>2]=1,n[Fl>>2]=1,bc(oe,Nr,lr,Fr,Go,Ms),bc(oe,Ar,Un,Fr,Fl,rl),l=y(h[Ms>>2]),kr=y(h[rl>>2]),Vt=ri?l:kr,l=ri?kr:l,hi=((Ot(Vt)|0)^1)&1,Va(oe,Vt,l,Is,hi,((Ot(l)|0)^1)&1,Fr,Ao,1,3493,M)|0,l=Oe}else $r=139;while(!1);e:do if(($r|0)==139){$r=0,l=y(Xe-y(KA(oe,Ar,Fr)));do if((n[(Ja(oe,Ar)|0)+4>>2]|0)==3){if((n[(za(oe,Ar)|0)+4>>2]|0)!=3)break;l=y(Oe+y(Yn(y(0),y(l*y(.5)))));break e}while(!1);if((n[(za(oe,Ar)|0)+4>>2]|0)==3){l=Oe;break}if((n[(Ja(oe,Ar)|0)+4>>2]|0)==3){l=y(Oe+y(Yn(y(0),l)));break}switch(O|0){case 1:{l=Oe;break e}case 2:{l=y(Oe+y(l*y(.5)));break e}default:{l=y(Oe+l);break e}}}while(!1);Vt=y(Cs+l),hi=oe+400+(n[Lu>>2]<<2)|0,h[hi>>2]=y(Vt+y(h[hi>>2]))}while(!1);j=j+1|0}while((j|0)!=(ur|0))}if(Cs=y(Cs+rt),Lc=y(Yn(Lc,c)),m=uo+1|0,ur>>>0>=Hs>>>0)break;l=lr,Or=ur,uo=m}do if(F){if(O=m>>>0>1,!O&&!(HF(s)|0))break;if(!(Ot(Un)|0)){l=y(Un-Cs);e:do switch(n[s+12>>2]|0){case 3:{Oe=y(Oe+l),_e=y(0);break}case 2:{Oe=y(Oe+y(l*y(.5))),_e=y(0);break}case 4:{Un>Cs?_e=y(l/y(m>>>0)):_e=y(0);break}case 7:if(Un>Cs){Oe=y(Oe+y(l/y(m<<1>>>0))),_e=y(l/y(m>>>0)),_e=O?_e:y(0);break e}else{Oe=y(Oe+y(l*y(.5))),_e=y(0);break e}case 6:{_e=y(l/y(uo>>>0)),_e=Un>Cs&O?_e:y(0);break}default:_e=y(0)}while(!1);if(m|0)for(Lt=1040+(Ar<<2)|0,_r=976+(Ar<<2)|0,We=0,j=0;;){e:do if(j>>>0>>0)for(Qe=y(0),rt=y(0),l=y(0),oe=j;;){O=n[(n[po>>2]|0)+(oe<<2)>>2]|0;do if((n[O+36>>2]|0)!=1&&!(n[O+24>>2]|0)){if((n[O+940>>2]|0)!=(We|0))break e;if(qF(O,Ar)|0&&(Vt=y(h[O+908+(n[_r>>2]<<2)>>2]),l=y(Yn(l,y(Vt+y(fn(O,Ar,Fr)))))),(Wi(s,O)|0)!=5)break;Us=y(m0(O)),Us=y(Us+y(V(O,0,Fr))),Vt=y(h[O+912>>2]),Vt=y(y(Vt+y(fn(O,0,Fr)))-Us),Us=y(Yn(rt,Us)),Vt=y(Yn(Qe,Vt)),Qe=Vt,rt=Us,l=y(Yn(l,y(Us+Vt)))}while(!1);if(O=oe+1|0,O>>>0>>0)oe=O;else{oe=O;break}}else rt=y(0),l=y(0),oe=j;while(!1);if(ct=y(_e+l),c=Oe,Oe=y(Oe+ct),j>>>0>>0){Xe=y(c+rt),O=j;do{j=n[(n[po>>2]|0)+(O<<2)>>2]|0;e:do if((n[j+36>>2]|0)!=1&&!(n[j+24>>2]|0))switch(Wi(s,j)|0){case 1:{Vt=y(c+y(V(j,Ar,Fr))),h[j+400+(n[Lt>>2]<<2)>>2]=Vt;break e}case 3:{Vt=y(y(Oe-y(re(j,Ar,Fr)))-y(h[j+908+(n[_r>>2]<<2)>>2])),h[j+400+(n[Lt>>2]<<2)>>2]=Vt;break e}case 2:{Vt=y(c+y(y(ct-y(h[j+908+(n[_r>>2]<<2)>>2]))*y(.5))),h[j+400+(n[Lt>>2]<<2)>>2]=Vt;break e}case 4:{if(Vt=y(c+y(V(j,Ar,Fr))),h[j+400+(n[Lt>>2]<<2)>>2]=Vt,Ls(j,Ar,Un)|0||(ri?(Qe=y(h[j+908>>2]),l=y(Qe+y(fn(j,Nr,Fr))),rt=ct):(rt=y(h[j+912>>2]),rt=y(rt+y(fn(j,Ar,Fr))),l=ct,Qe=y(h[j+908>>2])),An(l,Qe)|0&&An(rt,y(h[j+912>>2]))|0))break e;Va(j,l,rt,Is,1,1,Fr,Ao,1,3501,M)|0;break e}case 5:{h[j+404>>2]=y(y(Xe-y(m0(j)))+y(YA(j,0,Un)));break e}default:break e}while(!1);O=O+1|0}while((O|0)!=(oe|0))}if(We=We+1|0,(We|0)==(m|0))break;j=oe}}}while(!1);if(h[s+908>>2]=y(Mn(s,2,Oc,B,B)),h[s+912>>2]=y(Mn(s,0,af,k,B)),Rl|0&&(lf=n[s+32>>2]|0,cf=(Rl|0)==2,!(cf&(lf|0)!=2))?cf&(lf|0)==2&&(l=y(Mc+lr),l=y(Yn(y(M0(l,y(y0(s,Nr,Lc,fo)))),Mc)),$r=198):(l=y(Mn(s,Nr,Lc,fo,B)),$r=198),($r|0)==198&&(h[s+908+(n[976+(Nr<<2)>>2]<<2)>>2]=l),Tl|0&&(Af=n[s+32>>2]|0,ff=(Tl|0)==2,!(ff&(Af|0)!=2))?ff&(Af|0)==2&&(l=y(_s+Un),l=y(Yn(y(M0(l,y(y0(s,Ar,y(_s+Cs),Uc)))),_s)),$r=204):(l=y(Mn(s,Ar,y(_s+Cs),Uc,B)),$r=204),($r|0)==204&&(h[s+908+(n[976+(Ar<<2)>>2]<<2)>>2]=l),F){if((n[uf>>2]|0)==2){j=976+(Ar<<2)|0,oe=1040+(Ar<<2)|0,O=0;do We=rs(s,O)|0,n[We+24>>2]|0||(pf=n[j>>2]|0,Vt=y(h[s+908+(pf<<2)>>2]),hi=We+400+(n[oe>>2]<<2)|0,Vt=y(Vt-y(h[hi>>2])),h[hi>>2]=y(Vt-y(h[We+908+(pf<<2)>>2]))),O=O+1|0;while((O|0)!=(Hs|0))}if(f|0){O=ri?Rl:d;do jF(s,f,Fr,O,Ao,Is,M),f=n[f+960>>2]|0;while(f|0)}if(O=(Nr|2|0)==3,j=(Ar|2|0)==3,O|j){f=0;do oe=n[(n[po>>2]|0)+(f<<2)>>2]|0,(n[oe+36>>2]|0)!=1&&(O&&xI(s,oe,Nr),j&&xI(s,oe,Ar)),f=f+1|0;while((f|0)!=(Hs|0))}}}while(!1);C=Nl}function dp(s,l){s=s|0,l=y(l);var c=0;ua(s,l>=y(0),3147),c=l==y(0),h[s+4>>2]=c?y(0):l}function qA(s,l,c,f){s=s|0,l=y(l),c=y(c),f=f|0;var d=Ze,m=Ze,B=0,k=0,F=0;n[2278]=(n[2278]|0)+1,Su(s),Ls(s,2,l)|0?(d=y(Kr(n[s+992>>2]|0,l)),F=1,d=y(d+y(fn(s,2,l)))):(d=y(Kr(s+380|0,l)),d>=y(0)?F=2:(F=((Ot(l)|0)^1)&1,d=l)),Ls(s,0,c)|0?(m=y(Kr(n[s+996>>2]|0,c)),k=1,m=y(m+y(fn(s,0,l)))):(m=y(Kr(s+388|0,c)),m>=y(0)?k=2:(k=((Ot(c)|0)^1)&1,m=c)),B=s+976|0,Va(s,d,m,f,F,k,l,c,1,3189,n[B>>2]|0)|0&&(mp(s,n[s+496>>2]|0,l,c,l),jA(s,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),o[11696]|0)&&h0(s,7)}function Su(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;k=C,C=C+32|0,B=k+24|0,m=k+16|0,f=k+8|0,d=k,c=0;do l=s+380+(c<<3)|0,n[s+380+(c<<3)+4>>2]|0&&(F=l,M=n[F+4>>2]|0,O=f,n[O>>2]=n[F>>2],n[O+4>>2]=M,O=s+364+(c<<3)|0,M=n[O+4>>2]|0,F=d,n[F>>2]=n[O>>2],n[F+4>>2]=M,n[m>>2]=n[f>>2],n[m+4>>2]=n[f+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],vu(m,B)|0)||(l=s+348+(c<<3)|0),n[s+992+(c<<2)>>2]=l,c=c+1|0;while((c|0)!=2);C=k}function Ls(s,l,c){s=s|0,l=l|0,c=y(c);var f=0;switch(s=n[s+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[s+4>>2]|0){case 0:case 3:{s=0;break}case 1:{y(h[s>>2])>2])>2]|0){case 2:{l=y(y(y(h[s>>2])*l)/y(100));break}case 1:{l=y(h[s>>2]);break}default:l=y(ue)}return y(l)}function mp(s,l,c,f,d){s=s|0,l=l|0,c=y(c),f=y(f),d=y(d);var m=0,B=Ze;l=n[s+944>>2]|0?l:1,m=hr(n[s+4>>2]|0,l)|0,l=Fd(m,l)|0,c=y(uD(s,m,c)),f=y(uD(s,l,f)),B=y(c+y(V(s,m,d))),h[s+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,c=y(c+y(re(s,m,d))),h[s+400+(n[1e3+(m<<2)>>2]<<2)>>2]=c,c=y(f+y(V(s,l,d))),h[s+400+(n[1040+(l<<2)>>2]<<2)>>2]=c,d=y(f+y(re(s,l,d))),h[s+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function jA(s,l,c,f){s=s|0,l=y(l),c=y(c),f=y(f);var d=0,m=0,B=Ze,k=Ze,F=0,M=0,O=Ze,j=0,oe=Ze,We=Ze,Oe=Ze,Qe=Ze;if(l!=y(0)&&(d=s+400|0,Qe=y(h[d>>2]),m=s+404|0,Oe=y(h[m>>2]),j=s+416|0,We=y(h[j>>2]),M=s+420|0,B=y(h[M>>2]),oe=y(Qe+c),O=y(Oe+f),f=y(oe+We),k=y(O+B),F=(n[s+988>>2]|0)==1,h[d>>2]=y(Gi(Qe,l,0,F)),h[m>>2]=y(Gi(Oe,l,0,F)),c=y(lT(y(We*l),y(1))),An(c,y(0))|0?m=0:m=(An(c,y(1))|0)^1,c=y(lT(y(B*l),y(1))),An(c,y(0))|0?d=0:d=(An(c,y(1))|0)^1,Qe=y(Gi(f,l,F&m,F&(m^1))),h[j>>2]=y(Qe-y(Gi(oe,l,0,F))),Qe=y(Gi(k,l,F&d,F&(d^1))),h[M>>2]=y(Qe-y(Gi(O,l,0,F))),m=(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2,m|0)){d=0;do jA(rs(s,d)|0,l,oe,O),d=d+1|0;while((d|0)!=(m|0))}}function kd(s,l,c,f,d){switch(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,c|0){case 5:case 0:{s=M7(n[489]|0,f,d)|0;break}default:s=H4e(f,d)|0}return s|0}function d0(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;d=C,C=C+16|0,m=d,n[m>>2]=f,yp(s,0,l,c,m),C=d}function yp(s,l,c,f,d){if(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,s=s|0?s:956,sW[n[s+8>>2]&1](s,l,c,f,d)|0,(c|0)==5)Tt();else return}function bl(s,l,c){s=s|0,l=l|0,c=c|0,o[s+l>>0]=c&1}function Qd(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(Ep(s,f),xt(s,n[l>>2]|0,n[c>>2]|0,f))}function Ep(s,l){s=s|0,l=l|0;var c=0;if((N(s)|0)>>>0>>0&&Zr(s),l>>>0>1073741823)Tt();else{c=Yt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function xt(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(xr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function N(s){return s=s|0,1073741823}function V(s,l,c){return s=s|0,l=l|0,c=y(c),ge(l)|0&&n[s+96>>2]|0?s=s+92|0:s=vn(s+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(Ye(s,c))}function re(s,l,c){return s=s|0,l=l|0,c=y(c),ge(l)|0&&n[s+104>>2]|0?s=s+100|0:s=vn(s+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(Ye(s,c))}function ge(s){return s=s|0,(s|1|0)==3|0}function Ye(s,l){return s=s|0,l=y(l),(n[s+4>>2]|0)==3?l=y(0):l=y(Kr(s,l)),y(l)}function At(s,l){return s=s|0,l=l|0,s=n[s>>2]|0,(s|0?s:(l|0)>1?l:1)|0}function hr(s,l){s=s|0,l=l|0;var c=0;e:do if((l|0)==2){switch(s|0){case 2:{s=3;break e}case 3:break;default:{c=4;break e}}s=2}else c=4;while(!1);return s|0}function Ir(s,l){s=s|0,l=l|0;var c=Ze;return ge(l)|0&&n[s+312>>2]|0&&(c=y(h[s+308>>2]),c>=y(0))||(c=y(Yn(y(h[(vn(s+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function Rn(s,l){s=s|0,l=l|0;var c=Ze;return ge(l)|0&&n[s+320>>2]|0&&(c=y(h[s+316>>2]),c>=y(0))||(c=y(Yn(y(h[(vn(s+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function ai(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return ge(l)|0&&n[s+240>>2]|0&&(f=y(Kr(s+236|0,c)),f>=y(0))||(f=y(Yn(y(Kr(vn(s+204|0,n[1040+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function ns(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return ge(l)|0&&n[s+248>>2]|0&&(f=y(Kr(s+244|0,c)),f>=y(0))||(f=y(Yn(y(Kr(vn(s+204|0,n[1e3+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function GA(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Ze,F=Ze,M=Ze,O=Ze,j=Ze,oe=Ze,We=0,Oe=0,Qe=0;Qe=C,C=C+16|0,We=Qe,Oe=s+964|0,pi(s,(n[Oe>>2]|0)!=0,3519),k=y(da(s,2,l)),F=y(da(s,0,l)),M=y(fn(s,2,l)),O=y(fn(s,0,l)),Ot(l)|0?j=l:j=y(Yn(y(0),y(y(l-M)-k))),Ot(c)|0?oe=c:oe=y(Yn(y(0),y(y(c-O)-F))),(f|0)==1&(d|0)==1?(h[s+908>>2]=y(Mn(s,2,y(l-M),m,m)),l=y(Mn(s,0,y(c-O),B,m))):(oW[n[Oe>>2]&1](We,s,j,f,oe,d),j=y(k+y(h[We>>2])),oe=y(l-M),h[s+908>>2]=y(Mn(s,2,(f|2|0)==2?j:oe,m,m)),oe=y(F+y(h[We+4>>2])),l=y(c-O),l=y(Mn(s,0,(d|2|0)==2?oe:l,B,m))),h[s+912>>2]=l,C=Qe}function lD(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Ze,F=Ze,M=Ze,O=Ze;M=y(da(s,2,m)),k=y(da(s,0,m)),O=y(fn(s,2,m)),F=y(fn(s,0,m)),l=y(l-O),h[s+908>>2]=y(Mn(s,2,(f|2|0)==2?M:l,m,m)),c=y(c-F),h[s+912>>2]=y(Mn(s,0,(d|2|0)==2?k:c,B,m))}function PI(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=0,F=Ze,M=Ze;return k=(f|0)==2,!(l<=y(0)&k)&&!(c<=y(0)&(d|0)==2)&&!((f|0)==1&(d|0)==1)?s=0:(F=y(fn(s,0,m)),M=y(fn(s,2,m)),k=l>2]=y(Mn(s,2,k?y(0):l,m,m)),l=y(c-F),k=c>2]=y(Mn(s,0,k?y(0):l,B,m)),s=1),s|0}function Fd(s,l){return s=s|0,l=l|0,E0(s)|0?s=hr(2,l)|0:s=0,s|0}function Cp(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(ai(s,l,c)),y(c+y(Ir(s,l)))}function SI(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(ns(s,l,c)),y(c+y(Rn(s,l)))}function da(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(Cp(s,l,c)),y(f+y(SI(s,l,c)))}function bI(s){return s=s|0,n[s+24>>2]|0?s=0:y(WA(s))!=y(0)?s=1:s=y(Ip(s))!=y(0),s|0}function WA(s){s=s|0;var l=Ze;if(n[s+944>>2]|0){if(l=y(h[s+44>>2]),Ot(l)|0)return l=y(h[s+40>>2]),s=l>y(0)&((Ot(l)|0)^1),y(s?l:y(0))}else l=y(0);return y(l)}function Ip(s){s=s|0;var l=Ze,c=0,f=Ze;do if(n[s+944>>2]|0){if(l=y(h[s+48>>2]),Ot(l)|0){if(c=o[(n[s+976>>2]|0)+2>>0]|0,!(c<<24>>24)&&(f=y(h[s+40>>2]),f>24?y(1):y(0)}}else l=y(0);while(!1);return y(l)}function Rd(s){s=s|0;var l=0,c=0;if(sm(s+400|0,0,540)|0,o[s+985>>0]=1,ee(s),c=Di(s)|0,c|0){l=s+948|0,s=0;do Rd(n[(n[l>>2]|0)+(s<<2)>>2]|0),s=s+1|0;while((s|0)!=(c|0))}}function cD(s,l,c,f,d,m,B,k,F,M){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=y(m),B=y(B),k=k|0,F=F|0,M=M|0;var O=0,j=Ze,oe=0,We=0,Oe=Ze,Qe=Ze,rt=0,Xe=Ze,ct=0,_e=Ze,Ge=0,Lt=0,_r=0,ur=0,Zt=0,kr=0,Or=0,lr=0,Nn=0,lo=0;Nn=C,C=C+16|0,_r=Nn+12|0,ur=Nn+8|0,Zt=Nn+4|0,kr=Nn,lr=hr(n[s+4>>2]|0,F)|0,Ge=ge(lr)|0,j=y(Kr(GF(l)|0,Ge?m:B)),Lt=Ls(l,2,m)|0,Or=Ls(l,0,B)|0;do if(!(Ot(j)|0)&&!(Ot(Ge?c:d)|0)){if(O=l+504|0,!(Ot(y(h[O>>2]))|0)&&(!(kI(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[O>>2]=y(Yn(j,y(da(l,lr,m))))}else oe=7;while(!1);do if((oe|0)==7){if(ct=Ge^1,!(ct|Lt^1)){B=y(Kr(n[l+992>>2]|0,m)),h[l+504>>2]=y(Yn(B,y(da(l,2,m))));break}if(!(Ge|Or^1)){B=y(Kr(n[l+996>>2]|0,B)),h[l+504>>2]=y(Yn(B,y(da(l,0,m))));break}h[_r>>2]=y(ue),h[ur>>2]=y(ue),n[Zt>>2]=0,n[kr>>2]=0,Xe=y(fn(l,2,m)),_e=y(fn(l,0,m)),Lt?(Oe=y(Xe+y(Kr(n[l+992>>2]|0,m))),h[_r>>2]=Oe,n[Zt>>2]=1,We=1):(We=0,Oe=y(ue)),Or?(j=y(_e+y(Kr(n[l+996>>2]|0,B))),h[ur>>2]=j,n[kr>>2]=1,O=1):(O=0,j=y(ue)),oe=n[s+32>>2]|0,Ge&(oe|0)==2?oe=2:Ot(Oe)|0&&!(Ot(c)|0)&&(h[_r>>2]=c,n[Zt>>2]=2,We=2,Oe=c),!((oe|0)==2&ct)&&Ot(j)|0&&!(Ot(d)|0)&&(h[ur>>2]=d,n[kr>>2]=2,O=2,j=d),Qe=y(h[l+396>>2]),rt=Ot(Qe)|0;do if(rt)oe=We;else{if((We|0)==1&ct){h[ur>>2]=y(y(Oe-Xe)/Qe),n[kr>>2]=1,O=1,oe=1;break}Ge&(O|0)==1?(h[_r>>2]=y(Qe*y(j-_e)),n[Zt>>2]=1,O=1,oe=1):oe=We}while(!1);lo=Ot(c)|0,We=(Wi(s,l)|0)!=4,!(Ge|Lt|((f|0)!=1|lo)|(We|(oe|0)==1))&&(h[_r>>2]=c,n[Zt>>2]=1,!rt)&&(h[ur>>2]=y(y(c-Xe)/Qe),n[kr>>2]=1,O=1),!(Or|ct|((k|0)!=1|(Ot(d)|0))|(We|(O|0)==1))&&(h[ur>>2]=d,n[kr>>2]=1,!rt)&&(h[_r>>2]=y(Qe*y(d-_e)),n[Zt>>2]=1),bc(l,2,m,m,Zt,_r),bc(l,0,B,m,kr,ur),c=y(h[_r>>2]),d=y(h[ur>>2]),Va(l,c,d,F,n[Zt>>2]|0,n[kr>>2]|0,m,B,0,3565,M)|0,B=y(h[l+908+(n[976+(lr<<2)>>2]<<2)>>2]),h[l+504>>2]=y(Yn(B,y(da(l,lr,m))))}while(!1);n[l+500>>2]=n[2278],C=Nn}function Mn(s,l,c,f,d){return s=s|0,l=l|0,c=y(c),f=y(f),d=y(d),f=y(y0(s,l,c,f)),y(Yn(f,y(da(s,l,d))))}function Wi(s,l){return s=s|0,l=l|0,l=l+20|0,l=n[(n[l>>2]|0?l:s+16|0)>>2]|0,(l|0)==5&&E0(n[s+4>>2]|0)|0&&(l=1),l|0}function Ja(s,l){return s=s|0,l=l|0,ge(l)|0&&n[s+96>>2]|0?l=4:l=n[1040+(l<<2)>>2]|0,s+60+(l<<3)|0}function za(s,l){return s=s|0,l=l|0,ge(l)|0&&n[s+104>>2]|0?l=5:l=n[1e3+(l<<2)>>2]|0,s+60+(l<<3)|0}function bc(s,l,c,f,d,m){switch(s=s|0,l=l|0,c=y(c),f=y(f),d=d|0,m=m|0,c=y(Kr(s+380+(n[976+(l<<2)>>2]<<3)|0,c)),c=y(c+y(fn(s,l,f))),n[d>>2]|0){case 2:case 1:{d=Ot(c)|0,f=y(h[m>>2]),h[m>>2]=d|f>2]=2,h[m>>2]=c);break}default:}}function Ho(s,l){return s=s|0,l=l|0,s=s+132|0,ge(l)|0&&n[(vn(s,4,948)|0)+4>>2]|0?s=1:s=(n[(vn(s,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function YA(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,ge(l)|0&&(f=vn(s,4,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=vn(s,n[1040+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Kr(f,c))),y(c)}function KA(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),f=y(f+y(V(s,l,c))),y(f+y(re(s,l,c)))}function HF(s){s=s|0;var l=0,c=0,f=0;e:do if(E0(n[s+4>>2]|0)|0)l=0;else if((n[s+16>>2]|0)!=5)if(c=Di(s)|0,!c)l=0;else for(l=0;;){if(f=rs(s,l)|0,!(n[f+24>>2]|0)&&(n[f+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=c>>>0){l=0;break}}else l=1;while(!1);return l|0}function qF(s,l){s=s|0,l=l|0;var c=Ze;return c=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),c>=y(0)&((Ot(c)|0)^1)|0}function m0(s){s=s|0;var l=Ze,c=0,f=0,d=0,m=0,B=0,k=0,F=Ze;if(c=n[s+968>>2]|0,c)F=y(h[s+908>>2]),l=y(h[s+912>>2]),l=y(tW[c&0](s,F,l)),pi(s,(Ot(l)|0)^1,3573);else{m=Di(s)|0;do if(m|0){for(c=0,d=0;;){if(f=rs(s,d)|0,n[f+940>>2]|0){B=8;break}if((n[f+24>>2]|0)!=1)if(k=(Wi(s,f)|0)==5,k){c=f;break}else c=c|0?c:f;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!c)break;return l=y(m0(c)),y(l+y(h[c+404>>2]))}while(!1);l=y(h[s+912>>2])}return y(l)}function y0(s,l,c,f){s=s|0,l=l|0,c=y(c),f=y(f);var d=Ze,m=0;return E0(l)|0?(l=1,m=3):ge(l)|0?(l=0,m=3):(f=y(ue),d=y(ue)),(m|0)==3&&(d=y(Kr(s+364+(l<<3)|0,f)),f=y(Kr(s+380+(l<<3)|0,f))),m=f=y(0)&((Ot(f)|0)^1)),c=m?f:c,m=d>=y(0)&((Ot(d)|0)^1)&c>2]|0,m)|0,Oe=Fd(rt,m)|0,Qe=ge(rt)|0,j=y(fn(l,2,c)),oe=y(fn(l,0,c)),Ls(l,2,c)|0?k=y(j+y(Kr(n[l+992>>2]|0,c))):Ho(l,2)|0&&Td(l,2)|0?(k=y(h[s+908>>2]),F=y(Ir(s,2)),F=y(k-y(F+y(Rn(s,2)))),k=y(YA(l,2,c)),k=y(Mn(l,2,y(F-y(k+y(wp(l,2,c)))),c,c))):k=y(ue),Ls(l,0,d)|0?F=y(oe+y(Kr(n[l+996>>2]|0,d))):Ho(l,0)|0&&Td(l,0)|0?(F=y(h[s+912>>2]),ct=y(Ir(s,0)),ct=y(F-y(ct+y(Rn(s,0)))),F=y(YA(l,0,d)),F=y(Mn(l,0,y(ct-y(F+y(wp(l,0,d)))),d,c))):F=y(ue),M=Ot(k)|0,O=Ot(F)|0;do if(M^O&&(We=y(h[l+396>>2]),!(Ot(We)|0)))if(M){k=y(j+y(y(F-oe)*We));break}else{ct=y(oe+y(y(k-j)/We)),F=O?ct:F;break}while(!1);O=Ot(k)|0,M=Ot(F)|0,O|M&&(_e=(O^1)&1,f=c>y(0)&((f|0)!=0&O),k=Qe?k:f?c:k,Va(l,k,F,m,Qe?_e:f?2:_e,O&(M^1)&1,k,F,0,3623,B)|0,k=y(h[l+908>>2]),k=y(k+y(fn(l,2,c))),F=y(h[l+912>>2]),F=y(F+y(fn(l,0,c)))),Va(l,k,F,m,1,1,k,F,1,3635,B)|0,Td(l,rt)|0&&!(Ho(l,rt)|0)?(_e=n[976+(rt<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(ct-y(h[l+908+(_e<<2)>>2])),ct=y(ct-y(Rn(s,rt))),ct=y(ct-y(re(l,rt,c))),ct=y(ct-y(wp(l,rt,Qe?c:d))),h[l+400+(n[1040+(rt<<2)>>2]<<2)>>2]=ct):Xe=21;do if((Xe|0)==21){if(!(Ho(l,rt)|0)&&(n[s+8>>2]|0)==1){_e=n[976+(rt<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(y(ct-y(h[l+908+(_e<<2)>>2]))*y(.5)),h[l+400+(n[1040+(rt<<2)>>2]<<2)>>2]=ct;break}!(Ho(l,rt)|0)&&(n[s+8>>2]|0)==2&&(_e=n[976+(rt<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(ct-y(h[l+908+(_e<<2)>>2])),h[l+400+(n[1040+(rt<<2)>>2]<<2)>>2]=ct)}while(!1);Td(l,Oe)|0&&!(Ho(l,Oe)|0)?(_e=n[976+(Oe<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(ct-y(h[l+908+(_e<<2)>>2])),ct=y(ct-y(Rn(s,Oe))),ct=y(ct-y(re(l,Oe,c))),ct=y(ct-y(wp(l,Oe,Qe?d:c))),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=ct):Xe=30;do if((Xe|0)==30&&!(Ho(l,Oe)|0)){if((Wi(s,l)|0)==2){_e=n[976+(Oe<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(y(ct-y(h[l+908+(_e<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=ct;break}_e=(Wi(s,l)|0)==3,_e^(n[s+28>>2]|0)==2&&(_e=n[976+(Oe<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(ct-y(h[l+908+(_e<<2)>>2])),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=ct)}while(!1)}function xI(s,l,c){s=s|0,l=l|0,c=c|0;var f=Ze,d=0;d=n[976+(c<<2)>>2]|0,f=y(h[l+908+(d<<2)>>2]),f=y(y(h[s+908+(d<<2)>>2])-f),f=y(f-y(h[l+400+(n[1040+(c<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(c<<2)>>2]<<2)>>2]=f}function E0(s){return s=s|0,(s|1|0)==1|0}function GF(s){s=s|0;var l=Ze;switch(n[s+56>>2]|0){case 0:case 3:{l=y(h[s+40>>2]),l>y(0)&((Ot(l)|0)^1)?s=o[(n[s+976>>2]|0)+2>>0]|0?1056:992:s=1056;break}default:s=s+52|0}return s|0}function kI(s,l){return s=s|0,l=l|0,(o[s+l>>0]|0)!=0|0}function Td(s,l){return s=s|0,l=l|0,s=s+132|0,ge(l)|0&&n[(vn(s,5,948)|0)+4>>2]|0?s=1:s=(n[(vn(s,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function wp(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,ge(l)|0&&(f=vn(s,5,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=vn(s,n[1e3+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Kr(f,c))),y(c)}function uD(s,l,c){return s=s|0,l=l|0,c=y(c),Ho(s,l)|0?c=y(YA(s,l,c)):c=y(-y(wp(s,l,c))),y(c)}function AD(s){return s=y(s),h[D>>2]=s,n[D>>2]|0|0}function Nd(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Yt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function fD(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Ld(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&yt(s)}function pD(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;if(B=s+4|0,k=n[B>>2]|0,d=k-f|0,m=d>>2,s=l+(m<<2)|0,s>>>0>>0){f=k;do n[f>>2]=n[s>>2],s=s+4|0,f=(n[B>>2]|0)+4|0,n[B>>2]=f;while(s>>>0>>0)}m|0&&rw(k+(0-m<<2)|0,l|0,d|0)|0}function hD(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0;return k=l+4|0,F=n[k>>2]|0,d=n[s>>2]|0,B=c,m=B-d|0,f=F+(0-(m>>2)<<2)|0,n[k>>2]=f,(m|0)>0&&xr(f|0,d|0,m|0)|0,d=s+4|0,m=l+8|0,f=(n[d>>2]|0)-B|0,(f|0)>0&&(xr(n[m>>2]|0,c|0,f|0)|0,n[m>>2]=(n[m>>2]|0)+(f>>>2<<2)),B=n[s>>2]|0,n[s>>2]=n[k>>2],n[k>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=s+8|0,c=l+12|0,s=n[B>>2]|0,n[B>>2]=n[c>>2],n[c>>2]=s,n[l>>2]=n[k>>2],F|0}function QI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[c>>2]|0,(B|0)!=(m|0)){d=s+8|0,c=((m+-4-B|0)>>>2)+1|0,s=B,f=n[d>>2]|0;do n[f>>2]=n[s>>2],f=(n[d>>2]|0)+4|0,n[d>>2]=f,s=s+4|0;while((s|0)!=(m|0));n[l>>2]=B+(c<<2)}}function FI(){Oo()}function gD(){var s=0;return s=Yt(4)|0,RI(s),s|0}function RI(s){s=s|0,n[s>>2]=Sl()|0}function dD(s){s=s|0,s|0&&(C0(s),yt(s))}function C0(s){s=s|0,st(n[s>>2]|0)}function WF(s,l,c){s=s|0,l=l|0,c=c|0,bl(n[s>>2]|0,l,c)}function Od(s,l){s=s|0,l=y(l),dp(n[s>>2]|0,l)}function Md(s,l){return s=s|0,l=l|0,kI(n[s>>2]|0,l)|0}function Ud(){var s=0;return s=Yt(8)|0,I0(s,0),s|0}function I0(s,l){s=s|0,l=l|0,l?l=Mo(n[l>>2]|0)|0:l=qi()|0,n[s>>2]=l,n[s+4>>2]=0,Pn(l,s)}function _d(s){s=s|0;var l=0;return l=Yt(8)|0,I0(l,s),l|0}function w0(s){s=s|0,s|0&&(Hd(s),yt(s))}function Hd(s){s=s|0;var l=0;Dl(n[s>>2]|0),l=s+4|0,s=n[l>>2]|0,n[l>>2]=0,s|0&&(bu(s),yt(s))}function bu(s){s=s|0,xu(s)}function xu(s){s=s|0,s=n[s>>2]|0,s|0&&sa(s|0)}function TI(s){return s=s|0,fa(s)|0}function NI(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(bu(l),yt(l)),Pl(n[s>>2]|0)}function qd(s,l){s=s|0,l=l|0,sn(n[s>>2]|0,n[l>>2]|0)}function YF(s,l){s=s|0,l=l|0,fp(n[s>>2]|0,l)}function KF(s,l,c){s=s|0,l=l|0,c=+c,Pd(n[s>>2]|0,l,y(c))}function jd(s,l,c){s=s|0,l=l|0,c=+c,Sd(n[s>>2]|0,l,y(c))}function LI(s,l){s=s|0,l=l|0,cp(n[s>>2]|0,l)}function OI(s,l){s=s|0,l=l|0,to(n[s>>2]|0,l)}function Sr(s,l){s=s|0,l=l|0,Ap(n[s>>2]|0,l)}function Os(s,l){s=s|0,l=l|0,wd(n[s>>2]|0,l)}function Oi(s,l){s=s|0,l=l|0,o0(n[s>>2]|0,l)}function ms(s,l){s=s|0,l=l|0,eo(n[s>>2]|0,l)}function VA(s,l,c){s=s|0,l=l|0,c=+c,OA(n[s>>2]|0,l,y(c))}function MI(s,l,c){s=s|0,l=l|0,c=+c,W(n[s>>2]|0,l,y(c))}function is(s,l){s=s|0,l=l|0,MA(n[s>>2]|0,l)}function Gd(s,l){s=s|0,l=l|0,vd(n[s>>2]|0,l)}function Bp(s,l){s=s|0,l=l|0,ro(n[s>>2]|0,l)}function B0(s,l){s=s|0,l=+l,pp(n[s>>2]|0,y(l))}function vp(s,l){s=s|0,l=+l,Ya(n[s>>2]|0,y(l))}function UI(s,l){s=s|0,l=+l,Dd(n[s>>2]|0,y(l))}function _I(s,l){s=s|0,l=+l,l0(n[s>>2]|0,y(l))}function HI(s,l){s=s|0,l=+l,Wa(n[s>>2]|0,y(l))}function qI(s,l){s=s|0,l=+l,c0(n[s>>2]|0,y(l))}function ku(s,l){s=s|0,l=+l,DI(n[s>>2]|0,y(l))}function ir(s){s=s|0,hp(n[s>>2]|0)}function Wd(s,l){s=s|0,l=+l,Li(n[s>>2]|0,y(l))}function jI(s,l){s=s|0,l=+l,Iu(n[s>>2]|0,y(l))}function xl(s){s=s|0,pa(n[s>>2]|0)}function Qu(s,l){s=s|0,l=+l,Bc(n[s>>2]|0,y(l))}function v0(s,l){s=s|0,l=+l,wu(n[s>>2]|0,y(l))}function D0(s,l){s=s|0,l=+l,oi(n[s>>2]|0,y(l))}function GI(s,l){s=s|0,l=+l,UA(n[s>>2]|0,y(l))}function WI(s,l){s=s|0,l=+l,Uo(n[s>>2]|0,y(l))}function xc(s,l){s=s|0,l=+l,ga(n[s>>2]|0,y(l))}function P0(s,l){s=s|0,l=+l,gp(n[s>>2]|0,y(l))}function YI(s,l){s=s|0,l=+l,f0(n[s>>2]|0,y(l))}function Yd(s,l){s=s|0,l=+l,_A(n[s>>2]|0,y(l))}function kc(s,l,c){s=s|0,l=l|0,c=+c,wc(n[s>>2]|0,l,y(c))}function Kd(s,l,c){s=s|0,l=l|0,c=+c,no(n[s>>2]|0,l,y(c))}function S0(s,l,c){s=s|0,l=l|0,c=+c,Cu(n[s>>2]|0,l,y(c))}function b0(s){return s=s|0,s0(n[s>>2]|0)|0}function oo(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,LA(d,n[l>>2]|0,c),ss(s,d),C=f}function ss(s,l){s=s|0,l=l|0,Xa(s,n[l+4>>2]|0,+y(h[l>>2]))}function Xa(s,l,c){s=s|0,l=l|0,c=+c,n[s>>2]=l,E[s+8>>3]=c}function Vd(s){return s=s|0,vI(n[s>>2]|0)|0}function qo(s){return s=s|0,up(n[s>>2]|0)|0}function mD(s){return s=s|0,Ic(n[s>>2]|0)|0}function Dp(s){return s=s|0,BI(n[s>>2]|0)|0}function KI(s){return s=s|0,a0(n[s>>2]|0)|0}function VF(s){return s=s|0,Bd(n[s>>2]|0)|0}function yD(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,bt(d,n[l>>2]|0,c),ss(s,d),C=f}function ED(s){return s=s|0,Eu(n[s>>2]|0)|0}function Jd(s){return s=s|0,Ga(n[s>>2]|0)|0}function VI(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,NA(f,n[l>>2]|0),ss(s,f),C=c}function Pp(s){return s=s|0,+ +y(ei(n[s>>2]|0))}function CD(s){return s=s|0,+ +y(Qi(n[s>>2]|0))}function ID(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,cr(f,n[l>>2]|0),ss(s,f),C=c}function x0(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,u0(f,n[l>>2]|0),ss(s,f),C=c}function JF(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,wt(f,n[l>>2]|0),ss(s,f),C=c}function zF(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,ha(f,n[l>>2]|0),ss(s,f),C=c}function wD(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,A0(f,n[l>>2]|0),ss(s,f),C=c}function BD(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,xd(f,n[l>>2]|0),ss(s,f),C=c}function JA(s){return s=s|0,+ +y(p0(n[s>>2]|0))}function XF(s,l){return s=s|0,l=l|0,+ +y(bd(n[s>>2]|0,l))}function ZF(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,dt(d,n[l>>2]|0,c),ss(s,d),C=f}function Qc(s,l,c){s=s|0,l=l|0,c=c|0,ar(n[s>>2]|0,n[l>>2]|0,c)}function $F(s,l){s=s|0,l=l|0,yu(n[s>>2]|0,n[l>>2]|0)}function vD(s){return s=s|0,Di(n[s>>2]|0)|0}function eR(s){return s=s|0,s=mt(n[s>>2]|0)|0,s?s=TI(s)|0:s=0,s|0}function DD(s,l){return s=s|0,l=l|0,s=rs(n[s>>2]|0,l)|0,s?s=TI(s)|0:s=0,s|0}function Fu(s,l){s=s|0,l=l|0;var c=0,f=0;f=Yt(4)|0,PD(f,l),c=s+4|0,l=n[c>>2]|0,n[c>>2]=f,l|0&&(bu(l),yt(l)),vt(n[s>>2]|0,1)}function PD(s,l){s=s|0,l=l|0,iR(s,l)}function tR(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,SD(k,fa(l)|0,+c,f,+d,m),h[s>>2]=y(+E[k>>3]),h[s+4>>2]=y(+E[k+8>>3]),C=B}function SD(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0,k=0,F=0,M=0,O=0;B=C,C=C+32|0,O=B+8|0,M=B+20|0,F=B,k=B+16|0,E[O>>3]=c,n[M>>2]=f,E[F>>3]=d,n[k>>2]=m,zd(s,n[l+4>>2]|0,O,M,F,k),C=B}function zd(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,$a(k),l=ys(l)|0,bD(s,l,+E[c>>3],n[f>>2]|0,+E[d>>3],n[m>>2]|0),el(k),C=B}function ys(s){return s=s|0,n[s>>2]|0}function bD(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0;B=jo(JI()|0)|0,c=+ma(c),f=Xd(f)|0,d=+ma(d),rR(s,qn(0,B|0,l|0,+c,f|0,+d,Xd(m)|0)|0)}function JI(){var s=0;return o[7608]|0||(XI(9120),s=7608,n[s>>2]=1,n[s+4>>2]=0),9120}function jo(s){return s=s|0,n[s+8>>2]|0}function ma(s){return s=+s,+ +Ru(s)}function Xd(s){return s=s|0,k0(s)|0}function rR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=l,f&1?(ya(c,0),ia(f|0,c|0)|0,zI(s,c),nR(c)):(n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]),C=d}function ya(s,l){s=s|0,l=l|0,Fc(s,l),n[s+8>>2]=0,o[s+24>>0]=0}function zI(s,l){s=s|0,l=l|0,l=l+8|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]}function nR(s){s=s|0,o[s+24>>0]=0}function Fc(s,l){s=s|0,l=l|0,n[s>>2]=l}function k0(s){return s=s|0,s|0}function Ru(s){return s=+s,+s}function XI(s){s=s|0,ao(s,ZI()|0,4)}function ZI(){return 1064}function ao(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=ki(l|0,c+1|0)|0}function iR(s,l){s=s|0,l=l|0,l=n[l>>2]|0,n[s>>2]=l,hc(l|0)}function xD(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(bu(l),yt(l)),vt(n[s>>2]|0,0)}function kD(s){s=s|0,Dt(n[s>>2]|0)}function Zd(s){return s=s|0,er(n[s>>2]|0)|0}function sR(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,qA(n[s>>2]|0,y(l),y(c),f)}function oR(s){return s=s|0,+ +y(vc(n[s>>2]|0))}function v(s){return s=s|0,+ +y(Bu(n[s>>2]|0))}function P(s){return s=s|0,+ +y(Dc(n[s>>2]|0))}function Q(s){return s=s|0,+ +y(gs(n[s>>2]|0))}function H(s){return s=s|0,+ +y(Pc(n[s>>2]|0))}function Y(s){return s=s|0,+ +y(On(n[s>>2]|0))}function ne(s,l){s=s|0,l=l|0,E[s>>3]=+y(vc(n[l>>2]|0)),E[s+8>>3]=+y(Bu(n[l>>2]|0)),E[s+16>>3]=+y(Dc(n[l>>2]|0)),E[s+24>>3]=+y(gs(n[l>>2]|0)),E[s+32>>3]=+y(Pc(n[l>>2]|0)),E[s+40>>3]=+y(On(n[l>>2]|0))}function Be(s,l){return s=s|0,l=l|0,+ +y(ji(n[s>>2]|0,l))}function Ue(s,l){return s=s|0,l=l|0,+ +y(Ci(n[s>>2]|0,l))}function ft(s,l){return s=s|0,l=l|0,+ +y(HA(n[s>>2]|0,l))}function jt(){return Dn()|0}function wr(){Tr(),Xt(),jn(),li(),Ea(),$e()}function Tr(){SNe(11713,4938,1)}function Xt(){YTe(10448)}function jn(){STe(10408)}function li(){zRe(10324)}function Ea(){iFe(10096)}function $e(){je(9132)}function je(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0,ct=0,_e=0,Ge=0,Lt=0,_r=0,ur=0,Zt=0,kr=0,Or=0,lr=0,Nn=0,lo=0,co=0,uo=0,Ia=0,Np=0,Lp=0,kl=0,Op=0,Lu=0,Ou=0,Mp=0,Up=0,_p=0,$r=0,Ql=0,Hp=0,Nc=0,qp=0,jp=0,Mu=0,Uu=0,Lc=0,Ms=0,rl=0,Go=0,Fl=0,rf=0,nf=0,_u=0,sf=0,of=0,Us=0,Cs=0,Rl=0,Un=0,af=0,Ao=0,Oc=0,fo=0,Mc=0,lf=0,cf=0,Uc=0,_s=0,Tl=0,uf=0,Af=0,ff=0,Fr=0,ri=0,Is=0,po=0,Hs=0,Nr=0,Ar=0,Nl=0;l=C,C=C+672|0,c=l+656|0,Nl=l+648|0,Ar=l+640|0,Nr=l+632|0,Hs=l+624|0,po=l+616|0,Is=l+608|0,ri=l+600|0,Fr=l+592|0,ff=l+584|0,Af=l+576|0,uf=l+568|0,Tl=l+560|0,_s=l+552|0,Uc=l+544|0,cf=l+536|0,lf=l+528|0,Mc=l+520|0,fo=l+512|0,Oc=l+504|0,Ao=l+496|0,af=l+488|0,Un=l+480|0,Rl=l+472|0,Cs=l+464|0,Us=l+456|0,of=l+448|0,sf=l+440|0,_u=l+432|0,nf=l+424|0,rf=l+416|0,Fl=l+408|0,Go=l+400|0,rl=l+392|0,Ms=l+384|0,Lc=l+376|0,Uu=l+368|0,Mu=l+360|0,jp=l+352|0,qp=l+344|0,Nc=l+336|0,Hp=l+328|0,Ql=l+320|0,$r=l+312|0,_p=l+304|0,Up=l+296|0,Mp=l+288|0,Ou=l+280|0,Lu=l+272|0,Op=l+264|0,kl=l+256|0,Lp=l+248|0,Np=l+240|0,Ia=l+232|0,uo=l+224|0,co=l+216|0,lo=l+208|0,Nn=l+200|0,lr=l+192|0,Or=l+184|0,kr=l+176|0,Zt=l+168|0,ur=l+160|0,_r=l+152|0,Lt=l+144|0,Ge=l+136|0,_e=l+128|0,ct=l+120|0,Xe=l+112|0,rt=l+104|0,Qe=l+96|0,Oe=l+88|0,We=l+80|0,oe=l+72|0,j=l+64|0,O=l+56|0,M=l+48|0,F=l+40|0,k=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,f=l,pt(s,3646),zt(s,3651,2)|0,Br(s,3665,2)|0,Wn(s,3682,18)|0,n[Nl>>2]=19,n[Nl+4>>2]=0,n[c>>2]=n[Nl>>2],n[c+4>>2]=n[Nl+4>>2],br(s,3690,c)|0,n[Ar>>2]=1,n[Ar+4>>2]=0,n[c>>2]=n[Ar>>2],n[c+4>>2]=n[Ar+4>>2],Sn(s,3696,c)|0,n[Nr>>2]=2,n[Nr+4>>2]=0,n[c>>2]=n[Nr>>2],n[c+4>>2]=n[Nr+4>>2],Tn(s,3706,c)|0,n[Hs>>2]=1,n[Hs+4>>2]=0,n[c>>2]=n[Hs>>2],n[c+4>>2]=n[Hs+4>>2],Yr(s,3722,c)|0,n[po>>2]=2,n[po+4>>2]=0,n[c>>2]=n[po>>2],n[c+4>>2]=n[po+4>>2],Yr(s,3734,c)|0,n[Is>>2]=3,n[Is+4>>2]=0,n[c>>2]=n[Is>>2],n[c+4>>2]=n[Is+4>>2],Tn(s,3753,c)|0,n[ri>>2]=4,n[ri+4>>2]=0,n[c>>2]=n[ri>>2],n[c+4>>2]=n[ri+4>>2],Tn(s,3769,c)|0,n[Fr>>2]=5,n[Fr+4>>2]=0,n[c>>2]=n[Fr>>2],n[c+4>>2]=n[Fr+4>>2],Tn(s,3783,c)|0,n[ff>>2]=6,n[ff+4>>2]=0,n[c>>2]=n[ff>>2],n[c+4>>2]=n[ff+4>>2],Tn(s,3796,c)|0,n[Af>>2]=7,n[Af+4>>2]=0,n[c>>2]=n[Af>>2],n[c+4>>2]=n[Af+4>>2],Tn(s,3813,c)|0,n[uf>>2]=8,n[uf+4>>2]=0,n[c>>2]=n[uf>>2],n[c+4>>2]=n[uf+4>>2],Tn(s,3825,c)|0,n[Tl>>2]=3,n[Tl+4>>2]=0,n[c>>2]=n[Tl>>2],n[c+4>>2]=n[Tl+4>>2],Yr(s,3843,c)|0,n[_s>>2]=4,n[_s+4>>2]=0,n[c>>2]=n[_s>>2],n[c+4>>2]=n[_s+4>>2],Yr(s,3853,c)|0,n[Uc>>2]=9,n[Uc+4>>2]=0,n[c>>2]=n[Uc>>2],n[c+4>>2]=n[Uc+4>>2],Tn(s,3870,c)|0,n[cf>>2]=10,n[cf+4>>2]=0,n[c>>2]=n[cf>>2],n[c+4>>2]=n[cf+4>>2],Tn(s,3884,c)|0,n[lf>>2]=11,n[lf+4>>2]=0,n[c>>2]=n[lf>>2],n[c+4>>2]=n[lf+4>>2],Tn(s,3896,c)|0,n[Mc>>2]=1,n[Mc+4>>2]=0,n[c>>2]=n[Mc>>2],n[c+4>>2]=n[Mc+4>>2],ti(s,3907,c)|0,n[fo>>2]=2,n[fo+4>>2]=0,n[c>>2]=n[fo>>2],n[c+4>>2]=n[fo+4>>2],ti(s,3915,c)|0,n[Oc>>2]=3,n[Oc+4>>2]=0,n[c>>2]=n[Oc>>2],n[c+4>>2]=n[Oc+4>>2],ti(s,3928,c)|0,n[Ao>>2]=4,n[Ao+4>>2]=0,n[c>>2]=n[Ao>>2],n[c+4>>2]=n[Ao+4>>2],ti(s,3948,c)|0,n[af>>2]=5,n[af+4>>2]=0,n[c>>2]=n[af>>2],n[c+4>>2]=n[af+4>>2],ti(s,3960,c)|0,n[Un>>2]=6,n[Un+4>>2]=0,n[c>>2]=n[Un>>2],n[c+4>>2]=n[Un+4>>2],ti(s,3974,c)|0,n[Rl>>2]=7,n[Rl+4>>2]=0,n[c>>2]=n[Rl>>2],n[c+4>>2]=n[Rl+4>>2],ti(s,3983,c)|0,n[Cs>>2]=20,n[Cs+4>>2]=0,n[c>>2]=n[Cs>>2],n[c+4>>2]=n[Cs+4>>2],br(s,3999,c)|0,n[Us>>2]=8,n[Us+4>>2]=0,n[c>>2]=n[Us>>2],n[c+4>>2]=n[Us+4>>2],ti(s,4012,c)|0,n[of>>2]=9,n[of+4>>2]=0,n[c>>2]=n[of>>2],n[c+4>>2]=n[of+4>>2],ti(s,4022,c)|0,n[sf>>2]=21,n[sf+4>>2]=0,n[c>>2]=n[sf>>2],n[c+4>>2]=n[sf+4>>2],br(s,4039,c)|0,n[_u>>2]=10,n[_u+4>>2]=0,n[c>>2]=n[_u>>2],n[c+4>>2]=n[_u+4>>2],ti(s,4053,c)|0,n[nf>>2]=11,n[nf+4>>2]=0,n[c>>2]=n[nf>>2],n[c+4>>2]=n[nf+4>>2],ti(s,4065,c)|0,n[rf>>2]=12,n[rf+4>>2]=0,n[c>>2]=n[rf>>2],n[c+4>>2]=n[rf+4>>2],ti(s,4084,c)|0,n[Fl>>2]=13,n[Fl+4>>2]=0,n[c>>2]=n[Fl>>2],n[c+4>>2]=n[Fl+4>>2],ti(s,4097,c)|0,n[Go>>2]=14,n[Go+4>>2]=0,n[c>>2]=n[Go>>2],n[c+4>>2]=n[Go+4>>2],ti(s,4117,c)|0,n[rl>>2]=15,n[rl+4>>2]=0,n[c>>2]=n[rl>>2],n[c+4>>2]=n[rl+4>>2],ti(s,4129,c)|0,n[Ms>>2]=16,n[Ms+4>>2]=0,n[c>>2]=n[Ms>>2],n[c+4>>2]=n[Ms+4>>2],ti(s,4148,c)|0,n[Lc>>2]=17,n[Lc+4>>2]=0,n[c>>2]=n[Lc>>2],n[c+4>>2]=n[Lc+4>>2],ti(s,4161,c)|0,n[Uu>>2]=18,n[Uu+4>>2]=0,n[c>>2]=n[Uu>>2],n[c+4>>2]=n[Uu+4>>2],ti(s,4181,c)|0,n[Mu>>2]=5,n[Mu+4>>2]=0,n[c>>2]=n[Mu>>2],n[c+4>>2]=n[Mu+4>>2],Yr(s,4196,c)|0,n[jp>>2]=6,n[jp+4>>2]=0,n[c>>2]=n[jp>>2],n[c+4>>2]=n[jp+4>>2],Yr(s,4206,c)|0,n[qp>>2]=7,n[qp+4>>2]=0,n[c>>2]=n[qp>>2],n[c+4>>2]=n[qp+4>>2],Yr(s,4217,c)|0,n[Nc>>2]=3,n[Nc+4>>2]=0,n[c>>2]=n[Nc>>2],n[c+4>>2]=n[Nc+4>>2],Rc(s,4235,c)|0,n[Hp>>2]=1,n[Hp+4>>2]=0,n[c>>2]=n[Hp>>2],n[c+4>>2]=n[Hp+4>>2],aR(s,4251,c)|0,n[Ql>>2]=4,n[Ql+4>>2]=0,n[c>>2]=n[Ql>>2],n[c+4>>2]=n[Ql+4>>2],Rc(s,4263,c)|0,n[$r>>2]=5,n[$r+4>>2]=0,n[c>>2]=n[$r>>2],n[c+4>>2]=n[$r+4>>2],Rc(s,4279,c)|0,n[_p>>2]=6,n[_p+4>>2]=0,n[c>>2]=n[_p>>2],n[c+4>>2]=n[_p+4>>2],Rc(s,4293,c)|0,n[Up>>2]=7,n[Up+4>>2]=0,n[c>>2]=n[Up>>2],n[c+4>>2]=n[Up+4>>2],Rc(s,4306,c)|0,n[Mp>>2]=8,n[Mp+4>>2]=0,n[c>>2]=n[Mp>>2],n[c+4>>2]=n[Mp+4>>2],Rc(s,4323,c)|0,n[Ou>>2]=9,n[Ou+4>>2]=0,n[c>>2]=n[Ou>>2],n[c+4>>2]=n[Ou+4>>2],Rc(s,4335,c)|0,n[Lu>>2]=2,n[Lu+4>>2]=0,n[c>>2]=n[Lu>>2],n[c+4>>2]=n[Lu+4>>2],aR(s,4353,c)|0,n[Op>>2]=12,n[Op+4>>2]=0,n[c>>2]=n[Op>>2],n[c+4>>2]=n[Op+4>>2],Q0(s,4363,c)|0,n[kl>>2]=1,n[kl+4>>2]=0,n[c>>2]=n[kl>>2],n[c+4>>2]=n[kl+4>>2],zA(s,4376,c)|0,n[Lp>>2]=2,n[Lp+4>>2]=0,n[c>>2]=n[Lp>>2],n[c+4>>2]=n[Lp+4>>2],zA(s,4388,c)|0,n[Np>>2]=13,n[Np+4>>2]=0,n[c>>2]=n[Np>>2],n[c+4>>2]=n[Np+4>>2],Q0(s,4402,c)|0,n[Ia>>2]=14,n[Ia+4>>2]=0,n[c>>2]=n[Ia>>2],n[c+4>>2]=n[Ia+4>>2],Q0(s,4411,c)|0,n[uo>>2]=15,n[uo+4>>2]=0,n[c>>2]=n[uo>>2],n[c+4>>2]=n[uo+4>>2],Q0(s,4421,c)|0,n[co>>2]=16,n[co+4>>2]=0,n[c>>2]=n[co>>2],n[c+4>>2]=n[co+4>>2],Q0(s,4433,c)|0,n[lo>>2]=17,n[lo+4>>2]=0,n[c>>2]=n[lo>>2],n[c+4>>2]=n[lo+4>>2],Q0(s,4446,c)|0,n[Nn>>2]=18,n[Nn+4>>2]=0,n[c>>2]=n[Nn>>2],n[c+4>>2]=n[Nn+4>>2],Q0(s,4458,c)|0,n[lr>>2]=3,n[lr+4>>2]=0,n[c>>2]=n[lr>>2],n[c+4>>2]=n[lr+4>>2],zA(s,4471,c)|0,n[Or>>2]=1,n[Or+4>>2]=0,n[c>>2]=n[Or>>2],n[c+4>>2]=n[Or+4>>2],QD(s,4486,c)|0,n[kr>>2]=10,n[kr+4>>2]=0,n[c>>2]=n[kr>>2],n[c+4>>2]=n[kr+4>>2],Rc(s,4496,c)|0,n[Zt>>2]=11,n[Zt+4>>2]=0,n[c>>2]=n[Zt>>2],n[c+4>>2]=n[Zt+4>>2],Rc(s,4508,c)|0,n[ur>>2]=3,n[ur+4>>2]=0,n[c>>2]=n[ur>>2],n[c+4>>2]=n[ur+4>>2],aR(s,4519,c)|0,n[_r>>2]=4,n[_r+4>>2]=0,n[c>>2]=n[_r>>2],n[c+4>>2]=n[_r+4>>2],Nve(s,4530,c)|0,n[Lt>>2]=19,n[Lt+4>>2]=0,n[c>>2]=n[Lt>>2],n[c+4>>2]=n[Lt+4>>2],Lve(s,4542,c)|0,n[Ge>>2]=12,n[Ge+4>>2]=0,n[c>>2]=n[Ge>>2],n[c+4>>2]=n[Ge+4>>2],Ove(s,4554,c)|0,n[_e>>2]=13,n[_e+4>>2]=0,n[c>>2]=n[_e>>2],n[c+4>>2]=n[_e+4>>2],Mve(s,4568,c)|0,n[ct>>2]=2,n[ct+4>>2]=0,n[c>>2]=n[ct>>2],n[c+4>>2]=n[ct+4>>2],Uve(s,4578,c)|0,n[Xe>>2]=20,n[Xe+4>>2]=0,n[c>>2]=n[Xe>>2],n[c+4>>2]=n[Xe+4>>2],_ve(s,4587,c)|0,n[rt>>2]=22,n[rt+4>>2]=0,n[c>>2]=n[rt>>2],n[c+4>>2]=n[rt+4>>2],br(s,4602,c)|0,n[Qe>>2]=23,n[Qe+4>>2]=0,n[c>>2]=n[Qe>>2],n[c+4>>2]=n[Qe+4>>2],br(s,4619,c)|0,n[Oe>>2]=14,n[Oe+4>>2]=0,n[c>>2]=n[Oe>>2],n[c+4>>2]=n[Oe+4>>2],Hve(s,4629,c)|0,n[We>>2]=1,n[We+4>>2]=0,n[c>>2]=n[We>>2],n[c+4>>2]=n[We+4>>2],qve(s,4637,c)|0,n[oe>>2]=4,n[oe+4>>2]=0,n[c>>2]=n[oe>>2],n[c+4>>2]=n[oe+4>>2],zA(s,4653,c)|0,n[j>>2]=5,n[j+4>>2]=0,n[c>>2]=n[j>>2],n[c+4>>2]=n[j+4>>2],zA(s,4669,c)|0,n[O>>2]=6,n[O+4>>2]=0,n[c>>2]=n[O>>2],n[c+4>>2]=n[O+4>>2],zA(s,4686,c)|0,n[M>>2]=7,n[M+4>>2]=0,n[c>>2]=n[M>>2],n[c+4>>2]=n[M+4>>2],zA(s,4701,c)|0,n[F>>2]=8,n[F+4>>2]=0,n[c>>2]=n[F>>2],n[c+4>>2]=n[F+4>>2],zA(s,4719,c)|0,n[k>>2]=9,n[k+4>>2]=0,n[c>>2]=n[k>>2],n[c+4>>2]=n[k+4>>2],zA(s,4736,c)|0,n[B>>2]=21,n[B+4>>2]=0,n[c>>2]=n[B>>2],n[c+4>>2]=n[B+4>>2],jve(s,4754,c)|0,n[m>>2]=2,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],QD(s,4772,c)|0,n[d>>2]=3,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],QD(s,4790,c)|0,n[f>>2]=4,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],QD(s,4808,c)|0,C=l}function pt(s,l){s=s|0,l=l|0;var c=0;c=JQe()|0,n[s>>2]=c,zQe(c,l),Fp(n[s>>2]|0)}function zt(s,l,c){return s=s|0,l=l|0,c=c|0,NQe(s,mn(l)|0,c,0),s|0}function Br(s,l,c){return s=s|0,l=l|0,c=c|0,EQe(s,mn(l)|0,c,0),s|0}function Wn(s,l,c){return s=s|0,l=l|0,c=c|0,sQe(s,mn(l)|0,c,0),s|0}function br(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jke(s,l,d),C=f,s|0}function Sn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vke(s,l,d),C=f,s|0}function Tn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lke(s,l,d),C=f,s|0}function Yr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Yxe(s,l,d),C=f,s|0}function ti(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kxe(s,l,d),C=f,s|0}function Rc(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],hxe(s,l,d),C=f,s|0}function aR(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Zbe(s,l,d),C=f,s|0}function Q0(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vbe(s,l,d),C=f,s|0}function zA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lbe(s,l,d),C=f,s|0}function QD(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],YSe(s,l,d),C=f,s|0}function Nve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kSe(s,l,d),C=f,s|0}function Lve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],hSe(s,l,d),C=f,s|0}function Ove(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$Pe(s,l,d),C=f,s|0}function Mve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],MPe(s,l,d),C=f,s|0}function Uve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],IPe(s,l,d),C=f,s|0}function _ve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iPe(s,l,d),C=f,s|0}function Hve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qDe(s,l,d),C=f,s|0}function qve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vDe(s,l,d),C=f,s|0}function jve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Gve(s,l,d),C=f,s|0}function Gve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Wve(s,c,d,1),C=f}function mn(s){return s=s|0,s|0}function Wve(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=lR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Yve(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Kve(m,f)|0,f),C=d}function lR(){var s=0,l=0;if(o[7616]|0||(NG(9136),pr(24,9136,U|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9136)|0)){s=9136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));NG(9136)}return 9136}function Yve(s){return s=s|0,0}function Kve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=lR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],TG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(zve(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function yn(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0;B=C,C=C+32|0,oe=B+24|0,j=B+20|0,F=B+16|0,O=B+12|0,M=B+8|0,k=B+4|0,We=B,n[j>>2]=l,n[F>>2]=c,n[O>>2]=f,n[M>>2]=d,n[k>>2]=m,m=s+28|0,n[We>>2]=n[m>>2],n[oe>>2]=n[We>>2],Vve(s+24|0,oe,j,O,M,F,k)|0,n[m>>2]=n[n[m>>2]>>2],C=B}function Vve(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,s=Jve(l)|0,l=Yt(24)|0,RG(l+4|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[s>>2],n[s>>2]=l,l|0}function Jve(s){return s=s|0,n[s>>2]|0}function RG(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function dr(s,l){return s=s|0,l=l|0,l|s|0}function TG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function zve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Xve(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,Zve(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],TG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,$ve(s,k),eDe(k),C=M;return}}function Xve(s){return s=s|0,357913941}function Zve(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function $ve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function eDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function NG(s){s=s|0,nDe(s)}function tDe(s){s=s|0,rDe(s+24|0)}function Lr(s){return s=s|0,n[s>>2]|0}function rDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function nDe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,3,l,iDe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Jr(){return 9228}function iDe(){return 1140}function sDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=oDe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=aDe(l,f)|0,C=c,l|0}function zr(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function oDe(s){return s=s|0,(n[(lR()|0)+24>>2]|0)+(s*12|0)|0}function aDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+48|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=lDe(f)|0,C=d,f|0}function lDe(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=cR(LG()|0)|0,f?(uR(l,f),AR(c,l),cDe(s,c),s=fR(l)|0):s=uDe(s)|0,C=d,s|0}function LG(){var s=0;return o[7632]|0||(CDe(9184),pr(25,9184,U|0)|0,s=7632,n[s>>2]=1,n[s+4>>2]=0),9184}function cR(s){return s=s|0,n[s+36>>2]|0}function uR(s,l){s=s|0,l=l|0,n[s>>2]=l,n[s+4>>2]=s,n[s+8>>2]=0}function AR(s,l){s=s|0,l=l|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=0}function cDe(s,l){s=s|0,l=l|0,hDe(l,s,s+8|0,s+16|0,s+24|0,s+32|0,s+40|0)|0}function fR(s){return s=s|0,n[(n[s+4>>2]|0)+8>>2]|0}function uDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0;F=C,C=C+16|0,c=F+4|0,f=F,d=Za(8)|0,m=d,B=Yt(48)|0,k=B,l=k+48|0;do n[k>>2]=n[s>>2],k=k+4|0,s=s+4|0;while((k|0)<(l|0));return l=m+4|0,n[l>>2]=B,k=Yt(8)|0,B=n[l>>2]|0,n[f>>2]=0,n[c>>2]=n[f>>2],OG(k,B,c),n[d>>2]=k,C=F,m|0}function OG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Yt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1092,n[c+12>>2]=l,n[s+4>>2]=c}function ADe(s){s=s|0,im(s),yt(s)}function fDe(s){s=s|0,s=n[s+12>>2]|0,s|0&&yt(s)}function pDe(s){s=s|0,yt(s)}function hDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,m=gDe(n[s>>2]|0,l,c,f,d,m,B)|0,B=s+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function gDe(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0;var k=0,F=0;return k=C,C=C+16|0,F=k,$a(F),s=ys(s)|0,B=dDe(s,+E[l>>3],+E[c>>3],+E[f>>3],+E[d>>3],+E[m>>3],+E[B>>3])|0,el(F),C=k,B|0}function dDe(s,l,c,f,d,m,B){s=s|0,l=+l,c=+c,f=+f,d=+d,m=+m,B=+B;var k=0;return k=jo(mDe()|0)|0,l=+ma(l),c=+ma(c),f=+ma(f),d=+ma(d),m=+ma(m),Ts(0,k|0,s|0,+l,+c,+f,+d,+m,+ +ma(B))|0}function mDe(){var s=0;return o[7624]|0||(yDe(9172),s=7624,n[s>>2]=1,n[s+4>>2]=0),9172}function yDe(s){s=s|0,ao(s,EDe()|0,6)}function EDe(){return 1112}function CDe(s){s=s|0,Sp(s)}function IDe(s){s=s|0,MG(s+24|0),UG(s+16|0)}function MG(s){s=s|0,BDe(s)}function UG(s){s=s|0,wDe(s)}function wDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,yt(c);while(l|0);n[s>>2]=0}function BDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,yt(c);while(l|0);n[s>>2]=0}function Sp(s){s=s|0;var l=0;n[s+16>>2]=0,n[s+20>>2]=0,l=s+24|0,n[l>>2]=0,n[s+28>>2]=l,n[s+36>>2]=0,o[s+40>>0]=0,o[s+41>>0]=0}function vDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],DDe(s,c,d,0),C=f}function DDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=pR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=PDe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,SDe(m,f)|0,f),C=d}function pR(){var s=0,l=0;if(o[7640]|0||(HG(9232),pr(26,9232,U|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9232)|0)){s=9232,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));HG(9232)}return 9232}function PDe(s){return s=s|0,0}function SDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=pR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_G(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(bDe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function _G(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function bDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=xDe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,kDe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_G(m,f,c),n[F>>2]=(n[F>>2]|0)+12,QDe(s,k),FDe(k),C=M;return}}function xDe(s){return s=s|0,357913941}function kDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function QDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function FDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function HG(s){s=s|0,NDe(s)}function RDe(s){s=s|0,TDe(s+24|0)}function TDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function NDe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,1,l,LDe()|0,3),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function LDe(){return 1144}function ODe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,F=0;m=C,C=C+16|0,B=m+8|0,k=m,F=MDe(s)|0,s=n[F+4>>2]|0,n[k>>2]=n[F>>2],n[k+4>>2]=s,n[B>>2]=n[k>>2],n[B+4>>2]=n[k+4>>2],UDe(l,B,c,f,d),C=m}function MDe(s){return s=s|0,(n[(pR()|0)+24>>2]|0)+(s*12|0)|0}function UDe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,F=0,M=0;M=C,C=C+16|0,B=M+2|0,k=M+1|0,F=M,m=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(m=n[(n[s>>2]|0)+m>>2]|0),Tu(B,c),c=+Nu(B,c),Tu(k,f),f=+Nu(k,f),XA(F,d),F=ZA(F,d)|0,rW[m&1](s,c,f,F),C=M}function Tu(s,l){s=s|0,l=+l}function Nu(s,l){return s=s|0,l=+l,+ +HDe(l)}function XA(s,l){s=s|0,l=l|0}function ZA(s,l){return s=s|0,l=l|0,_De(l)|0}function _De(s){return s=s|0,s|0}function HDe(s){return s=+s,+s}function qDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jDe(s,c,d,1),C=f}function jDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=hR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=GDe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,WDe(m,f)|0,f),C=d}function hR(){var s=0,l=0;if(o[7648]|0||(jG(9268),pr(27,9268,U|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9268)|0)){s=9268,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));jG(9268)}return 9268}function GDe(s){return s=s|0,0}function WDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=hR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],qG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(YDe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function qG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function YDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=KDe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,VDe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],qG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,JDe(s,k),zDe(k),C=M;return}}function KDe(s){return s=s|0,357913941}function VDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function JDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function zDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function jG(s){s=s|0,$De(s)}function XDe(s){s=s|0,ZDe(s+24|0)}function ZDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function $De(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,4,l,ePe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ePe(){return 1160}function tPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=rPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=nPe(l,f)|0,C=c,l|0}function rPe(s){return s=s|0,(n[(hR()|0)+24>>2]|0)+(s*12|0)|0}function nPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),GG(_0[c&31](s)|0)|0}function GG(s){return s=s|0,s&1|0}function iPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sPe(s,c,d,0),C=f}function sPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=gR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=oPe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,aPe(m,f)|0,f),C=d}function gR(){var s=0,l=0;if(o[7656]|0||(YG(9304),pr(28,9304,U|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9304)|0)){s=9304,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));YG(9304)}return 9304}function oPe(s){return s=s|0,0}function aPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=gR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],WG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lPe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function WG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cPe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,uPe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],WG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,APe(s,k),fPe(k),C=M;return}}function cPe(s){return s=s|0,357913941}function uPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function APe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function YG(s){s=s|0,gPe(s)}function pPe(s){s=s|0,hPe(s+24|0)}function hPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function gPe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,5,l,dPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dPe(){return 1164}function mPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=yPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],EPe(l,d,c),C=f}function yPe(s){return s=s|0,(n[(gR()|0)+24>>2]|0)+(s*12|0)|0}function EPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),bp(d,c),c=xp(d,c)|0,tf[f&31](s,c),kp(d),C=m}function bp(s,l){s=s|0,l=l|0,CPe(s,l)}function xp(s,l){return s=s|0,l=l|0,s|0}function kp(s){s=s|0,bu(s)}function CPe(s,l){s=s|0,l=l|0,dR(s,l)}function dR(s,l){s=s|0,l=l|0,n[s>>2]=l}function IPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wPe(s,c,d,0),C=f}function wPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=mR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=BPe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,vPe(m,f)|0,f),C=d}function mR(){var s=0,l=0;if(o[7664]|0||(VG(9340),pr(29,9340,U|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9340)|0)){s=9340,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));VG(9340)}return 9340}function BPe(s){return s=s|0,0}function vPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=mR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],KG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(DPe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function KG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function DPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=PPe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,SPe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],KG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,bPe(s,k),xPe(k),C=M;return}}function PPe(s){return s=s|0,357913941}function SPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function bPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function xPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function VG(s){s=s|0,FPe(s)}function kPe(s){s=s|0,QPe(s+24|0)}function QPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function FPe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,4,l,RPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function RPe(){return 1180}function TPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=NPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=LPe(l,d,c)|0,C=f,c|0}function NPe(s){return s=s|0,(n[(mR()|0)+24>>2]|0)+(s*12|0)|0}function LPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),F0(d,c),d=R0(d,c)|0,d=FD(pT[f&15](s,d)|0)|0,C=m,d|0}function F0(s,l){s=s|0,l=l|0}function R0(s,l){return s=s|0,l=l|0,OPe(l)|0}function FD(s){return s=s|0,s|0}function OPe(s){return s=s|0,s|0}function MPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],UPe(s,c,d,0),C=f}function UPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=yR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=_Pe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,HPe(m,f)|0,f),C=d}function yR(){var s=0,l=0;if(o[7672]|0||(zG(9376),pr(30,9376,U|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9376)|0)){s=9376,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));zG(9376)}return 9376}function _Pe(s){return s=s|0,0}function HPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=yR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],JG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(qPe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function JG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function qPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=jPe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,GPe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],JG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,WPe(s,k),YPe(k),C=M;return}}function jPe(s){return s=s|0,357913941}function GPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function WPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function YPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function zG(s){s=s|0,JPe(s)}function KPe(s){s=s|0,VPe(s+24|0)}function VPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function JPe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,5,l,XG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function XG(){return 1196}function zPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=XPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=ZPe(l,f)|0,C=c,l|0}function XPe(s){return s=s|0,(n[(yR()|0)+24>>2]|0)+(s*12|0)|0}function ZPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),FD(_0[c&31](s)|0)|0}function $Pe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],eSe(s,c,d,1),C=f}function eSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=ER()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=tSe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,rSe(m,f)|0,f),C=d}function ER(){var s=0,l=0;if(o[7680]|0||($G(9412),pr(31,9412,U|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9412)|0)){s=9412,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));$G(9412)}return 9412}function tSe(s){return s=s|0,0}function rSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=ER()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],ZG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(nSe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function ZG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function nSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=iSe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,sSe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],ZG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,oSe(s,k),aSe(k),C=M;return}}function iSe(s){return s=s|0,357913941}function sSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function oSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function aSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function $G(s){s=s|0,uSe(s)}function lSe(s){s=s|0,cSe(s+24|0)}function cSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function uSe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,6,l,e9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function e9(){return 1200}function ASe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=fSe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=pSe(l,f)|0,C=c,l|0}function fSe(s){return s=s|0,(n[(ER()|0)+24>>2]|0)+(s*12|0)|0}function pSe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),RD(_0[c&31](s)|0)|0}function RD(s){return s=s|0,s|0}function hSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],gSe(s,c,d,0),C=f}function gSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=CR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=dSe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,mSe(m,f)|0,f),C=d}function CR(){var s=0,l=0;if(o[7688]|0||(r9(9448),pr(32,9448,U|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9448)|0)){s=9448,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));r9(9448)}return 9448}function dSe(s){return s=s|0,0}function mSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=CR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],t9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(ySe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function t9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function ySe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=ESe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,CSe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],t9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,ISe(s,k),wSe(k),C=M;return}}function ESe(s){return s=s|0,357913941}function CSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ISe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function wSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function r9(s){s=s|0,DSe(s)}function BSe(s){s=s|0,vSe(s+24|0)}function vSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function DSe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,6,l,n9()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function n9(){return 1204}function PSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=SSe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bSe(l,d,c),C=f}function SSe(s){return s=s|0,(n[(CR()|0)+24>>2]|0)+(s*12|0)|0}function bSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),IR(d,c),d=wR(d,c)|0,tf[f&31](s,d),C=m}function IR(s,l){s=s|0,l=l|0}function wR(s,l){return s=s|0,l=l|0,xSe(l)|0}function xSe(s){return s=s|0,s|0}function kSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],QSe(s,c,d,0),C=f}function QSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=BR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=FSe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,RSe(m,f)|0,f),C=d}function BR(){var s=0,l=0;if(o[7696]|0||(s9(9484),pr(33,9484,U|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9484)|0)){s=9484,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s9(9484)}return 9484}function FSe(s){return s=s|0,0}function RSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=BR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],i9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(TSe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function i9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function TSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=NSe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,LSe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],i9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,OSe(s,k),MSe(k),C=M;return}}function NSe(s){return s=s|0,357913941}function LSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function OSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function MSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function s9(s){s=s|0,HSe(s)}function USe(s){s=s|0,_Se(s+24|0)}function _Se(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function HSe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,1,l,qSe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qSe(){return 1212}function jSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=GSe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],WSe(l,m,c,f),C=d}function GSe(s){return s=s|0,(n[(BR()|0)+24>>2]|0)+(s*12|0)|0}function WSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),IR(m,c),m=wR(m,c)|0,F0(B,f),B=R0(B,f)|0,sw[d&15](s,m,B),C=k}function YSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],KSe(s,c,d,1),C=f}function KSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=vR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=VSe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,JSe(m,f)|0,f),C=d}function vR(){var s=0,l=0;if(o[7704]|0||(a9(9520),pr(34,9520,U|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9520)|0)){s=9520,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));a9(9520)}return 9520}function VSe(s){return s=s|0,0}function JSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=vR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],o9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(zSe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function o9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function zSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=XSe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,ZSe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],o9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,$Se(s,k),ebe(k),C=M;return}}function XSe(s){return s=s|0,357913941}function ZSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function $Se(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function ebe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function a9(s){s=s|0,nbe(s)}function tbe(s){s=s|0,rbe(s+24|0)}function rbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function nbe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,1,l,ibe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ibe(){return 1224}function sbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;return d=C,C=C+16|0,m=d+8|0,B=d,k=obe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],f=+abe(l,m,c),C=d,+f}function obe(s){return s=s|0,(n[(vR()|0)+24>>2]|0)+(s*12|0)|0}function abe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,B=+Ru(+iW[f&7](s,d)),C=m,+B}function lbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],cbe(s,c,d,1),C=f}function cbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=DR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=ube(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Abe(m,f)|0,f),C=d}function DR(){var s=0,l=0;if(o[7712]|0||(c9(9556),pr(35,9556,U|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9556)|0)){s=9556,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));c9(9556)}return 9556}function ube(s){return s=s|0,0}function Abe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=DR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],l9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(fbe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function l9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function fbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=pbe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,hbe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],l9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,gbe(s,k),dbe(k),C=M;return}}function pbe(s){return s=s|0,357913941}function hbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function gbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function dbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function c9(s){s=s|0,Ebe(s)}function mbe(s){s=s|0,ybe(s+24|0)}function ybe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Ebe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,5,l,Cbe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Cbe(){return 1232}function Ibe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=wbe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=+Bbe(l,d),C=f,+c}function wbe(s){return s=s|0,(n[(DR()|0)+24>>2]|0)+(s*12|0)|0}function Bbe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),+ +Ru(+nW[c&15](s))}function vbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Dbe(s,c,d,1),C=f}function Dbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=PR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Pbe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Sbe(m,f)|0,f),C=d}function PR(){var s=0,l=0;if(o[7720]|0||(A9(9592),pr(36,9592,U|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9592)|0)){s=9592,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));A9(9592)}return 9592}function Pbe(s){return s=s|0,0}function Sbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=PR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],u9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(bbe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function u9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function bbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=xbe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,kbe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],u9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,Qbe(s,k),Fbe(k),C=M;return}}function xbe(s){return s=s|0,357913941}function kbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Qbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Fbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function A9(s){s=s|0,Nbe(s)}function Rbe(s){s=s|0,Tbe(s+24|0)}function Tbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Nbe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,7,l,Lbe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Lbe(){return 1276}function Obe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=Mbe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Ube(l,f)|0,C=c,l|0}function Mbe(s){return s=s|0,(n[(PR()|0)+24>>2]|0)+(s*12|0)|0}function Ube(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+16|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=f9(f)|0,C=d,f|0}function f9(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=cR(p9()|0)|0,f?(uR(l,f),AR(c,l),_be(s,c),s=fR(l)|0):s=Hbe(s)|0,C=d,s|0}function p9(){var s=0;return o[7736]|0||(Xbe(9640),pr(25,9640,U|0)|0,s=7736,n[s>>2]=1,n[s+4>>2]=0),9640}function _be(s,l){s=s|0,l=l|0,Wbe(l,s,s+8|0)|0}function Hbe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Za(8)|0,l=f,k=Yt(16)|0,n[k>>2]=n[s>>2],n[k+4>>2]=n[s+4>>2],n[k+8>>2]=n[s+8>>2],n[k+12>>2]=n[s+12>>2],m=l+4|0,n[m>>2]=k,s=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],SR(s,m,d),n[f>>2]=s,C=c,l|0}function SR(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Yt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1244,n[c+12>>2]=l,n[s+4>>2]=c}function qbe(s){s=s|0,im(s),yt(s)}function jbe(s){s=s|0,s=n[s+12>>2]|0,s|0&&yt(s)}function Gbe(s){s=s|0,yt(s)}function Wbe(s,l,c){return s=s|0,l=l|0,c=c|0,l=Ybe(n[s>>2]|0,l,c)|0,c=s+4|0,n[(n[c>>2]|0)+8>>2]=l,n[(n[c>>2]|0)+8>>2]|0}function Ybe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return f=C,C=C+16|0,d=f,$a(d),s=ys(s)|0,c=Kbe(s,n[l>>2]|0,+E[c>>3])|0,el(d),C=f,c|0}function Kbe(s,l,c){s=s|0,l=l|0,c=+c;var f=0;return f=jo(Vbe()|0)|0,l=Xd(l)|0,pc(0,f|0,s|0,l|0,+ +ma(c))|0}function Vbe(){var s=0;return o[7728]|0||(Jbe(9628),s=7728,n[s>>2]=1,n[s+4>>2]=0),9628}function Jbe(s){s=s|0,ao(s,zbe()|0,2)}function zbe(){return 1264}function Xbe(s){s=s|0,Sp(s)}function Zbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$be(s,c,d,1),C=f}function $be(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=bR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=exe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,txe(m,f)|0,f),C=d}function bR(){var s=0,l=0;if(o[7744]|0||(g9(9684),pr(37,9684,U|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9684)|0)){s=9684,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));g9(9684)}return 9684}function exe(s){return s=s|0,0}function txe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=bR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],h9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(rxe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function h9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function rxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=nxe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,ixe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],h9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,sxe(s,k),oxe(k),C=M;return}}function nxe(s){return s=s|0,357913941}function ixe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function sxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function oxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function g9(s){s=s|0,cxe(s)}function axe(s){s=s|0,lxe(s+24|0)}function lxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function cxe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,5,l,uxe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function uxe(){return 1280}function Axe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=fxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=pxe(l,d,c)|0,C=f,c|0}function fxe(s){return s=s|0,(n[(bR()|0)+24>>2]|0)+(s*12|0)|0}function pxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return B=C,C=C+32|0,d=B,m=B+16|0,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(m,c),m=ZA(m,c)|0,sw[f&15](d,s,m),m=f9(d)|0,C=B,m|0}function hxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],gxe(s,c,d,1),C=f}function gxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=xR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=dxe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,mxe(m,f)|0,f),C=d}function xR(){var s=0,l=0;if(o[7752]|0||(m9(9720),pr(38,9720,U|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9720)|0)){s=9720,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));m9(9720)}return 9720}function dxe(s){return s=s|0,0}function mxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=xR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],d9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(yxe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function d9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function yxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Exe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,Cxe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],d9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,Ixe(s,k),wxe(k),C=M;return}}function Exe(s){return s=s|0,357913941}function Cxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Ixe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function wxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function m9(s){s=s|0,Dxe(s)}function Bxe(s){s=s|0,vxe(s+24|0)}function vxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Dxe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,8,l,Pxe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Pxe(){return 1288}function Sxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=bxe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=xxe(l,f)|0,C=c,l|0}function bxe(s){return s=s|0,(n[(xR()|0)+24>>2]|0)+(s*12|0)|0}function xxe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),k0(_0[c&31](s)|0)|0}function kxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Qxe(s,c,d,0),C=f}function Qxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=kR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Fxe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Rxe(m,f)|0,f),C=d}function kR(){var s=0,l=0;if(o[7760]|0||(E9(9756),pr(39,9756,U|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9756)|0)){s=9756,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));E9(9756)}return 9756}function Fxe(s){return s=s|0,0}function Rxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=kR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],y9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Txe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function y9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Txe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Nxe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,Lxe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],y9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,Oxe(s,k),Mxe(k),C=M;return}}function Nxe(s){return s=s|0,357913941}function Lxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Oxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Mxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function E9(s){s=s|0,Hxe(s)}function Uxe(s){s=s|0,_xe(s+24|0)}function _xe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Hxe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,8,l,qxe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qxe(){return 1292}function jxe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Gxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Wxe(l,d,c),C=f}function Gxe(s){return s=s|0,(n[(kR()|0)+24>>2]|0)+(s*12|0)|0}function Wxe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Tu(d,c),c=+Nu(d,c),eW[f&31](s,c),C=m}function Yxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Kxe(s,c,d,0),C=f}function Kxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=QR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Vxe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Jxe(m,f)|0,f),C=d}function QR(){var s=0,l=0;if(o[7768]|0||(I9(9792),pr(40,9792,U|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9792)|0)){s=9792,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));I9(9792)}return 9792}function Vxe(s){return s=s|0,0}function Jxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=QR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],C9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(zxe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function C9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function zxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Xxe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,Zxe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],C9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,$xe(s,k),eke(k),C=M;return}}function Xxe(s){return s=s|0,357913941}function Zxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function $xe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function eke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function I9(s){s=s|0,nke(s)}function tke(s){s=s|0,rke(s+24|0)}function rke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function nke(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,1,l,ike()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ike(){return 1300}function ske(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=oke(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],ake(l,m,c,f),C=d}function oke(s){return s=s|0,(n[(QR()|0)+24>>2]|0)+(s*12|0)|0}function ake(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,Tu(B,f),f=+Nu(B,f),lW[d&15](s,m,f),C=k}function lke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],cke(s,c,d,0),C=f}function cke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=FR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=uke(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Ake(m,f)|0,f),C=d}function FR(){var s=0,l=0;if(o[7776]|0||(B9(9828),pr(41,9828,U|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9828)|0)){s=9828,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));B9(9828)}return 9828}function uke(s){return s=s|0,0}function Ake(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=FR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],w9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(fke(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function w9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function fke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=pke(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,hke(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],w9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,gke(s,k),dke(k),C=M;return}}function pke(s){return s=s|0,357913941}function hke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function gke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function dke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function B9(s){s=s|0,Eke(s)}function mke(s){s=s|0,yke(s+24|0)}function yke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Eke(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,7,l,Cke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Cke(){return 1312}function Ike(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=wke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Bke(l,d,c),C=f}function wke(s){return s=s|0,(n[(FR()|0)+24>>2]|0)+(s*12|0)|0}function Bke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,tf[f&31](s,d),C=m}function vke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Dke(s,c,d,0),C=f}function Dke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=RR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Pke(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Ske(m,f)|0,f),C=d}function RR(){var s=0,l=0;if(o[7784]|0||(D9(9864),pr(42,9864,U|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9864)|0)){s=9864,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));D9(9864)}return 9864}function Pke(s){return s=s|0,0}function Ske(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=RR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],v9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(bke(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function v9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function bke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=xke(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,kke(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],v9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,Qke(s,k),Fke(k),C=M;return}}function xke(s){return s=s|0,357913941}function kke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Qke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Fke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function D9(s){s=s|0,Nke(s)}function Rke(s){s=s|0,Tke(s+24|0)}function Tke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Nke(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,8,l,Lke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Lke(){return 1320}function Oke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Mke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Uke(l,d,c),C=f}function Mke(s){return s=s|0,(n[(RR()|0)+24>>2]|0)+(s*12|0)|0}function Uke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),_ke(d,c),d=Hke(d,c)|0,tf[f&31](s,d),C=m}function _ke(s,l){s=s|0,l=l|0}function Hke(s,l){return s=s|0,l=l|0,qke(l)|0}function qke(s){return s=s|0,s|0}function jke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Gke(s,c,d,0),C=f}function Gke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=TR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Wke(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Yke(m,f)|0,f),C=d}function TR(){var s=0,l=0;if(o[7792]|0||(S9(9900),pr(43,9900,U|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9900)|0)){s=9900,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));S9(9900)}return 9900}function Wke(s){return s=s|0,0}function Yke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=TR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],P9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Kke(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function P9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Kke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Vke(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,Jke(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],P9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,zke(s,k),Xke(k),C=M;return}}function Vke(s){return s=s|0,357913941}function Jke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function zke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Xke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function S9(s){s=s|0,eQe(s)}function Zke(s){s=s|0,$ke(s+24|0)}function $ke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function eQe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,22,l,tQe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function tQe(){return 1344}function rQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;c=C,C=C+16|0,f=c+8|0,d=c,m=nQe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],iQe(l,f),C=c}function nQe(s){return s=s|0,(n[(TR()|0)+24>>2]|0)+(s*12|0)|0}function iQe(s,l){s=s|0,l=l|0;var c=0;c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),ef[c&127](s)}function sQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=NR()|0,s=oQe(c)|0,yn(m,l,d,s,aQe(c,f)|0,f)}function NR(){var s=0,l=0;if(o[7800]|0||(x9(9936),pr(44,9936,U|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9936)|0)){s=9936,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));x9(9936)}return 9936}function oQe(s){return s=s|0,s|0}function aQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=NR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(b9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(lQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function b9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function lQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=cQe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,uQe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,b9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,AQe(s,d),fQe(d),C=k;return}}function cQe(s){return s=s|0,536870911}function uQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function AQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function x9(s){s=s|0,gQe(s)}function pQe(s){s=s|0,hQe(s+24|0)}function hQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function gQe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,23,l,n9()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dQe(s,l){s=s|0,l=l|0,yQe(n[(mQe(s)|0)>>2]|0,l)}function mQe(s){return s=s|0,(n[(NR()|0)+24>>2]|0)+(s<<3)|0}function yQe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,IR(f,l),l=wR(f,l)|0,ef[s&127](l),C=c}function EQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=LR()|0,s=CQe(c)|0,yn(m,l,d,s,IQe(c,f)|0,f)}function LR(){var s=0,l=0;if(o[7808]|0||(Q9(9972),pr(45,9972,U|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9972)|0)){s=9972,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Q9(9972)}return 9972}function CQe(s){return s=s|0,s|0}function IQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=LR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(k9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(wQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function k9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function wQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=BQe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,vQe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,k9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,DQe(s,d),PQe(d),C=k;return}}function BQe(s){return s=s|0,536870911}function vQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function DQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function Q9(s){s=s|0,xQe(s)}function SQe(s){s=s|0,bQe(s+24|0)}function bQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function xQe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,9,l,kQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function kQe(){return 1348}function QQe(s,l){return s=s|0,l=l|0,RQe(n[(FQe(s)|0)>>2]|0,l)|0}function FQe(s){return s=s|0,(n[(LR()|0)+24>>2]|0)+(s<<3)|0}function RQe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,F9(f,l),l=R9(f,l)|0,l=FD(_0[s&31](l)|0)|0,C=c,l|0}function F9(s,l){s=s|0,l=l|0}function R9(s,l){return s=s|0,l=l|0,TQe(l)|0}function TQe(s){return s=s|0,s|0}function NQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=OR()|0,s=LQe(c)|0,yn(m,l,d,s,OQe(c,f)|0,f)}function OR(){var s=0,l=0;if(o[7816]|0||(N9(10008),pr(46,10008,U|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10008)|0)){s=10008,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));N9(10008)}return 10008}function LQe(s){return s=s|0,s|0}function OQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=OR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(T9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(MQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function T9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function MQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=UQe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,_Qe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,T9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,HQe(s,d),qQe(d),C=k;return}}function UQe(s){return s=s|0,536870911}function _Qe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function HQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function qQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function N9(s){s=s|0,WQe(s)}function jQe(s){s=s|0,GQe(s+24|0)}function GQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function WQe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,15,l,XG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function YQe(s){return s=s|0,VQe(n[(KQe(s)|0)>>2]|0)|0}function KQe(s){return s=s|0,(n[(OR()|0)+24>>2]|0)+(s<<3)|0}function VQe(s){return s=s|0,FD(KD[s&7]()|0)|0}function JQe(){var s=0;return o[7832]|0||(nFe(10052),pr(25,10052,U|0)|0,s=7832,n[s>>2]=1,n[s+4>>2]=0),10052}function zQe(s,l){s=s|0,l=l|0,n[s>>2]=XQe()|0,n[s+4>>2]=ZQe()|0,n[s+12>>2]=l,n[s+8>>2]=$Qe()|0,n[s+32>>2]=2}function XQe(){return 11709}function ZQe(){return 1188}function $Qe(){return TD()|0}function eFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(tFe(c),yt(c)):l|0&&(Hd(l),yt(l))}function Qp(s,l){return s=s|0,l=l|0,l&s|0}function tFe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function TD(){var s=0;return o[7824]|0||(n[2511]=rFe()|0,n[2512]=0,s=7824,n[s>>2]=1,n[s+4>>2]=0),10044}function rFe(){return 0}function nFe(s){s=s|0,Sp(s)}function iFe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0;l=C,C=C+32|0,c=l+24|0,m=l+16|0,d=l+8|0,f=l,sFe(s,4827),oFe(s,4834,3)|0,aFe(s,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],lFe(s,4841,c)|0,n[d>>2]=1,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],cFe(s,4871,c)|0,n[f>>2]=10,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],uFe(s,4891,c)|0,C=l}function sFe(s,l){s=s|0,l=l|0;var c=0;c=qRe()|0,n[s>>2]=c,jRe(c,l),Fp(n[s>>2]|0)}function oFe(s,l,c){return s=s|0,l=l|0,c=c|0,PRe(s,mn(l)|0,c,0),s|0}function aFe(s,l,c){return s=s|0,l=l|0,c=c|0,ARe(s,mn(l)|0,c,0),s|0}function lFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],YFe(s,l,d),C=f,s|0}function cFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],SFe(s,l,d),C=f,s|0}function uFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],AFe(s,l,d),C=f,s|0}function AFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],fFe(s,c,d,1),C=f}function fFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=MR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=pFe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,hFe(m,f)|0,f),C=d}function MR(){var s=0,l=0;if(o[7840]|0||(O9(10100),pr(48,10100,U|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10100)|0)){s=10100,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));O9(10100)}return 10100}function pFe(s){return s=s|0,0}function hFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=MR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],L9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(gFe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function L9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function gFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=dFe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,mFe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],L9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,yFe(s,k),EFe(k),C=M;return}}function dFe(s){return s=s|0,357913941}function mFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function yFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function EFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function O9(s){s=s|0,wFe(s)}function CFe(s){s=s|0,IFe(s+24|0)}function IFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function wFe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,6,l,BFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function BFe(){return 1364}function vFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=DFe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=PFe(l,d,c)|0,C=f,c|0}function DFe(s){return s=s|0,(n[(MR()|0)+24>>2]|0)+(s*12|0)|0}function PFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,d=GG(pT[f&15](s,d)|0)|0,C=m,d|0}function SFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bFe(s,c,d,0),C=f}function bFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=UR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=xFe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,kFe(m,f)|0,f),C=d}function UR(){var s=0,l=0;if(o[7848]|0||(U9(10136),pr(49,10136,U|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10136)|0)){s=10136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));U9(10136)}return 10136}function xFe(s){return s=s|0,0}function kFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=UR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],M9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(QFe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function M9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function QFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=FFe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,RFe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],M9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,TFe(s,k),NFe(k),C=M;return}}function FFe(s){return s=s|0,357913941}function RFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function TFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function NFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function U9(s){s=s|0,MFe(s)}function LFe(s){s=s|0,OFe(s+24|0)}function OFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function MFe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,9,l,UFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function UFe(){return 1372}function _Fe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=HFe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qFe(l,d,c),C=f}function HFe(s){return s=s|0,(n[(UR()|0)+24>>2]|0)+(s*12|0)|0}function qFe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=Ze;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),jFe(d,c),B=y(GFe(d,c)),$7[f&1](s,B),C=m}function jFe(s,l){s=s|0,l=+l}function GFe(s,l){return s=s|0,l=+l,y(WFe(l))}function WFe(s){return s=+s,y(s)}function YFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],KFe(s,c,d,0),C=f}function KFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=_R()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=VFe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,JFe(m,f)|0,f),C=d}function _R(){var s=0,l=0;if(o[7856]|0||(H9(10172),pr(50,10172,U|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10172)|0)){s=10172,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));H9(10172)}return 10172}function VFe(s){return s=s|0,0}function JFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=_R()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(zFe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function _9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function zFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=XFe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,ZFe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,$Fe(s,k),eRe(k),C=M;return}}function XFe(s){return s=s|0,357913941}function ZFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function $Fe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function eRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function H9(s){s=s|0,nRe(s)}function tRe(s){s=s|0,rRe(s+24|0)}function rRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function nRe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,3,l,iRe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function iRe(){return 1380}function sRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=oRe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],aRe(l,m,c,f),C=d}function oRe(s){return s=s|0,(n[(_R()|0)+24>>2]|0)+(s*12|0)|0}function aRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,lRe(B,f),B=cRe(B,f)|0,sw[d&15](s,m,B),C=k}function lRe(s,l){s=s|0,l=l|0}function cRe(s,l){return s=s|0,l=l|0,uRe(l)|0}function uRe(s){return s=s|0,(s|0)!=0|0}function ARe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=HR()|0,s=fRe(c)|0,yn(m,l,d,s,pRe(c,f)|0,f)}function HR(){var s=0,l=0;if(o[7864]|0||(j9(10208),pr(51,10208,U|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10208)|0)){s=10208,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));j9(10208)}return 10208}function fRe(s){return s=s|0,s|0}function pRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=HR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(q9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(hRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function q9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function hRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=gRe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,dRe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,q9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,mRe(s,d),yRe(d),C=k;return}}function gRe(s){return s=s|0,536870911}function dRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function mRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function yRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function j9(s){s=s|0,IRe(s)}function ERe(s){s=s|0,CRe(s+24|0)}function CRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function IRe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,24,l,wRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function wRe(){return 1392}function BRe(s,l){s=s|0,l=l|0,DRe(n[(vRe(s)|0)>>2]|0,l)}function vRe(s){return s=s|0,(n[(HR()|0)+24>>2]|0)+(s<<3)|0}function DRe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,F9(f,l),l=R9(f,l)|0,ef[s&127](l),C=c}function PRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=qR()|0,s=SRe(c)|0,yn(m,l,d,s,bRe(c,f)|0,f)}function qR(){var s=0,l=0;if(o[7872]|0||(W9(10244),pr(52,10244,U|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10244)|0)){s=10244,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));W9(10244)}return 10244}function SRe(s){return s=s|0,s|0}function bRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=qR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(G9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(xRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function G9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function xRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=kRe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,QRe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,G9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,FRe(s,d),RRe(d),C=k;return}}function kRe(s){return s=s|0,536870911}function QRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function FRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function RRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function W9(s){s=s|0,LRe(s)}function TRe(s){s=s|0,NRe(s+24|0)}function NRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function LRe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,16,l,ORe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ORe(){return 1400}function MRe(s){return s=s|0,_Re(n[(URe(s)|0)>>2]|0)|0}function URe(s){return s=s|0,(n[(qR()|0)+24>>2]|0)+(s<<3)|0}function _Re(s){return s=s|0,HRe(KD[s&7]()|0)|0}function HRe(s){return s=s|0,s|0}function qRe(){var s=0;return o[7880]|0||(JRe(10280),pr(25,10280,U|0)|0,s=7880,n[s>>2]=1,n[s+4>>2]=0),10280}function jRe(s,l){s=s|0,l=l|0,n[s>>2]=GRe()|0,n[s+4>>2]=WRe()|0,n[s+12>>2]=l,n[s+8>>2]=YRe()|0,n[s+32>>2]=4}function GRe(){return 11711}function WRe(){return 1356}function YRe(){return TD()|0}function KRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(VRe(c),yt(c)):l|0&&(C0(l),yt(l))}function VRe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function JRe(s){s=s|0,Sp(s)}function zRe(s){s=s|0,XRe(s,4920),ZRe(s)|0,$Re(s)|0}function XRe(s,l){s=s|0,l=l|0;var c=0;c=p9()|0,n[s>>2]=c,CTe(c,l),Fp(n[s>>2]|0)}function ZRe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,uTe()|0),s|0}function $Re(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,eTe()|0),s|0}function eTe(){var s=0;return o[7888]|0||(Y9(10328),pr(53,10328,U|0)|0,s=7888,n[s>>2]=1,n[s+4>>2]=0),Lr(10328)|0||Y9(10328),10328}function T0(s,l){s=s|0,l=l|0,yn(s,0,l,0,0,0)}function Y9(s){s=s|0,nTe(s),N0(s,10)}function tTe(s){s=s|0,rTe(s+24|0)}function rTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function nTe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,1,l,aTe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function iTe(s,l,c){s=s|0,l=l|0,c=+c,sTe(s,l,c)}function N0(s,l){s=s|0,l=l|0,n[s+20>>2]=l}function sTe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,m=f+8|0,k=f+13|0,d=f,B=f+12|0,XA(k,l),n[m>>2]=ZA(k,l)|0,Tu(B,c),E[d>>3]=+Nu(B,c),oTe(s,m,d),C=f}function oTe(s,l,c){s=s|0,l=l|0,c=c|0,Xa(s+8|0,n[l>>2]|0,+E[c>>3]),o[s+24>>0]=1}function aTe(){return 1404}function lTe(s,l){return s=s|0,l=+l,cTe(s,l)|0}function cTe(s,l){s=s|0,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return f=C,C=C+16|0,m=f+4|0,B=f+8|0,k=f,d=Za(8)|0,c=d,F=Yt(16)|0,XA(m,s),s=ZA(m,s)|0,Tu(B,l),Xa(F,s,+Nu(B,l)),B=c+4|0,n[B>>2]=F,s=Yt(8)|0,B=n[B>>2]|0,n[k>>2]=0,n[m>>2]=n[k>>2],SR(s,B,m),n[d>>2]=s,C=f,c|0}function uTe(){var s=0;return o[7896]|0||(K9(10364),pr(54,10364,U|0)|0,s=7896,n[s>>2]=1,n[s+4>>2]=0),Lr(10364)|0||K9(10364),10364}function K9(s){s=s|0,pTe(s),N0(s,55)}function ATe(s){s=s|0,fTe(s+24|0)}function fTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function pTe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,4,l,mTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function hTe(s){s=s|0,gTe(s)}function gTe(s){s=s|0,dTe(s)}function dTe(s){s=s|0,V9(s+8|0),o[s+24>>0]=1}function V9(s){s=s|0,n[s>>2]=0,E[s+8>>3]=0}function mTe(){return 1424}function yTe(){return ETe()|0}function ETe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Za(8)|0,s=c,f=Yt(16)|0,V9(f),m=s+4|0,n[m>>2]=f,f=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],SR(f,m,d),n[c>>2]=f,C=l,s|0}function CTe(s,l){s=s|0,l=l|0,n[s>>2]=ITe()|0,n[s+4>>2]=wTe()|0,n[s+12>>2]=l,n[s+8>>2]=BTe()|0,n[s+32>>2]=5}function ITe(){return 11710}function wTe(){return 1416}function BTe(){return ND()|0}function vTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(DTe(c),yt(c)):l|0&&yt(l)}function DTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function ND(){var s=0;return o[7904]|0||(n[2600]=PTe()|0,n[2601]=0,s=7904,n[s>>2]=1,n[s+4>>2]=0),10400}function PTe(){return n[357]|0}function STe(s){s=s|0,bTe(s,4926),xTe(s)|0}function bTe(s,l){s=s|0,l=l|0;var c=0;c=LG()|0,n[s>>2]=c,_Te(c,l),Fp(n[s>>2]|0)}function xTe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,kTe()|0),s|0}function kTe(){var s=0;return o[7912]|0||(J9(10412),pr(56,10412,U|0)|0,s=7912,n[s>>2]=1,n[s+4>>2]=0),Lr(10412)|0||J9(10412),10412}function J9(s){s=s|0,RTe(s),N0(s,57)}function QTe(s){s=s|0,FTe(s+24|0)}function FTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function RTe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,5,l,OTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function TTe(s){s=s|0,NTe(s)}function NTe(s){s=s|0,LTe(s)}function LTe(s){s=s|0;var l=0,c=0;l=s+8|0,c=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(c|0));o[s+56>>0]=1}function OTe(){return 1432}function MTe(){return UTe()|0}function UTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0;B=C,C=C+16|0,s=B+4|0,l=B,c=Za(8)|0,f=c,d=Yt(48)|0,m=d,k=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(k|0));return m=f+4|0,n[m>>2]=d,k=Yt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[s>>2]=n[l>>2],OG(k,m,s),n[c>>2]=k,C=B,f|0}function _Te(s,l){s=s|0,l=l|0,n[s>>2]=HTe()|0,n[s+4>>2]=qTe()|0,n[s+12>>2]=l,n[s+8>>2]=jTe()|0,n[s+32>>2]=6}function HTe(){return 11704}function qTe(){return 1436}function jTe(){return ND()|0}function GTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(WTe(c),yt(c)):l|0&&yt(l)}function WTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function YTe(s){s=s|0,KTe(s,4933),VTe(s)|0,JTe(s)|0}function KTe(s,l){s=s|0,l=l|0;var c=0;c=ENe()|0,n[s>>2]=c,CNe(c,l),Fp(n[s>>2]|0)}function VTe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,cNe()|0),s|0}function JTe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,zTe()|0),s|0}function zTe(){var s=0;return o[7920]|0||(z9(10452),pr(58,10452,U|0)|0,s=7920,n[s>>2]=1,n[s+4>>2]=0),Lr(10452)|0||z9(10452),10452}function z9(s){s=s|0,$Te(s),N0(s,1)}function XTe(s){s=s|0,ZTe(s+24|0)}function ZTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function $Te(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,1,l,nNe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function eNe(s,l,c){s=s|0,l=+l,c=+c,tNe(s,l,c)}function tNe(s,l,c){s=s|0,l=+l,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,m=f+8|0,k=f+17|0,d=f,B=f+16|0,Tu(k,l),E[m>>3]=+Nu(k,l),Tu(B,c),E[d>>3]=+Nu(B,c),rNe(s,m,d),C=f}function rNe(s,l,c){s=s|0,l=l|0,c=c|0,X9(s+8|0,+E[l>>3],+E[c>>3]),o[s+24>>0]=1}function X9(s,l,c){s=s|0,l=+l,c=+c,E[s>>3]=l,E[s+8>>3]=c}function nNe(){return 1472}function iNe(s,l){return s=+s,l=+l,sNe(s,l)|0}function sNe(s,l){s=+s,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return f=C,C=C+16|0,B=f+4|0,k=f+8|0,F=f,d=Za(8)|0,c=d,m=Yt(16)|0,Tu(B,s),s=+Nu(B,s),Tu(k,l),X9(m,s,+Nu(k,l)),k=c+4|0,n[k>>2]=m,m=Yt(8)|0,k=n[k>>2]|0,n[F>>2]=0,n[B>>2]=n[F>>2],Z9(m,k,B),n[d>>2]=m,C=f,c|0}function Z9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Yt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1452,n[c+12>>2]=l,n[s+4>>2]=c}function oNe(s){s=s|0,im(s),yt(s)}function aNe(s){s=s|0,s=n[s+12>>2]|0,s|0&&yt(s)}function lNe(s){s=s|0,yt(s)}function cNe(){var s=0;return o[7928]|0||($9(10488),pr(59,10488,U|0)|0,s=7928,n[s>>2]=1,n[s+4>>2]=0),Lr(10488)|0||$9(10488),10488}function $9(s){s=s|0,fNe(s),N0(s,60)}function uNe(s){s=s|0,ANe(s+24|0)}function ANe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function fNe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,6,l,dNe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pNe(s){s=s|0,hNe(s)}function hNe(s){s=s|0,gNe(s)}function gNe(s){s=s|0,e7(s+8|0),o[s+24>>0]=1}function e7(s){s=s|0,n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0}function dNe(){return 1492}function mNe(){return yNe()|0}function yNe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Za(8)|0,s=c,f=Yt(16)|0,e7(f),m=s+4|0,n[m>>2]=f,f=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],Z9(f,m,d),n[c>>2]=f,C=l,s|0}function ENe(){var s=0;return o[7936]|0||(PNe(10524),pr(25,10524,U|0)|0,s=7936,n[s>>2]=1,n[s+4>>2]=0),10524}function CNe(s,l){s=s|0,l=l|0,n[s>>2]=INe()|0,n[s+4>>2]=wNe()|0,n[s+12>>2]=l,n[s+8>>2]=BNe()|0,n[s+32>>2]=7}function INe(){return 11700}function wNe(){return 1484}function BNe(){return ND()|0}function vNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(DNe(c),yt(c)):l|0&&yt(l)}function DNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function PNe(s){s=s|0,Sp(s)}function SNe(s,l,c){s=s|0,l=l|0,c=c|0,s=mn(l)|0,l=bNe(c)|0,c=xNe(c,0)|0,sLe(s,l,c,jR()|0,0)}function bNe(s){return s=s|0,s|0}function xNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=jR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(r7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(LNe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function jR(){var s=0,l=0;if(o[7944]|0||(t7(10568),pr(61,10568,U|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10568)|0)){s=10568,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t7(10568)}return 10568}function t7(s){s=s|0,FNe(s)}function kNe(s){s=s|0,QNe(s+24|0)}function QNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function FNe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,17,l,e9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function RNe(s){return s=s|0,NNe(n[(TNe(s)|0)>>2]|0)|0}function TNe(s){return s=s|0,(n[(jR()|0)+24>>2]|0)+(s<<3)|0}function NNe(s){return s=s|0,RD(KD[s&7]()|0)|0}function r7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function LNe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=ONe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,MNe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,r7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,UNe(s,d),_Ne(d),C=k;return}}function ONe(s){return s=s|0,536870911}function MNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function UNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function _Ne(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function HNe(){qNe()}function qNe(){jNe(10604)}function jNe(s){s=s|0,GNe(s,4955)}function GNe(s,l){s=s|0,l=l|0;var c=0;c=WNe()|0,n[s>>2]=c,YNe(c,l),Fp(n[s>>2]|0)}function WNe(){var s=0;return o[7952]|0||(tLe(10612),pr(25,10612,U|0)|0,s=7952,n[s>>2]=1,n[s+4>>2]=0),10612}function YNe(s,l){s=s|0,l=l|0,n[s>>2]=zNe()|0,n[s+4>>2]=XNe()|0,n[s+12>>2]=l,n[s+8>>2]=ZNe()|0,n[s+32>>2]=8}function Fp(s){s=s|0;var l=0,c=0;l=C,C=C+16|0,c=l,$d()|0,n[c>>2]=s,KNe(10608,c),C=l}function $d(){return o[11714]|0||(n[2652]=0,pr(62,10608,U|0)|0,o[11714]=1),10608}function KNe(s,l){s=s|0,l=l|0;var c=0;c=Yt(8)|0,n[c+4>>2]=n[l>>2],n[c>>2]=n[s>>2],n[s>>2]=c}function VNe(s){s=s|0,JNe(s)}function JNe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,yt(c);while(l|0);n[s>>2]=0}function zNe(){return 11715}function XNe(){return 1496}function ZNe(){return TD()|0}function $Ne(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(eLe(c),yt(c)):l|0&&yt(l)}function eLe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function tLe(s){s=s|0,Sp(s)}function rLe(s,l){s=s|0,l=l|0;var c=0,f=0;$d()|0,c=n[2652]|0;e:do if(c|0){for(;f=n[c+4>>2]|0,!(f|0&&!(O7(GR(f)|0,s)|0));)if(c=n[c>>2]|0,!c)break e;nLe(f,l)}while(!1)}function GR(s){return s=s|0,n[s+12>>2]|0}function nLe(s,l){s=s|0,l=l|0;var c=0;s=s+36|0,c=n[s>>2]|0,c|0&&(bu(c),yt(c)),c=Yt(4)|0,PD(c,l),n[s>>2]=c}function WR(){return o[11716]|0||(n[2664]=0,pr(63,10656,U|0)|0,o[11716]=1),10656}function n7(){var s=0;return o[11717]|0?s=n[2665]|0:(iLe(),n[2665]=1504,o[11717]=1,s=1504),s|0}function iLe(){o[11740]|0||(o[11718]=dr(dr(8,0)|0,0)|0,o[11719]=dr(dr(0,0)|0,0)|0,o[11720]=dr(dr(0,16)|0,0)|0,o[11721]=dr(dr(8,0)|0,0)|0,o[11722]=dr(dr(0,0)|0,0)|0,o[11723]=dr(dr(8,0)|0,0)|0,o[11724]=dr(dr(0,0)|0,0)|0,o[11725]=dr(dr(8,0)|0,0)|0,o[11726]=dr(dr(0,0)|0,0)|0,o[11727]=dr(dr(8,0)|0,0)|0,o[11728]=dr(dr(0,0)|0,0)|0,o[11729]=dr(dr(0,0)|0,32)|0,o[11730]=dr(dr(0,0)|0,32)|0,o[11740]=1)}function i7(){return 1572}function sLe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0,O=0;m=C,C=C+32|0,O=m+16|0,M=m+12|0,F=m+8|0,k=m+4|0,B=m,n[O>>2]=s,n[M>>2]=l,n[F>>2]=c,n[k>>2]=f,n[B>>2]=d,WR()|0,oLe(10656,O,M,F,k,B),C=m}function oLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0;B=Yt(24)|0,RG(B+4|0,n[l>>2]|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[s>>2],n[s>>2]=B}function s7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0,ct=0;if(ct=C,C=C+32|0,Oe=ct+20|0,Qe=ct+8|0,rt=ct+4|0,Xe=ct,l=n[l>>2]|0,l|0){We=Oe+4|0,F=Oe+8|0,M=Qe+4|0,O=Qe+8|0,j=Qe+8|0,oe=Oe+8|0;do{if(B=l+4|0,k=YR(B)|0,k|0){if(d=$I(k)|0,n[Oe>>2]=0,n[We>>2]=0,n[F>>2]=0,f=(ew(k)|0)+1|0,aLe(Oe,f),f|0)for(;f=f+-1|0,Tc(Qe,n[d>>2]|0),m=n[We>>2]|0,m>>>0<(n[oe>>2]|0)>>>0?(n[m>>2]=n[Qe>>2],n[We>>2]=(n[We>>2]|0)+4):KR(Oe,Qe),f;)d=d+4|0;f=tw(k)|0,n[Qe>>2]=0,n[M>>2]=0,n[O>>2]=0;e:do if(n[f>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?lLe(Qe,f):(n[d>>2]=n[f>>2],n[M>>2]=(n[M>>2]|0)+4),f=f+4|0,!(n[f>>2]|0))break e;d=n[M>>2]|0,m=n[j>>2]|0}while(!1);n[rt>>2]=LD(B)|0,n[Xe>>2]=Lr(k)|0,cLe(c,s,rt,Xe,Oe,Qe),VR(Qe),$A(Oe)}l=n[l>>2]|0}while(l|0)}C=ct}function YR(s){return s=s|0,n[s+12>>2]|0}function $I(s){return s=s|0,n[s+12>>2]|0}function ew(s){return s=s|0,n[s+16>>2]|0}function aLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=n[s>>2]|0,(n[s+8>>2]|0)-f>>2>>>0>>0&&(p7(c,l,(n[s+4>>2]|0)-f>>2,s+8|0),h7(s,c),g7(c)),C=d}function KR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=f7(s)|0,m>>>0>>0)Zr(s);else{k=n[s>>2]|0,M=(n[s+8>>2]|0)-k|0,F=M>>1,p7(c,M>>2>>>0>>1>>>0?F>>>0>>0?d:F:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,h7(s,c),g7(c),C=B;return}}function tw(s){return s=s|0,n[s+8>>2]|0}function lLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=A7(s)|0,m>>>0>>0)Zr(s);else{k=n[s>>2]|0,M=(n[s+8>>2]|0)-k|0,F=M>>1,bLe(c,M>>2>>>0>>1>>>0?F>>>0>>0?d:F:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,xLe(s,c),kLe(c),C=B;return}}function LD(s){return s=s|0,n[s>>2]|0}function cLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,uLe(s,l,c,f,d,m)}function VR(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),yt(c))}function $A(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),yt(c))}function uLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,F=0,M=0,O=0,j=0;B=C,C=C+48|0,O=B+40|0,k=B+32|0,j=B+24|0,F=B+12|0,M=B,$a(k),s=ys(s)|0,n[j>>2]=n[l>>2],c=n[c>>2]|0,f=n[f>>2]|0,JR(F,d),ALe(M,m),n[O>>2]=n[j>>2],fLe(s,O,c,f,F,M),VR(M),$A(F),el(k),C=B}function JR(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(PLe(s,f),SLe(s,n[l>>2]|0,n[c>>2]|0,f))}function ALe(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(vLe(s,f),DLe(s,n[l>>2]|0,n[c>>2]|0,f))}function fLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,F=0,M=0,O=0,j=0;B=C,C=C+32|0,O=B+28|0,j=B+24|0,k=B+12|0,F=B,M=jo(pLe()|0)|0,n[j>>2]=n[l>>2],n[O>>2]=n[j>>2],l=L0(O)|0,c=o7(c)|0,f=zR(f)|0,n[k>>2]=n[d>>2],O=d+4|0,n[k+4>>2]=n[O>>2],j=d+8|0,n[k+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[d>>2]=0,d=XR(k)|0,n[F>>2]=n[m>>2],O=m+4|0,n[F+4>>2]=n[O>>2],j=m+8|0,n[F+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[m>>2]=0,gc(0,M|0,s|0,l|0,c|0,f|0,d|0,hLe(F)|0)|0,VR(F),$A(k),C=B}function pLe(){var s=0;return o[7968]|0||(wLe(10708),s=7968,n[s>>2]=1,n[s+4>>2]=0),10708}function L0(s){return s=s|0,l7(s)|0}function o7(s){return s=s|0,a7(s)|0}function zR(s){return s=s|0,RD(s)|0}function XR(s){return s=s|0,dLe(s)|0}function hLe(s){return s=s|0,gLe(s)|0}function gLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Za(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=a7(n[(n[s>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function a7(s){return s=s|0,s|0}function dLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Za(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=l7((n[s>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function l7(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=cR(c7()|0)|0,f?(uR(l,f),AR(c,l),ZUe(s,c),s=fR(l)|0):s=mLe(s)|0,C=d,s|0}function c7(){var s=0;return o[7960]|0||(ILe(10664),pr(25,10664,U|0)|0,s=7960,n[s>>2]=1,n[s+4>>2]=0),10664}function mLe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Za(8)|0,l=f,k=Yt(4)|0,n[k>>2]=n[s>>2],m=l+4|0,n[m>>2]=k,s=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],u7(s,m,d),n[f>>2]=s,C=c,l|0}function u7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Yt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1656,n[c+12>>2]=l,n[s+4>>2]=c}function yLe(s){s=s|0,im(s),yt(s)}function ELe(s){s=s|0,s=n[s+12>>2]|0,s|0&&yt(s)}function CLe(s){s=s|0,yt(s)}function ILe(s){s=s|0,Sp(s)}function wLe(s){s=s|0,ao(s,BLe()|0,5)}function BLe(){return 1676}function vLe(s,l){s=s|0,l=l|0;var c=0;if((A7(s)|0)>>>0>>0&&Zr(s),l>>>0>1073741823)Tt();else{c=Yt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function DLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(xr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function A7(s){return s=s|0,1073741823}function PLe(s,l){s=s|0,l=l|0;var c=0;if((f7(s)|0)>>>0>>0&&Zr(s),l>>>0>1073741823)Tt();else{c=Yt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function SLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(xr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function f7(s){return s=s|0,1073741823}function bLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Yt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function xLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function kLe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&yt(s)}function p7(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Yt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function h7(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function g7(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&yt(s)}function QLe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0;if(Qe=C,C=C+32|0,O=Qe+20|0,j=Qe+12|0,M=Qe+16|0,oe=Qe+4|0,We=Qe,Oe=Qe+8|0,k=n7()|0,m=n[k>>2]|0,B=n[m>>2]|0,B|0)for(F=n[k+8>>2]|0,k=n[k+4>>2]|0;Tc(O,B),FLe(s,O,k,F),m=m+4|0,B=n[m>>2]|0,B;)F=F+1|0,k=k+1|0;if(m=i7()|0,B=n[m>>2]|0,B|0)do Tc(O,B),n[j>>2]=n[m+4>>2],RLe(l,O,j),m=m+8|0,B=n[m>>2]|0;while(B|0);if(m=n[($d()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,Tc(O,n[(em(l)|0)>>2]|0),n[j>>2]=GR(l)|0,TLe(c,O,j),m=n[m>>2]|0;while(m|0);if(Tc(M,0),m=WR()|0,n[O>>2]=n[M>>2],s7(O,m,d),m=n[($d()|0)>>2]|0,m|0){s=O+4|0,l=O+8|0,c=O+8|0;do{if(F=n[m+4>>2]|0,Tc(j,n[(em(F)|0)>>2]|0),NLe(oe,d7(F)|0),B=n[oe>>2]|0,B|0){n[O>>2]=0,n[s>>2]=0,n[l>>2]=0;do Tc(We,n[(em(n[B+4>>2]|0)|0)>>2]|0),k=n[s>>2]|0,k>>>0<(n[c>>2]|0)>>>0?(n[k>>2]=n[We>>2],n[s>>2]=(n[s>>2]|0)+4):KR(O,We),B=n[B>>2]|0;while(B|0);LLe(f,j,O),$A(O)}n[Oe>>2]=n[j>>2],M=m7(F)|0,n[O>>2]=n[Oe>>2],s7(O,M,d),UG(oe),m=n[m>>2]|0}while(m|0)}C=Qe}function FLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,VLe(s,l,c,f)}function RLe(s,l,c){s=s|0,l=l|0,c=c|0,KLe(s,l,c)}function em(s){return s=s|0,s|0}function TLe(s,l,c){s=s|0,l=l|0,c=c|0,jLe(s,l,c)}function d7(s){return s=s|0,s+16|0}function NLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;if(m=C,C=C+16|0,d=m+8|0,c=m,n[s>>2]=0,f=n[l>>2]|0,n[d>>2]=f,n[c>>2]=s,c=qLe(c)|0,f|0){if(f=Yt(12)|0,B=(y7(d)|0)+4|0,s=n[B+4>>2]|0,l=f+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=s,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)s=f;else for(l=f;s=Yt(12)|0,F=(y7(d)|0)+4|0,k=n[F+4>>2]|0,B=s+4|0,n[B>>2]=n[F>>2],n[B+4>>2]=k,n[l>>2]=s,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=s;n[s>>2]=n[c>>2],n[c>>2]=f}C=m}function LLe(s,l,c){s=s|0,l=l|0,c=c|0,OLe(s,l,c)}function m7(s){return s=s|0,s+24|0}function OLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+24|0,d=f+16|0,k=f+12|0,m=f,$a(d),s=ys(s)|0,n[k>>2]=n[l>>2],JR(m,c),n[B>>2]=n[k>>2],MLe(s,B,m),$A(m),el(d),C=f}function MLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+16|0,k=f+12|0,d=f,m=jo(ULe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=L0(B)|0,n[d>>2]=n[c>>2],B=c+4|0,n[d+4>>2]=n[B>>2],k=c+8|0,n[d+8>>2]=n[k>>2],n[k>>2]=0,n[B>>2]=0,n[c>>2]=0,hs(0,m|0,s|0,l|0,XR(d)|0)|0,$A(d),C=f}function ULe(){var s=0;return o[7976]|0||(_Le(10720),s=7976,n[s>>2]=1,n[s+4>>2]=0),10720}function _Le(s){s=s|0,ao(s,HLe()|0,2)}function HLe(){return 1732}function qLe(s){return s=s|0,n[s>>2]|0}function y7(s){return s=s|0,n[s>>2]|0}function jLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,$a(d),s=ys(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],E7(s,m,c),el(d),C=f}function E7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+4|0,B=f,d=jo(GLe()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=L0(m)|0,hs(0,d|0,s|0,l|0,o7(c)|0)|0,C=f}function GLe(){var s=0;return o[7984]|0||(WLe(10732),s=7984,n[s>>2]=1,n[s+4>>2]=0),10732}function WLe(s){s=s|0,ao(s,YLe()|0,2)}function YLe(){return 1744}function KLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,$a(d),s=ys(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],E7(s,m,c),el(d),C=f}function VLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,$a(m),s=ys(s)|0,n[k>>2]=n[l>>2],c=o[c>>0]|0,f=o[f>>0]|0,n[B>>2]=n[k>>2],JLe(s,B,c,f),el(m),C=d}function JLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,B=d+4|0,k=d,m=jo(zLe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=L0(B)|0,c=tm(c)|0,vi(0,m|0,s|0,l|0,c|0,tm(f)|0)|0,C=d}function zLe(){var s=0;return o[7992]|0||(ZLe(10744),s=7992,n[s>>2]=1,n[s+4>>2]=0),10744}function tm(s){return s=s|0,XLe(s)|0}function XLe(s){return s=s|0,s&255|0}function ZLe(s){s=s|0,ao(s,$Le()|0,3)}function $Le(){return 1756}function eOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;switch(oe=C,C=C+32|0,k=oe+8|0,F=oe+4|0,M=oe+20|0,O=oe,dR(s,0),f=XUe(l)|0,n[k>>2]=0,j=k+4|0,n[j>>2]=0,n[k+8>>2]=0,f<<24>>24){case 0:{o[M>>0]=0,tOe(F,c,M),OD(s,F)|0,xu(F);break}case 8:{j=nT(l)|0,o[M>>0]=8,Tc(O,n[j+4>>2]|0),rOe(F,c,M,O,j+8|0),OD(s,F)|0,xu(F);break}case 9:{if(m=nT(l)|0,l=n[m+4>>2]|0,l|0)for(B=k+8|0,d=m+12|0;l=l+-1|0,Tc(F,n[d>>2]|0),f=n[j>>2]|0,f>>>0<(n[B>>2]|0)>>>0?(n[f>>2]=n[F>>2],n[j>>2]=(n[j>>2]|0)+4):KR(k,F),l;)d=d+4|0;o[M>>0]=9,Tc(O,n[m+8>>2]|0),nOe(F,c,M,O,k),OD(s,F)|0,xu(F);break}default:j=nT(l)|0,o[M>>0]=f,Tc(O,n[j+4>>2]|0),iOe(F,c,M,O),OD(s,F)|0,xu(F)}$A(k),C=oe}function tOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,$a(d),l=ys(l)|0,mOe(s,l,o[c>>0]|0),el(d),C=f}function OD(s,l){s=s|0,l=l|0;var c=0;return c=n[s>>2]|0,c|0&&sa(c|0),n[s>>2]=n[l>>2],n[l>>2]=0,s|0}function rOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0;m=C,C=C+32|0,k=m+16|0,B=m+8|0,F=m,$a(B),l=ys(l)|0,c=o[c>>0]|0,n[F>>2]=n[f>>2],d=n[d>>2]|0,n[k>>2]=n[F>>2],pOe(s,l,c,k,d),el(B),C=m}function nOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0;m=C,C=C+32|0,F=m+24|0,B=m+16|0,M=m+12|0,k=m,$a(B),l=ys(l)|0,c=o[c>>0]|0,n[M>>2]=n[f>>2],JR(k,d),n[F>>2]=n[M>>2],cOe(s,l,c,F,k),$A(k),el(B),C=m}function iOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,$a(m),l=ys(l)|0,c=o[c>>0]|0,n[k>>2]=n[f>>2],n[B>>2]=n[k>>2],sOe(s,l,c,B),el(m),C=d}function sOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+4|0,k=d,B=jo(oOe()|0)|0,c=tm(c)|0,n[k>>2]=n[f>>2],n[m>>2]=n[k>>2],MD(s,hs(0,B|0,l|0,c|0,L0(m)|0)|0),C=d}function oOe(){var s=0;return o[8e3]|0||(aOe(10756),s=8e3,n[s>>2]=1,n[s+4>>2]=0),10756}function MD(s,l){s=s|0,l=l|0,dR(s,l)}function aOe(s){s=s|0,ao(s,lOe()|0,2)}function lOe(){return 1772}function cOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0;m=C,C=C+32|0,F=m+16|0,M=m+12|0,B=m,k=jo(uOe()|0)|0,c=tm(c)|0,n[M>>2]=n[f>>2],n[F>>2]=n[M>>2],f=L0(F)|0,n[B>>2]=n[d>>2],F=d+4|0,n[B+4>>2]=n[F>>2],M=d+8|0,n[B+8>>2]=n[M>>2],n[M>>2]=0,n[F>>2]=0,n[d>>2]=0,MD(s,vi(0,k|0,l|0,c|0,f|0,XR(B)|0)|0),$A(B),C=m}function uOe(){var s=0;return o[8008]|0||(AOe(10768),s=8008,n[s>>2]=1,n[s+4>>2]=0),10768}function AOe(s){s=s|0,ao(s,fOe()|0,3)}function fOe(){return 1784}function pOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0;m=C,C=C+16|0,k=m+4|0,F=m,B=jo(hOe()|0)|0,c=tm(c)|0,n[F>>2]=n[f>>2],n[k>>2]=n[F>>2],f=L0(k)|0,MD(s,vi(0,B|0,l|0,c|0,f|0,zR(d)|0)|0),C=m}function hOe(){var s=0;return o[8016]|0||(gOe(10780),s=8016,n[s>>2]=1,n[s+4>>2]=0),10780}function gOe(s){s=s|0,ao(s,dOe()|0,3)}function dOe(){return 1800}function mOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=jo(yOe()|0)|0,MD(s,un(0,f|0,l|0,tm(c)|0)|0)}function yOe(){var s=0;return o[8024]|0||(EOe(10792),s=8024,n[s>>2]=1,n[s+4>>2]=0),10792}function EOe(s){s=s|0,ao(s,COe()|0,1)}function COe(){return 1816}function IOe(){wOe(),BOe(),vOe()}function wOe(){n[2702]=K7(65536)|0}function BOe(){GOe(10856)}function vOe(){DOe(10816)}function DOe(s){s=s|0,POe(s,5044),SOe(s)|0}function POe(s,l){s=s|0,l=l|0;var c=0;c=c7()|0,n[s>>2]=c,MOe(c,l),Fp(n[s>>2]|0)}function SOe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,bOe()|0),s|0}function bOe(){var s=0;return o[8032]|0||(C7(10820),pr(64,10820,U|0)|0,s=8032,n[s>>2]=1,n[s+4>>2]=0),Lr(10820)|0||C7(10820),10820}function C7(s){s=s|0,QOe(s),N0(s,25)}function xOe(s){s=s|0,kOe(s+24|0)}function kOe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function QOe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,18,l,NOe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FOe(s,l){s=s|0,l=l|0,ROe(s,l)}function ROe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;c=C,C=C+16|0,f=c,d=c+4|0,F0(d,l),n[f>>2]=R0(d,l)|0,TOe(s,f),C=c}function TOe(s,l){s=s|0,l=l|0,I7(s+4|0,n[l>>2]|0),o[s+8>>0]=1}function I7(s,l){s=s|0,l=l|0,n[s>>2]=l}function NOe(){return 1824}function LOe(s){return s=s|0,OOe(s)|0}function OOe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Za(8)|0,l=f,k=Yt(4)|0,F0(d,s),I7(k,R0(d,s)|0),m=l+4|0,n[m>>2]=k,s=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],u7(s,m,d),n[f>>2]=s,C=c,l|0}function Za(s){s=s|0;var l=0,c=0;return s=s+7&-8,s>>>0<=32768&&(l=n[2701]|0,s>>>0<=(65536-l|0)>>>0)?(c=(n[2702]|0)+l|0,n[2701]=l+s,s=c):(s=K7(s+8|0)|0,n[s>>2]=n[2703],n[2703]=s,s=s+8|0),s|0}function MOe(s,l){s=s|0,l=l|0,n[s>>2]=UOe()|0,n[s+4>>2]=_Oe()|0,n[s+12>>2]=l,n[s+8>>2]=HOe()|0,n[s+32>>2]=9}function UOe(){return 11744}function _Oe(){return 1832}function HOe(){return ND()|0}function qOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(jOe(c),yt(c)):l|0&&yt(l)}function jOe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function GOe(s){s=s|0,WOe(s,5052),YOe(s)|0,KOe(s,5058,26)|0,VOe(s,5069,1)|0,JOe(s,5077,10)|0,zOe(s,5087,19)|0,XOe(s,5094,27)|0}function WOe(s,l){s=s|0,l=l|0;var c=0;c=jUe()|0,n[s>>2]=c,GUe(c,l),Fp(n[s>>2]|0)}function YOe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,xUe()|0),s|0}function KOe(s,l,c){return s=s|0,l=l|0,c=c|0,AUe(s,mn(l)|0,c,0),s|0}function VOe(s,l,c){return s=s|0,l=l|0,c=c|0,zMe(s,mn(l)|0,c,0),s|0}function JOe(s,l,c){return s=s|0,l=l|0,c=c|0,bMe(s,mn(l)|0,c,0),s|0}function zOe(s,l,c){return s=s|0,l=l|0,c=c|0,pMe(s,mn(l)|0,c,0),s|0}function w7(s,l){s=s|0,l=l|0;var c=0,f=0;e:for(;;){for(c=n[2703]|0;;){if((c|0)==(l|0))break e;if(f=n[c>>2]|0,n[2703]=f,!c)c=f;else break}yt(c)}n[2701]=s}function XOe(s,l,c){return s=s|0,l=l|0,c=c|0,ZOe(s,mn(l)|0,c,0),s|0}function ZOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=ZR()|0,s=$Oe(c)|0,yn(m,l,d,s,eMe(c,f)|0,f)}function ZR(){var s=0,l=0;if(o[8040]|0||(v7(10860),pr(65,10860,U|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10860)|0)){s=10860,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));v7(10860)}return 10860}function $Oe(s){return s=s|0,s|0}function eMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=ZR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(B7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(tMe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function B7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function tMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=rMe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,nMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,B7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,iMe(s,d),sMe(d),C=k;return}}function rMe(s){return s=s|0,536870911}function nMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function iMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function sMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function v7(s){s=s|0,lMe(s)}function oMe(s){s=s|0,aMe(s+24|0)}function aMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function lMe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,11,l,cMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function cMe(){return 1840}function uMe(s,l,c){s=s|0,l=l|0,c=c|0,fMe(n[(AMe(s)|0)>>2]|0,l,c)}function AMe(s){return s=s|0,(n[(ZR()|0)+24>>2]|0)+(s<<3)|0}function fMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+1|0,d=f,F0(m,l),l=R0(m,l)|0,F0(d,c),c=R0(d,c)|0,tf[s&31](l,c),C=f}function pMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=$R()|0,s=hMe(c)|0,yn(m,l,d,s,gMe(c,f)|0,f)}function $R(){var s=0,l=0;if(o[8048]|0||(P7(10896),pr(66,10896,U|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10896)|0)){s=10896,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));P7(10896)}return 10896}function hMe(s){return s=s|0,s|0}function gMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=$R()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(D7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(dMe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function D7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function dMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=mMe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,yMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,D7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,EMe(s,d),CMe(d),C=k;return}}function mMe(s){return s=s|0,536870911}function yMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function EMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function CMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function P7(s){s=s|0,BMe(s)}function IMe(s){s=s|0,wMe(s+24|0)}function wMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function BMe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,11,l,vMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function vMe(){return 1852}function DMe(s,l){return s=s|0,l=l|0,SMe(n[(PMe(s)|0)>>2]|0,l)|0}function PMe(s){return s=s|0,(n[($R()|0)+24>>2]|0)+(s<<3)|0}function SMe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,F0(f,l),l=R0(f,l)|0,l=RD(_0[s&31](l)|0)|0,C=c,l|0}function bMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=eT()|0,s=xMe(c)|0,yn(m,l,d,s,kMe(c,f)|0,f)}function eT(){var s=0,l=0;if(o[8056]|0||(b7(10932),pr(67,10932,U|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10932)|0)){s=10932,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));b7(10932)}return 10932}function xMe(s){return s=s|0,s|0}function kMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=eT()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(S7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(QMe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function S7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function QMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=FMe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,RMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,S7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,TMe(s,d),NMe(d),C=k;return}}function FMe(s){return s=s|0,536870911}function RMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function TMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function NMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function b7(s){s=s|0,MMe(s)}function LMe(s){s=s|0,OMe(s+24|0)}function OMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function MMe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,7,l,UMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function UMe(){return 1860}function _Me(s,l,c){return s=s|0,l=l|0,c=c|0,qMe(n[(HMe(s)|0)>>2]|0,l,c)|0}function HMe(s){return s=s|0,(n[(eT()|0)+24>>2]|0)+(s<<3)|0}function qMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0;return f=C,C=C+32|0,B=f+12|0,m=f+8|0,k=f,F=f+16|0,d=f+4|0,jMe(F,l),GMe(k,F,l),bp(d,c),c=xp(d,c)|0,n[B>>2]=n[k>>2],sw[s&15](m,B,c),c=WMe(m)|0,xu(m),kp(d),C=f,c|0}function jMe(s,l){s=s|0,l=l|0}function GMe(s,l,c){s=s|0,l=l|0,c=c|0,YMe(s,c)}function WMe(s){return s=s|0,ys(s)|0}function YMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+16|0,c=d,f=l,f&1?(KMe(c,0),ia(f|0,c|0)|0,VMe(s,c),JMe(c)):n[s>>2]=n[l>>2],C=d}function KMe(s,l){s=s|0,l=l|0,Fc(s,l),n[s+4>>2]=0,o[s+8>>0]=0}function VMe(s,l){s=s|0,l=l|0,n[s>>2]=n[l+4>>2]}function JMe(s){s=s|0,o[s+8>>0]=0}function zMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=tT()|0,s=XMe(c)|0,yn(m,l,d,s,ZMe(c,f)|0,f)}function tT(){var s=0,l=0;if(o[8064]|0||(k7(10968),pr(68,10968,U|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10968)|0)){s=10968,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));k7(10968)}return 10968}function XMe(s){return s=s|0,s|0}function ZMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=tT()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(x7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):($Me(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function x7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function $Me(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=eUe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,tUe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,x7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,rUe(s,d),nUe(d),C=k;return}}function eUe(s){return s=s|0,536870911}function tUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function rUe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function nUe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function k7(s){s=s|0,oUe(s)}function iUe(s){s=s|0,sUe(s+24|0)}function sUe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function oUe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,1,l,aUe()|0,5),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function aUe(){return 1872}function lUe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,uUe(n[(cUe(s)|0)>>2]|0,l,c,f,d,m)}function cUe(s){return s=s|0,(n[(tT()|0)+24>>2]|0)+(s<<3)|0}function uUe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,F=0,M=0,O=0,j=0;B=C,C=C+32|0,k=B+16|0,F=B+12|0,M=B+8|0,O=B+4|0,j=B,bp(k,l),l=xp(k,l)|0,bp(F,c),c=xp(F,c)|0,bp(M,f),f=xp(M,f)|0,bp(O,d),d=xp(O,d)|0,bp(j,m),m=xp(j,m)|0,Z7[s&1](l,c,f,d,m),kp(j),kp(O),kp(M),kp(F),kp(k),C=B}function AUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=rT()|0,s=fUe(c)|0,yn(m,l,d,s,pUe(c,f)|0,f)}function rT(){var s=0,l=0;if(o[8072]|0||(F7(11004),pr(69,11004,U|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(Lr(11004)|0)){s=11004,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));F7(11004)}return 11004}function fUe(s){return s=s|0,s|0}function pUe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=rT()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(Q7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(hUe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function Q7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function hUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=gUe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,dUe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,Q7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,mUe(s,d),yUe(d),C=k;return}}function gUe(s){return s=s|0,536870911}function dUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function mUe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function yUe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function F7(s){s=s|0,IUe(s)}function EUe(s){s=s|0,CUe(s+24|0)}function CUe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function IUe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,12,l,wUe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function wUe(){return 1896}function BUe(s,l,c){s=s|0,l=l|0,c=c|0,DUe(n[(vUe(s)|0)>>2]|0,l,c)}function vUe(s){return s=s|0,(n[(rT()|0)+24>>2]|0)+(s<<3)|0}function DUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+4|0,d=f,PUe(m,l),l=SUe(m,l)|0,bp(d,c),c=xp(d,c)|0,tf[s&31](l,c),kp(d),C=f}function PUe(s,l){s=s|0,l=l|0}function SUe(s,l){return s=s|0,l=l|0,bUe(l)|0}function bUe(s){return s=s|0,s|0}function xUe(){var s=0;return o[8080]|0||(R7(11040),pr(70,11040,U|0)|0,s=8080,n[s>>2]=1,n[s+4>>2]=0),Lr(11040)|0||R7(11040),11040}function R7(s){s=s|0,FUe(s),N0(s,71)}function kUe(s){s=s|0,QUe(s+24|0)}function QUe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function FUe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,7,l,LUe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function RUe(s){s=s|0,TUe(s)}function TUe(s){s=s|0,NUe(s)}function NUe(s){s=s|0,o[s+8>>0]=1}function LUe(){return 1936}function OUe(){return MUe()|0}function MUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Za(8)|0,s=c,m=s+4|0,n[m>>2]=Yt(1)|0,f=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],UUe(f,m,d),n[c>>2]=f,C=l,s|0}function UUe(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Yt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1916,n[c+12>>2]=l,n[s+4>>2]=c}function _Ue(s){s=s|0,im(s),yt(s)}function HUe(s){s=s|0,s=n[s+12>>2]|0,s|0&&yt(s)}function qUe(s){s=s|0,yt(s)}function jUe(){var s=0;return o[8088]|0||(zUe(11076),pr(25,11076,U|0)|0,s=8088,n[s>>2]=1,n[s+4>>2]=0),11076}function GUe(s,l){s=s|0,l=l|0,n[s>>2]=WUe()|0,n[s+4>>2]=YUe()|0,n[s+12>>2]=l,n[s+8>>2]=KUe()|0,n[s+32>>2]=10}function WUe(){return 11745}function YUe(){return 1940}function KUe(){return TD()|0}function VUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(JUe(c),yt(c)):l|0&&yt(l)}function JUe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function zUe(s){s=s|0,Sp(s)}function Tc(s,l){s=s|0,l=l|0,n[s>>2]=l}function nT(s){return s=s|0,n[s>>2]|0}function XUe(s){return s=s|0,o[n[s>>2]>>0]|0}function ZUe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,n[f>>2]=n[s>>2],$Ue(l,f)|0,C=c}function $Ue(s,l){s=s|0,l=l|0;var c=0;return c=e4e(n[s>>2]|0,l)|0,l=s+4|0,n[(n[l>>2]|0)+8>>2]=c,n[(n[l>>2]|0)+8>>2]|0}function e4e(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,$a(f),s=ys(s)|0,l=t4e(s,n[l>>2]|0)|0,el(f),C=c,l|0}function $a(s){s=s|0,n[s>>2]=n[2701],n[s+4>>2]=n[2703]}function t4e(s,l){s=s|0,l=l|0;var c=0;return c=jo(r4e()|0)|0,un(0,c|0,s|0,zR(l)|0)|0}function el(s){s=s|0,w7(n[s>>2]|0,n[s+4>>2]|0)}function r4e(){var s=0;return o[8096]|0||(n4e(11120),s=8096,n[s>>2]=1,n[s+4>>2]=0),11120}function n4e(s){s=s|0,ao(s,i4e()|0,1)}function i4e(){return 1948}function s4e(){o4e()}function o4e(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0;if(Oe=C,C=C+16|0,O=Oe+4|0,j=Oe,Ro(65536,10804,n[2702]|0,10812),c=n7()|0,l=n[c>>2]|0,s=n[l>>2]|0,s|0)for(f=n[c+8>>2]|0,c=n[c+4>>2]|0;du(s|0,u[c>>0]|0|0,o[f>>0]|0),l=l+4|0,s=n[l>>2]|0,s;)f=f+1|0,c=c+1|0;if(s=i7()|0,l=n[s>>2]|0,l|0)do QA(l|0,n[s+4>>2]|0),s=s+8|0,l=n[s>>2]|0;while(l|0);QA(a4e()|0,5167),M=$d()|0,s=n[M>>2]|0;e:do if(s|0){do l4e(n[s+4>>2]|0),s=n[s>>2]|0;while(s|0);if(s=n[M>>2]|0,s|0){F=M;do{for(;d=s,s=n[s>>2]|0,d=n[d+4>>2]|0,!!(c4e(d)|0);)if(n[j>>2]=F,n[O>>2]=n[j>>2],u4e(M,O)|0,!s)break e;if(A4e(d),F=n[F>>2]|0,l=T7(d)|0,m=Bi()|0,B=C,C=C+((1*(l<<2)|0)+15&-16)|0,k=C,C=C+((1*(l<<2)|0)+15&-16)|0,l=n[(d7(d)|0)>>2]|0,l|0)for(c=B,f=k;n[c>>2]=n[(em(n[l+4>>2]|0)|0)>>2],n[f>>2]=n[l+8>>2],l=n[l>>2]|0,l;)c=c+4|0,f=f+4|0;Qe=em(d)|0,l=f4e(d)|0,c=T7(d)|0,f=p4e(d)|0,Il(Qe|0,l|0,B|0,k|0,c|0,f|0,GR(d)|0),kA(m|0)}while(s|0)}}while(!1);if(s=n[(WR()|0)>>2]|0,s|0)do Qe=s+4|0,M=YR(Qe)|0,d=tw(M)|0,m=$I(M)|0,B=(ew(M)|0)+1|0,k=UD(M)|0,F=N7(Qe)|0,M=Lr(M)|0,O=LD(Qe)|0,j=iT(Qe)|0,mc(0,d|0,m|0,B|0,k|0,F|0,M|0,O|0,j|0,sT(Qe)|0),s=n[s>>2]|0;while(s|0);s=n[($d()|0)>>2]|0;e:do if(s|0){t:for(;;){if(l=n[s+4>>2]|0,l|0&&(oe=n[(em(l)|0)>>2]|0,We=n[(m7(l)|0)>>2]|0,We|0)){c=We;do{l=c+4|0,f=YR(l)|0;r:do if(f|0)switch(Lr(f)|0){case 0:break t;case 4:case 3:case 2:{k=tw(f)|0,F=$I(f)|0,M=(ew(f)|0)+1|0,O=UD(f)|0,j=Lr(f)|0,Qe=LD(l)|0,mc(oe|0,k|0,F|0,M|0,O|0,0,j|0,Qe|0,iT(l)|0,sT(l)|0);break r}case 1:{B=tw(f)|0,k=$I(f)|0,F=(ew(f)|0)+1|0,M=UD(f)|0,O=N7(l)|0,j=Lr(f)|0,Qe=LD(l)|0,mc(oe|0,B|0,k|0,F|0,M|0,O|0,j|0,Qe|0,iT(l)|0,sT(l)|0);break r}case 5:{M=tw(f)|0,O=$I(f)|0,j=(ew(f)|0)+1|0,Qe=UD(f)|0,mc(oe|0,M|0,O|0,j|0,Qe|0,h4e(f)|0,Lr(f)|0,0,0,0);break r}default:break r}while(!1);c=n[c>>2]|0}while(c|0)}if(s=n[s>>2]|0,!s)break e}Tt()}while(!1);we(),C=Oe}function a4e(){return 11703}function l4e(s){s=s|0,o[s+40>>0]=0}function c4e(s){return s=s|0,(o[s+40>>0]|0)!=0|0}function u4e(s,l){return s=s|0,l=l|0,l=g4e(l)|0,s=n[l>>2]|0,n[l>>2]=n[s>>2],yt(s),n[l>>2]|0}function A4e(s){s=s|0,o[s+40>>0]=1}function T7(s){return s=s|0,n[s+20>>2]|0}function f4e(s){return s=s|0,n[s+8>>2]|0}function p4e(s){return s=s|0,n[s+32>>2]|0}function UD(s){return s=s|0,n[s+4>>2]|0}function N7(s){return s=s|0,n[s+4>>2]|0}function iT(s){return s=s|0,n[s+8>>2]|0}function sT(s){return s=s|0,n[s+16>>2]|0}function h4e(s){return s=s|0,n[s+20>>2]|0}function g4e(s){return s=s|0,n[s>>2]|0}function _D(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0,ct=0,_e=0,Ge=0,Lt=0;Lt=C,C=C+16|0,oe=Lt;do if(s>>>0<245){if(M=s>>>0<11?16:s+11&-8,s=M>>>3,j=n[2783]|0,c=j>>>s,c&3|0)return l=(c&1^1)+s|0,s=11172+(l<<1<<2)|0,c=s+8|0,f=n[c>>2]|0,d=f+8|0,m=n[d>>2]|0,(s|0)==(m|0)?n[2783]=j&~(1<>2]=s,n[c>>2]=m),Ge=l<<3,n[f+4>>2]=Ge|3,Ge=f+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1,Ge=d,C=Lt,Ge|0;if(O=n[2785]|0,M>>>0>O>>>0){if(c|0)return l=2<>>12&16,l=l>>>B,c=l>>>5&8,l=l>>>c,d=l>>>2&4,l=l>>>d,s=l>>>1&2,l=l>>>s,f=l>>>1&1,f=(c|B|d|s|f)+(l>>>f)|0,l=11172+(f<<1<<2)|0,s=l+8|0,d=n[s>>2]|0,B=d+8|0,c=n[B>>2]|0,(l|0)==(c|0)?(s=j&~(1<>2]=l,n[s>>2]=c,s=j),m=(f<<3)-M|0,n[d+4>>2]=M|3,f=d+M|0,n[f+4>>2]=m|1,n[f+m>>2]=m,O|0&&(d=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=c),n[2785]=m,n[2788]=f,Ge=B,C=Lt,Ge|0;if(k=n[2784]|0,k){if(c=(k&0-k)+-1|0,B=c>>>12&16,c=c>>>B,m=c>>>5&8,c=c>>>m,F=c>>>2&4,c=c>>>F,f=c>>>1&2,c=c>>>f,s=c>>>1&1,s=n[11436+((m|B|F|f|s)+(c>>>s)<<2)>>2]|0,c=(n[s+4>>2]&-8)-M|0,f=n[s+16+(((n[s+16>>2]|0)==0&1)<<2)>>2]|0,!f)F=s,m=c;else{do B=(n[f+4>>2]&-8)-M|0,F=B>>>0>>0,c=F?B:c,s=F?f:s,f=n[f+16+(((n[f+16>>2]|0)==0&1)<<2)>>2]|0;while(f|0);F=s,m=c}if(B=F+M|0,F>>>0>>0){d=n[F+24>>2]|0,l=n[F+12>>2]|0;do if((l|0)==(F|0)){if(s=F+20|0,l=n[s>>2]|0,!l&&(s=F+16|0,l=n[s>>2]|0,!l)){c=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0,c=l}else c=n[F+8>>2]|0,n[c+12>>2]=l,n[l+8>>2]=c,c=l;while(!1);do if(d|0){if(l=n[F+28>>2]|0,s=11436+(l<<2)|0,(F|0)==(n[s>>2]|0)){if(n[s>>2]=c,!c){n[2784]=k&~(1<>2]|0)!=(F|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=d,l=n[F+16>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),l=n[F+20>>2]|0,l|0&&(n[c+20>>2]=l,n[l+24>>2]=c)}while(!1);return m>>>0<16?(Ge=m+M|0,n[F+4>>2]=Ge|3,Ge=F+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1):(n[F+4>>2]=M|3,n[B+4>>2]=m|1,n[B+m>>2]=m,O|0&&(f=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=j|l,l=c,s=c+8|0),n[s>>2]=f,n[l+12>>2]=f,n[f+8>>2]=l,n[f+12>>2]=c),n[2785]=m,n[2788]=B),Ge=F+8|0,C=Lt,Ge|0}else j=M}else j=M}else j=M}else if(s>>>0<=4294967231)if(s=s+11|0,M=s&-8,F=n[2784]|0,F){f=0-M|0,s=s>>>8,s?M>>>0>16777215?k=31:(j=(s+1048320|0)>>>16&8,_e=s<>>16&4,_e=_e<>>16&2,k=14-(O|j|k)+(_e<>>15)|0,k=M>>>(k+7|0)&1|k<<1):k=0,c=n[11436+(k<<2)>>2]|0;e:do if(!c)c=0,s=0,_e=57;else for(s=0,B=M<<((k|0)==31?0:25-(k>>>1)|0),m=0;;){if(d=(n[c+4>>2]&-8)-M|0,d>>>0>>0)if(d)s=c,f=d;else{s=c,f=0,d=c,_e=61;break e}if(d=n[c+20>>2]|0,c=n[c+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(c|0)?m:d,d=(c|0)==0,d){c=m,_e=57;break}else B=B<<((d^1)&1)}while(!1);if((_e|0)==57){if((c|0)==0&(s|0)==0){if(s=2<>>12&16,j=j>>>B,m=j>>>5&8,j=j>>>m,k=j>>>2&4,j=j>>>k,O=j>>>1&2,j=j>>>O,c=j>>>1&1,s=0,c=n[11436+((m|B|k|O|c)+(j>>>c)<<2)>>2]|0}c?(d=c,_e=61):(k=s,B=f)}if((_e|0)==61)for(;;)if(_e=0,c=(n[d+4>>2]&-8)-M|0,j=c>>>0>>0,c=j?c:f,s=j?d:s,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)f=c,_e=61;else{k=s,B=c;break}if(k|0&&B>>>0<((n[2785]|0)-M|0)>>>0){if(m=k+M|0,k>>>0>=m>>>0)return Ge=0,C=Lt,Ge|0;d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(s=k+20|0,l=n[s>>2]|0,!l&&(s=k+16|0,l=n[s>>2]|0,!l)){l=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0}else Ge=n[k+8>>2]|0,n[Ge+12>>2]=l,n[l+8>>2]=Ge;while(!1);do if(d){if(s=n[k+28>>2]|0,c=11436+(s<<2)|0,(k|0)==(n[c>>2]|0)){if(n[c>>2]=l,!l){f=F&~(1<>2]|0)!=(k|0)&1)<<2)>>2]=l,!l){f=F;break}n[l+24>>2]=d,s=n[k+16>>2]|0,s|0&&(n[l+16>>2]=s,n[s+24>>2]=l),s=n[k+20>>2]|0,s&&(n[l+20>>2]=s,n[s+24>>2]=l),f=F}else f=F;while(!1);do if(B>>>0>=16){if(n[k+4>>2]=M|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=c;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(_e=(l+1048320|0)>>>16&8,Ge=l<<_e,ct=(Ge+520192|0)>>>16&4,Ge=Ge<>>16&2,l=14-(ct|_e|l)+(Ge<>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,c=11436+(l<<2)|0,n[m+28>>2]=l,s=m+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}for(s=B<<((l|0)==31?0:25-(l>>>1)|0),c=n[c>>2]|0;;){if((n[c+4>>2]&-8|0)==(B|0)){_e=97;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=96;break}}if((_e|0)==96){n[f>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((_e|0)==97){_e=c+8|0,Ge=n[_e>>2]|0,n[Ge+12>>2]=m,n[_e>>2]=m,n[m+8>>2]=Ge,n[m+12>>2]=c,n[m+24>>2]=0;break}}else Ge=B+M|0,n[k+4>>2]=Ge|3,Ge=k+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1;while(!1);return Ge=k+8|0,C=Lt,Ge|0}else j=M}else j=M;else j=-1;while(!1);if(c=n[2785]|0,c>>>0>=j>>>0)return l=c-j|0,s=n[2788]|0,l>>>0>15?(Ge=s+j|0,n[2788]=Ge,n[2785]=l,n[Ge+4>>2]=l|1,n[Ge+l>>2]=l,n[s+4>>2]=j|3):(n[2785]=0,n[2788]=0,n[s+4>>2]=c|3,Ge=s+c+4|0,n[Ge>>2]=n[Ge>>2]|1),Ge=s+8|0,C=Lt,Ge|0;if(B=n[2786]|0,B>>>0>j>>>0)return ct=B-j|0,n[2786]=ct,Ge=n[2789]|0,_e=Ge+j|0,n[2789]=_e,n[_e+4>>2]=ct|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,C=Lt,Ge|0;if(n[2901]|0?s=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,s=oe&-16^1431655768,n[oe>>2]=s,n[2901]=s,s=4096),k=j+48|0,F=j+47|0,m=s+F|0,d=0-s|0,M=m&d,M>>>0<=j>>>0||(s=n[2893]|0,s|0&&(O=n[2891]|0,oe=O+M|0,oe>>>0<=O>>>0|oe>>>0>s>>>0)))return Ge=0,C=Lt,Ge|0;e:do if(n[2894]&4)l=0,_e=133;else{c=n[2789]|0;t:do if(c){for(f=11580;s=n[f>>2]|0,!(s>>>0<=c>>>0&&(Qe=f+4|0,(s+(n[Qe>>2]|0)|0)>>>0>c>>>0));)if(s=n[f+8>>2]|0,s)f=s;else{_e=118;break t}if(l=m-B&d,l>>>0<2147483647)if(s=Tp(l|0)|0,(s|0)==((n[f>>2]|0)+(n[Qe>>2]|0)|0)){if((s|0)!=-1){B=l,m=s,_e=135;break e}}else f=s,_e=126;else l=0}else _e=118;while(!1);do if((_e|0)==118)if(c=Tp(0)|0,(c|0)!=-1&&(l=c,We=n[2902]|0,Oe=We+-1|0,l=(Oe&l|0?(Oe+l&0-We)-l|0:0)+M|0,We=n[2891]|0,Oe=l+We|0,l>>>0>j>>>0&l>>>0<2147483647)){if(Qe=n[2893]|0,Qe|0&&Oe>>>0<=We>>>0|Oe>>>0>Qe>>>0){l=0;break}if(s=Tp(l|0)|0,(s|0)==(c|0)){B=l,m=c,_e=135;break e}else f=s,_e=126}else l=0;while(!1);do if((_e|0)==126){if(c=0-l|0,!(k>>>0>l>>>0&(l>>>0<2147483647&(f|0)!=-1)))if((f|0)==-1){l=0;break}else{B=l,m=f,_e=135;break e}if(s=n[2903]|0,s=F-l+s&0-s,s>>>0>=2147483647){B=l,m=f,_e=135;break e}if((Tp(s|0)|0)==-1){Tp(c|0)|0,l=0;break}else{B=s+l|0,m=f,_e=135;break e}}while(!1);n[2894]=n[2894]|4,_e=133}while(!1);if((_e|0)==133&&M>>>0<2147483647&&(ct=Tp(M|0)|0,Qe=Tp(0)|0,rt=Qe-ct|0,Xe=rt>>>0>(j+40|0)>>>0,!((ct|0)==-1|Xe^1|ct>>>0>>0&((ct|0)!=-1&(Qe|0)!=-1)^1))&&(B=Xe?rt:l,m=ct,_e=135),(_e|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),F=n[2789]|0;do if(F){for(l=11580;;){if(s=n[l>>2]|0,c=l+4|0,f=n[c>>2]|0,(m|0)==(s+f|0)){_e=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((_e|0)==145&&!(n[l+12>>2]&8|0)&&F>>>0>>0&F>>>0>=s>>>0){n[c>>2]=f+B,Ge=F+8|0,Ge=Ge&7|0?0-Ge&7:0,_e=F+Ge|0,Ge=(n[2786]|0)+(B-Ge)|0,n[2789]=_e,n[2786]=Ge,n[_e+4>>2]=Ge|1,n[_e+Ge+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),c=m+B|0,l=11580;;){if((n[l>>2]|0)==(c|0)){_e=153;break}if(s=n[l+8>>2]|0,s)l=s;else break}if((_e|0)==153&&!(n[l+12>>2]&8|0)){n[l>>2]=m,O=l+4|0,n[O>>2]=(n[O>>2]|0)+B,O=m+8|0,O=m+(O&7|0?0-O&7:0)|0,l=c+8|0,l=c+(l&7|0?0-l&7:0)|0,M=O+j|0,k=l-O-j|0,n[O+4>>2]=j|3;do if((l|0)!=(F|0)){if((l|0)==(n[2788]|0)){Ge=(n[2785]|0)+k|0,n[2785]=Ge,n[2788]=M,n[M+4>>2]=Ge|1,n[M+Ge>>2]=Ge;break}if(s=n[l+4>>2]|0,(s&3|0)==1){B=s&-8,f=s>>>3;e:do if(s>>>0<256)if(s=n[l+8>>2]|0,c=n[l+12>>2]|0,(c|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=c,n[c+8>>2]=s;break}else{m=n[l+24>>2]|0,s=n[l+12>>2]|0;do if((s|0)==(l|0)){if(f=l+16|0,c=f+4|0,s=n[c>>2]|0,!s)if(s=n[f>>2]|0,s)c=f;else{s=0;break}for(;;){if(f=s+20|0,d=n[f>>2]|0,d|0){s=d,c=f;continue}if(f=s+16|0,d=n[f>>2]|0,d)s=d,c=f;else break}n[c>>2]=0}else Ge=n[l+8>>2]|0,n[Ge+12>>2]=s,n[s+8>>2]=Ge;while(!1);if(!m)break;c=n[l+28>>2]|0,f=11436+(c<<2)|0;do if((l|0)!=(n[f>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=s,!s)break e}else{if(n[f>>2]=s,s|0)break;n[2784]=n[2784]&~(1<>2]=m,c=l+16|0,f=n[c>>2]|0,f|0&&(n[s+16>>2]=f,n[f+24>>2]=s),c=n[c+4>>2]|0,!c)break;n[s+20>>2]=c,n[c+24>>2]=s}while(!1);l=l+B|0,d=B+k|0}else d=k;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[M+4>>2]=d|1,n[M+d>>2]=d,l=d>>>3,d>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=M,n[l+12>>2]=M,n[M+8>>2]=l,n[M+12>>2]=c;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}_e=(l+1048320|0)>>>16&8,Ge=l<<_e,ct=(Ge+520192|0)>>>16&4,Ge=Ge<>>16&2,l=14-(ct|_e|l)+(Ge<>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(!1);if(f=11436+(l<<2)|0,n[M+28>>2]=l,s=M+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[2784]|0,c=1<>2]=M,n[M+24>>2]=f,n[M+12>>2]=M,n[M+8>>2]=M;break}for(s=d<<((l|0)==31?0:25-(l>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){_e=194;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=193;break}}if((_e|0)==193){n[f>>2]=M,n[M+24>>2]=c,n[M+12>>2]=M,n[M+8>>2]=M;break}else if((_e|0)==194){_e=c+8|0,Ge=n[_e>>2]|0,n[Ge+12>>2]=M,n[_e>>2]=M,n[M+8>>2]=Ge,n[M+12>>2]=c,n[M+24>>2]=0;break}}else Ge=(n[2786]|0)+k|0,n[2786]=Ge,n[2789]=M,n[M+4>>2]=Ge|1;while(!1);return Ge=O+8|0,C=Lt,Ge|0}for(l=11580;s=n[l>>2]|0,!(s>>>0<=F>>>0&&(Ge=s+(n[l+4>>2]|0)|0,Ge>>>0>F>>>0));)l=n[l+8>>2]|0;d=Ge+-47|0,s=d+8|0,s=d+(s&7|0?0-s&7:0)|0,d=F+16|0,s=s>>>0>>0?F:s,l=s+8|0,c=m+8|0,c=c&7|0?0-c&7:0,_e=m+c|0,c=B+-40-c|0,n[2789]=_e,n[2786]=c,n[_e+4>>2]=c|1,n[_e+c+4>>2]=40,n[2790]=n[2905],c=s+4|0,n[c>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=s+24|0;do _e=l,l=l+4|0,n[l>>2]=7;while((_e+8|0)>>>0>>0);if((s|0)!=(F|0)){if(m=s-F|0,n[c>>2]=n[c>>2]&-2,n[F+4>>2]=m|1,n[s>>2]=m,l=m>>>3,m>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=F,n[l+12>>2]=F,n[F+8>>2]=l,n[F+12>>2]=c;break}if(l=m>>>8,l?m>>>0>16777215?c=31:(_e=(l+1048320|0)>>>16&8,Ge=l<<_e,ct=(Ge+520192|0)>>>16&4,Ge=Ge<>>16&2,c=14-(ct|_e|c)+(Ge<>>15)|0,c=m>>>(c+7|0)&1|c<<1):c=0,f=11436+(c<<2)|0,n[F+28>>2]=c,n[F+20>>2]=0,n[d>>2]=0,l=n[2784]|0,s=1<>2]=F,n[F+24>>2]=f,n[F+12>>2]=F,n[F+8>>2]=F;break}for(s=m<<((c|0)==31?0:25-(c>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(m|0)){_e=216;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=215;break}}if((_e|0)==215){n[f>>2]=F,n[F+24>>2]=c,n[F+12>>2]=F,n[F+8>>2]=F;break}else if((_e|0)==216){_e=c+8|0,Ge=n[_e>>2]|0,n[Ge+12>>2]=F,n[_e>>2]=F,n[F+8>>2]=Ge,n[F+12>>2]=c,n[F+24>>2]=0;break}}}else{Ge=n[2787]|0,(Ge|0)==0|m>>>0>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do Ge=11172+(l<<1<<2)|0,n[Ge+12>>2]=Ge,n[Ge+8>>2]=Ge,l=l+1|0;while((l|0)!=32);Ge=m+8|0,Ge=Ge&7|0?0-Ge&7:0,_e=m+Ge|0,Ge=B+-40-Ge|0,n[2789]=_e,n[2786]=Ge,n[_e+4>>2]=Ge|1,n[_e+Ge+4>>2]=40,n[2790]=n[2905]}while(!1);if(l=n[2786]|0,l>>>0>j>>>0)return ct=l-j|0,n[2786]=ct,Ge=n[2789]|0,_e=Ge+j|0,n[2789]=_e,n[_e+4>>2]=ct|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,C=Lt,Ge|0}return n[(rm()|0)>>2]=12,Ge=0,C=Lt,Ge|0}function HD(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0;if(s){c=s+-8|0,d=n[2787]|0,s=n[s+-4>>2]|0,l=s&-8,F=c+l|0;do if(s&1)k=c,B=c;else{if(f=n[c>>2]|0,!(s&3)||(B=c+(0-f)|0,m=f+l|0,B>>>0>>0))return;if((B|0)==(n[2788]|0)){if(s=F+4|0,l=n[s>>2]|0,(l&3|0)!=3){k=B,l=m;break}n[2785]=m,n[s>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(c=f>>>3,f>>>0<256)if(s=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=l,n[l+8>>2]=s,k=B,l=m;break}d=n[B+24>>2]|0,s=n[B+12>>2]|0;do if((s|0)==(B|0)){if(c=B+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{s=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0}else k=n[B+8>>2]|0,n[k+12>>2]=s,n[s+8>>2]=k;while(!1);if(d){if(l=n[B+28>>2]|0,c=11436+(l<<2)|0,(B|0)==(n[c>>2]|0)){if(n[c>>2]=s,!s){n[2784]=n[2784]&~(1<>2]|0)!=(B|0)&1)<<2)>>2]=s,!s){k=B,l=m;break}n[s+24>>2]=d,l=B+16|0,c=n[l>>2]|0,c|0&&(n[s+16>>2]=c,n[c+24>>2]=s),l=n[l+4>>2]|0,l?(n[s+20>>2]=l,n[l+24>>2]=s,k=B,l=m):(k=B,l=m)}else k=B,l=m}while(!1);if(!(B>>>0>=F>>>0)&&(s=F+4|0,f=n[s>>2]|0,!!(f&1))){if(f&2)n[s>>2]=f&-2,n[k+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(s=n[2788]|0,(F|0)==(n[2789]|0)){if(F=(n[2786]|0)+l|0,n[2786]=F,n[2789]=k,n[k+4>>2]=F|1,(k|0)!=(s|0))return;n[2788]=0,n[2785]=0;return}if((F|0)==(s|0)){F=(n[2785]|0)+l|0,n[2785]=F,n[2788]=B,n[k+4>>2]=F|1,n[B+F>>2]=F;return}d=(f&-8)+l|0,c=f>>>3;do if(f>>>0<256)if(l=n[F+8>>2]|0,s=n[F+12>>2]|0,(s|0)==(l|0)){n[2783]=n[2783]&~(1<>2]=s,n[s+8>>2]=l;break}else{m=n[F+24>>2]|0,s=n[F+12>>2]|0;do if((s|0)==(F|0)){if(c=F+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{c=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0,c=s}else c=n[F+8>>2]|0,n[c+12>>2]=s,n[s+8>>2]=c,c=s;while(!1);if(m|0){if(s=n[F+28>>2]|0,l=11436+(s<<2)|0,(F|0)==(n[l>>2]|0)){if(n[l>>2]=c,!c){n[2784]=n[2784]&~(1<>2]|0)!=(F|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=m,s=F+16|0,l=n[s>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),s=n[s+4>>2]|0,s|0&&(n[c+20>>2]=s,n[s+24>>2]=c)}}while(!1);if(n[k+4>>2]=d|1,n[B+d>>2]=d,(k|0)==(n[2788]|0)){n[2785]=d;return}}if(s=d>>>3,d>>>0<256){c=11172+(s<<1<<2)|0,l=n[2783]|0,s=1<>2]|0):(n[2783]=l|s,s=c,l=c+8|0),n[l>>2]=k,n[s+12>>2]=k,n[k+8>>2]=s,n[k+12>>2]=c;return}s=d>>>8,s?d>>>0>16777215?s=31:(B=(s+1048320|0)>>>16&8,F=s<>>16&4,F=F<>>16&2,s=14-(m|B|s)+(F<>>15)|0,s=d>>>(s+7|0)&1|s<<1):s=0,f=11436+(s<<2)|0,n[k+28>>2]=s,n[k+20>>2]=0,n[k+16>>2]=0,l=n[2784]|0,c=1<>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){s=73;break}if(f=c+16+(l>>>31<<2)|0,s=n[f>>2]|0,s)l=l<<1,c=s;else{s=72;break}}if((s|0)==72){n[f>>2]=k,n[k+24>>2]=c,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((s|0)==73){B=c+8|0,F=n[B>>2]|0,n[F+12>>2]=k,n[B>>2]=k,n[k+8>>2]=F,n[k+12>>2]=c,n[k+24>>2]=0;break}}else n[2784]=l|c,n[f>>2]=k,n[k+24>>2]=f,n[k+12>>2]=k,n[k+8>>2]=k;while(!1);if(F=(n[2791]|0)+-1|0,n[2791]=F,!F)s=11588;else return;for(;s=n[s>>2]|0,s;)s=s+8|0;n[2791]=-1}}}function d4e(){return 11628}function m4e(s){s=s|0;var l=0,c=0;return l=C,C=C+16|0,c=l,n[c>>2]=C4e(n[s+60>>2]|0)|0,s=qD(Ec(6,c|0)|0)|0,C=l,s|0}function L7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0;j=C,C=C+48|0,M=j+16|0,m=j,d=j+32|0,k=s+28|0,f=n[k>>2]|0,n[d>>2]=f,F=s+20|0,f=(n[F>>2]|0)-f|0,n[d+4>>2]=f,n[d+8>>2]=l,n[d+12>>2]=c,f=f+c|0,B=s+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=qD(aa(146,m|0)|0)|0;e:do if((f|0)!=(m|0)){for(l=2;!((m|0)<0);)if(f=f-m|0,We=n[d+4>>2]|0,oe=m>>>0>We>>>0,d=oe?d+8|0:d,l=(oe<<31>>31)+l|0,We=m-(oe?We:0)|0,n[d>>2]=(n[d>>2]|0)+We,oe=d+4|0,n[oe>>2]=(n[oe>>2]|0)-We,n[M>>2]=n[B>>2],n[M+4>>2]=d,n[M+8>>2]=l,m=qD(aa(146,M|0)|0)|0,(f|0)==(m|0)){O=3;break e}n[s+16>>2]=0,n[k>>2]=0,n[F>>2]=0,n[s>>2]=n[s>>2]|32,(l|0)==2?c=0:c=c-(n[d+4>>2]|0)|0}else O=3;while(!1);return(O|0)==3&&(We=n[s+44>>2]|0,n[s+16>>2]=We+(n[s+48>>2]|0),n[k>>2]=We,n[F>>2]=We),C=j,c|0}function y4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return d=C,C=C+32|0,m=d,f=d+20|0,n[m>>2]=n[s+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=f,n[m+16>>2]=c,(qD(oa(140,m|0)|0)|0)<0?(n[f>>2]=-1,s=-1):s=n[f>>2]|0,C=d,s|0}function qD(s){return s=s|0,s>>>0>4294963200&&(n[(rm()|0)>>2]=0-s,s=-1),s|0}function rm(){return(E4e()|0)+64|0}function E4e(){return oT()|0}function oT(){return 2084}function C4e(s){return s=s|0,s|0}function I4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return d=C,C=C+32|0,f=d,n[s+36>>2]=1,!(n[s>>2]&64|0)&&(n[f>>2]=n[s+60>>2],n[f+4>>2]=21523,n[f+8>>2]=d+16,Ns(54,f|0)|0)&&(o[s+75>>0]=-1),f=L7(s,l,c)|0,C=d,f|0}function O7(s,l){s=s|0,l=l|0;var c=0,f=0;if(c=o[s>>0]|0,f=o[l>>0]|0,!(c<<24>>24)||c<<24>>24!=f<<24>>24)s=f;else{do s=s+1|0,l=l+1|0,c=o[s>>0]|0,f=o[l>>0]|0;while(!(!(c<<24>>24)||c<<24>>24!=f<<24>>24));s=f}return(c&255)-(s&255)|0}function w4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;e:do if(!c)s=0;else{for(;f=o[s>>0]|0,d=o[l>>0]|0,f<<24>>24==d<<24>>24;)if(c=c+-1|0,c)s=s+1|0,l=l+1|0;else{s=0;break e}s=(f&255)-(d&255)|0}while(!1);return s|0}function M7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0;Qe=C,C=C+224|0,O=Qe+120|0,j=Qe+80|0,We=Qe,Oe=Qe+136|0,f=j,d=f+40|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(d|0));return n[O>>2]=n[c>>2],(aT(0,l,O,We,j)|0)<0?c=-1:((n[s+76>>2]|0)>-1?oe=B4e(s)|0:oe=0,c=n[s>>2]|0,M=c&32,(o[s+74>>0]|0)<1&&(n[s>>2]=c&-33),f=s+48|0,n[f>>2]|0?c=aT(s,l,O,We,j)|0:(d=s+44|0,m=n[d>>2]|0,n[d>>2]=Oe,B=s+28|0,n[B>>2]=Oe,k=s+20|0,n[k>>2]=Oe,n[f>>2]=80,F=s+16|0,n[F>>2]=Oe+80,c=aT(s,l,O,We,j)|0,m&&(YD[n[s+36>>2]&7](s,0,0)|0,c=n[k>>2]|0?c:-1,n[d>>2]=m,n[f>>2]=0,n[F>>2]=0,n[B>>2]=0,n[k>>2]=0)),f=n[s>>2]|0,n[s>>2]=f|M,oe|0&&v4e(s),c=f&32|0?-1:c),C=Qe,c|0}function aT(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0,ct=0,_e=0,Ge=0,Lt=0,_r=0,ur=0,Zt=0,kr=0,Or=0,lr=0;lr=C,C=C+64|0,ur=lr+16|0,Zt=lr,Lt=lr+24|0,kr=lr+8|0,Or=lr+20|0,n[ur>>2]=l,ct=(s|0)!=0,_e=Lt+40|0,Ge=_e,Lt=Lt+39|0,_r=kr+4|0,B=0,m=0,O=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(rm()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(!1);if(B=o[l>>0]|0,B<<24>>24)k=l;else{Xe=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=k,Xe=9;break t}case 0:{B=k;break t}default:}rt=k+1|0,n[ur>>2]=rt,B=o[rt>>0]|0,k=rt}t:do if((Xe|0)==9)for(;;){if(Xe=0,(o[k+1>>0]|0)!=37)break t;if(B=B+1|0,k=k+2|0,n[ur>>2]=k,(o[k>>0]|0)==37)Xe=9;else break}while(!1);if(B=B-l|0,ct&&os(s,l,B),B|0){l=k;continue}F=k+1|0,B=(o[F>>0]|0)+-48|0,B>>>0<10?(rt=(o[k+2>>0]|0)==36,Qe=rt?B:-1,O=rt?1:O,F=rt?k+3|0:F):Qe=-1,n[ur>>2]=F,B=o[F>>0]|0,k=(B<<24>>24)+-32|0;t:do if(k>>>0<32)for(M=0,j=B;;){if(B=1<>2]=F,B=o[F>>0]|0,k=(B<<24>>24)+-32|0,k>>>0>=32)break;j=B}else M=0;while(!1);if(B<<24>>24==42){if(k=F+1|0,B=(o[k>>0]|0)+-48|0,B>>>0<10&&(o[F+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[f+((o[k>>0]|0)+-48<<3)>>2]|0,O=1,F=F+3|0;else{if(O|0){m=-1;break}ct?(O=(n[c>>2]|0)+3&-4,B=n[O>>2]|0,n[c>>2]=O+4,O=0,F=k):(B=0,O=0,F=k)}n[ur>>2]=F,rt=(B|0)<0,B=rt?0-B|0:B,M=rt?M|8192:M}else{if(B=U7(ur)|0,(B|0)<0){m=-1;break}F=n[ur>>2]|0}do if((o[F>>0]|0)==46){if((o[F+1>>0]|0)!=42){n[ur>>2]=F+1,k=U7(ur)|0,F=n[ur>>2]|0;break}if(j=F+2|0,k=(o[j>>0]|0)+-48|0,k>>>0<10&&(o[F+3>>0]|0)==36){n[d+(k<<2)>>2]=10,k=n[f+((o[j>>0]|0)+-48<<3)>>2]|0,F=F+4|0,n[ur>>2]=F;break}if(O|0){m=-1;break e}ct?(rt=(n[c>>2]|0)+3&-4,k=n[rt>>2]|0,n[c>>2]=rt+4):k=0,n[ur>>2]=j,F=j}else k=-1;while(!1);for(Oe=0;;){if(((o[F>>0]|0)+-65|0)>>>0>57){m=-1;break e}if(rt=F+1|0,n[ur>>2]=rt,j=o[(o[F>>0]|0)+-65+(5178+(Oe*58|0))>>0]|0,oe=j&255,(oe+-1|0)>>>0<8)Oe=oe,F=rt;else break}if(!(j<<24>>24)){m=-1;break}We=(Qe|0)>-1;do if(j<<24>>24==19)if(We){m=-1;break e}else Xe=49;else{if(We){n[d+(Qe<<2)>>2]=oe,We=f+(Qe<<3)|0,Qe=n[We+4>>2]|0,Xe=Zt,n[Xe>>2]=n[We>>2],n[Xe+4>>2]=Qe,Xe=49;break}if(!ct){m=0;break e}_7(Zt,oe,c)}while(!1);if((Xe|0)==49&&(Xe=0,!ct)){B=0,l=rt;continue}F=o[F>>0]|0,F=(Oe|0)!=0&(F&15|0)==3?F&-33:F,We=M&-65537,Qe=M&8192|0?We:M;t:do switch(F|0){case 110:switch((Oe&255)<<24>>24){case 0:{n[n[Zt>>2]>>2]=m,B=0,l=rt;continue e}case 1:{n[n[Zt>>2]>>2]=m,B=0,l=rt;continue e}case 2:{B=n[Zt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=rt;continue e}case 3:{a[n[Zt>>2]>>1]=m,B=0,l=rt;continue e}case 4:{o[n[Zt>>2]>>0]=m,B=0,l=rt;continue e}case 6:{n[n[Zt>>2]>>2]=m,B=0,l=rt;continue e}case 7:{B=n[Zt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=rt;continue e}default:{B=0,l=rt;continue e}}case 112:{F=120,k=k>>>0>8?k:8,l=Qe|8,Xe=61;break}case 88:case 120:{l=Qe,Xe=61;break}case 111:{F=Zt,l=n[F>>2]|0,F=n[F+4>>2]|0,oe=P4e(l,F,_e)|0,We=Ge-oe|0,M=0,j=5642,k=(Qe&8|0)==0|(k|0)>(We|0)?k:We+1|0,We=Qe,Xe=67;break}case 105:case 100:if(F=Zt,l=n[F>>2]|0,F=n[F+4>>2]|0,(F|0)<0){l=jD(0,0,l|0,F|0)|0,F=Ce,M=Zt,n[M>>2]=l,n[M+4>>2]=F,M=1,j=5642,Xe=66;break t}else{M=(Qe&2049|0)!=0&1,j=Qe&2048|0?5643:Qe&1|0?5644:5642,Xe=66;break t}case 117:{F=Zt,M=0,j=5642,l=n[F>>2]|0,F=n[F+4>>2]|0,Xe=66;break}case 99:{o[Lt>>0]=n[Zt>>2],l=Lt,M=0,j=5642,oe=_e,F=1,k=We;break}case 109:{F=S4e(n[(rm()|0)>>2]|0)|0,Xe=71;break}case 115:{F=n[Zt>>2]|0,F=F|0?F:5652,Xe=71;break}case 67:{n[kr>>2]=n[Zt>>2],n[_r>>2]=0,n[Zt>>2]=kr,oe=-1,F=kr,Xe=75;break}case 83:{l=n[Zt>>2]|0,k?(oe=k,F=l,Xe=75):(Es(s,32,B,0,Qe),l=0,Xe=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=x4e(s,+E[Zt>>3],B,k,Qe,F)|0,l=rt;continue e}default:M=0,j=5642,oe=_e,F=k,k=Qe}while(!1);t:do if((Xe|0)==61)Qe=Zt,Oe=n[Qe>>2]|0,Qe=n[Qe+4>>2]|0,oe=D4e(Oe,Qe,_e,F&32)|0,j=(l&8|0)==0|(Oe|0)==0&(Qe|0)==0,M=j?0:2,j=j?5642:5642+(F>>4)|0,We=l,l=Oe,F=Qe,Xe=67;else if((Xe|0)==66)oe=nm(l,F,_e)|0,We=Qe,Xe=67;else if((Xe|0)==71)Xe=0,Qe=b4e(F,0,k)|0,Oe=(Qe|0)==0,l=F,M=0,j=5642,oe=Oe?F+k|0:Qe,F=Oe?k:Qe-F|0,k=We;else if((Xe|0)==75){for(Xe=0,j=F,l=0,k=0;M=n[j>>2]|0,!(!M||(k=H7(Or,M)|0,(k|0)<0|k>>>0>(oe-l|0)>>>0));)if(l=k+l|0,oe>>>0>l>>>0)j=j+4|0;else break;if((k|0)<0){m=-1;break e}if(Es(s,32,B,l,Qe),!l)l=0,Xe=84;else for(M=0;;){if(k=n[F>>2]|0,!k){Xe=84;break t}if(k=H7(Or,k)|0,M=k+M|0,(M|0)>(l|0)){Xe=84;break t}if(os(s,Or,k),M>>>0>=l>>>0){Xe=84;break}else F=F+4|0}}while(!1);if((Xe|0)==67)Xe=0,F=(l|0)!=0|(F|0)!=0,Qe=(k|0)!=0|F,F=((F^1)&1)+(Ge-oe)|0,l=Qe?oe:_e,oe=_e,F=Qe?(k|0)>(F|0)?k:F:k,k=(k|0)>-1?We&-65537:We;else if((Xe|0)==84){Xe=0,Es(s,32,B,l,Qe^8192),B=(B|0)>(l|0)?B:l,l=rt;continue}Oe=oe-l|0,We=(F|0)<(Oe|0)?Oe:F,Qe=We+M|0,B=(B|0)<(Qe|0)?Qe:B,Es(s,32,B,Qe,k),os(s,j,M),Es(s,48,B,Qe,k^65536),Es(s,48,We,Oe,0),os(s,l,Oe),Es(s,32,B,Qe,k^8192),l=rt}e:do if((Xe|0)==87&&!s)if(!O)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(_7(f+(m<<3)|0,l,c),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(!1);return C=lr,m|0}function B4e(s){return s=s|0,0}function v4e(s){s=s|0}function os(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]&32||M4e(l,c,s)|0}function U7(s){s=s|0;var l=0,c=0,f=0;if(c=n[s>>2]|0,f=(o[c>>0]|0)+-48|0,f>>>0<10){l=0;do l=f+(l*10|0)|0,c=c+1|0,n[s>>2]=c,f=(o[c>>0]|0)+-48|0;while(f>>>0<10)}else l=0;return l|0}function _7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,n[s>>2]=l;break e}case 10:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=0;break e}case 12:{f=(n[c>>2]|0)+7&-8,l=f,d=n[l>>2]|0,l=n[l+4>>2]|0,n[c>>2]=f+8,f=s,n[f>>2]=d,n[f+4>>2]=l;break e}case 13:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,f=(f&65535)<<16>>16,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 14:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&65535,n[d+4>>2]=0;break e}case 15:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,f=(f&255)<<24>>24,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 16:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&255,n[d+4>>2]=0;break e}case 17:{d=(n[c>>2]|0)+7&-8,m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}case 18:{d=(n[c>>2]|0)+7&-8,m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}default:break e}while(!1);while(!1)}function D4e(s,l,c,f){if(s=s|0,l=l|0,c=c|0,f=f|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=u[5694+(s&15)>>0]|0|f,s=GD(s|0,l|0,4)|0,l=Ce;while(!((s|0)==0&(l|0)==0));return c|0}function P4e(s,l,c){if(s=s|0,l=l|0,c=c|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=s&7|48,s=GD(s|0,l|0,3)|0,l=Ce;while(!((s|0)==0&(l|0)==0));return c|0}function nm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if(l>>>0>0|(l|0)==0&s>>>0>4294967295){for(;f=AT(s|0,l|0,10,0)|0,c=c+-1|0,o[c>>0]=f&255|48,f=s,s=uT(s|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&f>>>0>4294967295;)l=Ce;l=s}else l=s;if(l)for(;c=c+-1|0,o[c>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return c|0}function S4e(s){return s=s|0,T4e(s,n[(R4e()|0)+188>>2]|0)|0}function b4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;m=l&255,f=(c|0)!=0;e:do if(f&(s&3|0)!=0)for(d=l&255;;){if((o[s>>0]|0)==d<<24>>24){B=6;break e}if(s=s+1|0,c=c+-1|0,f=(c|0)!=0,!(f&(s&3|0)!=0)){B=5;break}}else B=5;while(!1);(B|0)==5&&(f?B=6:c=0);e:do if((B|0)==6&&(d=l&255,(o[s>>0]|0)!=d<<24>>24)){f=He(m,16843009)|0;t:do if(c>>>0>3){for(;m=n[s>>2]^f,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(s=s+4|0,c=c+-4|0,c>>>0<=3){B=11;break t}}else B=11;while(!1);if((B|0)==11&&!c){c=0;break}for(;;){if((o[s>>0]|0)==d<<24>>24)break e;if(s=s+1|0,c=c+-1|0,!c){c=0;break}}}while(!1);return(c|0?s:0)|0}function Es(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0;if(B=C,C=C+256|0,m=B,(c|0)>(f|0)&(d&73728|0)==0){if(d=c-f|0,sm(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=c-f|0;do os(s,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}os(s,m,d)}C=B}function H7(s,l){return s=s|0,l=l|0,s?s=Q4e(s,l,0)|0:s=0,s|0}function x4e(s,l,c,f,d,m){s=s|0,l=+l,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0,ct=0,_e=0,Ge=0,Lt=0,_r=0,ur=0,Zt=0,kr=0,Or=0,lr=0,Nn=0;Nn=C,C=C+560|0,F=Nn+8|0,rt=Nn,lr=Nn+524|0,Or=lr,M=Nn+512|0,n[rt>>2]=0,kr=M+12|0,q7(l)|0,(Ce|0)<0?(l=-l,ur=1,_r=5659):(ur=(d&2049|0)!=0&1,_r=d&2048|0?5662:d&1|0?5665:5660),q7(l)|0,Zt=Ce&2146435072;do if(Zt>>>0<2146435072|(Zt|0)==2146435072&!1){if(We=+k4e(l,rt)*2,B=We!=0,B&&(n[rt>>2]=(n[rt>>2]|0)+-1),ct=m|32,(ct|0)==97){Oe=m&32,oe=Oe|0?_r+9|0:_r,j=ur|2,B=12-f|0;do if(f>>>0>11|(B|0)==0)l=We;else{l=8;do B=B+-1|0,l=l*16;while(B|0);if((o[oe>>0]|0)==45){l=-(l+(-We-l));break}else{l=We+l-l;break}}while(!1);k=n[rt>>2]|0,B=(k|0)<0?0-k|0:k,B=nm(B,((B|0)<0)<<31>>31,kr)|0,(B|0)==(kr|0)&&(B=M+11|0,o[B>>0]=48),o[B+-1>>0]=(k>>31&2)+43,O=B+-2|0,o[O>>0]=m+15,M=(f|0)<1,F=(d&8|0)==0,B=lr;do Zt=~~l,k=B+1|0,o[B>>0]=u[5694+Zt>>0]|Oe,l=(l-+(Zt|0))*16,(k-Or|0)==1&&!(F&(M&l==0))?(o[k>>0]=46,B=B+2|0):B=k;while(l!=0);Zt=B-Or|0,Or=kr-O|0,kr=(f|0)!=0&(Zt+-2|0)<(f|0)?f+2|0:Zt,B=Or+j+kr|0,Es(s,32,c,B,d),os(s,oe,j),Es(s,48,c,B,d^65536),os(s,lr,Zt),Es(s,48,kr-Zt|0,0,0),os(s,O,Or),Es(s,32,c,B,d^8192);break}k=(f|0)<0?6:f,B?(B=(n[rt>>2]|0)+-28|0,n[rt>>2]=B,l=We*268435456):(l=We,B=n[rt>>2]|0),Zt=(B|0)<0?F:F+288|0,F=Zt;do Ge=~~l>>>0,n[F>>2]=Ge,F=F+4|0,l=(l-+(Ge>>>0))*1e9;while(l!=0);if((B|0)>0)for(M=Zt,j=F;;){if(O=(B|0)<29?B:29,B=j+-4|0,B>>>0>=M>>>0){F=0;do _e=V7(n[B>>2]|0,0,O|0)|0,_e=cT(_e|0,Ce|0,F|0,0)|0,Ge=Ce,Xe=AT(_e|0,Ge|0,1e9,0)|0,n[B>>2]=Xe,F=uT(_e|0,Ge|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=M>>>0);F&&(M=M+-4|0,n[M>>2]=F)}for(F=j;!(F>>>0<=M>>>0);)if(B=F+-4|0,!(n[B>>2]|0))F=B;else break;if(B=(n[rt>>2]|0)-O|0,n[rt>>2]=B,(B|0)>0)j=F;else break}else M=Zt;if((B|0)<0){f=((k+25|0)/9|0)+1|0,Qe=(ct|0)==102;do{if(Oe=0-B|0,Oe=(Oe|0)<9?Oe:9,M>>>0>>0){O=(1<>>Oe,oe=0,B=M;do Ge=n[B>>2]|0,n[B>>2]=(Ge>>>Oe)+oe,oe=He(Ge&O,j)|0,B=B+4|0;while(B>>>0>>0);B=n[M>>2]|0?M:M+4|0,oe?(n[F>>2]=oe,M=B,B=F+4|0):(M=B,B=F)}else M=n[M>>2]|0?M:M+4|0,B=F;F=Qe?Zt:M,F=(B-F>>2|0)>(f|0)?F+(f<<2)|0:B,B=(n[rt>>2]|0)+Oe|0,n[rt>>2]=B}while((B|0)<0);B=M,f=F}else B=M,f=F;if(Ge=Zt,B>>>0>>0){if(F=(Ge-B>>2)*9|0,O=n[B>>2]|0,O>>>0>=10){M=10;do M=M*10|0,F=F+1|0;while(O>>>0>=M>>>0)}}else F=0;if(Qe=(ct|0)==103,Xe=(k|0)!=0,M=k-((ct|0)!=102?F:0)+((Xe&Qe)<<31>>31)|0,(M|0)<(((f-Ge>>2)*9|0)+-9|0)){if(M=M+9216|0,Oe=Zt+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){O=10;do O=O*10|0,M=M+1|0;while((M|0)!=9)}else O=10;if(j=n[Oe>>2]|0,oe=(j>>>0)%(O>>>0)|0,M=(Oe+4|0)==(f|0),M&(oe|0)==0)M=Oe;else if(We=((j>>>0)/(O>>>0)|0)&1|0?9007199254740994:9007199254740992,_e=(O|0)/2|0,l=oe>>>0<_e>>>0?.5:M&(oe|0)==(_e|0)?1:1.5,ur&&(_e=(o[_r>>0]|0)==45,l=_e?-l:l,We=_e?-We:We),M=j-oe|0,n[Oe>>2]=M,We+l!=We){if(_e=M+O|0,n[Oe>>2]=_e,_e>>>0>999999999)for(F=Oe;M=F+-4|0,n[F>>2]=0,M>>>0>>0&&(B=B+-4|0,n[B>>2]=0),_e=(n[M>>2]|0)+1|0,n[M>>2]=_e,_e>>>0>999999999;)F=M;else M=Oe;if(F=(Ge-B>>2)*9|0,j=n[B>>2]|0,j>>>0>=10){O=10;do O=O*10|0,F=F+1|0;while(j>>>0>=O>>>0)}}else M=Oe;M=M+4|0,M=f>>>0>M>>>0?M:f,_e=B}else M=f,_e=B;for(ct=M;;){if(ct>>>0<=_e>>>0){rt=0;break}if(B=ct+-4|0,!(n[B>>2]|0))ct=B;else{rt=1;break}}f=0-F|0;do if(Qe)if(B=((Xe^1)&1)+k|0,(B|0)>(F|0)&(F|0)>-5?(O=m+-1|0,k=B+-1-F|0):(O=m+-2|0,k=B+-1|0),B=d&8,B)Oe=B;else{if(rt&&(Lt=n[ct+-4>>2]|0,(Lt|0)!=0))if((Lt>>>0)%10|0)M=0;else{M=0,B=10;do B=B*10|0,M=M+1|0;while(!((Lt>>>0)%(B>>>0)|0|0))}else M=9;if(B=((ct-Ge>>2)*9|0)+-9|0,(O|32|0)==102){Oe=B-M|0,Oe=(Oe|0)>0?Oe:0,k=(k|0)<(Oe|0)?k:Oe,Oe=0;break}else{Oe=B+F-M|0,Oe=(Oe|0)>0?Oe:0,k=(k|0)<(Oe|0)?k:Oe,Oe=0;break}}else O=m,Oe=d&8;while(!1);if(Qe=k|Oe,j=(Qe|0)!=0&1,oe=(O|32|0)==102,oe)Xe=0,B=(F|0)>0?F:0;else{if(B=(F|0)<0?f:F,B=nm(B,((B|0)<0)<<31>>31,kr)|0,M=kr,(M-B|0)<2)do B=B+-1|0,o[B>>0]=48;while((M-B|0)<2);o[B+-1>>0]=(F>>31&2)+43,B=B+-2|0,o[B>>0]=O,Xe=B,B=M-B|0}if(B=ur+1+k+j+B|0,Es(s,32,c,B,d),os(s,_r,ur),Es(s,48,c,B,d^65536),oe){O=_e>>>0>Zt>>>0?Zt:_e,Oe=lr+9|0,j=Oe,oe=lr+8|0,M=O;do{if(F=nm(n[M>>2]|0,0,Oe)|0,(M|0)==(O|0))(F|0)==(Oe|0)&&(o[oe>>0]=48,F=oe);else if(F>>>0>lr>>>0){sm(lr|0,48,F-Or|0)|0;do F=F+-1|0;while(F>>>0>lr>>>0)}os(s,F,j-F|0),M=M+4|0}while(M>>>0<=Zt>>>0);if(Qe|0&&os(s,5710,1),M>>>0>>0&(k|0)>0)for(;;){if(F=nm(n[M>>2]|0,0,Oe)|0,F>>>0>lr>>>0){sm(lr|0,48,F-Or|0)|0;do F=F+-1|0;while(F>>>0>lr>>>0)}if(os(s,F,(k|0)<9?k:9),M=M+4|0,F=k+-9|0,M>>>0>>0&(k|0)>9)k=F;else{k=F;break}}Es(s,48,k+9|0,9,0)}else{if(Qe=rt?ct:_e+4|0,(k|0)>-1){rt=lr+9|0,Oe=(Oe|0)==0,f=rt,j=0-Or|0,oe=lr+8|0,O=_e;do{F=nm(n[O>>2]|0,0,rt)|0,(F|0)==(rt|0)&&(o[oe>>0]=48,F=oe);do if((O|0)==(_e|0)){if(M=F+1|0,os(s,F,1),Oe&(k|0)<1){F=M;break}os(s,5710,1),F=M}else{if(F>>>0<=lr>>>0)break;sm(lr|0,48,F+j|0)|0;do F=F+-1|0;while(F>>>0>lr>>>0)}while(!1);Or=f-F|0,os(s,F,(k|0)>(Or|0)?Or:k),k=k-Or|0,O=O+4|0}while(O>>>0>>0&(k|0)>-1)}Es(s,48,k+18|0,18,0),os(s,Xe,kr-Xe|0)}Es(s,32,c,B,d^8192)}else lr=(m&32|0)!=0,B=ur+3|0,Es(s,32,c,B,d&-65537),os(s,_r,ur),os(s,l!=l|!1?lr?5686:5690:lr?5678:5682,3),Es(s,32,c,B,d^8192);while(!1);return C=Nn,((B|0)<(c|0)?c:B)|0}function q7(s){s=+s;var l=0;return E[D>>3]=s,l=n[D>>2]|0,Ce=n[D+4>>2]|0,l|0}function k4e(s,l){return s=+s,l=l|0,+ +j7(s,l)}function j7(s,l){s=+s,l=l|0;var c=0,f=0,d=0;switch(E[D>>3]=s,c=n[D>>2]|0,f=n[D+4>>2]|0,d=GD(c|0,f|0,52)|0,d&2047){case 0:{s!=0?(s=+j7(s*18446744073709552e3,l),c=(n[l>>2]|0)+-64|0):c=0,n[l>>2]=c;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[D>>2]=c,n[D+4>>2]=f&-2146435073|1071644672,s=+E[D>>3]}return+s}function Q4e(s,l,c){s=s|0,l=l|0,c=c|0;do if(s){if(l>>>0<128){o[s>>0]=l,s=1;break}if(!(n[n[(F4e()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){o[s>>0]=l,s=1;break}else{n[(rm()|0)>>2]=84,s=-1;break}if(l>>>0<2048){o[s>>0]=l>>>6|192,o[s+1>>0]=l&63|128,s=2;break}if(l>>>0<55296|(l&-8192|0)==57344){o[s>>0]=l>>>12|224,o[s+1>>0]=l>>>6&63|128,o[s+2>>0]=l&63|128,s=3;break}if((l+-65536|0)>>>0<1048576){o[s>>0]=l>>>18|240,o[s+1>>0]=l>>>12&63|128,o[s+2>>0]=l>>>6&63|128,o[s+3>>0]=l&63|128,s=4;break}else{n[(rm()|0)>>2]=84,s=-1;break}}else s=1;while(!1);return s|0}function F4e(){return oT()|0}function R4e(){return oT()|0}function T4e(s,l){s=s|0,l=l|0;var c=0,f=0;for(f=0;;){if((u[5712+f>>0]|0)==(s|0)){s=2;break}if(c=f+1|0,(c|0)==87){c=5800,f=87,s=5;break}else f=c}if((s|0)==2&&(f?(c=5800,s=5):c=5800),(s|0)==5)for(;;){do s=c,c=c+1|0;while(o[s>>0]|0);if(f=f+-1|0,f)s=5;else break}return N4e(c,n[l+20>>2]|0)|0}function N4e(s,l){return s=s|0,l=l|0,L4e(s,l)|0}function L4e(s,l){return s=s|0,l=l|0,l?l=O4e(n[l>>2]|0,n[l+4>>2]|0,s)|0:l=0,(l|0?l:s)|0}function O4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;oe=(n[s>>2]|0)+1794895138|0,m=O0(n[s+8>>2]|0,oe)|0,f=O0(n[s+12>>2]|0,oe)|0,d=O0(n[s+16>>2]|0,oe)|0;e:do if(m>>>0>>2>>>0&&(j=l-(m<<2)|0,f>>>0>>0&d>>>0>>0)&&!((d|f)&3|0)){for(j=f>>>2,O=d>>>2,M=0;;){if(k=m>>>1,F=M+k|0,B=F<<1,d=B+j|0,f=O0(n[s+(d<<2)>>2]|0,oe)|0,d=O0(n[s+(d+1<<2)>>2]|0,oe)|0,!(d>>>0>>0&f>>>0<(l-d|0)>>>0)){f=0;break e}if(o[s+(d+f)>>0]|0){f=0;break e}if(f=O7(c,s+d|0)|0,!f)break;if(f=(f|0)<0,(m|0)==1){f=0;break e}else M=f?M:F,m=f?k:m-k|0}f=B+O|0,d=O0(n[s+(f<<2)>>2]|0,oe)|0,f=O0(n[s+(f+1<<2)>>2]|0,oe)|0,f>>>0>>0&d>>>0<(l-f|0)>>>0?f=o[s+(f+d)>>0]|0?0:s+f|0:f=0}else f=0;while(!1);return f|0}function O0(s,l){s=s|0,l=l|0;var c=0;return c=X7(s|0)|0,(l|0?c:s)|0}function M4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=c+16|0,d=n[f>>2]|0,d?m=5:U4e(c)|0?f=0:(d=n[f>>2]|0,m=5);e:do if((m|0)==5){if(k=c+20|0,B=n[k>>2]|0,f=B,(d-B|0)>>>0>>0){f=YD[n[c+36>>2]&7](c,s,l)|0;break}t:do if((o[c+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=s;break t}if(d=B+-1|0,(o[s+d>>0]|0)==10)break;B=d}if(f=YD[n[c+36>>2]&7](c,s,B)|0,f>>>0>>0)break e;m=B,d=s+B|0,l=l-B|0,f=n[k>>2]|0}else m=0,d=s;while(!1);xr(f|0,d|0,l|0)|0,n[k>>2]=(n[k>>2]|0)+l,f=m+l|0}while(!1);return f|0}function U4e(s){s=s|0;var l=0,c=0;return l=s+74|0,c=o[l>>0]|0,o[l>>0]=c+255|c,l=n[s>>2]|0,l&8?(n[s>>2]=l|32,s=-1):(n[s+8>>2]=0,n[s+4>>2]=0,c=n[s+44>>2]|0,n[s+28>>2]=c,n[s+20>>2]=c,n[s+16>>2]=c+(n[s+48>>2]|0),s=0),s|0}function Yn(s,l){s=y(s),l=y(l);var c=0,f=0;c=G7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=G7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?l:s;break}else{s=s>2]=s,n[D>>2]|0|0}function M0(s,l){s=y(s),l=y(l);var c=0,f=0;c=W7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=W7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?s:l;break}else{s=s>2]=s,n[D>>2]|0|0}function lT(s,l){s=y(s),l=y(l);var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0;m=(h[D>>2]=s,n[D>>2]|0),k=(h[D>>2]=l,n[D>>2]|0),c=m>>>23&255,B=k>>>23&255,F=m&-2147483648,d=k<<1;e:do if(d|0&&!((c|0)==255|((_4e(l)|0)&2147483647)>>>0>2139095040)){if(f=m<<1,f>>>0<=d>>>0)return l=y(s*y(0)),y((f|0)==(d|0)?l:s);if(c)f=m&8388607|8388608;else{if(c=m<<9,(c|0)>-1){f=c,c=0;do c=c+-1|0,f=f<<1;while((f|0)>-1)}else c=0;f=m<<1-c}if(B)k=k&8388607|8388608;else{if(m=k<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,k=k<<1-d}d=f-k|0,m=(d|0)>-1;t:do if((c|0)>(B|0)){for(;;){if(m)if(d)f=d;else break;if(f=f<<1,c=c+-1|0,d=f-k|0,m=(d|0)>-1,(c|0)<=(B|0))break t}l=y(s*y(0));break e}while(!1);if(m)if(d)f=d;else{l=y(s*y(0));break}if(f>>>0<8388608)do f=f<<1,c=c+-1|0;while(f>>>0<8388608);(c|0)>0?c=f+-8388608|c<<23:c=f>>>(1-c|0),l=(n[D>>2]=c|F,y(h[D>>2]))}else M=3;while(!1);return(M|0)==3&&(l=y(s*l),l=y(l/l)),y(l)}function _4e(s){return s=y(s),h[D>>2]=s,n[D>>2]|0|0}function H4e(s,l){return s=s|0,l=l|0,M7(n[582]|0,s,l)|0}function Zr(s){s=s|0,Tt()}function im(s){s=s|0}function q4e(s,l){return s=s|0,l=l|0,0}function j4e(s){return s=s|0,(Y7(s+4|0)|0)==-1?(ef[n[(n[s>>2]|0)+8>>2]&127](s),s=1):s=0,s|0}function Y7(s){s=s|0;var l=0;return l=n[s>>2]|0,n[s>>2]=l+-1,l+-1|0}function Rp(s){s=s|0,j4e(s)|0&&G4e(s)}function G4e(s){s=s|0;var l=0;l=s+8|0,n[l>>2]|0&&(Y7(l)|0)!=-1||ef[n[(n[s>>2]|0)+16>>2]&127](s)}function Yt(s){s=s|0;var l=0;for(l=s|0?s:1;s=_D(l)|0,!(s|0);){if(s=Y4e()|0,!s){s=0;break}aW[s&0]()}return s|0}function K7(s){return s=s|0,Yt(s)|0}function yt(s){s=s|0,HD(s)}function W4e(s){s=s|0,(o[s+11>>0]|0)<0&&yt(n[s>>2]|0)}function Y4e(){var s=0;return s=n[2923]|0,n[2923]=s+0,s|0}function K4e(){}function jD(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f=l-f-(c>>>0>s>>>0|0)>>>0,Ce=f,s-c>>>0|0|0}function cT(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,c=s+c>>>0,Ce=l+f+(c>>>0>>0|0)>>>0,c|0|0}function sm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(m=s+c|0,l=l&255,(c|0)>=67){for(;s&3;)o[s>>0]=l,s=s+1|0;for(f=m&-4|0,d=f-64|0,B=l|l<<8|l<<16|l<<24;(s|0)<=(d|0);)n[s>>2]=B,n[s+4>>2]=B,n[s+8>>2]=B,n[s+12>>2]=B,n[s+16>>2]=B,n[s+20>>2]=B,n[s+24>>2]=B,n[s+28>>2]=B,n[s+32>>2]=B,n[s+36>>2]=B,n[s+40>>2]=B,n[s+44>>2]=B,n[s+48>>2]=B,n[s+52>>2]=B,n[s+56>>2]=B,n[s+60>>2]=B,s=s+64|0;for(;(s|0)<(f|0);)n[s>>2]=B,s=s+4|0}for(;(s|0)<(m|0);)o[s>>0]=l,s=s+1|0;return m-c|0}function V7(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(Ce=l<>>32-c,s<>>c,s>>>c|(l&(1<>>c-32|0)}function xr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;if((c|0)>=8192)return FA(s|0,l|0,c|0)|0;if(m=s|0,d=s+c|0,(s&3)==(l&3)){for(;s&3;){if(!c)return m|0;o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0,c=c-1|0}for(c=d&-4|0,f=c-64|0;(s|0)<=(f|0);)n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2],n[s+16>>2]=n[l+16>>2],n[s+20>>2]=n[l+20>>2],n[s+24>>2]=n[l+24>>2],n[s+28>>2]=n[l+28>>2],n[s+32>>2]=n[l+32>>2],n[s+36>>2]=n[l+36>>2],n[s+40>>2]=n[l+40>>2],n[s+44>>2]=n[l+44>>2],n[s+48>>2]=n[l+48>>2],n[s+52>>2]=n[l+52>>2],n[s+56>>2]=n[l+56>>2],n[s+60>>2]=n[l+60>>2],s=s+64|0,l=l+64|0;for(;(s|0)<(c|0);)n[s>>2]=n[l>>2],s=s+4|0,l=l+4|0}else for(c=d-4|0;(s|0)<(c|0);)o[s>>0]=o[l>>0]|0,o[s+1>>0]=o[l+1>>0]|0,o[s+2>>0]=o[l+2>>0]|0,o[s+3>>0]=o[l+3>>0]|0,s=s+4|0,l=l+4|0;for(;(s|0)<(d|0);)o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0;return m|0}function J7(s){s=s|0;var l=0;return l=o[L+(s&255)>>0]|0,(l|0)<8?l|0:(l=o[L+(s>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=o[L+(s>>16&255)>>0]|0,(l|0)<8?l+16|0:(o[L+(s>>>24)>>0]|0)+24|0))}function z7(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0;if(O=s,F=l,M=F,B=c,oe=f,k=oe,!M)return m=(d|0)!=0,k?m?(n[d>>2]=s|0,n[d+4>>2]=l&0,oe=0,d=0,Ce=oe,d|0):(oe=0,d=0,Ce=oe,d|0):(m&&(n[d>>2]=(O>>>0)%(B>>>0),n[d+4>>2]=0),oe=0,d=(O>>>0)/(B>>>0)>>>0,Ce=oe,d|0);m=(k|0)==0;do if(B){if(!m){if(m=(S(k|0)|0)-(S(M|0)|0)|0,m>>>0<=31){j=m+1|0,k=31-m|0,l=m-31>>31,B=j,s=O>>>(j>>>0)&l|M<>>(j>>>0)&l,m=0,k=O<>2]=s|0,n[d+4>>2]=F|l&0,oe=0,d=0,Ce=oe,d|0):(oe=0,d=0,Ce=oe,d|0)}if(m=B-1|0,m&B|0){k=(S(B|0)|0)+33-(S(M|0)|0)|0,Oe=64-k|0,j=32-k|0,F=j>>31,We=k-32|0,l=We>>31,B=k,s=j-1>>31&M>>>(We>>>0)|(M<>>(k>>>0))&l,l=l&M>>>(k>>>0),m=O<>>(We>>>0))&F|O<>31;break}return d|0&&(n[d>>2]=m&O,n[d+4>>2]=0),(B|0)==1?(We=F|l&0,Oe=s|0|0,Ce=We,Oe|0):(Oe=J7(B|0)|0,We=M>>>(Oe>>>0)|0,Oe=M<<32-Oe|O>>>(Oe>>>0)|0,Ce=We,Oe|0)}else{if(m)return d|0&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),We=0,Oe=(M>>>0)/(B>>>0)>>>0,Ce=We,Oe|0;if(!O)return d|0&&(n[d>>2]=0,n[d+4>>2]=(M>>>0)%(k>>>0)),We=0,Oe=(M>>>0)/(k>>>0)>>>0,Ce=We,Oe|0;if(m=k-1|0,!(m&k))return d|0&&(n[d>>2]=s|0,n[d+4>>2]=m&M|l&0),We=0,Oe=M>>>((J7(k|0)|0)>>>0),Ce=We,Oe|0;if(m=(S(k|0)|0)-(S(M|0)|0)|0,m>>>0<=30){l=m+1|0,k=31-m|0,B=l,s=M<>>(l>>>0),l=M>>>(l>>>0),m=0,k=O<>2]=s|0,n[d+4>>2]=F|l&0,We=0,Oe=0,Ce=We,Oe|0):(We=0,Oe=0,Ce=We,Oe|0)}while(!1);if(!B)M=k,F=0,k=0;else{j=c|0|0,O=oe|f&0,M=cT(j|0,O|0,-1,-1)|0,c=Ce,F=k,k=0;do f=F,F=m>>>31|F<<1,m=k|m<<1,f=s<<1|f>>>31|0,oe=s>>>31|l<<1|0,jD(M|0,c|0,f|0,oe|0)|0,Oe=Ce,We=Oe>>31|((Oe|0)<0?-1:0)<<1,k=We&1,s=jD(f|0,oe|0,We&j|0,(((Oe|0)<0?-1:0)>>31|((Oe|0)<0?-1:0)<<1)&O|0)|0,l=Ce,B=B-1|0;while(B|0);M=F,F=0}return B=0,d|0&&(n[d>>2]=s,n[d+4>>2]=l),We=(m|0)>>>31|(M|B)<<1|(B<<1|m>>>31)&0|F,Oe=(m<<1|0)&-2|k,Ce=We,Oe|0}function uT(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,z7(s,l,c,f,0)|0}function Tp(s){s=s|0;var l=0,c=0;return c=s+15&-16|0,l=n[w>>2]|0,s=l+c|0,(c|0)>0&(s|0)<(l|0)|(s|0)<0?(se()|0,yc(12),-1):(n[w>>2]=s,(s|0)>($()|0)&&!(X()|0)?(n[w>>2]=l,yc(12),-1):l|0)}function rw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if((l|0)<(s|0)&(s|0)<(l+c|0)){for(f=s,l=l+c|0,s=s+c|0;(c|0)>0;)s=s-1|0,l=l-1|0,c=c-1|0,o[s>>0]=o[l>>0]|0;s=f}else xr(s,l,c)|0;return s|0}function AT(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;return m=C,C=C+16|0,d=m|0,z7(s,l,c,f,d)|0,C=m,Ce=n[d+4>>2]|0,n[d>>2]|0|0}function X7(s){return s=s|0,(s&255)<<24|(s>>8&255)<<16|(s>>16&255)<<8|s>>>24|0}function V4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,Z7[s&1](l|0,c|0,f|0,d|0,m|0)}function J4e(s,l,c){s=s|0,l=l|0,c=y(c),$7[s&1](l|0,y(c))}function z4e(s,l,c){s=s|0,l=l|0,c=+c,eW[s&31](l|0,+c)}function X4e(s,l,c,f){return s=s|0,l=l|0,c=y(c),f=y(f),y(tW[s&0](l|0,y(c),y(f)))}function Z4e(s,l){s=s|0,l=l|0,ef[s&127](l|0)}function $4e(s,l,c){s=s|0,l=l|0,c=c|0,tf[s&31](l|0,c|0)}function e3e(s,l){return s=s|0,l=l|0,_0[s&31](l|0)|0}function t3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,rW[s&1](l|0,+c,+f,d|0)}function r3e(s,l,c,f){s=s|0,l=l|0,c=+c,f=+f,L3e[s&1](l|0,+c,+f)}function n3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,YD[s&7](l|0,c|0,f|0)|0}function i3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,+O3e[s&1](l|0,c|0,f|0)}function s3e(s,l){return s=s|0,l=l|0,+nW[s&15](l|0)}function o3e(s,l,c){return s=s|0,l=l|0,c=+c,M3e[s&1](l|0,+c)|0}function a3e(s,l,c){return s=s|0,l=l|0,c=c|0,pT[s&15](l|0,c|0)|0}function l3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=+f,d=+d,m=m|0,U3e[s&1](l|0,c|0,+f,+d,m|0)}function c3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,_3e[s&1](l|0,c|0,f|0,d|0,m|0,B|0)}function u3e(s,l,c){return s=s|0,l=l|0,c=c|0,+iW[s&7](l|0,c|0)}function A3e(s){return s=s|0,KD[s&7]()|0}function f3e(s,l,c,f,d,m){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,sW[s&1](l|0,c|0,f|0,d|0,m|0)|0}function p3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=+d,H3e[s&1](l|0,c|0,f|0,+d)}function h3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,oW[s&1](l|0,c|0,y(f),d|0,y(m),B|0)}function g3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,sw[s&15](l|0,c|0,f|0)}function d3e(s){s=s|0,aW[s&0]()}function m3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,lW[s&15](l|0,c|0,+f)}function y3e(s,l,c){return s=s|0,l=+l,c=+c,q3e[s&1](+l,+c)|0}function E3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,hT[s&15](l|0,c|0,f|0,d|0)}function C3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,R(0)}function I3e(s,l){s=s|0,l=y(l),R(1)}function Ca(s,l){s=s|0,l=+l,R(2)}function w3e(s,l,c){return s=s|0,l=y(l),c=y(c),R(3),Ze}function Cr(s){s=s|0,R(4)}function nw(s,l){s=s|0,l=l|0,R(5)}function tl(s){return s=s|0,R(6),0}function B3e(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,R(7)}function v3e(s,l,c){s=s|0,l=+l,c=+c,R(8)}function D3e(s,l,c){return s=s|0,l=l|0,c=c|0,R(9),0}function P3e(s,l,c){return s=s|0,l=l|0,c=c|0,R(10),0}function U0(s){return s=s|0,R(11),0}function S3e(s,l){return s=s|0,l=+l,R(12),0}function iw(s,l){return s=s|0,l=l|0,R(13),0}function b3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,R(14)}function x3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,R(15)}function fT(s,l){return s=s|0,l=l|0,R(16),0}function k3e(){return R(17),0}function Q3e(s,l,c,f,d){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,R(18),0}function F3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,R(19)}function R3e(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,R(20)}function WD(s,l,c){s=s|0,l=l|0,c=c|0,R(21)}function T3e(){R(22)}function om(s,l,c){s=s|0,l=l|0,c=+c,R(23)}function N3e(s,l){return s=+s,l=+l,R(24),0}function am(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,R(25)}var Z7=[C3e,QLe],$7=[I3e,Od],eW=[Ca,B0,vp,UI,_I,HI,qI,ku,Wd,jI,Qu,v0,D0,GI,WI,xc,P0,YI,Yd,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca],tW=[w3e],ef=[Cr,im,ADe,fDe,pDe,qbe,jbe,Gbe,oNe,aNe,lNe,yLe,ELe,CLe,_Ue,HUe,qUe,qa,w0,NI,ir,xl,xD,kD,tDe,IDe,RDe,XDe,pPe,kPe,KPe,lSe,BSe,USe,tbe,mbe,Rbe,axe,Bxe,Uxe,tke,mke,Rke,Zke,pQe,SQe,jQe,dD,CFe,LFe,tRe,ERe,TRe,tTe,ATe,hTe,QTe,TTe,XTe,uNe,pNe,kNe,VNe,MG,xOe,oMe,IMe,LMe,iUe,EUe,kUe,RUe,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr],tf=[nw,qd,YF,LI,OI,Sr,Os,Oi,ms,is,Gd,Bp,VI,ID,x0,JF,zF,wD,BD,$F,Fu,ne,rQe,dQe,BRe,FOe,rLe,w7,nw,nw,nw,nw],_0=[tl,m4e,_d,b0,Vd,qo,mD,Dp,KI,VF,ED,Jd,vD,eR,Zd,YQe,MRe,RNe,LOe,Za,tl,tl,tl,tl,tl,tl,tl,tl,tl,tl,tl,tl],rW=[B3e,sR],L3e=[v3e,eNe],YD=[D3e,L7,y4e,I4e,TPe,Axe,vFe,_Me],O3e=[P3e,sbe],nW=[U0,Pp,CD,JA,oR,v,P,Q,H,Y,U0,U0,U0,U0,U0,U0],M3e=[S3e,lTe],pT=[iw,q4e,DD,sDe,tPe,zPe,ASe,Obe,Sxe,QQe,Md,DMe,iw,iw,iw,iw],U3e=[b3e,ODe],_3e=[x3e,lUe],iW=[fT,XF,Be,Ue,ft,Ibe,fT,fT],KD=[k3e,jt,Ud,gD,yTe,MTe,mNe,OUe],sW=[Q3e,kd],H3e=[F3e,ske],oW=[R3e,tR],sw=[WD,oo,yD,ZF,Qc,mPe,PSe,Ike,Oke,WF,eOe,uMe,BUe,WD,WD,WD],aW=[T3e],lW=[om,KF,jd,VA,MI,kc,Kd,S0,jxe,_Fe,iTe,om,om,om,om,om],q3e=[N3e,iNe],hT=[am,jSe,eFe,sRe,KRe,vTe,GTe,vNe,$Ne,qOe,VUe,am,am,am,am,am];return{_llvm_bswap_i32:X7,dynCall_idd:y3e,dynCall_i:A3e,_i64Subtract:jD,___udivdi3:uT,dynCall_vif:J4e,setThrew:Lo,dynCall_viii:g3e,_bitshift64Lshr:GD,_bitshift64Shl:V7,dynCall_vi:Z4e,dynCall_viiddi:l3e,dynCall_diii:i3e,dynCall_iii:a3e,_memset:sm,_sbrk:Tp,_memcpy:xr,__GLOBAL__sub_I_Yoga_cpp:FI,dynCall_vii:$4e,___uremdi3:AT,dynCall_vid:z4e,stackAlloc:ca,_nbind_init:s4e,getTempRet0:TA,dynCall_di:s3e,dynCall_iid:o3e,setTempRet0:RA,_i64Add:cT,dynCall_fiff:X4e,dynCall_iiii:n3e,_emscripten_get_global_libc:d4e,dynCall_viid:m3e,dynCall_viiid:p3e,dynCall_viififi:h3e,dynCall_ii:e3e,__GLOBAL__sub_I_Binding_cc:IOe,dynCall_viiii:E3e,dynCall_iiiiii:f3e,stackSave:mu,dynCall_viiiii:V4e,__GLOBAL__sub_I_nbind_cc:wr,dynCall_vidd:r3e,_free:HD,runPostSets:K4e,dynCall_viiiiii:c3e,establishStackSpace:dn,_memmove:rw,stackRestore:Bl,_malloc:_D,__GLOBAL__sub_I_common_cc:HNe,dynCall_viddi:t3e,dynCall_dii:u3e,dynCall_v:d3e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function o(){for(var p=0;p<3;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];o();for(var n=0;n0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(o){r=o(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var id=_((nKt,SCe)=>{"use strict";var xyt=DCe(),kyt=PCe(),pq=!1,hq=null;kyt({},function(t,e){if(!pq){if(pq=!0,t)throw t;hq=e}});if(!pq)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");SCe.exports=xyt(hq.bind,hq.lib)});var dq=_((iKt,gq)=>{"use strict";var bCe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);gq.exports=bCe;gq.exports.default=bCe});var kCe=_((sKt,xCe)=>{"use strict";xCe.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var PB=_((oKt,mq)=>{"use strict";var Qyt=pS(),Fyt=dq(),Ryt=kCe(),QCe=t=>{if(typeof t!="string"||t.length===0||(t=Qyt(t),t.length===0))return 0;t=t.replace(Ryt()," ");let e=0;for(let r=0;r=127&&o<=159||o>=768&&o<=879||(o>65535&&r++,e+=Fyt(o)?2:1)}return e};mq.exports=QCe;mq.exports.default=QCe});var Eq=_((aKt,yq)=>{"use strict";var Tyt=PB(),FCe=t=>{let e=0;for(let r of t.split(` +`))e=Math.max(e,Tyt(r));return e};yq.exports=FCe;yq.exports.default=FCe});var RCe=_(SB=>{"use strict";var Nyt=SB&&SB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(SB,"__esModule",{value:!0});var Lyt=Nyt(Eq()),Cq={};SB.default=t=>{if(t.length===0)return{width:0,height:0};if(Cq[t])return Cq[t];let e=Lyt.default(t),r=t.split(` +`).length;return Cq[t]={width:e,height:r},{width:e,height:r}}});var TCe=_(bB=>{"use strict";var Oyt=bB&&bB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(bB,"__esModule",{value:!0});var In=Oyt(id()),Myt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?In.default.POSITION_TYPE_ABSOLUTE:In.default.POSITION_TYPE_RELATIVE)},Uyt=(t,e)=>{"marginLeft"in e&&t.setMargin(In.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(In.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(In.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(In.default.EDGE_BOTTOM,e.marginBottom||0)},_yt=(t,e)=>{"paddingLeft"in e&&t.setPadding(In.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(In.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(In.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(In.default.EDGE_BOTTOM,e.paddingBottom||0)},Hyt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(In.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(In.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(In.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(In.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(In.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(In.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(In.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(In.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(In.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(In.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(In.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(In.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(In.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(In.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(In.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(In.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(In.default.JUSTIFY_SPACE_AROUND))},qyt=(t,e)=>{var r,o;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((o=e.minHeight)!==null&&o!==void 0?o:0))},jyt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?In.default.DISPLAY_FLEX:In.default.DISPLAY_NONE)},Gyt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(In.default.EDGE_TOP,r),t.setBorder(In.default.EDGE_BOTTOM,r),t.setBorder(In.default.EDGE_LEFT,r),t.setBorder(In.default.EDGE_RIGHT,r)}};bB.default=(t,e={})=>{Myt(t,e),Uyt(t,e),_yt(t,e),Hyt(t,e),qyt(t,e),jyt(t,e),Gyt(t,e)}});var OCe=_((uKt,LCe)=>{"use strict";var xB=PB(),Wyt=pS(),Yyt=qw(),wq=new Set(["\x1B","\x9B"]),Kyt=39,NCe=t=>`${wq.values().next().value}[${t}m`,Vyt=t=>t.split(" ").map(e=>xB(e)),Iq=(t,e,r)=>{let o=[...e],a=!1,n=xB(Wyt(t[t.length-1]));for(let[u,A]of o.entries()){let p=xB(A);if(n+p<=r?t[t.length-1]+=A:(t.push(A),n=0),wq.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(n+=p,n===r&&u0&&t.length>1&&(t[t.length-2]+=t.pop())},Jyt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(xB(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},zyt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let o="",a="",n,u=Vyt(t),A=[""];for(let[p,h]of t.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let E=xB(A[A.length-1]);if(p!==0&&(E>=e&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),E=0),(E>0||r.trim===!1)&&(A[A.length-1]+=" ",E++)),r.hard&&u[p]>e){let w=e-E,D=1+Math.floor((u[p]-w-1)/e);Math.floor((u[p]-1)/e)e&&E>0&&u[p]>0){if(r.wordWrap===!1&&Ee&&r.wordWrap===!1){Iq(A,h,e);continue}A[A.length-1]+=h}r.trim!==!1&&(A=A.map(Jyt)),o=A.join(` +`);for(let[p,h]of[...o].entries()){if(a+=h,wq.has(h)){let w=parseFloat(/\d[^m]*/.exec(o.slice(p,p+4)));n=w===Kyt?null:w}let E=Yyt.codes.get(Number(n));n&&E&&(o[p+1]===` +`?a+=NCe(E):h===` +`&&(a+=NCe(n)))}return a};LCe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,` +`).split(` +`).map(o=>zyt(o,e,r)).join(` +`)});var _Ce=_((AKt,UCe)=>{"use strict";var MCe="[\uD800-\uDBFF][\uDC00-\uDFFF]",Xyt=t=>t&&t.exact?new RegExp(`^${MCe}$`):new RegExp(MCe,"g");UCe.exports=Xyt});var Bq=_((fKt,GCe)=>{"use strict";var Zyt=dq(),$yt=_Ce(),HCe=qw(),jCe=["\x1B","\x9B"],vQ=t=>`${jCe[0]}[${t}m`,qCe=(t,e,r)=>{let o=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let u=HCe.codes.get(parseInt(a,10));if(u){let A=t.indexOf(u.toString());A>=0?t.splice(A,1):o.push(vQ(e?u:n))}else if(e){o.push(vQ(0));break}else o.push(vQ(n))}if(e&&(o=o.filter((a,n)=>o.indexOf(a)===n),r!==void 0)){let a=vQ(HCe.codes.get(parseInt(r,10)));o=o.reduce((n,u)=>u===a?[u,...n]:[...n,u],[])}return o.join("")};GCe.exports=(t,e,r)=>{let o=[...t.normalize()],a=[];r=typeof r=="number"?r:o.length;let n=!1,u,A=0,p="";for(let[h,E]of o.entries()){let w=!1;if(jCe.includes(E)){let D=/\d[^m]*/.exec(t.slice(h,h+18));u=D&&D.length>0?D[0]:void 0,Ae&&A<=r)p+=E;else if(A===e&&!n&&u!==void 0)p=qCe(a);else if(A>=r){p+=qCe(a,!0,u);break}}return p}});var YCe=_((pKt,WCe)=>{"use strict";var _h=Bq(),eEt=PB();function DQ(t,e,r){if(t.charAt(e)===" ")return e;for(let o=1;o<=3;o++)if(r){if(t.charAt(e+o)===" ")return e+o}else if(t.charAt(e-o)===" ")return e-o;return e}WCe.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:o,space:a,preferTruncationOnSpace:n}=r,u="\u2026",A=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return u;let p=eEt(t);if(p<=e)return t;if(o==="start"){if(n){let h=DQ(t,p-e+1,!0);return u+_h(t,h,p).trim()}return a===!0&&(u+=" ",A=2),u+_h(t,p-e+A,p)}if(o==="middle"){a===!0&&(u=" "+u+" ",A=3);let h=Math.floor(e/2);if(n){let E=DQ(t,h),w=DQ(t,p-(e-h)+1,!0);return _h(t,0,E)+u+_h(t,w,p).trim()}return _h(t,0,h)+u+_h(t,p-(e-h)+A,p)}if(o==="end"){if(n){let h=DQ(t,e-1);return _h(t,0,h)+u}return a===!0&&(u=" "+u,A=2),_h(t,0,e-A)+u}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${o}`)}});var Dq=_(kB=>{"use strict";var KCe=kB&&kB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(kB,"__esModule",{value:!0});var tEt=KCe(OCe()),rEt=KCe(YCe()),vq={};kB.default=(t,e,r)=>{let o=t+String(e)+String(r);if(vq[o])return vq[o];let a=t;if(r==="wrap"&&(a=tEt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=rEt.default(t,e,{position:n})}return vq[o]=a,a}});var Sq=_(Pq=>{"use strict";Object.defineProperty(Pq,"__esModule",{value:!0});var VCe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=VCe(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o))),e+=o}return e};Pq.default=VCe});var bq=_(Ei=>{"use strict";var QB=Ei&&Ei.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ei,"__esModule",{value:!0});Ei.setTextNodeValue=Ei.createTextNode=Ei.setStyle=Ei.setAttribute=Ei.removeChildNode=Ei.insertBeforeNode=Ei.appendChildNode=Ei.createNode=Ei.TEXT_NAME=void 0;var nEt=QB(id()),JCe=QB(RCe()),iEt=QB(TCe()),sEt=QB(Dq()),oEt=QB(Sq());Ei.TEXT_NAME="#text";Ei.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:nEt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(aEt.bind(null,r))),r};Ei.appendChildNode=(t,e)=>{var r;e.parentNode&&Ei.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&PQ(t)};Ei.insertBeforeNode=(t,e,r)=>{var o,a;e.parentNode&&Ei.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((o=t.yogaNode)===null||o===void 0||o.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&PQ(t)};Ei.removeChildNode=(t,e)=>{var r,o;e.yogaNode&&((o=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||o===void 0||o.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&PQ(t)};Ei.setAttribute=(t,e,r)=>{t.attributes[e]=r};Ei.setStyle=(t,e)=>{t.style=e,t.yogaNode&&iEt.default(t.yogaNode,e)};Ei.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaNode:void 0,parentNode:null,style:{}};return Ei.setTextNodeValue(e,t),e};var aEt=function(t,e){var r,o;let a=t.nodeName==="#text"?t.nodeValue:oEt.default(t),n=JCe.default(a);if(n.width<=e||n.width>=1&&e>0&&e<1)return n;let u=(o=(r=t.style)===null||r===void 0?void 0:r.textWrap)!==null&&o!==void 0?o:"wrap",A=sEt.default(a,e,u);return JCe.default(A)},zCe=t=>{var e;if(!(!t||!t.parentNode))return(e=t.yogaNode)!==null&&e!==void 0?e:zCe(t.parentNode)},PQ=t=>{let e=zCe(t);e?.markDirty()};Ei.setTextNodeValue=(t,e)=>{typeof e!="string"&&(e=String(e)),t.nodeValue=e,PQ(t)}});var tIe=_(FB=>{"use strict";var eIe=FB&&FB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(FB,"__esModule",{value:!0});var XCe=uq(),lEt=eIe(ECe()),ZCe=eIe(id()),ko=bq(),$Ce=t=>{t?.unsetMeasureFunc(),t?.freeRecursive()};FB.default=lEt.default({schedulePassiveEffects:XCe.unstable_scheduleCallback,cancelPassiveEffects:XCe.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:t=>{if(t.isStaticDirty){t.isStaticDirty=!1,typeof t.onImmediateRender=="function"&&t.onImmediateRender();return}typeof t.onRender=="function"&&t.onRender()},getChildHostContext:(t,e)=>{let r=t.isInsideText,o=e==="ink-text"||e==="ink-virtual-text";return r===o?t:{isInsideText:o}},shouldSetTextContent:()=>!1,createInstance:(t,e,r,o)=>{if(o.isInsideText&&t==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=t==="ink-text"&&o.isInsideText?"ink-virtual-text":t,n=ko.createNode(a);for(let[u,A]of Object.entries(e))u!=="children"&&(u==="style"?ko.setStyle(n,A):u==="internal_transform"?n.internal_transform=A:u==="internal_static"?n.internal_static=!0:ko.setAttribute(n,u,A));return n},createTextInstance:(t,e,r)=>{if(!r.isInsideText)throw new Error(`Text string "${t}" must be rendered inside component`);return ko.createTextNode(t)},resetTextContent:()=>{},hideTextInstance:t=>{ko.setTextNodeValue(t,"")},unhideTextInstance:(t,e)=>{ko.setTextNodeValue(t,e)},getPublicInstance:t=>t,hideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(ZCe.default.DISPLAY_NONE)},unhideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(ZCe.default.DISPLAY_FLEX)},appendInitialChild:ko.appendChildNode,appendChild:ko.appendChildNode,insertBefore:ko.insertBeforeNode,finalizeInitialChildren:(t,e,r,o)=>(t.internal_static&&(o.isStaticDirty=!0,o.staticNode=t),!1),supportsMutation:!0,appendChildToContainer:ko.appendChildNode,insertInContainerBefore:ko.insertBeforeNode,removeChildFromContainer:(t,e)=>{ko.removeChildNode(t,e),$Ce(e.yogaNode)},prepareUpdate:(t,e,r,o,a)=>{t.internal_static&&(a.isStaticDirty=!0);let n={},u=Object.keys(o);for(let A of u)if(o[A]!==r[A]){if(A==="style"&&typeof o.style=="object"&&typeof r.style=="object"){let h=o.style,E=r.style,w=Object.keys(h);for(let D of w){if(D==="borderStyle"||D==="borderColor"){if(typeof n.style!="object"){let x={};n.style=x}n.style.borderStyle=h.borderStyle,n.style.borderColor=h.borderColor}if(h[D]!==E[D]){if(typeof n.style!="object"){let x={};n.style=x}n.style[D]=h[D]}}continue}n[A]=o[A]}return n},commitUpdate:(t,e)=>{for(let[r,o]of Object.entries(e))r!=="children"&&(r==="style"?ko.setStyle(t,o):r==="internal_transform"?t.internal_transform=o:r==="internal_static"?t.internal_static=!0:ko.setAttribute(t,r,o))},commitTextUpdate:(t,e,r)=>{ko.setTextNodeValue(t,r)},removeChild:(t,e)=>{ko.removeChildNode(t,e),$Ce(e.yogaNode)}})});var nIe=_((yKt,rIe)=>{"use strict";rIe.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let o=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(o,r.indent.repeat(e))}});var iIe=_(RB=>{"use strict";var cEt=RB&&RB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(RB,"__esModule",{value:!0});var SQ=cEt(id());RB.default=t=>t.getComputedWidth()-t.getComputedPadding(SQ.default.EDGE_LEFT)-t.getComputedPadding(SQ.default.EDGE_RIGHT)-t.getComputedBorder(SQ.default.EDGE_LEFT)-t.getComputedBorder(SQ.default.EDGE_RIGHT)});var sIe=_((CKt,uEt)=>{uEt.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var aIe=_((IKt,xq)=>{"use strict";var oIe=sIe();xq.exports=oIe;xq.exports.default=oIe});var cIe=_((wKt,lIe)=>{"use strict";var AEt=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},fEt=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r +`:` +`)+r,a=o+1,o=t.indexOf(` +`,a)}while(o!==-1);return n+=t.substr(a),n};lIe.exports={stringReplaceAll:AEt,stringEncaseCRLFWithFirstIndex:fEt}});var hIe=_((BKt,pIe)=>{"use strict";var pEt=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,uIe=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,hEt=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,gEt=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,dEt=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function fIe(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):dEt.get(t)||t}function mEt(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(hEt))r.push(a[2].replace(gEt,(A,p,h)=>p?fIe(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function yEt(t){uIe.lastIndex=0;let e=[],r;for(;(r=uIe.exec(t))!==null;){let o=r[1];if(r[2]){let a=mEt(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function AIe(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}pIe.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(pEt,(n,u,A,p,h,E)=>{if(u)a.push(fIe(u));else if(p){let w=a.join("");a=[],o.push(r.length===0?w:AIe(t,r)(w)),r.push({inverse:A,styles:yEt(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(AIe(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var FQ=_((vKt,CIe)=>{"use strict";var TB=qw(),{stdout:Qq,stderr:Fq}=ZN(),{stringReplaceAll:EEt,stringEncaseCRLFWithFirstIndex:CEt}=cIe(),{isArray:bQ}=Array,dIe=["ansi","ansi","ansi256","ansi16m"],DC=Object.create(null),IEt=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=Qq?Qq.level:0;t.level=e.level===void 0?r:e.level},Rq=class{constructor(e){return mIe(e)}},mIe=t=>{let e={};return IEt(e,t),e.template=(...r)=>EIe(e.template,...r),Object.setPrototypeOf(e,xQ.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Rq,e.template};function xQ(t){return mIe(t)}for(let[t,e]of Object.entries(TB))DC[t]={get(){let r=kQ(this,Tq(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};DC.visible={get(){let t=kQ(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var yIe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of yIe)DC[t]={get(){let{level:e}=this;return function(...r){let o=Tq(TB.color[dIe[e]][t](...r),TB.color.close,this._styler);return kQ(this,o,this._isEmpty)}}};for(let t of yIe){let e="bg"+t[0].toUpperCase()+t.slice(1);DC[e]={get(){let{level:r}=this;return function(...o){let a=Tq(TB.bgColor[dIe[r]][t](...o),TB.bgColor.close,this._styler);return kQ(this,a,this._isEmpty)}}}}var wEt=Object.defineProperties(()=>{},{...DC,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),Tq=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},kQ=(t,e,r)=>{let o=(...a)=>bQ(a[0])&&bQ(a[0].raw)?gIe(o,EIe(o,...a)):gIe(o,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(o,wEt),o._generator=t,o._styler=e,o._isEmpty=r,o},gIe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=EEt(e,r.close,r.open),r=r.parent;let n=e.indexOf(` +`);return n!==-1&&(e=CEt(e,a,o,n)),o+e+a},kq,EIe=(t,...e)=>{let[r]=e;if(!bQ(r)||!bQ(r.raw))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n{"use strict";var BEt=LB&&LB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(LB,"__esModule",{value:!0});var NB=BEt(FQ()),vEt=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,DEt=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,RQ=(t,e)=>e==="foreground"?t:"bg"+t[0].toUpperCase()+t.slice(1);LB.default=(t,e,r)=>{if(!e)return t;if(e in NB.default){let a=RQ(e,r);return NB.default[a](t)}if(e.startsWith("#")){let a=RQ("hex",r);return NB.default[a](e)(t)}if(e.startsWith("ansi")){let a=DEt.exec(e);if(!a)return t;let n=RQ(a[1],r),u=Number(a[2]);return NB.default[n](u)(t)}if(e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("hsv")||e.startsWith("hwb")){let a=vEt.exec(e);if(!a)return t;let n=RQ(a[1],r),u=Number(a[2]),A=Number(a[3]),p=Number(a[4]);return NB.default[n](u,A,p)(t)}return t}});var wIe=_(OB=>{"use strict";var IIe=OB&&OB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(OB,"__esModule",{value:!0});var PEt=IIe(aIe()),Lq=IIe(Nq());OB.default=(t,e,r,o)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),u=r.style.borderColor,A=PEt.default[r.style.borderStyle],p=Lq.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,u,"foreground"),h=(Lq.default(A.vertical,u,"foreground")+` +`).repeat(n-2),E=Lq.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,u,"foreground");o.write(t,e,p,{transformers:[]}),o.write(t,e+1,h,{transformers:[]}),o.write(t+a-1,e+1,h,{transformers:[]}),o.write(t,e+n-1,E,{transformers:[]})}}});var vIe=_(MB=>{"use strict";var sd=MB&&MB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(MB,"__esModule",{value:!0});var SEt=sd(id()),bEt=sd(Eq()),xEt=sd(nIe()),kEt=sd(Dq()),QEt=sd(iIe()),FEt=sd(Sq()),REt=sd(wIe()),TEt=(t,e)=>{var r;let o=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(o){let a=o.getComputedLeft(),n=o.getComputedTop();e=` +`.repeat(n)+xEt.default(e,a)}return e},BIe=(t,e,r)=>{var o;let{offsetX:a=0,offsetY:n=0,transformers:u=[],skipStaticElements:A}=r;if(A&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===SEt.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),w=u;if(typeof t.internal_transform=="function"&&(w=[t.internal_transform,...u]),t.nodeName==="ink-text"){let D=FEt.default(t);if(D.length>0){let x=bEt.default(D),C=QEt.default(p);if(x>C){let T=(o=t.style.textWrap)!==null&&o!==void 0?o:"wrap";D=kEt.default(D,C,T)}D=TEt(t,D),e.write(h,E,D,{transformers:w})}return}if(t.nodeName==="ink-box"&&REt.default(h,E,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let D of t.childNodes)BIe(D,e,{offsetX:h,offsetY:E,transformers:w,skipStaticElements:A})}};MB.default=BIe});var SIe=_(UB=>{"use strict";var PIe=UB&&UB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(UB,"__esModule",{value:!0});var DIe=PIe(Bq()),NEt=PIe(PB()),Oq=class{constructor(e){this.writes=[];let{width:r,height:o}=e;this.width=r,this.height=o}write(e,r,o,a){let{transformers:n}=a;o&&this.writes.push({x:e,y:r,text:o,transformers:n})}get(){let e=[];for(let o=0;oo.trimRight()).join(` +`),height:e.length}}};UB.default=Oq});var kIe=_(_B=>{"use strict";var Mq=_B&&_B.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_B,"__esModule",{value:!0});var LEt=Mq(id()),bIe=Mq(vIe()),xIe=Mq(SIe());_B.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,LEt.default.DIRECTION_LTR);let o=new xIe.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});bIe.default(t,o,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new xIe.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),bIe.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:u}=o.get();return{output:n,outputHeight:u,staticOutput:a?`${a.get().output} +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var TIe=_((kKt,RIe)=>{"use strict";var QIe=ve("stream"),FIe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],Uq={},OEt=t=>{let e=new QIe.PassThrough,r=new QIe.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let o=new console.Console(e,r);for(let a of FIe)Uq[a]=console[a],console[a]=o[a];return()=>{for(let a of FIe)console[a]=Uq[a];Uq={}}};RIe.exports=OEt});var Hq=_(_q=>{"use strict";Object.defineProperty(_q,"__esModule",{value:!0});_q.default=new WeakMap});var jq=_(qq=>{"use strict";Object.defineProperty(qq,"__esModule",{value:!0});var MEt=ln(),NIe=MEt.createContext({exit:()=>{}});NIe.displayName="InternalAppContext";qq.default=NIe});var Wq=_(Gq=>{"use strict";Object.defineProperty(Gq,"__esModule",{value:!0});var UEt=ln(),LIe=UEt.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});LIe.displayName="InternalStdinContext";Gq.default=LIe});var Kq=_(Yq=>{"use strict";Object.defineProperty(Yq,"__esModule",{value:!0});var _Et=ln(),OIe=_Et.createContext({stdout:void 0,write:()=>{}});OIe.displayName="InternalStdoutContext";Yq.default=OIe});var Jq=_(Vq=>{"use strict";Object.defineProperty(Vq,"__esModule",{value:!0});var HEt=ln(),MIe=HEt.createContext({stderr:void 0,write:()=>{}});MIe.displayName="InternalStderrContext";Vq.default=MIe});var TQ=_(zq=>{"use strict";Object.defineProperty(zq,"__esModule",{value:!0});var qEt=ln(),UIe=qEt.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});UIe.displayName="InternalFocusContext";zq.default=UIe});var HIe=_((OKt,_Ie)=>{"use strict";var jEt=/[|\\{}()[\]^$+*?.-]/g;_Ie.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(jEt,"\\$&")}});var WIe=_((MKt,GIe)=>{"use strict";var GEt=HIe(),WEt=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",jIe=[].concat(ve("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));jIe.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var Xq=class t{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=t.nodeInternals()),"cwd"in e||(e.cwd=WEt),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,YEt(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...jIe]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(` +`)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let o=!1,a=null,n=[];return e.forEach(u=>{if(u=u.replace(/\\/g,"/"),this._internals.some(p=>p.test(u)))return;let A=/^\s*at /.test(u);o?u=u.trimEnd().replace(/^(\s+)at /,"$1"):(u=u.trim(),A&&(u=u.slice(3))),u=u.replace(`${this._cwd}/`,""),u&&(A?(a&&(n.push(a),a=null),n.push(u)):(o=!0,a=u))}),n.map(u=>`${r}${u} +`).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:o}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=o,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:o,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:u}=n;return Object.assign(Error,{prepareStackTrace:o,stackTraceLimit:a}),u}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let o={line:r.getLineNumber(),column:r.getColumnNumber()};qIe(o,r.getFileName(),this._cwd),r.isConstructor()&&(o.constructor=!0),r.isEval()&&(o.evalOrigin=r.getEvalOrigin()),r.isNative()&&(o.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(o.type=a);let n=r.getFunctionName();n&&(o.function=n);let u=r.getMethodName();return u&&n!==u&&(o.method=u),o}parseLine(e){let r=e&&e.match(KEt);if(!r)return null;let o=r[1]==="new",a=r[2],n=r[3],u=r[4],A=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],w=r[9],D=r[10]==="native",x=r[11]===")",C,T={};if(E&&(T.line=Number(E)),w&&(T.column=Number(w)),x&&h){let L=0;for(let U=h.length-1;U>0;U--)if(h.charAt(U)===")")L++;else if(h.charAt(U)==="("&&h.charAt(U-1)===" "&&(L--,L===-1&&h.charAt(U-1)===" ")){let J=h.slice(0,U-1);h=h.slice(U+1),a+=` (${J}`;break}}if(a){let L=a.match(VEt);L&&(a=L[1],C=L[2])}return qIe(T,h,this._cwd),o&&(T.constructor=!0),n&&(T.evalOrigin=n,T.evalLine=A,T.evalColumn=p,T.evalFile=u&&u.replace(/\\/g,"/")),D&&(T.native=!0),a&&(T.function=a),C&&a!==C&&(T.method=C),T}};function qIe(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function YEt(t){if(t.length===0)return[];let e=t.map(r=>GEt(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var KEt=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),VEt=/^(.*?) \[as (.*?)\]$/;GIe.exports=Xq});var KIe=_((UKt,YIe)=>{"use strict";YIe.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var JIe=_((_Kt,VIe)=>{"use strict";var JEt=KIe(),zEt=(t,e)=>{let r=[],o=t-e,a=t+e;for(let n=o;n<=a;n++)r.push(n);return r};VIe.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=JEt(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},zEt(e,r.around).filter(o=>t[o-1]!==void 0).map(o=>({line:o,value:t[o-1]}))}});var NQ=_(lu=>{"use strict";var XEt=lu&&lu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),ZEt=lu&&lu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),$Et=lu&&lu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&XEt(e,t,r);return ZEt(e,t),e},eCt=lu&&lu.__rest||function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a{var{children:r}=t,o=eCt(t,["children"]);let a=Object.assign(Object.assign({},o),{marginLeft:o.marginLeft||o.marginX||o.margin||0,marginRight:o.marginRight||o.marginX||o.margin||0,marginTop:o.marginTop||o.marginY||o.margin||0,marginBottom:o.marginBottom||o.marginY||o.margin||0,paddingLeft:o.paddingLeft||o.paddingX||o.padding||0,paddingRight:o.paddingRight||o.paddingX||o.padding||0,paddingTop:o.paddingTop||o.paddingY||o.padding||0,paddingBottom:o.paddingBottom||o.paddingY||o.padding||0});return zIe.default.createElement("ink-box",{ref:e,style:a},r)});Zq.displayName="Box";Zq.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};lu.default=Zq});var tj=_(HB=>{"use strict";var $q=HB&&HB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(HB,"__esModule",{value:!0});var tCt=$q(ln()),PC=$q(FQ()),XIe=$q(Nq()),ej=({color:t,backgroundColor:e,dimColor:r,bold:o,italic:a,underline:n,strikethrough:u,inverse:A,wrap:p,children:h})=>{if(h==null)return null;let E=w=>(r&&(w=PC.default.dim(w)),t&&(w=XIe.default(w,t,"foreground")),e&&(w=XIe.default(w,e,"background")),o&&(w=PC.default.bold(w)),a&&(w=PC.default.italic(w)),n&&(w=PC.default.underline(w)),u&&(w=PC.default.strikethrough(w)),A&&(w=PC.default.inverse(w)),w);return tCt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:p},internal_transform:E},h)};ej.displayName="Text";ej.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};HB.default=ej});var twe=_(cu=>{"use strict";var rCt=cu&&cu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),nCt=cu&&cu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),iCt=cu&&cu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&rCt(e,t,r);return nCt(e,t),e},qB=cu&&cu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(cu,"__esModule",{value:!0});var ZIe=iCt(ve("fs")),ps=qB(ln()),$Ie=qB(WIe()),sCt=qB(JIe()),Jf=qB(NQ()),mA=qB(tj()),ewe=new $Ie.default({cwd:process.cwd(),internals:$Ie.default.nodeInternals()}),oCt=({error:t})=>{let e=t.stack?t.stack.split(` +`).slice(1):void 0,r=e?ewe.parseLine(e[0]):void 0,o,a=0;if(r?.file&&r?.line&&ZIe.existsSync(r.file)){let n=ZIe.readFileSync(r.file,"utf8");if(o=sCt.default(n,r.line),o)for(let{line:u}of o)a=Math.max(a,String(u).length)}return ps.default.createElement(Jf.default,{flexDirection:"column",padding:1},ps.default.createElement(Jf.default,null,ps.default.createElement(mA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),ps.default.createElement(mA.default,null," ",t.message)),r&&ps.default.createElement(Jf.default,{marginTop:1},ps.default.createElement(mA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&o&&ps.default.createElement(Jf.default,{marginTop:1,flexDirection:"column"},o.map(({line:n,value:u})=>ps.default.createElement(Jf.default,{key:n},ps.default.createElement(Jf.default,{width:a+1},ps.default.createElement(mA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),ps.default.createElement(mA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+u)))),t.stack&&ps.default.createElement(Jf.default,{marginTop:1,flexDirection:"column"},t.stack.split(` +`).slice(1).map(n=>{let u=ewe.parseLine(n);return u?ps.default.createElement(Jf.default,{key:n},ps.default.createElement(mA.default,{dimColor:!0},"- "),ps.default.createElement(mA.default,{dimColor:!0,bold:!0},u.function),ps.default.createElement(mA.default,{dimColor:!0,color:"gray"}," ","(",u.file,":",u.line,":",u.column,")")):ps.default.createElement(Jf.default,{key:n},ps.default.createElement(mA.default,{dimColor:!0},"- "),ps.default.createElement(mA.default,{dimColor:!0,bold:!0},n))})))};cu.default=oCt});var nwe=_(uu=>{"use strict";var aCt=uu&&uu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),lCt=uu&&uu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),cCt=uu&&uu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&aCt(e,t,r);return lCt(e,t),e},ad=uu&&uu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uu,"__esModule",{value:!0});var od=cCt(ln()),rwe=ad(Z6()),uCt=ad(jq()),ACt=ad(Wq()),fCt=ad(Kq()),pCt=ad(Jq()),hCt=ad(TQ()),gCt=ad(twe()),dCt=" ",mCt="\x1B[Z",yCt="\x1B",LQ=class extends od.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===yCt&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===dCt&&this.focusNext(),e===mCt&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=e=>{this.setState(r=>r.focusables.some(a=>a?.id===e)?{activeFocusId:e}:r)},this.focusNext=()=>{this.setState(e=>{var r;let o=(r=e.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(e)||o}})},this.focusPrevious=()=>{this.setState(e=>{var r;let o=(r=e.focusables[e.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(e)||o}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(o=>{let a=o.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...o.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(o=>o.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{var r;let o=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=o+1;a{var r;let o=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=o-1;a>=0;a--)if(!((r=e.focusables[a])===null||r===void 0)&&r.isActive)return e.focusables[a].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return od.default.createElement(uCt.default.Provider,{value:{exit:this.handleExit}},od.default.createElement(ACt.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},od.default.createElement(fCt.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},od.default.createElement(pCt.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},od.default.createElement(hCt.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?od.default.createElement(gCt.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){rwe.default.hide(this.props.stdout)}componentWillUnmount(){rwe.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};uu.default=LQ;LQ.displayName="InternalApp"});var owe=_(Au=>{"use strict";var ECt=Au&&Au.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),CCt=Au&&Au.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ICt=Au&&Au.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&ECt(e,t,r);return CCt(e,t),e},fu=Au&&Au.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Au,"__esModule",{value:!0});var wCt=fu(ln()),iwe=WM(),BCt=fu(tCe()),vCt=fu(K6()),DCt=fu(aCe()),PCt=fu(cCe()),rj=fu(tIe()),SCt=fu(kIe()),bCt=fu(X6()),xCt=fu(TIe()),kCt=ICt(bq()),QCt=fu(Hq()),FCt=fu(nwe()),SC=process.env.CI==="false"?!1:DCt.default,swe=()=>{},nj=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:o,staticOutput:a}=SCt.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==` +`;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(SC){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),o>=this.options.stdout.rows){this.options.stdout.write(vCt.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},PCt.default(this),this.options=e,this.rootNode=kCt.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:iwe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=BCt.default.create(e.stdout),this.throttledLog=e.debug?this.log:iwe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=rj.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=bCt.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),SC||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=wCt.default.createElement(FCt.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);rj.default.updateContainer(r,this.container,null,swe)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(SC){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(SC){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),SC?this.options.stdout.write(this.lastOutput+` +`):this.options.debug||this.log.done(),this.isUnmounted=!0,rj.default.updateContainer(null,this.container,null,swe),QCt.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!SC&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=xCt.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};Au.default=nj});var lwe=_(jB=>{"use strict";var awe=jB&&jB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(jB,"__esModule",{value:!0});var RCt=awe(owe()),OQ=awe(Hq()),TCt=ve("stream"),NCt=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},LCt(e)),o=OCt(r.stdout,()=>new RCt.default(r));return o.render(t),{rerender:o.render,unmount:()=>o.unmount(),waitUntilExit:o.waitUntilExit,cleanup:()=>OQ.default.delete(r.stdout),clear:o.clear}};jB.default=NCt;var LCt=(t={})=>t instanceof TCt.Stream?{stdout:t,stdin:process.stdin}:t,OCt=(t,e)=>{let r;return OQ.default.has(t)?r=OQ.default.get(t):(r=e(),OQ.default.set(t,r)),r}});var uwe=_(zf=>{"use strict";var MCt=zf&&zf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),UCt=zf&&zf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),_Ct=zf&&zf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&MCt(e,t,r);return UCt(e,t),e};Object.defineProperty(zf,"__esModule",{value:!0});var GB=_Ct(ln()),cwe=t=>{let{items:e,children:r,style:o}=t,[a,n]=GB.useState(0),u=GB.useMemo(()=>e.slice(a),[e,a]);GB.useLayoutEffect(()=>{n(e.length)},[e.length]);let A=u.map((h,E)=>r(h,a+E)),p=GB.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},o),[o]);return GB.default.createElement("ink-box",{internal_static:!0,style:p},A)};cwe.displayName="Static";zf.default=cwe});var fwe=_(WB=>{"use strict";var HCt=WB&&WB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(WB,"__esModule",{value:!0});var qCt=HCt(ln()),Awe=({children:t,transform:e})=>t==null?null:qCt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);Awe.displayName="Transform";WB.default=Awe});var hwe=_(YB=>{"use strict";var jCt=YB&&YB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(YB,"__esModule",{value:!0});var GCt=jCt(ln()),pwe=({count:t=1})=>GCt.default.createElement("ink-text",null,` +`.repeat(t));pwe.displayName="Newline";YB.default=pwe});var mwe=_(KB=>{"use strict";var gwe=KB&&KB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(KB,"__esModule",{value:!0});var WCt=gwe(ln()),YCt=gwe(NQ()),dwe=()=>WCt.default.createElement(YCt.default,{flexGrow:1});dwe.displayName="Spacer";KB.default=dwe});var MQ=_(VB=>{"use strict";var KCt=VB&&VB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(VB,"__esModule",{value:!0});var VCt=ln(),JCt=KCt(Wq()),zCt=()=>VCt.useContext(JCt.default);VB.default=zCt});var Ewe=_(JB=>{"use strict";var XCt=JB&&JB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(JB,"__esModule",{value:!0});var ywe=ln(),ZCt=XCt(MQ()),$Ct=(t,e={})=>{let{stdin:r,setRawMode:o,internal_exitOnCtrlC:a}=ZCt.default();ywe.useEffect(()=>{if(e.isActive!==!1)return o(!0),()=>{o(!1)}},[e.isActive,o]),ywe.useEffect(()=>{if(e.isActive===!1)return;let n=u=>{let A=String(u),p={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!p.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),p.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),p.meta=!0);let h=A>="A"&&A<="Z",E=A>="\u0410"&&A<="\u042F";A.length===1&&(h||E)&&(p.shift=!0),p.tab&&A==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(A=""),(!(A==="c"&&p.ctrl)||!a)&&t(A,p)};return r?.on("data",n),()=>{r?.off("data",n)}},[e.isActive,r,a,t])};JB.default=$Ct});var Cwe=_(zB=>{"use strict";var eIt=zB&&zB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(zB,"__esModule",{value:!0});var tIt=ln(),rIt=eIt(jq()),nIt=()=>tIt.useContext(rIt.default);zB.default=nIt});var Iwe=_(XB=>{"use strict";var iIt=XB&&XB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(XB,"__esModule",{value:!0});var sIt=ln(),oIt=iIt(Kq()),aIt=()=>sIt.useContext(oIt.default);XB.default=aIt});var wwe=_(ZB=>{"use strict";var lIt=ZB&&ZB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ZB,"__esModule",{value:!0});var cIt=ln(),uIt=lIt(Jq()),AIt=()=>cIt.useContext(uIt.default);ZB.default=AIt});var vwe=_(ev=>{"use strict";var Bwe=ev&&ev.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ev,"__esModule",{value:!0});var $B=ln(),fIt=Bwe(TQ()),pIt=Bwe(MQ()),hIt=({isActive:t=!0,autoFocus:e=!1,id:r}={})=>{let{isRawModeSupported:o,setRawMode:a}=pIt.default(),{activeId:n,add:u,remove:A,activate:p,deactivate:h,focus:E}=$B.useContext(fIt.default),w=$B.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return $B.useEffect(()=>(u(w,{autoFocus:e}),()=>{A(w)}),[w,e]),$B.useEffect(()=>{t?p(w):h(w)},[t,w]),$B.useEffect(()=>{if(!(!o||!t))return a(!0),()=>{a(!1)}},[t]),{isFocused:!!w&&n===w,focus:E}};ev.default=hIt});var Dwe=_(tv=>{"use strict";var gIt=tv&&tv.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(tv,"__esModule",{value:!0});var dIt=ln(),mIt=gIt(TQ()),yIt=()=>{let t=dIt.useContext(mIt.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious,focus:t.focus}};tv.default=yIt});var Pwe=_(ij=>{"use strict";Object.defineProperty(ij,"__esModule",{value:!0});ij.default=t=>{var e,r,o,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(o=t.yogaNode)===null||o===void 0?void 0:o.getComputedHeight())!==null&&a!==void 0?a:0}}});var ac=_(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});var EIt=lwe();Object.defineProperty(Js,"render",{enumerable:!0,get:function(){return EIt.default}});var CIt=NQ();Object.defineProperty(Js,"Box",{enumerable:!0,get:function(){return CIt.default}});var IIt=tj();Object.defineProperty(Js,"Text",{enumerable:!0,get:function(){return IIt.default}});var wIt=uwe();Object.defineProperty(Js,"Static",{enumerable:!0,get:function(){return wIt.default}});var BIt=fwe();Object.defineProperty(Js,"Transform",{enumerable:!0,get:function(){return BIt.default}});var vIt=hwe();Object.defineProperty(Js,"Newline",{enumerable:!0,get:function(){return vIt.default}});var DIt=mwe();Object.defineProperty(Js,"Spacer",{enumerable:!0,get:function(){return DIt.default}});var PIt=Ewe();Object.defineProperty(Js,"useInput",{enumerable:!0,get:function(){return PIt.default}});var SIt=Cwe();Object.defineProperty(Js,"useApp",{enumerable:!0,get:function(){return SIt.default}});var bIt=MQ();Object.defineProperty(Js,"useStdin",{enumerable:!0,get:function(){return bIt.default}});var xIt=Iwe();Object.defineProperty(Js,"useStdout",{enumerable:!0,get:function(){return xIt.default}});var kIt=wwe();Object.defineProperty(Js,"useStderr",{enumerable:!0,get:function(){return kIt.default}});var QIt=vwe();Object.defineProperty(Js,"useFocus",{enumerable:!0,get:function(){return QIt.default}});var FIt=Dwe();Object.defineProperty(Js,"useFocusManager",{enumerable:!0,get:function(){return FIt.default}});var RIt=Pwe();Object.defineProperty(Js,"measureElement",{enumerable:!0,get:function(){return RIt.default}})});var oj={};Kt(oj,{Gem:()=>sj});var Swe,ld,sj,UQ=It(()=>{Swe=et(ac()),ld=et(ln()),sj=(0,ld.memo)(({active:t})=>{let e=(0,ld.useMemo)(()=>t?"\u25C9":"\u25EF",[t]),r=(0,ld.useMemo)(()=>t?"green":"yellow",[t]);return ld.default.createElement(Swe.Text,{color:r},e)})});var xwe={};Kt(xwe,{useKeypress:()=>cd});function cd({active:t},e,r){let{stdin:o}=(0,bwe.useStdin)(),a=(0,_Q.useCallback)((n,u)=>e(n,u),r);(0,_Q.useEffect)(()=>{if(!(!t||!o))return o.on("keypress",a),()=>{o.off("keypress",a)}},[t,a,o])}var bwe,_Q,rv=It(()=>{bwe=et(ac()),_Q=et(ln())});var Qwe={};Kt(Qwe,{FocusRequest:()=>kwe,useFocusRequest:()=>aj});var kwe,aj,lj=It(()=>{rv();kwe=(r=>(r.BEFORE="before",r.AFTER="after",r))(kwe||{}),aj=function({active:t},e,r){cd({active:t},(o,a)=>{a.name==="tab"&&(a.shift?e("before"):e("after"))},r)}});var Fwe={};Kt(Fwe,{useListInput:()=>nv});var nv,HQ=It(()=>{rv();nv=function(t,e,{active:r,minus:o,plus:a,set:n,loop:u=!0}){cd({active:r},(A,p)=>{let h=e.indexOf(t);switch(p.name){case o:{let E=h-1;if(u){n(e[(e.length+E)%e.length]);return}if(E<0)return;n(e[E])}break;case a:{let E=h+1;if(u){n(e[E%e.length]);return}if(E>=e.length)return;n(e[E])}break}},[e,t,a,n,u])}});var qQ={};Kt(qQ,{ScrollableItems:()=>TIt});var Hh,Ua,TIt,jQ=It(()=>{Hh=et(ac()),Ua=et(ln());lj();HQ();TIt=({active:t=!0,children:e=[],radius:r=10,size:o=1,loop:a=!0,onFocusRequest:n,willReachEnd:u})=>{let A=L=>{if(L.key===null)throw new Error("Expected all children to have a key");return L.key},p=Ua.default.Children.map(e,L=>A(L)),h=p[0],[E,w]=(0,Ua.useState)(h),D=p.indexOf(E);(0,Ua.useEffect)(()=>{p.includes(E)||w(h)},[e]),(0,Ua.useEffect)(()=>{u&&D>=p.length-2&&u()},[D]),aj({active:t&&!!n},L=>{n?.(L)},[n]),nv(E,p,{active:t,minus:"up",plus:"down",set:w,loop:a});let x=D-r,C=D+r;C>p.length&&(x-=C-p.length,C=p.length),x<0&&(C+=-x,x=0),C>=p.length&&(C=p.length-1);let T=[];for(let L=x;L<=C;++L){let U=p[L],J=t&&U===E;T.push(Ua.default.createElement(Hh.Box,{key:U,height:o},Ua.default.createElement(Hh.Box,{marginLeft:1,marginRight:1},Ua.default.createElement(Hh.Text,null,J?Ua.default.createElement(Hh.Text,{color:"cyan",bold:!0},">"):" ")),Ua.default.createElement(Hh.Box,null,Ua.default.cloneElement(e[L],{active:J}))))}return Ua.default.createElement(Hh.Box,{flexDirection:"column",width:"100%"},T)}});var Rwe,Xf,Twe,cj,Nwe,uj=It(()=>{Rwe=et(ac()),Xf=et(ln()),Twe=ve("readline"),cj=Xf.default.createContext(null),Nwe=({children:t})=>{let{stdin:e,setRawMode:r}=(0,Rwe.useStdin)();(0,Xf.useEffect)(()=>{r&&r(!0),e&&(0,Twe.emitKeypressEvents)(e)},[e,r]);let[o,a]=(0,Xf.useState)(new Map),n=(0,Xf.useMemo)(()=>({getAll:()=>o,get:u=>o.get(u),set:(u,A)=>a(new Map([...o,[u,A]]))}),[o,a]);return Xf.default.createElement(cj.Provider,{value:n,children:t})}});var Aj={};Kt(Aj,{useMinistore:()=>NIt});function NIt(t,e){let r=(0,GQ.useContext)(cj);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof t>"u")return r.getAll();let o=(0,GQ.useCallback)(n=>{r.set(t,n)},[t,r.set]),a=r.get(t);return typeof a>"u"&&(a=e),[a,o]}var GQ,fj=It(()=>{GQ=et(ln());uj()});var YQ={};Kt(YQ,{renderForm:()=>LIt});async function LIt(t,e,{stdin:r,stdout:o,stderr:a}){let n,u=p=>{let{exit:h}=(0,WQ.useApp)();cd({active:!0},(E,w)=>{w.name==="return"&&(n=p,h())},[h,p])},{waitUntilExit:A}=(0,WQ.render)(pj.default.createElement(Nwe,null,pj.default.createElement(t,{...e,useSubmit:u})),{stdin:r,stdout:o,stderr:a});return await A(),n}var WQ,pj,KQ=It(()=>{WQ=et(ac()),pj=et(ln());uj();rv()});var Uwe=_(iv=>{"use strict";Object.defineProperty(iv,"__esModule",{value:!0});iv.UncontrolledTextInput=void 0;var Owe=ln(),hj=ln(),Lwe=ac(),ud=FQ(),Mwe=({value:t,placeholder:e="",focus:r=!0,mask:o,highlightPastedText:a=!1,showCursor:n=!0,onChange:u,onSubmit:A})=>{let[{cursorOffset:p,cursorWidth:h},E]=hj.useState({cursorOffset:(t||"").length,cursorWidth:0});hj.useEffect(()=>{E(T=>{if(!r||!n)return T;let L=t||"";return T.cursorOffset>L.length-1?{cursorOffset:L.length,cursorWidth:0}:T})},[t,r,n]);let w=a?h:0,D=o?o.repeat(t.length):t,x=D,C=e?ud.grey(e):void 0;if(n&&r){C=e.length>0?ud.inverse(e[0])+ud.grey(e.slice(1)):ud.inverse(" "),x=D.length>0?"":ud.inverse(" ");let T=0;for(let L of D)T>=p-w&&T<=p?x+=ud.inverse(L):x+=L,T++;D.length>0&&p===D.length&&(x+=ud.inverse(" "))}return Lwe.useInput((T,L)=>{if(L.upArrow||L.downArrow||L.ctrl&&T==="c"||L.tab||L.shift&&L.tab)return;if(L.return){A&&A(t);return}let U=p,J=t,te=0;L.leftArrow?n&&U--:L.rightArrow?n&&U++:L.backspace||L.delete?p>0&&(J=t.slice(0,p-1)+t.slice(p,t.length),U--):(J=t.slice(0,p)+T+t.slice(p,t.length),U+=T.length,T.length>1&&(te=T.length)),p<0&&(U=0),p>t.length&&(U=t.length),E({cursorOffset:U,cursorWidth:te}),J!==t&&u(J)},{isActive:r}),Owe.createElement(Lwe.Text,null,e?D.length>0?x:C:x)};iv.default=Mwe;iv.UncontrolledTextInput=({initialValue:t="",...e})=>{let[r,o]=hj.useState(t);return Owe.createElement(Mwe,Object.assign({},e,{value:r,onChange:o}))}});var qwe={};Kt(qwe,{Pad:()=>gj});var _we,Hwe,gj,dj=It(()=>{_we=et(ac()),Hwe=et(ln()),gj=({length:t,active:e})=>{if(t===0)return null;let r=t>1?` ${"-".repeat(t-1)}`:" ";return Hwe.default.createElement(_we.Text,{dimColor:!e},r)}});var jwe={};Kt(jwe,{ItemOptions:()=>OIt});var ov,qh,OIt,Gwe=It(()=>{ov=et(ac()),qh=et(ln());HQ();UQ();dj();OIt=function({active:t,skewer:e,options:r,value:o,onChange:a,sizes:n=[]}){let u=r.filter(({label:p})=>!!p).map(({value:p})=>p),A=r.findIndex(p=>p.value===o&&p.label!="");return nv(o,u,{active:t,minus:"left",plus:"right",set:a}),qh.default.createElement(qh.default.Fragment,null,r.map(({label:p},h)=>{let E=h===A,w=n[h]-1||0,D=p.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),x=Math.max(0,w-D.length-2);return p?qh.default.createElement(ov.Box,{key:p,width:w,marginLeft:1},qh.default.createElement(ov.Text,{wrap:"truncate"},qh.default.createElement(sj,{active:E})," ",p),e?qh.default.createElement(gj,{active:t,length:x}):null):qh.default.createElement(ov.Box,{key:`spacer-${h}`,width:w,marginLeft:1})}))}});var s1e=_((bJt,i1e)=>{var Dj;i1e.exports=()=>(typeof Dj>"u"&&(Dj=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),Dj)});var P1e=_(($Jt,D1e)=>{var Tj=Symbol("arg flag"),lc=class t extends Error{constructor(e,r){super(e),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,t.prototype)}};function wv(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:o=!1}={}){if(!t)throw new lc("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},n={},u={};for(let A of Object.keys(t)){if(!A)throw new lc("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new lc(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new lc(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof t[A]=="string"){n[A]=t[A];continue}let p=t[A],h=!1;if(Array.isArray(p)&&p.length===1&&typeof p[0]=="function"){let[E]=p;p=(w,D,x=[])=>(x.push(E(w,D,x[x.length-1])),x),h=E===Boolean||E[Tj]===!0}else if(typeof p=="function")h=p===Boolean||p[Tj]===!0;else throw new lc(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new lc(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");u[A]=[p,h]}for(let A=0,p=e.length;A0){a._=a._.concat(e.slice(A));break}if(h==="--"){a._=a._.concat(e.slice(A+1));break}if(h.length>1&&h[0]==="-"){let E=h[1]==="-"||h.length===2?[h]:h.slice(1).split("").map(w=>`-${w}`);for(let w=0;w1&&e[A+1][0]==="-"&&!(e[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(L===Number||typeof BigInt<"u"&&L===BigInt))){let J=x===T?"":` (alias for ${T})`;throw new lc(`option requires argument: ${x}${J}`,"ARG_MISSING_REQUIRED_LONGARG")}a[T]=L(e[A+1],T,a[T]),++A}else a[T]=L(C,T,a[T])}}else a._.push(h)}return a}wv.flag=t=>(t[Tj]=!0,t);wv.COUNT=wv.flag((t,e,r)=>(r||0)+1);wv.ArgError=lc;D1e.exports=wv});var T1e=_((xzt,R1e)=>{var Mj;R1e.exports=()=>(typeof Mj>"u"&&(Mj=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),Mj)});var U1e=_((Gj,Wj)=>{(function(t){Gj&&typeof Gj=="object"&&typeof Wj<"u"?Wj.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window<"u"?window.isWindows=t():typeof global<"u"?global.isWindows=t():typeof self<"u"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var j1e=_((SXt,q1e)=>{"use strict";Yj.ifExists=Twt;var FC=ve("util"),cc=ve("path"),_1e=U1e(),Qwt=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Fwt={createPwshFile:!0,createCmdFile:_1e(),fs:ve("fs")},Rwt=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function H1e(t){let e={...Fwt,...t},r=e.fs;return e.fs_={chmod:r.chmod?FC.promisify(r.chmod):async()=>{},mkdir:FC.promisify(r.mkdir),readFile:FC.promisify(r.readFile),stat:FC.promisify(r.stat),unlink:FC.promisify(r.unlink),writeFile:FC.promisify(r.writeFile)},e}async function Yj(t,e,r){let o=H1e(r);await o.fs_.stat(t),await Lwt(t,e,o)}function Twt(t,e,r){return Yj(t,e,r).catch(()=>{})}function Nwt(t,e){return e.fs_.unlink(t).catch(()=>{})}async function Lwt(t,e,r){let o=await Hwt(t,r);return await Owt(e,r),Mwt(t,e,o,r)}function Owt(t,e){return e.fs_.mkdir(cc.dirname(t),{recursive:!0})}function Mwt(t,e,r,o){let a=H1e(o),n=[{generator:Gwt,extension:""}];return a.createCmdFile&&n.push({generator:jwt,extension:".cmd"}),a.createPwshFile&&n.push({generator:Wwt,extension:".ps1"}),Promise.all(n.map(u=>qwt(t,e+u.extension,r,u.generator,a)))}function Uwt(t,e){return Nwt(t,e)}function _wt(t,e){return Ywt(t,e)}async function Hwt(t,e){let a=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(Qwt);if(!a){let n=cc.extname(t).toLowerCase();return{program:Rwt.get(n)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}async function qwt(t,e,r,o,a){let n=a.preserveSymlinks?"--preserve-symlinks":"",u=[r.additionalArgs,n].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:u}),await Uwt(e,a),await a.fs_.writeFile(e,o(t,e,a),"utf8"),_wt(e,a)}function jwt(t,e,r){let a=cc.relative(cc.dirname(e),t).split("/").join("\\"),n=cc.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,u,A=r.prog,p=r.args||"",h=Kj(r.nodePath).win32;A?(u=`"%~dp0\\${A}.exe"`,a=n):(A=n,p="",a="");let E=r.progArgs?`${r.progArgs.join(" ")} `:"",w=h?`@SET NODE_PATH=${h}\r +`:"";return u?w+=`@IF EXIST ${u} (\r + ${u} ${p} ${a} ${E}%*\r +) ELSE (\r + @SETLOCAL\r + @SET PATHEXT=%PATHEXT:;.JS;=;%\r + ${A} ${p} ${a} ${E}%*\r +)\r +`:w+=`@${A} ${p} ${a} ${E}%*\r +`,w}function Gwt(t,e,r){let o=cc.relative(cc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;o=o.split("\\").join("/");let u=cc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,A=r.args||"",p=Kj(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,o=u):(a=u,A="",o="");let h=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") + +case \`uname\` in + *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; +esac + +`,w=r.nodePath?`export NODE_PATH="${p}" +`:"";return n?E+=`${w}if [ -x ${n} ]; then + exec ${n} ${A} ${o} ${h}"$@" +else + exec ${a} ${A} ${o} ${h}"$@" +fi +`:E+=`${w}${a} ${A} ${o} ${h}"$@" +exit $? +`,E}function Wwt(t,e,r){let o=cc.relative(cc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,u;o=o.split("\\").join("/");let A=cc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,p=r.args||"",h=Kj(r.nodePath),E=h.win32,w=h.posix;n?(u=`"$basedir/${r.prog}$exe"`,o=A):(n=A,p="",o="");let D=r.progArgs?`${r.progArgs.join(" ")} `:"",x=`#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +${r.nodePath?`$env_node_path=$env:NODE_PATH +$env:NODE_PATH="${E}" +`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +}`;return r.nodePath&&(x+=` else { + $env:NODE_PATH="${w}" +}`),u?x+=` +$ret=0 +if (Test-Path ${u}) { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${u} ${p} ${o} ${D}$args + } else { + & ${u} ${p} ${o} ${D}$args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${n} ${p} ${o} ${D}$args + } else { + & ${n} ${p} ${o} ${D}$args + } + $ret=$LASTEXITCODE +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $ret +`:x+=` +# Support pipeline input +if ($MyInvocation.ExpectingInput) { + $input | & ${n} ${p} ${o} ${D}$args +} else { + & ${n} ${p} ${o} ${D}$args +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $LASTEXITCODE +`,x}function Ywt(t,e){return e.fs_.chmod(t,493)}function Kj(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(cc.delimiter):Array.from(t),r={};for(let o=0;o`/mnt/${A.toLowerCase()}`):e[o];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[o]={win32:a,posix:n}}return r}q1e.exports=Yj});var a5=_((VZt,c2e)=>{c2e.exports=ve("stream")});var p2e=_((JZt,f2e)=>{"use strict";function u2e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function E1t(t){for(var e=1;e0?this.tail.next=o:this.head=o,this.tail=o,++this.length}},{key:"unshift",value:function(r){var o={data:r,next:this.head};this.length===0&&(this.tail=o),this.head=o,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var o=this.head,a=""+o.data;o=o.next;)a+=r+o.data;return a}},{key:"concat",value:function(r){if(this.length===0)return sF.alloc(0);for(var o=sF.allocUnsafe(r>>>0),a=this.head,n=0;a;)P1t(a.data,o,n),n+=a.data.length,a=a.next;return o}},{key:"consume",value:function(r,o){var a;return ru.length?u.length:r;if(A===u.length?n+=u:n+=u.slice(0,r),r-=A,r===0){A===u.length?(++a,o.next?this.head=o.next:this.head=this.tail=null):(this.head=o,o.data=u.slice(A));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var o=sF.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(o),r-=a.data.length;a=a.next;){var u=a.data,A=r>u.length?u.length:r;if(u.copy(o,o.length-r,0,A),r-=A,r===0){A===u.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=u.slice(A));break}++n}return this.length-=n,o}},{key:D1t,value:function(r,o){return l5(this,E1t({},o,{depth:0,customInspect:!1}))}}]),t}()});var u5=_((zZt,g2e)=>{"use strict";function S1t(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return o||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(c5,this,t)):process.nextTick(c5,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(oF,r):(r._writableState.errorEmitted=!0,process.nextTick(h2e,r,n)):process.nextTick(h2e,r,n):e?(process.nextTick(oF,r),e(n)):process.nextTick(oF,r)}),this)}function h2e(t,e){c5(t,e),oF(t)}function oF(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function b1t(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function c5(t,e){t.emit("error",e)}function x1t(t,e){var r=t._readableState,o=t._writableState;r&&r.autoDestroy||o&&o.autoDestroy?t.destroy(e):t.emit("error",e)}g2e.exports={destroy:S1t,undestroy:b1t,errorOrDestroy:x1t}});var Jh=_((XZt,y2e)=>{"use strict";var m2e={};function Ac(t,e,r){r||(r=Error);function o(n,u,A){return typeof e=="string"?e:e(n,u,A)}class a extends r{constructor(u,A,p){super(o(u,A,p))}}a.prototype.name=r.name,a.prototype.code=t,m2e[t]=a}function d2e(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(o=>String(o)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function k1t(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function Q1t(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function F1t(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}Ac("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);Ac("ERR_INVALID_ARG_TYPE",function(t,e,r){let o;typeof e=="string"&&k1t(e,"not ")?(o="must not be",e=e.replace(/^not /,"")):o="must be";let a;if(Q1t(t," argument"))a=`The ${t} ${o} ${d2e(e,"type")}`;else{let n=F1t(t,".")?"property":"argument";a=`The "${t}" ${n} ${o} ${d2e(e,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);Ac("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ac("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});Ac("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ac("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});Ac("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ac("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ac("ERR_STREAM_WRITE_AFTER_END","write after end");Ac("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ac("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);Ac("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");y2e.exports.codes=m2e});var A5=_((ZZt,E2e)=>{"use strict";var R1t=Jh().codes.ERR_INVALID_OPT_VALUE;function T1t(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function N1t(t,e,r,o){var a=T1t(e,o,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=o?r:"highWaterMark";throw new R1t(n,a)}return Math.floor(a)}return t.objectMode?16:16*1024}E2e.exports={getHighWaterMark:N1t}});var C2e=_(($Zt,f5)=>{typeof Object.create=="function"?f5.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:f5.exports=function(e,r){if(r){e.super_=r;var o=function(){};o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e}}});var zh=_((e$t,h5)=>{try{if(p5=ve("util"),typeof p5.inherits!="function")throw"";h5.exports=p5.inherits}catch{h5.exports=C2e()}var p5});var w2e=_((t$t,I2e)=>{I2e.exports=ve("util").deprecate});var m5=_((r$t,b2e)=>{"use strict";b2e.exports=Ni;function v2e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){l2t(e,t)}}var OC;Ni.WritableState=Tv;var L1t={deprecate:w2e()},D2e=a5(),lF=ve("buffer").Buffer,O1t=global.Uint8Array||function(){};function M1t(t){return lF.from(t)}function U1t(t){return lF.isBuffer(t)||t instanceof O1t}var d5=u5(),_1t=A5(),H1t=_1t.getHighWaterMark,Xh=Jh().codes,q1t=Xh.ERR_INVALID_ARG_TYPE,j1t=Xh.ERR_METHOD_NOT_IMPLEMENTED,G1t=Xh.ERR_MULTIPLE_CALLBACK,W1t=Xh.ERR_STREAM_CANNOT_PIPE,Y1t=Xh.ERR_STREAM_DESTROYED,K1t=Xh.ERR_STREAM_NULL_VALUES,V1t=Xh.ERR_STREAM_WRITE_AFTER_END,J1t=Xh.ERR_UNKNOWN_ENCODING,MC=d5.errorOrDestroy;zh()(Ni,D2e);function z1t(){}function Tv(t,e,r){OC=OC||dd(),t=t||{},typeof r!="boolean"&&(r=e instanceof OC),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=H1t(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=t.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){n2t(e,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new v2e(this)}Tv.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(Tv.prototype,"buffer",{get:L1t.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var aF;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(aF=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ni,Symbol.hasInstance,{value:function(e){return aF.call(this,e)?!0:this!==Ni?!1:e&&e._writableState instanceof Tv}})):aF=function(e){return e instanceof this};function Ni(t){OC=OC||dd();var e=this instanceof OC;if(!e&&!aF.call(Ni,this))return new Ni(t);this._writableState=new Tv(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),D2e.call(this)}Ni.prototype.pipe=function(){MC(this,new W1t)};function X1t(t,e){var r=new V1t;MC(t,r),process.nextTick(e,r)}function Z1t(t,e,r,o){var a;return r===null?a=new K1t:typeof r!="string"&&!e.objectMode&&(a=new q1t("chunk",["string","Buffer"],r)),a?(MC(t,a),process.nextTick(o,a),!1):!0}Ni.prototype.write=function(t,e,r){var o=this._writableState,a=!1,n=!o.objectMode&&U1t(t);return n&&!lF.isBuffer(t)&&(t=M1t(t)),typeof e=="function"&&(r=e,e=null),n?e="buffer":e||(e=o.defaultEncoding),typeof r!="function"&&(r=z1t),o.ending?X1t(this,r):(n||Z1t(this,o,t,r))&&(o.pendingcb++,a=e2t(this,o,n,t,e,r)),a};Ni.prototype.cork=function(){this._writableState.corked++};Ni.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&P2e(this,t))};Ni.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new J1t(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Ni.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function $1t(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=lF.from(e,r)),e}Object.defineProperty(Ni.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function e2t(t,e,r,o,a,n){if(!r){var u=$1t(e,o,a);o!==u&&(r=!0,a="buffer",o=u)}var A=e.objectMode?1:o.length;e.length+=A;var p=e.length{"use strict";var c2t=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};k2e.exports=IA;var x2e=C5(),E5=m5();zh()(IA,x2e);for(y5=c2t(E5.prototype),cF=0;cF{var AF=ve("buffer"),np=AF.Buffer;function Q2e(t,e){for(var r in t)e[r]=t[r]}np.from&&np.alloc&&np.allocUnsafe&&np.allocUnsafeSlow?F2e.exports=AF:(Q2e(AF,I5),I5.Buffer=UC);function UC(t,e,r){return np(t,e,r)}Q2e(np,UC);UC.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return np(t,e,r)};UC.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var o=np(t);return e!==void 0?typeof r=="string"?o.fill(e,r):o.fill(e):o.fill(0),o};UC.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return np(t)};UC.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return AF.SlowBuffer(t)}});var v5=_(N2e=>{"use strict";var B5=R2e().Buffer,T2e=B5.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function f2t(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function p2t(t){var e=f2t(t);if(typeof e!="string"&&(B5.isEncoding===T2e||!T2e(t)))throw new Error("Unknown encoding: "+t);return e||t}N2e.StringDecoder=Nv;function Nv(t){this.encoding=p2t(t);var e;switch(this.encoding){case"utf16le":this.text=E2t,this.end=C2t,e=4;break;case"utf8":this.fillLast=d2t,e=4;break;case"base64":this.text=I2t,this.end=w2t,e=3;break;default:this.write=B2t,this.end=v2t;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=B5.allocUnsafe(e)}Nv.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function h2t(t,e,r){var o=e.length-1;if(o=0?(a>0&&(t.lastNeed=a-1),a):--o=0?(a>0&&(t.lastNeed=a-2),a):--o=0?(a>0&&(a===2?a=0:t.lastNeed=a-3),a):0))}function g2t(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"\uFFFD"}}function d2t(t){var e=this.lastTotal-this.lastNeed,r=g2t(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function m2t(t,e){var r=h2t(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var o=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,o),t.toString("utf8",e,o)}function y2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function E2t(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var o=r.charCodeAt(r.length-1);if(o>=55296&&o<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function C2t(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function I2t(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function w2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function B2t(t){return t.toString(this.encoding)}function v2t(t){return t&&t.length?this.write(t):""}});var fF=_((s$t,M2e)=>{"use strict";var L2e=Jh().codes.ERR_STREAM_PREMATURE_CLOSE;function D2t(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,o=new Array(r),a=0;a{"use strict";var pF;function Zh(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var b2t=fF(),$h=Symbol("lastResolve"),md=Symbol("lastReject"),Lv=Symbol("error"),hF=Symbol("ended"),yd=Symbol("lastPromise"),D5=Symbol("handlePromise"),Ed=Symbol("stream");function e0(t,e){return{value:t,done:e}}function x2t(t){var e=t[$h];if(e!==null){var r=t[Ed].read();r!==null&&(t[yd]=null,t[$h]=null,t[md]=null,e(e0(r,!1)))}}function k2t(t){process.nextTick(x2t,t)}function Q2t(t,e){return function(r,o){t.then(function(){if(e[hF]){r(e0(void 0,!0));return}e[D5](r,o)},o)}}var F2t=Object.getPrototypeOf(function(){}),R2t=Object.setPrototypeOf((pF={get stream(){return this[Ed]},next:function(){var e=this,r=this[Lv];if(r!==null)return Promise.reject(r);if(this[hF])return Promise.resolve(e0(void 0,!0));if(this[Ed].destroyed)return new Promise(function(u,A){process.nextTick(function(){e[Lv]?A(e[Lv]):u(e0(void 0,!0))})});var o=this[yd],a;if(o)a=new Promise(Q2t(o,this));else{var n=this[Ed].read();if(n!==null)return Promise.resolve(e0(n,!1));a=new Promise(this[D5])}return this[yd]=a,a}},Zh(pF,Symbol.asyncIterator,function(){return this}),Zh(pF,"return",function(){var e=this;return new Promise(function(r,o){e[Ed].destroy(null,function(a){if(a){o(a);return}r(e0(void 0,!0))})})}),pF),F2t),T2t=function(e){var r,o=Object.create(R2t,(r={},Zh(r,Ed,{value:e,writable:!0}),Zh(r,$h,{value:null,writable:!0}),Zh(r,md,{value:null,writable:!0}),Zh(r,Lv,{value:null,writable:!0}),Zh(r,hF,{value:e._readableState.endEmitted,writable:!0}),Zh(r,D5,{value:function(n,u){var A=o[Ed].read();A?(o[yd]=null,o[$h]=null,o[md]=null,n(e0(A,!1))):(o[$h]=n,o[md]=u)},writable:!0}),r));return o[yd]=null,b2t(e,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var n=o[md];n!==null&&(o[yd]=null,o[$h]=null,o[md]=null,n(a)),o[Lv]=a;return}var u=o[$h];u!==null&&(o[yd]=null,o[$h]=null,o[md]=null,u(e0(void 0,!0))),o[hF]=!0}),e.on("readable",k2t.bind(null,o)),o};U2e.exports=T2t});var G2e=_((a$t,j2e)=>{"use strict";function H2e(t,e,r,o,a,n,u){try{var A=t[n](u),p=A.value}catch(h){r(h);return}A.done?e(p):Promise.resolve(p).then(o,a)}function N2t(t){return function(){var e=this,r=arguments;return new Promise(function(o,a){var n=t.apply(e,r);function u(p){H2e(n,o,a,u,A,"next",p)}function A(p){H2e(n,o,a,u,A,"throw",p)}u(void 0)})}}function q2e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function L2t(t){for(var e=1;e{"use strict";eBe.exports=wn;var _C;wn.ReadableState=V2e;var l$t=ve("events").EventEmitter,K2e=function(e,r){return e.listeners(r).length},Mv=a5(),gF=ve("buffer").Buffer,_2t=global.Uint8Array||function(){};function H2t(t){return gF.from(t)}function q2t(t){return gF.isBuffer(t)||t instanceof _2t}var P5=ve("util"),tn;P5&&P5.debuglog?tn=P5.debuglog("stream"):tn=function(){};var j2t=p2e(),R5=u5(),G2t=A5(),W2t=G2t.getHighWaterMark,dF=Jh().codes,Y2t=dF.ERR_INVALID_ARG_TYPE,K2t=dF.ERR_STREAM_PUSH_AFTER_EOF,V2t=dF.ERR_METHOD_NOT_IMPLEMENTED,J2t=dF.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,HC,S5,b5;zh()(wn,Mv);var Ov=R5.errorOrDestroy,x5=["error","close","destroy","pause","resume"];function z2t(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function V2e(t,e,r){_C=_C||dd(),t=t||{},typeof r!="boolean"&&(r=e instanceof _C),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=W2t(this,t,"readableHighWaterMark",r),this.buffer=new j2t,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(HC||(HC=v5().StringDecoder),this.decoder=new HC(t.encoding),this.encoding=t.encoding)}function wn(t){if(_C=_C||dd(),!(this instanceof wn))return new wn(t);var e=this instanceof _C;this._readableState=new V2e(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),Mv.call(this)}Object.defineProperty(wn.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});wn.prototype.destroy=R5.destroy;wn.prototype._undestroy=R5.undestroy;wn.prototype._destroy=function(t,e){e(t)};wn.prototype.push=function(t,e){var r=this._readableState,o;return r.objectMode?o=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=gF.from(t,e),e=""),o=!0),J2e(this,t,e,!1,o)};wn.prototype.unshift=function(t){return J2e(this,t,null,!0,!1)};function J2e(t,e,r,o,a){tn("readableAddChunk",e);var n=t._readableState;if(e===null)n.reading=!1,$2t(t,n);else{var u;if(a||(u=X2t(n,e)),u)Ov(t,u);else if(n.objectMode||e&&e.length>0)if(typeof e!="string"&&!n.objectMode&&Object.getPrototypeOf(e)!==gF.prototype&&(e=H2t(e)),o)n.endEmitted?Ov(t,new J2t):k5(t,n,e,!0);else if(n.ended)Ov(t,new K2t);else{if(n.destroyed)return!1;n.reading=!1,n.decoder&&!r?(e=n.decoder.write(e),n.objectMode||e.length!==0?k5(t,n,e,!1):F5(t,n)):k5(t,n,e,!1)}else o||(n.reading=!1,F5(t,n))}return!n.ended&&(n.length=W2e?t=W2e:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function Y2e(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=Z2t(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}wn.prototype.read=function(t){tn("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return tn("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?Q5(this):mF(this),null;if(t=Y2e(t,e),t===0&&e.ended)return e.length===0&&Q5(this),null;var o=e.needReadable;tn("need readable",o),(e.length===0||e.length-t0?a=Z2e(t,e):a=null,a===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Q5(this)),a!==null&&this.emit("data",a),a};function $2t(t,e){if(tn("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?mF(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,z2e(t)))}}function mF(t){var e=t._readableState;tn("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(tn("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(z2e,t))}function z2e(t){var e=t._readableState;tn("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,T5(t)}function F5(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(eBt,t,e))}function eBt(t,e){for(;!e.reading&&!e.ended&&(e.length1&&$2e(o.pipes,t)!==-1)&&!h&&(tn("false write response, pause",o.awaitDrain),o.awaitDrain++),r.pause())}function D(L){tn("onerror",L),T(),t.removeListener("error",D),K2e(t,"error")===0&&Ov(t,L)}z2t(t,"error",D);function x(){t.removeListener("finish",C),T()}t.once("close",x);function C(){tn("onfinish"),t.removeListener("close",x),T()}t.once("finish",C);function T(){tn("unpipe"),r.unpipe(t)}return t.emit("pipe",r),o.flowing||(tn("pipe resume"),r.resume()),t};function tBt(t){return function(){var r=t._readableState;tn("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&K2e(t,"data")&&(r.flowing=!0,T5(t))}}wn.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var o=e.pipes,a=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var n=0;n0,o.flowing!==!1&&this.resume()):t==="readable"&&!o.endEmitted&&!o.readableListening&&(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,tn("on readable",o.length,o.reading),o.length?mF(this):o.reading||process.nextTick(rBt,this)),r};wn.prototype.addListener=wn.prototype.on;wn.prototype.removeListener=function(t,e){var r=Mv.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(X2e,this),r};wn.prototype.removeAllListeners=function(t){var e=Mv.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(X2e,this),e};function X2e(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function rBt(t){tn("readable nexttick read 0"),t.read(0)}wn.prototype.resume=function(){var t=this._readableState;return t.flowing||(tn("resume"),t.flowing=!t.readableListening,nBt(this,t)),t.paused=!1,this};function nBt(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(iBt,t,e))}function iBt(t,e){tn("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),T5(t),e.flowing&&!e.reading&&t.read(0)}wn.prototype.pause=function(){return tn("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(tn("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function T5(t){var e=t._readableState;for(tn("flow",e.flowing);e.flowing&&t.read()!==null;);}wn.prototype.wrap=function(t){var e=this,r=this._readableState,o=!1;t.on("end",function(){if(tn("wrapped end"),r.decoder&&!r.ended){var u=r.decoder.end();u&&u.length&&e.push(u)}e.push(null)}),t.on("data",function(u){if(tn("wrapped data"),r.decoder&&(u=r.decoder.write(u)),!(r.objectMode&&u==null)&&!(!r.objectMode&&(!u||!u.length))){var A=e.push(u);A||(o=!0,t.pause())}});for(var a in t)this[a]===void 0&&typeof t[a]=="function"&&(this[a]=function(A){return function(){return t[A].apply(t,arguments)}}(a));for(var n=0;n=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function Q5(t){var e=t._readableState;tn("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(sBt,e,t))}function sBt(t,e){if(tn("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(wn.from=function(t,e){return b5===void 0&&(b5=G2e()),b5(wn,t,e)});function $2e(t,e){for(var r=0,o=t.length;r{"use strict";rBe.exports=ip;var yF=Jh().codes,oBt=yF.ERR_METHOD_NOT_IMPLEMENTED,aBt=yF.ERR_MULTIPLE_CALLBACK,lBt=yF.ERR_TRANSFORM_ALREADY_TRANSFORMING,cBt=yF.ERR_TRANSFORM_WITH_LENGTH_0,EF=dd();zh()(ip,EF);function uBt(t,e){var r=this._transformState;r.transforming=!1;var o=r.writecb;if(o===null)return this.emit("error",new aBt);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),o(t);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";iBe.exports=Uv;var nBe=N5();zh()(Uv,nBe);function Uv(t){if(!(this instanceof Uv))return new Uv(t);nBe.call(this,t)}Uv.prototype._transform=function(t,e,r){r(null,t)}});var uBe=_((f$t,cBe)=>{"use strict";var L5;function fBt(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var lBe=Jh().codes,pBt=lBe.ERR_MISSING_ARGS,hBt=lBe.ERR_STREAM_DESTROYED;function oBe(t){if(t)throw t}function gBt(t){return t.setHeader&&typeof t.abort=="function"}function dBt(t,e,r,o){o=fBt(o);var a=!1;t.on("close",function(){a=!0}),L5===void 0&&(L5=fF()),L5(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,gBt(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();o(u||new hBt("pipe"))}}}function aBe(t){t()}function mBt(t,e){return t.pipe(e)}function yBt(t){return!t.length||typeof t[t.length-1]!="function"?oBe:t.pop()}function EBt(){for(var t=arguments.length,e=new Array(t),r=0;r0;return dBt(u,p,h,function(E){a||(a=E),E&&n.forEach(aBe),!p&&(n.forEach(aBe),o(a))})});return e.reduce(mBt)}cBe.exports=EBt});var qC=_((fc,Hv)=>{var _v=ve("stream");process.env.READABLE_STREAM==="disable"&&_v?(Hv.exports=_v.Readable,Object.assign(Hv.exports,_v),Hv.exports.Stream=_v):(fc=Hv.exports=C5(),fc.Stream=_v||fc,fc.Readable=fc,fc.Writable=m5(),fc.Duplex=dd(),fc.Transform=N5(),fc.PassThrough=sBe(),fc.finished=fF(),fc.pipeline=uBe())});var pBe=_((p$t,fBe)=>{"use strict";var{Buffer:hu}=ve("buffer"),ABe=Symbol.for("BufferList");function fi(t){if(!(this instanceof fi))return new fi(t);fi._init.call(this,t)}fi._init=function(e){Object.defineProperty(this,ABe,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};fi.prototype._new=function(e){return new fi(e)};fi.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let o=0;othis.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};fi.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};fi.prototype.copy=function(e,r,o,a){if((typeof o!="number"||o<0)&&(o=0),(typeof a!="number"||a>this.length)&&(a=this.length),o>=this.length||a<=0)return e||hu.alloc(0);let n=!!e,u=this._offset(o),A=a-o,p=A,h=n&&r||0,E=u[1];if(o===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:hu.concat(this._bufs,this.length);for(let w=0;wD)this._bufs[w].copy(e,h,E),h+=D;else{this._bufs[w].copy(e,h,E,E+p),h+=D;break}p-=D,E&&(E=0)}return e.length>h?e.slice(0,h):e};fi.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let o=this._offset(e),a=this._offset(r),n=this._bufs.slice(o[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),o[1]!==0&&(n[0]=n[0].slice(o[1])),this._new(n)};fi.prototype.toString=function(e,r,o){return this.slice(r,o).toString(e)};fi.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};fi.prototype.duplicate=function(){let e=this._new();for(let r=0;rthis.length?this.length:e;let o=this._offset(e),a=o[0],n=o[1];for(;a=t.length){let p=u.indexOf(t,n);if(p!==-1)return this._reverseOffset([a,p]);n=u.length-t.length+1}else{let p=this._reverseOffset([a,n]);if(this._match(p,t))return p;n++}n=0}return-1};fi.prototype._match=function(t,e){if(this.length-t{"use strict";var O5=qC().Duplex,CBt=zh(),qv=pBe();function Fo(t){if(!(this instanceof Fo))return new Fo(t);if(typeof t=="function"){this._callback=t;let e=function(o){this._callback&&(this._callback(o),this._callback=null)}.bind(this);this.on("pipe",function(o){o.on("error",e)}),this.on("unpipe",function(o){o.removeListener("error",e)}),t=null}qv._init.call(this,t),O5.call(this)}CBt(Fo,O5);Object.assign(Fo.prototype,qv.prototype);Fo.prototype._new=function(e){return new Fo(e)};Fo.prototype._write=function(e,r,o){this._appendBuffer(e),typeof o=="function"&&o()};Fo.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Fo.prototype.end=function(e){O5.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Fo.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Fo.prototype._isBufferList=function(e){return e instanceof Fo||e instanceof qv||Fo.isBufferList(e)};Fo.isBufferList=qv.isBufferList;CF.exports=Fo;CF.exports.BufferListStream=Fo;CF.exports.BufferList=qv});var _5=_(GC=>{var IBt=Buffer.alloc,wBt="0000000000000000000",BBt="7777777777777777777",gBe=48,dBe=Buffer.from("ustar\0","binary"),vBt=Buffer.from("00","binary"),DBt=Buffer.from("ustar ","binary"),PBt=Buffer.from(" \0","binary"),SBt=parseInt("7777",8),jv=257,U5=263,bBt=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},xBt=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},kBt=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},mBe=function(t,e,r,o){for(;re?BBt.slice(0,e)+" ":wBt.slice(0,e-t.length)+t+" "};function QBt(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],o=t.length-1;o>0;o--){var a=t[o];e?r.push(a):r.push(255-a)}var n=0,u=r.length;for(o=0;o=Math.pow(10,r)&&r++,e+r+t};GC.decodeLongPath=function(t,e){return jC(t,0,t.length,e)};GC.encodePax=function(t){var e="";t.name&&(e+=M5(" path="+t.name+` +`)),t.linkname&&(e+=M5(" linkpath="+t.linkname+` +`));var r=t.pax;if(r)for(var o in r)e+=M5(" "+o+"="+r[o]+` +`);return Buffer.from(e)};GC.decodePax=function(t){for(var e={};t.length;){for(var r=0;r100;){var a=r.indexOf("/");if(a===-1)return null;o+=o?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(o)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(t0(t.mode&SBt,6),100),e.write(t0(t.uid,6),108),e.write(t0(t.gid,6),116),e.write(t0(t.size,11),124),e.write(t0(t.mtime.getTime()/1e3|0,11),136),e[156]=gBe+kBt(t.type),t.linkname&&e.write(t.linkname,157),dBe.copy(e,jv),vBt.copy(e,U5),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(t0(t.devmajor||0,6),329),e.write(t0(t.devminor||0,6),337),o&&e.write(o,345),e.write(t0(yBe(e),6),148),e)};GC.decode=function(t,e,r){var o=t[156]===0?0:t[156]-gBe,a=jC(t,0,100,e),n=r0(t,100,8),u=r0(t,108,8),A=r0(t,116,8),p=r0(t,124,12),h=r0(t,136,12),E=xBt(o),w=t[157]===0?null:jC(t,157,100,e),D=jC(t,265,32),x=jC(t,297,32),C=r0(t,329,8),T=r0(t,337,8),L=yBe(t);if(L===8*32)return null;if(L!==r0(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(dBe.compare(t,jv,jv+6)===0)t[345]&&(a=jC(t,345,155,e)+"/"+a);else if(!(DBt.compare(t,jv,jv+6)===0&&PBt.compare(t,U5,U5+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return o===0&&a&&a[a.length-1]==="/"&&(o=5),{name:a,mode:n,uid:u,gid:A,size:p,mtime:new Date(1e3*h),type:E,linkname:w,uname:D,gname:x,devmajor:C,devminor:T}}});var DBe=_((d$t,vBe)=>{var CBe=ve("util"),FBt=hBe(),Gv=_5(),IBe=qC().Writable,wBe=qC().PassThrough,BBe=function(){},EBe=function(t){return t&=511,t&&512-t},RBt=function(t,e){var r=new IF(t,e);return r.end(),r},TBt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},IF=function(t,e){this._parent=t,this.offset=e,wBe.call(this,{autoDestroy:!1})};CBe.inherits(IF,wBe);IF.prototype.destroy=function(t){this._parent.destroy(t)};var sp=function(t){if(!(this instanceof sp))return new sp(t);IBe.call(this,t),t=t||{},this._offset=0,this._buffer=FBt(),this._missing=0,this._partial=!1,this._onparse=BBe,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,o=function(){e._continue()},a=function(D){if(e._locked=!1,D)return e.destroy(D);e._stream||o()},n=function(){e._stream=null;var D=EBe(e._header.size);D?e._parse(D,u):e._parse(512,w),e._locked||o()},u=function(){e._buffer.consume(EBe(e._header.size)),e._parse(512,w),o()},A=function(){var D=e._header.size;e._paxGlobal=Gv.decodePax(r.slice(0,D)),r.consume(D),n()},p=function(){var D=e._header.size;e._pax=Gv.decodePax(r.slice(0,D)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(D),n()},h=function(){var D=e._header.size;this._gnuLongPath=Gv.decodeLongPath(r.slice(0,D),t.filenameEncoding),r.consume(D),n()},E=function(){var D=e._header.size;this._gnuLongLinkPath=Gv.decodeLongPath(r.slice(0,D),t.filenameEncoding),r.consume(D),n()},w=function(){var D=e._offset,x;try{x=e._header=Gv.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(C){e.emit("error",C)}if(r.consume(512),!x){e._parse(512,w),o();return}if(x.type==="gnu-long-path"){e._parse(x.size,h),o();return}if(x.type==="gnu-long-link-path"){e._parse(x.size,E),o();return}if(x.type==="pax-global-header"){e._parse(x.size,A),o();return}if(x.type==="pax-header"){e._parse(x.size,p),o();return}if(e._gnuLongPath&&(x.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(x.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=x=TBt(x,e._pax),e._pax=null),e._locked=!0,!x.size||x.type==="directory"){e._parse(512,w),e.emit("entry",x,RBt(e,D),a);return}e._stream=new IF(e,D),e.emit("entry",x,e._stream,a),e._parse(x.size,n),o()};this._onheader=w,this._parse(512,w)};CBe.inherits(sp,IBe);sp.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};sp.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};sp.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=BBe,this._overflow?this._write(this._overflow,void 0,t):t()}};sp.prototype._write=function(t,e,r){if(!this._destroyed){var o=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.lengthn&&(u=t.slice(n),t=t.slice(0,n)),o?o.end(t):a.append(t),this._overflow=u,this._onparse()}};sp.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};vBe.exports=sp});var SBe=_((m$t,PBe)=>{PBe.exports=ve("fs").constants||ve("constants")});var FBe=_((y$t,QBe)=>{var WC=SBe(),bBe=EU(),BF=zh(),NBt=Buffer.alloc,xBe=qC().Readable,YC=qC().Writable,LBt=ve("string_decoder").StringDecoder,wF=_5(),OBt=parseInt("755",8),MBt=parseInt("644",8),kBe=NBt(1024),q5=function(){},H5=function(t,e){e&=511,e&&t.push(kBe.slice(0,512-e))};function UBt(t){switch(t&WC.S_IFMT){case WC.S_IFBLK:return"block-device";case WC.S_IFCHR:return"character-device";case WC.S_IFDIR:return"directory";case WC.S_IFIFO:return"fifo";case WC.S_IFLNK:return"symlink"}return"file"}var vF=function(t){YC.call(this),this.written=0,this._to=t,this._destroyed=!1};BF(vF,YC);vF.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};vF.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var DF=function(){YC.call(this),this.linkname="",this._decoder=new LBt("utf-8"),this._destroyed=!1};BF(DF,YC);DF.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};DF.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Wv=function(){YC.call(this),this._destroyed=!1};BF(Wv,YC);Wv.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};Wv.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var wA=function(t){if(!(this instanceof wA))return new wA(t);xBe.call(this,t),this._drain=q5,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};BF(wA,xBe);wA.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=q5);var o=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=UBt(t.mode)),t.mode||(t.mode=t.type==="directory"?OBt:MBt),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var a=this.push(e);return H5(o,t.size),a?process.nextTick(r):this._drain=r,new Wv}if(t.type==="symlink"&&!t.linkname){var n=new DF;return bBe(n,function(A){if(A)return o.destroy(),r(A);t.linkname=n.linkname,o._encode(t),r()}),n}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new Wv;var u=new vF(this);return this._stream=u,bBe(u,function(A){if(o._stream=null,A)return o.destroy(),r(A);if(u.written!==t.size)return o.destroy(),r(new Error("size mismatch"));H5(o,t.size),o._finalizing&&o.finalize(),r()}),u}};wA.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(kBe),this.push(null))};wA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};wA.prototype._encode=function(t){if(!t.pax){var e=wF.encode(t);if(e){this.push(e);return}}this._encodePax(t)};wA.prototype._encodePax=function(t){var e=wF.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(wF.encode(r)),this.push(e),H5(this,e.length),r.size=t.size,r.type=t.type,this.push(wF.encode(r))};wA.prototype._read=function(t){var e=this._drain;this._drain=q5,e()};QBe.exports=wA});var RBe=_(j5=>{j5.extract=DBe();j5.pack=FBe()});var WBe=_((M$t,GBe)=>{"use strict";var Yv=class t{constructor(e,r,o){this.__specs=e||{},Object.keys(this.__specs).forEach(a=>{if(typeof this.__specs[a]=="string"){let n=this.__specs[a],u=this.__specs[n];if(u){let A=u.aliases||[];A.push(a,n),u.aliases=[...new Set(A)],this.__specs[a]=u}else throw new Error(`Alias refers to invalid key: ${n} -> ${a}`)}}),this.__opts=r||{},this.__providers=qBe(o.filter(a=>a!=null&&typeof a=="object")),this.__isFiggyPudding=!0}get(e){return J5(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[o,a]of this.entries())e.call(r,a,o,this)}toJSON(){let e={};return this.forEach((r,o)=>{e[o]=r}),e}*entries(e){for(let o of Object.keys(this.__specs))yield[o,this.get(o)];let r=e||this.__opts.other;if(r){let o=new Set;for(let a of this.__providers){let n=a.entries?a.entries(r):evt(a);for(let[u,A]of n)r(u)&&!o.has(u)&&(o.add(u),yield[u,A])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new t(this.__specs,this.__opts,qBe(this.__providers).concat(e)),jBe)}};try{let t=ve("util");Yv.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch{}function ZBt(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function J5(t,e,r){let o=t.__specs[e];if(r&&!o&&(!t.__opts.other||!t.__opts.other(e)))ZBt(e);else{o||(o={});let a;for(let n of t.__providers){if(a=HBe(e,n),a===void 0&&o.aliases&&o.aliases.length){for(let u of o.aliases)if(u!==e&&(a=HBe(u,n),a!==void 0))break}if(a!==void 0)break}return a===void 0&&o.default!==void 0?typeof o.default=="function"?o.default(t):o.default:a}}function HBe(t,e){let r;return e.__isFiggyPudding?r=J5(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var jBe={has(t,e){return e in t.__specs&&J5(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in Yv.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};GBe.exports=$Bt;function $Bt(t,e){function r(...o){return new Proxy(new Yv(t,e,o),jBe)}return r}function qBe(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function evt(t){return Object.keys(t).map(e=>[e,t[e]])}});var VBe=_((U$t,DA)=>{"use strict";var Vv=ve("crypto"),tvt=WBe(),rvt=ve("stream").Transform,YBe=["sha256","sha384","sha512"],nvt=/^[a-z0-9+/]+(?:=?=?)$/i,ivt=/^([^-]+)-([^?]+)([?\S*]*)$/,svt=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,ovt=/^[\x21-\x7E]+$/,na=tvt({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>hvt},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),n0=class{get isHash(){return!0}constructor(e,r){r=na(r);let o=!!r.strict;this.source=e.trim();let a=this.source.match(o?svt:ivt);if(!a||o&&!YBe.some(u=>u===a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];this.options=n?n.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=na(e),e.strict&&!(YBe.some(o=>o===this.algorithm)&&this.digest.match(nvt)&&(this.options||[]).every(o=>o.match(ovt))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},Cd=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=na(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(o=>this[o].map(a=>n0.prototype.toString.call(a,e)).filter(a=>a.length).join(r)).filter(o=>o.length).join(r)}concat(e,r){r=na(r);let o=typeof e=="string"?e:Kv(e,r);return vA(`${this.toString(r)} ${o}`,r)}hexDigest(){return vA(this,{single:!0}).hexDigest()}match(e,r){r=na(r);let o=vA(e,r),a=o.pickAlgorithm(r);return this[a]&&o[a]&&this[a].find(n=>o[a].find(u=>n.digest===u.digest))||!1}pickAlgorithm(e){e=na(e);let r=e.pickAlgorithm,o=Object.keys(this);if(!o.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return o.reduce((a,n)=>r(a,n)||a)}};DA.exports.parse=vA;function vA(t,e){if(e=na(e),typeof t=="string")return z5(t,e);if(t.algorithm&&t.digest){let r=new Cd;return r[t.algorithm]=[t],z5(Kv(r,e),e)}else return z5(Kv(t,e),e)}function z5(t,e){return e.single?new n0(t,e):t.trim().split(/\s+/).reduce((r,o)=>{let a=new n0(o,e);if(a.algorithm&&a.digest){let n=a.algorithm;r[n]||(r[n]=[]),r[n].push(a)}return r},new Cd)}DA.exports.stringify=Kv;function Kv(t,e){return e=na(e),t.algorithm&&t.digest?n0.prototype.toString.call(t,e):typeof t=="string"?Kv(vA(t,e),e):Cd.prototype.toString.call(t,e)}DA.exports.fromHex=avt;function avt(t,e,r){r=na(r);let o=r.options&&r.options.length?`?${r.options.join("?")}`:"";return vA(`${e}-${Buffer.from(t,"hex").toString("base64")}${o}`,r)}DA.exports.fromData=lvt;function lvt(t,e){e=na(e);let r=e.algorithms,o=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((a,n)=>{let u=Vv.createHash(n).update(t).digest("base64"),A=new n0(`${n}-${u}${o}`,e);if(A.algorithm&&A.digest){let p=A.algorithm;a[p]||(a[p]=[]),a[p].push(A)}return a},new Cd)}DA.exports.fromStream=cvt;function cvt(t,e){e=na(e);let r=e.Promise||Promise,o=X5(e);return new r((a,n)=>{t.pipe(o),t.on("error",n),o.on("error",n);let u;o.on("integrity",A=>{u=A}),o.on("end",()=>a(u)),o.on("data",()=>{})})}DA.exports.checkData=uvt;function uvt(t,e,r){if(r=na(r),e=vA(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let o=e.pickAlgorithm(r),a=Vv.createHash(o).update(t).digest("base64"),n=vA({algorithm:o,digest:a}),u=n.match(e,r);if(u||!r.error)return u;if(typeof r.size=="number"&&t.length!==r.size){let A=new Error(`data size mismatch when checking ${e}. + Wanted: ${r.size} + Found: ${t.length}`);throw A.code="EBADSIZE",A.found=t.length,A.expected=r.size,A.sri=e,A}else{let A=new Error(`Integrity checksum failed when using ${o}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw A.code="EINTEGRITY",A.found=n,A.expected=e,A.algorithm=o,A.sri=e,A}}DA.exports.checkStream=Avt;function Avt(t,e,r){r=na(r);let o=r.Promise||Promise,a=X5(r.concat({integrity:e}));return new o((n,u)=>{t.pipe(a),t.on("error",u),a.on("error",u);let A;a.on("verified",p=>{A=p}),a.on("end",()=>n(A)),a.on("data",()=>{})})}DA.exports.integrityStream=X5;function X5(t){t=na(t);let e=t.integrity&&vA(t.integrity,t),r=e&&Object.keys(e).length,o=r&&e.pickAlgorithm(t),a=r&&e[o],n=Array.from(new Set(t.algorithms.concat(o?[o]:[]))),u=n.map(Vv.createHash),A=0,p=new rvt({transform(h,E,w){A+=h.length,u.forEach(D=>D.update(h,E)),w(null,h,E)}}).on("end",()=>{let h=t.options&&t.options.length?`?${t.options.join("?")}`:"",E=vA(u.map((D,x)=>`${n[x]}-${D.digest("base64")}${h}`).join(" "),t),w=r&&E.match(e,t);if(typeof t.size=="number"&&A!==t.size){let D=new Error(`stream size mismatch when checking ${e}. + Wanted: ${t.size} + Found: ${A}`);D.code="EBADSIZE",D.found=A,D.expected=t.size,D.sri=e,p.emit("error",D)}else if(t.integrity&&!w){let D=new Error(`${e} integrity checksum failed when using ${o}: wanted ${a} but got ${E}. (${A} bytes)`);D.code="EINTEGRITY",D.found=E,D.expected=a,D.algorithm=o,D.sri=e,p.emit("error",D)}else p.emit("size",A),p.emit("integrity",E),w&&p.emit("verified",w)});return p}DA.exports.create=fvt;function fvt(t){t=na(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",o=e.map(Vv.createHash);return{update:function(a,n){return o.forEach(u=>u.update(a,n)),this},digest:function(a){return e.reduce((u,A)=>{let p=o.shift().digest("base64"),h=new n0(`${A}-${p}${r}`,t);if(h.algorithm&&h.digest){let E=h.algorithm;u[E]||(u[E]=[]),u[E].push(h)}return u},new Cd)}}}var pvt=new Set(Vv.getHashes()),KBe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>pvt.has(t));function hvt(t,e){return KBe.indexOf(t.toLowerCase())>=KBe.indexOf(e.toLowerCase())?t:e}});var Bve=_((qnr,wve)=>{var hDt=WL();function gDt(t){return hDt(t)?void 0:t}wve.exports=gDt});var Dve=_((jnr,vve)=>{var dDt=Cx(),mDt=hH(),yDt=yH(),EDt=Wg(),CDt=Eg(),IDt=Bve(),wDt=l_(),BDt=pH(),vDt=1,DDt=2,PDt=4,SDt=wDt(function(t,e){var r={};if(t==null)return r;var o=!1;e=dDt(e,function(n){return n=EDt(n,t),o||(o=n.length>1),n}),CDt(t,BDt(t),r),o&&(r=mDt(r,vDt|DDt|PDt,IDt));for(var a=e.length;a--;)yDt(r,e[a]);return r});vve.exports=SDt});Pt();Ke();Pt();var kve=ve("child_process"),Qve=et(sg());Gt();var oE=new Map([]);var S2={};Kt(S2,{BaseCommand:()=>ut,WorkspaceRequiredError:()=>or,getCli:()=>qhe,getDynamicLibs:()=>Hhe,getPluginConfiguration:()=>lE,openWorkspace:()=>aE,pluginCommands:()=>oE,runExit:()=>Lk});Gt();var ut=class extends ot{constructor(){super(...arguments);this.cwd=de.String("--cwd",{hidden:!0})}validateAndExecute(){if(typeof this.cwd<"u")throw new it("The --cwd option is ambiguous when used anywhere else than the very first parameter provided in the command line, before even the command path");return super.validateAndExecute()}};Ke();Pt();Gt();var or=class extends it{constructor(e,r){let o=K.relative(e,r),a=K.join(e,_t.fileName);super(`This command can only be run from within a workspace of your project (${o} isn't a workspace of ${a}).`)}};Ke();Pt();sA();Ol();z1();Gt();var SAt=et(ni());il();var Hhe=()=>new Map([["@yarnpkg/cli",S2],["@yarnpkg/core",P2],["@yarnpkg/fslib",Aw],["@yarnpkg/libzip",V1],["@yarnpkg/parsers",Ew],["@yarnpkg/shell",e2],["clipanion",Qw],["semver",SAt],["typanion",Yo]]);Ke();async function aE(t,e){let{project:r,workspace:o}=await Qt.find(t,e);if(!o)throw new or(r.cwd,e);return o}Ke();Pt();sA();Ol();z1();Gt();var LDt=et(ni());il();var MH={};Kt(MH,{AddCommand:()=>fE,BinCommand:()=>pE,CacheCleanCommand:()=>hE,ClipanionCommand:()=>CE,ConfigCommand:()=>yE,ConfigGetCommand:()=>gE,ConfigSetCommand:()=>dE,ConfigUnsetCommand:()=>mE,DedupeCommand:()=>EE,EntryCommand:()=>wE,ExecCommand:()=>vE,ExplainCommand:()=>SE,ExplainPeerRequirementsCommand:()=>DE,HelpCommand:()=>IE,InfoCommand:()=>bE,LinkCommand:()=>kE,NodeCommand:()=>QE,PluginCheckCommand:()=>FE,PluginImportCommand:()=>NE,PluginImportSourcesCommand:()=>LE,PluginListCommand:()=>RE,PluginRemoveCommand:()=>OE,PluginRuntimeCommand:()=>ME,RebuildCommand:()=>UE,RemoveCommand:()=>_E,RunCommand:()=>qE,RunIndexCommand:()=>HE,SetResolutionCommand:()=>jE,SetVersionCommand:()=>PE,SetVersionSourcesCommand:()=>TE,UnlinkCommand:()=>GE,UpCommand:()=>WE,VersionCommand:()=>BE,WhyCommand:()=>YE,WorkspaceCommand:()=>XE,WorkspacesListCommand:()=>zE,YarnCommand:()=>xE,dedupeUtils:()=>Yk,default:()=>Igt,suggestUtils:()=>nu});var Eme=et(sg());Ke();Ke();Ke();Gt();var xge=et(Q2());il();var nu={};Kt(nu,{Modifier:()=>lH,Strategy:()=>jk,Target:()=>F2,WorkspaceModifier:()=>vge,applyModifier:()=>Kft,extractDescriptorFromPath:()=>cH,extractRangeModifier:()=>Dge,fetchDescriptorFrom:()=>uH,findProjectDescriptors:()=>bge,getModifier:()=>R2,getSuggestedDescriptors:()=>T2,makeWorkspaceDescriptor:()=>Sge,toWorkspaceModifier:()=>Pge});Ke();Ke();Pt();var aH=et(ni()),Wft="workspace:",F2=(o=>(o.REGULAR="dependencies",o.DEVELOPMENT="devDependencies",o.PEER="peerDependencies",o))(F2||{}),lH=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="",o))(lH||{}),vge=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="*",o))(vge||{}),jk=(n=>(n.KEEP="keep",n.REUSE="reuse",n.PROJECT="project",n.LATEST="latest",n.CACHE="cache",n))(jk||{});function R2(t,e){return t.exact?"":t.caret?"^":t.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var Yft=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Dge(t,{project:e}){let r=t.match(Yft);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function Kft(t,e){let{protocol:r,source:o,params:a,selector:n}=G.parseRange(t.range);return aH.default.valid(n)&&(n=`${e}${t.range}`),G.makeDescriptor(t,G.makeRange({protocol:r,source:o,params:a,selector:n}))}function Pge(t){switch(t){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function Sge(t,e){return G.makeDescriptor(t.anchoredDescriptor,`${Wft}${Pge(e)}`)}async function bge(t,{project:e,target:r}){let o=new Map,a=n=>{let u=o.get(n.descriptorHash);return u||o.set(n.descriptorHash,u={descriptor:n,locators:[]}),u};for(let n of e.workspaces)if(r==="peerDependencies"){let u=n.manifest.peerDependencies.get(t.identHash);u!==void 0&&a(u).locators.push(n.anchoredLocator)}else{let u=n.manifest.dependencies.get(t.identHash),A=n.manifest.devDependencies.get(t.identHash);r==="devDependencies"?A!==void 0?a(A).locators.push(n.anchoredLocator):u!==void 0&&a(u).locators.push(n.anchoredLocator):u!==void 0?a(u).locators.push(n.anchoredLocator):A!==void 0&&a(A).locators.push(n.anchoredLocator)}return o}async function cH(t,{cwd:e,workspace:r}){return await Vft(async o=>{K.isAbsolute(t)||(t=K.relative(r.cwd,K.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:a}=r,n=await uH(G.makeIdent(null,"archive"),t,{project:r.project,cache:o,workspace:r});if(!n)throw new Error("Assertion failed: The descriptor should have been found");let u=new Ri,A=a.configuration.makeResolver(),p=a.configuration.makeFetcher(),h={checksums:a.storedChecksums,project:a,cache:o,fetcher:p,report:u,resolver:A},E=A.bindDescriptor(n,r.anchoredLocator,h),w=G.convertDescriptorToLocator(E),D=await p.fetch(w,h),x=await _t.find(D.prefixPath,{baseFs:D.packageFs});if(!x.name)throw new Error("Target path doesn't have a name");return G.makeDescriptor(x.name,t)})}async function T2(t,{project:e,workspace:r,cache:o,target:a,fixed:n,modifier:u,strategies:A,maxResults:p=1/0}){if(!(p>=0))throw new Error(`Invalid maxResults (${p})`);let[h,E]=t.range!=="unknown"?n||Ur.validRange(t.range)||!t.range.match(/^[a-z0-9._-]+$/i)?[t.range,"latest"]:["unknown",t.range]:["unknown","latest"];if(h!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${G.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let w=typeof r<"u"&&r!==null&&r.manifest[a].get(t.identHash)||null,D=[],x=[],C=async T=>{try{await T()}catch(L){x.push(L)}};for(let T of A){if(D.length>=p)break;switch(T){case"keep":await C(async()=>{w&&D.push({descriptor:w,name:`Keep ${G.prettyDescriptor(e.configuration,w)}`,reason:"(no changes)"})});break;case"reuse":await C(async()=>{for(let{descriptor:L,locators:U}of(await bge(t,{project:e,target:a})).values()){if(U.length===1&&U[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes("keep"))continue;let J=`(originally used by ${G.prettyLocator(e.configuration,U[0])}`;J+=U.length>1?` and ${U.length-1} other${U.length>2?"s":""})`:")",D.push({descriptor:L,name:`Reuse ${G.prettyDescriptor(e.configuration,L)}`,reason:J})}});break;case"cache":await C(async()=>{for(let L of e.storedDescriptors.values())L.identHash===t.identHash&&D.push({descriptor:L,name:`Reuse ${G.prettyDescriptor(e.configuration,L)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await C(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let L=e.tryWorkspaceByIdent(t);if(L===null)return;let U=Sge(L,u);D.push({descriptor:U,name:`Attach ${G.prettyDescriptor(e.configuration,U)}`,reason:`(local workspace at ${pe.pretty(e.configuration,L.relativeCwd,pe.Type.PATH)})`})});break;case"latest":{let L=e.configuration.get("enableNetwork"),U=e.configuration.get("enableOfflineMode");await C(async()=>{if(a==="peerDependencies")D.push({descriptor:G.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!L&&!U)D.push({descriptor:null,name:"Resolve from latest",reason:pe.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let J=await uH(t,E,{project:e,cache:o,workspace:r,modifier:u});J&&D.push({descriptor:J,name:`Use ${G.prettyDescriptor(e.configuration,J)}`,reason:`(resolved from ${U?"the cache":"latest"})`})}})}break}}return{suggestions:D.slice(0,p),rejections:x.slice(0,p)}}async function uH(t,e,{project:r,cache:o,workspace:a,preserveModifier:n=!0,modifier:u}){let A=r.configuration.normalizeDependency(G.makeDescriptor(t,e)),p=new Ri,h=r.configuration.makeFetcher(),E=r.configuration.makeResolver(),w={project:r,fetcher:h,cache:o,checksums:r.storedChecksums,report:p,cacheOptions:{skipIntegrityCheck:!0}},D={...w,resolver:E,fetchOptions:w},x=E.bindDescriptor(A,a.anchoredLocator,D),C=await E.getCandidates(x,{},D);if(C.length===0)return null;let T=C[0],{protocol:L,source:U,params:J,selector:te}=G.parseRange(G.convertToManifestRange(T.reference));if(L===r.configuration.get("defaultProtocol")&&(L=null),aH.default.valid(te)){let le=te;if(typeof u<"u")te=u+te;else if(n!==!1){let Ie=typeof n=="string"?n:A.range;te=Dge(Ie,{project:r})+te}let ce=G.makeDescriptor(T,G.makeRange({protocol:L,source:U,params:J,selector:te}));(await E.getCandidates(r.configuration.normalizeDependency(ce),{},D)).length!==1&&(te=le)}return G.makeDescriptor(T,G.makeRange({protocol:L,source:U,params:J,selector:te}))}async function Vft(t){return await ae.mktempPromise(async e=>{let r=ze.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Wr(e,{configuration:r,check:!1,immutable:!1}))})}var fE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.fixed=de.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=de.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=de.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=de.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=de.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=de.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=de.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=de.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=de.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=de.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=de.String("--mode",{description:"Change what artifacts installs generate",validator:js(yl)});this.silent=de.Boolean("--silent",{hidden:!0});this.packages=de.Rest()}static{this.paths=[["add"]]}static{this.usage=ot.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"],["Add a local package (gzipped tarball format) to the current workspace","$0 add local-package-name@file:../path/to/local-package-name-v0.1.2.tgz"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=A||r.get("preferReuse"),h=R2(this,o),E=[p?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(U=>typeof U<"u"),w=A?1/0:1,D=await Promise.all(this.packages.map(async U=>{let J=U.match(/^\.{0,2}\//)?await cH(U,{cwd:this.context.cwd,workspace:a}):G.tryParseDescriptor(U),te=U.match(/^(https?:|git@github)/);if(te)throw new it(`It seems you are trying to add a package using a ${pe.pretty(r,`${te[0]}...`,pe.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${pe.pretty(r,"yarn add",pe.Type.CODE)} ${pe.pretty(r,G.makeDescriptor(G.makeIdent(null,"my-package"),`${te[0]}...`),pe.Type.DESCRIPTOR)}`);if(!J)throw new it(`The ${pe.pretty(r,U,pe.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let le=Jft(a,J,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(le.map(async ue=>{let Ie=await T2(J,{project:o,workspace:a,cache:n,fixed:u,target:ue,modifier:h,strategies:E,maxResults:w});return{request:J,suggestedDescriptors:Ie,target:ue}}))})).then(U=>U.flat()),x=await pA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async U=>{for(let{request:J,suggestedDescriptors:{suggestions:te,rejections:le}}of D)if(te.filter(ue=>ue.descriptor!==null).length===0){let[ue]=le;if(typeof ue>"u")throw new Error("Assertion failed: Expected an error to have been set");o.configuration.get("enableNetwork")?U.reportError(27,`${G.prettyDescriptor(r,J)} can't be resolved to a satisfying range`):U.reportError(27,`${G.prettyDescriptor(r,J)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),U.reportSeparator(),U.reportExceptionOnce(ue)}});if(x.hasErrors())return x.exitCode();let C=!1,T=[],L=[];for(let{suggestedDescriptors:{suggestions:U},target:J}of D){let te,le=U.filter(he=>he.descriptor!==null),ce=le[0].descriptor,ue=le.every(he=>G.areDescriptorsEqual(he.descriptor,ce));le.length===1||ue?te=ce:(C=!0,{answer:te}=await(0,xge.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:U.map(({descriptor:he,name:De,reason:Ee})=>he?{name:De,hint:Ee,descriptor:he}:{name:De,hint:Ee,disabled:!0}),onCancel:()=>process.exit(130),result(he){return this.find(he,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Ie=a.manifest[J].get(te.identHash);(typeof Ie>"u"||Ie.descriptorHash!==te.descriptorHash)&&(a.manifest[J].set(te.identHash,te),this.optional&&(J==="dependencies"?a.manifest.ensureDependencyMeta({...te,range:"unknown"}).optional=!0:J==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...te,range:"unknown"}).optional=!0)),typeof Ie>"u"?T.push([a,J,te,E]):L.push([a,J,Ie,te]))}return await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyAddition,T),await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyReplacement,L),C&&this.context.stdout.write(` +`),await o.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};function Jft(t,e,{dev:r,peer:o,preferDev:a,optional:n}){let u=t.manifest.dependencies.has(e.identHash),A=t.manifest.devDependencies.has(e.identHash),p=t.manifest.peerDependencies.has(e.identHash);if((r||o)&&u)throw new it(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!o&&p)throw new it(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&A)throw new it(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!o&&p)throw new it(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new it(`Package "${G.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return o&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:A?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ke();Ke();Gt();var pE=class extends ut{constructor(){super(...arguments);this.verbose=de.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=de.String({required:!1})}static{this.paths=[["bin"]]}static{this.usage=ot.Usage({description:"get the path to a binary script",details:` + When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. + + When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await Qt.find(r,this.context.cwd);if(await o.restoreInstallState(),this.name){let A=(await hn.getPackageAccessibleBinaries(a,{project:o})).get(this.name);if(!A)throw new it(`Couldn't find a binary named "${this.name}" for package "${G.prettyLocator(r,a)}"`);let[,p]=A;return this.context.stdout.write(`${p} +`),0}return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async u=>{let A=await hn.getPackageAccessibleBinaries(a,{project:o}),h=Array.from(A.keys()).reduce((E,w)=>Math.max(E,w.length),0);for(let[E,[w,D]]of A)u.reportJson({name:E,source:G.stringifyIdent(w),path:D});if(this.verbose)for(let[E,[w]]of A)u.reportInfo(null,`${E.padEnd(h," ")} ${G.prettyLocator(r,w)}`);else for(let E of A.keys())u.reportInfo(null,E)})).exitCode()}};Ke();Pt();Gt();var hE=class extends ut{constructor(){super(...arguments);this.mirror=de.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=de.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}static{this.paths=[["cache","clean"],["cache","clear"]]}static{this.usage=ot.Usage({description:"remove the shared cache files",details:` + This command will remove all the files from the cache. + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(!r.get("enableCacheClean"))throw new it("Cache cleaning is currently disabled. To enable it, set `enableCacheClean: true` in your configuration file. Note: Cache cleaning is typically not required and should be avoided when using Zero-Installs.");let o=await Wr.find(r);return(await Nt.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&o.mirrorCwd!==null,u=!this.mirror;n&&(await ae.removePromise(o.mirrorCwd),await r.triggerHook(A=>A.cleanGlobalArtifacts,r)),u&&await ae.removePromise(o.cwd)})).exitCode()}};Ke();Gt();var Qge=et(N2()),AH=ve("util"),gE=class extends ut{constructor(){super(...arguments);this.why=de.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=de.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=de.String()}static{this.paths=[["config","get"]]}static{this.usage=ot.Usage({description:"read a configuration settings",details:` + This command will print a configuration setting. + + Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(o)>"u")throw new it(`Couldn't find a configuration settings named "${o}"`);let u=r.getSpecial(o,{hideSecrets:!this.unsafe,getNativePaths:!0}),A=qe.convertMapsToIndexableObjects(u),p=a?(0,Qge.default)(A,a):A,h=await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(p)});if(!this.json){if(typeof p=="string")return this.context.stdout.write(`${p} +`),h.exitCode();AH.inspect.styles.name="cyan",this.context.stdout.write(`${(0,AH.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})} +`)}return h.exitCode()}};Ke();Gt();var Ide=et(gH()),wde=et(N2()),Bde=et(dH()),mH=ve("util"),dE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=de.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=de.String();this.value=de.String()}static{this.paths=[["config","set"]]}static{this.usage=ot.Usage({description:"change a configuration settings",details:` + This command will set a configuration setting. + + When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). + + When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new it("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new it(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new it("This setting only affects the file it's in, and thus cannot be set from the CLI");let A=this.json?JSON.parse(this.value):this.value;await(this.home?C=>ze.updateHomeConfiguration(C):C=>ze.updateConfiguration(o(),C))(C=>{if(n){let T=(0,Ide.default)(C);return(0,Bde.default)(T,this.name,A),T}else return{...C,[a]:A}});let E=(await ze.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),w=qe.convertMapsToIndexableObjects(E),D=n?(0,wde.default)(w,n):w;return(await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async C=>{mH.inspect.styles.name="cyan",C.reportInfo(0,`Successfully set ${this.name} to ${(0,mH.inspect)(D,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};Ke();Gt();var Tde=et(gH()),Nde=et(Sde()),Lde=et(EH()),mE=class extends ut{constructor(){super(...arguments);this.home=de.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=de.String()}static{this.paths=[["config","unset"]]}static{this.usage=ot.Usage({description:"unset a configuration setting",details:` + This command will unset a configuration setting. + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new it("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new it(`Couldn't find a configuration settings named "${a}"`);let A=this.home?h=>ze.updateHomeConfiguration(h):h=>ze.updateConfiguration(o(),h);return(await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await A(w=>{if(!(0,Nde.default)(w,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,w;let D=n?(0,Tde.default)(w):{...w};return(0,Lde.default)(D,this.name),D}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Ke();Pt();Gt();var Wk=ve("util"),yE=class extends ut{constructor(){super(...arguments);this.noDefaults=de.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.verbose=de.Boolean("-v,--verbose",{hidden:!0});this.why=de.Boolean("--why",{hidden:!0});this.names=de.Rest()}static{this.paths=[["config"]]}static{this.usage=ot.Usage({description:"display the current configuration",details:` + This command prints the current active configuration settings. + `,examples:[["Print the active configuration settings","$0 config"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins,{strict:!1}),o=await Qy({configuration:r,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(o!==null)return o;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,u=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async A=>{if(r.invalid.size>0&&!this.json){for(let[p,h]of r.invalid)A.reportError(34,`Invalid configuration key "${p}" in ${h}`);A.reportSeparator()}if(this.json)for(let p of a){let h=r.settings.get(p);typeof h>"u"&&A.reportError(34,`No configuration key named "${p}"`);let E=r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),w=r.sources.get(p)??"",D=w&&w[0]!=="<"?Ae.fromPortablePath(w):w;A.reportJson({key:p,effective:E,source:D,...h})}else{let p={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},h={},E={children:h};for(let w of a){if(this.noDefaults&&!r.sources.has(w))continue;let D=r.settings.get(w),x=r.sources.get(w)??"",C=r.getSpecial(w,{hideSecrets:!0,getNativePaths:!0}),T={Description:{label:"Description",value:pe.tuple(pe.Type.MARKDOWN,{text:D.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:pe.tuple(x[0]==="<"?pe.Type.CODE:pe.Type.PATH,x)}};h[w]={value:pe.tuple(pe.Type.CODE,w),children:T};let L=(U,J)=>{for(let[te,le]of J)if(le instanceof Map){let ce={};U[te]={children:ce},L(ce,le)}else U[te]={label:te,value:pe.tuple(pe.Type.NO_HINT,(0,Wk.inspect)(le,p))}};C instanceof Map?L(T,C):T.Value={label:"Value",value:pe.tuple(pe.Type.NO_HINT,(0,Wk.inspect)(C,p))}}a.length!==1&&(n=void 0),As.emitTree(E,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<"u"){let A=a[0],p=(0,Wk.inspect)(r.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get("enableColors")});this.context.stdout.write(` +`),this.context.stdout.write(`${p} +`)}return u.exitCode()}};Ke();Gt();il();var Yk={};Kt(Yk,{Strategy:()=>L2,acceptedStrategies:()=>Q0t,dedupe:()=>CH});Ke();Ke();var Ode=et(Xo()),L2=(e=>(e.HIGHEST="highest",e))(L2||{}),Q0t=new Set(Object.values(L2)),F0t={highest:async(t,e,{resolver:r,fetcher:o,resolveOptions:a,fetchOptions:n})=>{let u=new Map;for(let[p,h]of t.storedResolutions){let E=t.storedDescriptors.get(p);if(typeof E>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);qe.getSetWithDefault(u,E.identHash).add(h)}let A=new Map(qe.mapAndFilter(t.storedDescriptors.values(),p=>G.isVirtualDescriptor(p)?qe.mapAndFilter.skip:[p.descriptorHash,qe.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=A.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=t.storedResolutions.get(p.descriptorHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let w=t.originalPackages.get(E);if(typeof w>"u")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{let D=r.getResolutionDependencies(p,a),x=Object.fromEntries(await qe.allSettledSafe(Object.entries(D).map(async([te,le])=>{let ce=A.get(le.descriptorHash);if(typeof ce>"u")throw new Error(`Assertion failed: The descriptor (${le.descriptorHash}) should have been registered`);let ue=await ce.promise;if(!ue)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[te,ue.updatedPackage]})));if(e.length&&!Ode.default.isMatch(G.stringifyIdent(p),e)||!r.shouldPersistResolution(w,a))return w;let C=u.get(p.identHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(C.size===1)return w;let T=[...C].map(te=>{let le=t.originalPackages.get(te);if(typeof le>"u")throw new Error(`Assertion failed: The package (${te}) should have been registered`);return le}),L=await r.getSatisfying(p,x,T,a),U=L.locators?.[0];if(typeof U>"u"||!L.sorted)return w;let J=t.originalPackages.get(U.locatorHash);if(typeof J>"u")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return J}).then(async D=>{let x=await t.preparePackage(D,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:w,updatedPackage:D,resolvedPackage:x})}).catch(D=>{h.reject(D)})}return[...A.values()].map(p=>p.promise)}};async function CH(t,{strategy:e,patterns:r,cache:o,report:a}){let{configuration:n}=t,u=new Ri,A=n.makeResolver(),p=n.makeFetcher(),h={cache:o,checksums:t.storedChecksums,fetcher:p,project:t,report:u,cacheOptions:{skipIntegrityCheck:!0}},E={project:t,resolver:A,report:u,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let w=F0t[e],D=await w(t,r,{resolver:A,resolveOptions:E,fetcher:p,fetchOptions:h}),x=Ws.progressViaCounter(D.length);await a.reportProgress(x);let C=0;await Promise.all(D.map(U=>U.then(J=>{if(J===null||J.currentPackage.locatorHash===J.updatedPackage.locatorHash)return;C++;let{descriptor:te,currentPackage:le,updatedPackage:ce}=J;a.reportInfo(0,`${G.prettyDescriptor(n,te)} can be deduped from ${G.prettyLocator(n,le)} to ${G.prettyLocator(n,ce)}`),a.reportJson({descriptor:G.stringifyDescriptor(te),currentResolution:G.stringifyLocator(le),updatedResolution:G.stringifyLocator(ce)}),t.storedResolutions.set(te.descriptorHash,ce.locatorHash)}).finally(()=>x.tick())));let T;switch(C){case 0:T="No packages";break;case 1:T="One package";break;default:T=`${C} packages`}let L=pe.pretty(n,e,pe.Type.CODE);return a.reportInfo(0,`${T} can be deduped using the ${L} strategy`),C})}var EE=class extends ut{constructor(){super(...arguments);this.strategy=de.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:js(L2)});this.check=de.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=de.String("--mode",{description:"Change what artifacts installs generate",validator:js(yl)});this.patterns=de.Rest()}static{this.paths=[["dedupe"]]}static{this.usage=ot.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd),a=await Wr.find(r);await o.restoreInstallState({restoreResolutions:!1});let n=0,u=await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout,json:this.json},async A=>{n=await CH(o,{strategy:this.strategy,patterns:this.patterns,cache:a,report:A})});return u.hasErrors()?u.exitCode():this.check?n?1:0:await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,mode:this.mode})}};Ke();Gt();var CE=class extends ut{static{this.paths=[["--clipanion=definitions"]]}async execute(){let{plugins:e}=await ze.find(this.context.cwd,this.context.plugins),r=[];for(let u of e){let{commands:A}=u[1];if(A){let h=Vo.from(A).definitions();r.push([u[0],h])}}let o=this.cli.definitions(),a=(u,A)=>u.split(" ").slice(1).join()===A.split(" ").slice(1).join(),n=Mde()["@yarnpkg/builder"].bundles.standard;for(let u of r){let A=u[1];for(let p of A)o.find(h=>a(h.path,p.path)).plugin={name:u[0],isDefault:n.includes(u[0])}}this.context.stdout.write(`${JSON.stringify(o,null,2)} +`)}};var IE=class extends ut{static{this.paths=[["help"],["--help"],["-h"]]}async execute(){this.context.stdout.write(this.cli.usage(null))}};Ke();Pt();Gt();var wE=class extends ut{constructor(){super(...arguments);this.leadingArgument=de.String();this.args=de.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!G.tryParseIdent(this.leadingArgument)){let r=K.resolve(this.context.cwd,Ae.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};Ke();var BE=class extends ut{static{this.paths=[["-v"],["--version"]]}async execute(){this.context.stdout.write(`${nn||""} +`)}};Ke();Ke();Gt();var vE=class extends ut{constructor(){super(...arguments);this.commandName=de.String();this.args=de.Proxy()}static{this.paths=[["exec"]]}static{this.usage=ot.Usage({description:"execute a shell script",details:` + This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. + + It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await Qt.find(r,this.context.cwd);return await o.restoreInstallState(),await hn.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:o})}};Ke();Gt();il();var DE=class extends ut{constructor(){super(...arguments);this.hash=de.String({required:!1,validator:NP(Sm(),[Bw(/^p[0-9a-f]{5}$/)])})}static{this.paths=[["explain","peer-requirements"]]}static{this.usage=ot.Usage({description:"explain a set of peer requirements",details:` + A peer requirement represents all peer requests that a subject must satisfy when providing a requested package to requesters. + + When the hash argument is specified, this command prints a detailed explanation of the peer requirement corresponding to the hash and whether it is satisfied or not. + + When used without arguments, this command lists all peer requirements and the corresponding hash that can be used to get detailed information about a given requirement. + + **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). + `,examples:[["Explain the corresponding peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd);return await o.restoreInstallState({restoreResolutions:!1}),await o.applyLightResolution(),typeof this.hash<"u"?await T0t(this.hash,o,{stdout:this.context.stdout}):await N0t(o,{stdout:this.context.stdout})}};async function T0t(t,e,r){let o=e.peerRequirementNodes.get(t);if(typeof o>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);let a=new Set,n=p=>a.has(p.requester.locatorHash)?{value:pe.tuple(pe.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:p.children.size>0?[{value:pe.tuple(pe.Type.NO_HINT,"...")}]:[]}:(a.add(p.requester.locatorHash),{value:pe.tuple(pe.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:Object.fromEntries(Array.from(p.children.values(),h=>[G.stringifyLocator(h.requester),n(h)]))}),u=e.peerWarnings.find(p=>p.hash===t);return(await Nt.start({configuration:e.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async p=>{let h=pe.mark(e.configuration),E=u?h.Cross:h.Check;if(p.reportInfo(0,`Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} is requested to provide ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)} by its descendants`),p.reportSeparator(),p.reportInfo(0,pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)),As.emitTree({children:Object.fromEntries(Array.from(o.requests.values(),w=>[G.stringifyLocator(w.requester),n(w)]))},{configuration:e.configuration,stdout:r.stdout,json:!1}),p.reportSeparator(),o.provided.range==="missing:"){let w=u?"":" , but all peer requests are optional";p.reportInfo(0,`${E} Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} does not provide ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)}${w}.`)}else{let w=e.storedResolutions.get(o.provided.descriptorHash);if(!w)throw new Error("Assertion failed: Expected the descriptor to be registered");let D=e.storedPackages.get(w);if(!D)throw new Error("Assertion failed: Expected the package to be registered");p.reportInfo(0,`${E} Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} provides ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)} with version ${G.prettyReference(e.configuration,D.version??"0.0.0")}, ${u?"which does not satisfy all requests.":"which satisfies all requests"}`),u?.type===3&&(u.range?p.reportInfo(0,` The combined requested range is ${pe.pretty(e.configuration,u.range,pe.Type.RANGE)}`):p.reportInfo(0," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function N0t(t,e){return(await Nt.start({configuration:t.configuration,stdout:e.stdout,includeFooter:!1,includePrefix:!1},async o=>{let a=pe.mark(t.configuration),n=qe.sortMap(t.peerRequirementNodes,[([,u])=>G.stringifyLocator(u.subject),([,u])=>G.stringifyIdent(u.ident)]);for(let[,u]of n.values()){if(!u.root)continue;let A=t.peerWarnings.find(E=>E.hash===u.hash),p=[...G.allPeerRequests(u)],h;if(p.length>2?h=` and ${p.length-1} other dependencies`:p.length===2?h=" and 1 other dependency":h="",u.provided.range!=="missing:"){let E=t.storedResolutions.get(u.provided.descriptorHash);if(!E)throw new Error("Assertion failed: Expected the resolution to have been registered");let w=t.storedPackages.get(E);if(!w)throw new Error("Assertion failed: Expected the provided package to have been registered");let D=`${pe.pretty(t.configuration,u.hash,pe.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${G.prettyLocator(t.configuration,u.subject)} provides ${G.prettyLocator(t.configuration,w)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;A?o.reportWarning(0,D):o.reportInfo(0,D)}else{let E=`${pe.pretty(t.configuration,u.hash,pe.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${G.prettyLocator(t.configuration,u.subject)} doesn't provide ${G.prettyIdent(t.configuration,u.ident)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;A?o.reportWarning(0,E):o.reportInfo(0,E)}}})).exitCode()}Ke();Gt();il();Ke();Ke();Pt();Gt();var Ude=et(ni()),PE=class extends ut{constructor(){super(...arguments);this.useYarnPath=de.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=de.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=de.String()}static{this.paths=[["set","version"]]}static{this.usage=ot.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&r.get("yarnPath")){let A=r.sources.get("yarnPath");if(!A)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let p=r.projectCwd??r.startingCwd;if(K.contains(p,A))return 0}let o=()=>{if(typeof nn>"u")throw new it("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},a,n=(A,p)=>({version:p,url:A.replace(/\{\}/g,p)});if(this.version==="self")a={url:o(),version:nn??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await O2(r,"stable"));else if(this.version==="canary")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await O2(r,"canary"));else if(this.version==="classic")a={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))a={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||Ae.isAbsolute(this.version))a={url:`file://${K.resolve(Ae.toPortablePath(this.version))}`,version:"file"};else if(Ur.satisfiesWithPrereleases(this.version,">=2.0.0"))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(Ur.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))a=n("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(Ur.validRange(this.version))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await L0t(r,this.version));else throw new it(`Invalid version descriptor "${this.version}"`);return(await Nt.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async A=>{let p=async()=>{let h="file://";return a.url.startsWith(h)?(A.reportInfo(0,`Retrieving ${pe.pretty(r,a.url,pe.Type.PATH)}`),await ae.readFilePromise(a.url.slice(h.length))):(A.reportInfo(0,`Downloading ${pe.pretty(r,a.url,pe.Type.URL)}`),await on.get(a.url,{configuration:r}))};await IH(r,a.version,p,{report:A,useYarnPath:this.useYarnPath})})).exitCode()}};async function L0t(t,e){let o=(await on.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(a=>Ur.satisfiesWithPrereleases(a,e));if(o.length===0)throw new it(`No matching release found for range ${pe.pretty(t,e,pe.Type.RANGE)}.`);return o[0]}async function O2(t,e){let r=await on.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new it(`Tag ${pe.pretty(t,e,pe.Type.RANGE)} not found`);return r.latest[e]}async function IH(t,e,r,{report:o,useYarnPath:a}){let n,u=async()=>(typeof n>"u"&&(n=await r()),n);if(e===null){let te=await u();await ae.mktempPromise(async le=>{let ce=K.join(le,"yarn.cjs");await ae.writeFilePromise(ce,te);let{stdout:ue}=await Hr.execvp(process.execPath,[Ae.fromPortablePath(ce),"--version"],{cwd:le,env:{...t.env,YARN_IGNORE_PATH:"1"}});if(e=ue.trim(),!Ude.default.valid(e))throw new Error(`Invalid semver version. ${pe.pretty(t,"yarn --version",pe.Type.CODE)} returned: +${e}`)})}let A=t.projectCwd??t.startingCwd,p=K.resolve(A,".yarn/releases"),h=K.resolve(p,`yarn-${e}.cjs`),E=K.relative(t.startingCwd,h),w=qe.isTaggedYarnVersion(e),D=t.get("yarnPath"),x=!w,C=x||!!D||!!a;if(a===!1){if(x)throw new Jt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");C=!1}else!C&&!process.env.COREPACK_ROOT&&(o.reportWarning(0,`You don't seem to have ${pe.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${pe.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),C=!0);if(C){let te=await u();o.reportInfo(0,`Saving the new release in ${pe.pretty(t,E,"magenta")}`),await ae.removePromise(K.dirname(h)),await ae.mkdirPromise(K.dirname(h),{recursive:!0}),await ae.writeFilePromise(h,te,{mode:493}),await ze.updateConfiguration(A,{yarnPath:K.relative(A,h)})}else await ae.removePromise(K.dirname(h)),await ze.updateConfiguration(A,{yarnPath:ze.deleteProperty});let T=await _t.tryFind(A)||new _t;T.packageManager=`yarn@${w?e:await O2(t,"stable")}`;let L={};T.exportTo(L);let U=K.join(A,_t.fileName),J=`${JSON.stringify(L,null,T.indent)} +`;return await ae.changeFilePromise(U,J,{automaticNewlines:!0}),{bundleVersion:e}}function _de(t){return vr[qP(t)]}var O0t=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function M0t(t){let r=`https://repo.yarnpkg.com/${qe.isTaggedYarnVersion(nn)?nn:await O2(t,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,o=await on.get(r,{configuration:t});return new Map(Array.from(o.toString().matchAll(O0t),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=_de(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var SE=class extends ut{constructor(){super(...arguments);this.code=de.String({required:!1,validator:vw(Sm(),[Bw(/^YN[0-9]{4}$/)])});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["explain"]]}static{this.usage=ot.Usage({description:"explain an error code",details:` + When the code argument is specified, this command prints its name and its details. + + When used without arguments, this command lists all error codes and their names. + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let o=_de(this.code),a=pe.pretty(r,o,pe.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),A=(await M0t(r)).get(this.code),p=typeof A<"u"?pe.jsonOrPretty(this.json,r,pe.tuple(pe.Type.MARKDOWN,{text:A,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. + +You can help us by editing this page on GitHub \u{1F642}: +${pe.jsonOrPretty(this.json,r,pe.tuple(pe.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx"))} +`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:o,details:p})} +`):this.context.stdout.write(`${n} + +${p} +`)}else{let o={children:qe.mapAndFilter(Object.entries(vr),([a,n])=>Number.isNaN(Number(a))?qe.mapAndFilter.skip:{label:Ju(Number(a)),value:pe.tuple(pe.Type.CODE,n)})};As.emitTree(o,{configuration:r,stdout:this.context.stdout,json:this.json})}}};Ke();Pt();Gt();var Hde=et(Xo()),bE=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=de.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=de.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=de.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=de.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=de.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=de.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=de.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=de.Rest()}static{this.paths=[["info"]]}static{this.usage=ot.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a&&!this.all)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let u=new Set(this.extra);this.cache&&u.add("cache"),this.dependents&&u.add("dependents"),this.manifest&&u.add("manifest");let A=(le,{recursive:ce})=>{let ue=le.anchoredLocator.locatorHash,Ie=new Map,he=[ue];for(;he.length>0;){let De=he.shift();if(Ie.has(De))continue;let Ee=o.storedPackages.get(De);if(typeof Ee>"u")throw new Error("Assertion failed: Expected the package to be registered");if(Ie.set(De,Ee),G.isVirtualLocator(Ee)&&he.push(G.devirtualizeLocator(Ee).locatorHash),!(!ce&&De!==ue))for(let g of Ee.dependencies.values()){let me=o.storedResolutions.get(g.descriptorHash);if(typeof me>"u")throw new Error("Assertion failed: Expected the resolution to be registered");he.push(me)}}return Ie.values()},p=({recursive:le})=>{let ce=new Map;for(let ue of o.workspaces)for(let Ie of A(ue,{recursive:le}))ce.set(Ie.locatorHash,Ie);return ce.values()},h=({all:le,recursive:ce})=>le&&ce?o.storedPackages.values():le?p({recursive:ce}):A(a,{recursive:ce}),E=({all:le,recursive:ce})=>{let ue=h({all:le,recursive:ce}),Ie=this.patterns.map(Ee=>{let g=G.parseLocator(Ee),me=Hde.default.makeRe(G.stringifyIdent(g)),Ce=G.isVirtualLocator(g),fe=Ce?G.devirtualizeLocator(g):g;return ie=>{let Z=G.stringifyIdent(ie);if(!me.test(Z))return!1;if(g.reference==="unknown")return!0;let Pe=G.isVirtualLocator(ie),Re=Pe?G.devirtualizeLocator(ie):ie;return!(Ce&&Pe&&g.reference!==ie.reference||fe.reference!==Re.reference)}}),he=qe.sortMap([...ue],Ee=>G.stringifyLocator(Ee));return{selection:he.filter(Ee=>Ie.length===0||Ie.some(g=>g(Ee))),sortedLookup:he}},{selection:w,sortedLookup:D}=E({all:this.all,recursive:this.recursive});if(w.length===0)throw new it("No package matched your request");let x=new Map;if(this.dependents)for(let le of D)for(let ce of le.dependencies.values()){let ue=o.storedResolutions.get(ce.descriptorHash);if(typeof ue>"u")throw new Error("Assertion failed: Expected the resolution to be registered");qe.getArrayWithDefault(x,ue).push(le)}let C=new Map;for(let le of D){if(!G.isVirtualLocator(le))continue;let ce=G.devirtualizeLocator(le);qe.getArrayWithDefault(C,ce.locatorHash).push(le)}let T={},L={children:T},U=r.makeFetcher(),J={project:o,fetcher:U,cache:n,checksums:o.storedChecksums,report:new Ri,cacheOptions:{skipIntegrityCheck:!0}},te=[async(le,ce,ue)=>{if(!ce.has("manifest"))return;let Ie=await U.fetch(le,J),he;try{he=await _t.find(Ie.prefixPath,{baseFs:Ie.packageFs})}finally{Ie.releaseFs?.()}ue("Manifest",{License:pe.tuple(pe.Type.NO_HINT,he.license),Homepage:pe.tuple(pe.Type.URL,he.raw.homepage??null)})},async(le,ce,ue)=>{if(!ce.has("cache"))return;let Ie=o.storedChecksums.get(le.locatorHash)??null,he=n.getLocatorPath(le,Ie),De;if(he!==null)try{De=await ae.statPromise(he)}catch{}let Ee=typeof De<"u"?[De.size,pe.Type.SIZE]:void 0;ue("Cache",{Checksum:pe.tuple(pe.Type.NO_HINT,Ie),Path:pe.tuple(pe.Type.PATH,he),Size:Ee})}];for(let le of w){let ce=G.isVirtualLocator(le);if(!this.virtuals&&ce)continue;let ue={},Ie={value:[le,pe.Type.LOCATOR],children:ue};if(T[G.stringifyLocator(le)]=Ie,this.nameOnly){delete Ie.children;continue}let he=C.get(le.locatorHash);typeof he<"u"&&(ue.Instances={label:"Instances",value:pe.tuple(pe.Type.NUMBER,he.length)}),ue.Version={label:"Version",value:pe.tuple(pe.Type.NO_HINT,le.version)};let De=(g,me)=>{let Ce={};if(ue[g]=Ce,Array.isArray(me))Ce.children=me.map(fe=>({value:fe}));else{let fe={};Ce.children=fe;for(let[ie,Z]of Object.entries(me))typeof Z>"u"||(fe[ie]={label:ie,value:Z})}};if(!ce){for(let g of te)await g(le,u,De);await r.triggerHook(g=>g.fetchPackageInfo,le,u,De)}le.bin.size>0&&!ce&&De("Exported Binaries",[...le.bin.keys()].map(g=>pe.tuple(pe.Type.PATH,g)));let Ee=x.get(le.locatorHash);typeof Ee<"u"&&Ee.length>0&&De("Dependents",Ee.map(g=>pe.tuple(pe.Type.LOCATOR,g))),le.dependencies.size>0&&!ce&&De("Dependencies",[...le.dependencies.values()].map(g=>{let me=o.storedResolutions.get(g.descriptorHash),Ce=typeof me<"u"?o.storedPackages.get(me)??null:null;return pe.tuple(pe.Type.RESOLUTION,{descriptor:g,locator:Ce})})),le.peerDependencies.size>0&&ce&&De("Peer dependencies",[...le.peerDependencies.values()].map(g=>{let me=le.dependencies.get(g.identHash),Ce=typeof me<"u"?o.storedResolutions.get(me.descriptorHash)??null:null,fe=Ce!==null?o.storedPackages.get(Ce)??null:null;return pe.tuple(pe.Type.RESOLUTION,{descriptor:g,locator:fe})}))}As.emitTree(L,{configuration:r,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Ke();Pt();Ol();var Kk=et(sg());Gt();var wH=et(ni());il();var U0t=[{selector:t=>t===-1,name:"nodeLinker",value:"node-modules"},{selector:t=>t!==-1&&t<8,name:"enableGlobalCache",value:!1},{selector:t=>t!==-1&&t<8,name:"compressionLevel",value:"mixed"}],xE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=de.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=de.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.refreshLockfile=de.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"});this.checkCache=de.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"});this.checkResolutions=de.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"});this.inlineBuilds=de.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=de.String("--mode",{description:"Change what artifacts installs generate",validator:js(yl)});this.cacheFolder=de.String("--cache-folder",{hidden:!0});this.frozenLockfile=de.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=de.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=de.Boolean("--non-interactive",{hidden:!0});this.preferOffline=de.Boolean("--prefer-offline",{hidden:!0});this.production=de.Boolean("--production",{hidden:!0});this.registry=de.String("--registry",{hidden:!0});this.silent=de.Boolean("--silent",{hidden:!0});this.networkTimeout=de.String("--network-timeout",{hidden:!0})}static{this.paths=[["install"],ot.Default]}static{this.usage=ot.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&r.useWithSource("",{enableInlineBuilds:this.inlineBuilds},r.startingCwd,{overwrite:!0});let o=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=await Qy({configuration:r,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!Kk.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!Kk.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!o},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!Kk.default.NETLIFY}]);if(a!==null)return a;let n=this.mode==="update-lockfile";if(n&&(this.immutable||this.immutableCache))throw new it(`${pe.pretty(r,"--immutable",pe.Type.CODE)} and ${pe.pretty(r,"--immutable-cache",pe.Type.CODE)} cannot be used with ${pe.pretty(r,"--mode=update-lockfile",pe.Type.CODE)}`);let u=(this.immutable??r.get("enableImmutableInstalls"))&&!n,A=this.immutableCache&&!n;if(r.projectCwd!==null){let T=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U=!1;await q0t(r,u)&&(L.reportInfo(48,"Automatically removed core plugins that are now builtins \u{1F44D}"),U=!0),await H0t(r,u)&&(L.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),U=!0),U&&L.reportSeparator()});if(T.hasErrors())return T.exitCode()}if(r.projectCwd!==null){let T=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{if(ze.telemetry?.isNew)ze.telemetry.commitTips(),L.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),L.reportInfo(65,`Run ${pe.pretty(r,"yarn config set --home enableTelemetry 0",pe.Type.CODE)} to disable`),L.reportSeparator();else if(ze.telemetry?.shouldShowTips){let U=await on.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0}).catch(()=>null);if(U!==null){let J=null;if(nn!==null){let le=wH.default.prerelease(nn)?"canary":"stable",ce=U.latest[le];wH.default.gt(ce,nn)&&(J=[le,ce])}if(J)ze.telemetry.commitTips(),L.reportInfo(88,`${pe.applyStyle(r,`A new ${J[0]} version of Yarn is available:`,pe.Style.BOLD)} ${G.prettyReference(r,J[1])}!`),L.reportInfo(88,`Upgrade now by running ${pe.pretty(r,`yarn set version ${J[1]}`,pe.Type.CODE)}`),L.reportSeparator();else{let te=ze.telemetry.selectTip(U.tips);te&&(L.reportInfo(89,pe.pretty(r,te.message,pe.Type.MARKDOWN_INLINE)),te.url&&L.reportInfo(89,`Learn more at ${te.url}`),L.reportSeparator())}}}});if(T.hasErrors())return T.exitCode()}let{project:p,workspace:h}=await Qt.find(r,this.context.cwd),E=p.lockfileLastVersion;if(E!==null){let T=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U={};for(let J of U0t)J.selector(E)&&typeof r.sources.get(J.name)>"u"&&(r.use("",{[J.name]:J.value},p.cwd,{overwrite:!0}),U[J.name]=J.value);Object.keys(U).length>0&&(await ze.updateConfiguration(p.cwd,U),L.reportInfo(87,"Migrated your project to the latest Yarn version \u{1F680}"),L.reportSeparator())});if(T.hasErrors())return T.exitCode()}let w=await Wr.find(r,{immutable:A,check:this.checkCache});if(!h)throw new or(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let D=r.get("enableHardenedMode");D&&typeof r.sources.get("enableHardenedMode")>"u"&&await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async T=>{T.reportWarning(0,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),T.reportWarning(0,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${pe.applyHyperlink(r,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),T.reportSeparator()}),(this.refreshLockfile??D)&&(p.lockfileNeedsRefresh=!0);let x=this.checkResolutions??D;return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async T=>{await p.install({cache:w,report:T,immutable:u,checkResolutions:x,mode:this.mode})})).exitCode()}},_0t="<<<<<<<";async function H0t(t,e){if(!t.projectCwd)return!1;let r=K.join(t.projectCwd,mr.lockfile);if(!await ae.existsPromise(r)||!(await ae.readFilePromise(r,"utf8")).includes(_0t))return!1;if(e)throw new Jt(47,"Cannot autofix a lockfile when running an immutable install");let a=await Hr.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:t.projectCwd});if(a.code!==0&&(a=await Hr.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0&&(a=await Hr.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0)throw new Jt(83,"Git returned an error when trying to find the commits pertaining to the conflict");let n=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let p=await Hr.execvp("git",["show",`${A}:./${mr.lockfile}`],{cwd:t.projectCwd});if(p.code!==0)throw new Jt(83,`Git returned an error when trying to access the lockfile content in ${A}`);try{return Ki(p.stdout)}catch{throw new Jt(46,"A variant of the conflicting lockfile failed to parse")}}));n=n.filter(A=>!!A.__metadata);for(let A of n){if(A.__metadata.version<7)for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=G.parseDescriptor(p,!0),E=t.normalizeDependency(h),w=G.stringifyDescriptor(E);w!==p&&(A[w]=A[p],delete A[p])}for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=A[p].checksum;typeof h=="string"&&h.includes("/")||(A[p].checksum=`${A.__metadata.cacheKey}/${h}`)}}let u=Object.assign({},...n);u.__metadata.version=`${Math.min(...n.map(A=>parseInt(A.__metadata.version??0)))}`,u.__metadata.cacheKey="merged";for(let[A,p]of Object.entries(u))typeof p=="string"&&delete u[A];return await ae.changeFilePromise(r,Pa(u),{automaticNewlines:!0}),!0}async function q0t(t,e){if(!t.projectCwd)return!1;let r=[],o=K.join(t.projectCwd,".yarn/plugins/@yarnpkg");return await ze.updateConfiguration(t.projectCwd,{plugins:n=>{if(!Array.isArray(n))return n;let u=n.filter(A=>{if(!A.path)return!0;let p=K.resolve(t.projectCwd,A.path),h=j1.has(A.spec)&&K.contains(o,p);return h&&r.push(p),!h});return u.length===0?ze.deleteProperty:u.length===n.length?n:u}},{immutable:e})?(await Promise.all(r.map(async n=>{await ae.removePromise(n)})),!0):!1}Ke();Pt();Gt();var kE=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=de.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=de.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=de.Rest()}static{this.paths=[["link"]]}static{this.usage=ot.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=o.topLevelWorkspace,A=[];for(let p of this.destinations){let h=K.resolve(this.context.cwd,Ae.toPortablePath(p)),E=await ze.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:w,workspace:D}=await Qt.find(E,h);if(o.cwd===w.cwd)throw new it(`Invalid destination '${p}'; Can't link the project to itself`);if(!D)throw new or(w.cwd,h);if(this.all){let x=!1;for(let C of w.workspaces)C.manifest.name&&(!C.manifest.private||this.private)&&(A.push(C),x=!0);if(!x)throw new it(`No workspace found to be linked in the target project: ${p}`)}else{if(!D.manifest.name)throw new it(`The target workspace at '${p}' doesn't have a name and thus cannot be linked`);if(D.manifest.private&&!this.private)throw new it(`The target workspace at '${p}' is marked private - use the --private flag to link it anyway`);A.push(D)}}for(let p of A){let h=G.stringifyIdent(p.anchoredLocator),E=this.relative?K.relative(o.cwd,p.cwd):p.cwd;u.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${E}`})}return await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Gt();var QE=class extends ut{constructor(){super(...arguments);this.args=de.Proxy()}static{this.paths=[["node"]]}static{this.usage=ot.Usage({description:"run node with the hook already setup",details:` + This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + + The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. + `,examples:[["Run a Node script","$0 node ./my-script.js"]]})}async execute(){return this.cli.run(["exec","node",...this.args])}};Ke();Gt();var FE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","check"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` + Check only the plugins from https. + + If this command detects any plugin differences in the CI environment, it will throw an error. + `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=await ze.findRcFiles(this.context.cwd);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let u of o)if(u.data?.plugins)for(let A of u.data.plugins){if(!A.checksum||!A.spec.match(/^https?:/))continue;let p=await on.get(A.spec,{configuration:r}),h=xn.makeHash(p);if(A.checksum===h)continue;let E=pe.pretty(r,A.path,pe.Type.PATH),w=pe.pretty(r,A.spec,pe.Type.URL),D=`${E} is different from the file provided by ${w}`;n.reportJson({...A,newChecksum:h}),n.reportError(0,D)}})).exitCode()}};Ke();Ke();Pt();Gt();var Yde=ve("os");Ke();Pt();Gt();var qde=ve("os");Ke();Ol();Gt();var j0t="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Jg(t,e){let r=await on.get(j0t,{configuration:t}),o=Ki(r.toString());return Object.fromEntries(Object.entries(o).filter(([a,n])=>!e||Ur.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var RE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","list"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await Jg(r,nn);for(let[u,{experimental:A,...p}]of Object.entries(n)){let h=u;A&&(h+=" [experimental]"),a.reportJson({name:u,experimental:A,...p}),a.reportInfo(null,h)}})).exitCode()}};var G0t=/^[0-9]+$/,W0t=process.platform==="win32";function jde(t){return G0t.test(t)?`pull/${t}/head`:t}var Y0t=({repository:t,branch:e},r)=>[["git","init",Ae.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",jde(e)],["git","reset","--hard","FETCH_HEAD"]],K0t=({branch:t})=>[["git","fetch","origin","--depth=1",jde(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],V0t=({plugins:t,noMinify:e},r,o)=>[["yarn","build:cli",...new Array().concat(...t.map(a=>["--plugin",K.resolve(o,a)])),...e?["--no-minify"]:[],"|"],[W0t?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",Ae.fromPortablePath(r),"|"]],TE=class extends ut{constructor(){super(...arguments);this.installPath=de.String("--path",{description:"The path where the repository should be cloned to"});this.repository=de.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=de.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=de.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.dryRun=de.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"});this.noMinify=de.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=de.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=de.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}static{this.paths=[["set","version","from","sources"]]}static{this.usage=ot.Usage({description:"build Yarn from master",details:` + This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. + + By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. + `,examples:[["Build Yarn from master","$0 set version from sources"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd),a=typeof this.installPath<"u"?K.resolve(this.context.cwd,Ae.toPortablePath(this.installPath)):K.resolve(Ae.toPortablePath((0,qde.tmpdir)()),"yarnpkg-sources",xn.makeHash(this.repository).slice(0,6));return(await Nt.start({configuration:r,stdout:this.context.stdout},async u=>{await BH(this,{configuration:r,report:u,target:a}),u.reportSeparator(),u.reportInfo(0,"Building a fresh bundle"),u.reportSeparator();let A=await Hr.execvp("git",["rev-parse","--short","HEAD"],{cwd:a,strict:!0}),p=K.join(a,`packages/yarnpkg-cli/bundles/yarn-${A.stdout.trim()}.js`);ae.existsSync(p)||(await M2(V0t(this,p,a),{configuration:r,context:this.context,target:a}),u.reportSeparator());let h=await ae.readFilePromise(p);if(!this.dryRun){let{bundleVersion:E}=await IH(r,null,async()=>h,{report:u});this.skipPlugins||await J0t(this,E,{project:o,report:u,target:a})}})).exitCode()}};async function M2(t,{configuration:e,context:r,target:o}){for(let[a,...n]of t){let u=n[n.length-1]==="|";if(u&&n.pop(),u)await Hr.pipevp(a,n,{cwd:o,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${pe.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")} +`);try{await Hr.execvp(a,n,{cwd:o,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function BH(t,{configuration:e,report:r,target:o}){let a=!1;if(!t.force&&ae.existsSync(K.join(o,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await M2(K0t(t),{configuration:e,context:t.context,target:o}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await ae.removePromise(o),await ae.mkdirPromise(o,{recursive:!0}),await M2(Y0t(t,o),{configuration:e,context:t.context,target:o}))}async function J0t(t,e,{project:r,report:o,target:a}){let n=await Jg(r.configuration,e),u=new Set(Object.keys(n));for(let A of r.configuration.plugins.keys())u.has(A)&&await vH(A,t,{project:r,report:o,target:a})}Ke();Ke();Pt();Gt();var Gde=et(ni()),Wde=ve("vm");var NE=class extends ut{constructor(){super(...arguments);this.name=de.String();this.checksum=de.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}static{this.paths=[["plugin","import"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"download a plugin",details:` + This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. + + Three types of plugin references are accepted: + + - If the plugin is stored within the Yarn repository, it can be referenced by name. + - Third-party plugins can be referenced directly through their public urls. + - Local plugins can be referenced by their path on the disk. + + If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified. + + Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await Qt.find(r,this.context.cwd),u,A;if(this.name.match(/^\.{0,2}[\\/]/)||Ae.isAbsolute(this.name)){let p=K.resolve(this.context.cwd,Ae.toPortablePath(this.name));a.reportInfo(0,`Reading ${pe.pretty(r,p,pe.Type.PATH)}`),u=K.relative(n.cwd,p),A=await ae.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new Jt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}u=this.name,p=this.name}else{let h=G.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!Gde.default.valid(h.reference))throw new Jt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let E=G.stringifyIdent(h),w=await Jg(r,nn);if(!Object.hasOwn(w,E)){let D=`Couldn't find a plugin named ${G.prettyIdent(r,h)} on the remote registry. +`;throw r.plugins.has(E)?D+=`A plugin named ${G.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:D+=`Note that only the plugins referenced on our website (${pe.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",pe.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${pe.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",pe.Type.URL)}).`,new Jt(51,D)}u=E,p=w[E].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${E}/${h.reference}/`):nn!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${nn}/`))}a.reportInfo(0,`Downloading ${pe.pretty(r,p,"green")}`),A=await on.get(p,{configuration:r})}await DH(u,A,{checksum:this.checksum,project:n,report:a})})).exitCode()}};async function DH(t,e,{checksum:r=!0,project:o,report:a}){let{configuration:n}=o,u={},A={exports:u};(0,Wde.runInNewContext)(e.toString(),{module:A,exports:u});let h=`.yarn/plugins/${A.exports.name}.cjs`,E=K.resolve(o.cwd,h);a.reportInfo(0,`Saving the new plugin in ${pe.pretty(n,h,"magenta")}`),await ae.mkdirPromise(K.dirname(E),{recursive:!0}),await ae.writeFilePromise(E,e);let w={path:h,spec:t};r&&(w.checksum=xn.makeHash(e)),await ze.addPlugin(o.cwd,[w])}var z0t=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],LE=class extends ut{constructor(){super(...arguments);this.installPath=de.String("--path",{description:"The path where the repository should be cloned to"});this.repository=de.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=de.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=de.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=de.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=de.String()}static{this.paths=[["plugin","import","from","sources"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. + + The plugins can be referenced by their short name if sourced from the official Yarn repository. + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=typeof this.installPath<"u"?K.resolve(this.context.cwd,Ae.toPortablePath(this.installPath)):K.resolve(Ae.toPortablePath((0,Yde.tmpdir)()),"yarnpkg-sources",xn.makeHash(this.repository).slice(0,6));return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:u}=await Qt.find(r,this.context.cwd),A=G.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=G.stringifyIdent(A),h=await Jg(r,nn);if(!Object.hasOwn(h,p))throw new Jt(51,`Couldn't find a plugin named "${p}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let E=p;await BH(this,{configuration:r,report:n,target:o}),await vH(E,this,{project:u,report:n,target:o})})).exitCode()}};async function vH(t,{context:e,noMinify:r},{project:o,report:a,target:n}){let u=t.replace(/@yarnpkg\//,""),{configuration:A}=o;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${u}`),a.reportSeparator(),await M2(z0t({pluginName:u,noMinify:r},n),{configuration:A,context:e,target:n}),a.reportSeparator();let p=K.resolve(n,`packages/${u}/bundles/${t}.js`),h=await ae.readFilePromise(p);await DH(t,h,{project:o,report:a})}Ke();Pt();Gt();var OE=class extends ut{constructor(){super(...arguments);this.name=de.String()}static{this.paths=[["plugin","remove"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. + + **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd);return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let u=this.name,A=G.parseIdent(u);if(!r.plugins.has(u))throw new it(`${G.prettyIdent(r,A)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${u}.cjs`,h=K.resolve(o.cwd,p);ae.existsSync(h)&&(n.reportInfo(0,`Removing ${pe.pretty(r,p,pe.Type.PATH)}...`),await ae.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await ze.updateConfiguration(o.cwd,{plugins:E=>{if(!Array.isArray(E))return E;let w=E.filter(D=>D.path!==p);return w.length===0?ze.deleteProperty:w.length===E.length?E:w}})})).exitCode()}};Ke();Gt();var ME=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","runtime"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. + `,examples:[["List the currently active plugins","$0 plugin runtime"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let u=this.context.plugins.plugins.has(n),A=n;u&&(A+=" [builtin]"),a.reportJson({name:n,builtin:u}),a.reportInfo(null,`${A}`)}})).exitCode()}};Ke();Ke();Gt();var UE=class extends ut{constructor(){super(...arguments);this.idents=de.Rest()}static{this.paths=[["rebuild"]]}static{this.usage=ot.Usage({description:"rebuild the project's native packages",details:` + This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. + + Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). + + By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);let u=new Set;for(let A of this.idents)u.add(G.parseIdent(A).identHash);if(await o.restoreInstallState({restoreResolutions:!1}),await o.resolveEverything({cache:n,report:new Ri}),u.size>0)for(let A of o.storedPackages.values())u.has(A.identHash)&&(o.storedBuildState.delete(A.locatorHash),o.skippedBuilds.delete(A.locatorHash));else o.storedBuildState.clear(),o.skippedBuilds.clear();return await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ke();Ke();Ke();Gt();var PH=et(Xo());il();var _E=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=de.String("--mode",{description:"Change what artifacts installs generate",validator:js(yl)});this.patterns=de.Rest()}static{this.paths=[["remove"]]}static{this.usage=ot.Usage({description:"remove dependencies from the project",details:` + This command will remove the packages matching the specified patterns from the current workspace. + + If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: + + - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. + + - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. + + This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.all?o.workspaces:[a],A=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,E=[];for(let C of this.patterns){let T=!1,L=G.parseIdent(C);for(let U of u){let J=[...U.manifest.peerDependenciesMeta.keys()];for(let te of(0,PH.default)(J,C))U.manifest.peerDependenciesMeta.delete(te),h=!0,T=!0;for(let te of A){let le=U.manifest.getForScope(te),ce=[...le.values()].map(ue=>G.stringifyIdent(ue));for(let ue of(0,PH.default)(ce,G.stringifyIdent(L))){let{identHash:Ie}=G.parseIdent(ue),he=le.get(Ie);if(typeof he>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");U.manifest[te].delete(Ie),E.push([U,te,he]),h=!0,T=!0}}}T||p.push(C)}let w=p.length>1?"Patterns":"Pattern",D=p.length>1?"don't":"doesn't",x=this.all?"any":"this";if(p.length>0)throw new it(`${w} ${pe.prettyList(r,p,pe.Type.CODE)} ${D} match any packages referenced by ${x} workspace`);return h?(await r.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,E),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};Ke();Ke();Gt();var Kde=ve("util"),HE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["run"]]}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);return(await Nt.start({configuration:r,stdout:this.context.stdout,json:this.json},async u=>{let A=a.manifest.scripts,p=qe.sortMap(A.keys(),w=>w),h={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},E=p.reduce((w,D)=>Math.max(w,D.length),0);for(let[w,D]of A.entries())u.reportInfo(null,`${w.padEnd(E," ")} ${(0,Kde.inspect)(D,h)}`),u.reportJson({name:w,script:D})})).exitCode()}};Ke();Ke();Gt();var qE=class extends ut{constructor(){super(...arguments);this.inspect=de.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=de.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=de.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=de.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=de.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=de.Boolean("--silent",{hidden:!0});this.scriptName=de.String();this.args=de.Proxy()}static{this.paths=[["run"]]}static{this.usage=ot.Usage({description:"run a script defined in the package.json",details:` + This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: + + - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. + + - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. + + - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. + + Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a,locator:n}=await Qt.find(r,this.context.cwd);await o.restoreInstallState();let u=this.topLevel?o.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await hn.hasPackageScript(u,this.scriptName,{project:o}))return await hn.executePackageScript(u,this.scriptName,this.args,{project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let A=await hn.getPackageAccessibleBinaries(u,{project:o});if(A.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect=="string"?h.push(`--inspect=${this.inspect}`):h.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push("--inspect-brk")),this.require&&h.push(`--require=${this.require}`),await hn.executePackageAccessibleBinary(u,this.scriptName,this.args,{cwd:this.context.cwd,project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:A})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let E=(await Promise.all(o.workspaces.map(async w=>w.manifest.scripts.has(this.scriptName)?w:null))).filter(w=>w!==null);if(E.length===1)return await hn.executeWorkspaceScript(E[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new it(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new it(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new it("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let h=[this.scriptName].concat(this.args);for(let[E,w]of oE)for(let D of w)if(h.length>=D.length&&JSON.stringify(h.slice(0,D.length))===JSON.stringify(D))throw new it(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${E} plugin. You can install it with "yarn plugin import ${E}".`);throw new it(`Couldn't find a script named "${this.scriptName}".`)}}};Ke();Ke();Gt();var jE=class extends ut{constructor(){super(...arguments);this.descriptor=de.String();this.resolution=de.String()}static{this.paths=[["set","resolution"]]}static{this.usage=ot.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(await o.restoreInstallState({restoreResolutions:!1}),!a)throw new or(o.cwd,this.context.cwd);let u=G.parseDescriptor(this.descriptor,!0),A=G.makeDescriptor(u,this.resolution);return o.storedDescriptors.set(u.descriptorHash,u),o.storedDescriptors.set(A.descriptorHash,A),o.resolutionAliases.set(u.descriptorHash,A.descriptorHash),await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Ke();Pt();Gt();var Vde=et(Xo()),GE=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=de.Rest()}static{this.paths=[["unlink"]]}static{this.usage=ot.Usage({description:"disconnect the local project from another one",details:` + This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);let u=o.topLevelWorkspace,A=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:p,reference:h}of u.manifest.resolutions)h.startsWith("portal:")&&A.add(p.descriptor.fullName);if(this.leadingArguments.length>0)for(let p of this.leadingArguments){let h=K.resolve(this.context.cwd,Ae.toPortablePath(p));if(qe.isPathLike(p)){let E=await ze.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:w,workspace:D}=await Qt.find(E,h);if(!D)throw new or(w.cwd,h);if(this.all){for(let x of w.workspaces)x.manifest.name&&A.add(G.stringifyIdent(x.anchoredLocator));if(A.size===0)throw new it("No workspace found to be unlinked in the target project")}else{if(!D.manifest.name)throw new it("The target workspace doesn't have a name and thus cannot be unlinked");A.add(G.stringifyIdent(D.anchoredLocator))}}else{let E=[...u.manifest.resolutions.map(({pattern:w})=>w.descriptor.fullName)];for(let w of(0,Vde.default)(E,p))A.add(w)}}return u.manifest.resolutions=u.manifest.resolutions.filter(({pattern:p})=>!A.has(p.descriptor.fullName)),await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ke();Ke();Ke();Gt();var Jde=et(Q2()),SH=et(Xo());il();var WE=class extends ut{constructor(){super(...arguments);this.interactive=de.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=de.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=de.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=de.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=de.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=de.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=de.String("--mode",{description:"Change what artifacts installs generate",validator:js(yl)});this.patterns=de.Rest()}static{this.paths=[["up"]]}static{this.usage=ot.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]})}static{this.schema=[Pw("recursive",Ku.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})]}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=[...o.storedDescriptors.values()],A=u.map(E=>G.stringifyIdent(E)),p=new Set;for(let E of this.patterns){if(G.parseDescriptor(E).range!=="unknown")throw new it("Ranges aren't allowed when using --recursive");for(let w of(0,SH.default)(A,E)){let D=G.parseIdent(w);p.add(D.identHash)}}let h=u.filter(E=>p.has(E.identHash));for(let E of h)o.storedDescriptors.delete(E.descriptorHash),o.storedResolutions.delete(E.descriptorHash);return await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}async executeUpClassic(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=R2(this,o),h=A?["keep","reuse","project","latest"]:["project","latest"],E=[],w=[];for(let L of this.patterns){let U=!1,J=G.parseDescriptor(L),te=G.stringifyIdent(J);for(let le of o.workspaces)for(let ce of["dependencies","devDependencies"]){let Ie=[...le.manifest.getForScope(ce).values()].map(De=>G.stringifyIdent(De)),he=te==="*"?Ie:(0,SH.default)(Ie,te);for(let De of he){let Ee=G.parseIdent(De),g=le.manifest[ce].get(Ee.identHash);if(typeof g>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let me=G.makeDescriptor(Ee,J.range);E.push(Promise.resolve().then(async()=>[le,ce,g,await T2(me,{project:o,workspace:le,cache:n,target:ce,fixed:u,modifier:p,strategies:h})])),U=!0}}U||w.push(L)}if(w.length>1)throw new it(`Patterns ${pe.prettyList(r,w,pe.Type.CODE)} don't match any packages referenced by any workspace`);if(w.length>0)throw new it(`Pattern ${pe.prettyList(r,w,pe.Type.CODE)} doesn't match any packages referenced by any workspace`);let D=await Promise.all(E),x=await pA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async L=>{for(let[,,U,{suggestions:J,rejections:te}]of D){let le=J.filter(ce=>ce.descriptor!==null);if(le.length===0){let[ce]=te;if(typeof ce>"u")throw new Error("Assertion failed: Expected an error to have been set");let ue=this.cli.error(ce);o.configuration.get("enableNetwork")?L.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range + +${ue}`):L.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled) + +${ue}`)}else le.length>1&&!A&&L.reportError(27,`${G.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(x.hasErrors())return x.exitCode();let C=!1,T=[];for(let[L,U,,{suggestions:J}]of D){let te,le=J.filter(he=>he.descriptor!==null),ce=le[0].descriptor,ue=le.every(he=>G.areDescriptorsEqual(he.descriptor,ce));le.length===1||ue?te=ce:(C=!0,{answer:te}=await(0,Jde.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${G.prettyWorkspace(r,L)} \u276F ${U}?`,choices:J.map(({descriptor:he,name:De,reason:Ee})=>he?{name:De,hint:Ee,descriptor:he}:{name:De,hint:Ee,disabled:!0}),onCancel:()=>process.exit(130),result(he){return this.find(he,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Ie=L.manifest[U].get(te.identHash);if(typeof Ie>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(Ie.descriptorHash!==te.descriptorHash)L.manifest[U].set(te.identHash,te),T.push([L,U,Ie,te]);else{let he=r.makeResolver(),De={project:o,resolver:he},Ee=r.normalizeDependency(Ie),g=he.bindDescriptor(Ee,L.anchoredLocator,De);o.forgetResolution(g)}}return await r.triggerMultipleHooks(L=>L.afterWorkspaceDependencyReplacement,T),C&&this.context.stdout.write(` +`),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};Ke();Ke();Ke();Gt();var YE=class extends ut{constructor(){super(...arguments);this.recursive=de.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=de.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=de.String()}static{this.paths=[["why"]]}static{this.usage=ot.Usage({description:"display the reason why a package is needed",details:` + This command prints the exact reasons why a package appears in the dependency tree. + + If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let n=G.parseIdent(this.package).identHash,u=this.recursive?Z0t(o,n,{configuration:r,peers:this.peers}):X0t(o,n,{configuration:r,peers:this.peers});As.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};function X0t(t,e,{configuration:r,peers:o}){let a=qe.sortMap(t.storedPackages.values(),A=>G.stringifyLocator(A)),n={},u={children:n};for(let A of a){let p={};for(let E of A.dependencies.values()){if(!o&&A.peerDependencies.has(E.identHash))continue;let w=t.storedResolutions.get(E.descriptorHash);if(!w)throw new Error("Assertion failed: The resolution should have been registered");let D=t.storedPackages.get(w);if(!D)throw new Error("Assertion failed: The package should have been registered");if(D.identHash!==e)continue;{let C=G.stringifyLocator(A);n[C]={value:[A,pe.Type.LOCATOR],children:p}}let x=G.stringifyLocator(D);p[x]={value:[{descriptor:E,locator:D},pe.Type.DEPENDENT]}}}return u}function Z0t(t,e,{configuration:r,peers:o}){let a=qe.sortMap(t.workspaces,D=>G.stringifyLocator(D.anchoredLocator)),n=new Set,u=new Set,A=D=>{if(n.has(D.locatorHash))return u.has(D.locatorHash);if(n.add(D.locatorHash),D.identHash===e)return u.add(D.locatorHash),!0;let x=!1;D.identHash===e&&(x=!0);for(let C of D.dependencies.values()){if(!o&&D.peerDependencies.has(C.identHash))continue;let T=t.storedResolutions.get(C.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let L=t.storedPackages.get(T);if(!L)throw new Error("Assertion failed: The package should have been registered");A(L)&&(x=!0)}return x&&u.add(D.locatorHash),x};for(let D of a)A(D.anchoredPackage);let p=new Set,h={},E={children:h},w=(D,x,C)=>{if(!u.has(D.locatorHash))return;let T=C!==null?pe.tuple(pe.Type.DEPENDENT,{locator:D,descriptor:C}):pe.tuple(pe.Type.LOCATOR,D),L={},U={value:T,children:L},J=G.stringifyLocator(D);if(x[J]=U,!(C!==null&&t.tryWorkspaceByLocator(D))&&!p.has(D.locatorHash)){p.add(D.locatorHash);for(let te of D.dependencies.values()){if(!o&&D.peerDependencies.has(te.identHash))continue;let le=t.storedResolutions.get(te.descriptorHash);if(!le)throw new Error("Assertion failed: The resolution should have been registered");let ce=t.storedPackages.get(le);if(!ce)throw new Error("Assertion failed: The package should have been registered");w(ce,L,te)}}};for(let D of a)w(D.anchoredPackage,h,null);return E}Ke();var OH={};Kt(OH,{GitFetcher:()=>_2,GitResolver:()=>H2,default:()=>Egt,gitUtils:()=>ra});Ke();Pt();var ra={};Kt(ra,{TreeishProtocols:()=>U2,clone:()=>LH,fetchBase:()=>mme,fetchChangedFiles:()=>yme,fetchChangedWorkspaces:()=>mgt,fetchRoot:()=>dme,isGitUrl:()=>JE,lsRemote:()=>gme,normalizeLocator:()=>dgt,normalizeRepoUrl:()=>KE,resolveUrl:()=>NH,splitRepoUrl:()=>Rh,validateRepoUrl:()=>TH});Ke();Pt();Gt();var fme=et(cme()),pme=et(t3()),VE=et(ve("querystring")),FH=et(ni());function QH(t,e,r){let o=t.indexOf(r);return t.lastIndexOf(e,o>-1?o:1/0)}function ume(t){try{return new URL(t)}catch{return}}function hgt(t){let e=QH(t,"@","#"),r=QH(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),QH(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function Ame(t){return ume(t)||ume(hgt(t))}function KE(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let r=Ame(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function hme(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var ggt=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],U2=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(U2||{});function JE(t){return t?ggt.some(e=>!!t.match(e)):!1}function Rh(t){t=KE(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:"head",request:"HEAD"},extra:{}};let r=t.slice(0,e),o=t.slice(e+1);if(o.match(/^[a-z]+=/)){let a=VE.default.parse(o);for(let[p,h]of Object.entries(a))if(typeof h!="string")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(U2).find(p=>Object.hasOwn(a,p)),[u,A]=typeof n<"u"?[n,a[n]]:["head","HEAD"];for(let p of Object.values(U2))delete a[p];return{repo:r,treeish:{protocol:u,request:A},extra:a}}else{let a=o.indexOf(":"),[n,u]=a===-1?[null,o]:[o.slice(0,a),o.slice(a+1)];return{repo:r,treeish:{protocol:n,request:u},extra:{}}}}function dgt(t){return G.makeLocator(t,KE(t.reference))}function TH(t,{configuration:e}){let r=KE(t,{git:!0});if(!on.getNetworkSettings(`https://${(0,fme.default)(r).resource}`,{configuration:e}).enableNetwork)throw new Jt(80,`Request to '${r}' has been blocked because of your configuration settings`);return r}async function gme(t,e){let r=TH(t,{configuration:e}),o=await RH("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:hme()},{configuration:e,normalizedRepoUrl:r}),a=new Map,n=/^([a-f0-9]{40})\t([^\n]+)/gm,u;for(;(u=n.exec(o.stdout))!==null;)a.set(u[2],u[1]);return a}async function NH(t,e){let{repo:r,treeish:{protocol:o,request:a},extra:n}=Rh(t),u=await gme(r,e),A=(h,E)=>{switch(h){case"commit":{if(!E.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return VE.default.stringify({...n,commit:E})}case"head":{let w=u.get(E==="HEAD"?E:`refs/heads/${E}`);if(typeof w>"u")throw new Error(`Unknown head ("${E}")`);return VE.default.stringify({...n,commit:w})}case"tag":{let w=u.get(`refs/tags/${E}`);if(typeof w>"u")throw new Error(`Unknown tag ("${E}")`);return VE.default.stringify({...n,commit:w})}case"semver":{let w=Ur.validRange(E);if(!w)throw new Error(`Invalid range ("${E}")`);let D=new Map([...u.entries()].filter(([C])=>C.startsWith("refs/tags/")).map(([C,T])=>[FH.default.parse(C.slice(10)),T]).filter(C=>C[0]!==null)),x=FH.default.maxSatisfying([...D.keys()],w);if(x===null)throw new Error(`No matching range ("${E}")`);return VE.default.stringify({...n,commit:D.get(x)})}case null:{let w;if((w=p("commit",E))!==null||(w=p("tag",E))!==null||(w=p("head",E))!==null)return w;throw E.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${h}")`)}},p=(h,E)=>{try{return A(h,E)}catch{return null}};return KE(`${r}#${A(o,a)}`)}async function LH(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:o,request:a}}=Rh(t);if(o!=="commit")throw new Error("Invalid treeish protocol when cloning");let n=TH(r,{configuration:e}),u=await ae.mktempPromise(),A={cwd:u,env:hme()};return await RH("cloning the repository",["clone","-c core.autocrlf=false",n,Ae.fromPortablePath(u)],A,{configuration:e,normalizedRepoUrl:n}),await RH("switching branch",["checkout",`${a}`],A,{configuration:e,normalizedRepoUrl:n}),u})}async function dme(t){let e,r=t;do{if(e=r,await ae.existsPromise(K.join(e,".git")))return e;r=K.dirname(e)}while(r!==e);return null}async function mme(t,{baseRefs:e}){if(e.length===0)throw new it("Can't run this command with zero base refs specified.");let r=[];for(let A of e){let{code:p}=await Hr.execvp("git",["merge-base",A,"HEAD"],{cwd:t});p===0&&r.push(A)}if(r.length===0)throw new it(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:o}=await Hr.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),a=o.trim(),{stdout:n}=await Hr.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:t,strict:!0}),u=n.trim();return{hash:a,title:u}}async function yme(t,{base:e,project:r}){let o=qe.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Hr.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),n=a.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>K.resolve(t,Ae.toPortablePath(h))),{stdout:u}=await Hr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),A=u.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>K.resolve(t,Ae.toPortablePath(h))),p=[...new Set([...n,...A].sort())];return o?p.filter(h=>!K.relative(r.cwd,h).match(o)):p}async function mgt({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new it("This command can only be run from within a Yarn project");let r=[K.resolve(e.cwd,mr.lockfile),K.resolve(e.cwd,e.configuration.get("cacheFolder")),K.resolve(e.cwd,e.configuration.get("installStatePath")),K.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(u=>u.populateYarnPaths,e,u=>{u!=null&&r.push(u)});let o=await dme(e.configuration.projectCwd);if(o==null)throw new it("This command can only be run on Git repositories");let a=await mme(o,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),n=await yme(o,{base:a.hash,project:e});return new Set(qe.mapAndFilter(n,u=>{let A=e.tryWorkspaceByFilePath(u);return A===null?qe.mapAndFilter.skip:r.some(p=>u.startsWith(p))?qe.mapAndFilter.skip:A}))}async function RH(t,e,r,{configuration:o,normalizedRepoUrl:a}){try{return await Hr.execvp("git",e,{...r,strict:!0})}catch(n){if(!(n instanceof Hr.ExecError))throw n;let u=n.reportExtra,A=n.stderr.toString();throw new Jt(1,`Failed ${t}`,p=>{p.reportError(1,` ${pe.prettyField(o,{label:"Repository URL",value:pe.tuple(pe.Type.URL,a)})}`);for(let h of A.matchAll(/^(.+?): (.*)$/gm)){let[,E,w]=h;E=E.toLowerCase();let D=E==="error"?"Error":`${(0,pme.default)(E)} Error`;p.reportError(1,` ${pe.prettyField(o,{label:D,value:pe.tuple(pe.Type.NO_HINT,w)})}`)}u?.(p)})}}var _2=class{supports(e,r){return JE(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,a=new Map(r.checksums);a.set(e.locatorHash,o);let n={...r,checksums:a},u=await this.downloadHosted(e,n);if(u!==null)return u;let[A,p,h]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(e,n),...r.cacheOptions});return{packageFs:A,releaseFs:p,prefixPath:G.getIdentVendorPath(e),checksum:h}}async downloadHosted(e,r){return r.project.configuration.reduceHook(o=>o.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let o=Rh(e.reference),a=await LH(e.reference,r.project.configuration),n=K.resolve(a,o.extra.cwd??Bt.dot),u=K.join(n,"package.tgz");await hn.prepareExternalProject(n,u,{configuration:r.project.configuration,report:r.report,workspace:o.extra.workspace,locator:e});let A=await ae.readFilePromise(u);return await qe.releaseAfterUseAsync(async()=>await $i.convertToZip(A,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1}))}};Ke();Ke();var H2=class{supportsDescriptor(e,r){return JE(e.range)}supportsLocator(e,r){return JE(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=await NH(e.range,o.project.configuration);return[G.makeLocator(e,a)]}async getSatisfying(e,r,o,a){let n=Rh(e.range);return{locators:o.filter(A=>{if(A.identHash!==e.identHash)return!1;let p=Rh(A.reference);return!(n.repo!==p.repo||n.treeish.protocol==="commit"&&n.treeish.request!==p.treeish.request)}),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var ygt={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[_2],resolvers:[H2]};var Egt=ygt;Gt();var zE=class extends ut{constructor(){super(...arguments);this.since=de.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=de.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=de.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=de.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["workspaces","list"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{let u=this.since?await ra.fetchChangedWorkspaces({ref:this.since,project:o}):o.workspaces,A=new Set(u);if(this.recursive)for(let p of[...u].map(h=>h.getRecursiveWorkspaceDependents()))for(let h of p)A.add(h);for(let p of A){let{manifest:h}=p;if(h.private&&this.noPrivate)continue;let E;if(this.verbose){let w=new Set,D=new Set;for(let x of _t.hardDependencies)for(let[C,T]of h.getForScope(x)){let L=o.tryWorkspaceByDescriptor(T);L===null?o.workspacesByIdent.has(C)&&D.add(T):w.add(L)}E={workspaceDependencies:Array.from(w).map(x=>x.relativeCwd),mismatchedWorkspaceDependencies:Array.from(D).map(x=>G.stringifyDescriptor(x))}}n.reportInfo(null,`${p.relativeCwd}`),n.reportJson({location:p.relativeCwd,name:h.name?G.stringifyIdent(h.name):null,...E})}})).exitCode()}};Ke();Ke();Gt();var XE=class extends ut{constructor(){super(...arguments);this.workspaceName=de.String();this.commandName=de.String();this.args=de.Proxy()}static{this.paths=[["workspace"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` + This command will run a given sub-command on a single workspace. + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);let n=o.workspaces,u=new Map(n.map(p=>[G.stringifyIdent(p.anchoredLocator),p])),A=u.get(this.workspaceName);if(A===void 0){let p=Array.from(u.keys()).sort();throw new it(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + - ${p.join(` + - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:A.cwd})}};var Cgt={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:Eme.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[hE,gE,dE,mE,jE,TE,PE,zE,CE,IE,wE,BE,fE,pE,yE,EE,vE,DE,SE,bE,xE,kE,GE,QE,FE,LE,NE,OE,RE,ME,UE,_E,HE,qE,WE,YE,XE]},Igt=Cgt;var jH={};Kt(jH,{default:()=>Bgt});Ke();var kt={optional:!0},UH=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:kt,zenObservable:kt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:kt,zenObservable:kt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":kt}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":kt,"postcss-jsx":kt,"postcss-less":kt,"postcss-markdown":kt,"postcss-scss":kt}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:kt}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:kt}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:kt,"vue-template-compiler":kt}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:kt,"utf-8-validate":kt}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{"babel-polyfill":"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{"cross-spawn":"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{"prop-types":"^15.7.2"}}],["@rebass/forms@*",{dependencies:{"@styled-system/should-forward-prop":"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":kt,"vuetify-loader":kt}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":kt}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":kt}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":kt}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:kt}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:kt,tinyliquid:kt,"liquid-node":kt,jade:kt,"then-jade":kt,dust:kt,"dustjs-helpers":kt,"dustjs-linkedin":kt,swig:kt,"swig-templates":kt,"razor-tmpl":kt,atpl:kt,liquor:kt,twig:kt,ejs:kt,eco:kt,jazz:kt,jqtpl:kt,hamljs:kt,hamlet:kt,whiskers:kt,"haml-coffee":kt,"hogan.js":kt,templayed:kt,handlebars:kt,underscore:kt,lodash:kt,pug:kt,"then-pug":kt,qejs:kt,walrus:kt,mustache:kt,just:kt,ect:kt,mote:kt,toffee:kt,dot:kt,"bracket-template":kt,ractive:kt,nunjucks:kt,htmling:kt,"babel-core":kt,plates:kt,"react-dom":kt,react:kt,"arc-templates":kt,vash:kt,slm:kt,marko:kt,teacup:kt,"coffee-script":kt,squirrelly:kt,twing:kt}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":kt}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":kt,vue:kt}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:kt}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:kt}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":kt,"webpack-command":kt}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":kt}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":kt}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:kt,jimp:kt}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":kt,"eslint-import-resolver-typescript":kt,"eslint-import-resolver-webpack":kt,"@typescript-eslint/parser":kt}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":kt}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":kt}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:kt}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:kt}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{"vue-template-compiler":"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["parcel@*",{peerDependenciesMeta:{"@parcel/core":kt}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:kt}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:kt}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:kt}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":kt}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}],["eslint-import-resolver-vite@<2.0.1",{dependencies:{debug:"^4.3.4",resolve:"^1.22.8"}}],["notistack@^3.0.0",{dependencies:{csstype:"^3.0.10"}}]];var _H;function Cme(){return typeof _H>"u"&&(_H=ve("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),_H}var HH;function Ime(){return typeof HH>"u"&&(HH=ve("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),HH}var qH;function wme(){return typeof qH>"u"&&(qH=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),qH}var Bme=new Map([[G.makeIdent(null,"fsevents").identHash,Cme],[G.makeIdent(null,"resolve").identHash,Ime],[G.makeIdent(null,"typescript").identHash,wme]]),wgt={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,o]of UH)e(G.parseDescriptor(r,!0),o)},getBuiltinPatch:async(t,e)=>{let r="compat/";if(!e.startsWith(r))return;let o=G.parseIdent(e.slice(r.length)),a=Bme.get(o.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(t,e,r,o)=>typeof Bme.get(t.identHash)>"u"?t:G.makeDescriptor(t,G.makeRange({protocol:"patch:",source:G.stringifyDescriptor(t),selector:`optional!builtin`,params:null}))}},Bgt=wgt;var a6={};Kt(a6,{ConstraintsCheckCommand:()=>sC,ConstraintsQueryCommand:()=>nC,ConstraintsSourceCommand:()=>iC,default:()=>zgt});Ke();Ke();j2();var $E=class{constructor(e){this.project=e}createEnvironment(){let e=new ZE(["cwd","ident"]),r=new ZE(["workspace","type","ident"]),o=new ZE(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},n=new Map,u=new Map;for(let A of this.project.storedPackages.values()){let p=Array.from(A.peerDependencies.values(),h=>[G.stringifyIdent(h),h.range]);n.set(A.locatorHash,{workspace:null,ident:G.stringifyIdent(A),version:A.version,dependencies:new Map,peerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional!==!0)),optionalPeerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional===!0))})}for(let A of this.project.storedPackages.values()){let p=n.get(A.locatorHash);p.dependencies=new Map(Array.from(A.dependencies.values(),h=>{let E=this.project.storedResolutions.get(h.descriptorHash);if(typeof E>"u")throw new Error("Assertion failed: The resolution should have been registered");let w=n.get(E);if(typeof w>"u")throw new Error("Assertion failed: The package should have been registered");return[G.stringifyIdent(h),w]})),p.dependencies.delete(p.ident)}for(let A of this.project.workspaces){let p=G.stringifyIdent(A.anchoredLocator),h=A.manifest.exportTo({}),E=n.get(A.anchoredLocator.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let w=(T,L,{caller:U=Xi.getCaller()}={})=>{let J=q2(T),te=qe.getMapWithDefault(a.manifestUpdates,A.cwd),le=qe.getMapWithDefault(te,J),ce=qe.getSetWithDefault(le,L);U!==null&&ce.add(U)},D=T=>w(T,void 0,{caller:Xi.getCaller()}),x=T=>{qe.getArrayWithDefault(a.reportedErrors,A.cwd).push(T)},C=e.insert({cwd:A.relativeCwd,ident:p,manifest:h,pkg:E,set:w,unset:D,error:x});u.set(A,C);for(let T of _t.allDependencies)for(let L of A.manifest[T].values()){let U=G.stringifyIdent(L),J=()=>{w([T,U],void 0,{caller:Xi.getCaller()})},te=ce=>{w([T,U],ce,{caller:Xi.getCaller()})},le=null;if(T!=="peerDependencies"&&(T!=="dependencies"||!A.manifest.devDependencies.has(L.identHash))){let ce=A.anchoredPackage.dependencies.get(L.identHash);if(ce){if(typeof ce>"u")throw new Error("Assertion failed: The dependency should have been registered");let ue=this.project.storedResolutions.get(ce.descriptorHash);if(typeof ue>"u")throw new Error("Assertion failed: The resolution should have been registered");let Ie=n.get(ue);if(typeof Ie>"u")throw new Error("Assertion failed: The package should have been registered");le=Ie}}r.insert({workspace:C,ident:U,range:L.range,type:T,resolution:le,update:te,delete:J,error:x})}}for(let A of this.project.storedPackages.values()){let p=this.project.tryWorkspaceByLocator(A);if(!p)continue;let h=u.get(p);if(typeof h>"u")throw new Error("Assertion failed: The workspace should have been registered");let E=n.get(A.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");E.workspace=h}return{workspaces:e,dependencies:r,packages:o,result:a}}async process(){let e=this.createEnvironment(),r={Yarn:{workspace:a=>e.workspaces.find(a)[0]??null,workspaces:a=>e.workspaces.find(a),dependency:a=>e.dependencies.find(a)[0]??null,dependencies:a=>e.dependencies.find(a),package:a=>e.packages.find(a)[0]??null,packages:a=>e.packages.find(a)}},o=await this.project.loadUserConfig();return o?.constraints?(await o.constraints(r),e.result):null}};Ke();Ke();Gt();var nC=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.query=de.String()}static{this.paths=[["constraints","query"]]}static{this.usage=ot.Usage({category:"Constraints-related commands",description:"query the constraints fact database",details:` + This command will output all matches to the given prolog query. + `,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(K2(),Y2)),o=await ze.find(this.context.cwd,this.context.plugins),{project:a}=await Qt.find(o,this.context.cwd),n=await r.find(a),u=this.query;return u.endsWith(".")||(u=`${u}.`),(await Nt.start({configuration:o,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(u)){let E=Array.from(Object.entries(h)),w=E.length,D=E.reduce((x,[C])=>Math.max(x,C.length),0);for(let x=0;x(K2(),Y2)),o=await ze.find(this.context.cwd,this.context.plugins),{project:a}=await Qt.find(o,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};Ke();Ke();Gt();j2();var sC=class extends ut{constructor(){super(...arguments);this.fix=de.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["constraints"]]}static{this.usage=ot.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` + This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code. + + If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution. + + For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints. + `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd);await o.restoreInstallState();let a=await o.loadUserConfig(),n;if(a?.constraints)n=new $E(o);else{let{Constraints:h}=await Promise.resolve().then(()=>(K2(),Y2));n=await h.find(o)}let u,A=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:w,remainingErrors:D}=Vk(o,E,{fix:this.fix}),x=[];for(let[C,T]of w){let L=C.manifest.indent;C.manifest=new _t,C.manifest.indent=L,C.manifest.load(T),x.push(C.persistManifest())}if(await Promise.all(x),!(w.size>0&&h>1)){u=kme(D,{configuration:r}),A=!1,p=!0;for(let[,C]of D)for(let T of C)T.fixable?A=!0:p=!1}}if(u.children.length===0)return 0;if(A){let h=p?`Those errors can all be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`;await Nt.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return u.children=qe.sortMap(u.children,h=>h.value[1]),As.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};j2();var Jgt={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[nC,iC,sC],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),o;if(r?.constraints)o=new $E(t);else{let{Constraints:u}=await Promise.resolve().then(()=>(K2(),Y2));o=await u.find(t)}let a=await o.process();if(!a)return;let{remainingErrors:n}=Vk(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[u,A]of n)for(let p of A)e(84,`${pe.pretty(t.configuration,u.anchoredLocator,pe.Type.IDENT)}: ${p.text}`);else e(84,`Constraint check failed; run ${pe.pretty(t.configuration,"yarn constraints",pe.Type.CODE)} for more details`)}}},zgt=Jgt;var l6={};Kt(l6,{CreateCommand:()=>oC,DlxCommand:()=>aC,default:()=>Zgt});Ke();Gt();var oC=class extends ut{constructor(){super(...arguments);this.pkg=de.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=de.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=de.String();this.args=de.Proxy()}static{this.paths=[["create"]]}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let o=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=G.parseDescriptor(o),n=a.name.match(/^create(-|$)/)?a:a.scope?G.makeIdent(a.scope,`create-${a.name}`):G.makeIdent(null,`create-${a.name}`),u=G.stringifyIdent(n);return a.range!=="unknown"&&(u+=`@${a.range}`),this.cli.run(["dlx",...r,u,...this.args])}};Ke();Ke();Pt();Gt();var aC=class extends ut{constructor(){super(...arguments);this.packages=de.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=de.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=de.String();this.args=de.Proxy()}static{this.paths=[["dlx"]]}static{this.usage=ot.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]})}async execute(){return ze.telemetry=null,await ae.mktempPromise(async r=>{let o=K.join(r,`dlx-${process.pid}`);await ae.mkdirPromise(o),await ae.writeFilePromise(K.join(o,"package.json"),`{} +`),await ae.writeFilePromise(K.join(o,"yarn.lock"),"");let a=K.join(o,".yarnrc.yml"),n=await ze.findProjectCwd(this.context.cwd),A={enableGlobalCache:!(await ze.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Ju(68),level:pe.LogLevel.Discard}]},p=n!==null?K.join(n,".yarnrc.yml"):null;p!==null&&ae.existsSync(p)?(await ae.copyFilePromise(p,a),await ze.updateConfiguration(o,L=>{let U=qe.toMerged(L,A);return Array.isArray(L.plugins)&&(U.plugins=L.plugins.map(J=>{let te=typeof J=="string"?J:J.path,le=Ae.isAbsolute(te)?te:Ae.resolve(Ae.fromPortablePath(n),te);return typeof J=="string"?le:{path:le,spec:J.spec}})),U})):await ae.writeJsonPromise(a,A);let h=this.packages??[this.command],E=G.parseDescriptor(this.command).name,w=await this.cli.run(["add","--fixed","--",...h],{cwd:o,quiet:this.quiet});if(w!==0)return w;this.quiet||this.context.stdout.write(` +`);let D=await ze.find(o,this.context.plugins),{project:x,workspace:C}=await Qt.find(D,o);if(C===null)throw new or(x.cwd,o);await x.restoreInstallState();let T=await hn.getWorkspaceAccessibleBinaries(C);return T.has(E)===!1&&T.size===1&&typeof this.packages>"u"&&(E=Array.from(T)[0][0]),await hn.executeWorkspaceAccessibleBinary(C,E,this.args,{packageAccessibleBinaries:T,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};var Xgt={commands:[oC,aC]},Zgt=Xgt;var A6={};Kt(A6,{ExecFetcher:()=>J2,ExecResolver:()=>z2,default:()=>tdt,execUtils:()=>Zk});Ke();Ke();Pt();var hA="exec:";var Zk={};Kt(Zk,{loadGeneratorFile:()=>V2,makeLocator:()=>u6,makeSpec:()=>rye,parseSpec:()=>c6});Ke();Pt();function c6(t){let{params:e,selector:r}=G.parseRange(t),o=Ae.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:o}}function rye({parentLocator:t,path:e,generatorHash:r,protocol:o}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function u6(t,{parentLocator:e,path:r,generatorHash:o,protocol:a}){return G.makeLocator(t,rye({parentLocator:e,path:r,generatorHash:o,protocol:a}))}async function V2(t,e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(t,{protocol:e}),n=K.isAbsolute(a)?{packageFs:new En(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,n.localPath)}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=K.join(u.prefixPath,a);return await A.readFilePromise(p,"utf8")}var J2=class{supports(e,r){return!!e.reference.startsWith(hA)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:hA});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){let o=await V2(e.reference,hA,r);return ae.mktempPromise(async a=>{let n=K.join(a,"generator.js");return await ae.writeFilePromise(n,o),ae.mktempPromise(async u=>{if(await this.generatePackage(u,e,n,r),!ae.existsSync(K.join(u,"build")))throw new Error("The script should have generated a build directory");return await $i.makeArchiveFromDirectory(K.join(u,"build"),{prefixPath:G.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,o,a){return await ae.mktempPromise(async n=>{let u=await hn.makeScriptEnv({project:a.project,binFolder:n}),A=K.join(e,"runtime.js");return await ae.mktempPromise(async p=>{let h=K.join(p,"buildfile.log"),E=K.join(e,"generator"),w=K.join(e,"build");await ae.mkdirPromise(E),await ae.mkdirPromise(w);let D={tempDir:Ae.fromPortablePath(E),buildDir:Ae.fromPortablePath(w),locator:G.stringifyLocator(r)};await ae.writeFilePromise(A,` + // Expose 'Module' as a global variable + Object.defineProperty(global, 'Module', { + get: () => require('module'), + configurable: true, + enumerable: false, + }); + + // Expose non-hidden built-in modules as global variables + for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) { + Object.defineProperty(global, name, { + get: () => require(name), + configurable: true, + enumerable: false, + }); + } + + // Expose the 'execEnv' global variable + Object.defineProperty(global, 'execEnv', { + value: { + ...${JSON.stringify(D)}, + }, + enumerable: true, + }); + `);let x=u.NODE_OPTIONS||"",C=/\s*--require\s+\S*\.pnp\.c?js\s*/g;x=x.replace(C," ").trim(),u.NODE_OPTIONS=x;let{stdout:T,stderr:L}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${G.stringifyLocator(r)}) +`,prefix:G.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await Hr.pipevp(process.execPath,["--require",Ae.fromPortablePath(A),Ae.fromPortablePath(o),G.stringifyIdent(r)],{cwd:e,env:u,stdin:null,stdout:T,stderr:L});if(U!==0)throw ae.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${pe.pretty(a.project.configuration,h,pe.Type.PATH)})`)})})}};Ke();Ke();var $gt=2,z2=class{supportsDescriptor(e,r){return!!e.range.startsWith(hA)}supportsLocator(e,r){return!!e.reference.startsWith(hA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=c6(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await V2(G.makeRange({protocol:hA,source:a,selector:a,params:{locator:G.stringifyLocator(n)}}),hA,o.fetchOptions),A=xn.makeHash(`${$gt}`,u).slice(0,6);return[u6(e,{parentLocator:n,path:a,generatorHash:A,protocol:hA})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var edt={fetchers:[J2],resolvers:[z2]},tdt=edt;var p6={};Kt(p6,{FileFetcher:()=>eB,FileResolver:()=>tB,TarballFileFetcher:()=>rB,TarballFileResolver:()=>nB,default:()=>idt,fileUtils:()=>$g});Ke();Pt();var lC=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,X2=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,_i="file:";var $g={};Kt($g,{fetchArchiveFromLocator:()=>$2,makeArchiveFromLocator:()=>$k,makeBufferFromLocator:()=>f6,makeLocator:()=>cC,makeSpec:()=>nye,parseSpec:()=>Z2});Ke();Pt();function Z2(t){let{params:e,selector:r}=G.parseRange(t),o=Ae.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:o}}function nye({parentLocator:t,path:e,hash:r,protocol:o}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function cC(t,{parentLocator:e,path:r,hash:o,protocol:a}){return G.makeLocator(t,nye({parentLocator:e,path:r,hash:o,protocol:a}))}async function $2(t,e){let{parentLocator:r,path:o}=G.parseFileStyleRange(t.reference,{protocol:_i}),a=K.isAbsolute(o)?{packageFs:new En(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let u=n.packageFs,A=K.join(n.prefixPath,o);return await qe.releaseAfterUseAsync(async()=>await u.readFilePromise(A),n.releaseFs)}async function $k(t,{protocol:e,fetchOptions:r,inMemory:o=!1}){let{parentLocator:a,path:n}=G.parseFileStyleRange(t.reference,{protocol:e}),u=K.isAbsolute(n)?{packageFs:new En(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(a,r),A=u.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,u.localPath)}:u;u!==A&&u.releaseFs&&u.releaseFs();let p=A.packageFs,h=K.join(A.prefixPath,n);return await qe.releaseAfterUseAsync(async()=>await $i.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:G.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:o}),A.releaseFs)}async function f6(t,{protocol:e,fetchOptions:r}){return(await $k(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var eB=class{supports(e,r){return!!e.reference.startsWith(_i)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:_i});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){return $k(e,{protocol:_i,fetchOptions:r})}};Ke();Ke();var rdt=2,tB=class{supportsDescriptor(e,r){return e.range.match(lC)?!0:!!e.range.startsWith(_i)}supportsLocator(e,r){return!!e.reference.startsWith(_i)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return lC.test(e.range)&&(e=G.makeDescriptor(e,`${_i}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=Z2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await f6(G.makeLocator(e,G.makeRange({protocol:_i,source:a,selector:a,params:{locator:G.stringifyLocator(n)}})),{protocol:_i,fetchOptions:o.fetchOptions}),A=xn.makeHash(`${rdt}`,u).slice(0,6);return[cC(e,{parentLocator:n,path:a,hash:A,protocol:_i})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Ke();var rB=class{supports(e,r){return X2.test(e.reference)?!!e.reference.startsWith(_i):!1}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromDisk(e,r){let o=await $2(e,r);return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ke();Ke();Ke();var nB=class{supportsDescriptor(e,r){return X2.test(e.range)?!!(e.range.startsWith(_i)||lC.test(e.range)):!1}supportsLocator(e,r){return X2.test(e.reference)?!!e.reference.startsWith(_i):!1}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return lC.test(e.range)&&(e=G.makeDescriptor(e,`${_i}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=Z2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=cC(e,{parentLocator:n,path:a,hash:"",protocol:_i}),A=await $2(u,o.fetchOptions),p=xn.makeHash(A).slice(0,6);return[cC(e,{parentLocator:n,path:a,hash:p,protocol:_i})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var ndt={fetchers:[rB,eB],resolvers:[nB,tB]},idt=ndt;var d6={};Kt(d6,{GithubFetcher:()=>iB,default:()=>odt,githubUtils:()=>eQ});Ke();Pt();var eQ={};Kt(eQ,{invalidGithubUrlMessage:()=>oye,isGithubUrl:()=>h6,parseGithubUrl:()=>g6});var iye=et(ve("querystring")),sye=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function h6(t){return t?sye.some(e=>!!t.match(e)):!1}function g6(t){let e;for(let A of sye)if(e=t.match(A),e)break;if(!e)throw new Error(oye(t));let[,r,o,a,n="master"]=e,{commit:u}=iye.default.parse(n);return n=u||n.replace(/[^:]*:/,""),{auth:r,username:o,reponame:a,treeish:n}}function oye(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var iB=class{supports(e,r){return!!h6(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await on.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await ae.mktempPromise(async a=>{let n=new En(a);await $i.extractArchiveTo(o,n,{stripComponents:1});let u=ra.splitRepoUrl(e.reference),A=K.join(a,"package.tgz");await hn.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:u.extra.workspace,locator:e});let p=await ae.readFilePromise(A);return await $i.convertToZip(p,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:o,username:a,reponame:n,treeish:u}=g6(e.reference);return`https://${o?`${o}@`:""}github.com/${a}/${n}/archive/${u}.tar.gz`}};var sdt={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let o=new iB;if(!o.supports(e,r))return null;try{return await o.fetch(e,r)}catch{return null}}}},odt=sdt;var m6={};Kt(m6,{TarballHttpFetcher:()=>oB,TarballHttpResolver:()=>aB,default:()=>ldt});Ke();function sB(t){let e;try{e=new URL(t)}catch{return!1}return!(e.protocol!=="http:"&&e.protocol!=="https:"||!e.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}var oB=class{supports(e,r){return sB(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await on.get(e.reference,{configuration:r.project.configuration});return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ke();Ke();var aB=class{supportsDescriptor(e,r){return sB(e.range)}supportsLocator(e,r){return sB(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[G.convertDescriptorToLocator(e)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var adt={fetchers:[oB],resolvers:[aB]},ldt=adt;var y6={};Kt(y6,{InitCommand:()=>uC,default:()=>udt});Ke();Ke();Pt();Gt();var uC=class extends ut{constructor(){super(...arguments);this.private=de.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=de.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=de.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.name=de.String("-n,--name",{description:"Initialize a package with the given name"});this.usev2=de.Boolean("-2",!1,{hidden:!0});this.yes=de.Boolean("-y,--yes",{hidden:!0})}static{this.paths=[["init"]]}static{this.usage=ot.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return o!==null?await this.executeProxy(r,o):await this.executeRegular(r)}async executeProxy(r,o){if(r.projectCwd!==null&&r.projectCwd!==this.context.cwd)throw new it("Cannot use the --install flag from within a project subdirectory");ae.existsSync(this.context.cwd)||await ae.mkdirPromise(this.context.cwd,{recursive:!0});let a=K.join(this.context.cwd,mr.lockfile);ae.existsSync(a)||await ae.writeFilePromise(a,"");let n=await this.cli.run(["set","version",o],{quiet:!0});if(n!==0)return n;let u=[];return this.private&&u.push("-p"),this.workspace&&u.push("-w"),this.name&&u.push(`-n=${this.name}`),this.yes&&u.push("-y"),await ae.mktempPromise(async A=>{let{code:p}=await Hr.pipevp("yarn",["init",...u],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await hn.makeScriptEnv({binFolder:A})});return p})}async executeRegular(r){let o=null;try{o=(await Qt.find(r,this.context.cwd)).project}catch{o=null}ae.existsSync(this.context.cwd)||await ae.mkdirPromise(this.context.cwd,{recursive:!0});let a=await _t.tryFind(this.context.cwd),n=a??new _t,u=Object.fromEntries(r.get("initFields").entries());n.load(u),n.name=n.name??G.makeIdent(r.get("initScope"),this.name??K.basename(this.context.cwd)),n.packageManager=nn&&qe.isTaggedYarnVersion(nn)?`yarn@${nn}`:null,(!a&&this.workspace||this.private)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await ae.mkdirPromise(K.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let A={};n.exportTo(A);let p=K.join(this.context.cwd,_t.fileName);await ae.changeFilePromise(p,`${JSON.stringify(A,null,2)} +`,{automaticNewlines:!0});let h=[p],E=K.join(this.context.cwd,"README.md");if(ae.existsSync(E)||(await ae.writeFilePromise(E,`# ${G.stringifyIdent(n.name)} +`),h.push(E)),!o||o.cwd===this.context.cwd){let w=K.join(this.context.cwd,mr.lockfile);ae.existsSync(w)||(await ae.writeFilePromise(w,""),h.push(w));let x=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(ce=>`${ce} +`).join(""),C=K.join(this.context.cwd,".gitignore");ae.existsSync(C)||(await ae.writeFilePromise(C,x),h.push(C));let L=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(ce=>`${ce} +`).join(""),U=K.join(this.context.cwd,".gitattributes");ae.existsSync(U)||(await ae.writeFilePromise(U,L),h.push(U));let J={"*":{endOfLine:"lf",insertFinalNewline:!0},"*.{js,json,yml}":{charset:"utf-8",indentStyle:"space",indentSize:2}};qe.mergeIntoTarget(J,r.get("initEditorConfig"));let te=`root = true +`;for(let[ce,ue]of Object.entries(J)){te+=` +[${ce}] +`;for(let[Ie,he]of Object.entries(ue)){let De=Ie.replace(/[A-Z]/g,Ee=>`_${Ee.toLowerCase()}`);te+=`${De} = ${he} +`}}let le=K.join(this.context.cwd,".editorconfig");ae.existsSync(le)||(await ae.writeFilePromise(le,te),h.push(le)),await this.cli.run(["install"],{quiet:!0}),ae.existsSync(K.join(this.context.cwd,".git"))||(await Hr.execvp("git",["init"],{cwd:this.context.cwd}),await Hr.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await Hr.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};var cdt={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[uC]},udt=cdt;var mj={};Kt(mj,{SearchCommand:()=>bC,UpgradeInteractiveCommand:()=>xC,default:()=>UIt});Ke();var lye=et(ve("os"));function AC({stdout:t}){if(lye.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}Gt();var CEe=et(L6()),O6={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},ayt=(0,CEe.default)(O6.appId,O6.apiKey).initIndex(O6.indexName),M6=async(t,e=0)=>await ayt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var sv=["regular","dev","peer"],bC=class extends ut{static{this.paths=[["search"]]}static{this.usage=ot.Usage({category:"Interactive commands",description:"open the search interface",details:` + This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. + `,examples:[["Open the search window","yarn search"]]})}async execute(){AC(this.context);let{Gem:e}=await Promise.resolve().then(()=>(UQ(),oj)),{ScrollableItems:r}=await Promise.resolve().then(()=>(jQ(),qQ)),{useKeypress:o}=await Promise.resolve().then(()=>(rv(),xwe)),{useMinistore:a}=await Promise.resolve().then(()=>(fj(),Aj)),{renderForm:n}=await Promise.resolve().then(()=>(KQ(),YQ)),{default:u}=await Promise.resolve().then(()=>et(Uwe())),{Box:A,Text:p}=await Promise.resolve().then(()=>et(ac())),{default:h,useEffect:E,useState:w}=await Promise.resolve().then(()=>et(ln())),D=await ze.find(this.context.cwd,this.context.plugins),x=()=>h.createElement(A,{flexDirection:"row"},h.createElement(A,{flexDirection:"column",width:48},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move between packages.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select a package.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," again to change the target."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),C=()=>h.createElement(h.Fragment,null,h.createElement(A,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(A,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(A,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),T=()=>h.createElement(A,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),L=({hit:he,active:De})=>{let[Ee,g]=a(he.name,null);o({active:De},(fe,ie)=>{if(ie.name!=="space")return;if(!Ee){g(sv[0]);return}let Z=sv.indexOf(Ee)+1;Z===sv.length?g(null):g(sv[Z])},[Ee,g]);let me=G.parseIdent(he.name),Ce=G.prettyIdent(D,me);return h.createElement(A,null,h.createElement(A,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},Ce)),h.createElement(A,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},he.owner.name)),h.createElement(A,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},he.version)),h.createElement(A,{width:16,marginLeft:1},h.createElement(p,null,he.humanDownloadsLast30Days)))},U=({name:he,active:De})=>{let[Ee]=a(he,null),g=G.parseIdent(he);return h.createElement(A,null,h.createElement(A,{width:47},h.createElement(p,{bold:!0}," - ",G.prettyIdent(D,g))),sv.map(me=>h.createElement(A,{key:me,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(e,{active:Ee===me})," ",h.createElement(p,{bold:!0},me)))))},J=()=>h.createElement(A,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),le=await n(({useSubmit:he})=>{let De=a();he(De);let Ee=Array.from(De.keys()).filter(q=>De.get(q)!==null),[g,me]=w(""),[Ce,fe]=w(0),[ie,Z]=w([]),Pe=q=>{q.match(/\t| /)||me(q)},Re=async()=>{fe(0);let q=await M6(g);q.query===g&&Z(q.hits)},ht=async()=>{let q=await M6(g,Ce+1);q.query===g&&q.page-1===Ce&&(fe(q.page),Z([...ie,...q.hits]))};return E(()=>{g?Re():Z([])},[g]),h.createElement(A,{flexDirection:"column"},h.createElement(x,null),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(A,{width:41},h.createElement(u,{value:g,onChange:Pe,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(C,null)),ie.length?h.createElement(r,{radius:2,loop:!1,children:ie.map(q=>h.createElement(L,{key:q.name,hit:q,active:!1})),willReachEnd:ht}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(A,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(T,null)),Ee.length?Ee.map(q=>h.createElement(U,{key:q,name:q,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(J,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof le>"u")return 1;let ce=Array.from(le.keys()).filter(he=>le.get(he)==="regular"),ue=Array.from(le.keys()).filter(he=>le.get(he)==="dev"),Ie=Array.from(le.keys()).filter(he=>le.get(he)==="peer");return ce.length&&await this.cli.run(["add",...ce]),ue.length&&await this.cli.run(["add","--dev",...ue]),Ie&&await this.cli.run(["add","--peer",...Ie]),0}};Ke();Gt();n_();var Ywe=et(ni()),Wwe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/,Kwe=(t,e)=>t.length>0?[t.slice(0,e)].concat(Kwe(t.slice(e),e)):[],xC=class extends ut{static{this.paths=[["upgrade-interactive"]]}static{this.usage=ot.Usage({category:"Interactive commands",description:"open the upgrade interface",details:` + This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade. + `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]})}async execute(){AC(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(Gwe(),jwe)),{Pad:r}=await Promise.resolve().then(()=>(dj(),qwe)),{ScrollableItems:o}=await Promise.resolve().then(()=>(jQ(),qQ)),{useMinistore:a}=await Promise.resolve().then(()=>(fj(),Aj)),{renderForm:n}=await Promise.resolve().then(()=>(KQ(),YQ)),{Box:u,Text:A}=await Promise.resolve().then(()=>et(ac())),{default:p,useEffect:h,useRef:E,useState:w}=await Promise.resolve().then(()=>et(ln())),D=await ze.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await Qt.find(D,this.context.cwd),T=await Wr.find(D);if(!C)throw new or(x.cwd,this.context.cwd);await x.restoreInstallState({restoreResolutions:!1});let L=this.context.stdout.rows-7,U=(me,Ce)=>{let fe=$pe(me,Ce),ie="";for(let Z of fe)Z.added?ie+=pe.pretty(D,Z.value,"green"):Z.removed||(ie+=Z.value);return ie},J=(me,Ce)=>{if(me===Ce)return Ce;let fe=G.parseRange(me),ie=G.parseRange(Ce),Z=fe.selector.match(Wwe),Pe=ie.selector.match(Wwe);if(!Z||!Pe)return U(me,Ce);let Re=["gray","red","yellow","green","magenta"],ht=null,q="";for(let nt=1;nt{let ie=await nu.fetchDescriptorFrom(me,fe,{project:x,cache:T,preserveModifier:Ce,workspace:C});return ie!==null?ie.range:me.range},le=async me=>{let Ce=Ywe.default.valid(me.range)?`^${me.range}`:me.range,[fe,ie]=await Promise.all([te(me,me.range,Ce).catch(()=>null),te(me,me.range,"latest").catch(()=>null)]),Z=[{value:null,label:me.range}];return fe&&fe!==me.range?Z.push({value:fe,label:J(me.range,fe)}):Z.push({value:null,label:""}),ie&&ie!==fe&&ie!==me.range?Z.push({value:ie,label:J(me.range,ie)}):Z.push({value:null,label:""}),Z},ce=()=>p.createElement(u,{flexDirection:"row"},p.createElement(u,{flexDirection:"column",width:49},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},""),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to select packages.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},""),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to select versions."))),p.createElement(u,{flexDirection:"column"},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to install.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to abort.")))),ue=()=>p.createElement(u,{flexDirection:"row",paddingTop:1,paddingBottom:1},p.createElement(u,{width:50},p.createElement(A,{bold:!0},p.createElement(A,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Current")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Range")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Latest"))),Ie=({active:me,descriptor:Ce,suggestions:fe})=>{let[ie,Z]=a(Ce.descriptorHash,null),Pe=G.stringifyIdent(Ce),Re=Math.max(0,45-Pe.length);return p.createElement(p.Fragment,null,p.createElement(u,null,p.createElement(u,{width:45},p.createElement(A,{bold:!0},G.prettyIdent(D,Ce)),p.createElement(r,{active:me,length:Re})),p.createElement(e,{active:me,options:fe,value:ie,skewer:!0,onChange:Z,sizes:[17,17,17]})))},he=({dependencies:me})=>{let[Ce,fe]=w(me.map(()=>null)),ie=E(!0),Z=async Pe=>{let Re=await le(Pe);return Re.filter(ht=>ht.label!=="").length<=1?null:{descriptor:Pe,suggestions:Re}};return h(()=>()=>{ie.current=!1},[]),h(()=>{let Pe=Math.trunc(L*1.75),Re=me.slice(0,Pe),ht=me.slice(Pe),q=Kwe(ht,L),nt=Re.map(Z).reduce(async(Ne,Te)=>{await Ne;let ke=await Te;ke!==null&&ie.current&&fe(Ve=>{let be=Ve.findIndex(He=>He===null),tt=[...Ve];return tt[be]=ke,tt})},Promise.resolve());q.reduce((Ne,Te)=>Promise.all(Te.map(ke=>Promise.resolve().then(()=>Z(ke)))).then(async ke=>{ke=ke.filter(Ve=>Ve!==null),await Ne,ie.current&&fe(Ve=>{let be=Ve.findIndex(tt=>tt===null);return Ve.slice(0,be).concat(ke).concat(Ve.slice(be+ke.length))})}),nt).then(()=>{ie.current&&fe(Ne=>Ne.filter(Te=>Te!==null))})},[]),Ce.length?p.createElement(o,{radius:L>>1,children:Ce.map((Pe,Re)=>Pe!==null?p.createElement(Ie,{key:Re,active:!1,descriptor:Pe.descriptor,suggestions:Pe.suggestions}):p.createElement(A,{key:Re},"Loading..."))}):p.createElement(A,null,"No upgrades found")},Ee=await n(({useSubmit:me})=>{me(a());let Ce=new Map;for(let ie of x.workspaces)for(let Z of["dependencies","devDependencies"])for(let Pe of ie.manifest[Z].values())x.tryWorkspaceByDescriptor(Pe)===null&&(Pe.range.startsWith("link:")||Ce.set(Pe.descriptorHash,Pe));let fe=qe.sortMap(Ce.values(),ie=>G.stringifyDescriptor(ie));return p.createElement(u,{flexDirection:"column"},p.createElement(ce,null),p.createElement(ue,null),p.createElement(he,{dependencies:fe}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof Ee>"u")return 1;let g=!1;for(let me of x.workspaces)for(let Ce of["dependencies","devDependencies"]){let fe=me.manifest[Ce];for(let ie of fe.values()){let Z=Ee.get(ie.descriptorHash);typeof Z<"u"&&Z!==null&&(fe.set(ie.identHash,G.makeDescriptor(ie,Z)),g=!0)}}return g?await x.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:T}):0}};var MIt={commands:[bC,xC]},UIt=MIt;var yj={};Kt(yj,{LinkFetcher:()=>av,LinkResolver:()=>lv,PortalFetcher:()=>cv,PortalResolver:()=>uv,default:()=>HIt});Ke();Pt();var Zf="portal:",$f="link:";var av=class{supports(e,r){return!!e.reference.startsWith($f)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:$f});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:$f}),n=K.isAbsolute(a)?{packageFs:new En(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,n.localPath),localPath:Bt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=K.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new En(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,discardFromLookup:!0,localPath:p}:{packageFs:new Gu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,discardFromLookup:!0}}};Ke();Pt();var lv=class{supportsDescriptor(e,r){return!!e.range.startsWith($f)}supportsLocator(e,r){return!!e.reference.startsWith($f)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice($f.length);return[G.makeLocator(e,`${$f}${Ae.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){return{...e,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};Ke();Pt();var cv=class{supports(e,r){return!!e.reference.startsWith(Zf)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Zf});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Zf}),n=K.isAbsolute(a)?{packageFs:new En(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,n.localPath),localPath:Bt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=K.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new En(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,localPath:p}:{packageFs:new Gu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot}}};Ke();Ke();Pt();var uv=class{supportsDescriptor(e,r){return!!e.range.startsWith(Zf)}supportsLocator(e,r){return!!e.reference.startsWith(Zf)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(Zf.length);return[G.makeLocator(e,`${Zf}${Ae.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var _It={fetchers:[av,cv],resolvers:[lv,uv]},HIt=_It;var t5={};Kt(t5,{NodeModulesLinker:()=>Dv,NodeModulesMode:()=>Xj,PnpLooseLinker:()=>Pv,default:()=>n1t});Pt();Ke();Pt();Pt();var Cj=(t,e)=>`${t}@${e}`,Vwe=(t,e)=>{let r=e.indexOf("#"),o=r>=0?e.substring(r+1):e;return Cj(t,o)};var zwe=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),o=e.check||r>=9,a=e.hoistingLimits||new Map,n={check:o,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},u;n.debugLevel>=0&&(u=Date.now());let A=VIt(t,n),p=!1,h=0;do{let E=Ij(A,[A],new Set([A.locator]),new Map,n);p=E.anotherRoundNeeded||E.isGraphChanged,n.fastLookupPossible=!1,h++}while(p);if(n.debugLevel>=0&&console.log(`hoist time: ${Date.now()-u}ms, rounds: ${h}`),n.debugLevel>=1){let E=Av(A);if(Ij(A,[A],new Set([A.locator]),new Map,n).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +${E}, next tree: +${Av(A)}`);let D=Xwe(A);if(D)throw new Error(`${D}, after hoisting finished: +${Av(A)}`)}return n.debugLevel>=2&&console.log(Av(A)),JIt(A)},qIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=n=>{if(!o.has(n)){o.add(n);for(let u of n.hoistedDependencies.values())r.set(u.name,u);for(let u of n.dependencies.values())n.peerNames.has(u.name)||a(u)}};return a(e),r},jIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=new Set,n=(u,A)=>{if(o.has(u))return;o.add(u);for(let h of u.hoistedDependencies.values())if(!A.has(h.name)){let E;for(let w of t)E=w.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of u.dependencies.values())p.add(h.name);for(let h of u.dependencies.values())u.peerNames.has(h.name)||n(h,p)};return n(e,a),r},Jwe=(t,e)=>{if(e.decoupled)return e;let{name:r,references:o,ident:a,locator:n,dependencies:u,originalDependencies:A,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:w,hoistPriority:D,dependencyKind:x,hoistedFrom:C,hoistedTo:T}=e,L={name:r,references:new Set(o),ident:a,locator:n,dependencies:new Map(u),originalDependencies:new Map(A),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:w,hoistPriority:D,dependencyKind:x,hoistedFrom:new Map(C),hoistedTo:new Map(T)},U=L.dependencies.get(r);return U&&U.ident==L.ident&&L.dependencies.set(r,L),t.dependencies.set(L.name,L),L},GIt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let o=Array.from(e.keys());o.sort((a,n)=>{let u=e.get(a),A=e.get(n);if(A.hoistPriority!==u.hoistPriority)return A.hoistPriority-u.hoistPriority;{let p=u.dependents.size+u.peerDependents.size;return A.dependents.size+A.peerDependents.size-p}});for(let a of o){let n=a.substring(0,a.indexOf("@",1)),u=a.substring(n.length+1);if(!t.peerNames.has(n)){let A=r.get(n);A||(A=[],r.set(n,A)),A.indexOf(u)<0&&A.push(u)}}return r},Ej=t=>{let e=new Set,r=(o,a=new Set)=>{if(!a.has(o)){a.add(o);for(let n of o.peerNames)if(!t.peerNames.has(n)){let u=t.dependencies.get(n);u&&!e.has(u)&&r(u,a)}e.add(o)}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||r(o);return e},Ij=(t,e,r,o,a,n=new Set)=>{let u=e[e.length-1];if(n.has(u))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(u);let A=zIt(u),p=GIt(u,A),h=t==u?new Map:a.fastLookupPossible?qIt(e):jIt(e),E,w=!1,D=!1,x=new Map(Array.from(p.entries()).map(([T,L])=>[T,L[0]])),C=new Map;do{let T=KIt(t,e,r,h,x,p,o,C,a);T.isGraphChanged&&(D=!0),T.anotherRoundNeeded&&(w=!0),E=!1;for(let[L,U]of p)U.length>1&&!u.dependencies.has(L)&&(x.delete(L),U.shift(),x.set(L,U[0]),E=!0)}while(E);for(let T of u.dependencies.values())if(!u.peerNames.has(T.name)&&!r.has(T.locator)){r.add(T.locator);let L=Ij(t,[...e,T],r,C,a);L.isGraphChanged&&(D=!0),L.anotherRoundNeeded&&(w=!0),r.delete(T.locator)}return{anotherRoundNeeded:w,isGraphChanged:D}},WIt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},YIt=(t,e,r,o,a,n,u,A,{outputReason:p,fastLookupPossible:h})=>{let E,w=null,D=new Set;p&&(E=`${Array.from(e).map(L=>zs(L)).join("\u2192")}`);let x=r[r.length-1],T=!(o.ident===x.ident);if(p&&!T&&(w="- self-reference"),T&&(T=o.dependencyKind!==1,p&&!T&&(w="- workspace")),T&&o.dependencyKind===2&&(T=!WIt(o),p&&!T&&(w="- external soft link with unhoisted dependencies")),T&&(T=!t.peerNames.has(o.name),p&&!T&&(w=`- cannot shadow peer: ${zs(t.originalDependencies.get(o.name).locator)} at ${E}`)),T){let L=!1,U=a.get(o.name);if(L=!U||U.ident===o.ident,p&&!L&&(w=`- filled by: ${zs(U.locator)} at ${E}`),L)for(let J=r.length-1;J>=1;J--){let le=r[J].dependencies.get(o.name);if(le&&le.ident!==o.ident){L=!1;let ce=A.get(x);ce||(ce=new Set,A.set(x,ce)),ce.add(o.name),p&&(w=`- filled by ${zs(le.locator)} at ${r.slice(0,J).map(ue=>zs(ue.locator)).join("\u2192")}`);break}}T=L}if(T&&(T=n.get(o.name)===o.ident,p&&!T&&(w=`- filled by: ${zs(u.get(o.name)[0])} at ${E}`)),T){let L=!0,U=new Set(o.peerNames);for(let J=r.length-1;J>=1;J--){let te=r[J];for(let le of U){if(te.peerNames.has(le)&&te.originalDependencies.has(le))continue;let ce=te.dependencies.get(le);ce&&t.dependencies.get(le)!==ce&&(J===r.length-1?D.add(ce):(D=null,L=!1,p&&(w=`- peer dependency ${zs(ce.locator)} from parent ${zs(te.locator)} was not hoisted to ${E}`))),U.delete(le)}if(!L)break}T=L}if(T&&!h)for(let L of o.hoistedDependencies.values()){let U=a.get(L.name)||t.dependencies.get(L.name);if(!U||L.ident!==U.ident){T=!1,p&&(w=`- previously hoisted dependency mismatch, needed: ${zs(L.locator)}, available: ${zs(U?.locator)}`);break}}return D!==null&&D.size>0?{isHoistable:2,dependsOn:D,reason:w}:{isHoistable:T?0:1,reason:w}},VQ=t=>`${t.name}@${t.locator}`,KIt=(t,e,r,o,a,n,u,A,p)=>{let h=e[e.length-1],E=new Set,w=!1,D=!1,x=(U,J,te,le,ce)=>{if(E.has(le))return;let ue=[...J,VQ(le)],Ie=[...te,VQ(le)],he=new Map,De=new Map;for(let fe of Ej(le)){let ie=YIt(h,r,[h,...U,le],fe,o,a,n,A,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(De.set(fe,ie),ie.isHoistable===2)for(let Z of ie.dependsOn){let Pe=he.get(Z.name)||new Set;Pe.add(fe.name),he.set(Z.name,Pe)}}let Ee=new Set,g=(fe,ie,Z)=>{if(!Ee.has(fe)){Ee.add(fe),De.set(fe,{isHoistable:1,reason:Z});for(let Pe of he.get(fe.name)||[])g(le.dependencies.get(Pe),ie,p.debugLevel>=2?`- peer dependency ${zs(fe.locator)} from parent ${zs(le.locator)} was not hoisted`:"")}};for(let[fe,ie]of De)ie.isHoistable===1&&g(fe,ie,ie.reason);let me=!1;for(let fe of De.keys())if(!Ee.has(fe)){D=!0;let ie=u.get(le);ie&&ie.has(fe.name)&&(w=!0),me=!0,le.dependencies.delete(fe.name),le.hoistedDependencies.set(fe.name,fe),le.reasons.delete(fe.name);let Z=h.dependencies.get(fe.name);if(p.debugLevel>=2){let Pe=Array.from(J).concat([le.locator]).map(ht=>zs(ht)).join("\u2192"),Re=h.hoistedFrom.get(fe.name);Re||(Re=[],h.hoistedFrom.set(fe.name,Re)),Re.push(Pe),le.hoistedTo.set(fe.name,Array.from(e).map(ht=>zs(ht.locator)).join("\u2192"))}if(!Z)h.ident!==fe.ident&&(h.dependencies.set(fe.name,fe),ce.add(fe));else for(let Pe of fe.references)Z.references.add(Pe)}if(le.dependencyKind===2&&me&&(w=!0),p.check){let fe=Xwe(t);if(fe)throw new Error(`${fe}, after hoisting dependencies of ${[h,...U,le].map(ie=>zs(ie.locator)).join("\u2192")}: +${Av(t)}`)}let Ce=Ej(le);for(let fe of Ce)if(Ee.has(fe)){let ie=De.get(fe);if((a.get(fe.name)===fe.ident||!le.reasons.has(fe.name))&&ie.isHoistable!==0&&le.reasons.set(fe.name,ie.reason),!fe.isHoistBorder&&Ie.indexOf(VQ(fe))<0){E.add(le);let Pe=Jwe(le,fe);x([...U,le],ue,Ie,Pe,T),E.delete(le)}}},C,T=new Set(Ej(h)),L=Array.from(e).map(U=>VQ(U));do{C=T,T=new Set;for(let U of C){if(U.locator===h.locator||U.isHoistBorder)continue;let J=Jwe(h,U);x([],Array.from(r),L,J,T)}}while(T.size>0);return{anotherRoundNeeded:w,isGraphChanged:D}},Xwe=t=>{let e=[],r=new Set,o=new Set,a=(n,u,A)=>{if(r.has(n)||(r.add(n),o.has(n)))return;let p=new Map(u);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let E=p.get(h.name),w=()=>`${Array.from(o).concat([n]).map(D=>zs(D.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let D=u.get(h.name);(D!==E||!D||D.ident!==h.ident)&&e.push(`${w()} - broken peer promise: expected ${h.ident} but found ${D&&D.ident}`)}else{let D=A.hoistedFrom.get(n.name),x=n.hoistedTo.get(h.name),C=`${D?` hoisted from ${D.join(", ")}`:""}`,T=`${x?` hoisted to ${x}`:""}`,L=`${w()}${C}`;E?E.ident!==h.ident&&e.push(`${L} - broken require promise for ${h.name}${T}: expected ${h.ident}, but found: ${E.ident}`):e.push(`${L} - broken require promise: no required dependency ${h.name}${T} found`)}}o.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);o.delete(n)};return a(t,t.dependencies,t),e.join(` +`)},VIt=(t,e)=>{let{identName:r,name:o,reference:a,peerNames:n}=t,u={name:o,references:new Set([a]),locator:Cj(r,a),ident:Vwe(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[t,u]]),p=(h,E)=>{let w=A.get(h),D=!!w;if(!w){let{name:x,identName:C,reference:T,peerNames:L,hoistPriority:U,dependencyKind:J}=h,te=e.hoistingLimits.get(E.locator);w={name:x,references:new Set([T]),locator:Cj(C,T),ident:Vwe(C,T),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(L),reasons:new Map,decoupled:!0,isHoistBorder:te?te.has(x):!1,hoistPriority:U||0,dependencyKind:J||0,hoistedFrom:new Map,hoistedTo:new Map},A.set(h,w)}if(E.dependencies.set(h.name,w),E.originalDependencies.set(h.name,w),D){let x=new Set,C=T=>{if(!x.has(T)){x.add(T),T.decoupled=!1;for(let L of T.dependencies.values())T.peerNames.has(L.name)||C(L)}};C(w)}else for(let x of h.dependencies)p(x,w)};for(let h of t.dependencies)p(h,u);return u},wj=t=>t.substring(0,t.indexOf("@",1)),JIt=t=>{let e={name:t.name,identName:wj(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),o=(a,n,u)=>{let A=r.has(a),p;if(n===a)p=u;else{let{name:h,references:E,locator:w}=a;p={name:h,identName:wj(w),references:E,dependencies:new Set}}if(u.dependencies.add(p),!A){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||o(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())o(a,t,e);return e},zIt=t=>{let e=new Map,r=new Set([t]),o=u=>`${u.name}@${u.ident}`,a=u=>{let A=o(u),p=e.get(A);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(A,p)),p},n=(u,A)=>{let p=!!r.has(A);if(a(A).dependents.add(u.ident),!p){r.add(A);for(let E of A.dependencies.values()){let w=a(E);w.hoistPriority=Math.max(w.hoistPriority,E.hoistPriority),A.peerNames.has(E.name)?w.peerDependents.add(A.ident):n(A,E)}}};for(let u of t.dependencies.values())t.peerNames.has(u.name)||n(t,u);return e},zs=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let o=t.substring(e+1);if(o==="workspace:.")return".";if(o){let a=(o.indexOf("#")>0?o.split("#")[1]:o).replace("npm:","");return o.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`};var Av=t=>{let e=0,r=(a,n,u="")=>{if(e>5e4||n.has(a))return"";e++;let A=Array.from(a.dependencies.values()).sort((h,E)=>h.name===E.name?0:h.name>E.name?1:-1),p="";n.add(a);for(let h=0;h":"")+(D!==E.name?`a:${E.name}:`:"")+zs(E.locator)+(w?` ${w}`:"")} +`,p+=r(E,n,`${u}${h5e4?` +Tree is too large, part of the tree has been dunped +`:"")};var fv=(o=>(o.WORKSPACES="workspaces",o.DEPENDENCIES="dependencies",o.NONE="none",o))(fv||{}),Zwe="node_modules",jh="$wsroot$";var pv=(t,e)=>{let{packageTree:r,hoistingLimits:o,errors:a,preserveSymlinksRequired:n}=ZIt(t,e),u=null;if(a.length===0){let A=zwe(r,{hoistingLimits:o});u=ewt(t,A,e)}return{tree:u,errors:a,preserveSymlinksRequired:n}},yA=t=>`${t.name}@${t.reference}`,vj=t=>{let e=new Map;for(let[r,o]of t.entries())if(!o.dirList){let a=e.get(o.locator);a||(a={target:o.target,linkType:o.linkType,locations:[],aliases:o.aliases},e.set(o.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((o,a)=>{let n=o.split(K.delimiter).length,u=a.split(K.delimiter).length;return a===o?0:n!==u?u-n:a>o?1:-1});return e},$we=(t,e)=>{let r=G.isVirtualLocator(t)?G.devirtualizeLocator(t):t,o=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e;return G.areLocatorsEqual(r,o)},Bj=(t,e,r,o)=>{if(t.linkType!=="SOFT")return!1;let a=Ae.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return K.contains(o,a)===null},XIt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let o=Ae.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},u=t.getDependencyTreeRoots(),A=new Map,p=new Set,h=(D,x)=>{let C=yA(D);if(p.has(C))return;p.add(C);let T=t.getPackageInformation(D);if(T){let L=x?yA(x):"";if(yA(D)!==L&&T.linkType==="SOFT"&&!D.reference.startsWith("link:")&&!Bj(T,D,t,o)){let U=e1e(T,D,t);(!A.get(U)||D.reference.startsWith("workspace:"))&&A.set(U,D)}for(let[U,J]of T.packageDependencies)J!==null&&(T.packagePeers.has(U)||h(t.getLocator(U,J),D))}};for(let D of u)h(D,null);let E=o.split(K.sep);for(let D of A.values()){let x=t.getPackageInformation(D),T=Ae.toPortablePath(x.packageLocation.slice(0,-1)).split(K.sep).slice(E.length),L=n;for(let U of T){let J=L.children.get(U);J||(J={children:new Map},L.children.set(U,J)),L=J}L.workspaceLocator=D}let w=(D,x)=>{if(D.workspaceLocator){let C=yA(x),T=a.get(C);T||(T=new Set,a.set(C,T)),T.add(D.workspaceLocator)}for(let C of D.children.values())w(C,D.workspaceLocator||x)};for(let D of n.children.values())w(D,n.workspaceLocator);return a},ZIt=(t,e)=>{let r=[],o=!1,a=new Map,n=XIt(t),u=t.getPackageInformation(t.topLevel);if(u===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=t.findPackageLocator(u.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=Ae.toPortablePath(u.packageLocation.slice(0,-1)),h={name:A.name,identName:A.name,reference:A.reference,peerNames:u.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,w=(x,C)=>`${yA(C)}:${x}`,D=(x,C,T,L,U,J,te,le)=>{let ce=w(x,T),ue=E.get(ce),Ie=!!ue;!Ie&&T.name===A.name&&T.reference===A.reference&&(ue=h,E.set(ce,h));let he=Bj(C,T,t,p);if(!ue){let fe=0;he?fe=2:C.linkType==="SOFT"&&T.name.endsWith(jh)&&(fe=1),ue={name:x,identName:T.name,reference:T.reference,dependencies:new Set,peerNames:fe===1?new Set:C.packagePeers,dependencyKind:fe},E.set(ce,ue)}let De;if(he?De=2:U.linkType==="SOFT"?De=1:De=0,ue.hoistPriority=Math.max(ue.hoistPriority||0,De),le&&!he){let fe=yA({name:L.identName,reference:L.reference}),ie=a.get(fe)||new Set;a.set(fe,ie),ie.add(ue.name)}let Ee=new Map(C.packageDependencies);if(e.project){let fe=e.project.workspacesByCwd.get(Ae.toPortablePath(C.packageLocation.slice(0,-1)));if(fe){let ie=new Set([...Array.from(fe.manifest.peerDependencies.values(),Z=>G.stringifyIdent(Z)),...Array.from(fe.manifest.peerDependenciesMeta.keys())]);for(let Z of ie)Ee.has(Z)||(Ee.set(Z,J.get(Z)||null),ue.peerNames.add(Z))}}let g=yA({name:T.name.replace(jh,""),reference:T.reference}),me=n.get(g);if(me)for(let fe of me)Ee.set(`${fe.name}${jh}`,fe.reference);(C!==U||C.linkType!=="SOFT"||!he&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(te)))&&L.dependencies.add(ue);let Ce=T!==A&&C.linkType==="SOFT"&&!T.name.endsWith(jh)&&!he;if(!Ie&&!Ce){let fe=new Map;for(let[ie,Z]of Ee)if(Z!==null){let Pe=t.getLocator(ie,Z),Re=t.getLocator(ie.replace(jh,""),Z),ht=t.getPackageInformation(Re);if(ht===null)throw new Error("Assertion failed: Expected the package to have been registered");let q=Bj(ht,Pe,t,p);if(e.validateExternalSoftLinks&&e.project&&q){ht.packageDependencies.size>0&&(o=!0);for(let[Ve,be]of ht.packageDependencies)if(be!==null){let tt=G.parseLocator(Array.isArray(be)?`${be[0]}@${be[1]}`:`${Ve}@${be}`);if(yA(tt)!==yA(Pe)){let He=Ee.get(Ve);if(He){let b=G.parseLocator(Array.isArray(He)?`${He[0]}@${He[1]}`:`${Ve}@${He}`);$we(b,tt)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(Pe.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${T.name}@${T.reference}`))} dependency ${G.prettyLocator(e.project.configuration,tt)} conflicts with parent dependency ${G.prettyLocator(e.project.configuration,b)}`})}else{let b=fe.get(Ve);if(b){let I=b.target,S=G.parseLocator(Array.isArray(I)?`${I[0]}@${I[1]}`:`${Ve}@${I}`);$we(S,tt)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(Pe.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${T.name}@${T.reference}`))} dependency ${G.prettyLocator(e.project.configuration,tt)} conflicts with dependency ${G.prettyLocator(e.project.configuration,S)} from sibling portal ${G.prettyIdent(e.project.configuration,G.parseIdent(b.portal.name))}`})}else fe.set(Ve,{target:tt.reference,portal:Pe})}}}}let nt=e.hoistingLimitsByCwd?.get(te),Ne=q?te:K.relative(p,Ae.toPortablePath(ht.packageLocation))||Bt.dot,Te=e.hoistingLimitsByCwd?.get(Ne);D(ie,ht,Pe,ue,C,Ee,Ne,nt==="dependencies"||Te==="dependencies"||Te==="workspaces")}}};return D(A.name,u,A,h,u,u.packageDependencies,Bt.dot,!1),{packageTree:h,hoistingLimits:a,errors:r,preserveSymlinksRequired:o}};function e1e(t,e,r){let o=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return Ae.toPortablePath(o||t.packageLocation)}function $It(t,e,r){let o=e.getLocator(t.name.replace(jh,""),t.reference),a=e.getPackageInformation(o);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:"SOFT",target:Ae.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:e1e(a,t,e)}}var ewt=(t,e,r)=>{let o=new Map,a=(E,w,D)=>{let{linkType:x,target:C}=$It(E,t,r);return{locator:yA(E),nodePath:w,target:C,linkType:x,aliases:D}},n=E=>{let[w,D]=E.split("/");return D?{scope:w,name:D}:{scope:null,name:w}},u=new Set,A=(E,w,D)=>{if(u.has(E))return;u.add(E);let x=Array.from(E.references).sort().join("#");for(let C of E.dependencies){let T=Array.from(C.references).sort().join("#");if(C.identName===E.identName.replace(jh,"")&&T===x)continue;let L=Array.from(C.references).sort(),U={name:C.identName,reference:L[0]},{name:J,scope:te}=n(C.name),le=te?[te,J]:[J],ce=K.join(w,Zwe),ue=K.join(ce,...le),Ie=`${D}/${U.name}`,he=a(U,D,L.slice(1)),De=!1;if(he.linkType==="SOFT"&&r.project){let Ee=r.project.workspacesByCwd.get(he.target.slice(0,-1));De=!!(Ee&&!Ee.manifest.name)}if(!C.name.endsWith(jh)&&!De){let Ee=o.get(ue);if(Ee){if(Ee.dirList)throw new Error(`Assertion failed: ${ue} cannot merge dir node with leaf node`);{let Ce=G.parseLocator(Ee.locator),fe=G.parseLocator(he.locator);if(Ee.linkType!==he.linkType)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different link types ${Ee.nodePath}/${G.stringifyLocator(Ce)} and ${D}/${G.stringifyLocator(fe)}`);if(Ce.identHash!==fe.identHash)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different idents ${Ee.nodePath}/${G.stringifyLocator(Ce)} and ${D}/s${G.stringifyLocator(fe)}`);he.aliases=[...he.aliases,...Ee.aliases,G.parseLocator(Ee.locator).reference]}}o.set(ue,he);let g=ue.split("/"),me=g.indexOf(Zwe);for(let Ce=g.length-1;me>=0&&Ce>me;Ce--){let fe=Ae.toPortablePath(g.slice(0,Ce).join(K.sep)),ie=g[Ce],Z=o.get(fe);if(!Z)o.set(fe,{dirList:new Set([ie])});else if(Z.dirList){if(Z.dirList.has(ie))break;Z.dirList.add(ie)}}}A(C,he.linkType==="SOFT"?he.target:ue,Ie)}},p=a({name:e.name,reference:Array.from(e.references)[0]},"",[]),h=p.target;return o.set(h,p),A(e,h,""),o};Ke();Ke();Pt();Pt();sA();Ol();var jj={};Kt(jj,{PnpInstaller:()=>pd,PnpLinker:()=>Yh,UnplugCommand:()=>QC,default:()=>kwt,getPnpPath:()=>Kh,jsInstallUtils:()=>CA,pnpUtils:()=>vv,quotePathIfNeeded:()=>M1e});Pt();var O1e=ve("url");Ke();Ke();Pt();Pt();var t1e={DEFAULT:{collapsed:!1,next:{"*":"DEFAULT"}},TOP_LEVEL:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA","*":"DEFAULT"}},FALLBACK_EXCLUSION_LIST:{collapsed:!1,next:{"*":"FALLBACK_EXCLUSION_ENTRIES"}},FALLBACK_EXCLUSION_ENTRIES:{collapsed:!0,next:{"*":"FALLBACK_EXCLUSION_DATA"}},FALLBACK_EXCLUSION_DATA:{collapsed:!0,next:{"*":"DEFAULT"}},PACKAGE_REGISTRY_DATA:{collapsed:!1,next:{"*":"PACKAGE_REGISTRY_ENTRIES"}},PACKAGE_REGISTRY_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_STORE_DATA"}},PACKAGE_STORE_DATA:{collapsed:!1,next:{"*":"PACKAGE_STORE_ENTRIES"}},PACKAGE_STORE_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_INFORMATION_DATA"}},PACKAGE_INFORMATION_DATA:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES","*":"DEFAULT"}},PACKAGE_DEPENDENCIES:{collapsed:!1,next:{"*":"PACKAGE_DEPENDENCY"}},PACKAGE_DEPENDENCY:{collapsed:!0,next:{"*":"DEFAULT"}}};function twt(t,e,r){let o="";o+="[";for(let a=0,n=t.length;a"u"||(A!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=JQ(p,h,e,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function iwt(t,e,r){let o=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{ +`;let u=0;for(let A=0,p=o.length;A"u"||(u!==0&&(n+=",",n+=` +`),n+=a,n+=JSON.stringify(h),n+=": ",n+=JQ(h,E,e,a).replace(/^ +/g,""),u+=1)}return u!==0&&(n+=` +`),n+=r,n+="}",n}function JQ(t,e,r,o){let{next:a}=t1e[r],n=a[t]||a["*"];return r1e(e,n,o)}function r1e(t,e,r){let{collapsed:o}=t1e[e];return Array.isArray(t)?o?twt(t,e,r):rwt(t,e,r):typeof t=="object"&&t!==null?o?nwt(t,e,r):iwt(t,e,r):JSON.stringify(t)}function n1e(t){return r1e(t,"TOP_LEVEL","")}function hv(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function swt(t){let e=new Map,r=hv(t.fallbackExclusionList||[],[({name:o,reference:a})=>o,({name:o,reference:a})=>a]);for(let{name:o,reference:a}of r){let n=e.get(o);typeof n>"u"&&e.set(o,n=new Set),n.add(a)}return Array.from(e).map(([o,a])=>[o,Array.from(a)])}function owt(t){return hv(t.fallbackPool||[],([e])=>e)}function awt(t){let e=[];for(let[r,o]of hv(t.packageRegistry,([a])=>a===null?"0":`1${a}`)){let a=[];e.push([r,a]);for(let[n,{packageLocation:u,packageDependencies:A,packagePeers:p,linkType:h,discardFromLookup:E}]of hv(o,([w])=>w===null?"0":`1${w}`)){let w=[];r!==null&&n!==null&&!A.has(r)&&w.push([r,n]);for(let[C,T]of hv(A.entries(),([L])=>L))w.push([C,T]);let D=p&&p.size>0?Array.from(p):void 0,x=E||void 0;a.push([n,{packageLocation:u,packageDependencies:w,packagePeers:D,linkType:h,discardFromLookup:x}])}}return e}function gv(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:swt(t),fallbackPool:owt(t),packageRegistryData:awt(t)}}var o1e=et(s1e());function a1e(t,e){return[t?`${t} +`:"",`/* eslint-disable */ +`,`// @ts-nocheck +`,`"use strict"; +`,` +`,e,` +`,(0,o1e.default)()].join("")}function lwt(t){return JSON.stringify(t,null,2)}function cwt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ +`)}'`}function uwt(t){return[`const RAW_RUNTIME_STATE = +`,`${cwt(n1e(t))}; + +`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); +`,`} +`].join("")}function Awt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,` const fs = require('fs'); +`,` const path = require('path'); +`,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(mr.pnpData)}); +`,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname}); +`,`} +`].join("")}function l1e(t){let e=gv(t),r=uwt(e);return a1e(t.shebang,r)}function c1e(t){let e=gv(t),r=Awt(),o=a1e(t.shebang,r);return{dataFile:lwt(e),loaderFile:o}}Pt();function Pj(t,{basePath:e}){let r=Ae.toPortablePath(e),o=K.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,u=new Map(t.packageRegistryData.map(([w,D])=>[w,new Map(D.map(([x,C])=>{if(w===null!=(x===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let T=C.discardFromLookup??!1,L={name:w,reference:x},U=n.get(C.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&T,T||(U.locator=L)):n.set(C.packageLocation,{locator:L,discardFromLookup:T});let J=null;return[x,{packageDependencies:new Map(C.packageDependencies),packagePeers:new Set(C.packagePeers),linkType:C.linkType,discardFromLookup:T,get packageLocation(){return J||(J=K.join(o,C.packageLocation))}}]}))])),A=new Map(t.fallbackExclusionList.map(([w,D])=>[w,new Set(D)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,E=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:A,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:u}}Pt();Pt();var tp=ve("module"),fd=ve("url"),Lj=ve("util");var Qo=ve("url");var p1e=et(ve("assert"));var Sj=Array.isArray,dv=JSON.stringify,mv=Object.getOwnPropertyNames,Ad=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),bj=(t,e)=>RegExp.prototype.exec.call(t,e),xj=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),Gh=(t,...e)=>String.prototype.endsWith.apply(t,e),kj=(t,...e)=>String.prototype.includes.apply(t,e),Qj=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),yv=(t,...e)=>String.prototype.indexOf.apply(t,e),u1e=(t,...e)=>String.prototype.replace.apply(t,e),Wh=(t,...e)=>String.prototype.slice.apply(t,e),EA=(t,...e)=>String.prototype.startsWith.apply(t,e),A1e=Map,f1e=JSON.parse;function Ev(t,e,r){return class extends r{constructor(...o){super(e(...o)),this.code=t,this.name=`${r.name} [${t}]`}}}var h1e=Ev("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),Fj=Ev("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),g1e=Ev("ERR_INVALID_PACKAGE_TARGET",(t,e,r,o=!1,a=void 0)=>{let n=typeof r=="string"&&!o&&r.length&&!EA(r,"./");return e==="."?((0,p1e.default)(o===!1),`Invalid "exports" main target ${dv(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${o?"imports":"exports"}" target ${dv(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),Cv=Ev("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),d1e=Ev("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var XQ=ve("url");function m1e(t,e){let r=Object.create(null);for(let o=0;oe):t+e}Iv(r,t,o,u,a)}bj(E1e,Wh(t,2))!==null&&Iv(r,t,o,u,a);let p=new URL(t,o),h=p.pathname,E=new URL(".",o).pathname;if(EA(h,E)||Iv(r,t,o,u,a),e==="")return p;if(bj(E1e,e)!==null){let w=n?u1e(r,"*",()=>e):r+e;hwt(w,o,u,a)}return n?new URL(xj(C1e,p.href,()=>e)):new URL(e,p)}function dwt(t){let e=+t;return`${e}`!==t?!1:e>=0&&e<4294967295}function kC(t,e,r,o,a,n,u,A){if(typeof e=="string")return gwt(e,r,o,t,a,n,u,A);if(Sj(e)){if(e.length===0)return null;let p;for(let h=0;hn?-1:n>a||r===-1?1:o===-1||t.length>e.length?-1:e.length>t.length?1:0}function mwt(t,e,r){if(typeof t=="string"||Sj(t))return!0;if(typeof t!="object"||t===null)return!1;let o=mv(t),a=!1,n=0;for(let u=0;u=h.length&&Gh(e,w)&&w1e(n,h)===1&&Qj(h,"*")===E&&(n=h,u=Wh(e,E,e.length-w.length))}}if(n){let p=r[n],h=kC(t,p,u,n,o,!0,!1,a);return h==null&&Rj(e,t,o),h}Rj(e,t,o)}function v1e({name:t,base:e,conditions:r,readFileSyncFn:o}){if(t==="#"||EA(t,"#/")||Gh(t,"/")){let u="is not a valid internal imports specifier name";throw new Fj(t,u,(0,Qo.fileURLToPath)(e))}let a,n=y1e(e,o);if(n.exists){a=(0,Qo.pathToFileURL)(n.pjsonPath);let u=n.imports;if(u)if(Ad(u,t)&&!kj(t,"*")){let A=kC(a,u[t],"",t,e,!1,!0,r);if(A!=null)return A}else{let A="",p,h=mv(u);for(let E=0;E=w.length&&Gh(t,x)&&w1e(A,w)===1&&Qj(w,"*")===D&&(A=w,p=Wh(t,D,t.length-x.length))}}if(A){let E=u[A],w=kC(a,E,p,A,e,!0,!0,r);if(w!=null)return w}}}pwt(t,a,e)}Pt();var Ewt=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ts(t,e,r={},o){o??=Ewt.has(t)?"MODULE_NOT_FOUND":t;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...a,value:o},pnpCode:{...a,value:t},data:{...a,value:r}})}function pu(t){return Ae.normalize(Ae.fromPortablePath(t))}var b1e=et(P1e());function x1e(t){return Cwt(),Nj[t]}var Nj;function Cwt(){Nj||(Nj={"--conditions":[],...S1e(Iwt()),...S1e(process.execArgv)})}function S1e(t){return(0,b1e.default)({"--conditions":[String],"-C":"--conditions"},{argv:t,permissive:!0})}function Iwt(){let t=[],e=wwt(process.env.NODE_OPTIONS||"",t);return t.length,e}function wwt(t,e){let r=[],o=!1,a=!0;for(let n=0;nparseInt(t,10)),k1e=Ha>19||Ha===19&&ep>=2||Ha===18&&ep>=13,tzt=Ha===20&&ep<6||Ha===19&&ep>=3,rzt=Ha>19||Ha===19&&ep>=6,nzt=Ha>=21||Ha===20&&ep>=10||Ha===18&&ep>=19,izt=Ha>=21||Ha===20&&ep>=10||Ha===18&&ep>=20,szt=Ha>=22;function Q1e(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>Ae.fromPortablePath(qs.resolveVirtual(Ae.toPortablePath(e)))),k1e)process.send({"watch:require":t});else for(let e of t)process.send({"watch:require":e})}function Oj(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,o=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,u=/\/$/,A=/^\.{0,2}\//,p={name:null,reference:null},h=[],E=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Ne of["react-scripts","gatsby"]){let Te=t.packageRegistry.get(Ne);if(Te)for(let ke of Te.keys()){if(ke===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Ne,reference:ke})}}let{ignorePattern:w,packageRegistry:D,packageLocatorsByLocations:x}=t;function C(Ne,Te){return{fn:Ne,args:Te,error:null,result:null}}function T(Ne){let Te=process.stderr?.hasColors?.()??process.stdout.isTTY,ke=(tt,He)=>`\x1B[${tt}m${He}\x1B[0m`,Ve=Ne.error;console.error(Ve?ke("31;1",`\u2716 ${Ne.error?.message.replace(/\n.*/s,"")}`):ke("33;1","\u203C Resolution")),Ne.args.length>0&&console.error();for(let tt of Ne.args)console.error(` ${ke("37;1","In \u2190")} ${(0,Lj.inspect)(tt,{colors:Te,compact:!0})}`);Ne.result&&(console.error(),console.error(` ${ke("37;1","Out \u2192")} ${(0,Lj.inspect)(Ne.result,{colors:Te,compact:!0})}`));let be=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(be.length>0){console.error();for(let tt of be)console.error(` ${ke("38;5;244",tt)}`)}console.error()}function L(Ne,Te){if(e.allowDebug===!1)return Te;if(Number.isFinite(o)){if(o>=2)return(...ke)=>{let Ve=C(Ne,ke);try{return Ve.result=Te(...ke)}catch(be){throw Ve.error=be}finally{T(Ve)}};if(o>=1)return(...ke)=>{try{return Te(...ke)}catch(Ve){let be=C(Ne,ke);throw be.error=Ve,T(be),Ve}}}return Te}function U(Ne){let Te=g(Ne);if(!Te)throw ts("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Te}function J(Ne){if(Ne.name===null)return!0;for(let Te of t.dependencyTreeRoots)if(Te.name===Ne.name&&Te.reference===Ne.reference)return!0;return!1}let te=new Set(["node","require",...x1e("--conditions")]);function le(Ne,Te=te,ke){let Ve=fe(K.join(Ne,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(Ve===null)throw ts("INTERNAL",`The locator that owns the "${Ne}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:be}=U(Ve),tt=K.join(be,mr.manifest);if(!e.fakeFs.existsSync(tt))return null;let He=JSON.parse(e.fakeFs.readFileSync(tt,"utf8"));if(He.exports==null)return null;let b=K.contains(be,Ne);if(b===null)throw ts("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");b!=="."&&!A.test(b)&&(b=`./${b}`);try{let I=B1e({packageJSONUrl:(0,fd.pathToFileURL)(Ae.fromPortablePath(tt)),packageSubpath:b,exports:He.exports,base:ke?(0,fd.pathToFileURL)(Ae.fromPortablePath(ke)):null,conditions:Te});return Ae.toPortablePath((0,fd.fileURLToPath)(I))}catch(I){throw ts("EXPORTS_RESOLUTION_FAILED",I.message,{unqualifiedPath:pu(Ne),locator:Ve,pkgJson:He,subpath:pu(b),conditions:Te},I.code)}}function ce(Ne,Te,{extensions:ke}){let Ve;try{Te.push(Ne),Ve=e.fakeFs.statSync(Ne)}catch{}if(Ve&&!Ve.isDirectory())return e.fakeFs.realpathSync(Ne);if(Ve&&Ve.isDirectory()){let be;try{be=JSON.parse(e.fakeFs.readFileSync(K.join(Ne,mr.manifest),"utf8"))}catch{}let tt;if(be&&be.main&&(tt=K.resolve(Ne,be.main)),tt&&tt!==Ne){let He=ce(tt,Te,{extensions:ke});if(He!==null)return He}}for(let be=0,tt=ke.length;be{let b=JSON.stringify(He.name);if(Ve.has(b))return;Ve.add(b);let I=me(He);for(let S of I)if(U(S).packagePeers.has(Ne))be(S);else{let R=ke.get(S.name);typeof R>"u"&&ke.set(S.name,R=new Set),R.add(S.reference)}};be(Te);let tt=[];for(let He of[...ke.keys()].sort())for(let b of[...ke.get(He)].sort())tt.push({name:He,reference:b});return tt}function fe(Ne,{resolveIgnored:Te=!1,includeDiscardFromLookup:ke=!1}={}){if(he(Ne)&&!Te)return null;let Ve=K.relative(t.basePath,Ne);Ve.match(n)||(Ve=`./${Ve}`),Ve.endsWith("/")||(Ve=`${Ve}/`);do{let be=x.get(Ve);if(typeof be>"u"||be.discardFromLookup&&!ke){Ve=Ve.substring(0,Ve.lastIndexOf("/",Ve.length-2)+1);continue}return be.locator}while(Ve!=="");return null}function ie(Ne){try{return e.fakeFs.readFileSync(Ae.toPortablePath(Ne),"utf8")}catch(Te){if(Te.code==="ENOENT")return;throw Te}}function Z(Ne,Te,{considerBuiltins:ke=!0}={}){if(Ne.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(Ne==="pnpapi")return Ae.toPortablePath(e.pnpapiResolution);if(ke&&(0,tp.isBuiltin)(Ne))return null;let Ve=pu(Ne),be=Te&&pu(Te);if(Te&&he(Te)&&(!K.isAbsolute(Ne)||fe(Ne)===null)){let b=Ie(Ne,Te);if(b===!1)throw ts("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) + +Require request: "${Ve}" +Required by: ${be} +`,{request:Ve,issuer:be});return Ae.toPortablePath(b)}let tt,He=Ne.match(a);if(He){if(!Te)throw ts("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ve,issuer:be});let[,b,I]=He,S=fe(Te);if(!S){let Fe=Ie(Ne,Te);if(Fe===!1)throw ts("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). + +Require path: "${Ve}" +Required by: ${be} +`,{request:Ve,issuer:be});return Ae.toPortablePath(Fe)}let R=U(S).packageDependencies.get(b),z=null;if(R==null&&S.name!==null){let Fe=t.fallbackExclusionList.get(S.name);if(!Fe||!Fe.has(S.reference)){for(let Et=0,qt=h.length;EtJ(lt))?X=ts("MISSING_PEER_DEPENDENCY",`${S.name} tried to access ${b} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${S.name}@${S.reference} (via ${be}) +${Fe.map(lt=>`Ancestor breaking the chain: ${lt.name}@${lt.reference} +`).join("")} +`,{request:Ve,issuer:be,issuerLocator:Object.assign({},S),dependencyName:b,brokenAncestors:Fe}):X=ts("MISSING_PEER_DEPENDENCY",`${S.name} tried to access ${b} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${S.name}@${S.reference} (via ${be}) + +${Fe.map(lt=>`Ancestor breaking the chain: ${lt.name}@${lt.reference} +`).join("")} +`,{request:Ve,issuer:be,issuerLocator:Object.assign({},S),dependencyName:b,brokenAncestors:Fe})}else R===void 0&&(!ke&&(0,tp.isBuiltin)(Ne)?J(S)?X=ts("UNDECLARED_DEPENDENCY",`Your application tried to access ${b}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${b} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${be} +`,{request:Ve,issuer:be,dependencyName:b}):X=ts("UNDECLARED_DEPENDENCY",`${S.name} tried to access ${b}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${b} isn't otherwise declared in ${S.name}'s dependencies, this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${be} +`,{request:Ve,issuer:be,issuerLocator:Object.assign({},S),dependencyName:b}):J(S)?X=ts("UNDECLARED_DEPENDENCY",`Your application tried to access ${b}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${be} +`,{request:Ve,issuer:be,dependencyName:b}):X=ts("UNDECLARED_DEPENDENCY",`${S.name} tried to access ${b}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${S.name}@${S.reference} (via ${be}) +`,{request:Ve,issuer:be,issuerLocator:Object.assign({},S),dependencyName:b}));if(R==null){if(z===null||X===null)throw X||new Error("Assertion failed: Expected an error to have been set");R=z;let Fe=X.message.replace(/\n.*/g,"");X.message=Fe,!E.has(Fe)&&o!==0&&(E.add(Fe),process.emitWarning(X))}let $=Array.isArray(R)?{name:R[0],reference:R[1]}:{name:b,reference:R},se=U($);if(!se.packageLocation)throw ts("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. + +Required package: ${$.name}@${$.reference}${$.name!==Ve?` (via "${Ve}")`:""} +Required by: ${S.name}@${S.reference} (via ${be}) +`,{request:Ve,issuer:be,dependencyLocator:Object.assign({},$)});let xe=se.packageLocation;I?tt=K.join(xe,I):tt=xe}else if(K.isAbsolute(Ne))tt=K.normalize(Ne);else{if(!Te)throw ts("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ve,issuer:be});let b=K.resolve(Te);Te.match(u)?tt=K.normalize(K.join(b,Ne)):tt=K.normalize(K.join(K.dirname(b),Ne))}return K.normalize(tt)}function Pe(Ne,Te,ke=te,Ve){if(n.test(Ne))return Te;let be=le(Te,ke,Ve);return be?K.normalize(be):Te}function Re(Ne,{extensions:Te=Object.keys(tp.Module._extensions)}={}){let ke=[],Ve=ce(Ne,ke,{extensions:Te});if(Ve)return K.normalize(Ve);{Q1e(ke.map(He=>Ae.fromPortablePath(He)));let be=pu(Ne),tt=fe(Ne);if(tt){let{packageLocation:He}=U(tt),b=!0;try{e.fakeFs.accessSync(He)}catch(I){if(I?.code==="ENOENT")b=!1;else{let S=(I?.message??I??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${S}). + +Missing package: ${tt.name}@${tt.reference} +Expected package location: ${pu(He)} +`,{unqualifiedPath:be,extensions:Te})}}if(!b){let I=He.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`${I} + +Missing package: ${tt.name}@${tt.reference} +Expected package location: ${pu(He)} +`,{unqualifiedPath:be,extensions:Te})}}throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. + +Source path: ${be} +${ke.map(He=>`Not found: ${pu(He)} +`).join("")}`,{unqualifiedPath:be,extensions:Te})}}function ht(Ne,Te,ke){if(!Te)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let Ve=v1e({name:Ne,base:(0,fd.pathToFileURL)(Ae.fromPortablePath(Te)),conditions:ke.conditions??te,readFileSyncFn:ie});if(Ve instanceof URL)return Re(Ae.toPortablePath((0,fd.fileURLToPath)(Ve)),{extensions:ke.extensions});if(Ve.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return q(Ve,Te,ke)}function q(Ne,Te,ke={}){try{if(Ne.startsWith("#"))return ht(Ne,Te,ke);let{considerBuiltins:Ve,extensions:be,conditions:tt}=ke,He=Z(Ne,Te,{considerBuiltins:Ve});if(Ne==="pnpapi")return He;if(He===null)return null;let b=()=>Te!==null?he(Te):!1,I=(!Ve||!(0,tp.isBuiltin)(Ne))&&!b()?Pe(Ne,He,tt,Te):He;return Re(I,{extensions:be})}catch(Ve){throw Object.hasOwn(Ve,"pnpCode")&&Object.assign(Ve.data,{request:pu(Ne),issuer:Te&&pu(Te)}),Ve}}function nt(Ne){let Te=K.normalize(Ne),ke=qs.resolveVirtual(Te);return ke!==Te?ke:null}return{VERSIONS:De,topLevel:Ee,getLocator:(Ne,Te)=>Array.isArray(Te)?{name:Te[0],reference:Te[1]}:{name:Ne,reference:Te},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Ne=[];for(let[Te,ke]of D)for(let Ve of ke.keys())Te!==null&&Ve!==null&&Ne.push({name:Te,reference:Ve});return Ne},getPackageInformation:Ne=>{let Te=g(Ne);if(Te===null)return null;let ke=Ae.fromPortablePath(Te.packageLocation);return{...Te,packageLocation:ke}},findPackageLocator:Ne=>fe(Ae.toPortablePath(Ne)),resolveToUnqualified:L("resolveToUnqualified",(Ne,Te,ke)=>{let Ve=Te!==null?Ae.toPortablePath(Te):null,be=Z(Ae.toPortablePath(Ne),Ve,ke);return be===null?null:Ae.fromPortablePath(be)}),resolveUnqualified:L("resolveUnqualified",(Ne,Te)=>Ae.fromPortablePath(Re(Ae.toPortablePath(Ne),Te))),resolveRequest:L("resolveRequest",(Ne,Te,ke)=>{let Ve=Te!==null?Ae.toPortablePath(Te):null,be=q(Ae.toPortablePath(Ne),Ve,ke);return be===null?null:Ae.fromPortablePath(be)}),resolveVirtual:L("resolveVirtual",Ne=>{let Te=nt(Ae.toPortablePath(Ne));return Te!==null?Ae.fromPortablePath(Te):null})}}Pt();var F1e=(t,e,r)=>{let o=gv(t),a=Pj(o,{basePath:e}),n=Ae.join(e,mr.pnpCjs);return Oj(a,{fakeFs:r,pnpapiResolution:n})};var Uj=et(T1e());Gt();var CA={};Kt(CA,{checkManifestCompatibility:()=>N1e,extractBuildRequest:()=>ZQ,getExtractHint:()=>_j,hasBindingGyp:()=>Hj});Ke();Pt();function N1e(t){return G.isPackageCompatible(t,Xi.getArchitectureSet())}function ZQ(t,e,r,{configuration:o}){let a=[];for(let n of["preinstall","install","postinstall"])e.manifest.scripts.has(n)&&a.push({type:0,script:n});return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&a.push({type:1,script:"node-gyp rebuild"}),a.length===0?null:t.linkType!=="HARD"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${G.prettyLocator(o,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:n=>n.reportInfoOnce(5,`${G.prettyLocator(o,t)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!o.get("enableScripts")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${G.prettyLocator(o,t)} lists build scripts, but all build scripts have been disabled.`)}:N1e(t)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${G.prettyLocator(o,t)} The ${Xi.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var vwt=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function _j(t){return t.packageFs.getExtractHint({relevantExtensions:vwt})}function Hj(t){let e=K.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var vv={};Kt(vv,{getUnpluggedPath:()=>Bv});Ke();Pt();function Bv(t,{configuration:e}){return K.resolve(e.get("pnpUnpluggedFolder"),G.slugifyLocator(t))}var Dwt=new Set([G.makeIdent(null,"open").identHash,G.makeIdent(null,"opn").identHash]),Yh=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let o=Kh(r.project).cjs;if(!ae.existsSync(o))throw new it(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=qe.getFactoryWithDefault(this.pnpCache,o,()=>qe.dynamicRequire(o,{cachingStrategy:qe.CachingStrategy.FsTime})),n={name:G.stringifyIdent(e),reference:e.reference},u=a.getPackageInformation(n);if(!u)throw new it(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return Ae.toPortablePath(u.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=Kh(r.project).cjs;if(!ae.existsSync(o))return null;let n=qe.getFactoryWithDefault(this.pnpCache,o,()=>qe.dynamicRequire(o,{cachingStrategy:qe.CachingStrategy.FsTime})).findPackageLocator(Ae.fromPortablePath(e));return n?G.makeLocator(G.parseIdent(n.name),n.reference):null}makeInstaller(e){return new pd(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},pd=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new qe.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}attachCustomData(e){this.customData=e}async installPackage(e,r,o){let a=G.stringifyIdent(e),n=e.reference,u=!!this.opts.project.tryWorkspaceByLocator(e),A=G.isVirtualLocator(e),p=e.peerDependencies.size>0&&!A,h=!p&&!u,E=!p&&e.linkType!=="SOFT",w,D;if(h||E){let te=A?G.devirtualizeLocator(e):e;w=this.customData.store.get(te.locatorHash),typeof w>"u"&&(w=await Pwt(r),e.linkType==="HARD"&&this.customData.store.set(te.locatorHash,w)),w.manifest.type==="module"&&(this.isESMLoaderRequired=!0),D=this.opts.project.getDependencyMeta(te,e.version)}let x=h?ZQ(e,w,D,{configuration:this.opts.project.configuration}):null,C=E?await this.unplugPackageIfNeeded(e,w,r,D,o):r.packageFs;if(K.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let T=K.resolve(C.getRealPath(),r.prefixPath),L=qj(this.opts.project.cwd,T),U=new Map,J=new Set;if(A){for(let te of e.peerDependencies.values())U.set(G.stringifyIdent(te),null),J.add(G.stringifyIdent(te));if(!u){let te=G.devirtualizeLocator(e);this.virtualTemplates.set(te.locatorHash,{location:qj(this.opts.project.cwd,qs.resolveVirtual(T)),locator:te})}}return qe.getMapWithDefault(this.packageRegistry,a).set(n,{packageLocation:L,packageDependencies:U,packagePeers:J,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:T,buildRequest:x}}async attachInternalDependencies(e,r){let o=this.getPackageInformation(e);for(let[a,n]of r){let u=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];o.packageDependencies.set(G.stringifyIdent(a),u)}}async attachExternalDependents(e,r){for(let o of r)this.getDiskInformation(o).packageDependencies.set(G.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=Kh(this.opts.project);if(this.isEsmEnabled()||await ae.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await ae.removePromise(e.cjs),await ae.removePromise(e.data),await ae.removePromise(e.esmLoader),await ae.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:E,location:w}of this.virtualTemplates.values())qe.getMapWithDefault(this.packageRegistry,G.stringifyIdent(E)).set(E.reference,{packageLocation:w,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),o=this.opts.project.workspaces.map(({anchoredLocator:E})=>({name:G.stringifyIdent(E),reference:E.reference})),a=r!=="none",n=[],u=new Map,A=qe.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),p=this.packageRegistry,h=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let E of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(E)&&n.push({name:G.stringifyIdent(E),reference:E.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:o,enableTopLevelFallback:a,fallbackExclusionList:n,fallbackPool:u,ignorePattern:A,packageRegistry:p,shebang:h}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=Kh(this.opts.project),o=await this.locateNodeModules(e.ignorePattern);if(o.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let n of o)await ae.removePromise(n)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let n=l1e(e);await ae.changeFilePromise(r.cjs,n,{automaticNewlines:!0,mode:493}),await ae.removePromise(r.data)}else{let{dataFile:n,loaderFile:u}=c1e(e);await ae.changeFilePromise(r.cjs,u,{automaticNewlines:!0,mode:493}),await ae.changeFilePromise(r.data,n,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await ae.changeFilePromise(r.esmLoader,(0,Uj.default)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await ae.removePromise(a);else for(let n of await ae.readdirPromise(a)){let u=K.resolve(a,n);this.unpluggedPaths.has(u)||await ae.removePromise(u)}}async locateNodeModules(e){let r=[],o=e?new RegExp(e):null;for(let a of this.opts.project.workspaces){let n=K.join(a.cwd,"node_modules");if(o&&o.test(K.relative(this.opts.project.cwd,a.cwd))||!ae.existsSync(n))continue;let u=await ae.readdirPromise(n,{withFileTypes:!0}),A=u.filter(p=>!p.isDirectory()||p.name===".bin"||!p.name.startsWith("."));if(A.length===u.length)r.push(n);else for(let p of A)r.push(K.join(n,p.name))}return r}async unplugPackageIfNeeded(e,r,o,a,n){return this.shouldBeUnplugged(e,r,a)?this.unplugPackage(e,o,n):o.packageFs}shouldBeUnplugged(e,r,o){return typeof o.unplugged<"u"?o.unplugged:Dwt.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(ZQ(e,r,o,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(e,r,o){let a=Bv(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new ju(a,{baseFs:r.packageFs,pathUtils:K}):(this.unpluggedPaths.add(a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let n=K.join(a,r.prefixPath,".ready");await ae.existsPromise(n)||(this.opts.project.storedBuildState.delete(e.locatorHash),await ae.mkdirPromise(a,{recursive:!0}),await ae.copyPromise(a,Bt.dot,{baseFs:r.packageFs,overwrite:!1}),await ae.writeFilePromise(n,""))})),new En(a))}getPackageInformation(e){let r=G.stringifyIdent(e),o=e.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${G.prettyIdent(this.opts.project.configuration,e)})`);let n=a.get(o);if(!n)throw new Error(`Assertion failed: The package information should have been available (for ${G.prettyLocator(this.opts.project.configuration,e)})`);return n}getDiskInformation(e){let r=qe.getMapWithDefault(this.packageRegistry,"@@disk"),o=qj(this.opts.project.cwd,e);return qe.getFactoryWithDefault(r,o,()=>({packageLocation:o,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function qj(t,e){let r=K.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function Pwt(t){let e=await _t.tryFind(t.prefixPath,{baseFs:t.packageFs})??new _t,r=new Set(["preinstall","install","postinstall"]);for(let o of e.scripts.keys())r.has(o)||e.scripts.delete(o);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:_j(t),hasBindingGyp:Hj(t)}}}Ke();Ke();Gt();var L1e=et(Xo());var QC=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=de.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=de.Rest()}static{this.paths=[["unplug"]]}static{this.usage=ot.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);if(r.get("nodeLinker")!=="pnp")throw new it("This command can only be used if the `nodeLinker` option is set to `pnp`");await o.restoreInstallState();let u=new Set(this.patterns),A=this.patterns.map(x=>{let C=G.parseDescriptor(x),T=C.range!=="unknown"?C:G.makeDescriptor(C,"*");if(!Ur.validRange(T.range))throw new it(`The range of the descriptor patterns must be a valid semver range (${G.prettyDescriptor(r,T)})`);return L=>{let U=G.stringifyIdent(L);return!L1e.default.isMatch(U,G.stringifyIdent(T))||L.version&&!Ur.satisfiesWithPrereleases(L.version,T.range)?!1:(u.delete(x),!0)}}),p=()=>{let x=[];for(let C of o.storedPackages.values())!o.tryWorkspaceByLocator(C)&&!G.isVirtualLocator(C)&&A.some(T=>T(C))&&x.push(C);return x},h=x=>{let C=new Set,T=[],L=(U,J)=>{if(C.has(U.locatorHash))return;let te=!!o.tryWorkspaceByLocator(U);if(!(J>0&&!this.recursive&&te)&&(C.add(U.locatorHash),!o.tryWorkspaceByLocator(U)&&A.some(le=>le(U))&&T.push(U),!(J>0&&!this.recursive)))for(let le of U.dependencies.values()){let ce=o.storedResolutions.get(le.descriptorHash);if(!ce)throw new Error("Assertion failed: The resolution should have been registered");let ue=o.storedPackages.get(ce);if(!ue)throw new Error("Assertion failed: The package should have been registered");L(ue,J+1)}};for(let U of x)L(U.anchoredPackage,0);return T},E,w;if(this.all&&this.recursive?(E=p(),w="the project"):this.all?(E=h(o.workspaces),w="any workspace"):(E=h([a]),w="this workspace"),u.size>1)throw new it(`Patterns ${pe.prettyList(r,u,pe.Type.CODE)} don't match any packages referenced by ${w}`);if(u.size>0)throw new it(`Pattern ${pe.prettyList(r,u,pe.Type.CODE)} doesn't match any packages referenced by ${w}`);E=qe.sortMap(E,x=>G.stringifyLocator(x));let D=await Nt.start({configuration:r,stdout:this.context.stdout,json:this.json},async x=>{for(let C of E){let T=C.version??"unknown",L=o.topLevelWorkspace.manifest.ensureDependencyMeta(G.makeDescriptor(C,T));L.unplugged=!0,x.reportInfo(0,`Will unpack ${G.prettyLocator(r,C)} to ${pe.pretty(r,Bv(C,{configuration:r}),pe.Type.PATH)}`),x.reportJson({locator:G.stringifyLocator(C),version:T})}await o.topLevelWorkspace.persistManifest(),this.json||x.reportSeparator()});return D.hasErrors()?D.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};var Kh=t=>({cjs:K.join(t.cwd,mr.pnpCjs),data:K.join(t.cwd,mr.pnpData),esmLoader:K.join(t.cwd,mr.pnpEsmLoader)}),M1e=t=>/\s/.test(t)?JSON.stringify(t):t;async function Swt(t,e,r){let o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,n=(e.NODE_OPTIONS??"").replace(o," ").replace(a," ").trim();if(t.configuration.get("nodeLinker")!=="pnp"){e.NODE_OPTIONS=n||void 0;return}let u=Kh(t),A=`--require ${M1e(Ae.fromPortablePath(u.cjs))}`;ae.existsSync(u.esmLoader)&&(A=`${A} --experimental-loader ${(0,O1e.pathToFileURL)(Ae.fromPortablePath(u.esmLoader)).href}`),ae.existsSync(u.cjs)&&(e.NODE_OPTIONS=n?`${A} ${n}`:A)}async function bwt(t,e){let r=Kh(t);e(r.cjs),e(r.data),e(r.esmLoader),e(t.configuration.get("pnpUnpluggedFolder"))}var xwt={hooks:{populateYarnPaths:bwt,setupScriptEnvironment:Swt},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:"STRING",default:"pnp"},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:"STRING",values:["junctions","symlinks"],default:"junctions"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"}},linkers:[Yh],commands:[QC]},kwt=xwt;var Y1e=et(j1e());Gt();var zj=et(ve("crypto")),K1e=et(ve("fs")),V1e=1,bi="node_modules",$Q=".bin",J1e=".yarn-state.yml",Kwt=1e3,Xj=(o=>(o.CLASSIC="classic",o.HARDLINKS_LOCAL="hardlinks-local",o.HARDLINKS_GLOBAL="hardlinks-global",o))(Xj||{}),Dv=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let o=r.project.tryWorkspaceByLocator(e);if(o)return o.cwd;let a=await qe.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await Jj(r.project,{unrollAliases:!0}));if(a===null)throw new it("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let n=a.locatorMap.get(G.stringifyLocator(e));if(!n){let p=new it(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw p.code="LOCATOR_NOT_INSTALLED",p}let u=n.locations.sort((p,h)=>p.split(K.sep).length-h.split(K.sep).length),A=K.join(r.project.configuration.startingCwd,bi);return u.find(p=>K.contains(A,p))||n.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=await qe.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await Jj(r.project,{unrollAliases:!0}));if(o===null)return null;let{locationRoot:a,segments:n}=eF(K.resolve(e),{skipPrefix:r.project.cwd}),u=o.locationTree.get(a);if(!u)return null;let A=u.locator;for(let p of n){if(u=u.children.get(p),!u)break;A=u.locator||A}return G.parseLocator(A)}makeInstaller(e){return new Vj(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},Vj=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}attachCustomData(e){this.customData=e}async installPackage(e,r){let o=K.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(e.locatorHash);if(typeof a>"u"&&(a=await Vwt(e,r),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,a)),!G.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let n=new Map,u=new Set;n.has(G.stringifyIdent(e))||n.set(G.stringifyIdent(e),e.reference);let A=e;if(G.isVirtualLocator(e)){A=G.devirtualizeLocator(e);for(let E of e.peerDependencies.values())n.set(G.stringifyIdent(E),null),u.add(G.stringifyIdent(E))}let p={packageLocation:`${Ae.fromPortablePath(o)}/`,packageDependencies:n,packagePeers:u,linkType:e.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:p});let h=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,h),{packageLocation:o,buildRequest:null}}async attachInternalDependencies(e,r){let o=this.localStore.get(e.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,n]of r){let u=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];o.pnpNode.packageDependencies.set(G.stringifyIdent(a),u)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new qs({baseFs:new iA({maxOpenFiles:80,readOnlyArchives:!0})}),r=await Jj(this.opts.project),o=this.opts.project.configuration.get("nmMode");(r===null||o!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:o,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(D=>{let x=this.opts.project.configuration.get("nmHoistingLimits");try{x=qe.validateEnum(fv,D.manifest.installConfig?.hoistingLimits??x)}catch{let T=G.prettyWorkspace(this.opts.project.configuration,D);this.opts.report.reportWarning(57,`${T}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(fv).join(", ")}, using default: "${x}"`)}return[D.relativeCwd,x]})),n=new Map(this.opts.project.workspaces.map(D=>{let x=this.opts.project.configuration.get("nmSelfReferences");return x=D.manifest.installConfig?.selfReferences??x,[D.relativeCwd,x]})),u={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(D,x)=>Array.isArray(x)?{name:x[0],reference:x[1]}:{name:D,reference:x},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(D=>{let x=D.anchoredLocator;return{name:G.stringifyIdent(x),reference:x.reference}}),getPackageInformation:D=>{let x=D.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:G.makeLocator(G.parseIdent(D.name),D.reference),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return C.pnpNode},findPackageLocator:D=>{let x=this.opts.project.tryWorkspaceByCwd(Ae.toPortablePath(D));if(x!==null){let C=x.anchoredLocator;return{name:G.stringifyIdent(C),reference:C.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:D=>Ae.fromPortablePath(qs.resolveVirtual(Ae.toPortablePath(D)))},{tree:A,errors:p,preserveSymlinksRequired:h}=pv(u,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:n});if(!A){for(let{messageName:D,text:x}of p)this.opts.report.reportError(D,x);return}let E=vj(A);await e1t(r,E,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async D=>{let x=G.parseLocator(D),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the slot to exist");return C.customPackageData.manifest}});let w=[];for(let[D,x]of E.entries()){if(Z1e(D))continue;let C=G.parseLocator(D),T=this.localStore.get(C.locatorHash);if(typeof T>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(T.pkg))continue;let L=CA.extractBuildRequest(T.pkg,T.customPackageData,T.dependencyMeta,{configuration:this.opts.project.configuration});L&&w.push({buildLocations:x.locations,locator:C,buildRequest:L})}return h&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${pe.pretty(this.opts.project.configuration,"--preserve-symlinks",pe.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:w}}};async function Vwt(t,e){let r=await _t.tryFind(e.prefixPath,{baseFs:e.packageFs})??new _t,o=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())o.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:CA.hasBindingGyp(e)}}}async function Jwt(t,e,r,o,{installChangedByUser:a}){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will +`,n+=`# cause your node_modules installation to become invalidated. +`,n+=` +`,n+=`__metadata: +`,n+=` version: ${V1e} +`,n+=` nmMode: ${o.value} +`;let u=Array.from(e.keys()).sort(),A=G.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let E of u){let w=e.get(E);n+=` +`,n+=`${JSON.stringify(E)}: +`,n+=` locations: +`;for(let D of w.locations){let x=K.contains(t.cwd,D);if(x===null)throw new Error(`Assertion failed: Expected the path to be within the project (${D})`);n+=` - ${JSON.stringify(x)} +`}if(w.aliases.length>0){n+=` aliases: +`;for(let D of w.aliases)n+=` - ${JSON.stringify(D)} +`}if(E===A&&r.size>0){n+=` bin: +`;for(let[D,x]of r){let C=K.contains(t.cwd,D);if(C===null)throw new Error(`Assertion failed: Expected the path to be within the project (${D})`);n+=` ${JSON.stringify(C)}: +`;for(let[T,L]of x){let U=K.relative(K.join(D,bi),L);n+=` ${JSON.stringify(T)}: ${JSON.stringify(U)} +`}}}}let p=t.cwd,h=K.join(p,bi,J1e);a&&await ae.removePromise(h),await ae.changeFilePromise(h,n,{automaticNewlines:!0})}async function Jj(t,{unrollAliases:e=!1}={}){let r=t.cwd,o=K.join(r,bi,J1e),a;try{a=await ae.statPromise(o)}catch{}if(!a)return null;let n=Ki(await ae.readFilePromise(o,"utf8"));if(n.__metadata.version>V1e)return null;let u=n.__metadata.nmMode||"classic",A=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let w=E.locations.map(x=>K.join(r,x)),D=E.bin;if(D)for(let[x,C]of Object.entries(D)){let T=K.join(r,Ae.toPortablePath(x)),L=qe.getMapWithDefault(p,T);for(let[U,J]of Object.entries(C))L.set(U,Ae.toPortablePath([T,bi,J].join(K.sep)))}if(A.set(h,{target:Bt.dot,linkType:"HARD",locations:w,aliases:E.aliases||[]}),e&&E.aliases)for(let x of E.aliases){let{scope:C,name:T}=G.parseLocator(h),L=G.makeLocator(G.makeIdent(C,T),x),U=G.stringifyLocator(L);A.set(U,{target:Bt.dot,linkType:"HARD",locations:w,aliases:[]})}}return{locatorMap:A,binSymlinks:p,locationTree:z1e(A,{skipPrefix:t.cwd}),nmMode:u,mtimeMs:a.mtimeMs}}var RC=async(t,e)=>{if(t.split(K.sep).indexOf(bi)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{let r;if(!e.innerLoop&&(r=await ae.lstatPromise(t),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!e.isWorkspaceDir)){await ae.unlinkPromise(t);return}let o=await ae.readdirPromise(t,{withFileTypes:!0});for(let n of o){let u=K.join(t,n.name);n.isDirectory()?(n.name!==bi||e&&e.innerLoop)&&await RC(u,{innerLoop:!0,contentsOnly:!1}):await ae.unlinkPromise(u)}let a=!e.innerLoop&&e.isWorkspaceDir&&r?.isSymbolicLink();!e.contentsOnly&&!a&&await ae.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},G1e=4,eF=(t,{skipPrefix:e})=>{let r=K.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let o=r.split(K.sep).filter(p=>p!==""),a=o.indexOf(bi),n=o.slice(0,a).join(K.sep),u=K.join(e,n),A=o.slice(a);return{locationRoot:u,segments:A}},z1e=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let o=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&K.contains(e,n.target)!==null){let A=qe.getFactoryWithDefault(r,n.target,o);A.locator=a,A.linkType=n.linkType}for(let u of n.locations){let{locationRoot:A,segments:p}=eF(u,{skipPrefix:e}),h=qe.getFactoryWithDefault(r,A,o);for(let E=0;E{if(process.platform==="win32"&&r==="junctions"){let o;try{o=await ae.lstatPromise(t)}catch{}if(!o||o.isDirectory()){await ae.symlinkPromise(t,e,"junction");return}}await ae.symlinkPromise(K.relative(K.dirname(e),t),e)};async function X1e(t,e,r){let o=K.join(t,`${zj.default.randomBytes(16).toString("hex")}.tmp`);try{await ae.writeFilePromise(o,r);try{await ae.linkPromise(o,e)}catch{}}finally{await ae.unlinkPromise(o)}}async function zwt({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:o,baseFs:a,nmMode:n}){if(r.kind==="file"){if(n.value==="hardlinks-global"&&o&&r.digest){let A=K.join(o,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await ae.statPromise(A);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs{await ae.mkdirPromise(t,{recursive:!0});let A=async(E=Bt.dot)=>{let w=K.join(e,E),D=await r.readdirPromise(w,{withFileTypes:!0}),x=new Map;for(let C of D){let T=K.join(E,C.name),L,U=K.join(w,C.name);if(C.isFile()){if(L={kind:"file",mode:(await r.lstatPromise(U)).mode},a.value==="hardlinks-global"){let J=await xn.checksumFile(U,{baseFs:r,algorithm:"sha1"});L.digest=J}}else if(C.isDirectory())L={kind:"directory"};else if(C.isSymbolicLink())L={kind:"symlink",symlinkTo:await r.readlinkPromise(U)};else throw new Error(`Unsupported file type (file: ${U}, mode: 0o${await r.statSync(U).mode.toString(8).padStart(6,"0")})`);if(x.set(T,L),C.isDirectory()&&T!==bi){let J=await A(T);for(let[te,le]of J)x.set(te,le)}}return x},p;if(a.value==="hardlinks-global"&&o&&u){let E=K.join(o,u.substring(0,2),`${u.substring(2)}.json`);try{p=new Map(Object.entries(JSON.parse(await ae.readFilePromise(E,"utf8"))))}catch{p=await A()}}else p=await A();let h=!1;for(let[E,w]of p){let D=K.join(e,E),x=K.join(t,E);if(w.kind==="directory")await ae.mkdirPromise(x,{recursive:!0});else if(w.kind==="file"){let C=w.mtimeMs;await zwt({srcPath:D,dstPath:x,entry:w,nmMode:a,baseFs:r,globalHardlinksStore:o}),w.mtimeMs!==C&&(h=!0)}else w.kind==="symlink"&&await Zj(K.resolve(K.dirname(x),w.symlinkTo),x,n)}if(a.value==="hardlinks-global"&&o&&h&&u){let E=K.join(o,u.substring(0,2),`${u.substring(2)}.json`);await ae.removePromise(E),await X1e(o,E,Buffer.from(JSON.stringify(Object.fromEntries(p))))}};function Zwt(t,e,r,o){let a=new Map,n=new Map,u=new Map,A=!1,p=(h,E,w,D,x)=>{let C=!0,T=K.join(h,E),L=new Set;if(E===bi||E.startsWith("@")){let J;try{J=ae.statSync(T)}catch{}C=!!J,J?J.mtimeMs>r?(A=!0,L=new Set(ae.readdirSync(T))):L=new Set(w.children.get(E).children.keys()):A=!0;let te=e.get(h);if(te){let le=K.join(h,bi,$Q),ce;try{ce=ae.statSync(le)}catch{}if(!ce)A=!0;else if(ce.mtimeMs>r){A=!0;let ue=new Set(ae.readdirSync(le)),Ie=new Map;n.set(h,Ie);for(let[he,De]of te)ue.has(he)&&Ie.set(he,De)}else n.set(h,te)}}else C=x.has(E);let U=w.children.get(E);if(C){let{linkType:J,locator:te}=U,le={children:new Map,linkType:J,locator:te};if(D.children.set(E,le),te){let ce=qe.getSetWithDefault(u,te);ce.add(T),u.set(te,ce)}for(let ce of U.children.keys())p(T,ce,U,le,L)}else U.locator&&o.storedBuildState.delete(G.parseLocator(U.locator).locatorHash)};for(let[h,E]of t){let{linkType:w,locator:D}=E,x={children:new Map,linkType:w,locator:D};if(a.set(h,x),D){let C=qe.getSetWithDefault(u,E.locator);C.add(h),u.set(E.locator,C)}E.children.has(bi)&&p(h,bi,E,x,new Set)}return{locationTree:a,binSymlinks:n,locatorLocations:u,installChangedByUser:A}}function Z1e(t){let e=G.parseDescriptor(t);return G.isVirtualDescriptor(e)&&(e=G.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function $wt(t,e,r,{loadManifest:o}){let a=new Map;for(let[A,{locations:p}]of t){let h=Z1e(A)?null:await o(A,p[0]),E=new Map;if(h)for(let[w,D]of h.bin){let x=K.join(p[0],D);D!==""&&ae.existsSync(x)&&E.set(w,D)}a.set(A,E)}let n=new Map,u=(A,p,h)=>{let E=new Map,w=K.contains(r,A);if(h.locator&&w!==null){let D=a.get(h.locator);for(let[x,C]of D){let T=K.join(A,Ae.toPortablePath(C));E.set(x,T)}for(let[x,C]of h.children){let T=K.join(A,x),L=u(T,T,C);L.size>0&&n.set(A,new Map([...n.get(A)||new Map,...L]))}}else for(let[D,x]of h.children){let C=u(K.join(A,D),p,x);for(let[T,L]of C)E.set(T,L)}return E};for(let[A,p]of e){let h=u(A,A,p);h.size>0&&n.set(A,new Map([...n.get(A)||new Map,...h]))}return n}var W1e=(t,e)=>{if(!t||!e)return t===e;let r=G.parseLocator(t);G.isVirtualLocator(r)&&(r=G.devirtualizeLocator(r));let o=G.parseLocator(e);return G.isVirtualLocator(o)&&(o=G.devirtualizeLocator(o)),G.areLocatorsEqual(r,o)};function $j(t){return K.join(t.get("globalFolder"),"store")}async function e1t(t,e,{baseFs:r,project:o,report:a,loadManifest:n,realLocatorChecksums:u}){let A=K.join(o.cwd,bi),{locationTree:p,binSymlinks:h,locatorLocations:E,installChangedByUser:w}=Zwt(t.locationTree,t.binSymlinks,t.mtimeMs,o),D=z1e(e,{skipPrefix:o.cwd}),x=[],C=async({srcDir:De,dstDir:Ee,linkType:g,globalHardlinksStore:me,nmMode:Ce,windowsLinkType:fe,packageChecksum:ie})=>{let Z=(async()=>{try{g==="SOFT"?(await ae.mkdirPromise(K.dirname(Ee),{recursive:!0}),await Zj(K.resolve(De),Ee,fe)):await Xwt(Ee,De,{baseFs:r,globalHardlinksStore:me,nmMode:Ce,windowsLinkType:fe,packageChecksum:ie})}catch(Pe){throw Pe.message=`While persisting ${De} -> ${Ee} ${Pe.message}`,Pe}finally{le.tick()}})().then(()=>x.splice(x.indexOf(Z),1));x.push(Z),x.length>G1e&&await Promise.race(x)},T=async(De,Ee,g)=>{let me=(async()=>{let Ce=async(fe,ie,Z)=>{try{Z.innerLoop||await ae.mkdirPromise(ie,{recursive:!0});let Pe=await ae.readdirPromise(fe,{withFileTypes:!0});for(let Re of Pe){if(!Z.innerLoop&&Re.name===$Q)continue;let ht=K.join(fe,Re.name),q=K.join(ie,Re.name);Re.isDirectory()?(Re.name!==bi||Z&&Z.innerLoop)&&(await ae.mkdirPromise(q,{recursive:!0}),await Ce(ht,q,{...Z,innerLoop:!0})):Ie.value==="hardlinks-local"||Ie.value==="hardlinks-global"?await ae.linkPromise(ht,q):await ae.copyFilePromise(ht,q,K1e.default.constants.COPYFILE_FICLONE)}}catch(Pe){throw Z.innerLoop||(Pe.message=`While cloning ${fe} -> ${ie} ${Pe.message}`),Pe}finally{Z.innerLoop||le.tick()}};await Ce(De,Ee,g)})().then(()=>x.splice(x.indexOf(me),1));x.push(me),x.length>G1e&&await Promise.race(x)},L=async(De,Ee,g)=>{if(g)for(let[me,Ce]of Ee.children){let fe=g.children.get(me);await L(K.join(De,me),Ce,fe)}else{Ee.children.has(bi)&&await RC(K.join(De,bi),{contentsOnly:!1});let me=K.basename(De)===bi&&p.has(K.join(K.dirname(De)));await RC(De,{contentsOnly:De===A,isWorkspaceDir:me})}};for(let[De,Ee]of p){let g=D.get(De);for(let[me,Ce]of Ee.children){if(me===".")continue;let fe=g&&g.children.get(me),ie=K.join(De,me);await L(ie,Ce,fe)}}let U=async(De,Ee,g)=>{if(g){W1e(Ee.locator,g.locator)||await RC(De,{contentsOnly:Ee.linkType==="HARD"});for(let[me,Ce]of Ee.children){let fe=g.children.get(me);await U(K.join(De,me),Ce,fe)}}else{Ee.children.has(bi)&&await RC(K.join(De,bi),{contentsOnly:!0});let me=K.basename(De)===bi&&D.has(K.join(K.dirname(De)));await RC(De,{contentsOnly:Ee.linkType==="HARD",isWorkspaceDir:me})}};for(let[De,Ee]of D){let g=p.get(De);for(let[me,Ce]of Ee.children){if(me===".")continue;let fe=g&&g.children.get(me);await U(K.join(De,me),Ce,fe)}}let J=new Map,te=[];for(let[De,Ee]of E)for(let g of Ee){let{locationRoot:me,segments:Ce}=eF(g,{skipPrefix:o.cwd}),fe=D.get(me),ie=me;if(fe){for(let Z of Ce)if(ie=K.join(ie,Z),fe=fe.children.get(Z),!fe)break;if(fe){let Z=W1e(fe.locator,De),Pe=e.get(fe.locator),Re=Pe.target,ht=ie,q=Pe.linkType;if(Z)J.has(Re)||J.set(Re,ht);else if(Re!==ht){let nt=G.parseLocator(fe.locator);G.isVirtualLocator(nt)&&(nt=G.devirtualizeLocator(nt)),te.push({srcDir:Re,dstDir:ht,linkType:q,realLocatorHash:nt.locatorHash})}}}}for(let[De,{locations:Ee}]of e.entries())for(let g of Ee){let{locationRoot:me,segments:Ce}=eF(g,{skipPrefix:o.cwd}),fe=p.get(me),ie=D.get(me),Z=me,Pe=e.get(De),Re=G.parseLocator(De);G.isVirtualLocator(Re)&&(Re=G.devirtualizeLocator(Re));let ht=Re.locatorHash,q=Pe.target,nt=g;if(q===nt)continue;let Ne=Pe.linkType;for(let Te of Ce)ie=ie.children.get(Te);if(!fe)te.push({srcDir:q,dstDir:nt,linkType:Ne,realLocatorHash:ht});else for(let Te of Ce)if(Z=K.join(Z,Te),fe=fe.children.get(Te),!fe){te.push({srcDir:q,dstDir:nt,linkType:Ne,realLocatorHash:ht});break}}let le=Ws.progressViaCounter(te.length),ce=a.reportProgress(le),ue=o.configuration.get("nmMode"),Ie={value:ue},he=o.configuration.get("winLinkType");try{let De=Ie.value==="hardlinks-global"?`${$j(o.configuration)}/v1`:null;if(De&&!await ae.existsPromise(De)){await ae.mkdirpPromise(De);for(let g=0;g<256;g++)await ae.mkdirPromise(K.join(De,g.toString(16).padStart(2,"0")))}for(let g of te)(g.linkType==="SOFT"||!J.has(g.srcDir))&&(J.set(g.srcDir,g.dstDir),await C({...g,globalHardlinksStore:De,nmMode:Ie,windowsLinkType:he,packageChecksum:u.get(g.realLocatorHash)||null}));await Promise.all(x),x.length=0;for(let g of te){let me=J.get(g.srcDir);g.linkType!=="SOFT"&&g.dstDir!==me&&await T(me,g.dstDir,{nmMode:Ie})}await Promise.all(x),await ae.mkdirPromise(A,{recursive:!0});let Ee=await $wt(e,D,o.cwd,{loadManifest:n});await t1t(h,Ee,o.cwd,he),await Jwt(o,e,Ee,Ie,{installChangedByUser:w}),ue=="hardlinks-global"&&Ie.value=="hardlinks-local"&&a.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{ce.stop()}}async function t1t(t,e,r,o){for(let a of t.keys()){if(K.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!e.has(a)){let n=K.join(a,bi,$Q);await ae.removePromise(n)}}for(let[a,n]of e){if(K.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let u=K.join(a,bi,$Q),A=t.get(a)||new Map;await ae.mkdirPromise(u,{recursive:!0});for(let p of A.keys())n.has(p)||(await ae.removePromise(K.join(u,p)),process.platform==="win32"&&await ae.removePromise(K.join(u,`${p}.cmd`)));for(let[p,h]of n){let E=A.get(p),w=K.join(u,p);E!==h&&(process.platform==="win32"?await(0,Y1e.default)(Ae.fromPortablePath(h),Ae.fromPortablePath(w),{createPwshFile:!1}):(await ae.removePromise(w),await Zj(h,w,o),K.contains(r,await ae.realpathPromise(h))!==null&&await ae.chmodPromise(h,493)))}}}Ke();Pt();sA();var Pv=class extends Yh{constructor(){super(...arguments);this.mode="loose"}makeInstaller(r){return new e5(r)}},e5=class extends pd{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(r){let o=new qs({baseFs:new iA({maxOpenFiles:80,readOnlyArchives:!0})}),a=F1e(r,this.opts.project.cwd,o),{tree:n,errors:u}=pv(a,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:w,text:D}of u)this.opts.report.reportError(w,D);return}let A=new Map;r.fallbackPool=A;let p=(w,D)=>{let x=G.parseLocator(D.locator),C=G.stringifyIdent(x);C===w?A.set(w,x.reference):A.set(w,[C,x.reference])},h=K.join(this.opts.project.cwd,mr.nodeModules),E=n.get(h);if(!(typeof E>"u")){if("target"in E)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let w of E.dirList){let D=K.join(h,w),x=n.get(D);if(typeof x>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in x)p(w,x);else for(let C of x.dirList){let T=K.join(D,C),L=n.get(T);if(typeof L>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in L)p(`${w}/${C}`,L);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var r1t={hooks:{cleanGlobalArtifacts:async t=>{let e=$j(t);await ae.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:"BOOLEAN",default:!0}},linkers:[Dv,Pv]},n1t=r1t;var $5={};Kt($5,{NpmHttpFetcher:()=>xv,NpmRemapResolver:()=>kv,NpmSemverFetcher:()=>rp,NpmSemverResolver:()=>Qv,NpmTagResolver:()=>Fv,default:()=>yvt,npmConfigUtils:()=>si,npmHttpUtils:()=>en,npmPublishUtils:()=>VC});Ke();var o2e=et(ni());var Zn="npm:";var en={};Kt(en,{AuthType:()=>n2e,customPackageError:()=>hd,del:()=>g1t,get:()=>gd,getIdentUrl:()=>tF,getPackageMetadata:()=>LC,handleInvalidAuthenticationError:()=>Vh,post:()=>p1t,put:()=>h1t});Ke();Ke();Pt();var i5=et(Q2()),t2e=et(c_()),r2e=et(ni());var si={};Kt(si,{RegistryType:()=>$1e,getAuditRegistry:()=>i1t,getAuthConfiguration:()=>n5,getDefaultRegistry:()=>Sv,getPublishRegistry:()=>s1t,getRegistryConfiguration:()=>e2e,getScopeConfiguration:()=>r5,getScopeRegistry:()=>TC,normalizeRegistry:()=>uc});var $1e=(o=>(o.AUDIT_REGISTRY="npmAuditRegistry",o.FETCH_REGISTRY="npmRegistryServer",o.PUBLISH_REGISTRY="npmPublishRegistry",o))($1e||{});function uc(t){return t.replace(/\/$/,"")}function i1t({configuration:t}){return Sv({configuration:t,type:"npmAuditRegistry"})}function s1t(t,{configuration:e}){return t.publishConfig?.registry?uc(t.publishConfig.registry):t.name?TC(t.name.scope,{configuration:e,type:"npmPublishRegistry"}):Sv({configuration:e,type:"npmPublishRegistry"})}function TC(t,{configuration:e,type:r="npmRegistryServer"}){let o=r5(t,{configuration:e});if(o===null)return Sv({configuration:e,type:r});let a=o.get(r);return a===null?Sv({configuration:e,type:r}):uc(a)}function Sv({configuration:t,type:e="npmRegistryServer"}){let r=t.get(e);return uc(r!==null?r:t.get("npmRegistryServer"))}function e2e(t,{configuration:e}){let r=e.get("npmRegistries"),o=uc(t),a=r.get(o);if(typeof a<"u")return a;let n=r.get(o.replace(/^[a-z]+:/,""));return typeof n<"u"?n:null}function r5(t,{configuration:e}){if(t===null)return null;let o=e.get("npmScopes").get(t);return o||null}function n5(t,{configuration:e,ident:r}){let o=r&&r5(r.scope,{configuration:e});return o?.get("npmAuthIdent")||o?.get("npmAuthToken")?o:e2e(t,{configuration:e})||e}var n2e=(a=>(a[a.NO_AUTH=0]="NO_AUTH",a[a.BEST_EFFORT=1]="BEST_EFFORT",a[a.CONFIGURATION=2]="CONFIGURATION",a[a.ALWAYS_AUTH=3]="ALWAYS_AUTH",a))(n2e||{});async function Vh(t,{attemptedAs:e,registry:r,headers:o,configuration:a}){if(nF(t))throw new Jt(41,"Invalid OTP token");if(t.originalError?.name==="HTTPError"&&t.originalError?.response.statusCode===401)throw new Jt(41,`Invalid authentication (${typeof e!="string"?`as ${await m1t(r,o,{configuration:a})}`:`attempted as ${e}`})`)}function hd(t,e){let r=t.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${pe.applyHyperlink(e,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function tF(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}var i2e=new Map,o1t=new Map;async function a1t(t){return await qe.getFactoryWithDefault(i2e,t,async()=>{let e=null;try{e=await ae.readJsonPromise(t)}catch{}return e})}async function l1t(t,e,{configuration:r,cached:o,registry:a,headers:n,version:u,...A}){return await qe.getFactoryWithDefault(o1t,t,async()=>await gd(tF(e),{...A,customErrorMessage:hd,configuration:r,registry:a,ident:e,headers:{...n,"If-None-Match":o?.etag,"If-Modified-Since":o?.lastModified},wrapNetworkRequest:async p=>async()=>{let h=await p();if(h.statusCode===304){if(o===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...h,body:o.metadata}}let E=c1t(JSON.parse(h.body.toString())),w={metadata:E,etag:h.headers.etag,lastModified:h.headers["last-modified"]};return i2e.set(t,Promise.resolve(w)),Promise.resolve().then(async()=>{let D=`${t}-${process.pid}.tmp`;await ae.mkdirPromise(K.dirname(D),{recursive:!0}),await ae.writeJsonPromise(D,w,{compact:!0}),await ae.renamePromise(D,t)}).catch(()=>{}),{...h,body:E}}}))}async function LC(t,{cache:e,project:r,registry:o,headers:a,version:n,...u}){let{configuration:A}=r;o=bv(A,{ident:t,registry:o});let p=A1t(A,o),h=K.join(p,`${G.slugifyIdent(t)}.json`),E=null;if(!r.lockfileNeedsRefresh&&(E=await a1t(h),E)){if(typeof n<"u"&&typeof E.metadata.versions[n]<"u")return E.metadata;if(A.get("enableOfflineMode")){let w=structuredClone(E.metadata),D=new Set;if(e){for(let C of Object.keys(w.versions)){let T=G.makeLocator(t,`npm:${C}`),L=e.getLocatorMirrorPath(T);(!L||!ae.existsSync(L))&&(delete w.versions[C],D.add(C))}let x=w["dist-tags"].latest;if(D.has(x)){let C=Object.keys(E.metadata.versions).sort(r2e.default.compare),T=C.indexOf(x);for(;D.has(C[T])&&T>=0;)T-=1;T>=0?w["dist-tags"].latest=C[T]:delete w["dist-tags"].latest}}return w}}return await l1t(h,t,{...u,configuration:A,cached:E,registry:o,headers:a,version:n})}var s2e=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function c1t(t){return{"dist-tags":t["dist-tags"],versions:Object.fromEntries(Object.entries(t.versions).map(([e,r])=>[e,(0,t2e.default)(r,s2e)]))}}var u1t=xn.makeHash(...s2e).slice(0,6);function A1t(t,e){let r=f1t(t),o=new URL(e);return K.join(r,u1t,o.hostname)}function f1t(t){return K.join(t.get("globalFolder"),"metadata/npm")}async function gd(t,{configuration:e,headers:r,ident:o,authType:a,registry:n,...u}){n=bv(e,{ident:o,registry:n}),o&&o.scope&&typeof a>"u"&&(a=1);let A=await rF(n,{authType:a,configuration:e,ident:o});A&&(r={...r,authorization:A});try{return await on.get(t.charAt(0)==="/"?`${n}${t}`:t,{configuration:e,headers:r,...u})}catch(p){throw await Vh(p,{registry:n,configuration:e,headers:r}),p}}async function p1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=bv(o,{ident:n,registry:A});let E=await rF(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...NC(p)});try{return await on.post(A+t,e,{configuration:o,headers:a,...h})}catch(w){if(!nF(w)||p)throw await Vh(w,{attemptedAs:r,registry:A,configuration:o,headers:a}),w;p=await s5(w,{configuration:o});let D={...a,...NC(p)};try{return await on.post(`${A}${t}`,e,{configuration:o,headers:D,...h})}catch(x){throw await Vh(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function h1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=bv(o,{ident:n,registry:A});let E=await rF(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...NC(p)});try{return await on.put(A+t,e,{configuration:o,headers:a,...h})}catch(w){if(!nF(w))throw await Vh(w,{attemptedAs:r,registry:A,configuration:o,headers:a}),w;p=await s5(w,{configuration:o});let D={...a,...NC(p)};try{return await on.put(`${A}${t}`,e,{configuration:o,headers:D,...h})}catch(x){throw await Vh(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function g1t(t,{attemptedAs:e,configuration:r,headers:o,ident:a,authType:n=3,registry:u,otp:A,...p}){u=bv(r,{ident:a,registry:u});let h=await rF(u,{authType:n,configuration:r,ident:a});h&&(o={...o,authorization:h}),A&&(o={...o,...NC(A)});try{return await on.del(u+t,{configuration:r,headers:o,...p})}catch(E){if(!nF(E)||A)throw await Vh(E,{attemptedAs:e,registry:u,configuration:r,headers:o}),E;A=await s5(E,{configuration:r});let w={...o,...NC(A)};try{return await on.del(`${u}${t}`,{configuration:r,headers:w,...p})}catch(D){throw await Vh(D,{attemptedAs:e,registry:u,configuration:r,headers:o}),D}}}function bv(t,{ident:e,registry:r}){if(typeof r>"u"&&e)return TC(e.scope,{configuration:t});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return uc(r)}async function rF(t,{authType:e=2,configuration:r,ident:o}){let a=n5(t,{configuration:r,ident:o}),n=d1t(a,e);if(!n)return null;let u=await r.reduceHook(A=>A.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:o});if(u)return u;if(a.get("npmAuthToken"))return`Bearer ${a.get("npmAuthToken")}`;if(a.get("npmAuthIdent")){let A=a.get("npmAuthIdent");return A.includes(":")?`Basic ${Buffer.from(A).toString("base64")}`:`Basic ${A}`}if(n&&e!==1)throw new Jt(33,"No authentication configured for request");return null}function d1t(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function m1t(t,e,{configuration:r}){if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(await on.get(new URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function s5(t,{configuration:e}){let r=t.originalError?.response.headers["npm-notice"];if(r&&(await Nt.start({configuration:e,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(0,r.replace(/(https?:\/\/\S+)/g,pe.pretty(e,"$1",pe.Type.URL))),!process.env.YARN_IS_TEST_ENV){let n=r.match(/open (https?:\/\/\S+)/i);if(n&&Xi.openUrl){let{openNow:u}=await(0,i5.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});u&&(await Xi.openUrl(n[1])||(a.reportSeparator(),a.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:o}=await(0,i5.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` +`),o}function nF(t){if(t.originalError?.name!=="HTTPError")return!1;try{return(t.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function NC(t){return{"npm-otp":t}}var xv=class{supports(e,r){if(!e.reference.startsWith(Zn))return!1;let{selector:o,params:a}=G.parseRange(e.reference);return!(!o2e.default.valid(o)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let{params:o}=G.parseRange(e.reference);if(o===null||typeof o.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await gd(o.__archiveUrl,{customErrorMessage:hd,configuration:r.project.configuration,ident:e});return await $i.convertToZip(a,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ke();var kv=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Zn)||!G.tryParseDescriptor(e.range.slice(Zn.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){let o=r.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Zn.length),!0));return r.resolver.getResolutionDependencies(o,r)}async getCandidates(e,r,o){let a=o.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Zn.length),!0));return await o.resolver.getCandidates(a,r,o)}async getSatisfying(e,r,o,a){let n=a.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Zn.length),!0));return a.resolver.getSatisfying(n,r,o,a)}resolve(e,r){throw new Error("Unreachable")}};Ke();Ke();var a2e=et(ni());var rp=class t{supports(e,r){if(!e.reference.startsWith(Zn))return!1;let o=new URL(e.reference);return!(!a2e.default.valid(o.pathname)||o.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o;try{o=await gd(t.getLocatorUrl(e),{customErrorMessage:hd,configuration:r.project.configuration,ident:e})}catch{o=await gd(t.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:hd,configuration:r.project.configuration,ident:e})}return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:o}){let a=TC(e.scope,{configuration:o}),n=t.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=Ur.clean(e.reference.slice(Zn.length));if(r===null)throw new Jt(10,"The npm semver resolver got selected, but the version isn't semver");return`${tF(e)}/-/${e.name}-${r}.tgz`}};Ke();Ke();Ke();var o5=et(ni());var iF=G.makeIdent(null,"node-gyp"),y1t=/\b(node-gyp|prebuild-install)\b/,Qv=class{supportsDescriptor(e,r){return e.range.startsWith(Zn)?!!Ur.validRange(e.range.slice(Zn.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(Zn))return!1;let{selector:o}=G.parseRange(e.reference);return!!o5.default.valid(o)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=Ur.validRange(e.range.slice(Zn.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(Zn.length)}`);let n=await LC(e,{cache:o.fetchOptions?.cache,project:o.project,version:o5.default.valid(a.raw)?a.raw:void 0}),u=qe.mapAndFilter(Object.keys(n.versions),h=>{try{let E=new Ur.SemVer(h);if(a.test(E))return E}catch{}return qe.mapAndFilter.skip}),A=u.filter(h=>!n.versions[h.raw].deprecated),p=A.length>0?A:u;return p.sort((h,E)=>-h.compare(E)),p.map(h=>{let E=G.makeLocator(e,`${Zn}${h.raw}`),w=n.versions[h.raw].dist.tarball;return rp.isConventionalTarballUrl(E,w,{configuration:o.project.configuration})?E:G.bindLocator(E,{__archiveUrl:w})})}async getSatisfying(e,r,o,a){let n=Ur.validRange(e.range.slice(Zn.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Zn.length)}`);return{locators:qe.mapAndFilter(o,p=>{if(p.identHash!==e.identHash)return qe.mapAndFilter.skip;let h=G.tryParseRange(p.reference,{requireProtocol:Zn});if(!h)return qe.mapAndFilter.skip;let E=new Ur.SemVer(h.selector);return n.test(E)?{locator:p,version:E}:qe.mapAndFilter.skip}).sort((p,h)=>-p.version.compare(h.version)).map(({locator:p})=>p),sorted:!0}}async resolve(e,r){let{selector:o}=G.parseRange(e.reference),a=Ur.clean(o);if(a===null)throw new Jt(10,"The npm semver resolver got selected, but the version isn't semver");let n=await LC(e,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(n,"versions"))throw new Jt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(n.versions,a))throw new Jt(16,`Registry failed to return reference "${a}"`);let u=new _t;if(u.load(n.versions[a]),!u.dependencies.has(iF.identHash)&&!u.peerDependencies.has(iF.identHash)){for(let A of u.scripts.values())if(A.match(y1t)){u.dependencies.set(iF.identHash,G.makeDescriptor(iF,"latest"));break}}return{...e,version:a,languageName:"node",linkType:"HARD",conditions:u.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(u.dependencies),peerDependencies:u.peerDependencies,dependenciesMeta:u.dependenciesMeta,peerDependenciesMeta:u.peerDependenciesMeta,bin:u.bin}}};Ke();Ke();var l2e=et(ni());var Fv=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Zn)||!xy.test(e.range.slice(Zn.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(Zn.length),n=await LC(e,{cache:o.fetchOptions?.cache,project:o.project});if(!Object.hasOwn(n,"dist-tags"))throw new Jt(15,'Registry returned invalid data - missing "dist-tags" field');let u=n["dist-tags"];if(!Object.hasOwn(u,a))throw new Jt(16,`Registry failed to return tag "${a}"`);let A=u[a],p=G.makeLocator(e,`${Zn}${A}`),h=n.versions[A].dist.tarball;return rp.isConventionalTarballUrl(p,h,{configuration:o.project.configuration})?[p]:[G.bindLocator(p,{__archiveUrl:h})]}async getSatisfying(e,r,o,a){let n=[];for(let u of o){if(u.identHash!==e.identHash)continue;let A=G.tryParseRange(u.reference,{requireProtocol:Zn});if(!(!A||!l2e.default.valid(A.selector))){if(A.params?.__archiveUrl){let p=G.makeRange({protocol:Zn,selector:A.selector,source:null,params:null}),[h]=await a.resolver.getCandidates(G.makeDescriptor(e,p),r,a);if(u.reference!==h.reference)continue}n.push(u)}}return{locators:n,sorted:!1}}async resolve(e,r){throw new Error("Unreachable")}};var VC={};Kt(VC,{getGitHead:()=>dvt,getPublishAccess:()=>XBe,getReadmeContent:()=>ZBe,makePublishBody:()=>gvt});Ke();Ke();Pt();var V5={};Kt(V5,{PackCommand:()=>KC,default:()=>XBt,packUtils:()=>BA});Ke();Ke();Ke();Pt();Gt();var BA={};Kt(BA,{genPackList:()=>SF,genPackStream:()=>K5,genPackageManifest:()=>UBe,hasPackScripts:()=>W5,prepareForPack:()=>Y5});Ke();Pt();var G5=et(Xo()),OBe=et(RBe()),MBe=ve("zlib"),_Bt=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],HBt=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function W5(t){return!!(hn.hasWorkspaceScript(t,"prepack")||hn.hasWorkspaceScript(t,"postpack"))}async function Y5(t,{report:e},r){await hn.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let o=K.join(t.cwd,_t.fileName);await ae.existsPromise(o)&&await t.manifest.loadFile(o,{baseFs:ae}),await r()}finally{await hn.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function K5(t,e){typeof e>"u"&&(e=await SF(t));let r=new Set;for(let n of t.manifest.publishConfig?.executableFiles??new Set)r.add(K.normalize(n));for(let n of t.manifest.bin.values())r.add(K.normalize(n));let o=OBe.default.pack();process.nextTick(async()=>{for(let n of e){let u=K.normalize(n),A=K.resolve(t.cwd,u),p=K.join("package",u),h=await ae.lstatPromise(A),E={name:p,mtime:new Date(Pi.SAFE_TIME*1e3)},w=r.has(u)?493:420,D,x,C=new Promise((L,U)=>{D=L,x=U}),T=L=>{L?x(L):D()};if(h.isFile()){let L;u==="package.json"?L=Buffer.from(JSON.stringify(await UBe(t),null,2)):L=await ae.readFilePromise(A),o.entry({...E,mode:w,type:"file"},L,T)}else h.isSymbolicLink()?o.entry({...E,mode:w,type:"symlink",linkname:await ae.readlinkPromise(A)},T):T(new Error(`Unsupported file type ${h.mode} for ${Ae.fromPortablePath(u)}`));await C}o.finalize()});let a=(0,MBe.createGzip)();return o.pipe(a),a}async function UBe(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function SF(t){let e=t.project,r=e.configuration,o={accept:[],reject:[]};for(let w of HBt)o.reject.push(w);for(let w of _Bt)o.accept.push(w);o.reject.push(r.get("rcFilename"));let a=w=>{if(w===null||!w.startsWith(`${t.cwd}/`))return;let D=K.relative(t.cwd,w),x=K.resolve(Bt.root,D);o.reject.push(x)};a(K.resolve(e.cwd,mr.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(w=>w.populateYarnPaths,e,w=>{a(w)});for(let w of e.workspaces){let D=K.relative(t.cwd,w.cwd);D!==""&&!D.match(/^(\.\.)?\//)&&o.reject.push(`/${D}`)}let n={accept:[],reject:[]},u=t.manifest.publishConfig?.main??t.manifest.main,A=t.manifest.publishConfig?.module??t.manifest.module,p=t.manifest.publishConfig?.browser??t.manifest.browser,h=t.manifest.publishConfig?.bin??t.manifest.bin;u!=null&&n.accept.push(K.resolve(Bt.root,u)),A!=null&&n.accept.push(K.resolve(Bt.root,A)),typeof p=="string"&&n.accept.push(K.resolve(Bt.root,p));for(let w of h.values())n.accept.push(K.resolve(Bt.root,w));if(p instanceof Map)for(let[w,D]of p.entries())n.accept.push(K.resolve(Bt.root,w)),typeof D=="string"&&n.accept.push(K.resolve(Bt.root,D));let E=t.manifest.files!==null;if(E){n.reject.push("/*");for(let w of t.manifest.files)_Be(n.accept,w,{cwd:Bt.root})}return await qBt(t.cwd,{hasExplicitFileList:E,globalList:o,ignoreList:n})}async function qBt(t,{hasExplicitFileList:e,globalList:r,ignoreList:o}){let a=[],n=new Gu(t),u=[[Bt.root,[o]]];for(;u.length>0;){let[A,p]=u.pop(),h=await n.lstatPromise(A);if(!NBe(A,{globalList:r,ignoreLists:h.isDirectory()?null:p}))if(h.isDirectory()){let E=await n.readdirPromise(A),w=!1,D=!1;if(!e||A!==Bt.root)for(let T of E)w=w||T===".gitignore",D=D||T===".npmignore";let x=D?await TBe(n,A,".npmignore"):w?await TBe(n,A,".gitignore"):null,C=x!==null?[x].concat(p):p;NBe(A,{globalList:r,ignoreLists:p})&&(C=[...p,{accept:[],reject:["**/*"]}]);for(let T of E)u.push([K.resolve(A,T),C])}else(h.isFile()||h.isSymbolicLink())&&a.push(K.relative(Bt.root,A))}return a.sort()}async function TBe(t,e,r){let o={accept:[],reject:[]},a=await t.readFilePromise(K.join(e,r),"utf8");for(let n of a.split(/\n/g))_Be(o.reject,n,{cwd:e});return o}function jBt(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=K.resolve(e,t)),r&&(t=`!${t}`),t}function _Be(t,e,{cwd:r}){let o=e.trim();o===""||o[0]==="#"||t.push(jBt(o,{cwd:r}))}function NBe(t,{globalList:e,ignoreLists:r}){let o=PF(t,e.accept);if(o!==0)return o===2;let a=PF(t,e.reject);if(a!==0)return a===1;if(r!==null)for(let n of r){let u=PF(t,n.accept);if(u!==0)return u===2;let A=PF(t,n.reject);if(A!==0)return A===1}return!1}function PF(t,e){let r=e,o=[];for(let a=0;a{await Y5(a,{report:p},async()=>{p.reportJson({base:Ae.fromPortablePath(a.cwd)});let h=await SF(a);for(let E of h)p.reportInfo(null,Ae.fromPortablePath(E)),p.reportJson({location:Ae.fromPortablePath(E)});if(!this.dryRun){let E=await K5(a,h),w=ae.createWriteStream(u);E.pipe(w),await new Promise(D=>{w.on("finish",D)})}}),this.dryRun||(p.reportInfo(0,`Package archive generated in ${pe.pretty(r,u,pe.Type.PATH)}`),p.reportJson({output:Ae.fromPortablePath(u)}))})).exitCode()}};function GBt(t,{workspace:e}){let r=t.replace("%s",WBt(e)).replace("%v",YBt(e));return Ae.toPortablePath(r)}function WBt(t){return t.manifest.name!==null?G.slugifyIdent(t.manifest.name):"package"}function YBt(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var KBt=["dependencies","devDependencies","peerDependencies"],VBt="workspace:",JBt=(t,e)=>{e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let o of KBt)for(let a of t.manifest.getForScope(o).values()){let n=r.tryWorkspaceByDescriptor(a),u=G.parseRange(a.range);if(u.protocol===VBt)if(n===null){if(r.tryWorkspaceByIdent(a)===null)throw new Jt(21,`${G.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;G.areDescriptorsEqual(a,n.anchoredDescriptor)||u.selector==="*"?A=n.manifest.version??"0.0.0":u.selector==="~"||u.selector==="^"?A=`${u.selector}${n.manifest.version??"0.0.0"}`:A=u.selector;let p=o==="dependencies"?G.makeDescriptor(a,"unknown"):null,h=p!==null&&t.manifest.ensureDependencyMeta(p).optional?"optionalDependencies":o;e[h][G.stringifyIdent(a)]=A}}},zBt={hooks:{beforeWorkspacePacking:JBt},commands:[KC]},XBt=zBt;var JBe=ve("crypto"),zBe=et(VBe());async function gvt(t,e,{access:r,tag:o,registry:a,gitHead:n}){let u=t.manifest.name,A=t.manifest.version,p=G.stringifyIdent(u),h=(0,JBe.createHash)("sha1").update(e).digest("hex"),E=zBe.default.fromData(e).toString(),w=r??XBe(t,u),D=await ZBe(t),x=await BA.genPackageManifest(t),C=`${p}-${A}.tgz`,T=new URL(`${uc(a)}/${p}/-/${C}`);return{_id:p,_attachments:{[C]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:p,access:w,"dist-tags":{[o]:A},versions:{[A]:{...x,_id:`${p}@${A}`,name:p,version:A,gitHead:n,dist:{shasum:h,integrity:E,tarball:T.toString()}}},readme:D}}async function dvt(t){try{let{stdout:e}=await Hr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}function XBe(t,e){let r=t.project.configuration;return t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?t.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):e.scope?"restricted":"public"}async function ZBe(t){let e=Ae.toPortablePath(`${t.cwd}/README.md`),r=t.manifest.name,a=`# ${G.stringifyIdent(r)} +`;try{a=await ae.readFilePromise(e,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var Z5={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},$Be={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},mvt={configuration:{...Z5,...$Be,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...Z5,...$Be}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:uc,valueDefinition:{description:"",type:"SHAPE",properties:{...Z5}}}},fetchers:[xv,rp],resolvers:[kv,Qv,Fv]},yvt=mvt;var lG={};Kt(lG,{NpmAuditCommand:()=>zC,NpmInfoCommand:()=>XC,NpmLoginCommand:()=>ZC,NpmLogoutCommand:()=>eI,NpmPublishCommand:()=>tI,NpmTagAddCommand:()=>nI,NpmTagListCommand:()=>rI,NpmTagRemoveCommand:()=>iI,NpmWhoamiCommand:()=>sI,default:()=>Dvt,npmAuditTypes:()=>Xv,npmAuditUtils:()=>bF});Ke();Ke();Gt();var iG=et(Xo());il();var Xv={};Kt(Xv,{Environment:()=>Jv,Severity:()=>zv});var Jv=(o=>(o.All="all",o.Production="production",o.Development="development",o))(Jv||{}),zv=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(zv||{});var bF={};Kt(bF,{allSeverities:()=>JC,getPackages:()=>nG,getReportTree:()=>tG,getSeverityInclusions:()=>eG,getTopLevelDependencies:()=>rG});Ke();var eve=et(ni());var JC=["info","low","moderate","high","critical"];function eG(t){if(typeof t>"u")return new Set(JC);let e=JC.indexOf(t),r=JC.slice(e);return new Set(r)}function tG(t){let e={},r={children:e};for(let[o,a]of qe.sortMap(Object.entries(t),n=>n[0]))for(let n of qe.sortMap(a,u=>`${u.id}`))e[`${o}/${n.id}`]={value:pe.tuple(pe.Type.IDENT,G.parseIdent(o)),children:{ID:typeof n.id<"u"&&{label:"ID",value:pe.tuple(pe.Type.ID,n.id)},Issue:{label:"Issue",value:pe.tuple(pe.Type.NO_HINT,n.title)},URL:typeof n.url<"u"&&{label:"URL",value:pe.tuple(pe.Type.URL,n.url)},Severity:{label:"Severity",value:pe.tuple(pe.Type.NO_HINT,n.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:pe.tuple(pe.Type.RANGE,n.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...n.versions].sort(eve.default.compare).map(u=>({value:pe.tuple(pe.Type.REFERENCE,u)}))},Dependents:{label:"Dependents",children:qe.sortMap(n.dependents,u=>G.stringifyLocator(u)).map(u=>({value:pe.tuple(pe.Type.LOCATOR,u)}))}}};return r}function rG(t,e,{all:r,environment:o}){let a=[],n=r?t.workspaces:[e],u=["all","production"].includes(o),A=["all","development"].includes(o);for(let p of n)for(let h of p.anchoredPackage.dependencies.values())(p.manifest.devDependencies.has(h.identHash)?!A:!u)||a.push({workspace:p,dependency:h});return a}function nG(t,e,{recursive:r}){let o=new Map,a=new Set,n=[],u=(A,p)=>{let h=t.storedResolutions.get(p.descriptorHash);if(typeof h>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(h))a.add(h);else return;let E=t.storedPackages.get(h);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");if(G.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let D=G.stringifyIdent(E),x=qe.getMapWithDefault(o,D);qe.getArrayWithDefault(x,E.version).push(A)}if(r)for(let D of E.dependencies.values())n.push([E,D])};for(let{workspace:A,dependency:p}of e)n.push([A.anchoredLocator,p]);for(;n.length>0;){let[A,p]=n.shift();u(A,p)}return o}var zC=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=de.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=de.String("--environment","all",{description:"Which environments to cover",validator:js(Jv)});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.noDeprecations=de.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"});this.severity=de.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:js(zv)});this.excludes=de.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=de.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}static{this.paths=[["npm","audit"]]}static{this.usage=ot.Usage({description:"perform a vulnerability audit against the installed packages",details:` + This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). + + For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. + + Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${JC.map(r=>`\`${r}\``).join(", ")}. + + If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. + + If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option. + + If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. + + To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why package\` to get more information as to who depends on them. + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let n=rG(o,a,{all:this.all,environment:this.environment}),u=nG(o,n,{recursive:this.recursive}),A=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes])),p=Object.create(null);for(let[L,U]of u)A.some(J=>iG.default.isMatch(L,J))||(p[L]=[...U.keys()]);let h=si.getAuditRegistry({configuration:r}),E,w=await pA.start({configuration:r,stdout:this.context.stdout},async()=>{let L=en.post("/-/npm/v1/security/advisories/bulk",p,{authType:en.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(p),async([te,le])=>{let ce=await en.getPackageMetadata(G.parseIdent(te),{project:o});return qe.mapAndFilter(le,ue=>{let{deprecated:Ie}=ce.versions[ue];return Ie?[te,ue,Ie]:qe.mapAndFilter.skip})})),J=await L;for(let[te,le,ce]of U.flat(1))Object.hasOwn(J,te)&&J[te].some(ue=>Ur.satisfiesWithPrereleases(le,ue.vulnerable_versions))||(J[te]??=[],J[te].push({id:`${te} (deprecation)`,title:ce.trim()||"This package has been deprecated.",severity:"moderate",vulnerable_versions:le}));E=J});if(w.hasErrors())return w.exitCode();let D=eG(this.severity),x=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores])),C=Object.create(null);for(let[L,U]of Object.entries(E)){let J=U.filter(te=>!iG.default.isMatch(`${te.id}`,x)&&D.has(te.severity));J.length>0&&(C[L]=J.map(te=>{let le=u.get(L);if(typeof le>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let ce=[...le.keys()].filter(Ie=>Ur.satisfiesWithPrereleases(Ie,te.vulnerable_versions)),ue=new Map;for(let Ie of ce)for(let he of le.get(Ie))ue.set(he.locatorHash,he);return{...te,versions:ce,dependents:[...ue.values()]}}))}let T=Object.keys(C).length>0;return T?(As.emitTree(tG(C),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async L=>{L.reportInfo(1,"No audit suggestions")}),T?1:0)}};Ke();Ke();Pt();Gt();var sG=et(ni()),oG=ve("util"),XC=class extends ut{constructor(){super(...arguments);this.fields=de.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=de.Rest()}static{this.paths=[["npm","info"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd),a=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],u=!1,A=await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async p=>{for(let h of this.packages){let E;if(h==="."){let le=o.topLevelWorkspace;if(!le.manifest.name)throw new it(`Missing ${pe.pretty(r,"name",pe.Type.CODE)} field in ${Ae.fromPortablePath(K.join(le.cwd,mr.manifest))}`);E=G.makeDescriptor(le.manifest.name,"unknown")}else E=G.parseDescriptor(h);let w=en.getIdentUrl(E),D=aG(await en.get(w,{configuration:r,ident:E,jsonResponse:!0,customErrorMessage:en.customPackageError})),x=Object.keys(D.versions).sort(sG.default.compareLoose),T=D["dist-tags"].latest||x[x.length-1],L=Ur.validRange(E.range);if(L){let le=sG.default.maxSatisfying(x,L);le!==null?T=le:(p.reportWarning(0,`Unmet range ${G.prettyRange(r,E.range)}; falling back to the latest version`),u=!0)}else Object.hasOwn(D["dist-tags"],E.range)?T=D["dist-tags"][E.range]:E.range!=="unknown"&&(p.reportWarning(0,`Unknown tag ${G.prettyRange(r,E.range)}; falling back to the latest version`),u=!0);let U=D.versions[T],J={...D,...U,version:T,versions:x},te;if(a!==null){te={};for(let le of a){let ce=J[le];if(typeof ce<"u")te[le]=ce;else{p.reportWarning(1,`The ${pe.pretty(r,le,pe.Type.CODE)} field doesn't exist inside ${G.prettyIdent(r,E)}'s information`),u=!0;continue}}}else this.json||(delete J.dist,delete J.readme,delete J.users),te=J;p.reportJson(te),this.json||n.push(te)}});oG.inspect.styles.name="cyan";for(let p of n)(p!==n[0]||u)&&this.context.stdout.write(` +`),this.context.stdout.write(`${(0,oG.inspect)(p,{depth:1/0,colors:!0,compact:!1})} +`);return A.exitCode()}};function aG(t){if(Array.isArray(t)){let e=[];for(let r of t)r=aG(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let o=aG(t[r]);o&&(e[r]=o)}return e}else return t||null}Ke();Ke();Gt();var tve=et(Q2()),ZC=class extends ut{constructor(){super(...arguments);this.scope=de.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=de.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=de.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}static{this.paths=[["npm","login"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=await xF({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Nt.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let u=await Ivt({configuration:r,registry:o,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),A=await Evt(o,u,r);return await Cvt(o,A,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};async function xF({scope:t,publish:e,configuration:r,cwd:o}){return t&&e?si.getScopeRegistry(t,{configuration:r,type:si.RegistryType.PUBLISH_REGISTRY}):t?si.getScopeRegistry(t,{configuration:r}):e?si.getPublishRegistry((await aE(r,o)).manifest,{configuration:r}):si.getDefaultRegistry({configuration:r})}async function Evt(t,e,r){let o=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,a={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},n={attemptedAs:e.name,configuration:r,registry:t,jsonResponse:!0,authType:en.AuthType.NO_AUTH};try{return(await en.put(o,a,n)).token}catch(E){if(!(E.originalError?.name==="HTTPError"&&E.originalError?.response.statusCode===409))throw E}let u={...n,authType:en.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},A=await en.get(o,u);for(let[E,w]of Object.entries(A))(!a[E]||E==="roles")&&(a[E]=w);let p=`${o}/-rev/${a._rev}`;return(await en.put(p,a,u)).token}async function Cvt(t,e,{alwaysAuth:r,scope:o}){let a=u=>A=>{let p=qe.isIndexableObject(A)?A:{},h=p[u],E=qe.isIndexableObject(h)?h:{};return{...p,[u]:{...E,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:e}}},n=o?{npmScopes:a(o)}:{npmRegistries:a(t)};return await ze.updateHomeConfiguration(n)}async function Ivt({configuration:t,registry:e,report:r,stdin:o,stdout:a}){r.reportInfo(0,`Logging in to ${pe.pretty(t,e,pe.Type.URL)}`);let n=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),r.reportSeparator(),t.env.YARN_IS_TEST_ENV)return{name:t.env.YARN_INJECT_NPM_USER||"",password:t.env.YARN_INJECT_NPM_PASSWORD||""};let u=await(0,tve.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a}]);return r.reportSeparator(),u}Ke();Ke();Gt();var $C=new Set(["npmAuthIdent","npmAuthToken"]),eI=class extends ut{constructor(){super(...arguments);this.scope=de.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=de.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=de.Boolean("-A,--all",!1,{description:"Logout of all registries"})}static{this.paths=[["npm","logout"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=async()=>{let n=await xF({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),u=await ze.find(this.context.cwd,this.context.plugins),A=G.makeIdent(this.scope??null,"pkg");return!si.getAuthConfiguration(n,{configuration:u,ident:A}).get("npmAuthToken")};return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{if(this.all&&(await Bvt(),n.reportInfo(0,"Successfully logged out from everything")),this.scope){await rve("npmScopes",this.scope),await o()?n.reportInfo(0,`Successfully logged out from ${this.scope}`):n.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let u=await xF({configuration:r,cwd:this.context.cwd,publish:this.publish});await rve("npmRegistries",u),await o()?n.reportInfo(0,`Successfully logged out from ${u}`):n.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};function wvt(t,e){let r=t[e];if(!qe.isIndexableObject(r))return!1;let o=new Set(Object.keys(r));if([...$C].every(n=>!o.has(n)))return!1;for(let n of $C)o.delete(n);if(o.size===0)return t[e]=void 0,!0;let a={...r};for(let n of $C)delete a[n];return t[e]=a,!0}async function Bvt(){let t=e=>{let r=!1,o=qe.isIndexableObject(e)?{...e}:{};o.npmAuthToken&&(delete o.npmAuthToken,r=!0);for(let a of Object.keys(o))wvt(o,a)&&(r=!0);if(Object.keys(o).length!==0)return r?o:e};return await ze.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function rve(t,e){return await ze.updateHomeConfiguration({[t]:r=>{let o=qe.isIndexableObject(r)?r:{};if(!Object.hasOwn(o,e))return r;let a=o[e],n=qe.isIndexableObject(a)?a:{},u=new Set(Object.keys(n));if([...$C].every(p=>!u.has(p)))return r;for(let p of $C)u.delete(p);if(u.size===0)return Object.keys(o).length===1?void 0:{...o,[e]:void 0};let A={};for(let p of $C)A[p]=void 0;return{...o,[e]:{...n,...A}}}})}Ke();Gt();var tI=class extends ut{constructor(){super(...arguments);this.access=de.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=de.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=de.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=de.String("--otp",{description:"The OTP token to use with the command"})}static{this.paths=[["npm","publish"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);if(a.manifest.private)throw new it("Private workspaces cannot be published");if(a.manifest.name===null||a.manifest.version===null)throw new it("Workspaces must have valid names and versions to be published on an external registry");await o.restoreInstallState();let n=a.manifest.name,u=a.manifest.version,A=si.getPublishRegistry(a.manifest,{configuration:r});return(await Nt.start({configuration:r,stdout:this.context.stdout},async h=>{if(this.tolerateRepublish)try{let E=await en.get(en.getIdentUrl(n),{configuration:r,registry:A,ident:n,jsonResponse:!0});if(!Object.hasOwn(E,"versions"))throw new Jt(15,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(E.versions,u)){h.reportWarning(0,`Registry already knows about version ${u}; skipping.`);return}}catch(E){if(E.originalError?.response?.statusCode!==404)throw E}await hn.maybeExecuteWorkspaceLifecycleScript(a,"prepublish",{report:h}),await BA.prepareForPack(a,{report:h},async()=>{let E=await BA.genPackList(a);for(let T of E)h.reportInfo(null,T);let w=await BA.genPackStream(a,E),D=await qe.bufferStream(w),x=await VC.getGitHead(a.cwd),C=await VC.makePublishBody(a,D,{access:this.access,tag:this.tag,registry:A,gitHead:x});await en.put(en.getIdentUrl(n),C,{configuration:r,registry:A,ident:n,otp:this.otp,jsonResponse:!0})}),h.reportInfo(0,"Package archive published")})).exitCode()}};Ke();Gt();var nve=et(ni());Ke();Pt();Gt();var rI=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=de.String({required:!1})}static{this.paths=[["npm","tag","list"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` + This command will list all tags of a package from the npm registry. + + If the package is not specified, Yarn will default to the current workspace. + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=G.parseIdent(this.package);else{if(!a)throw new or(o.cwd,this.context.cwd);if(!a.manifest.name)throw new it(`Missing 'name' field in ${Ae.fromPortablePath(K.join(a.cwd,mr.manifest))}`);n=a.manifest.name}let u=await Zv(n,r),p={children:qe.sortMap(Object.entries(u),([h])=>h).map(([h,E])=>({value:pe.tuple(pe.Type.RESOLUTION,{descriptor:G.makeDescriptor(n,h),locator:G.makeLocator(n,E)})}))};return As.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};async function Zv(t,e){let r=`/-/package${en.getIdentUrl(t)}/dist-tags`;return en.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:en.customPackageError})}var nI=class extends ut{constructor(){super(...arguments);this.package=de.String();this.tag=de.String()}static{this.paths=[["npm","tag","add"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);let n=G.parseDescriptor(this.package,!0),u=n.range;if(!nve.default.valid(u))throw new it(`The range ${pe.pretty(r,n.range,pe.Type.RANGE)} must be a valid semver version`);let A=si.getPublishRegistry(a.manifest,{configuration:r}),p=pe.pretty(r,n,pe.Type.IDENT),h=pe.pretty(r,u,pe.Type.RANGE),E=pe.pretty(r,this.tag,pe.Type.CODE);return(await Nt.start({configuration:r,stdout:this.context.stdout},async D=>{let x=await Zv(n,r);Object.hasOwn(x,this.tag)&&x[this.tag]===u&&D.reportWarning(0,`Tag ${E} is already set to version ${h}`);let C=`/-/package${en.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await en.put(C,u,{configuration:r,registry:A,ident:n,jsonRequest:!0,jsonResponse:!0}),D.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};Ke();Gt();var iI=class extends ut{constructor(){super(...arguments);this.package=de.String();this.tag=de.String()}static{this.paths=[["npm","tag","remove"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + This command will remove a tag from a package from the npm registry. + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]})}async execute(){if(this.tag==="latest")throw new it("The 'latest' tag cannot be removed.");let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);let n=G.parseIdent(this.package),u=si.getPublishRegistry(a.manifest,{configuration:r}),A=pe.pretty(r,this.tag,pe.Type.CODE),p=pe.pretty(r,n,pe.Type.IDENT),h=await Zv(n,r);if(!Object.hasOwn(h,this.tag))throw new it(`${A} is not a tag of package ${p}`);return(await Nt.start({configuration:r,stdout:this.context.stdout},async w=>{let D=`/-/package${en.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await en.del(D,{configuration:r,registry:u,ident:n,jsonResponse:!0}),w.reportInfo(0,`Tag ${A} removed from package ${p}`)})).exitCode()}};Ke();Ke();Gt();var sI=class extends ut{constructor(){super(...arguments);this.scope=de.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=de.Boolean("--publish",!1,{description:"Print username for the publish registry"})}static{this.paths=[["npm","whoami"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o;return this.scope&&this.publish?o=si.getScopeRegistry(this.scope,{configuration:r,type:si.RegistryType.PUBLISH_REGISTRY}):this.scope?o=si.getScopeRegistry(this.scope,{configuration:r}):this.publish?o=si.getPublishRegistry((await aE(r,this.context.cwd)).manifest,{configuration:r}):o=si.getDefaultRegistry({configuration:r}),(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let u;try{u=await en.get("/-/whoami",{configuration:r,registry:o,authType:en.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?G.makeIdent(this.scope,""):void 0})}catch(A){if(A.response?.statusCode===401||A.response?.statusCode===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw A}n.reportInfo(0,u.username)})).exitCode()}};var vvt={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[zC,XC,ZC,eI,tI,nI,rI,iI,sI]},Dvt=vvt;var gG={};Kt(gG,{PatchCommand:()=>AI,PatchCommitCommand:()=>uI,PatchFetcher:()=>nD,PatchResolver:()=>iD,default:()=>jvt,patchUtils:()=>Id});Ke();Ke();Pt();sA();var Id={};Kt(Id,{applyPatchFile:()=>QF,diffFolders:()=>pG,ensureUnpatchedDescriptor:()=>cG,ensureUnpatchedLocator:()=>RF,extractPackageToDisk:()=>fG,extractPatchFlags:()=>uve,isParentRequired:()=>AG,isPatchDescriptor:()=>FF,isPatchLocator:()=>i0,loadPatchFiles:()=>rD,makeDescriptor:()=>TF,makeLocator:()=>uG,makePatchHash:()=>hG,parseDescriptor:()=>eD,parseLocator:()=>tD,parsePatchFile:()=>$v,unpatchDescriptor:()=>_vt,unpatchLocator:()=>Hvt});Ke();Pt();Ke();Pt();var Pvt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function oI(t){return K.relative(Bt.root,K.resolve(Bt.root,Ae.toPortablePath(t)))}function Svt(t){let e=t.trim().match(Pvt);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var bvt=420,xvt=493;var ive=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),kvt=t=>({header:Svt(t),parts:[]}),Qvt={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function Fvt(t){let e=[],r=ive(),o="parsing header",a=null,n=null;function u(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function A(){u(),e.push(r),r=ive()}for(let p=0;p0?"patch":"mode change",J=null;switch(U){case"rename":{if(!E||!w)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:o,fromPath:oI(E),toPath:oI(w)}),J=w}break;case"file deletion":{let te=a||C;if(!te)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:o,hunk:L&&L[0]||null,path:oI(te),mode:kF(p),hash:D})}break;case"file creation":{let te=n||T;if(!te)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:o,hunk:L&&L[0]||null,path:oI(te),mode:kF(h),hash:x})}break;case"patch":case"mode change":J=T||n;break;default:qe.assertNever(U);break}J&&u&&A&&u!==A&&e.push({type:"mode change",semverExclusivity:o,path:oI(J),oldMode:kF(u),newMode:kF(A)}),J&&L&&L.length&&e.push({type:"patch",semverExclusivity:o,path:oI(J),hunks:L,beforeHash:D,afterHash:x})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function kF(t){let e=parseInt(t,8)&511;if(e!==bvt&&e!==xvt)throw new Error(`Unexpected file mode string: ${t}`);return e}function $v(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),Rvt(Fvt(e))}function Tvt(t){let e=0,r=0;for(let{type:o,lines:a}of t.parts)switch(o){case"context":r+=a.length,e+=a.length;break;case"deletion":e+=a.length;break;case"insertion":r+=a.length;break;default:qe.assertNever(o);break}if(e!==t.header.original.length||r!==t.header.patched.length){let o=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${o(t.header.original.length)} ${o(t.header.patched.length)} @@, got @@ ${o(e)} ${o(r)} @@)`)}}Ke();Pt();var aI=class extends Error{constructor(r,o){super(`Cannot apply hunk #${r+1}`);this.hunk=o}};async function lI(t,e,r){let o=await t.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await t.lutimesPromise(e,o.atime,o.mtime)}async function QF(t,{baseFs:e=new _n,dryRun:r=!1,version:o=null}={}){for(let a of t)if(!(a.semverExclusivity!==null&&o!==null&&!Ur.satisfiesWithPrereleases(o,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!e.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await lI(e,K.dirname(a.path),async()=>{await e.unlinkPromise(a.path)});break;case"rename":if(r){if(!e.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await lI(e,K.dirname(a.fromPath),async()=>{await lI(e,K.dirname(a.toPath),async()=>{await lI(e,a.fromPath,async()=>(await e.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(e.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let n=a.hunk?a.hunk.parts[0].lines.join(` +`)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":` +`):"";await e.mkdirpPromise(K.dirname(a.path),{chmod:493,utimes:[Pi.SAFE_TIME,Pi.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,Pi.SAFE_TIME,Pi.SAFE_TIME)}break;case"patch":await lI(e,a.path,async()=>{await Ovt(a,{baseFs:e,dryRun:r})});break;case"mode change":{let u=(await e.statPromise(a.path)).mode;if(sve(a.newMode)!==sve(u))continue;await lI(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:qe.assertNever(a);break}}function sve(t){return(t&64)>0}function ove(t){return t.replace(/\s+$/,"")}function Lvt(t,e){return ove(t)===ove(e)}async function Ovt({hunks:t,path:e},{baseFs:r,dryRun:o=!1}){let a=await r.statSync(e).mode,u=(await r.readFileSync(e,"utf8")).split(/\n/),A=[],p=0,h=0;for(let w of t){let D=Math.max(h,w.header.patched.start+p),x=Math.max(0,D-h),C=Math.max(0,u.length-D-w.header.original.length),T=Math.max(x,C),L=0,U=0,J=null;for(;L<=T;){if(L<=x&&(U=D-L,J=ave(w,u,U),J!==null)){L=-L;break}if(L<=C&&(U=D+L,J=ave(w,u,U),J!==null))break;L+=1}if(J===null)throw new aI(t.indexOf(w),w);A.push(J),p+=L,h=U+w.header.original.length}if(o)return;let E=0;for(let w of A)for(let D of w)switch(D.type){case"splice":{let x=D.index+E;u.splice(x,D.numToDelete,...D.linesToInsert),E+=D.linesToInsert.length-D.numToDelete}break;case"pop":u.pop();break;case"push":u.push(D.line);break;default:qe.assertNever(D);break}await r.writeFilePromise(e,u.join(` +`),{mode:a})}function ave(t,e,r){let o=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let u=e[r];if(u==null||!Lvt(u,n))return null;r+=1}a.type==="deletion"&&(o.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&o.push({type:"push",line:""}))}break;case"insertion":o.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&o.push({type:"pop"});break;default:qe.assertNever(a.type);break}return o}var Uvt=/^builtin<([^>]+)>$/;function cI(t,e){let{protocol:r,source:o,selector:a,params:n}=G.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(o===null)throw new Error("Patch locators must explicitly define their source");let u=a?a.split(/&/).map(E=>Ae.toPortablePath(E)):[],A=n&&typeof n.locator=="string"?G.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=e(o);return{parentLocator:A,sourceItem:h,patchPaths:u,sourceVersion:p}}function FF(t){return t.range.startsWith("patch:")}function i0(t){return t.reference.startsWith("patch:")}function eD(t){let{sourceItem:e,...r}=cI(t.range,G.parseDescriptor);return{...r,sourceDescriptor:e}}function tD(t){let{sourceItem:e,...r}=cI(t.reference,G.parseLocator);return{...r,sourceLocator:e}}function _vt(t){let{sourceItem:e}=cI(t.range,G.parseDescriptor);return e}function Hvt(t){let{sourceItem:e}=cI(t.reference,G.parseLocator);return e}function cG(t){if(!FF(t))return t;let{sourceItem:e}=cI(t.range,G.parseDescriptor);return e}function RF(t){if(!i0(t))return t;let{sourceItem:e}=cI(t.reference,G.parseLocator);return e}function lve({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:o,patchHash:a},n){let u=t!==null?{locator:G.stringifyLocator(t)}:{},A=typeof o<"u"?{version:o}:{},p=typeof a<"u"?{hash:a}:{};return G.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...A,...p,...u}})}function TF(t,{parentLocator:e,sourceDescriptor:r,patchPaths:o}){return G.makeDescriptor(t,lve({parentLocator:e,sourceItem:r,patchPaths:o},G.stringifyDescriptor))}function uG(t,{parentLocator:e,sourcePackage:r,patchPaths:o,patchHash:a}){return G.makeLocator(t,lve({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:o,patchHash:a},G.stringifyLocator))}function cve({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:o},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let u=a.match(Uvt);return u!==null?o(u[1]):a.startsWith("~/")?r(a.slice(2)):K.isAbsolute(a)?t(a):e(a)}function uve(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function AG(t){return cve({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function rD(t,e,r){let o=t!==null?await r.fetcher.fetch(t,r):null,a=o&&o.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,o.localPath)}:o;o&&o!==a&&o.releaseFs&&o.releaseFs();let n=await qe.releaseAfterUseAsync(async()=>await Promise.all(e.map(async u=>{let A=uve(u),p=await cve({onAbsolute:async h=>await ae.readFilePromise(h,"utf8"),onRelative:async h=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(K.join(a.prefixPath,h),"utf8")},onProject:async h=>await ae.readFilePromise(K.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},u);return{...A,source:p}})));for(let u of n)typeof u.source=="string"&&(u.source=u.source.replace(/\r\n?/g,` +`));return n}async function fG(t,{cache:e,project:r}){let o=r.storedPackages.get(t.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=RF(t),n=r.storedChecksums,u=new Ri,A=await ae.mktempPromise(),p=K.join(A,"source"),h=K.join(A,"user"),E=K.join(A,".yarn-patch.json"),w=r.configuration.makeFetcher(),D=[];try{let x,C;if(t.locatorHash===a.locatorHash){let T=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u});D.push(()=>T.releaseFs?.()),x=T,C=T}else x=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u}),D.push(()=>x.releaseFs?.()),C=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u}),D.push(()=>C.releaseFs?.());await Promise.all([ae.copyPromise(p,x.prefixPath,{baseFs:x.packageFs}),ae.copyPromise(h,C.prefixPath,{baseFs:C.packageFs}),ae.writeJsonPromise(E,{locator:G.stringifyLocator(t),version:o.version})])}finally{for(let x of D)x()}return ae.detachTemp(A),h}async function pG(t,e){let r=Ae.fromPortablePath(t).replace(/\\/g,"/"),o=Ae.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await Hr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,o],{cwd:Ae.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +The following error was reported by 'git': +${n}`);let u=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${qe.escapeRegExp(`/${u(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${qe.escapeRegExp(`/${u(o)}/`)}`,"g"),"$1/").replace(new RegExp(qe.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(qe.escapeRegExp(`${o}/`),"g"),"")}function hG(t,e){let r=[];for(let{source:o}of t){if(o===null)continue;let a=$v(o);for(let n of a){let{semverExclusivity:u,...A}=n;u!==null&&e!==null&&!Ur.satisfiesWithPrereleases(e,u)||r.push(JSON.stringify(A))}}return xn.makeHash(`${3}`,...r).slice(0,6)}Ke();function Ave(t,{configuration:e,report:r}){for(let o of t.parts)for(let a of o.lines)switch(o.type){case"context":r.reportInfo(null,` ${pe.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${pe.pretty(e,a,pe.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${pe.pretty(e,a,pe.Type.ADDED)}`);break;default:qe.assertNever(o.type)}}var nD=class{supports(e,r){return!!i0(e)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async patchPackage(e,r){let{parentLocator:o,sourceLocator:a,sourceVersion:n,patchPaths:u}=tD(e),A=await rD(o,u,r),p=await ae.mktempPromise(),h=K.join(p,"current.zip"),E=await r.fetcher.fetch(a,r),w=G.getIdentVendorPath(e),D=new Zi(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await qe.releaseAfterUseAsync(async()=>{await D.copyPromise(w,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),D.saveAndClose();for(let{source:x,optional:C}of A){if(x===null)continue;let T=new Zi(h,{level:r.project.configuration.get("compressionLevel")}),L=new En(K.resolve(Bt.root,w),{baseFs:T});try{await QF($v(x),{baseFs:L,version:n})}catch(U){if(!(U instanceof aI))throw U;let J=r.project.configuration.get("enableInlineHunks"),te=!J&&!C?" (set enableInlineHunks for details)":"",le=`${G.prettyLocator(r.project.configuration,e)}: ${U.message}${te}`,ce=ue=>{J&&Ave(U.hunk,{configuration:r.project.configuration,report:ue})};if(T.discardAndClose(),C){r.report.reportWarningOnce(66,le,{reportExtra:ce});continue}else throw new Jt(66,le,ce)}T.saveAndClose()}return new Zi(h,{level:r.project.configuration.get("compressionLevel")})}};Ke();var iD=class{supportsDescriptor(e,r){return!!FF(e)}supportsLocator(e,r){return!!i0(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){let{patchPaths:a}=eD(e);return a.every(n=>!AG(n))?e:G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:o}=eD(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(o)}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=eD(e),u=await rD(a,n,o.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=hG(u,A.version);return[uG(e,{parentLocator:a,sourcePackage:A,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:o}=tD(e);return{...await r.resolver.resolve(o,r),...e}}};Ke();Pt();Gt();var uI=class extends ut{constructor(){super(...arguments);this.save=de.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=de.String()}static{this.paths=[["patch-commit"]]}static{this.usage=ot.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let n=K.resolve(this.context.cwd,Ae.toPortablePath(this.patchFolder)),u=K.join(n,"../source"),A=K.join(n,"../.yarn-patch.json");if(!ae.existsSync(u))throw new it("The argument folder didn't get created by 'yarn patch'");let p=await pG(u,n),h=await ae.readJsonPromise(A),E=G.parseLocator(h.locator,!0);if(!o.storedPackages.has(E.locatorHash))throw new it("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(p);return}let w=r.get("patchFolder"),D=K.join(w,`${G.slugifyLocator(E)}.patch`);await ae.mkdirPromise(w,{recursive:!0}),await ae.writeFilePromise(D,p);let x=[],C=new Map;for(let T of o.storedPackages.values()){if(G.isVirtualLocator(T))continue;let L=T.dependencies.get(E.identHash);if(!L)continue;let U=G.ensureDevirtualizedDescriptor(L),J=cG(U),te=o.storedResolutions.get(J.descriptorHash);if(!te)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!o.storedPackages.get(te))throw new Error("Assertion failed: Expected the package to have been registered");let ce=o.tryWorkspaceByLocator(T);if(ce)x.push(ce);else{let ue=o.originalPackages.get(T.locatorHash);if(!ue)throw new Error("Assertion failed: Expected the original package to have been registered");let Ie=ue.dependencies.get(L.identHash);if(!Ie)throw new Error("Assertion failed: Expected the original dependency to have been registered");C.set(Ie.descriptorHash,Ie)}}for(let T of x)for(let L of _t.hardDependencies){let U=T.manifest[L].get(E.identHash);if(!U)continue;let J=TF(U,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[K.join(mr.home,K.relative(o.cwd,D))]});T.manifest[L].set(U.identHash,J)}for(let T of C.values()){let L=TF(T,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[K.join(mr.home,K.relative(o.cwd,D))]});o.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:G.stringifyIdent(L),description:T.range}},reference:L.range})}await o.persist()}};Ke();Pt();Gt();var AI=class extends ut{constructor(){super(...arguments);this.update=de.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=de.String()}static{this.paths=[["patch"]]}static{this.usage=ot.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let u=G.parseLocator(this.package);if(u.reference==="unknown"){let A=qe.mapAndFilter([...o.storedPackages.values()],p=>p.identHash!==u.identHash?qe.mapAndFilter.skip:G.isVirtualLocator(p)?qe.mapAndFilter.skip:i0(p)!==this.update?qe.mapAndFilter.skip:p);if(A.length===0)throw new it("No package found in the project for the given locator");if(A.length>1)throw new it(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${A.map(p=>` +- ${G.prettyLocator(r,p)}`).join("")}`);u=A[0]}if(!o.storedPackages.has(u.locatorHash))throw new it("No package found in the project for the given locator");await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=RF(u),h=await fG(u,{cache:n,project:o});A.reportJson({locator:G.stringifyLocator(p),path:Ae.fromPortablePath(h)});let E=this.update?" along with its current modifications":"";A.reportInfo(0,`Package ${G.prettyLocator(r,p)} got extracted with success${E}!`),A.reportInfo(0,`You can now edit the following folder: ${pe.pretty(r,Ae.fromPortablePath(h),"magenta")}`),A.reportInfo(0,`Once you are done run ${pe.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${Ae.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};var qvt={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[uI,AI],fetchers:[nD],resolvers:[iD]},jvt=qvt;var yG={};Kt(yG,{PnpmLinker:()=>sD,default:()=>Vvt});Ke();Pt();Gt();var sD=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new it(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new it(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new it(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let u=e,A=e;do{A=u,u=K.dirname(A);let p=a.locatorByPath.get(A);if(p)return p}while(u!==A);return null}makeInstaller(e){return new dG(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},dG=class{constructor(e){this.opts=e;this.asyncActions=new qe.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=$D(ae,{indexPath:K.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}async installPackage(e,r,o){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,o);case"HARD":return this.installPackageHard(e,r,o)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,o){let a=K.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?K.join(a,mr.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildRequest:null}}async installPackageHard(e,r,o){let a=Gvt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,G.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await ae.mkdirPromise(n,{recursive:!0}),await ae.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e,p={manifest:await _t.tryFind(r.prefixPath,{baseFs:r.packageFs})??new _t,misc:{hasBindingGyp:CA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(A,e.version),E=CA.extractBuildRequest(e,p,h,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:E}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!fve(e,{project:this.opts.project}))return;let o=this.customData.pathsByLocator.get(e.locatorHash);if(typeof o>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(e)})`);let{dependenciesLocation:a}=o;a&&this.asyncActions.reduce(e.locatorHash,async n=>{await ae.mkdirPromise(a,{recursive:!0});let u=await Wvt(a),A=new Map(u),p=[n],h=(w,D)=>{let x=D;fve(D,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),x=G.devirtualizeLocator(D));let C=this.customData.pathsByLocator.get(x.locatorHash);if(typeof C>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(D)})`);let T=G.stringifyIdent(w),L=K.join(a,T),U=K.relative(K.dirname(L),C.packageLocation),J=A.get(T);A.delete(T),p.push(Promise.resolve().then(async()=>{if(J){if(J.isSymbolicLink()&&await ae.readlinkPromise(L)===U)return;await ae.removePromise(L)}await ae.mkdirpPromise(K.dirname(L)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")==="junctions"?await ae.symlinkPromise(C.packageLocation,L,"junction"):await ae.symlinkPromise(U,L)}))},E=!1;for(let[w,D]of r)w.identHash===e.identHash&&(E=!0),h(w,D);!E&&!this.opts.project.tryWorkspaceByLocator(e)&&h(G.convertLocatorToDescriptor(e),e),p.push(Yvt(a,A)),await Promise.all(p)})}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=hve(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await ae.removePromise(e);else{let r;try{r=new Set(await ae.readdirPromise(e))}catch{r=new Set}for(let{dependenciesLocation:o}of this.customData.pathsByLocator.values()){if(!o)continue;let a=K.contains(e,o);if(a===null)continue;let[n]=a.split(K.sep);r.delete(n)}await Promise.all([...r].map(async o=>{await ae.removePromise(K.join(e,o))}))}return await this.asyncActions.wait(),await mG(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await mG(pve(this.opts.project)),{customData:this.customData}}};function pve(t){return K.join(t.cwd,mr.nodeModules)}function hve(t){return K.join(pve(t),".store")}function Gvt(t,{project:e}){let r=G.slugifyLocator(t),o=hve(e),a=K.join(o,r,"package"),n=K.join(o,r,mr.nodeModules);return{packageLocation:a,dependenciesLocation:n}}function fve(t,{project:e}){return!G.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function Wvt(t){let e=new Map,r=[];try{r=await ae.readdirPromise(t,{withFileTypes:!0})}catch(o){if(o.code!=="ENOENT")throw o}try{for(let o of r)if(!o.name.startsWith("."))if(o.name.startsWith("@")){let a=await ae.readdirPromise(K.join(t,o.name),{withFileTypes:!0});if(a.length===0)e.set(o.name,o);else for(let n of a)e.set(`${o.name}/${n.name}`,n)}else e.set(o.name,o)}catch(o){if(o.code!=="ENOENT")throw o}return e}async function Yvt(t,e){let r=[],o=new Set;for(let a of e.keys()){r.push(ae.removePromise(K.join(t,a)));let n=G.tryParseIdent(a)?.scope;n&&o.add(`@${n}`)}return Promise.all(r).then(()=>Promise.all([...o].map(a=>mG(K.join(t,a)))))}async function mG(t){try{await ae.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var Kvt={linkers:[sD]},Vvt=Kvt;var DG={};Kt(DG,{StageCommand:()=>fI,default:()=>sDt,stageUtils:()=>LF});Ke();Pt();Gt();Ke();Pt();var LF={};Kt(LF,{ActionType:()=>EG,checkConsensus:()=>NF,expandDirectory:()=>wG,findConsensus:()=>BG,findVcsRoot:()=>CG,genCommitMessage:()=>vG,getCommitPrefix:()=>gve,isYarnFile:()=>IG});Pt();var EG=(n=>(n[n.CREATE=0]="CREATE",n[n.DELETE=1]="DELETE",n[n.ADD=2]="ADD",n[n.REMOVE=3]="REMOVE",n[n.MODIFY=4]="MODIFY",n))(EG||{});async function CG(t,{marker:e}){do if(!ae.existsSync(K.join(t,e)))t=K.dirname(t);else return t;while(t!=="/");return null}function IG(t,{roots:e,names:r}){if(r.has(K.basename(t)))return!0;do if(!e.has(t))t=K.dirname(t);else return!0;while(t!=="/");return!1}function wG(t){let e=[],r=[t];for(;r.length>0;){let o=r.pop(),a=ae.readdirSync(o);for(let n of a){let u=K.resolve(o,n);ae.lstatSync(u).isDirectory()?r.push(u):e.push(u)}}return e}function NF(t,e){let r=0,o=0;for(let a of t)a!=="wip"&&(e.test(a)?r+=1:o+=1);return r>=o}function BG(t){let e=NF(t,/^(\w\(\w+\):\s*)?\w+s/),r=NF(t,/^(\w\(\w+\):\s*)?[A-Z]/),o=NF(t,/^\w\(\w+\):/);return{useThirdPerson:e,useUpperCase:r,useComponent:o}}function gve(t){return t.useComponent?"chore(yarn): ":""}var Jvt=new Map([[0,"create"],[1,"delete"],[2,"add"],[3,"remove"],[4,"update"]]);function vG(t,e){let r=gve(t),o=[],a=e.slice().sort((n,u)=>n[0]-u[0]);for(;a.length>0;){let[n,u]=a.shift(),A=Jvt.get(n);t.useUpperCase&&o.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),t.useThirdPerson&&(A+="s");let p=[u];for(;a.length>0&&a[0][0]===n;){let[,E]=a.shift();p.push(E)}p.sort();let h=p.shift();p.length===1?h+=" (and one other)":p.length>1&&(h+=` (and ${p.length} others)`),o.push(`${A} ${h}`)}return`${r}${o.join(", ")}`}var zvt="Commit generated via `yarn stage`",Xvt=11;async function dve(t){let{code:e,stdout:r}=await Hr.execvp("git",["log","-1","--pretty=format:%H"],{cwd:t});return e===0?r.trim():null}async function Zvt(t,e){let r=[],o=e.filter(h=>K.basename(h.path)==="package.json");for(let{action:h,path:E}of o){let w=K.relative(t,E);if(h===4){let D=await dve(t),{stdout:x}=await Hr.execvp("git",["show",`${D}:${w}`],{cwd:t,strict:!0}),C=await _t.fromText(x),T=await _t.fromFile(E),L=new Map([...T.dependencies,...T.devDependencies]),U=new Map([...C.dependencies,...C.devDependencies]);for(let[J,te]of U){let le=G.stringifyIdent(te),ce=L.get(J);ce?ce.range!==te.range&&r.push([4,`${le} to ${ce.range}`]):r.push([3,le])}for(let[J,te]of L)U.has(J)||r.push([2,G.stringifyIdent(te)])}else if(h===0){let D=await _t.fromFile(E);D.name?r.push([0,G.stringifyIdent(D.name)]):r.push([0,"a package"])}else if(h===1){let D=await dve(t),{stdout:x}=await Hr.execvp("git",["show",`${D}:${w}`],{cwd:t,strict:!0}),C=await _t.fromText(x);C.name?r.push([1,G.stringifyIdent(C.name)]):r.push([1,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:n}=await Hr.execvp("git",["log",`-${Xvt}`,"--pretty=format:%s"],{cwd:t}),u=a===0?n.split(/\n/g).filter(h=>h!==""):[],A=BG(u);return vG(A,r)}var $vt={0:[" A ","?? "],4:[" M "],1:[" D "]},eDt={0:["A "],4:["M "],1:["D "]},mve={async findRoot(t){return await CG(t,{marker:".git"})},async filterChanges(t,e,r,o){let{stdout:a}=await Hr.execvp("git",["status","-s"],{cwd:t,strict:!0}),n=a.toString().split(/\n/g),u=o?.staged?eDt:$vt;return[].concat(...n.map(p=>{if(p==="")return[];let h=p.slice(0,3),E=K.resolve(t,p.slice(3));if(!o?.staged&&h==="?? "&&p.endsWith("/"))return wG(E).map(w=>({action:0,path:w}));{let D=[0,4,1].find(x=>u[x].includes(h));return D!==void 0?[{action:D,path:E}]:[]}})).filter(p=>IG(p.path,{roots:e,names:r}))},async genCommitMessage(t,e){return await Zvt(t,e)},async makeStage(t,e){let r=e.map(o=>Ae.fromPortablePath(o.path));await Hr.execvp("git",["add","--",...r],{cwd:t,strict:!0})},async makeCommit(t,e,r){let o=e.map(a=>Ae.fromPortablePath(a.path));await Hr.execvp("git",["add","-N","--",...o],{cwd:t,strict:!0}),await Hr.execvp("git",["commit","-m",`${r} + +${zvt} +`,"--",...o],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(o=>Ae.fromPortablePath(o.path));await Hr.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var tDt=[mve],fI=class extends ut{constructor(){super(...arguments);this.commit=de.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=de.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=de.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=de.Boolean("-u,--update",!1,{hidden:!0})}static{this.paths=[["stage"]]}static{this.usage=ot.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd),{driver:a,root:n}=await rDt(o.cwd),u=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(w=>w.populateYarnPaths,o,w=>{u.push(w)});let A=new Set;for(let w of u)for(let D of nDt(n,w))A.add(D);let p=new Set([r.get("rcFilename"),mr.lockfile,mr.manifest]),h=await a.filterChanges(n,A,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E} +`);else for(let w of h)this.context.stdout.write(`${Ae.fromPortablePath(w.path)} +`);else if(this.reset){let w=await a.filterChanges(n,A,p,{staged:!0});w.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,w)}else h.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,h,E):(await a.makeStage(n,h),this.context.stdout.write(E))}};async function rDt(t){let e=null,r=null;for(let o of tDt)if((r=await o.findRoot(t))!==null){e=o;break}if(e===null||r===null)throw new it("No stage driver has been found for your current project");return{driver:e,root:r}}function nDt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let o;try{o=ae.statSync(e)}catch{break}if(o.isSymbolicLink())e=K.resolve(K.dirname(e),ae.readlinkSync(e));else break}return r}var iDt={commands:[fI]},sDt=iDt;var PG={};Kt(PG,{default:()=>pDt});Ke();Ke();Pt();var Cve=et(ni());Ke();var yve=et(L6()),oDt="e8e1bd300d860104bb8c58453ffa1eb4",aDt="OFCNCOG2CU",Eve=async(t,e)=>{let r=G.stringifyIdent(t),a=lDt(e).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}},lDt=t=>(0,yve.default)(aDt,oDt,{requester:{async send(r){try{let o=await on.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:o.body,isTimedOut:!1,status:o.statusCode}}catch(o){return{content:o.response.body,isTimedOut:!1,status:o.response.statusCode}}}}});var Ive=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,cDt=async(t,e,r,o)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??(ae.existsSync(K.join(t.cwd,"tsconfig.json"))||ae.existsSync(K.join(a.cwd,"tsconfig.json")))))return;let A=n.makeResolver(),p={project:a,resolver:A,report:new Ri};if(!await Eve(r,n))return;let E=Ive(r),w=G.parseRange(r.range).selector;if(!Ur.validRange(w)){let L=n.normalizeDependency(r),U=await A.getCandidates(L,{},p);w=G.parseRange(U[0].reference).selector}let D=Cve.default.coerce(w);if(D===null)return;let x=`${nu.Modifier.CARET}${D.major}`,C=G.makeDescriptor(G.makeIdent("types",E),x),T=qe.mapAndFind(a.workspaces,L=>{let U=L.manifest.dependencies.get(r.identHash)?.descriptorHash,J=L.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&J!==r.descriptorHash)return qe.mapAndFind.skip;let te=[];for(let le of _t.allDependencies){let ce=L.manifest[le].get(C.identHash);typeof ce>"u"||te.push([le,ce])}return te.length===0?qe.mapAndFind.skip:te});if(typeof T<"u")for(let[L,U]of T)t.manifest[L].set(U.identHash,U);else{try{let L=n.normalizeDependency(C);if((await A.getCandidates(L,{},p)).length===0)return}catch{return}t.manifest[nu.Target.DEVELOPMENT].set(C.identHash,C)}},uDt=async(t,e,r)=>{if(r.scope==="types")return;let{project:o}=t,{configuration:a}=o;if(!(a.get("tsEnableAutoTypes")??(ae.existsSync(K.join(t.cwd,"tsconfig.json"))||ae.existsSync(K.join(o.cwd,"tsconfig.json")))))return;let u=Ive(r),A=G.makeIdent("types",u);for(let p of _t.allDependencies)typeof t.manifest[p].get(A.identHash)>"u"||t.manifest[p].delete(A.identHash)},ADt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},fDt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:cDt,afterWorkspaceDependencyRemoval:uDt,beforeWorkspacePacking:ADt}},pDt=fDt;var QG={};Kt(QG,{VersionApplyCommand:()=>mI,VersionCheckCommand:()=>yI,VersionCommand:()=>EI,default:()=>FDt,versionUtils:()=>dI});Ke();Ke();Gt();var dI={};Kt(dI,{Decision:()=>hI,applyPrerelease:()=>Sve,applyReleases:()=>kG,applyStrategy:()=>MF,clearVersionFiles:()=>SG,getUndecidedDependentWorkspaces:()=>aD,getUndecidedWorkspaces:()=>OF,openVersionFile:()=>gI,requireMoreDecisions:()=>xDt,resolveVersionFiles:()=>oD,suggestStrategy:()=>xG,updateVersionFiles:()=>bG,validateReleaseDecision:()=>pI});Ke();Pt();Ol();Gt();var Pve=et(Dve()),PA=et(ni()),bDt=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,hI=(u=>(u.UNDECIDED="undecided",u.DECLINE="decline",u.MAJOR="major",u.MINOR="minor",u.PATCH="patch",u.PRERELEASE="prerelease",u))(hI||{});function pI(t){let e=PA.default.valid(t);return e||qe.validateEnum((0,Pve.default)(hI,"UNDECIDED"),t)}async function oD(t,{prerelease:e=null}={}){let r=new Map,o=t.configuration.get("deferredVersionFolder");if(!ae.existsSync(o))return r;let a=await ae.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=K.join(o,n),A=await ae.readFilePromise(u,"utf8"),p=Ki(A);for(let[h,E]of Object.entries(p.releases||{})){if(E==="decline")continue;let w=G.parseIdent(h),D=t.tryWorkspaceByIdent(w);if(D===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${K.basename(u)} references ${h})`);if(D.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${G.prettyLocator(t.configuration,D.anchoredLocator)})`);let x=D.manifest.raw.stableVersion??D.manifest.version,C=r.get(D),T=MF(x,pI(E));if(T===null)throw new Error(`Assertion failed: Expected ${x} to support being bumped via strategy ${E}`);let L=typeof C<"u"?PA.default.gt(T,C)?T:C:T;r.set(D,L)}}return e&&(r=new Map([...r].map(([n,u])=>[n,Sve(u,{current:n.manifest.version,prerelease:e})]))),r}async function SG(t){let e=t.configuration.get("deferredVersionFolder");ae.existsSync(e)&&await ae.removePromise(e)}async function bG(t,e){let r=new Set(e),o=t.configuration.get("deferredVersionFolder");if(!ae.existsSync(o))return;let a=await ae.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=K.join(o,n),A=await ae.readFilePromise(u,"utf8"),p=Ki(A),h=p?.releases;if(h){for(let E of Object.keys(h)){let w=G.parseIdent(E),D=t.tryWorkspaceByIdent(w);(D===null||r.has(D))&&delete p.releases[E]}Object.keys(p.releases).length>0?await ae.changeFilePromise(u,Pa(new Pa.PreserveOrdering(p))):await ae.unlinkPromise(u)}}}async function gI(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new it("This command can only be run from within a Yarn project");let o=await ra.fetchRoot(r.projectCwd),a=o!==null?await ra.fetchBase(o,{baseRefs:r.get("changesetBaseRefs")}):null,n=o!==null?await ra.fetchChangedFiles(o,{base:a.hash,project:t}):[],u=r.get("deferredVersionFolder"),A=n.filter(x=>K.contains(u,x)!==null);if(A.length>1)throw new it(`Your current branch contains multiple versioning files; this isn't supported: +- ${A.map(x=>Ae.fromPortablePath(x)).join(` +- `)}`);let p=new Set(qe.mapAndFilter(n,x=>{let C=t.tryWorkspaceByFilePath(x);return C===null?qe.mapAndFilter.skip:C}));if(A.length===0&&p.size===0&&!e)return null;let h=A.length===1?A[0]:K.join(u,`${xn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=ae.existsSync(h)?await ae.readFilePromise(h,"utf8"):"{}",w=Ki(E),D=new Map;for(let x of w.declined||[]){let C=G.parseIdent(x),T=t.getWorkspaceByIdent(C);D.set(T,"decline")}for(let[x,C]of Object.entries(w.releases||{})){let T=G.parseIdent(x),L=t.getWorkspaceByIdent(T);D.set(L,pI(C))}return{project:t,root:o,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(x=>x.manifest.version!==null)),releases:D,async saveAll(){let x={},C=[],T=[];for(let L of t.workspaces){if(L.manifest.version===null)continue;let U=G.stringifyIdent(L.anchoredLocator),J=D.get(L);J==="decline"?C.push(U):typeof J<"u"?x[U]=pI(J):p.has(L)&&T.push(U)}await ae.mkdirPromise(K.dirname(h),{recursive:!0}),await ae.changeFilePromise(h,Pa(new Pa.PreserveOrdering({releases:Object.keys(x).length>0?x:void 0,declined:C.length>0?C:void 0,undecided:T.length>0?T:void 0})))}}}function xDt(t){return OF(t).size>0||aD(t).length>0}function OF(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function aD(t,{include:e=new Set}={}){let r=[],o=new Map(qe.mapAndFilter([...t.releases],([n,u])=>u==="decline"?qe.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(qe.mapAndFilter([...t.releases],([n,u])=>u!=="decline"?qe.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||o.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let u of _t.hardDependencies)for(let A of n.manifest.getForScope(u).values()){let p=t.project.tryWorkspaceByDescriptor(A);p!==null&&o.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function xG(t,e){let r=PA.default.clean(e);for(let o of Object.values(hI))if(o!=="undecided"&&o!=="decline"&&PA.default.inc(t,o)===r)return o;return null}function MF(t,e){if(PA.default.valid(e))return e;if(t===null)throw new it(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!PA.default.valid(t))throw new it(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);let r=PA.default.inc(t,e);if(r===null)throw new it(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return r}function kG(t,e,{report:r}){let o=new Map;for(let a of t.workspaces)for(let n of _t.allDependencies)for(let u of a.manifest[n].values()){let A=t.tryWorkspaceByDescriptor(u);if(A===null||!e.has(A))continue;qe.getArrayWithDefault(o,A).push([a,n,u.identHash])}for(let[a,n]of e){let u=a.manifest.version;a.manifest.version=n,PA.default.prerelease(n)===null?delete a.manifest.raw.stableVersion:a.manifest.raw.stableVersion||(a.manifest.raw.stableVersion=u);let A=a.manifest.name!==null?G.stringifyIdent(a.manifest.name):null;r.reportInfo(0,`${G.prettyLocator(t.configuration,a.anchoredLocator)}: Bumped to ${n}`),r.reportJson({cwd:Ae.fromPortablePath(a.cwd),ident:A,oldVersion:u,newVersion:n});let p=o.get(a);if(!(typeof p>"u"))for(let[h,E,w]of p){let D=h.manifest[E].get(w);if(typeof D>"u")throw new Error("Assertion failed: The dependency should have existed");let x=D.range,C=!1;if(x.startsWith(ci.protocol)&&(x=x.slice(ci.protocol.length),C=!0,x===a.relativeCwd))continue;let T=x.match(bDt);if(!T){r.reportWarning(0,`Couldn't auto-upgrade range ${x} (in ${G.prettyLocator(t.configuration,h.anchoredLocator)})`);continue}let L=`${T[1]}${n}`;C&&(L=`${ci.protocol}${L}`);let U=G.makeDescriptor(D,L);h.manifest[E].set(w,U)}}}var kDt=new Map([["%n",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function Sve(t,{current:e,prerelease:r}){let o=new PA.default.SemVer(e),a=o.prerelease.slice(),n=[];o.prerelease=[],o.format()!==t&&(a.length=0);let u=!0,A=r.split(/\./g);for(let p of A){let h=kDt.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():u=!1;else{let E=u?h.extract(a):null;E!==null&&typeof E[0]=="number"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),u=!1)}}return o.prerelease&&(o.prerelease=[]),`${t}-${n.join(".")}`}var mI=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=de.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=de.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.recursive=de.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["version","apply"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` + This command will apply the deferred version changes and remove their definitions from the repository. + + Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%n\`) will be used on all new versions and the version definitions will be kept as-is. + + By default only the current workspace will be bumped, but you can configure this behavior by using one of: + + - \`--recursive\` to also apply the version bump on its dependencies + - \`--all\` to apply the version bump on all packages in the repository + + Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. + `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await oD(o,{prerelease:p}),E=new Map;if(this.all)E=h;else{let w=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let D of w){let x=h.get(D);typeof x<"u"&&E.set(D,x)}}if(E.size===0){let w=h.size>0?" Did you want to add --all?":"";A.reportWarning(0,`The current workspace doesn't seem to require a version bump.${w}`);return}kG(o,E,{report:A}),this.dryRun||(p||(this.all?await SG(o):await bG(o,[...E.keys()])),A.reportSeparator())});return this.dryRun||u.hasErrors()?u.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};Ke();Pt();Gt();var UF=et(ni());var yI=class extends ut{constructor(){super(...arguments);this.interactive=de.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}static{this.paths=[["version","check"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){AC(this.context);let{Gem:r}=await Promise.resolve().then(()=>(UQ(),oj)),{ScrollableItems:o}=await Promise.resolve().then(()=>(jQ(),qQ)),{FocusRequest:a}=await Promise.resolve().then(()=>(lj(),Qwe)),{useListInput:n}=await Promise.resolve().then(()=>(HQ(),Fwe)),{renderForm:u}=await Promise.resolve().then(()=>(KQ(),YQ)),{Box:A,Text:p}=await Promise.resolve().then(()=>et(ac())),{default:h,useCallback:E,useState:w}=await Promise.resolve().then(()=>et(ln())),D=await ze.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await Qt.find(D,this.context.cwd);if(!C)throw new or(x.cwd,this.context.cwd);await x.restoreInstallState();let T=await gI(x);if(T===null||T.releaseRoots.size===0)return 0;if(T.root===null)throw new it("This command can only be run on Git repositories");let L=()=>h.createElement(A,{flexDirection:"row",paddingBottom:1},h.createElement(A,{flexDirection:"column",width:60},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to save.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),U=({workspace:Ie,active:he,decision:De,setDecision:Ee})=>{let g=Ie.manifest.raw.stableVersion??Ie.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${G.prettyLocator(D,Ie.anchoredLocator)})`);if(UF.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let me=["undecided","decline","patch","minor","major"];n(De,me,{active:he,minus:"left",plus:"right",set:Ee});let Ce=De==="undecided"?h.createElement(p,{color:"yellow"},g):De==="decline"?h.createElement(p,{color:"green"},g):h.createElement(p,null,h.createElement(p,{color:"magenta"},g)," \u2192 ",h.createElement(p,{color:"green"},UF.default.valid(De)?De:UF.default.inc(g,De)));return h.createElement(A,{flexDirection:"column"},h.createElement(A,null,h.createElement(p,null,G.prettyLocator(D,Ie.anchoredLocator)," - ",Ce)),h.createElement(A,null,me.map(fe=>h.createElement(A,{key:fe,paddingLeft:2},h.createElement(p,null,h.createElement(r,{active:fe===De})," ",fe)))))},J=Ie=>{let he=new Set(T.releaseRoots),De=new Map([...Ie].filter(([Ee])=>he.has(Ee)));for(;;){let Ee=aD({project:T.project,releases:De}),g=!1;if(Ee.length>0){for(let[me]of Ee)if(!he.has(me)){he.add(me),g=!0;let Ce=Ie.get(me);typeof Ce<"u"&&De.set(me,Ce)}}if(!g)break}return{relevantWorkspaces:he,relevantReleases:De}},te=()=>{let[Ie,he]=w(()=>new Map(T.releases)),De=E((Ee,g)=>{let me=new Map(Ie);g!=="undecided"?me.set(Ee,g):me.delete(Ee);let{relevantReleases:Ce}=J(me);he(Ce)},[Ie,he]);return[Ie,De]},le=({workspaces:Ie,releases:he})=>{let De=[];De.push(`${Ie.size} total`);let Ee=0,g=0;for(let me of Ie){let Ce=he.get(me);typeof Ce>"u"?g+=1:Ce!=="decline"&&(Ee+=1)}return De.push(`${Ee} release${Ee===1?"":"s"}`),De.push(`${g} remaining`),h.createElement(p,{color:"yellow"},De.join(", "))},ue=await u(({useSubmit:Ie})=>{let[he,De]=te();Ie(he);let{relevantWorkspaces:Ee}=J(he),g=new Set([...Ee].filter(ie=>!T.releaseRoots.has(ie))),[me,Ce]=w(0),fe=E(ie=>{switch(ie){case a.BEFORE:Ce(me-1);break;case a.AFTER:Ce(me+1);break}},[me,Ce]);return h.createElement(A,{flexDirection:"column"},h.createElement(L,null),h.createElement(A,null,h.createElement(p,{wrap:"wrap"},"The following files have been modified in your local checkout.")),h.createElement(A,{flexDirection:"column",marginTop:1,paddingLeft:2},[...T.changedFiles].map(ie=>h.createElement(A,{key:ie},h.createElement(p,null,h.createElement(p,{color:"grey"},Ae.fromPortablePath(T.root)),Ae.sep,Ae.relative(Ae.fromPortablePath(T.root),Ae.fromPortablePath(ie)))))),T.releaseRoots.size>0&&h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),g.size>3?h.createElement(A,{marginTop:1},h.createElement(le,{workspaces:T.releaseRoots,releases:he})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:me%2===0,radius:1,size:2,onFocusRequest:fe},[...T.releaseRoots].map(ie=>h.createElement(U,{key:ie.cwd,workspace:ie,decision:he.get(ie)||"undecided",setDecision:Z=>De(ie,Z)}))))),g.size>0?h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),h.createElement(A,null,h.createElement(p,null,"(Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),g.size>5?h.createElement(A,{marginTop:1},h.createElement(le,{workspaces:g,releases:he})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:me%2===1,radius:2,size:2,onFocusRequest:fe},[...g].map(ie=>h.createElement(U,{key:ie.cwd,workspace:ie,decision:he.get(ie)||"undecided",setDecision:Z=>De(ie,Z)}))))):null)},{versionFile:T},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ue>"u")return 1;T.releases.clear();for(let[Ie,he]of ue)T.releases.set(Ie,he);await T.saveAll()}async executeStandard(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);return await o.restoreInstallState(),(await Nt.start({configuration:r,stdout:this.context.stdout},async u=>{let A=await gI(o);if(A===null||A.releaseRoots.size===0)return;if(A.root===null)throw new it("This command can only be run on Git repositories");if(u.reportInfo(0,`Your PR was started right after ${pe.pretty(r,A.baseHash.slice(0,7),"yellow")} ${pe.pretty(r,A.baseTitle,"magenta")}`),A.changedFiles.size>0){u.reportInfo(0,"You have changed the following files since then:"),u.reportSeparator();for(let D of A.changedFiles)u.reportInfo(null,`${pe.pretty(r,Ae.fromPortablePath(A.root),"gray")}${Ae.sep}${Ae.relative(Ae.fromPortablePath(A.root),Ae.fromPortablePath(D))}`)}let p=!1,h=!1,E=OF(A);if(E.size>0){p||u.reportSeparator();for(let D of E)u.reportError(0,`${G.prettyLocator(r,D.anchoredLocator)} has been modified but doesn't have a release strategy attached`);p=!0}let w=aD(A);for(let[D,x]of w)h||u.reportSeparator(),u.reportError(0,`${G.prettyLocator(r,D.anchoredLocator)} doesn't have a release strategy attached, but depends on ${G.prettyWorkspace(r,x)} which is planned for release.`),h=!0;(p||h)&&(u.reportSeparator(),u.reportInfo(0,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),u.reportInfo(0,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};Ke();Gt();var _F=et(ni());var EI=class extends ut{constructor(){super(...arguments);this.deferred=de.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=de.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=de.String()}static{this.paths=[["version"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);let n=r.get("preferDeferredVersions");this.deferred&&(n=!0),this.immediate&&(n=!1);let u=_F.default.valid(this.strategy),A=this.strategy==="decline",p;if(u)if(a.manifest.version!==null){let E=xG(a.manifest.version,this.strategy);E!==null?p=E:p=this.strategy}else p=this.strategy;else{let E=a.manifest.version;if(!A){if(E===null)throw new it("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof E!="string"||!_F.default.valid(E))throw new it(`Can't bump the version (${E}) if it's not valid semver`)}p=pI(this.strategy)}if(!n){let w=(await oD(o)).get(a);if(typeof w<"u"&&p!=="decline"){let D=MF(a.manifest.version,p);if(_F.default.lt(D,w))throw new it(`Can't bump the version to one that would be lower than the current deferred one (${w})`)}}let h=await gI(o,{allowEmpty:!0});return h.releases.set(a,p),await h.saveAll(),n?0:await this.cli.run(["version","apply"])}};var QDt={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:"ABSOLUTE_PATH",default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:"BOOLEAN",default:!1}},commands:[mI,yI,EI]},FDt=QDt;var FG={};Kt(FG,{WorkspacesFocusCommand:()=>CI,WorkspacesForeachCommand:()=>wI,default:()=>NDt});Ke();Ke();Gt();var CI=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=de.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=de.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=de.Rest()}static{this.paths=[["workspaces","focus"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);await o.restoreInstallState({restoreResolutions:!1});let u;if(this.all)u=new Set(o.workspaces);else if(this.workspaces.length===0){if(!a)throw new or(o.cwd,this.context.cwd);u=new Set([a])}else u=new Set(this.workspaces.map(A=>o.getWorkspaceByIdent(G.parseIdent(A))));for(let A of u)for(let p of this.production?["dependencies"]:_t.hardDependencies)for(let h of A.manifest.getForScope(p).values()){let E=o.tryWorkspaceByDescriptor(h);E!==null&&u.add(E)}for(let A of o.workspaces)u.has(A)?this.production&&A.manifest.devDependencies.clear():(A.manifest.installConfig=A.manifest.installConfig||{},A.manifest.installConfig.selfReferences=!1,A.manifest.dependencies.clear(),A.manifest.devDependencies.clear(),A.manifest.peerDependencies.clear(),A.manifest.scripts.clear());return await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,persistProject:!1})}};Ke();Ke();Ke();Gt();var II=et(Xo()),xve=et(lg());il();var wI=class extends ut{constructor(){super(...arguments);this.from=de.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"});this.all=de.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"});this.recursive=de.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"});this.worktree=de.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"});this.verbose=de.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"});this.parallel=de.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=de.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=de.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:pN([js(["unlimited"]),vw(fN(),[gN(),hN(1)])])});this.topological=de.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=de.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=de.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"});this.exclude=de.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"});this.publicOnly=de.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=de.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.dryRun=de.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"});this.commandName=de.String();this.args=de.Proxy()}static{this.paths=[["workspaces","foreach"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]})}static{this.schema=[Pw("all",Ku.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),dN(["all","recursive","since","worktree"],{missingIf:"undefined"})]}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!this.all&&!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let n=this.cli.process([this.commandName,...this.args]),u=n.path.length===1&&n.path[0]==="run"&&typeof n.scriptName<"u"?n.scriptName:null;if(n.path.length===0)throw new it("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let A=Ee=>{this.dryRun&&this.context.stdout.write(`${Ee} +`)},p=()=>{let Ee=this.from.map(g=>II.default.matcher(g));return o.workspaces.filter(g=>{let me=G.stringifyIdent(g.anchoredLocator),Ce=g.relativeCwd;return Ee.some(fe=>fe(me)||fe(Ce))})},h=[];if(this.since?(A("Option --since is set; selecting the changed workspaces as root for workspace selection"),h=Array.from(await ra.fetchChangedWorkspaces({ref:this.since,project:o}))):this.from?(A("Option --from is set; selecting the specified workspaces"),h=[...p()]):this.worktree?(A("Option --worktree is set; selecting the current workspace"),h=[a]):this.recursive?(A("Option --recursive is set; selecting the current workspace"),h=[a]):this.all&&(A("Option --all is set; selecting all workspaces"),h=[...o.workspaces]),this.dryRun&&!this.all){for(let Ee of h)A(` +- ${Ee.relativeCwd} + ${G.prettyLocator(r,Ee.anchoredLocator)}`);h.length>0&&A("")}let E;if(this.recursive?this.since?(A("Option --recursive --since is set; recursively selecting all dependent workspaces"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependents()]).flat())):(A("Option --recursive is set; recursively selecting all transitive dependencies"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(A("Option --worktree is set; recursively selecting all nested workspaces"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceChildren()]).flat())):E=null,E!==null&&(h=[...new Set([...h,...E])],this.dryRun))for(let Ee of E)A(` +- ${Ee.relativeCwd} + ${G.prettyLocator(r,Ee.anchoredLocator)}`);let w=[],D=!1;if(u?.includes(":")){for(let Ee of o.workspaces)if(Ee.manifest.scripts.has(u)&&(D=!D,D===!1))break}for(let Ee of h){if(u&&!Ee.manifest.scripts.has(u)&&!D&&!(await hn.getWorkspaceAccessibleBinaries(Ee)).has(u)){A(`Excluding ${Ee.relativeCwd} because it doesn't have a "${u}" script`);continue}if(!(u===r.env.npm_lifecycle_event&&Ee.cwd===a.cwd)){if(this.include.length>0&&!II.default.isMatch(G.stringifyIdent(Ee.anchoredLocator),this.include)&&!II.default.isMatch(Ee.relativeCwd,this.include)){A(`Excluding ${Ee.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(II.default.isMatch(G.stringifyIdent(Ee.anchoredLocator),this.exclude)||II.default.isMatch(Ee.relativeCwd,this.exclude))){A(`Excluding ${Ee.relativeCwd} because it matches the --exclude filter`);continue}if(this.publicOnly&&Ee.manifest.private===!0){A(`Excluding ${Ee.relativeCwd} because it's a private workspace and --no-private was set`);continue}w.push(Ee)}}if(this.dryRun)return 0;let x=this.verbose??(this.context.stdout.isTTY?1/0:0),C=x>0,T=x>1,L=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(Xi.availableParallelism()/2):1,U=L===1?!1:this.parallel,J=U?this.interlaced:!0,te=(0,xve.default)(L),le=new Map,ce=new Set,ue=0,Ie=null,he=!1,De=await Nt.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async Ee=>{let g=async(me,{commandIndex:Ce})=>{if(he)return-1;!U&&T&&Ce>1&&Ee.reportSeparator();let fe=RDt(me,{configuration:r,label:C,commandIndex:Ce}),[ie,Z]=bve(Ee,{prefix:fe,interlaced:J}),[Pe,Re]=bve(Ee,{prefix:fe,interlaced:J});try{T&&Ee.reportInfo(null,`${fe?`${fe} `:""}Process started`);let ht=Date.now(),q=await this.cli.run([this.commandName,...this.args],{cwd:me.cwd,stdout:ie,stderr:Pe})||0;ie.end(),Pe.end(),await Z,await Re;let nt=Date.now();if(T){let Ne=r.get("enableTimers")?`, completed in ${pe.pretty(r,nt-ht,pe.Type.DURATION)}`:"";Ee.reportInfo(null,`${fe?`${fe} `:""}Process exited (exit code ${q})${Ne}`)}return q===130&&(he=!0,Ie=q),q}catch(ht){throw ie.end(),Pe.end(),await Z,await Re,ht}};for(let me of w)le.set(me.anchoredLocator.locatorHash,me);for(;le.size>0&&!Ee.hasErrors();){let me=[];for(let[Z,Pe]of le){if(ce.has(Pe.anchoredDescriptor.descriptorHash))continue;let Re=!0;if(this.topological||this.topologicalDev){let ht=this.topologicalDev?new Map([...Pe.manifest.dependencies,...Pe.manifest.devDependencies]):Pe.manifest.dependencies;for(let q of ht.values()){let nt=o.tryWorkspaceByDescriptor(q);if(Re=nt===null||!le.has(nt.anchoredLocator.locatorHash),!Re)break}}if(Re&&(ce.add(Pe.anchoredDescriptor.descriptorHash),me.push(te(async()=>{let ht=await g(Pe,{commandIndex:++ue});return le.delete(Z),ce.delete(Pe.anchoredDescriptor.descriptorHash),{workspace:Pe,exitCode:ht}})),!U))break}if(me.length===0){let Z=Array.from(le.values()).map(Pe=>G.prettyLocator(r,Pe.anchoredLocator)).join(", ");Ee.reportError(3,`Dependency cycle detected (${Z})`);return}let Ce=await Promise.all(me);Ce.forEach(({workspace:Z,exitCode:Pe})=>{Pe!==0&&Ee.reportError(0,`The command failed in workspace ${G.prettyLocator(r,Z.anchoredLocator)} with exit code ${Pe}`)});let ie=Ce.map(Z=>Z.exitCode).find(Z=>Z!==0);(this.topological||this.topologicalDev)&&typeof ie<"u"&&Ee.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return Ie!==null?Ie:De.exitCode()}};function bve(t,{prefix:e,interlaced:r}){let o=t.createStreamReporter(e),a=new qe.DefaultStream;a.pipe(o,{end:!1}),a.on("finish",()=>{o.end()});let n=new Promise(A=>{o.on("finish",()=>{A(a.active)})});if(r)return[a,n];let u=new qe.BufferStream;return u.pipe(a,{end:!1}),u.on("finish",()=>{a.end()}),[u,n]}function RDt(t,{configuration:e,commandIndex:r,label:o}){if(!o)return null;let n=`[${G.stringifyIdent(t.anchoredLocator)}]:`,u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[r%u.length];return pe.pretty(e,n,A)}var TDt={commands:[CI,wI]},NDt=TDt;var lE=()=>({modules:new Map([["@yarnpkg/cli",S2],["@yarnpkg/core",P2],["@yarnpkg/fslib",Aw],["@yarnpkg/libzip",V1],["@yarnpkg/parsers",Ew],["@yarnpkg/shell",e2],["clipanion",Qw],["semver",LDt],["typanion",Yo],["@yarnpkg/plugin-essentials",MH],["@yarnpkg/plugin-compat",jH],["@yarnpkg/plugin-constraints",a6],["@yarnpkg/plugin-dlx",l6],["@yarnpkg/plugin-exec",A6],["@yarnpkg/plugin-file",p6],["@yarnpkg/plugin-git",OH],["@yarnpkg/plugin-github",d6],["@yarnpkg/plugin-http",m6],["@yarnpkg/plugin-init",y6],["@yarnpkg/plugin-interactive-tools",mj],["@yarnpkg/plugin-link",yj],["@yarnpkg/plugin-nm",t5],["@yarnpkg/plugin-npm",$5],["@yarnpkg/plugin-npm-cli",lG],["@yarnpkg/plugin-pack",V5],["@yarnpkg/plugin-patch",gG],["@yarnpkg/plugin-pnp",jj],["@yarnpkg/plugin-pnpm",yG],["@yarnpkg/plugin-stage",DG],["@yarnpkg/plugin-typescript",PG],["@yarnpkg/plugin-version",QG],["@yarnpkg/plugin-workspace-tools",FG]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"])});function Fve({cwd:t,pluginConfiguration:e}){let r=new Vo({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:nn??""});return Object.assign(r,{defaultContext:{...Vo.defaultContext,cwd:t,plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function ODt(t){if(qe.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,o=">=18.12.0";if(Ur.satisfiesWithPrereleases(r,o))return!0;let a=new it(`This tool requires a Node version compatible with ${o} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return Vo.defaultContext.stdout.write(t.error(a)),!1}async function Rve({selfPath:t,pluginConfiguration:e}){return await ze.find(Ae.toPortablePath(process.cwd()),e,{strict:!1,usePathCheck:t})}function MDt(t,e,{yarnPath:r}){if(!ae.existsSync(r))return t.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let o={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,kve.execFileSync)(process.execPath,[Ae.fromPortablePath(r),...e],o)}catch(a){return a.status??1}return 0}function UDt(t,e){let r=null,o=e;return e.length>=2&&e[0]==="--cwd"?(r=Ae.toPortablePath(e[1]),o=e.slice(2)):e.length>=1&&e[0].startsWith("--cwd=")?(r=Ae.toPortablePath(e[0].slice(6)),o=e.slice(1)):e[0]==="add"&&e[e.length-2]==="--cwd"&&(r=Ae.toPortablePath(e[e.length-1]),o=e.slice(0,e.length-2)),t.defaultContext.cwd=r!==null?K.resolve(r):K.cwd(),o}function _Dt(t,{configuration:e}){if(!e.get("enableTelemetry")||Qve.isCI||!process.stdout.isTTY)return;ze.telemetry=new sE(e,"puba9cdc10ec5790a2cf4969dd413a47270");let o=/^@yarnpkg\/plugin-(.*)$/;for(let a of e.plugins.keys())oE.has(a.match(o)?.[1]??"")&&ze.telemetry?.reportPluginName(a);t.binaryVersion&&ze.telemetry.reportVersion(t.binaryVersion)}function Tve(t,{configuration:e}){for(let r of e.plugins.values())for(let o of r.commands||[])t.register(o)}async function HDt(t,e,{selfPath:r,pluginConfiguration:o}){if(!ODt(t))return 1;let a=await Rve({selfPath:r,pluginConfiguration:o}),n=a.get("yarnPath"),u=a.get("ignorePath");if(n&&!u)return MDt(t,e,{yarnPath:n});delete process.env.YARN_IGNORE_PATH;let A=UDt(t,e);_Dt(t,{configuration:a}),Tve(t,{configuration:a});let p=t.process(A,t.defaultContext);return p.help||ze.telemetry?.reportCommandName(p.path.join(" ")),await t.run(p,t.defaultContext)}async function qhe({cwd:t=K.cwd(),pluginConfiguration:e=lE()}={}){let r=Fve({cwd:t,pluginConfiguration:e}),o=await Rve({pluginConfiguration:e,selfPath:null});return Tve(r,{configuration:o}),r}async function Lk(t,{cwd:e=K.cwd(),selfPath:r,pluginConfiguration:o}){let a=Fve({cwd:e,pluginConfiguration:o});function n(){Vo.defaultContext.stdout.write(`ERROR: Yarn is terminating due to an unexpected empty event loop. +Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",n);try{process.exitCode=42,process.exitCode=await HDt(a,t,{selfPath:r,pluginConfiguration:o})}catch(u){Vo.defaultContext.stdout.write(a.error(u)),process.exitCode=1}finally{process.off("beforeExit",n),await ae.rmtempPromise()}}Lk(process.argv.slice(2),{cwd:K.cwd(),selfPath:Ae.toPortablePath(Ae.resolve(process.argv[1])),pluginConfiguration:lE()});})(); +/** + @license + Copyright (c) 2015, Rebecca Turner + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + */ +/** + @license + Copyright Node.js contributors. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. +*/ +/** + @license + The MIT License (MIT) + + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ +/** + @license + Copyright Joyent, Inc. and other Node contributors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +/*! Bundled license information: + +is-number/index.js: + (*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + *) + +to-regex-range/index.js: + (*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + *) + +fill-range/index.js: + (*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + *) + +is-extglob/index.js: + (*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + *) + +is-glob/index.js: + (*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + *) + +queue-microtask/index.js: + (*! queue-microtask. MIT License. Feross Aboukhadijeh *) + +run-parallel/index.js: + (*! run-parallel. MIT License. Feross Aboukhadijeh *) + +git-url-parse/lib/index.js: + (*! + * buildToken + * Builds OAuth token prefix (helper function) + * + * @name buildToken + * @function + * @param {GitUrl} obj The parsed Git url object. + * @return {String} token prefix + *) + +object-assign/index.js: + (* + object-assign + (c) Sindre Sorhus + @license MIT + *) + +react/cjs/react.production.min.js: + (** @license React v17.0.2 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +scheduler/cjs/scheduler.production.min.js: + (** @license React v0.20.2 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +react-reconciler/cjs/react-reconciler.production.min.js: + (** @license React v0.26.2 + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +is-windows/index.js: + (*! + * is-windows + * + * Copyright © 2015-2018, Jon Schlinkert. + * Released under the MIT License. + *) +*/ diff --git a/.yarnrc.yml b/.yarnrc.yml index 486d363a..1ba93277 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,2 +1,7 @@ +compressionLevel: mixed + +enableGlobalCache: false + nodeLinker: node-modules -yarnPath: .yarn/releases/yarn-3.1.1.cjs + +yarnPath: .yarn/releases/yarn-4.6.0.cjs diff --git a/package.json b/package.json index 7bbdbfda..d14dfd6d 100644 --- a/package.json +++ b/package.json @@ -112,5 +112,5 @@ "minimist": "npm:minimist@^1.2.6", "node-forge": "npm:node-forge@^1.3.0" }, - "packageManager": "yarn@3.1.1" + "packageManager": "yarn@4.6.0" } diff --git a/yarn.lock b/yarn.lock index 4dc60ce2..11b1d572 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,20 +2,20 @@ # Manual changes might be lost - proceed with caution! __metadata: - version: 5 - cacheKey: 8 + version: 8 + cacheKey: 10 "@adraffy/ens-normalize@npm:1.10.1": version: 1.10.1 resolution: "@adraffy/ens-normalize@npm:1.10.1" - checksum: 0836f394ea256972ec19a0b5e78cb7f5bcdfd48d8a32c7478afc94dd53ae44c04d1aa2303d7f3077b4f3ac2323b1f557ab9188e8059978748fdcd83e04a80dcc + checksum: 10/4cb938c4abb88a346d50cb0ea44243ab3574330c81d4f5aaaf9dfee584b96189d0faa404de0fcbef5a1b73909ea4ebc3e63d84bd23f9949e5c8d4085207a5091 languageName: node linkType: hard "@alloc/quick-lru@npm:^5.2.0": version: 5.2.0 resolution: "@alloc/quick-lru@npm:5.2.0" - checksum: bdc35758b552bcf045733ac047fb7f9a07c4678b944c641adfbd41f798b4b91fffd0fdc0df2578d9b0afc7b4d636aa6e110ead5d6281a2adc1ab90efd7f057f8 + checksum: 10/bdc35758b552bcf045733ac047fb7f9a07c4678b944c641adfbd41f798b4b91fffd0fdc0df2578d9b0afc7b4d636aa6e110ead5d6281a2adc1ab90efd7f057f8 languageName: node linkType: hard @@ -23,9 +23,9 @@ __metadata: version: 2.3.0 resolution: "@ampproject/remapping@npm:2.3.0" dependencies: - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.24 - checksum: d3ad7b89d973df059c4e8e6d7c972cbeb1bb2f18f002a3bd04ae0707da214cb06cc06929b65aa2313b9347463df2914772298bae8b1d7973f246bb3f2ab3e8f0 + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10/f3451525379c68a73eb0a1e65247fbf28c0cccd126d93af21c75fceff77773d43c0d4a2d51978fb131aff25b5f2cb41a9fe48cc296e61ae65e679c4f6918b0ab languageName: node linkType: hard @@ -33,17 +33,17 @@ __metadata: version: 7.26.2 resolution: "@babel/code-frame@npm:7.26.2" dependencies: - "@babel/helper-validator-identifier": ^7.25.9 - js-tokens: ^4.0.0 - picocolors: ^1.0.0 - checksum: db13f5c42d54b76c1480916485e6900748bbcb0014a8aca87f50a091f70ff4e0d0a6db63cade75eb41fcc3d2b6ba0a7f89e343def4f96f00269b41b8ab8dd7b8 + "@babel/helper-validator-identifier": "npm:^7.25.9" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10/db2c2122af79d31ca916755331bb4bac96feb2b334cdaca5097a6b467fdd41963b89b14b6836a14f083de7ff887fc78fa1b3c10b14e743d33e12dbfe5ee3d223 languageName: node linkType: hard "@babel/compat-data@npm:^7.26.8": version: 7.26.8 resolution: "@babel/compat-data@npm:7.26.8" - checksum: 1bb04c6860c8c9555b933cb9c3caf5ef1dac331a37a351efb67956fc679f695d487aea76e792dd43823702c1300f7906f2a298e50b4a8d7ec199ada9c340c365 + checksum: 10/bdddf577f670e0e12996ef37e134856c8061032edb71a13418c3d4dae8135da28910b7cd6dec6e668ab3a41e42089ef7ee9c54ef52fe0860b54cb420b0d14948 languageName: node linkType: hard @@ -51,22 +51,22 @@ __metadata: version: 7.26.10 resolution: "@babel/core@npm:7.26.10" dependencies: - "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.26.2 - "@babel/generator": ^7.26.10 - "@babel/helper-compilation-targets": ^7.26.5 - "@babel/helper-module-transforms": ^7.26.0 - "@babel/helpers": ^7.26.10 - "@babel/parser": ^7.26.10 - "@babel/template": ^7.26.9 - "@babel/traverse": ^7.26.10 - "@babel/types": ^7.26.10 - convert-source-map: ^2.0.0 - debug: ^4.1.0 - gensync: ^1.0.0-beta.2 - json5: ^2.2.3 - semver: ^6.3.1 - checksum: 0217325bd46fb9c828331c14dbe3f015ee13d9aecec423ef5acc0ce8b51a3d2a2d55f2ede252b99d0ab9b2f1a06e2881694a890f92006aeac9ebe5be2914c089 + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.26.10" + "@babel/helper-compilation-targets": "npm:^7.26.5" + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.10" + "@babel/parser": "npm:^7.26.10" + "@babel/template": "npm:^7.26.9" + "@babel/traverse": "npm:^7.26.10" + "@babel/types": "npm:^7.26.10" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10/68f6707eebd6bb8beed7ceccf5153e35b86c323e40d11d796d75c626ac8f1cc4e1f795584c5ab5f886bc64150c22d5088123d68c069c63f29984c4fc054d1dab languageName: node linkType: hard @@ -74,12 +74,12 @@ __metadata: version: 7.27.0 resolution: "@babel/generator@npm:7.27.0" dependencies: - "@babel/parser": ^7.27.0 - "@babel/types": ^7.27.0 - "@jridgewell/gen-mapping": ^0.3.5 - "@jridgewell/trace-mapping": ^0.3.25 - jsesc: ^3.0.2 - checksum: cdb6e3e8441241321192275f7a1265b6d610b44d57ae3bbb6047cb142849fd2ace1e15d5ee0685337e152f5d8760babd3ab898b6e5065e4b344006d2f0da759f + "@babel/parser": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^3.0.2" + checksum: 10/5447c402b1d841132534a0a9715e89f4f28b6f2886a23e70aaa442150dba4a1e29e4e2351814f439ee1775294dccdef9ab0a4192b6e6a5ad44e24233b3611da2 languageName: node linkType: hard @@ -87,12 +87,12 @@ __metadata: version: 7.27.0 resolution: "@babel/helper-compilation-targets@npm:7.27.0" dependencies: - "@babel/compat-data": ^7.26.8 - "@babel/helper-validator-option": ^7.25.9 - browserslist: ^4.24.0 - lru-cache: ^5.1.1 - semver: ^6.3.1 - checksum: ad8b2351cde8d2e5c417f02f0d88af61ba080439e74f6d6ac578af5d63f8e35d0f36619cf18620ab627e9360c5c4b8a23784eecbef32d97944acb4ad2a57223f + "@babel/compat-data": "npm:^7.26.8" + "@babel/helper-validator-option": "npm:^7.25.9" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10/32224b512e813fc808539b4ca7fca8c224849487c365abcef8cb8b0eea635c65375b81429f82d076e9ec1f3f3b3db1d0d56aac4d482a413f58d5ad608f912155 languageName: node linkType: hard @@ -100,9 +100,9 @@ __metadata: version: 7.25.9 resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: - "@babel/traverse": ^7.25.9 - "@babel/types": ^7.25.9 - checksum: 1b411ce4ca825422ef7065dffae7d8acef52023e51ad096351e3e2c05837e9bf9fca2af9ca7f28dc26d596a588863d0fedd40711a88e350b736c619a80e704e6 + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10/e090be5dee94dda6cd769972231b21ddfae988acd76b703a480ac0c96f3334557d70a965bf41245d6ee43891e7571a8b400ccf2b2be5803351375d0f4e5bcf08 languageName: node linkType: hard @@ -110,40 +110,40 @@ __metadata: version: 7.26.0 resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: - "@babel/helper-module-imports": ^7.25.9 - "@babel/helper-validator-identifier": ^7.25.9 - "@babel/traverse": ^7.25.9 + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 942eee3adf2b387443c247a2c190c17c4fd45ba92a23087abab4c804f40541790d51ad5277e4b5b1ed8d5ba5b62de73857446b7742f835c18ebd350384e63917 + checksum: 10/9841d2a62f61ad52b66a72d08264f23052d533afc4ce07aec2a6202adac0bfe43014c312f94feacb3291f4c5aafe681955610041ece2c276271adce3f570f2f5 languageName: node linkType: hard "@babel/helper-plugin-utils@npm:^7.25.9": version: 7.26.5 resolution: "@babel/helper-plugin-utils@npm:7.26.5" - checksum: 4771fbb1711c624c62d12deabc2ed7435a6e6994b6ce09d5ede1bc1bf19be59c3775461a1e693bdd596af865685e87bb2abc778f62ceadc1b2095a8e2aa74180 + checksum: 10/1cc0fd8514da3bb249bed6c27227696ab5e84289749d7258098701cffc0c599b7f61ec40dd332f8613030564b79899d9826813c96f966330bcfc7145a8377857 languageName: node linkType: hard "@babel/helper-string-parser@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-string-parser@npm:7.25.9" - checksum: 6435ee0849e101681c1849868278b5aee82686ba2c1e27280e5e8aca6233af6810d39f8e4e693d2f2a44a3728a6ccfd66f72d71826a94105b86b731697cdfa99 + checksum: 10/c28656c52bd48e8c1d9f3e8e68ecafd09d949c57755b0d353739eb4eae7ba4f7e67e92e4036f1cd43378cc1397a2c943ed7bcaf5949b04ab48607def0258b775 languageName: node linkType: hard "@babel/helper-validator-identifier@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-identifier@npm:7.25.9" - checksum: 5b85918cb1a92a7f3f508ea02699e8d2422fe17ea8e82acd445006c0ef7520fbf48e3dbcdaf7b0a1d571fc3a2715a29719e5226636cb6042e15fe6ed2a590944 + checksum: 10/3f9b649be0c2fd457fa1957b694b4e69532a668866b8a0d81eabfa34ba16dbf3107b39e0e7144c55c3c652bf773ec816af8df4a61273a2bb4eb3145ca9cf478e languageName: node linkType: hard "@babel/helper-validator-option@npm:^7.25.9": version: 7.25.9 resolution: "@babel/helper-validator-option@npm:7.25.9" - checksum: 9491b2755948ebbdd68f87da907283698e663b5af2d2b1b02a2765761974b1120d5d8d49e9175b167f16f72748ffceec8c9cf62acfbee73f4904507b246e2b3d + checksum: 10/9491b2755948ebbdd68f87da907283698e663b5af2d2b1b02a2765761974b1120d5d8d49e9175b167f16f72748ffceec8c9cf62acfbee73f4904507b246e2b3d languageName: node linkType: hard @@ -151,9 +151,9 @@ __metadata: version: 7.27.0 resolution: "@babel/helpers@npm:7.27.0" dependencies: - "@babel/template": ^7.27.0 - "@babel/types": ^7.27.0 - checksum: d11bb8ada0c5c298d2dbd478d69b16a79216b812010e78855143e321807df4e34f60ab65e56332e72315ccfe52a22057f0cf1dcc06e518dcfa3e3141bb8576cd + "@babel/template": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" + checksum: 10/0dd40ba1e5ba4b72d1763bb381384585a56f21a61a19dc1b9a03381fe8e840207fdaa4da645d14dc028ad768087d41aad46347cc6573bd69d82f597f5a12dc6f languageName: node linkType: hard @@ -161,10 +161,10 @@ __metadata: version: 7.27.0 resolution: "@babel/parser@npm:7.27.0" dependencies: - "@babel/types": ^7.27.0 + "@babel/types": "npm:^7.27.0" bin: parser: ./bin/babel-parser.js - checksum: 062a4e6d51553603253990c84e051ed48671a55b9d4e9caf2eff9dc888465070a0cfd288a467dbf0d99507781ea4a835b5606e32ddc0319f1b9273f913676829 + checksum: 10/0fee9f05c6db753882ca9d10958301493443da9f6986d7020ebd7a696b35886240016899bc0b47d871aea2abcafd64632343719742e87432c8145e0ec2af2a03 languageName: node linkType: hard @@ -172,10 +172,10 @@ __metadata: version: 7.25.9 resolution: "@babel/plugin-transform-react-jsx-self@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 41c833cd7f91b1432710f91b1325706e57979b2e8da44e83d86312c78bbe96cd9ef778b4e79e4e17ab25fa32c72b909f2be7f28e876779ede28e27506c41f4ae + checksum: 10/41c833cd7f91b1432710f91b1325706e57979b2e8da44e83d86312c78bbe96cd9ef778b4e79e4e17ab25fa32c72b909f2be7f28e876779ede28e27506c41f4ae languageName: node linkType: hard @@ -183,10 +183,10 @@ __metadata: version: 7.25.9 resolution: "@babel/plugin-transform-react-jsx-source@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": ^7.25.9 + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: a3e0e5672e344e9d01fb20b504fe29a84918eaa70cec512c4d4b1b035f72803261257343d8e93673365b72c371f35cf34bb0d129720bf178a4c87812c8b9c662 + checksum: 10/a3e0e5672e344e9d01fb20b504fe29a84918eaa70cec512c4d4b1b035f72803261257343d8e93673365b72c371f35cf34bb0d129720bf178a4c87812c8b9c662 languageName: node linkType: hard @@ -194,8 +194,8 @@ __metadata: version: 7.27.0 resolution: "@babel/runtime@npm:7.27.0" dependencies: - regenerator-runtime: ^0.14.0 - checksum: 3e73d9e65f76fad8f99802b5364c941f4a60c693b3eca66147bb0bfa54cf0fbe017232155e16e3fd83c0a049b51b8d7239efbd73626534abe8b54a6dd57dcb1b + regenerator-runtime: "npm:^0.14.0" + checksum: 10/e6966e03b695feb4c0ac0856a4355231c2580bf9ebd0298f47739f85c0ea658679dd84409daf26378d42c86c1cbe7e33feab709b14e784254b6c441d91606465 languageName: node linkType: hard @@ -203,10 +203,10 @@ __metadata: version: 7.27.0 resolution: "@babel/template@npm:7.27.0" dependencies: - "@babel/code-frame": ^7.26.2 - "@babel/parser": ^7.27.0 - "@babel/types": ^7.27.0 - checksum: 46d6db4c204a092f11ad6c3bfb6ec3dc1422e32121186d68ab1b3e633313aa5b7e21f26ca801dbd7da21f256225305a76454429fc500e52dabadb30af35df961 + "@babel/code-frame": "npm:^7.26.2" + "@babel/parser": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" + checksum: 10/7159ca1daea287ad34676d45a7146675444d42c7664aca3e617abc9b1d9548c8f377f35a36bb34cf956e1d3610dcb7acfcfe890aebf81880d35f91a7bd273ee5 languageName: node linkType: hard @@ -214,14 +214,14 @@ __metadata: version: 7.27.0 resolution: "@babel/traverse@npm:7.27.0" dependencies: - "@babel/code-frame": ^7.26.2 - "@babel/generator": ^7.27.0 - "@babel/parser": ^7.27.0 - "@babel/template": ^7.27.0 - "@babel/types": ^7.27.0 - debug: ^4.3.1 - globals: ^11.1.0 - checksum: 922d22aa91200e1880cfa782802100aa5b236fab89a44b9c40cfea94163246efd010626f7dc2b9d7769851c1fa2d8e8f8a1e0168ff4a7094e9b737c32760baa1 + "@babel/code-frame": "npm:^7.26.2" + "@babel/generator": "npm:^7.27.0" + "@babel/parser": "npm:^7.27.0" + "@babel/template": "npm:^7.27.0" + "@babel/types": "npm:^7.27.0" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10/b0675bc16bd87187e8b090557b0650135de56a621692ad8614b20f32621350ae0fc2e1129b73b780d64a9ed4beab46849a17f90d5267b6ae6ce09ec8412a12c7 languageName: node linkType: hard @@ -229,16 +229,16 @@ __metadata: version: 7.27.0 resolution: "@babel/types@npm:7.27.0" dependencies: - "@babel/helper-string-parser": ^7.25.9 - "@babel/helper-validator-identifier": ^7.25.9 - checksum: 59582019eb8a693d4277015d4dec0233874d884b9019dcd09550332db7f0f2ac9e30eca685bb0ada4bab5a4dc8bbc2a6bcaadb151c69b7e6aa94b5eaf8fc8c51 + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10/2c322bce107c8a534dc4a23be60d570e6a4cc7ca2e44d4f0eee08c0b626104eb7e60ab8de03463bc5da1773a2f69f1e6edec1648d648d65461d6520a7f3b0770 languageName: node linkType: hard "@colors/colors@npm:1.5.0": version: 1.5.0 resolution: "@colors/colors@npm:1.5.0" - checksum: d64d5260bed1d5012ae3fc617d38d1afc0329fec05342f4e6b838f46998855ba56e0a73833f4a80fa8378c84810da254f76a8a19c39d038260dc06dc4e007425 + checksum: 10/9d226461c1e91e95f067be2bdc5e6f99cfe55a721f45afb44122e23e4b8602eeac4ff7325af6b5a369f36396ee1514d3809af3f57769066d80d83790d8e53339 languageName: node linkType: hard @@ -246,8 +246,8 @@ __metadata: version: 0.8.1 resolution: "@cspotcode/source-map-support@npm:0.8.1" dependencies: - "@jridgewell/trace-mapping": 0.3.9 - checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa + "@jridgewell/trace-mapping": "npm:0.3.9" + checksum: 10/b6e38a1712fab242c86a241c229cf562195aad985d0564bd352ac404be583029e89e93028ffd2c251d2c407ecac5fb0cbdca94a2d5c10f29ac806ede0508b3ff languageName: node linkType: hard @@ -255,22 +255,22 @@ __metadata: version: 3.14.0 resolution: "@cypress/code-coverage@npm:3.14.0" dependencies: - "@cypress/webpack-preprocessor": ^6.0.0 - chalk: 4.1.2 - dayjs: 1.11.13 - debug: 4.4.0 - execa: 4.1.0 - globby: 11.1.0 - istanbul-lib-coverage: ^3.0.0 - js-yaml: 4.1.0 - nyc: 15.1.0 + "@cypress/webpack-preprocessor": "npm:^6.0.0" + chalk: "npm:4.1.2" + dayjs: "npm:1.11.13" + debug: "npm:4.4.0" + execa: "npm:4.1.0" + globby: "npm:11.1.0" + istanbul-lib-coverage: "npm:^3.0.0" + js-yaml: "npm:4.1.0" + nyc: "npm:15.1.0" peerDependencies: "@babel/core": ^7.0.1 "@babel/preset-env": ^7.0.0 babel-loader: ^8.3 || ^9 cypress: "*" webpack: ^4 || ^5 - checksum: 6835c21d59d6fa159b5b40645abcc82560d6a71ec02b1d184ae4794eb688a5dabe89b4205f7079b9e699cd4d64720ec3576ac790c07c2c338fa22360547f4504 + checksum: 10/03caa53eb460c6507130d4d794b8cfe2c4112398e1893a27cdfef97bdd04808efa7ac6573053e97ee12384e8c3a654f01739c89d500d2d1ed09e6f65c7dc7087 languageName: node linkType: hard @@ -278,25 +278,25 @@ __metadata: version: 3.0.8 resolution: "@cypress/request@npm:3.0.8" dependencies: - aws-sign2: ~0.7.0 - aws4: ^1.8.0 - caseless: ~0.12.0 - combined-stream: ~1.0.6 - extend: ~3.0.2 - forever-agent: ~0.6.1 - form-data: ~4.0.0 - http-signature: ~1.4.0 - is-typedarray: ~1.0.0 - isstream: ~0.1.2 - json-stringify-safe: ~5.0.1 - mime-types: ~2.1.19 - performance-now: ^2.1.0 - qs: 6.14.0 - safe-buffer: ^5.1.2 - tough-cookie: ^5.0.0 - tunnel-agent: ^0.6.0 - uuid: ^8.3.2 - checksum: 0a80d5872c6a82b74ed639be773ea68f5047aea63e9e6a10e64eda73ebab9c0ee0a7435df4b11ededc49a7e186884aa7997143effd21ef6321e233489764668b + aws-sign2: "npm:~0.7.0" + aws4: "npm:^1.8.0" + caseless: "npm:~0.12.0" + combined-stream: "npm:~1.0.6" + extend: "npm:~3.0.2" + forever-agent: "npm:~0.6.1" + form-data: "npm:~4.0.0" + http-signature: "npm:~1.4.0" + is-typedarray: "npm:~1.0.0" + isstream: "npm:~0.1.2" + json-stringify-safe: "npm:~5.0.1" + mime-types: "npm:~2.1.19" + performance-now: "npm:^2.1.0" + qs: "npm:6.14.0" + safe-buffer: "npm:^5.1.2" + tough-cookie: "npm:^5.0.0" + tunnel-agent: "npm:^0.6.0" + uuid: "npm:^8.3.2" + checksum: 10/f4ee26acfed457ea017192028ff08d533052c8bae7639d8701831e691e6cd0d7d44284902feb49aa62a90c8014cf66dc2c3efc1712ad7b76e47e06f335c69981 languageName: node linkType: hard @@ -304,15 +304,15 @@ __metadata: version: 2.1.7 resolution: "@cypress/snapshot@npm:2.1.7" dependencies: - "@wildpeaks/snapshot-dom": 1.6.0 - am-i-a-dependency: 1.1.2 - check-more-types: 2.24.0 - its-name: 1.0.0 - js-beautify: 1.10.3 - lazy-ass: 1.6.0 - snap-shot-compare: 2.8.3 - snap-shot-store: 1.2.3 - checksum: eb740d69a33f2c3d0f32aab4f3ce9821ae025e801a286baa6638efa24464e88a8129319a52876e06258f4f15ea36d1e951e767dc0fe50db6283ad3e9f31dd975 + "@wildpeaks/snapshot-dom": "npm:1.6.0" + am-i-a-dependency: "npm:1.1.2" + check-more-types: "npm:2.24.0" + its-name: "npm:1.0.0" + js-beautify: "npm:1.10.3" + lazy-ass: "npm:1.6.0" + snap-shot-compare: "npm:2.8.3" + snap-shot-store: "npm:1.2.3" + checksum: 10/3f63cda78a41657bf4e63cd1ec3c648fb010c779eb1ecd8a535217637e343adddad71e814f8ca9bc865c55d1bf623e5d596321c9e94ff8e5cc687609b74e42c7 languageName: node linkType: hard @@ -320,16 +320,16 @@ __metadata: version: 6.0.4 resolution: "@cypress/webpack-preprocessor@npm:6.0.4" dependencies: - bluebird: 3.7.1 - debug: ^4.3.4 - lodash: ^4.17.20 - semver: ^7.3.2 + bluebird: "npm:3.7.1" + debug: "npm:^4.3.4" + lodash: "npm:^4.17.20" + semver: "npm:^7.3.2" peerDependencies: "@babel/core": ^7.25.2 "@babel/preset-env": ^7.25.3 babel-loader: ^8.3 || ^9 || ^10 webpack: ^4 || ^5 - checksum: 345c9b07f3e090f8e0eb8260c8d8331914ba3cbd2a985843e0a87aa70094b675cc8871c3ca86e23098507427272bb18258f4a8a6bcf70e024c48c7b7ba98a164 + checksum: 10/65acd85be422b755a1503342bdf46c149daef74dd9fd57a6aa9023313fa23bff357c9677e21500f41dc24dcf306595317c1f984879801fc41bdaaa95f4d7f26f languageName: node linkType: hard @@ -337,9 +337,9 @@ __metadata: version: 1.2.4 resolution: "@cypress/xvfb@npm:1.2.4" dependencies: - debug: ^3.1.0 - lodash.once: ^4.1.1 - checksum: 7bdcdaeb1bb692ec9d9bf8ec52538aa0bead6764753f4a067a171a511807a43fab016f7285a56bef6a606c2467ff3f1365e1ad2d2d583b81beed849ee1573fd1 + debug: "npm:^3.1.0" + lodash.once: "npm:^4.1.1" + checksum: 10/cb995b069f8c4f1e7857049bda0bd73a58e0048ccaf276ef0e66d1e1c03ba6fa099b5d765ad12ea37a7e5b7685f7413a2b9a99b27891407565b915f4a2f919a7 languageName: node linkType: hard @@ -347,9 +347,9 @@ __metadata: version: 1.4.3 resolution: "@emnapi/core@npm:1.4.3" dependencies: - "@emnapi/wasi-threads": 1.0.2 - tslib: ^2.4.0 - checksum: 1c757d380b3cecec637a2eccfb31b770b995060f695d1e15b29a86e2038909a24152947ef6e4b6586759e6716148ff17f40e51367d1b79c9a3e1b6812537bdf4 + "@emnapi/wasi-threads": "npm:1.0.2" + tslib: "npm:^2.4.0" + checksum: 10/b511f66b897d2019835391544fdf11f4fa0ce06cc1181abfa17c7d4cf03aaaa4fc8a64fcd30bb3f901de488d0a6f370b53a8de2215a898f5a4ac98015265b3b7 languageName: node linkType: hard @@ -357,8 +357,8 @@ __metadata: version: 1.4.3 resolution: "@emnapi/runtime@npm:1.4.3" dependencies: - tslib: ^2.4.0 - checksum: ff2074809638ed878e476ece370c6eae7e6257bf029a581bb7a290488d8f2a08c420a65988c7f03bfc6bb689218f0cd995d2f935bd182150b357fc2341142f4f + tslib: "npm:^2.4.0" + checksum: 10/4f90852a1a5912982cc4e176b6420556971bcf6a85ee23e379e2455066d616219751367dcf43e6a6eaf41ea7e95ba9dc830665a52b5d979dfe074237d19578f8 languageName: node linkType: hard @@ -366,8 +366,8 @@ __metadata: version: 1.0.2 resolution: "@emnapi/wasi-threads@npm:1.0.2" dependencies: - tslib: ^2.4.0 - checksum: c289cd3d0e26f11de23429a4abc7f99927917c0871d5a22637cbb75170f2b58d3a42e80d76dea89d054e529f79e35cdc953324819a7f990305d0db2897fa5fab + tslib: "npm:^2.4.0" + checksum: 10/e82941776665eb958c2084728191d6b15a94383449975c4621b67a1c8217e1c0ec11056a693906c76863cb96f782f8be500510ecec6874e3f5da35a8e7968cfd languageName: node linkType: hard @@ -375,18 +375,18 @@ __metadata: version: 11.13.5 resolution: "@emotion/babel-plugin@npm:11.13.5" dependencies: - "@babel/helper-module-imports": ^7.16.7 - "@babel/runtime": ^7.18.3 - "@emotion/hash": ^0.9.2 - "@emotion/memoize": ^0.9.0 - "@emotion/serialize": ^1.3.3 - babel-plugin-macros: ^3.1.0 - convert-source-map: ^1.5.0 - escape-string-regexp: ^4.0.0 - find-root: ^1.1.0 - source-map: ^0.5.7 - stylis: 4.2.0 - checksum: c41df7e6c19520e76d1939f884be878bf88b5ba00bd3de9d05c5b6c5baa5051686ab124d7317a0645de1b017b574d8139ae1d6390ec267fbe8e85a5252afb542 + "@babel/helper-module-imports": "npm:^7.16.7" + "@babel/runtime": "npm:^7.18.3" + "@emotion/hash": "npm:^0.9.2" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/serialize": "npm:^1.3.3" + babel-plugin-macros: "npm:^3.1.0" + convert-source-map: "npm:^1.5.0" + escape-string-regexp: "npm:^4.0.0" + find-root: "npm:^1.1.0" + source-map: "npm:^0.5.7" + stylis: "npm:4.2.0" + checksum: 10/cd310568314d886ca328e504f84c4f7f9c7f092ea34a2b43fdb61f84665bf301ba2ef49e0fd1e7ded3d81363d9bbefbb32674ce88b317cfb64db2b65e5ff423f languageName: node linkType: hard @@ -394,26 +394,26 @@ __metadata: version: 11.14.0 resolution: "@emotion/cache@npm:11.14.0" dependencies: - "@emotion/memoize": ^0.9.0 - "@emotion/sheet": ^1.4.0 - "@emotion/utils": ^1.4.2 - "@emotion/weak-memoize": ^0.4.0 - stylis: 4.2.0 - checksum: 0a81591541ea43bc7851742e6444b7800d72e98006f94e775ae6ea0806662d14e0a86ff940f5f19d33b4bb2c427c882aa65d417e7322a6e0d5f20fe65ed920c9 + "@emotion/memoize": "npm:^0.9.0" + "@emotion/sheet": "npm:^1.4.0" + "@emotion/utils": "npm:^1.4.2" + "@emotion/weak-memoize": "npm:^0.4.0" + stylis: "npm:4.2.0" + checksum: 10/52336b28a27b07dde8fcdfd80851cbd1487672bbd4db1e24cca1440c95d8a6a968c57b0453c2b7c88d9b432b717f99554dbecc05b5cdef27933299827e69fd8e languageName: node linkType: hard "@emotion/hash@npm:^0.9.2": version: 0.9.2 resolution: "@emotion/hash@npm:0.9.2" - checksum: 379bde2830ccb0328c2617ec009642321c0e009a46aa383dfbe75b679c6aea977ca698c832d225a893901f29d7b3eef0e38cf341f560f6b2b56f1ff23c172387 + checksum: 10/379bde2830ccb0328c2617ec009642321c0e009a46aa383dfbe75b679c6aea977ca698c832d225a893901f29d7b3eef0e38cf341f560f6b2b56f1ff23c172387 languageName: node linkType: hard "@emotion/memoize@npm:^0.9.0": version: 0.9.0 resolution: "@emotion/memoize@npm:0.9.0" - checksum: 038132359397348e378c593a773b1148cd0cf0a2285ffd067a0f63447b945f5278860d9de718f906a74c7c940ba1783ac2ca18f1c06a307b01cc0e3944e783b1 + checksum: 10/038132359397348e378c593a773b1148cd0cf0a2285ffd067a0f63447b945f5278860d9de718f906a74c7c940ba1783ac2ca18f1c06a307b01cc0e3944e783b1 languageName: node linkType: hard @@ -421,20 +421,20 @@ __metadata: version: 11.14.0 resolution: "@emotion/react@npm:11.14.0" dependencies: - "@babel/runtime": ^7.18.3 - "@emotion/babel-plugin": ^11.13.5 - "@emotion/cache": ^11.14.0 - "@emotion/serialize": ^1.3.3 - "@emotion/use-insertion-effect-with-fallbacks": ^1.2.0 - "@emotion/utils": ^1.4.2 - "@emotion/weak-memoize": ^0.4.0 - hoist-non-react-statics: ^3.3.1 + "@babel/runtime": "npm:^7.18.3" + "@emotion/babel-plugin": "npm:^11.13.5" + "@emotion/cache": "npm:^11.14.0" + "@emotion/serialize": "npm:^1.3.3" + "@emotion/use-insertion-effect-with-fallbacks": "npm:^1.2.0" + "@emotion/utils": "npm:^1.4.2" + "@emotion/weak-memoize": "npm:^0.4.0" + hoist-non-react-statics: "npm:^3.3.1" peerDependencies: react: ">=16.8.0" peerDependenciesMeta: "@types/react": optional: true - checksum: 3cf023b11d132b56168713764d6fced8e5a1f0687dfe0caa2782dfd428c8f9e30f9826a919965a311d87b523cd196722aaf75919cd0f6bd0fd57f8a6a0281500 + checksum: 10/3356c1d66f37f4e7abf88a2be843f6023b794b286c9c99a0aaf1cd1b2b7c50f8d80a2ef77183da737de70150f638e698ff4a2a38ab2d922f868615f1d5761c37 languageName: node linkType: hard @@ -442,26 +442,26 @@ __metadata: version: 1.3.3 resolution: "@emotion/serialize@npm:1.3.3" dependencies: - "@emotion/hash": ^0.9.2 - "@emotion/memoize": ^0.9.0 - "@emotion/unitless": ^0.10.0 - "@emotion/utils": ^1.4.2 - csstype: ^3.0.2 - checksum: 510331233767ae4e09e925287ca2c7269b320fa1d737ea86db5b3c861a734483ea832394c0c1fe5b21468fe335624a75e72818831d303ba38125f54f44ba02e7 + "@emotion/hash": "npm:^0.9.2" + "@emotion/memoize": "npm:^0.9.0" + "@emotion/unitless": "npm:^0.10.0" + "@emotion/utils": "npm:^1.4.2" + csstype: "npm:^3.0.2" + checksum: 10/44a2e06fc52dba177d9cf720f7b2c5d45ee4c0d9c09b78302d9a625e758d728ef3ae26f849237fec6f70e9eeb7d87e45a65028e944dc1f877df97c599f1cdaee languageName: node linkType: hard "@emotion/sheet@npm:^1.4.0": version: 1.4.0 resolution: "@emotion/sheet@npm:1.4.0" - checksum: eeb1212e3289db8e083e72e7e401cd6d1a84deece87e9ce184f7b96b9b5dbd6f070a89057255a6ff14d9865c3ce31f27c39248a053e4cdd875540359042586b4 + checksum: 10/8ac6e9bf6b373a648f26ae7f1c24041038524f4c72f436f4f8c4761c665e58880c3229d8d89b1f7a4815dd8e5b49634d03e60187cb6f93097d7f7c1859e869d5 languageName: node linkType: hard "@emotion/unitless@npm:^0.10.0": version: 0.10.0 resolution: "@emotion/unitless@npm:0.10.0" - checksum: d79346df31a933e6d33518e92636afeb603ce043f3857d0a39a2ac78a09ef0be8bedff40130930cb25df1beeee12d96ee38613963886fa377c681a89970b787c + checksum: 10/6851c16edce01c494305f43b2cad7a26b939a821131b7c354e49b8e3b012c8810024755b0f4a03ef51117750309e55339825a97bd10411fb3687e68904769106 languageName: node linkType: hard @@ -470,21 +470,21 @@ __metadata: resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.2.0" peerDependencies: react: ">=16.8.0" - checksum: 8ff6aec7f2924526ff8c8f8f93d4b8236376e2e12c435314a18c9a373016e24dfdf984e82bbc83712b8e90ff4783cd765eb39fc7050d1a43245e5728740ddd71 + checksum: 10/2374999db8d53ef661d61ed1026c42a849632e4f03826f7eba0314c1d92ae342161d737f5045453aa46dd4008e13ccefeba68d3165b667dfad8e5784fcb0c643 languageName: node linkType: hard "@emotion/utils@npm:^1.4.2": version: 1.4.2 resolution: "@emotion/utils@npm:1.4.2" - checksum: 04cf76849c6401205c058b82689fd0ec5bf501aed6974880fe9681a1d61543efb97e848f4c38664ac4a9068c7ad2d1cb84f73bde6cf95f1208aa3c28e0190321 + checksum: 10/e5f3b8bca066b3361a7ad9064baeb9d01ed1bf51d98416a67359b62cb3affec6bb0249802c4ed11f4f8030f93cc4b67506909420bdb110adec6983d712897208 languageName: node linkType: hard "@emotion/weak-memoize@npm:^0.4.0": version: 0.4.0 resolution: "@emotion/weak-memoize@npm:0.4.0" - checksum: db5da0e89bd752c78b6bd65a1e56231f0abebe2f71c0bd8fc47dff96408f7065b02e214080f99924f6a3bfe7ee15afc48dad999d76df86b39b16e513f7a94f52 + checksum: 10/db5da0e89bd752c78b6bd65a1e56231f0abebe2f71c0bd8fc47dff96408f7065b02e214080f99924f6a3bfe7ee15afc48dad999d76df86b39b16e513f7a94f52 languageName: node linkType: hard @@ -493,7 +493,7 @@ __metadata: resolution: "@esbuild-plugins/node-globals-polyfill@npm:0.2.3" peerDependencies: esbuild: "*" - checksum: f83eeaa382680b26a3b1cf6c396450332c41d2dc0f9fd935d3f4bacf5412bef7383d2aeb4246a858781435b7c005a570dadc81051f8a038f1ef2111f17d3d8b0 + checksum: 10/6452637b55da3d577b03bb6e9e9c5b88ec153a2c260a71d4f237fac1b46577e3536059030524b7088c9af7bc8da2afd926a5ebb72653876ce83621cc63d57efc languageName: node linkType: hard @@ -662,17 +662,17 @@ __metadata: version: 4.6.1 resolution: "@eslint-community/eslint-utils@npm:4.6.1" dependencies: - eslint-visitor-keys: ^3.4.3 + eslint-visitor-keys: "npm:^3.4.3" peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 924f38a069cc281dacd231f1293f5969dff98d4ad867f044ee384f1ad35937c27d12222a45a7da0b294253ffbaccc0a6f7878aed3eea8f4f9345f195ae24dea2 + checksum: 10/9f1a91bddf0a68b2b8bb71b3390d0e665e842770ff4a0188d38199e8a66ac050608da14eb614d211535ed312633d9dc237bd297857bf0e78abac927029909e50 languageName: node linkType: hard "@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.12.1": version: 4.12.1 resolution: "@eslint-community/regexpp@npm:4.12.1" - checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 + checksum: 10/c08f1dd7dd18fbb60bdd0d85820656d1374dd898af9be7f82cb00451313402a22d5e30569c150315b4385907cdbca78c22389b2a72ab78883b3173be317620cc languageName: node linkType: hard @@ -680,17 +680,17 @@ __metadata: version: 0.20.0 resolution: "@eslint/config-array@npm:0.20.0" dependencies: - "@eslint/object-schema": ^2.1.6 - debug: ^4.3.1 - minimatch: ^3.1.2 - checksum: 55824ea31f0502166a6fea97176c9c25089a0354474cdc72a5f739b1cf6925f44f667bf8f4f3a9dabf1112ab0fa671778ca3f96f1499f31ec42caf84cae55005 + "@eslint/object-schema": "npm:^2.1.6" + debug: "npm:^4.3.1" + minimatch: "npm:^3.1.2" + checksum: 10/9db7f6cbb5363f2f98ee4805ce09d1a95c4349e86f3f456f2c23a0849b7a6aa8d2be4c25e376ee182af062762e15a101844881c89b566eea0856c481ffcb2090 languageName: node linkType: hard "@eslint/config-helpers@npm:^0.2.0": version: 0.2.1 resolution: "@eslint/config-helpers@npm:0.2.1" - checksum: b463805bc319608436a8b19c94fd533d8196b326c03361db54c0f3ec59d7bd6337c9764bc945ef15df94f50443973241dc265f661b07aceed4938f7d1cf2e822 + checksum: 10/7627d01a654c61a71387edd235e663fea50a23f0f521a174b77d94e3d1f6834a5da9205a101ffbe4ee5cf6fab1f384693c7b47080f059debdf338dd9b590aadf languageName: node linkType: hard @@ -698,8 +698,8 @@ __metadata: version: 0.12.0 resolution: "@eslint/core@npm:0.12.0" dependencies: - "@types/json-schema": ^7.0.15 - checksum: 3979af324102a3af2742060360563ba6b9525b8e1e524ad3d3e31e65af27db554b61d1cdfeaa42e15fb7d9ce9097c44225fd9e4f8193576accc1772457b88c12 + "@types/json-schema": "npm:^7.0.15" + checksum: 10/ee8a2c65ee49af727e167b180a8672739e468ad0b1b9ac52558e61bb120f1a93af23f9e723e0e58f273adfe30ccd98167b59598c7be07440489fa38f669b59ae languageName: node linkType: hard @@ -707,8 +707,8 @@ __metadata: version: 0.13.0 resolution: "@eslint/core@npm:0.13.0" dependencies: - "@types/json-schema": ^7.0.15 - checksum: 4d1a4163ba7f667297ba6e60de82f41d139b01951e2870b1bb609072c3c5df68b0288cc911ce3af0564dfa19bfda23cbf04eebd243ccb4960e0b5f927aa9a723 + "@types/json-schema": "npm:^7.0.15" + checksum: 10/737fd1c237405b62592e8daa4b7e25b45ab22108bfec65258cabd091d5717b7c9573acea1f27c4ee7198cefc5a0874f5caefe3d9636851227b1f12d28ef52cf2 languageName: node linkType: hard @@ -716,30 +716,30 @@ __metadata: version: 3.3.1 resolution: "@eslint/eslintrc@npm:3.3.1" dependencies: - ajv: ^6.12.4 - debug: ^4.3.2 - espree: ^10.0.1 - globals: ^14.0.0 - ignore: ^5.2.0 - import-fresh: ^3.2.1 - js-yaml: ^4.1.0 - minimatch: ^3.1.2 - strip-json-comments: ^3.1.1 - checksum: 8241f998f0857abf5a615072273b90b1244d75c1c45d217c6a8eb444c6e12bbb5506b4879c14fb262eb72b7d8e3d2f0542da2db1a7f414a12496ebb790fb4d62 + ajv: "npm:^6.12.4" + debug: "npm:^4.3.2" + espree: "npm:^10.0.1" + globals: "npm:^14.0.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + minimatch: "npm:^3.1.2" + strip-json-comments: "npm:^3.1.1" + checksum: 10/cc240addbab3c5fceaa65b2c8d5d4fd77ddbbf472c2f74f0270b9d33263dc9116840b6099c46b64c9680301146250439b044ed79278a1bcc557da412a4e3c1bb languageName: node linkType: hard "@eslint/js@npm:9.24.0": version: 9.24.0 resolution: "@eslint/js@npm:9.24.0" - checksum: 423c09a9a52ae596cd77f38f97491261447e04d31a6d681b49cec7ff25dadb64f9b30e48ee5fcfb0a238a3dc3f6ee7c678fdd6ec2415bf687a73ddebaa8adff4 + checksum: 10/d210114c147a1c1ebfaed5f32734e7c1f8ef551a5ea48ea67f9469668aa4079565ccd038412437bca87515d51dc9e8b8c788473dcf3d08e35dfb27e92cb3ce1b languageName: node linkType: hard "@eslint/object-schema@npm:^2.1.6": version: 2.1.6 resolution: "@eslint/object-schema@npm:2.1.6" - checksum: e32e565319f6544d36d3fa69a3e163120722d12d666d1a4525c9a6f02e9b54c29d9b1f03139e25d7e759e08dda8da433590bc23c09db8d511162157ef1b86a4c + checksum: 10/266085c8d3fa6cd99457fb6350dffb8ee39db9c6baf28dc2b86576657373c92a568aec4bae7d142978e798b74c271696672e103202d47a0c148da39154351ed6 languageName: node linkType: hard @@ -747,9 +747,9 @@ __metadata: version: 0.2.8 resolution: "@eslint/plugin-kit@npm:0.2.8" dependencies: - "@eslint/core": ^0.13.0 - levn: ^0.4.1 - checksum: b5bd769f3f96cb3bdc4051d9ebd973b30d1cd00a02953ded1eeb74fb5b2af73cf38c20cc76acddc8e74828f0dbf92ba9d725414b3026177935fc4b48784a7fba + "@eslint/core": "npm:^0.13.0" + levn: "npm:^0.4.1" + checksum: 10/2e7fe7a88ebdbbf805e9e7265347b7dcfb6bf50beec314def997572b2e8ae4a7b9504fb67b1698a70c348a0dd87251d1e9028292a96fd49b58cb5277d88bdea7 languageName: node linkType: hard @@ -757,8 +757,8 @@ __metadata: version: 1.6.9 resolution: "@floating-ui/core@npm:1.6.9" dependencies: - "@floating-ui/utils": ^0.2.9 - checksum: 21cbcac72a40172399570dedf0eb96e4f24b0d829980160e8d14edf08c2955ac6feffb7b94e1530c78fb7944635e52669c9257ad08570e0295efead3b5a9af91 + "@floating-ui/utils": "npm:^0.2.9" + checksum: 10/656fcd383da17fffca2efa0635cbe3c0b835c3312949e30bd19d05bf42479f2ac22aaf336a6a31cb160621fc6f35cfc9e115e76c5cf48ba96e33474d123ced22 languageName: node linkType: hard @@ -766,16 +766,16 @@ __metadata: version: 1.6.13 resolution: "@floating-ui/dom@npm:1.6.13" dependencies: - "@floating-ui/core": ^1.6.0 - "@floating-ui/utils": ^0.2.9 - checksum: eabab9d860d3b5beab1c2d6936287efc4d9ab352de99062380589ef62870d59e8730397489c34a96657e128498001b5672330c4a9da0159fe8b2401ac59fe314 + "@floating-ui/core": "npm:^1.6.0" + "@floating-ui/utils": "npm:^0.2.9" + checksum: 10/4bb732baf3270007741bcdc91be1de767b2bb5d8b891eb838e5f1e7c4cccad998643dbdd4e8b8cec4c5d12c9898f80febc68e9793dd6e26a445283c4fb1b6a78 languageName: node linkType: hard "@floating-ui/utils@npm:^0.2.9": version: 0.2.9 resolution: "@floating-ui/utils@npm:0.2.9" - checksum: d518b80cec5a323e54a069a1dd99a20f8221a4853ed98ac16c75275a0cc22f75de4f8ac5b121b4f8990bd45da7ad1fb015b9a1e4bac27bb1cd62444af84e9784 + checksum: 10/0ca786347db3dd8d9034b86d1449fabb96642788e5900cc5f2aee433cd7b243efbcd7a165bead50b004ee3f20a90ddebb6a35296fc41d43cfd361b6f01b69ffb languageName: node linkType: hard @@ -783,12 +783,12 @@ __metadata: version: 1.7.19 resolution: "@headlessui/react@npm:1.7.19" dependencies: - "@tanstack/react-virtual": ^3.0.0-beta.60 - client-only: ^0.0.1 + "@tanstack/react-virtual": "npm:^3.0.0-beta.60" + client-only: "npm:^0.0.1" peerDependencies: react: ^16 || ^17 || ^18 react-dom: ^16 || ^17 || ^18 - checksum: 2a343a5fcf1f45e870cc94613231b89a8da78114001ffafa4751a0eceae7569ff9237aff1f2aedfa6f6e53ee3bb9ba5e5d19ebf1878fee3ff4f3c733fddc1087 + checksum: 10/682dddfb53e4dc1e457f47fa3ee3a35ad02255b552eec90e703a2b4cb6b07428da7c392844c24ac846e8061cd0fb840e1933b6b91b5416fde3d2648f075a6765 languageName: node linkType: hard @@ -797,14 +797,14 @@ __metadata: resolution: "@heroicons/react@npm:1.0.6" peerDependencies: react: ">= 16" - checksum: 372b1eda3ce735ef069777bc96304f70de585ebb71a6d1cedc121bb695f9bca235619112e3ee14e8779e95a03096813cbbe3b755927a54b7580d1ce084fa4096 + checksum: 10/32eed2992773576da9fde9e6c291e940f9b8cfe5172b0a223deaf901729f43949b366e9d76642160fc4f6413beb612636542f8769a2be8f1de7e45cca650a4df languageName: node linkType: hard "@humanfs/core@npm:^0.19.1": version: 0.19.1 resolution: "@humanfs/core@npm:0.19.1" - checksum: 611e0545146f55ddfdd5c20239cfb7911f9d0e28258787c4fc1a1f6214250830c9367aaaeace0096ed90b6739bee1e9c52ad5ba8adaf74ab8b449119303babfe + checksum: 10/270d936be483ab5921702623bc74ce394bf12abbf57d9145a69e8a0d1c87eb1c768bd2d93af16c5705041e257e6d9cc7529311f63a1349f3678abc776fc28523 languageName: node linkType: hard @@ -812,30 +812,30 @@ __metadata: version: 0.16.6 resolution: "@humanfs/node@npm:0.16.6" dependencies: - "@humanfs/core": ^0.19.1 - "@humanwhocodes/retry": ^0.3.0 - checksum: f9cb52bb235f8b9c6fcff43a7e500669a38f8d6ce26593404a9b56365a1644e0ed60c720dc65ff6a696b1f85f3563ab055bb554ec8674f2559085ba840e47710 + "@humanfs/core": "npm:^0.19.1" + "@humanwhocodes/retry": "npm:^0.3.0" + checksum: 10/6d43c6727463772d05610aa05c83dab2bfbe78291022ee7a92cb50999910b8c720c76cc312822e2dea2b497aa1b3fef5fe9f68803fc45c9d4ed105874a65e339 languageName: node linkType: hard "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 + checksum: 10/e993950e346331e5a32eefb27948ecdee2a2c4ab3f072b8f566cd213ef485dd50a3ca497050608db91006f5479e43f91a439aef68d2a313bd3ded06909c7c5b3 languageName: node linkType: hard "@humanwhocodes/retry@npm:^0.3.0": version: 0.3.1 resolution: "@humanwhocodes/retry@npm:0.3.1" - checksum: 7e5517bb51dbea3e02ab6cacef59a8f4b0ca023fc4b0b8cbc40de0ad29f46edd50b897c6e7fba79366a0217e3f48e2da8975056f6c35cfe19d9cc48f1d03c1dd + checksum: 10/eb457f699529de7f07649679ec9e0353055eebe443c2efe71c6dd950258892475a038e13c6a8c5e13ed1fb538cdd0a8794faa96b24b6ffc4c87fb1fc9f70ad7f languageName: node linkType: hard "@humanwhocodes/retry@npm:^0.4.2": version: 0.4.2 resolution: "@humanwhocodes/retry@npm:0.4.2" - checksum: 764127449a9f97d807b9c47f898fce8d7e0e8e8438366116b9ddcaacded99b2c285b8eed2cfdd5fdcb68be47728218db949f9618a58c0d3898d9fd14a6d6671e + checksum: 10/8910c4cdf8d46ce406e6f0cb4407ff6cfef70b15039bd5713cc059f32e02fe5119d833cfe2ebc5f522eae42fdd453b6d88f3fa7a1d8c4275aaad6eb3d3e9b117 languageName: node linkType: hard @@ -843,13 +843,13 @@ __metadata: version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" dependencies: - string-width: ^5.1.2 + string-width: "npm:^5.1.2" string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: ^7.0.1 + strip-ansi: "npm:^7.0.1" strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: ^8.1.0 + wrap-ansi: "npm:^8.1.0" wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: 4a473b9b32a7d4d3cfb7a614226e555091ff0c5a29a1734c28c72a182c2f6699b26fc6b5c2131dfd841e86b185aea714c72201d7c98c2fba5f17709333a67aeb + checksum: 10/e9ed5fd27c3aec1095e3a16e0c0cf148d1fee55a38665c35f7b3f86a9b5d00d042ddaabc98e8a1cb7463b9378c15f22a94eb35e99469c201453eb8375191f243 languageName: node linkType: hard @@ -857,8 +857,8 @@ __metadata: version: 4.0.1 resolution: "@isaacs/fs-minipass@npm:4.0.1" dependencies: - minipass: ^7.0.4 - checksum: 5d36d289960e886484362d9eb6a51d1ea28baed5f5d0140bbe62b99bac52eaf06cc01c2bc0d3575977962f84f6b2c4387b043ee632216643d4787b0999465bf2 + minipass: "npm:^7.0.4" + checksum: 10/4412e9e6713c89c1e66d80bb0bb5a2a93192f10477623a27d08f228ba0316bb880affabc5bfe7f838f58a34d26c2c190da726e576cdfc18c49a72e89adabdcf5 languageName: node linkType: hard @@ -866,12 +866,12 @@ __metadata: version: 1.1.0 resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" dependencies: - camelcase: ^5.3.1 - find-up: ^4.1.0 - get-package-type: ^0.1.0 - js-yaml: ^3.13.1 - resolve-from: ^5.0.0 - checksum: d578da5e2e804d5c93228450a1380e1a3c691de4953acc162f387b717258512a3e07b83510a936d9fab03eac90817473917e24f5d16297af3867f59328d58568 + camelcase: "npm:^5.3.1" + find-up: "npm:^4.1.0" + get-package-type: "npm:^0.1.0" + js-yaml: "npm:^3.13.1" + resolve-from: "npm:^5.0.0" + checksum: 10/b000a5acd8d4fe6e34e25c399c8bdbb5d3a202b4e10416e17bfc25e12bab90bb56d33db6089ae30569b52686f4b35ff28ef26e88e21e69821d2b85884bd055b8 languageName: node linkType: hard @@ -879,17 +879,17 @@ __metadata: version: 1.0.2 resolution: "@istanbuljs/nyc-config-typescript@npm:1.0.2" dependencies: - "@istanbuljs/schema": ^0.1.2 + "@istanbuljs/schema": "npm:^0.1.2" peerDependencies: nyc: ">=15" - checksum: df6f9c9b17df8f1d8813f768c11ca31ec125d60bcd82d8273a467022e414d2d686ee80abb7b0f0e3c512b7ed686771fadb7fb5be8881619b9f6cb1f31b86e9f3 + checksum: 10/f2bfb2b0da3f43012508063c536b9b9b42e47a0be37a70f0c5a37dca0ba74baa6f4bbd059483c596cacaa6486f0e658b7fb89055eb882088e0f521b3fb578e65 languageName: node linkType: hard "@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": version: 0.1.3 resolution: "@istanbuljs/schema@npm:0.1.3" - checksum: 5282759d961d61350f33d9118d16bcaed914ebf8061a52f4fa474b2cb08720c9c81d165e13b82f2e5a8a212cc5af482f0c6fc1ac27b9e067e5394c9a6ed186c9 + checksum: 10/a9b1e49acdf5efc2f5b2359f2df7f90c5c725f2656f16099e8b2cd3a000619ecca9fc48cf693ba789cf0fd989f6e0df6a22bc05574be4223ecdbb7997d04384b languageName: node linkType: hard @@ -897,31 +897,31 @@ __metadata: version: 0.3.8 resolution: "@jridgewell/gen-mapping@npm:0.3.8" dependencies: - "@jridgewell/set-array": ^1.2.1 - "@jridgewell/sourcemap-codec": ^1.4.10 - "@jridgewell/trace-mapping": ^0.3.24 - checksum: c0687b5227461717aa537fe71a42e356bcd1c43293b3353796a148bf3b0d6f59109def46c22f05b60e29a46f19b2e4676d027959a7c53a6c92b9d5b0d87d0420 + "@jridgewell/set-array": "npm:^1.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10/9d3a56ab3612ab9b85d38b2a93b87f3324f11c5130859957f6500e4ac8ce35f299d5ccc3ecd1ae87597601ecf83cee29e9afd04c18777c24011073992ff946df languageName: node linkType: hard "@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.2 resolution: "@jridgewell/resolve-uri@npm:3.1.2" - checksum: 83b85f72c59d1c080b4cbec0fef84528963a1b5db34e4370fa4bd1e3ff64a0d80e0cee7369d11d73c704e0286fb2865b530acac7a871088fbe92b5edf1000870 + checksum: 10/97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d languageName: node linkType: hard "@jridgewell/set-array@npm:^1.2.1": version: 1.2.1 resolution: "@jridgewell/set-array@npm:1.2.1" - checksum: 832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 + checksum: 10/832e513a85a588f8ed4f27d1279420d8547743cc37fcad5a5a76fc74bb895b013dfe614d0eed9cb860048e6546b798f8f2652020b4b2ba0561b05caa8c654b10 languageName: node linkType: hard "@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0": version: 1.5.0 resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" - checksum: 05df4f2538b3b0f998ea4c1cd34574d0feba216fa5d4ccaef0187d12abf82eafe6021cec8b49f9bb4d90f2ba4582ccc581e72986a5fcf4176ae0cfeb04cf52ec + checksum: 10/4ed6123217569a1484419ac53f6ea0d9f3b57e5b57ab30d7c267bdb27792a27eb0e4b08e84a2680aa55cc2f2b411ffd6ec3db01c44fdc6dc43aca4b55f8374fd languageName: node linkType: hard @@ -929,9 +929,9 @@ __metadata: version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" dependencies: - "@jridgewell/resolve-uri": ^3.0.3 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef + "@jridgewell/resolve-uri": "npm:^3.0.3" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + checksum: 10/83deafb8e7a5ca98993c2c6eeaa93c270f6f647a4c0dc00deb38c9cf9b2d3b7bf15e8839540155247ef034a052c0ec4466f980bf0c9e2ab63b97d16c0cedd3ff languageName: node linkType: hard @@ -939,9 +939,9 @@ __metadata: version: 0.3.25 resolution: "@jridgewell/trace-mapping@npm:0.3.25" dependencies: - "@jridgewell/resolve-uri": ^3.1.0 - "@jridgewell/sourcemap-codec": ^1.4.14 - checksum: 9d3c40d225e139987b50c48988f8717a54a8c994d8a948ee42e1412e08988761d0754d7d10b803061cc3aebf35f92a5dbbab493bd0e1a9ef9e89a2130e83ba34 + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10/dced32160a44b49d531b80a4a2159dceab6b3ddf0c8e95a0deae4b0e894b172defa63d5ac52a19c2068e1fe7d31ea4ba931fbeec103233ecb4208953967120fc languageName: node linkType: hard @@ -949,10 +949,10 @@ __metadata: version: 0.2.9 resolution: "@napi-rs/wasm-runtime@npm:0.2.9" dependencies: - "@emnapi/core": ^1.4.0 - "@emnapi/runtime": ^1.4.0 - "@tybys/wasm-util": ^0.9.0 - checksum: bffa375d960ebe5f0e98583f46a14bf4aaa086c2cce45582229b36eb0f5987d9dae1c184ebc218df504ffdd92a7169f73ac60697e6e2a2fc064277e3150a3764 + "@emnapi/core": "npm:^1.4.0" + "@emnapi/runtime": "npm:^1.4.0" + "@tybys/wasm-util": "npm:^0.9.0" + checksum: 10/8ebc7d85e11e1b8d71908d5615ff24b27ef7af8287d087fb5cff5a3e545915c7545998d976a9cd6a4315dab4ba0f609439fbe6408fec3afebd288efb0dbdc135 languageName: node linkType: hard @@ -960,8 +960,8 @@ __metadata: version: 1.2.0 resolution: "@noble/curves@npm:1.2.0" dependencies: - "@noble/hashes": 1.3.2 - checksum: bb798d7a66d8e43789e93bc3c2ddff91a1e19fdb79a99b86cd98f1e5eff0ee2024a2672902c2576ef3577b6f282f3b5c778bebd55761ddbb30e36bf275e83dd0 + "@noble/hashes": "npm:1.3.2" + checksum: 10/94e02e9571a9fd42a3263362451849d2f54405cb3ce9fa7c45bc6b9b36dcd7d1d20e2e1e14cfded24937a13d82f1e60eefc4d7a14982ce0bc219a9fc0f51d1f9 languageName: node linkType: hard @@ -969,22 +969,22 @@ __metadata: version: 1.8.2 resolution: "@noble/curves@npm:1.8.2" dependencies: - "@noble/hashes": 1.7.2 - checksum: f26fd77b4d78fe26dba2754cbcaddee5da23a711a0c9778ee57764eb0084282d97659d9b0a760718f42493adf68665dbffdca9d6213950f03f079d09c465c096 + "@noble/hashes": "npm:1.7.2" + checksum: 10/540e7b7a8fe92ecd5cef846f84d07180662eb7fd7d8e9172b8960c31827e74f148fe4630da962138a6be093ae9f8992d14ab23d3682a2cc32be839aa57c03a46 languageName: node linkType: hard "@noble/hashes@npm:1.3.2": version: 1.3.2 resolution: "@noble/hashes@npm:1.3.2" - checksum: fe23536b436539d13f90e4b9be843cc63b1b17666a07634a2b1259dded6f490be3d050249e6af98076ea8f2ea0d56f578773c2197f2aa0eeaa5fba5bc18ba474 + checksum: 10/685f59d2d44d88e738114b71011d343a9f7dce9dfb0a121f1489132f9247baa60bc985e5ec6f3213d114fbd1e1168e7294644e46cbd0ce2eba37994f28eeb51b languageName: node linkType: hard "@noble/hashes@npm:1.7.2, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.3": version: 1.7.2 resolution: "@noble/hashes@npm:1.7.2" - checksum: f9e3c2e62c2850073f8d6ac30cc33b03a25cae859eb2209b33ae90ed3d1e003cb2a1ddacd2aacd6b7c98a5ad70795a234ccce04b0526657cd8020ce4ffdb491f + checksum: 10/b5af9e4b91543dcc46a811b5b2c57bfdeb41728361979a19d6110a743e2cb0459872553f68d3a46326d21959964db2776b8c8b4db85ac1d9f63ebcaddf7d59b6 languageName: node linkType: hard @@ -992,16 +992,16 @@ __metadata: version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" dependencies: - "@nodelib/fs.stat": 2.0.5 - run-parallel: ^1.1.9 - checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 + "@nodelib/fs.stat": "npm:2.0.5" + run-parallel: "npm:^1.1.9" + checksum: 10/6ab2a9b8a1d67b067922c36f259e3b3dfd6b97b219c540877a4944549a4d49ea5ceba5663905ab5289682f1f3c15ff441d02f0447f620a42e1cb5e1937174d4b languageName: node linkType: hard "@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": version: 2.0.5 resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + checksum: 10/012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 languageName: node linkType: hard @@ -1009,16 +1009,16 @@ __metadata: version: 1.2.8 resolution: "@nodelib/fs.walk@npm:1.2.8" dependencies: - "@nodelib/fs.scandir": 2.1.5 - fastq: ^1.6.0 - checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 + "@nodelib/fs.scandir": "npm:2.1.5" + fastq: "npm:^1.6.0" + checksum: 10/40033e33e96e97d77fba5a238e4bba4487b8284678906a9f616b5579ddaf868a18874c0054a75402c9fbaaa033a25ceae093af58c9c30278e35c23c9479e79b0 languageName: node linkType: hard "@nolyfill/is-core-module@npm:1.0.39": version: 1.0.39 resolution: "@nolyfill/is-core-module@npm:1.0.39" - checksum: 0d6e098b871eca71d875651288e1f0fa770a63478b0b50479c99dc760c64175a56b5b04f58d5581bbcc6b552b8191ab415eada093d8df9597ab3423c8cac1815 + checksum: 10/0d6e098b871eca71d875651288e1f0fa770a63478b0b50479c99dc760c64175a56b5b04f58d5581bbcc6b552b8191ab415eada093d8df9597ab3423c8cac1815 languageName: node linkType: hard @@ -1026,12 +1026,12 @@ __metadata: version: 3.0.0 resolution: "@npmcli/agent@npm:3.0.0" dependencies: - agent-base: ^7.1.0 - http-proxy-agent: ^7.0.0 - https-proxy-agent: ^7.0.1 - lru-cache: ^10.0.1 - socks-proxy-agent: ^8.0.3 - checksum: e8fc25d536250ed3e669813b36e8c6d805628b472353c57afd8c4fde0fcfcf3dda4ffe22f7af8c9070812ec2e7a03fb41d7151547cef3508efe661a5a3add20f + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10/775c9a7eb1f88c195dfb3bce70c31d0fe2a12b28b754e25c08a3edb4bc4816bfedb7ac64ef1e730579d078ca19dacf11630e99f8f3c3e0fd7b23caa5fd6d30a6 languageName: node linkType: hard @@ -1039,29 +1039,29 @@ __metadata: version: 4.0.0 resolution: "@npmcli/fs@npm:4.0.0" dependencies: - semver: ^7.3.5 - checksum: 68951c589e9a4328698a35fd82fe71909a257d6f2ede0434d236fa55634f0fbcad9bb8755553ce5849bd25ee6f019f4d435921ac715c853582c4a7f5983c8d4a + semver: "npm:^7.3.5" + checksum: 10/405c4490e1ff11cf299775449a3c254a366a4b1ffc79d87159b0ee7d5558ac9f6a2f8c0735fd6ff3873cef014cb1a44a5f9127cb6a1b2dbc408718cca9365b5a languageName: node linkType: hard "@pkgjs/parseargs@npm:^0.11.0": version: 0.11.0 resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 6ad6a00fc4f2f2cfc6bff76fb1d88b8ee20bc0601e18ebb01b6d4be583733a860239a521a7fbca73b612e66705078809483549d2b18f370eb346c5155c8e4a0f + checksum: 10/115e8ceeec6bc69dff2048b35c0ab4f8bbee12d8bb6c1f4af758604586d802b6e669dcb02dda61d078de42c2b4ddce41b3d9e726d7daa6b4b850f4adbf7333ff languageName: node linkType: hard "@polkadot-api/json-rpc-provider-proxy@npm:^0.1.0": version: 0.1.0 resolution: "@polkadot-api/json-rpc-provider-proxy@npm:0.1.0" - checksum: 3dcfa50dfa9c1b5654d97d818ae85042facfdf47b71c418f069d664eba149c6be10eb02a8e8de011ce8753a813e214fff195f45f55851b8cfc7f60138fe9dfb2 + checksum: 10/1a232337a4f6f32f3ec0350d5aaceaab21547ccee3cca63318d4b9238982efa5ff2406b033c320318c72d067b73508c0a1af21eb47acabaff714c1c21477bafa languageName: node linkType: hard "@polkadot-api/json-rpc-provider@npm:0.0.1, @polkadot-api/json-rpc-provider@npm:^0.0.1": version: 0.0.1 resolution: "@polkadot-api/json-rpc-provider@npm:0.0.1" - checksum: 1f315bdadcba7def7145011132e6127b983c6f91f976be217ad7d555bb96a67f3a270fe4a46e427531822c5d54d353d84a6439d112a99cdfc07013d3b662ee3c + checksum: 10/1f315bdadcba7def7145011132e6127b983c6f91f976be217ad7d555bb96a67f3a270fe4a46e427531822c5d54d353d84a6439d112a99cdfc07013d3b662ee3c languageName: node linkType: hard @@ -1069,9 +1069,9 @@ __metadata: version: 0.3.2 resolution: "@polkadot-api/metadata-builders@npm:0.3.2" dependencies: - "@polkadot-api/substrate-bindings": 0.6.0 - "@polkadot-api/utils": 0.1.0 - checksum: e37a664ac2582048a0dd0357b378349f2165eb2f0902f7bc3aa7ec7b84735cba2b4103d36169089671c422caab30af00467cf2866c1456fc668f57ff1c8d3b55 + "@polkadot-api/substrate-bindings": "npm:0.6.0" + "@polkadot-api/utils": "npm:0.1.0" + checksum: 10/874b38e1fb92beea99b98b889143f25671f137e54113767aeabb79ff5cdf7d61cadb0121f08c7a9a40718b924d7c9a1dd700f81e7e287bc55923b0129e2a6160 languageName: node linkType: hard @@ -1079,13 +1079,13 @@ __metadata: version: 0.3.2 resolution: "@polkadot-api/observable-client@npm:0.3.2" dependencies: - "@polkadot-api/metadata-builders": 0.3.2 - "@polkadot-api/substrate-bindings": 0.6.0 - "@polkadot-api/utils": 0.1.0 + "@polkadot-api/metadata-builders": "npm:0.3.2" + "@polkadot-api/substrate-bindings": "npm:0.6.0" + "@polkadot-api/utils": "npm:0.1.0" peerDependencies: "@polkadot-api/substrate-client": 0.1.4 rxjs: ">=7.8.0" - checksum: a559a815c11fe29c5ce1d69e132bbfb451abd1de3fa2c701fa60777388c3730fb86acd7f6e3d9580ae50a148c742d4562aca90070c04c70fa9d45f9d5148b448 + checksum: 10/91b95a06e3ddd477c2489110d7cffdcfaf87a222054b437013c701dc43eac6a5d30438b1ac8fb130166ba039a67808e6199ccb3b2eaac7dcf8d2ef7a835f047b languageName: node linkType: hard @@ -1093,11 +1093,11 @@ __metadata: version: 0.6.0 resolution: "@polkadot-api/substrate-bindings@npm:0.6.0" dependencies: - "@noble/hashes": ^1.3.1 - "@polkadot-api/utils": 0.1.0 - "@scure/base": ^1.1.1 - scale-ts: ^1.6.0 - checksum: c752d52dbea2b332357652b5475297ee6fa2f1ab8adffa7bd697522df5a42a0c358aec6f558523fd6f38ab20ab54ed0bda284c0c0424d917c1c68ef435dde4a4 + "@noble/hashes": "npm:^1.3.1" + "@polkadot-api/utils": "npm:0.1.0" + "@scure/base": "npm:^1.1.1" + scale-ts: "npm:^1.6.0" + checksum: 10/01926a9083f608514a55c3d23563ebef139e2963d4adbebe7dcd99b65e1a08f1551fc0e147e787a31c749402767333c96eb1399f85a6c71654cfa1cc9d26e445 languageName: node linkType: hard @@ -1105,16 +1105,16 @@ __metadata: version: 0.1.4 resolution: "@polkadot-api/substrate-client@npm:0.1.4" dependencies: - "@polkadot-api/json-rpc-provider": 0.0.1 - "@polkadot-api/utils": 0.1.0 - checksum: b975bdf030523ea7620ef58b50ca1d258266656f040a95fa7875a59535a935b05d23d893090fc1216b0e119327b2df329a1aaca84c8893f5924b9536d2ed8473 + "@polkadot-api/json-rpc-provider": "npm:0.0.1" + "@polkadot-api/utils": "npm:0.1.0" + checksum: 10/e7172696db404676d297cd5661b195de110593769f9ce37f32bdb5576ca00c56d32fcb04172a91102986fdda27a13962d909ad9466869a2991611d658ee6ac92 languageName: node linkType: hard "@polkadot-api/utils@npm:0.1.0": version: 0.1.0 resolution: "@polkadot-api/utils@npm:0.1.0" - checksum: 55f39cf6949e54b763fc67e5132ae7d1095bf28f8413895dcec7e5778d9fe345b1ce9fe08f127c84f79fb9aedd51f045aa8ed84b2a72f4217047a91d2ecb4c27 + checksum: 10/c557daea91ddb03e16b93c7c5a75533495c7b77cbbbdc2b4f5e97af0c1e1132a47e434c9c729a08241bd7b3624b6644ac0950f914aa8b29a0f419bf0fd224c7c languageName: node linkType: hard @@ -1122,14 +1122,14 @@ __metadata: version: 15.8.1 resolution: "@polkadot/api-augment@npm:15.8.1" dependencies: - "@polkadot/api-base": 15.8.1 - "@polkadot/rpc-augment": 15.8.1 - "@polkadot/types": 15.8.1 - "@polkadot/types-augment": 15.8.1 - "@polkadot/types-codec": 15.8.1 - "@polkadot/util": ^13.4.3 - tslib: ^2.8.1 - checksum: 7a95ab9d37a38a3d6152849f6eec61065e47e6b7f95a72cc1100ed2491b40074e7e97416b3ef12030254b8ed638517496a0f0f39bec26a7700235ff6a0c48798 + "@polkadot/api-base": "npm:15.8.1" + "@polkadot/rpc-augment": "npm:15.8.1" + "@polkadot/types": "npm:15.8.1" + "@polkadot/types-augment": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + tslib: "npm:^2.8.1" + checksum: 10/2cd9f0270029da95594676e1775acd9cfa211a311a398945302187bfab92c0b650abc4152a77d96ad8950145088ed0f546b7255e51421f9ed7153cb019f09f9f languageName: node linkType: hard @@ -1137,14 +1137,14 @@ __metadata: version: 15.9.2 resolution: "@polkadot/api-augment@npm:15.9.2" dependencies: - "@polkadot/api-base": 15.9.2 - "@polkadot/rpc-augment": 15.9.2 - "@polkadot/types": 15.9.2 - "@polkadot/types-augment": 15.9.2 - "@polkadot/types-codec": 15.9.2 - "@polkadot/util": ^13.4.4 - tslib: ^2.8.1 - checksum: 86c59ea1f4bd0d86d19cd3e4a2b2fc4ab24be551de739ddea1c6e172913f1f0eb905c5753ba145495f4aa3a05e998795123340b876cb6ce97f2ccb92c44dbcd7 + "@polkadot/api-base": "npm:15.9.2" + "@polkadot/rpc-augment": "npm:15.9.2" + "@polkadot/types": "npm:15.9.2" + "@polkadot/types-augment": "npm:15.9.2" + "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/util": "npm:^13.4.4" + tslib: "npm:^2.8.1" + checksum: 10/3cb17e531c95e4be1ef4271389ad2ccc1287b497bc11ed3d900f226fde8a6f811d73e9fc222a1e2a53de79d43f9ade4a42002ec28662f8ab7e7409b49757d6ec languageName: node linkType: hard @@ -1152,12 +1152,12 @@ __metadata: version: 15.8.1 resolution: "@polkadot/api-base@npm:15.8.1" dependencies: - "@polkadot/rpc-core": 15.8.1 - "@polkadot/types": 15.8.1 - "@polkadot/util": ^13.4.3 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: 5e3e8449d84a56f2c0f5e202d4f2d1670c8d4f1ef16f45ca21395aa82837415cd6dfe208eab1721d6dd32d78fbd50d2cae586f19c35d30f355ff1f77c7c1afd7 + "@polkadot/rpc-core": "npm:15.8.1" + "@polkadot/types": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/b293962b4729e33deac75d1a775b3f50aa96c1b84fcbd091088678bdb079b4d53dcb386c38c844d6d5a01e8945caf055c6e6d686559daa884fa6f30d11f13787 languageName: node linkType: hard @@ -1165,29 +1165,29 @@ __metadata: version: 15.9.2 resolution: "@polkadot/api-base@npm:15.9.2" dependencies: - "@polkadot/rpc-core": 15.9.2 - "@polkadot/types": 15.9.2 - "@polkadot/util": ^13.4.4 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: fc81cf0d3af373c653bffc5b3cf8ecd4539e7bcb18d9f592e7cbbf17341fd5c15b92e45a0fe1c30a83f80e954df3d3b45dc635fe59c640fabbefb2030c09b4c7 + "@polkadot/rpc-core": "npm:15.9.2" + "@polkadot/types": "npm:15.9.2" + "@polkadot/util": "npm:^13.4.4" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/4a3aa7e58f98a5d96ed7d9ac22113cd362f6a4b35054083750328f1d966bb047fd13afa6cbb5747021451e0e2615a0ace8567b0c00d4e852daf14513281ca823 languageName: node linkType: hard "@polkadot/api-contract@file:./.api-contract/build::locator=contracts-ui%40workspace%3A.": version: 15.8.1 - resolution: "@polkadot/api-contract@file:./.api-contract/build#./.api-contract/build::hash=cafe2b&locator=contracts-ui%40workspace%3A." + resolution: "@polkadot/api-contract@file:./.api-contract/build#./.api-contract/build::hash=ebb2da&locator=contracts-ui%40workspace%3A." dependencies: - "@polkadot/api": 15.8.1 - "@polkadot/api-augment": 15.8.1 - "@polkadot/types": 15.8.1 - "@polkadot/types-codec": 15.8.1 - "@polkadot/types-create": 15.8.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: e7fd8bd7e0fc12450879feb3df3eff323e4169e116eb69ce8f35b585e26cbac2c846fa8cee0b0e7c43dad4a763385133de5ddbddac1254147e6eaa5de4abd30d + "@polkadot/api": "npm:15.8.1" + "@polkadot/api-augment": "npm:15.8.1" + "@polkadot/types": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/types-create": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + "@polkadot/util-crypto": "npm:^13.4.3" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/bed0a6e1b1bfe8dedae982536458b2882bb0ca5e3b54e88ef20687344991bcbf8daafd3a6da87109615e2dfbc5ab711bfc4a8783208bed5b768d670db553f3d7 languageName: node linkType: hard @@ -1195,17 +1195,17 @@ __metadata: version: 15.8.1 resolution: "@polkadot/api-derive@npm:15.8.1" dependencies: - "@polkadot/api": 15.8.1 - "@polkadot/api-augment": 15.8.1 - "@polkadot/api-base": 15.8.1 - "@polkadot/rpc-core": 15.8.1 - "@polkadot/types": 15.8.1 - "@polkadot/types-codec": 15.8.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: 5a3cd009425f99399202c2366dc88a5f6cc86ee025d22ab62cf728d0ab2ba4f8f6f51967458905a656fde2783f04298116a3584aeea1ae13a87f9203526a9853 + "@polkadot/api": "npm:15.8.1" + "@polkadot/api-augment": "npm:15.8.1" + "@polkadot/api-base": "npm:15.8.1" + "@polkadot/rpc-core": "npm:15.8.1" + "@polkadot/types": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + "@polkadot/util-crypto": "npm:^13.4.3" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/26a0334e1c09d1cf5cb57fd7e302f25ff73f146966fa350fc11bda7ca8d32aa96db7e87aa921ecea925679f0e4c9b49244c3b5ccd9c68f22c2127901ca5fc689 languageName: node linkType: hard @@ -1213,17 +1213,17 @@ __metadata: version: 15.9.2 resolution: "@polkadot/api-derive@npm:15.9.2" dependencies: - "@polkadot/api": 15.9.2 - "@polkadot/api-augment": 15.9.2 - "@polkadot/api-base": 15.9.2 - "@polkadot/rpc-core": 15.9.2 - "@polkadot/types": 15.9.2 - "@polkadot/types-codec": 15.9.2 - "@polkadot/util": ^13.4.4 - "@polkadot/util-crypto": ^13.4.4 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: d547219b48a0cb77b15d96df1ae6d555e533576749a23840b0fdf8e4e88c00e086fd0fb95349952fc92266cc531d5f3607634bce4a4ccf28f4d35b9a32982f76 + "@polkadot/api": "npm:15.9.2" + "@polkadot/api-augment": "npm:15.9.2" + "@polkadot/api-base": "npm:15.9.2" + "@polkadot/rpc-core": "npm:15.9.2" + "@polkadot/types": "npm:15.9.2" + "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/util": "npm:^13.4.4" + "@polkadot/util-crypto": "npm:^13.4.4" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/2c86b4c4a00967d6071ff9705e6805e1d65c851fd3b82a7e27416ac5547f07cece7da36c955ecfce3f599484aef13309870398d1596c5d9e720c5160843af8f8 languageName: node linkType: hard @@ -1231,24 +1231,24 @@ __metadata: version: 15.8.1 resolution: "@polkadot/api@npm:15.8.1" dependencies: - "@polkadot/api-augment": 15.8.1 - "@polkadot/api-base": 15.8.1 - "@polkadot/api-derive": 15.8.1 - "@polkadot/keyring": ^13.4.3 - "@polkadot/rpc-augment": 15.8.1 - "@polkadot/rpc-core": 15.8.1 - "@polkadot/rpc-provider": 15.8.1 - "@polkadot/types": 15.8.1 - "@polkadot/types-augment": 15.8.1 - "@polkadot/types-codec": 15.8.1 - "@polkadot/types-create": 15.8.1 - "@polkadot/types-known": 15.8.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 - eventemitter3: ^5.0.1 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: a1fb2b481a495ead68e8857d89d09326d521b7e19a011145a850b8e12307f96fb5e9f1129e9b5461936db481f20bda19944cc7bdadd83e90b4c7638928e776a4 + "@polkadot/api-augment": "npm:15.8.1" + "@polkadot/api-base": "npm:15.8.1" + "@polkadot/api-derive": "npm:15.8.1" + "@polkadot/keyring": "npm:^13.4.3" + "@polkadot/rpc-augment": "npm:15.8.1" + "@polkadot/rpc-core": "npm:15.8.1" + "@polkadot/rpc-provider": "npm:15.8.1" + "@polkadot/types": "npm:15.8.1" + "@polkadot/types-augment": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/types-create": "npm:15.8.1" + "@polkadot/types-known": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + "@polkadot/util-crypto": "npm:^13.4.3" + eventemitter3: "npm:^5.0.1" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/a99af92b4825df247f12fdded7468af66b6eaa548503b9abbc4617d7550701fd82e2136eef76c7d3f4992bbdc96c3c2031d2cc1900b3ac0ede654d526ef62442 languageName: node linkType: hard @@ -1256,24 +1256,24 @@ __metadata: version: 15.9.2 resolution: "@polkadot/api@npm:15.9.2" dependencies: - "@polkadot/api-augment": 15.9.2 - "@polkadot/api-base": 15.9.2 - "@polkadot/api-derive": 15.9.2 - "@polkadot/keyring": ^13.4.4 - "@polkadot/rpc-augment": 15.9.2 - "@polkadot/rpc-core": 15.9.2 - "@polkadot/rpc-provider": 15.9.2 - "@polkadot/types": 15.9.2 - "@polkadot/types-augment": 15.9.2 - "@polkadot/types-codec": 15.9.2 - "@polkadot/types-create": 15.9.2 - "@polkadot/types-known": 15.9.2 - "@polkadot/util": ^13.4.4 - "@polkadot/util-crypto": ^13.4.4 - eventemitter3: ^5.0.1 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: ed25d0382b35f1da134576a4d3b05204a2bd1980e12638c7ac68e2848ac2bac929da5a07b052e5308908b047586b7cde9a54dfe8ad5aebf1f7fe36a714bc05d1 + "@polkadot/api-augment": "npm:15.9.2" + "@polkadot/api-base": "npm:15.9.2" + "@polkadot/api-derive": "npm:15.9.2" + "@polkadot/keyring": "npm:^13.4.4" + "@polkadot/rpc-augment": "npm:15.9.2" + "@polkadot/rpc-core": "npm:15.9.2" + "@polkadot/rpc-provider": "npm:15.9.2" + "@polkadot/types": "npm:15.9.2" + "@polkadot/types-augment": "npm:15.9.2" + "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/types-create": "npm:15.9.2" + "@polkadot/types-known": "npm:15.9.2" + "@polkadot/util": "npm:^13.4.4" + "@polkadot/util-crypto": "npm:^13.4.4" + eventemitter3: "npm:^5.0.1" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/8cc864bb86fc68712992eedc0034504d74dee5c9d24c6422d9939bf0a9d5aec23a2ce1a7e7b57da446f5b72acadab3e1427925813cb9cf7aa8685048a5966121 languageName: node linkType: hard @@ -1281,15 +1281,15 @@ __metadata: version: 0.58.7 resolution: "@polkadot/extension-dapp@npm:0.58.7" dependencies: - "@polkadot/extension-inject": 0.58.7 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 - tslib: ^2.8.1 + "@polkadot/extension-inject": "npm:0.58.7" + "@polkadot/util": "npm:^13.4.3" + "@polkadot/util-crypto": "npm:^13.4.3" + tslib: "npm:^2.8.1" peerDependencies: "@polkadot/api": "*" "@polkadot/util": "*" "@polkadot/util-crypto": "*" - checksum: 615e69a5fcd5f3cbf28ce833610654355b2ee3e81926bcc0e7a285eec9a2530ee2a3d4a7df6c15a65e08998eb7be1d8c8269fe5b0f70ff23345a9d19f2bdf763 + checksum: 10/a7bf3b8f1cd4791ca97f592e0a3acf43e5f08599bd58cdff6a0dcc39b8e584e33d16f1ef7faf3ade958716b17c0478b21f92fd0b2c796121faa6a1e5ecfaa660 languageName: node linkType: hard @@ -1297,17 +1297,17 @@ __metadata: version: 0.58.7 resolution: "@polkadot/extension-inject@npm:0.58.7" dependencies: - "@polkadot/api": ^15.9.1 - "@polkadot/rpc-provider": ^15.9.1 - "@polkadot/types": ^15.9.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 - "@polkadot/x-global": ^13.4.3 - tslib: ^2.8.1 + "@polkadot/api": "npm:^15.9.1" + "@polkadot/rpc-provider": "npm:^15.9.1" + "@polkadot/types": "npm:^15.9.1" + "@polkadot/util": "npm:^13.4.3" + "@polkadot/util-crypto": "npm:^13.4.3" + "@polkadot/x-global": "npm:^13.4.3" + tslib: "npm:^2.8.1" peerDependencies: "@polkadot/api": "*" "@polkadot/util": "*" - checksum: d570001946972aa28dac6fac6f775cbf221086fa6a704780e9371b6142387b7deb00551ee16b7631502a325c35d5db5114461c1a0e8a5acefa28c5c788f531f8 + checksum: 10/4bad79802ff221e2a8d6a9f04c9cb8710f40b1aaa42c4fb446ade0c0bb27737396bc543794c3b927b7c718da5517e3cf1c724522cb1b3f2dcc0c9295358e5394 languageName: node linkType: hard @@ -1315,13 +1315,13 @@ __metadata: version: 13.4.4 resolution: "@polkadot/keyring@npm:13.4.4" dependencies: - "@polkadot/util": 13.4.4 - "@polkadot/util-crypto": 13.4.4 - tslib: ^2.8.0 + "@polkadot/util": "npm:13.4.4" + "@polkadot/util-crypto": "npm:13.4.4" + tslib: "npm:^2.8.0" peerDependencies: "@polkadot/util": 13.4.4 "@polkadot/util-crypto": 13.4.4 - checksum: 44e819f962caed6d679820cec3195b9a8acf8f8d19132199bb2d9bf0011a49aa46b40c6526cac0949c2b71d8aba5bd960cf54d2c782f663cce869b3b65296b6a + checksum: 10/0c9637cf54640898c503721c568831b75a92229d1395d6f228325a4888b8c3fc862ed24a54c0c49b4eaffe9cb23d2734f487deee25a0b78f7382a82e60ac1955 languageName: node linkType: hard @@ -1329,10 +1329,10 @@ __metadata: version: 13.4.4 resolution: "@polkadot/networks@npm:13.4.4" dependencies: - "@polkadot/util": 13.4.4 - "@substrate/ss58-registry": ^1.51.0 - tslib: ^2.8.0 - checksum: 4842ba3576a1c2a222f27bccd41cf632735dd3d048c28e00ab67169568177e0f67305792244bd147a689a5d65a1e2ea1fa918eacdd0e75b80818ac17ded32342 + "@polkadot/util": "npm:13.4.4" + "@substrate/ss58-registry": "npm:^1.51.0" + tslib: "npm:^2.8.0" + checksum: 10/8125a55b6ff75a32fdde7fba3584d49c9e096b5fe88c26cb8438af61233d233ef346f3086eb52be2fecf4f2c516fe7cabadf982510732c1beac65e430216f4a5 languageName: node linkType: hard @@ -1340,12 +1340,12 @@ __metadata: version: 15.8.1 resolution: "@polkadot/rpc-augment@npm:15.8.1" dependencies: - "@polkadot/rpc-core": 15.8.1 - "@polkadot/types": 15.8.1 - "@polkadot/types-codec": 15.8.1 - "@polkadot/util": ^13.4.3 - tslib: ^2.8.1 - checksum: a0fd53f95831c15ab0e8250a8d402afbd18214d9418606cdc8a171d1d5dbce0005532db63067b1f055877adf0733fb2d401bda577cde0a50a310b3c14202f1ec + "@polkadot/rpc-core": "npm:15.8.1" + "@polkadot/types": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + tslib: "npm:^2.8.1" + checksum: 10/f82c2f794c8fa36b0d60f816f23d7ce1692c8d1297245bc68d5f0ea3dc07493fc4d59b64b024ae90825eead27bb273f0f15fee6e07a0999d23691a6e3e4da111 languageName: node linkType: hard @@ -1353,12 +1353,12 @@ __metadata: version: 15.9.2 resolution: "@polkadot/rpc-augment@npm:15.9.2" dependencies: - "@polkadot/rpc-core": 15.9.2 - "@polkadot/types": 15.9.2 - "@polkadot/types-codec": 15.9.2 - "@polkadot/util": ^13.4.4 - tslib: ^2.8.1 - checksum: d0a63e9095a52bb555a7f32f0f0d5a5b0c0b0bf5c58da2ec85ea88702e70ebda69b4a504189ca3ebbf79407f30ef3a384a393b75bb2aa78ac6b8f9c274035207 + "@polkadot/rpc-core": "npm:15.9.2" + "@polkadot/types": "npm:15.9.2" + "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/util": "npm:^13.4.4" + tslib: "npm:^2.8.1" + checksum: 10/0e3ed85c006344071e654aa20027817ee397b304d32919af80518a3c62dffe65f288509ded0322add410c88263b4f728139b7230a5433eaec6d3810c2f75fd36 languageName: node linkType: hard @@ -1366,13 +1366,13 @@ __metadata: version: 15.8.1 resolution: "@polkadot/rpc-core@npm:15.8.1" dependencies: - "@polkadot/rpc-augment": 15.8.1 - "@polkadot/rpc-provider": 15.8.1 - "@polkadot/types": 15.8.1 - "@polkadot/util": ^13.4.3 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: d137a357cc300114e0f9898ad1fd1ce3dc8e331b7464cf690a400a39325d33a3c5ad9dd95ec25da6a54981b998ad17bca44d4110c20d76a32fc6fcccc2fec5ac + "@polkadot/rpc-augment": "npm:15.8.1" + "@polkadot/rpc-provider": "npm:15.8.1" + "@polkadot/types": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/12fa65816946a7faafa73d43008894010b87568f32e2cd11c0ee83982ab10c6e8b1fcad6908bc68083b1951d638de38d56de703ae95f769df3e3ad7724943397 languageName: node linkType: hard @@ -1380,13 +1380,13 @@ __metadata: version: 15.9.2 resolution: "@polkadot/rpc-core@npm:15.9.2" dependencies: - "@polkadot/rpc-augment": 15.9.2 - "@polkadot/rpc-provider": 15.9.2 - "@polkadot/types": 15.9.2 - "@polkadot/util": ^13.4.4 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: 7581189cc474f0a9a931dc3f53bee16288c117096f3ad2462e866d0f31017410d03203beb8dd92b57add609d0732ca30376d75dadd22c1e15f1ac0051a81c4a1 + "@polkadot/rpc-augment": "npm:15.9.2" + "@polkadot/rpc-provider": "npm:15.9.2" + "@polkadot/types": "npm:15.9.2" + "@polkadot/util": "npm:^13.4.4" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/af5ecdb162f7b94b70e0187eecc026b503379e071a40d91a1d0987b652b7bf62d7b32fa9eafd9e0fe65a317febe20c4a805707117b1f1d6ee3f82f7b37c5ae15 languageName: node linkType: hard @@ -1394,23 +1394,23 @@ __metadata: version: 15.8.1 resolution: "@polkadot/rpc-provider@npm:15.8.1" dependencies: - "@polkadot/keyring": ^13.4.3 - "@polkadot/types": 15.8.1 - "@polkadot/types-support": 15.8.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 - "@polkadot/x-fetch": ^13.4.3 - "@polkadot/x-global": ^13.4.3 - "@polkadot/x-ws": ^13.4.3 - "@substrate/connect": 0.8.11 - eventemitter3: ^5.0.1 - mock-socket: ^9.3.1 - nock: ^13.5.5 - tslib: ^2.8.1 + "@polkadot/keyring": "npm:^13.4.3" + "@polkadot/types": "npm:15.8.1" + "@polkadot/types-support": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + "@polkadot/util-crypto": "npm:^13.4.3" + "@polkadot/x-fetch": "npm:^13.4.3" + "@polkadot/x-global": "npm:^13.4.3" + "@polkadot/x-ws": "npm:^13.4.3" + "@substrate/connect": "npm:0.8.11" + eventemitter3: "npm:^5.0.1" + mock-socket: "npm:^9.3.1" + nock: "npm:^13.5.5" + tslib: "npm:^2.8.1" dependenciesMeta: "@substrate/connect": optional: true - checksum: eb660940df5c474ecfee6489d04483b1fc3f53e6186980002283f170c620ae58bd0d4d700ec5335a635c76a658f4c129fb119ea359c8835da9eb9ae7b35f3dcf + checksum: 10/4ee1479289d5099d7bc4da3e8d254d6d22f6c262e5f5f64f1cefcf8bb1e111b0f6ac993ccaaaf1178758dab4be832661abe159537482721aeef693791ea481f9 languageName: node linkType: hard @@ -1418,23 +1418,23 @@ __metadata: version: 15.9.2 resolution: "@polkadot/rpc-provider@npm:15.9.2" dependencies: - "@polkadot/keyring": ^13.4.4 - "@polkadot/types": 15.9.2 - "@polkadot/types-support": 15.9.2 - "@polkadot/util": ^13.4.4 - "@polkadot/util-crypto": ^13.4.4 - "@polkadot/x-fetch": ^13.4.4 - "@polkadot/x-global": ^13.4.4 - "@polkadot/x-ws": ^13.4.4 - "@substrate/connect": 0.8.11 - eventemitter3: ^5.0.1 - mock-socket: ^9.3.1 - nock: ^13.5.5 - tslib: ^2.8.1 + "@polkadot/keyring": "npm:^13.4.4" + "@polkadot/types": "npm:15.9.2" + "@polkadot/types-support": "npm:15.9.2" + "@polkadot/util": "npm:^13.4.4" + "@polkadot/util-crypto": "npm:^13.4.4" + "@polkadot/x-fetch": "npm:^13.4.4" + "@polkadot/x-global": "npm:^13.4.4" + "@polkadot/x-ws": "npm:^13.4.4" + "@substrate/connect": "npm:0.8.11" + eventemitter3: "npm:^5.0.1" + mock-socket: "npm:^9.3.1" + nock: "npm:^13.5.5" + tslib: "npm:^2.8.1" dependenciesMeta: "@substrate/connect": optional: true - checksum: 7c5cef2ce4364842d41f05a9bc0221aeebbf5bc3476105255a956fc3b29e5af80b78b67bc88440b71a2d969ca5c8b15f7ded7e34d5c5a0ed6867f0fbe0f7fa03 + checksum: 10/78a8c45560b72b0f75bb16adf1538b13a6c4ea96da9458b78b160b5d6671ca8647d3fa486200502ea946d0d111e003b13465ee3d9a97ddb08e4ec5356ff83411 languageName: node linkType: hard @@ -1442,11 +1442,11 @@ __metadata: version: 15.8.1 resolution: "@polkadot/types-augment@npm:15.8.1" dependencies: - "@polkadot/types": 15.8.1 - "@polkadot/types-codec": 15.8.1 - "@polkadot/util": ^13.4.3 - tslib: ^2.8.1 - checksum: 84deba50372a87959bb121538e7ca3ce398bf8ea36470a80399905e7818badfd4c80753fa6defb2f42e0bb28ec4dadd157e7415064934b9c0b6f01dee0fece37 + "@polkadot/types": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + tslib: "npm:^2.8.1" + checksum: 10/bf100a2e084c72b79ae93fb0354be8e6780c4c1c46bb03d90d123fdd1b54c2648d9badb983dd2944d06aecdbc6fbf27d2e626208ca6f123fa7da48cdb78d40ab languageName: node linkType: hard @@ -1454,11 +1454,11 @@ __metadata: version: 15.9.2 resolution: "@polkadot/types-augment@npm:15.9.2" dependencies: - "@polkadot/types": 15.9.2 - "@polkadot/types-codec": 15.9.2 - "@polkadot/util": ^13.4.4 - tslib: ^2.8.1 - checksum: 3907ff2b3db8df0db10dca991ac419548f2aa5994324ab741622176b841d207ce47888f6e4cfd789e9b5e1c83b738844b8556c35b538f17421512b97b7a3ed34 + "@polkadot/types": "npm:15.9.2" + "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/util": "npm:^13.4.4" + tslib: "npm:^2.8.1" + checksum: 10/7c1bba6ae56da6107ff8353b97973e1dd3e7d18d4106092e7ec7caf86e4915cc75cb7ff7a8ce330c2f9d9f3018544791936f042d855afa30f91f847b5444ee44 languageName: node linkType: hard @@ -1466,10 +1466,10 @@ __metadata: version: 15.8.1 resolution: "@polkadot/types-codec@npm:15.8.1" dependencies: - "@polkadot/util": ^13.4.3 - "@polkadot/x-bigint": ^13.4.3 - tslib: ^2.8.1 - checksum: 0008b98a75e299f02e4c74532490a34754d5643844fd77a7be525a890ef9c1a89fe18fc210d538f2985206adc8cbda0091888b6efa6e9b13e49e6f123d53fea1 + "@polkadot/util": "npm:^13.4.3" + "@polkadot/x-bigint": "npm:^13.4.3" + tslib: "npm:^2.8.1" + checksum: 10/7440e7e763712fbbbb113a20897a4255154d2fe6f2ca82973b9e230ab0af7b25c2554b36e1f2fa8c62f8a88c206f35c3397d74600a14909f8658cec6f4f40b13 languageName: node linkType: hard @@ -1477,10 +1477,10 @@ __metadata: version: 15.9.2 resolution: "@polkadot/types-codec@npm:15.9.2" dependencies: - "@polkadot/util": ^13.4.4 - "@polkadot/x-bigint": ^13.4.4 - tslib: ^2.8.1 - checksum: f4c45f44c03d35c24fa6c1037d02492ac3720b0f29ff407885113f09eb5d9b07db8b09b1435d5ee925f14d408bd93c7c1278863bb295fbbc00b14e7057eff6ff + "@polkadot/util": "npm:^13.4.4" + "@polkadot/x-bigint": "npm:^13.4.4" + tslib: "npm:^2.8.1" + checksum: 10/ad528c305914d4864e474da0dfb2ede8339474bb2070511f991e065bc87174e1bbb66086edaed36af80746ececd6ef941957a58ca2dd0190bbd8089e7b97a9e3 languageName: node linkType: hard @@ -1488,10 +1488,10 @@ __metadata: version: 15.8.1 resolution: "@polkadot/types-create@npm:15.8.1" dependencies: - "@polkadot/types-codec": 15.8.1 - "@polkadot/util": ^13.4.3 - tslib: ^2.8.1 - checksum: b39aba852bdf9312b5b0e104e6a1b10429fa4bef1ab5c42c0cfb9fdf1cf1e0b06ab2eaf97709cd5219b7ca2f54fd3e5e0a08907c07f05ab3c113a17adbf44c37 + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + tslib: "npm:^2.8.1" + checksum: 10/b51c9f6c2f582bb084dc29aec68403e7547bea080939917cc39970db6ad24e837f25ee3068885451abffd9b7405b56d0658b69439d3c36180183495e8c9e9509 languageName: node linkType: hard @@ -1499,10 +1499,10 @@ __metadata: version: 15.9.2 resolution: "@polkadot/types-create@npm:15.9.2" dependencies: - "@polkadot/types-codec": 15.9.2 - "@polkadot/util": ^13.4.4 - tslib: ^2.8.1 - checksum: 222cd0c9ce5ecdef5bc1fa5519de065a26f125849d52d014d73ef54d9bfc21ca19717745b5e83d890b5213cdb78384bfe25f0496de005011a6d4bc1d866116db + "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/util": "npm:^13.4.4" + tslib: "npm:^2.8.1" + checksum: 10/c002defab8080922907f047bb637152029661526748c3cfcbf914a9335a3b4a2c9c5cb3cfc41a315b3e636b5261e313bc2f5ad819705c4287001947e52153e4b languageName: node linkType: hard @@ -1510,13 +1510,13 @@ __metadata: version: 15.8.1 resolution: "@polkadot/types-known@npm:15.8.1" dependencies: - "@polkadot/networks": ^13.4.3 - "@polkadot/types": 15.8.1 - "@polkadot/types-codec": 15.8.1 - "@polkadot/types-create": 15.8.1 - "@polkadot/util": ^13.4.3 - tslib: ^2.8.1 - checksum: decbedb4277885dd960fc8af592f93f808c5233e0b49d4b17e5dfa323be5f219409f35c27ed0f1f0d9e9189501cf63e81e575b3d3bcdb5433c15a546735b0519 + "@polkadot/networks": "npm:^13.4.3" + "@polkadot/types": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/types-create": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + tslib: "npm:^2.8.1" + checksum: 10/1e6fc7e83007b6d1e66f26ca38e6ddd5e4f39460b262b0a33533aadf1aec21dd37531b18e7a4cd479fed2a1d03fcc8b83ac36201eef641290d1b36b2d126b19d languageName: node linkType: hard @@ -1524,13 +1524,13 @@ __metadata: version: 15.9.2 resolution: "@polkadot/types-known@npm:15.9.2" dependencies: - "@polkadot/networks": ^13.4.4 - "@polkadot/types": 15.9.2 - "@polkadot/types-codec": 15.9.2 - "@polkadot/types-create": 15.9.2 - "@polkadot/util": ^13.4.4 - tslib: ^2.8.1 - checksum: e81265d547e277d1ab2bf14539f91b6394ed643f16008575198527b6fb0095750d3579a0314ea5185c15dd887245198275a251ef12c7519169514099bd4d37e8 + "@polkadot/networks": "npm:^13.4.4" + "@polkadot/types": "npm:15.9.2" + "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/types-create": "npm:15.9.2" + "@polkadot/util": "npm:^13.4.4" + tslib: "npm:^2.8.1" + checksum: 10/a14fc66393c434817526f0af53fa52a450640ffb4a7147a3a378fb16dddae9b028be82c16bd38e738eba1e4760d97c354ac4659abf8891a0a3c1a3e1de7d95d0 languageName: node linkType: hard @@ -1538,9 +1538,9 @@ __metadata: version: 15.8.1 resolution: "@polkadot/types-support@npm:15.8.1" dependencies: - "@polkadot/util": ^13.4.3 - tslib: ^2.8.1 - checksum: 22f46ffef8d4346b9499c2d6d86b831d20caad70599d64c679e36508b57666befb22f84b5217e4dfd10332951e2e6a1b6a32f8c084e4b4d9b30609cb1cce366a + "@polkadot/util": "npm:^13.4.3" + tslib: "npm:^2.8.1" + checksum: 10/5570cf7f855d0ab490a94803f769f48a55f40af7ff8c9b603f60f55b75a8435836dbc4acda68011ec9d3b75d89a6a51fa117221d0790fd2d2b8d8517a260598c languageName: node linkType: hard @@ -1548,9 +1548,9 @@ __metadata: version: 15.9.2 resolution: "@polkadot/types-support@npm:15.9.2" dependencies: - "@polkadot/util": ^13.4.4 - tslib: ^2.8.1 - checksum: 31cf062103c39b98bea0c9acb49aa5d576a756b0c96a3a4fb0c8ce092ebdc63d5ea12c6ceafd96643a84df96a49bac49b72781501b4b5708bad8197c7efc3f6d + "@polkadot/util": "npm:^13.4.4" + tslib: "npm:^2.8.1" + checksum: 10/a52c47cb9f23eee5f5dd6e1bdb65d508a30ec3ac11744520d9600ecd924886a1b192d56b82719f86b375988bbb2646fa01a409ca9e78e0e959a40243241c15e8 languageName: node linkType: hard @@ -1558,15 +1558,15 @@ __metadata: version: 15.8.1 resolution: "@polkadot/types@npm:15.8.1" dependencies: - "@polkadot/keyring": ^13.4.3 - "@polkadot/types-augment": 15.8.1 - "@polkadot/types-codec": 15.8.1 - "@polkadot/types-create": 15.8.1 - "@polkadot/util": ^13.4.3 - "@polkadot/util-crypto": ^13.4.3 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: 57ac961701ba4320667dd08c95453b2f2363b9666796dfd9f00901ddd3ed97b14500a1e04b892c3c4647853934f6f629c46ffff5995e6df3464cf0a42eac0d0c + "@polkadot/keyring": "npm:^13.4.3" + "@polkadot/types-augment": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/types-create": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + "@polkadot/util-crypto": "npm:^13.4.3" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/a93249891e636030fc9723bea0be22af3c5442d91271f5f50ed8ce657a7a300ea65dc494c84fce96aa25a2c980bcf9420fb2a917cf786d3b64d5a0f54f0edcdc languageName: node linkType: hard @@ -1574,15 +1574,15 @@ __metadata: version: 15.9.2 resolution: "@polkadot/types@npm:15.9.2" dependencies: - "@polkadot/keyring": ^13.4.4 - "@polkadot/types-augment": 15.9.2 - "@polkadot/types-codec": 15.9.2 - "@polkadot/types-create": 15.9.2 - "@polkadot/util": ^13.4.4 - "@polkadot/util-crypto": ^13.4.4 - rxjs: ^7.8.1 - tslib: ^2.8.1 - checksum: 344d4de44325e289fa1143287c73cb42f147c3cb8839a33ec2c2d669034b27ba84ecce7ff0d8daaf385a8dce744ba098ecba571037044d6869acd7e3aee18f86 + "@polkadot/keyring": "npm:^13.4.4" + "@polkadot/types-augment": "npm:15.9.2" + "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/types-create": "npm:15.9.2" + "@polkadot/util": "npm:^13.4.4" + "@polkadot/util-crypto": "npm:^13.4.4" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/378fd63cdcb52531fbead73df9d7a4a8cb4ee3d3c7a0587e1474092b49548aa154a0d77168bc775463dbdf63fcb029efbec76d467e2ad5ebf12b267ab4f43a40 languageName: node linkType: hard @@ -1590,19 +1590,19 @@ __metadata: version: 3.13.1 resolution: "@polkadot/ui-keyring@npm:3.13.1" dependencies: - "@polkadot/keyring": ^13.4.4 - "@polkadot/ui-settings": 3.13.1 - "@polkadot/util": ^13.4.4 - "@polkadot/util-crypto": ^13.4.4 - mkdirp: ^3.0.1 - rxjs: ^7.8.1 - store: ^2.0.12 - tslib: ^2.8.1 + "@polkadot/keyring": "npm:^13.4.4" + "@polkadot/ui-settings": "npm:3.13.1" + "@polkadot/util": "npm:^13.4.4" + "@polkadot/util-crypto": "npm:^13.4.4" + mkdirp: "npm:^3.0.1" + rxjs: "npm:^7.8.1" + store: "npm:^2.0.12" + tslib: "npm:^2.8.1" peerDependencies: "@polkadot/keyring": "*" "@polkadot/ui-settings": "*" "@polkadot/util": "*" - checksum: e0082ee43412e1db2c194b9e052329e022de3e41681b0874b8452f454a678c644cb9ca67e1d8b99d16df15f8d711d181fa515ec339ecd41bf7f5c1a72460c051 + checksum: 10/65dc6b95cafb1f0e35b0e43f8de9765d5a3012462bcff84c5521759a7fbced83ccc388d49d9261157248be1822f78d1cbbf546b287169094c1d0d61a690036f9 languageName: node linkType: hard @@ -1610,15 +1610,15 @@ __metadata: version: 3.13.1 resolution: "@polkadot/ui-settings@npm:3.13.1" dependencies: - "@polkadot/networks": ^13.4.4 - "@polkadot/util": ^13.4.4 - eventemitter3: ^5.0.1 - store: ^2.0.12 - tslib: ^2.8.1 + "@polkadot/networks": "npm:^13.4.4" + "@polkadot/util": "npm:^13.4.4" + eventemitter3: "npm:^5.0.1" + store: "npm:^2.0.12" + tslib: "npm:^2.8.1" peerDependencies: "@polkadot/networks": "*" "@polkadot/util": "*" - checksum: 2231c17252d83230e967c686e37efac81c291279d9090d14b1267ce86f387b46c2213a1e2789cc7021b23717c42337b679a89397604435ad43cd63b892cd69ba + checksum: 10/a6c1d1e9de0561d24ec1ebae8fe670054930bb480e14de4618113a4fca0457e0a7fa5d7c9809a8661dc417fc4f2334ae21f05d39445aa4fd7e0c0bc59a64ed16 languageName: node linkType: hard @@ -1626,12 +1626,12 @@ __metadata: version: 3.13.1 resolution: "@polkadot/ui-shared@npm:3.13.1" dependencies: - colord: ^2.9.3 - tslib: ^2.8.1 + colord: "npm:^2.9.3" + tslib: "npm:^2.8.1" peerDependencies: "@polkadot/util": "*" "@polkadot/util-crypto": "*" - checksum: 21e6c2f2d2d05b483fa0270d352a7ecefe2a5e0a502bcca8feb7996478ddeba257a65a1f0282897342531500e9ba9c156be0afb489a2e467731712ab2b16659a + checksum: 10/abfaf43e1f95701433d0fa8938eca19ca8aade32977117090a9eeec740300fb938e72cf8b0cbc0f7406b459d7afcd792574b5b65245fb133d044a9c625827b86 languageName: node linkType: hard @@ -1639,19 +1639,19 @@ __metadata: version: 13.4.4 resolution: "@polkadot/util-crypto@npm:13.4.4" dependencies: - "@noble/curves": ^1.3.0 - "@noble/hashes": ^1.3.3 - "@polkadot/networks": 13.4.4 - "@polkadot/util": 13.4.4 - "@polkadot/wasm-crypto": ^7.4.1 - "@polkadot/wasm-util": ^7.4.1 - "@polkadot/x-bigint": 13.4.4 - "@polkadot/x-randomvalues": 13.4.4 - "@scure/base": ^1.1.7 - tslib: ^2.8.0 + "@noble/curves": "npm:^1.3.0" + "@noble/hashes": "npm:^1.3.3" + "@polkadot/networks": "npm:13.4.4" + "@polkadot/util": "npm:13.4.4" + "@polkadot/wasm-crypto": "npm:^7.4.1" + "@polkadot/wasm-util": "npm:^7.4.1" + "@polkadot/x-bigint": "npm:13.4.4" + "@polkadot/x-randomvalues": "npm:13.4.4" + "@scure/base": "npm:^1.1.7" + tslib: "npm:^2.8.0" peerDependencies: "@polkadot/util": 13.4.4 - checksum: a97eb0b3096ea2bb6deefd6b14d5d3ecd1cbf6ad95a857b3123b6db8ce57c1fbf212d3b19bd4c736cc2bb6c0dec41550f2fc470fdc3913d5de9e5cdd5052cf42 + checksum: 10/085a183b0e8a7490b174849e85f14d2903b105f50e8771db76f7ad23e73c345b4c270246b4ffd1afa2f9b5ef0ef48f4637ab0aa1b4a7a8d0452d28d7c623a427 languageName: node linkType: hard @@ -1659,14 +1659,14 @@ __metadata: version: 13.4.4 resolution: "@polkadot/util@npm:13.4.4" dependencies: - "@polkadot/x-bigint": 13.4.4 - "@polkadot/x-global": 13.4.4 - "@polkadot/x-textdecoder": 13.4.4 - "@polkadot/x-textencoder": 13.4.4 - "@types/bn.js": ^5.1.6 - bn.js: ^5.2.1 - tslib: ^2.8.0 - checksum: e81f964f02c8c8ababa54c1dbd62eb4189692ac9a607836b8edfd0d2bb139172d1ea88cebd1c44b15484a61c1fbb6d01f9b444ecfa9eb5c0cec13f7c684ea2f9 + "@polkadot/x-bigint": "npm:13.4.4" + "@polkadot/x-global": "npm:13.4.4" + "@polkadot/x-textdecoder": "npm:13.4.4" + "@polkadot/x-textencoder": "npm:13.4.4" + "@types/bn.js": "npm:^5.1.6" + bn.js: "npm:^5.2.1" + tslib: "npm:^2.8.0" + checksum: 10/788d63bc43a6a090eec06b9fd313e5b8290c6aecafa73efb8b20ef96143b1ef06eb417aea4dd237c530b4c38dd6f2be7c04f865f806b287897fdbea8575d5f92 languageName: node linkType: hard @@ -1674,12 +1674,12 @@ __metadata: version: 7.4.1 resolution: "@polkadot/wasm-bridge@npm:7.4.1" dependencies: - "@polkadot/wasm-util": 7.4.1 - tslib: ^2.7.0 + "@polkadot/wasm-util": "npm:7.4.1" + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" "@polkadot/x-randomvalues": "*" - checksum: 2cb4389853764eccebbe37a36e583a240b06e20c726247173c3ff5d85e198544c17ebef302da2e40ccd67f4fdb81454ab01cfbfc2fb93b1b3553d5bcdf4fe1bc + checksum: 10/b1d687ff433974cb34e54539b69209b569c4faf818e3cf376601d76acacc946bd56e5c06b18f0720dd1f63454f8e74f65bc37f259c7fca35d58623d27154b033 languageName: node linkType: hard @@ -1687,10 +1687,10 @@ __metadata: version: 7.4.1 resolution: "@polkadot/wasm-crypto-asmjs@npm:7.4.1" dependencies: - tslib: ^2.7.0 + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" - checksum: 983c345b034723d1967349f446682f79c1ee02030895153fd4aa137cd00bbf8788ddfeb0825e2118ee5db2894707f4224d61eabe931c028d22d1f10e52a1acd8 + checksum: 10/68df2338bff14c0331d62871b66e31cea1005eac8f136c294074f7350d4c342bba17a7edd3cc9aecb2ae63dad4e927422e7be562c446bb2b7ff1a6af17bb8eee languageName: node linkType: hard @@ -1698,15 +1698,15 @@ __metadata: version: 7.4.1 resolution: "@polkadot/wasm-crypto-init@npm:7.4.1" dependencies: - "@polkadot/wasm-bridge": 7.4.1 - "@polkadot/wasm-crypto-asmjs": 7.4.1 - "@polkadot/wasm-crypto-wasm": 7.4.1 - "@polkadot/wasm-util": 7.4.1 - tslib: ^2.7.0 + "@polkadot/wasm-bridge": "npm:7.4.1" + "@polkadot/wasm-crypto-asmjs": "npm:7.4.1" + "@polkadot/wasm-crypto-wasm": "npm:7.4.1" + "@polkadot/wasm-util": "npm:7.4.1" + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" "@polkadot/x-randomvalues": "*" - checksum: fc697dc76d99b9597750abe3739da28ed3731b199eb8efc522bab03bca4fb9b34ece091ebd9bd26509d75a9785078724417754ac45e1fec4ed541b805fc75025 + checksum: 10/d12c791214301419d94f5b374b443addc59c45e155f67b9503db4fe72866fa92e040ce8764f6dd8b4ce95005d4508a83efe832c6df4c946b7f14c18d28e8f0c1 languageName: node linkType: hard @@ -1714,11 +1714,11 @@ __metadata: version: 7.4.1 resolution: "@polkadot/wasm-crypto-wasm@npm:7.4.1" dependencies: - "@polkadot/wasm-util": 7.4.1 - tslib: ^2.7.0 + "@polkadot/wasm-util": "npm:7.4.1" + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" - checksum: 303c53cdb5a9219f52827cb51bae8be3e897317280adea8a6507a5cbf3ad4b4bd62b5ca7ceba02f972dc0df1e36a4a169b9eaf863076a913c2a612e9c71742f4 + checksum: 10/22cd4e5d734bc08f6707d25cf43c9b75af335ee39284bf43dced0c72abd1300c7ebc3e956c3ce175db59655ed4fd1c37fc652c7851ee308de0bdf65331f7ba67 languageName: node linkType: hard @@ -1726,16 +1726,16 @@ __metadata: version: 7.4.1 resolution: "@polkadot/wasm-crypto@npm:7.4.1" dependencies: - "@polkadot/wasm-bridge": 7.4.1 - "@polkadot/wasm-crypto-asmjs": 7.4.1 - "@polkadot/wasm-crypto-init": 7.4.1 - "@polkadot/wasm-crypto-wasm": 7.4.1 - "@polkadot/wasm-util": 7.4.1 - tslib: ^2.7.0 + "@polkadot/wasm-bridge": "npm:7.4.1" + "@polkadot/wasm-crypto-asmjs": "npm:7.4.1" + "@polkadot/wasm-crypto-init": "npm:7.4.1" + "@polkadot/wasm-crypto-wasm": "npm:7.4.1" + "@polkadot/wasm-util": "npm:7.4.1" + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" "@polkadot/x-randomvalues": "*" - checksum: c3c155ad08a3be5b3de22743a3e8f3658082150138e770d4604e55256671021fb9d2f191fc228b0a7893a1af1cfce21daa11f7300a8b4cf1037de01aad583dcf + checksum: 10/7fbb38c15217965066904dfa007dafc835ed828c0a33ef6621f772fdd50b634aa0862118713e5bf564dc17891f3e3a6f09a589b447ba4e39f2e9847a0f5383be languageName: node linkType: hard @@ -1743,10 +1743,10 @@ __metadata: version: 7.4.1 resolution: "@polkadot/wasm-util@npm:7.4.1" dependencies: - tslib: ^2.7.0 + tslib: "npm:^2.7.0" peerDependencies: "@polkadot/util": "*" - checksum: 16995482059ea7b3fa95ecb8bddd1465af64ca8b0b42b9942839fd0aa7bf556b7f4c914eb3bfe035d73ec5f1dc91f1b0b5d502bfb9d8b809d4399cd15b934e70 + checksum: 10/08effda106378716954267cb268035a37d2c0a8c1db2e6f617ccd7b4f1e410342b4ff1c26db95b828aeb23e2b5512ca72f389055d717c54fda00e97fba89462a languageName: node linkType: hard @@ -1754,9 +1754,9 @@ __metadata: version: 13.4.4 resolution: "@polkadot/x-bigint@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.4 - tslib: ^2.8.0 - checksum: 8c18c9164e6d744d708aa66dd2edcdbecf2c8d83813444bcd9772002433718fc06900a0e4628c0725efe12fab85e66dc947337d06df114c2bfcb47d430061a0d + "@polkadot/x-global": "npm:13.4.4" + tslib: "npm:^2.8.0" + checksum: 10/38c398fadd95905052cbb41eb5d96c44d39b891640aed7c3a3beec9a957a32577b4fc084fca59b0e8f2be4f67e3a6a4eb24a5113fc7c1a8e1d430894abe657f3 languageName: node linkType: hard @@ -1764,10 +1764,10 @@ __metadata: version: 13.4.4 resolution: "@polkadot/x-fetch@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.4 - node-fetch: ^3.3.2 - tslib: ^2.8.0 - checksum: f37d127ebfcd4f622c006134b5a7269978077808a4c82d7e90dd5b6057a552d53068c00761119777ad357dd92c3994e6cf8637267904441be4188847e7e593d7 + "@polkadot/x-global": "npm:13.4.4" + node-fetch: "npm:^3.3.2" + tslib: "npm:^2.8.0" + checksum: 10/7817711a4a8b8c0ff61f913d7cbebd5ee4a90c3a723c2011a5cbfb70a7382db1c630b269e5ce76e7505dada13a1d0b8c9aa27ab2cb4ebff5a77b5d8484611959 languageName: node linkType: hard @@ -1775,8 +1775,8 @@ __metadata: version: 13.4.4 resolution: "@polkadot/x-global@npm:13.4.4" dependencies: - tslib: ^2.8.0 - checksum: 690539a3e1ff54193fcbf8f650d7a7068616a3fa8845ebe98a0a601d2e87cb52b054fbab85856a4c7758acd280c5d0b3cefae01d159389f0aae4fdea79549d5e + tslib: "npm:^2.8.0" + checksum: 10/dd0df5886775e0304e4a912a9a16786df910cf91e225fbf671ca604059849896cc002839609bbb82f59eefe19a5bfa634e0eace3d15c93b760326abdaec4ae40 languageName: node linkType: hard @@ -1784,12 +1784,12 @@ __metadata: version: 13.4.4 resolution: "@polkadot/x-randomvalues@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.4 - tslib: ^2.8.0 + "@polkadot/x-global": "npm:13.4.4" + tslib: "npm:^2.8.0" peerDependencies: "@polkadot/util": 13.4.4 "@polkadot/wasm-util": "*" - checksum: b750df4f83ea866820b562c4d4bb0c3774af4734883542adb6bc16227b845b84a56a1c3089e57b865db104b0dafec6c18079a268aef57e9e5c851b309a6afe08 + checksum: 10/958fc03d1214d147d9e113e0f418240faeb53675036aace5f50e57e6913cc51324d0cd6890d9adb18b40d595a71158175e1edf7701b96c3bd57e4e4395b732d5 languageName: node linkType: hard @@ -1797,9 +1797,9 @@ __metadata: version: 13.4.4 resolution: "@polkadot/x-textdecoder@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.4 - tslib: ^2.8.0 - checksum: 44a09304c1013345518e9bf05e0ca506845447515ab018f857c5d7428c048e9ca8623be0b659ed1b9a1e9cf6d702775eef850b6ceab10f6ceea7da959e623892 + "@polkadot/x-global": "npm:13.4.4" + tslib: "npm:^2.8.0" + checksum: 10/a3778a824f5c232a518bb504d92aca35dbc9b9c777a4539adaac733fed98b340c78aabed8fcbf613683b21052615dcfdf06b58f5ad5165d2d0d3195c313b97b4 languageName: node linkType: hard @@ -1807,9 +1807,9 @@ __metadata: version: 13.4.4 resolution: "@polkadot/x-textencoder@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.4 - tslib: ^2.8.0 - checksum: 2534f585115d6bdd192ca76422789b897a3f50b7530014b71211f32fd201c1b0e4b1c3e2608599f09df1fcd0951b5c4c8ac04800584aa1b8521d1e8464179b88 + "@polkadot/x-global": "npm:13.4.4" + tslib: "npm:^2.8.0" + checksum: 10/222f7954fe1aac7806b3b3c7dd04b47c64ec1af77e59725b0634bdf666344782fff3e08f0ead86fad61ac7e6e2ae6826410366286657ed06633f663ab8ba9c6b languageName: node linkType: hard @@ -1817,17 +1817,17 @@ __metadata: version: 13.4.4 resolution: "@polkadot/x-ws@npm:13.4.4" dependencies: - "@polkadot/x-global": 13.4.4 - tslib: ^2.8.0 - ws: ^8.18.0 - checksum: 4729fcce9f09584d5cdccfa7e25f2c00f1654c11f1f3e804e41f696714b721eb22082532887ebf1c2bf4af2315544900747ab21dff38e01a80cdae166e3597f4 + "@polkadot/x-global": "npm:13.4.4" + tslib: "npm:^2.8.0" + ws: "npm:^8.18.0" + checksum: 10/33edb249fc18c46cc1e0cbf8574b8d768245649b584eca8fd729f2f64d0ff05c27d2146a951134c3d0d0a1b6987f0a7c59f2452a4fb182c92f157da45e3728fb languageName: node linkType: hard "@remix-run/router@npm:1.23.0": version: 1.23.0 resolution: "@remix-run/router@npm:1.23.0" - checksum: 6a403b7bc740f15185f3b68f90f98d4976fe231e819b44a0f0628783c4f31ca1072e3370c24b98488be3e4f68ecf51b20cb9463f20a5a6cf4c21929fc7721964 + checksum: 10/0a9f02c26c150d8210b05927c43d2f57ee8b7f812c81abb76df1721c7367ef692e54f4044981e756ce13d0619fb3c6a9b1514524d69aea9b32bfaf565299a8c7 languageName: node linkType: hard @@ -1876,77 +1876,77 @@ __metadata: "@rollup/rollup-linux-arm-gnueabihf@npm:4.40.0": version: 4.40.0 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.40.0" - conditions: os=linux & cpu=arm + conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard "@rollup/rollup-linux-arm-musleabihf@npm:4.40.0": version: 4.40.0 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.40.0" - conditions: os=linux & cpu=arm + conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard "@rollup/rollup-linux-arm64-gnu@npm:4.40.0": version: 4.40.0 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.40.0" - conditions: os=linux & cpu=arm64 + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard "@rollup/rollup-linux-arm64-musl@npm:4.40.0": version: 4.40.0 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.40.0" - conditions: os=linux & cpu=arm64 + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard "@rollup/rollup-linux-loongarch64-gnu@npm:4.40.0": version: 4.40.0 resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.40.0" - conditions: os=linux & cpu=loong64 + conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard "@rollup/rollup-linux-powerpc64le-gnu@npm:4.40.0": version: 4.40.0 resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.40.0" - conditions: os=linux & cpu=ppc64 + conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard "@rollup/rollup-linux-riscv64-gnu@npm:4.40.0": version: 4.40.0 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.40.0" - conditions: os=linux & cpu=riscv64 + conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard "@rollup/rollup-linux-riscv64-musl@npm:4.40.0": version: 4.40.0 resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.40.0" - conditions: os=linux & cpu=riscv64 + conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard "@rollup/rollup-linux-s390x-gnu@npm:4.40.0": version: 4.40.0 resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.40.0" - conditions: os=linux & cpu=s390x + conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard "@rollup/rollup-linux-x64-gnu@npm:4.40.0": version: 4.40.0 resolution: "@rollup/rollup-linux-x64-gnu@npm:4.40.0" - conditions: os=linux & cpu=x64 + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard "@rollup/rollup-linux-x64-musl@npm:4.40.0": version: 4.40.0 resolution: "@rollup/rollup-linux-x64-musl@npm:4.40.0" - conditions: os=linux & cpu=x64 + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard @@ -1974,28 +1974,28 @@ __metadata: "@rtsao/scc@npm:^1.1.0": version: 1.1.0 resolution: "@rtsao/scc@npm:1.1.0" - checksum: 17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 + checksum: 10/17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 languageName: node linkType: hard "@scure/base@npm:^1.1.1, @scure/base@npm:^1.1.7": version: 1.2.4 resolution: "@scure/base@npm:1.2.4" - checksum: db554eb550a1bd17684af9282e1ad751050a13d4add0e83ad61cc496680d7d1c1c1120ca780e72935a293bb59721c20a006a53a5eec6f6b5bdcd702cf27c8cae + checksum: 10/4b61679209af40143b49ce7b7570e1d9157c19df311ea6f57cd212d764b0b82222dbe3707334f08bec181caf1f047aca31aa91193c678d6548312cb3f9c82ab1 languageName: node linkType: hard "@substrate/connect-extension-protocol@npm:^2.0.0": version: 2.2.2 resolution: "@substrate/connect-extension-protocol@npm:2.2.2" - checksum: 6baca8b28eb515bf6508517183ce911a61c598aa676a670631da3da52fb83aeab7cad952ce85696a21dc0aa54adc08f211ea0365b06a0486a95c6a895f80a635 + checksum: 10/b5427526dafcbd0ec45d3ce7ef7a3d1018496cae7d8ef60f545d4e143420b3e51fe37af966f493e73f4cb9383bc78af756cdc19294e633240c8a86c620b3d8b5 languageName: node linkType: hard "@substrate/connect-known-chains@npm:^1.1.5": version: 1.10.0 resolution: "@substrate/connect-known-chains@npm:1.10.0" - checksum: 077259b89402f25a4482137c8588588096e0e1c952513bccc3adf4e402bb6f8e5fc2fac69d84544e9f1edf0118aa63193e15901ef6d5cd7aee7b768b3cc602e0 + checksum: 10/0c00bb6956382c4584e6883f2accb88cdcbe947b2e473c166748d4b9d5477a25ce1b7eb7d5d86f7bdbbb8ff60082378719c8174341cd64720b055b2d3ac4d0a2 languageName: node linkType: hard @@ -2003,11 +2003,11 @@ __metadata: version: 0.8.11 resolution: "@substrate/connect@npm:0.8.11" dependencies: - "@substrate/connect-extension-protocol": ^2.0.0 - "@substrate/connect-known-chains": ^1.1.5 - "@substrate/light-client-extension-helpers": ^1.0.0 - smoldot: 2.0.26 - checksum: c7c915ef51c43258f928323b8197b20f8dc3c14f5a5369b320a209df0037bd49aa5fee849486872bee22f40fced8be169e23a600d36b6f254d7e9e80ac2e1c9c + "@substrate/connect-extension-protocol": "npm:^2.0.0" + "@substrate/connect-known-chains": "npm:^1.1.5" + "@substrate/light-client-extension-helpers": "npm:^1.0.0" + smoldot: "npm:2.0.26" + checksum: 10/380ba85aa3aec4439fae2ee42173376615ca60262d9c37e6e43d1d65d0d0f63f38c009bb476e9a612b0b9985c1b5808c4d9a75aff9e1828c77e75c8b7584d824 languageName: node linkType: hard @@ -2015,23 +2015,23 @@ __metadata: version: 1.0.0 resolution: "@substrate/light-client-extension-helpers@npm:1.0.0" dependencies: - "@polkadot-api/json-rpc-provider": ^0.0.1 - "@polkadot-api/json-rpc-provider-proxy": ^0.1.0 - "@polkadot-api/observable-client": ^0.3.0 - "@polkadot-api/substrate-client": ^0.1.2 - "@substrate/connect-extension-protocol": ^2.0.0 - "@substrate/connect-known-chains": ^1.1.5 - rxjs: ^7.8.1 + "@polkadot-api/json-rpc-provider": "npm:^0.0.1" + "@polkadot-api/json-rpc-provider-proxy": "npm:^0.1.0" + "@polkadot-api/observable-client": "npm:^0.3.0" + "@polkadot-api/substrate-client": "npm:^0.1.2" + "@substrate/connect-extension-protocol": "npm:^2.0.0" + "@substrate/connect-known-chains": "npm:^1.1.5" + rxjs: "npm:^7.8.1" peerDependencies: smoldot: 2.x - checksum: 12b2180c1b5fa9884588e7e94c095ba6bdd4bc386ca54c2bd2d58e8b606b361b04636ae0536b1eb4a18398e31d191d5949e3b3ba9b3a01d6592f425fb671881c + checksum: 10/ca0726e8271aa9eb4f1edbb13e7f6986d45c9a4ae9a73a1a14aa9a41552821ca291a33459b7e8fc1ec1bde1ead9336a8bca4fb8781c060d5cbdd7e59ca96cb2d languageName: node linkType: hard "@substrate/ss58-registry@npm:^1.51.0": version: 1.51.0 resolution: "@substrate/ss58-registry@npm:1.51.0" - checksum: bfcba035e14648801f74802c76b195c22a86875cca89a577e21f5edd3e800578486f964a5117bad4b272f21695f8557fe713c3031c0c81269b76259470eb5a74 + checksum: 10/34eb21292f543a8be7c62ad3bcdae89d61c8a51e35a0be4687b6b4e955b5180a90a7691a9e6779f7509f8dfcfdfa372d8278087a9668521b9c501adb85c915b6 languageName: node linkType: hard @@ -2059,28 +2059,28 @@ __metadata: "@swc/core-linux-arm64-gnu@npm:1.11.21": version: 1.11.21 resolution: "@swc/core-linux-arm64-gnu@npm:1.11.21" - conditions: os=linux & cpu=arm64 + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard "@swc/core-linux-arm64-musl@npm:1.11.21": version: 1.11.21 resolution: "@swc/core-linux-arm64-musl@npm:1.11.21" - conditions: os=linux & cpu=arm64 + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard "@swc/core-linux-x64-gnu@npm:1.11.21": version: 1.11.21 resolution: "@swc/core-linux-x64-gnu@npm:1.11.21" - conditions: os=linux & cpu=x64 + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard "@swc/core-linux-x64-musl@npm:1.11.21": version: 1.11.21 resolution: "@swc/core-linux-x64-musl@npm:1.11.21" - conditions: os=linux & cpu=x64 + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard @@ -2109,18 +2109,18 @@ __metadata: version: 1.11.21 resolution: "@swc/core@npm:1.11.21" dependencies: - "@swc/core-darwin-arm64": 1.11.21 - "@swc/core-darwin-x64": 1.11.21 - "@swc/core-linux-arm-gnueabihf": 1.11.21 - "@swc/core-linux-arm64-gnu": 1.11.21 - "@swc/core-linux-arm64-musl": 1.11.21 - "@swc/core-linux-x64-gnu": 1.11.21 - "@swc/core-linux-x64-musl": 1.11.21 - "@swc/core-win32-arm64-msvc": 1.11.21 - "@swc/core-win32-ia32-msvc": 1.11.21 - "@swc/core-win32-x64-msvc": 1.11.21 - "@swc/counter": ^0.1.3 - "@swc/types": ^0.1.21 + "@swc/core-darwin-arm64": "npm:1.11.21" + "@swc/core-darwin-x64": "npm:1.11.21" + "@swc/core-linux-arm-gnueabihf": "npm:1.11.21" + "@swc/core-linux-arm64-gnu": "npm:1.11.21" + "@swc/core-linux-arm64-musl": "npm:1.11.21" + "@swc/core-linux-x64-gnu": "npm:1.11.21" + "@swc/core-linux-x64-musl": "npm:1.11.21" + "@swc/core-win32-arm64-msvc": "npm:1.11.21" + "@swc/core-win32-ia32-msvc": "npm:1.11.21" + "@swc/core-win32-x64-msvc": "npm:1.11.21" + "@swc/counter": "npm:^0.1.3" + "@swc/types": "npm:^0.1.21" peerDependencies: "@swc/helpers": ">=0.5.17" dependenciesMeta: @@ -2147,14 +2147,14 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 11f1e54ba42af019ed123ab0019ff43fd67c35a7b6efe0d3c83afddb244b2b0f65832e56c213ea9ed630925f62101a8155bc8aa18a033e4474d0cf52e9c273a7 + checksum: 10/98a0f201a0a4aa026b0b07c61c8da49d94d4ac3b059b466416c90b9b2cb4f457d836ae55ccfe90b0a89c7bdde36526ba5b7747c4e616c0d556c733e3728e9dd4 languageName: node linkType: hard "@swc/counter@npm:^0.1.3": version: 0.1.3 resolution: "@swc/counter@npm:0.1.3" - checksum: df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 + checksum: 10/df8f9cfba9904d3d60f511664c70d23bb323b3a0803ec9890f60133954173047ba9bdeabce28cd70ba89ccd3fd6c71c7b0bd58be85f611e1ffbe5d5c18616598 languageName: node linkType: hard @@ -2162,8 +2162,8 @@ __metadata: version: 0.1.21 resolution: "@swc/types@npm:0.1.21" dependencies: - "@swc/counter": ^0.1.3 - checksum: 857621e50ec78407bfeaa92663be86fc9ee2c9c103ccffd7f48c55b6f3c67a82e270f6524c7974c2c608a2ed0fcf4f00c20f61c8d1fdfd2aa55b2c42a28223f1 + "@swc/counter": "npm:^0.1.3" + checksum: 10/6554bf5c78519f49099a2ba448d170191a14b1c7a35df848f10ee4d6c03ecd681e5213884905187de1d1d221589ec8b5cb77f477d099dc1627c3ec9d7f2fcdb0 languageName: node linkType: hard @@ -2171,10 +2171,10 @@ __metadata: version: 0.5.10 resolution: "@tailwindcss/forms@npm:0.5.10" dependencies: - mini-svg-data-uri: ^1.2.3 + mini-svg-data-uri: "npm:^1.2.3" peerDependencies: tailwindcss: ">=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1" - checksum: 4526d02edccc4e44599d9588f83e4ac3e9435d137da5638653de2e74d5b612ade449a8c26d075be21692c1ac00a514aaffdb6723e526e3c8314c9a75a9f45979 + checksum: 10/d67ea58d8e92a262455bafd1b88772f5d9dbdc034f70d37b31af3617d1505231ff485c1209467715d139f392cd2feb43e3cdb4656816594e97c1304054e121d6 languageName: node linkType: hard @@ -2182,46 +2182,46 @@ __metadata: version: 3.13.6 resolution: "@tanstack/react-virtual@npm:3.13.6" dependencies: - "@tanstack/virtual-core": 3.13.6 + "@tanstack/virtual-core": "npm:3.13.6" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - checksum: 4500088f7719a5a6241f4fcf24074a2fa8cb54d9c5c50786e909e87aee98af2ac0c1513139984c388e97e8ddb65d108390d39083b0b793fbfd343976f13447c4 + checksum: 10/4500088f7719a5a6241f4fcf24074a2fa8cb54d9c5c50786e909e87aee98af2ac0c1513139984c388e97e8ddb65d108390d39083b0b793fbfd343976f13447c4 languageName: node linkType: hard "@tanstack/virtual-core@npm:3.13.6": version: 3.13.6 resolution: "@tanstack/virtual-core@npm:3.13.6" - checksum: ac3dfde6208e4dbe404a4cdb3e0de772af17b8c245d313d1b13fe31910e680dc3f4f6b699ad244b148363700293841d2a2dadf2cc50354da294acac7c4af7c86 + checksum: 10/f6fc9e902077e68fcfc2fe936fcd90c89b128b1fca206d7e1d71bea0cf351994c11685a2aedeb9c9305596a1bc77ac9ef27eb889a2b348fcfbfa80dd608bb73c languageName: node linkType: hard "@tsconfig/node10@npm:^1.0.7": version: 1.0.11 resolution: "@tsconfig/node10@npm:1.0.11" - checksum: 51fe47d55fe1b80ec35e6e5ed30a13665fd3a531945350aa74a14a1e82875fb60b350c2f2a5e72a64831b1b6bc02acb6760c30b3738b54954ec2dea82db7a267 + checksum: 10/51fe47d55fe1b80ec35e6e5ed30a13665fd3a531945350aa74a14a1e82875fb60b350c2f2a5e72a64831b1b6bc02acb6760c30b3738b54954ec2dea82db7a267 languageName: node linkType: hard "@tsconfig/node12@npm:^1.0.7": version: 1.0.11 resolution: "@tsconfig/node12@npm:1.0.11" - checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a + checksum: 10/5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a languageName: node linkType: hard "@tsconfig/node14@npm:^1.0.0": version: 1.0.3 resolution: "@tsconfig/node14@npm:1.0.3" - checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d + checksum: 10/19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d languageName: node linkType: hard "@tsconfig/node16@npm:^1.0.2": version: 1.0.4 resolution: "@tsconfig/node16@npm:1.0.4" - checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff + checksum: 10/202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff languageName: node linkType: hard @@ -2229,8 +2229,8 @@ __metadata: version: 0.9.0 resolution: "@tybys/wasm-util@npm:0.9.0" dependencies: - tslib: ^2.4.0 - checksum: 8d44c64e64e39c746e45b5dff7b534716f20e1f6e8fc206f8e4c8ac454ec0eb35b65646e446dd80745bc898db37a4eca549a936766d447c2158c9c43d44e7708 + tslib: "npm:^2.4.0" + checksum: 10/aa58e64753a420ad1eefaf7bacef3dda61d74f9336925943d9244132d5b48d9242f734f1e707fd5ccfa6dd1d8ec8e6debc234b4dedb3a5b0d8486d1f373350b2 languageName: node linkType: hard @@ -2238,12 +2238,12 @@ __metadata: version: 7.20.5 resolution: "@types/babel__core@npm:7.20.5" dependencies: - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - "@types/babel__generator": "*" - "@types/babel__template": "*" - "@types/babel__traverse": "*" - checksum: a3226f7930b635ee7a5e72c8d51a357e799d19cbf9d445710fa39ab13804f79ab1a54b72ea7d8e504659c7dfc50675db974b526142c754398d7413aa4bc30845 + "@babel/parser": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + "@types/babel__generator": "npm:*" + "@types/babel__template": "npm:*" + "@types/babel__traverse": "npm:*" + checksum: 10/c32838d280b5ab59d62557f9e331d3831f8e547ee10b4f85cb78753d97d521270cebfc73ce501e9fb27fe71884d1ba75e18658692c2f4117543f0fc4e3e118b3 languageName: node linkType: hard @@ -2251,8 +2251,8 @@ __metadata: version: 7.27.0 resolution: "@types/babel__generator@npm:7.27.0" dependencies: - "@babel/types": ^7.0.0 - checksum: e6739cacfa276c1ad38e1d8a6b4b1f816c2c11564e27f558b68151728489aaf0f4366992107ee4ed7615dfa303f6976dedcdce93df2b247116d1bcd1607ee260 + "@babel/types": "npm:^7.0.0" + checksum: 10/f572e67a9a39397664350a4437d8a7fbd34acc83ff4887a8cf08349e39f8aeb5ad2f70fb78a0a0a23a280affe3a5f4c25f50966abdce292bcf31237af1c27b1a languageName: node linkType: hard @@ -2260,9 +2260,9 @@ __metadata: version: 7.4.4 resolution: "@types/babel__template@npm:7.4.4" dependencies: - "@babel/parser": ^7.1.0 - "@babel/types": ^7.0.0 - checksum: d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 + "@babel/parser": "npm:^7.1.0" + "@babel/types": "npm:^7.0.0" + checksum: 10/d7a02d2a9b67e822694d8e6a7ddb8f2b71a1d6962dfd266554d2513eefbb205b33ca71a0d163b1caea3981ccf849211f9964d8bd0727124d18ace45aa6c9ae29 languageName: node linkType: hard @@ -2270,22 +2270,22 @@ __metadata: version: 7.20.7 resolution: "@types/babel__traverse@npm:7.20.7" dependencies: - "@babel/types": ^7.20.7 - checksum: 2a2e5ad29c34a8b776162b0fe81c9ccb6459b2b46bf230f756ba0276a0258fcae1cbcfdccbb93a1e8b1df44f4939784ee8a1a269f95afe0c78b24b9cb6d50dd1 + "@babel/types": "npm:^7.20.7" + checksum: 10/d005b58e1c26bdafc1ce564f60db0ee938393c7fc586b1197bdb71a02f7f33f72bc10ae4165776b6cafc77c4b6f2e1a164dd20bc36518c471b1131b153b4baa6 languageName: node linkType: hard "@types/bcryptjs@npm:^2.4.6": version: 2.4.6 resolution: "@types/bcryptjs@npm:2.4.6" - checksum: 25ae1fd1e8a9bd688e22a8de905581d6d7bf26e823b797f895d2c488100b1f15d3c12a7d1a94f553087b010d316bf3978106df860e8e58fd13f52b4c708df5fd + checksum: 10/00153c460bd6bfc68e7670993a1ad8bd511413fd08e8a983cde1a8bf5a08afc5a51613c92ca4ad350d5a924499afed57f008a66a9abc1fd83879061596814124 languageName: node linkType: hard "@types/big.js@npm:^6.2.2": version: 6.2.2 resolution: "@types/big.js@npm:6.2.2" - checksum: 6aeff1b763e71b79bb796c9f395ebecdd5a6aeb997b1c9b9acb2e14aa2f88eec620f26a6aedeba120ec7a881a0834d0b8e9869da864c60bba623f92d6de6f848 + checksum: 10/075cf86f454bf98fedf1957020e6c36d1f58c80694c0ad445dee45b44727f4af254c59800d96018e966348acd8499a2db301cb4a6b39e5bf5285b4a1e1982f5c languageName: node linkType: hard @@ -2293,8 +2293,8 @@ __metadata: version: 5.1.6 resolution: "@types/bn.js@npm:5.1.6" dependencies: - "@types/node": "*" - checksum: 887411126d40e3d28aef2df8075cda2832db2b0e926bb4046039bbb026f2e3cfbcf1a3ce90bd935be0fcc039f8009e32026dfbb84a11c1f5d051cd7f8194ba23 + "@types/node": "npm:*" + checksum: 10/db565b5a2af59b09459d74441153bf23a0e80f1fb2d070330786054e7ce1a7285dc40afcd8f289426c61a83166bdd70814f70e2d439744686aac5d3ea75daf13 languageName: node linkType: hard @@ -2302,8 +2302,8 @@ __metadata: version: 4.1.12 resolution: "@types/debug@npm:4.1.12" dependencies: - "@types/ms": "*" - checksum: 47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053 + "@types/ms": "npm:*" + checksum: 10/47876a852de8240bfdaf7481357af2b88cb660d30c72e73789abf00c499d6bc7cd5e52f41c915d1b9cd8ec9fef5b05688d7b7aef17f7f272c2d04679508d1053 languageName: node linkType: hard @@ -2311,15 +2311,15 @@ __metadata: version: 1.0.5 resolution: "@types/estree-jsx@npm:1.0.5" dependencies: - "@types/estree": "*" - checksum: a028ab0cd7b2950168a05c6a86026eb3a36a54a4adfae57f13911d7b49dffe573d9c2b28421b2d029b49b3d02fcd686611be2622dc3dad6d9791166c083f6008 + "@types/estree": "npm:*" + checksum: 10/a028ab0cd7b2950168a05c6a86026eb3a36a54a4adfae57f13911d7b49dffe573d9c2b28421b2d029b49b3d02fcd686611be2622dc3dad6d9791166c083f6008 languageName: node linkType: hard "@types/estree@npm:*, @types/estree@npm:1.0.7, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": version: 1.0.7 resolution: "@types/estree@npm:1.0.7" - checksum: d9312b7075bdd08f3c9e1bb477102f5458aaa42a8eec31a169481ce314ca99ac716645cff4fca81ea65a2294b0276a0de63159d1baca0f8e7b5050a92de950ad + checksum: 10/419c845ece767ad4b21171e6e5b63dabb2eb46b9c0d97361edcd9cabbf6a95fcadb91d89b5fa098d1336fa0b8fceaea82fca97a2ef3971f5c86e53031e157b21 languageName: node linkType: hard @@ -2327,22 +2327,22 @@ __metadata: version: 3.0.4 resolution: "@types/hast@npm:3.0.4" dependencies: - "@types/unist": "*" - checksum: 7a973e8d16fcdf3936090fa2280f408fb2b6a4f13b42edeb5fbd614efe042b82eac68e298e556d50f6b4ad585a3a93c353e9c826feccdc77af59de8dd400d044 + "@types/unist": "npm:*" + checksum: 10/732920d81bb7605895776841b7658b4d8cc74a43a8fa176017cc0fb0ecc1a4c82a2b75a4fe6b71aa262b649d3fb62858c6789efa3793ea1d40269953af96ecb5 languageName: node linkType: hard "@types/json-schema@npm:^7.0.15": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" - checksum: 97ed0cb44d4070aecea772b7b2e2ed971e10c81ec87dd4ecc160322ffa55ff330dace1793489540e3e318d90942064bb697cc0f8989391797792d919737b3b98 + checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7 languageName: node linkType: hard "@types/json5@npm:^0.0.29": version: 0.0.29 resolution: "@types/json5@npm:0.0.29" - checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac + checksum: 10/4e5aed58cabb2bbf6f725da13421aa50a49abb6bc17bfab6c31b8774b073fa7b50d557c61f961a09a85f6056151190f8ac95f13f5b48136ba5841f7d4484ec56 languageName: node linkType: hard @@ -2350,15 +2350,15 @@ __metadata: version: 4.0.4 resolution: "@types/mdast@npm:4.0.4" dependencies: - "@types/unist": "*" - checksum: 20c4e9574cc409db662a35cba52b068b91eb696b3049e94321219d47d34c8ccc99a142be5c76c80a538b612457b03586bc2f6b727a3e9e7530f4c8568f6282ee + "@types/unist": "npm:*" + checksum: 10/efe3ec11b9ee0015a396c4fb4cd1b6f31b51b8ae9783c59560e6fc0bf6c2fa1dcc7fccaf45fa09a6c8b3397fab9dc8d431433935cae3835caa70a18f7fc775f8 languageName: node linkType: hard "@types/ms@npm:*": version: 2.1.0 resolution: "@types/ms@npm:2.1.0" - checksum: 532d2ebb91937ccc4a89389715e5b47d4c66e708d15942fe6cc25add6dc37b2be058230a327dd50f43f89b8b6d5d52b74685a9e8f70516edfc9bdd6be910eff4 + checksum: 10/532d2ebb91937ccc4a89389715e5b47d4c66e708d15942fe6cc25add6dc37b2be058230a327dd50f43f89b8b6d5d52b74685a9e8f70516edfc9bdd6be910eff4 languageName: node linkType: hard @@ -2366,8 +2366,8 @@ __metadata: version: 22.14.1 resolution: "@types/node@npm:22.14.1" dependencies: - undici-types: ~6.21.0 - checksum: e22363f40ac8290da2bb5261c2b348241fd93b000908cefd3c56575df9d4f6b8d102fc8631275eac7ec4a9e0ac4f38f01c9d8104ebbda76c936aef96fd1e55f3 + undici-types: "npm:~6.21.0" + checksum: 10/561b1ad98ef5176d6da856ffbbe494f16655149f6a7d561de0423c8784910c81267d7d6459f59d68a97b3cbae9b5996b3b5dfe64f4de3de2239d295dcf4a4dcc languageName: node linkType: hard @@ -2375,15 +2375,15 @@ __metadata: version: 22.7.5 resolution: "@types/node@npm:22.7.5" dependencies: - undici-types: ~6.19.2 - checksum: 1a8bbb504efaffcef7b8491074a428e5c0b5425b0c0ffb13e7262cb8462c275e8cc5eaf90a38d8fbf52a1eeda7c01ab3b940673c43fc2414140779c973e40ec6 + undici-types: "npm:~6.19.2" + checksum: 10/e8ba102f8c1aa7623787d625389be68d64e54fcbb76d41f6c2c64e8cf4c9f4a2370e7ef5e5f1732f3c57529d3d26afdcb2edc0101c5e413a79081449825c57ac languageName: node linkType: hard "@types/parse-json@npm:^4.0.0": version: 4.0.2 resolution: "@types/parse-json@npm:4.0.2" - checksum: 5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 + checksum: 10/5bf62eec37c332ad10059252fc0dab7e7da730764869c980b0714777ad3d065e490627be9f40fc52f238ffa3ac4199b19de4127196910576c2fe34dd47c7a470 languageName: node linkType: hard @@ -2392,7 +2392,7 @@ __metadata: resolution: "@types/react-dom@npm:19.1.2" peerDependencies: "@types/react": ^19.0.0 - checksum: 62a5c398e87b5a42f34497152c67367db70d5e348a05fc4bd78c119fc8d4367c02833c022b2f5dba4df33ae65b7ff76409847722ce6b8f9ea5d31983832688da + checksum: 10/bcadf2a1f4d23db8c1aaa0d13e30866d7bcda076801bbc66df14512932e0802ddac526bf15f4cce9777cd6e0bd3803aba47a1d726977f5193b4bc173348508d0 languageName: node linkType: hard @@ -2401,7 +2401,7 @@ __metadata: resolution: "@types/react-transition-group@npm:4.4.12" peerDependencies: "@types/react": "*" - checksum: 13d36396cae4d3c316b03d4a0ba299f0d039c59368ba65e04b0c3dc06fd0a16f59d2c669c3e32d6d525a95423f156b84e550d26bff0bdd8df285f305f8f3a0ed + checksum: 10/ea14bc84f529a3887f9954b753843820ac8a3c49fcdfec7840657ecc6a8800aad98afdbe4b973eb96c7252286bde38476fcf64b1c09527354a9a9366e516d9a2 languageName: node linkType: hard @@ -2409,36 +2409,36 @@ __metadata: version: 19.1.2 resolution: "@types/react@npm:19.1.2" dependencies: - csstype: ^3.0.2 - checksum: 5a911a2c84be0c9451bb8a7c75c907af1f52afbb4d51b0d62e7516a9b0b1e63c3c1cdc35b79bfc6e66176c76cfff9d43023a781cd3dc59e2744715ced7d7e7c4 + csstype: "npm:^3.0.2" + checksum: 10/17803797227d2fc07a2cd6c17d57b1ea9b01eb16eca6318be60852c8d7467b4b58e675742f53d77ff4a37621a5814f16847dede73999181cb7f9449c1784fab6 languageName: node linkType: hard "@types/sinonjs__fake-timers@npm:8.1.1": version: 8.1.1 resolution: "@types/sinonjs__fake-timers@npm:8.1.1" - checksum: ca09d54d47091d87020824a73f026300fa06b17cd9f2f9b9387f28b549364b141ef194ee28db762f6588de71d8febcd17f753163cb7ea116b8387c18e80ebd5c + checksum: 10/567e01159b07eb19a56aa9a619bda963a3e2c1261b197b83fc664867228ce679e189450f0ae38483a08857155f94d9ae5d88e72c0f44f269103f63c2946a73ed languageName: node linkType: hard "@types/sizzle@npm:^2.3.2": version: 2.3.9 resolution: "@types/sizzle@npm:2.3.9" - checksum: 413811a79e7e9f1d8f47e6047ae0aea1530449d612304cdda1c30018e3d053b8544861ec2c70bdeca75a0a010192e6bb78efc6fb4caaafdd65c4eee90066686a + checksum: 10/413811a79e7e9f1d8f47e6047ae0aea1530449d612304cdda1c30018e3d053b8544861ec2c70bdeca75a0a010192e6bb78efc6fb4caaafdd65c4eee90066686a languageName: node linkType: hard "@types/unist@npm:*, @types/unist@npm:^3.0.0": version: 3.0.3 resolution: "@types/unist@npm:3.0.3" - checksum: 96e6453da9e075aaef1dc22482463898198acdc1eeb99b465e65e34303e2ec1e3b1ed4469a9118275ec284dc98019f63c3f5d49422f0e4ac707e5ab90fb3b71a + checksum: 10/96e6453da9e075aaef1dc22482463898198acdc1eeb99b465e65e34303e2ec1e3b1ed4469a9118275ec284dc98019f63c3f5d49422f0e4ac707e5ab90fb3b71a languageName: node linkType: hard "@types/unist@npm:^2.0.0": version: 2.0.11 resolution: "@types/unist@npm:2.0.11" - checksum: 6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e + checksum: 10/6d436e832bc35c6dde9f056ac515ebf2b3384a1d7f63679d12358766f9b313368077402e9c1126a14d827f10370a5485e628bf61aa91117cf4fc882423191a4e languageName: node linkType: hard @@ -2446,8 +2446,8 @@ __metadata: version: 2.10.3 resolution: "@types/yauzl@npm:2.10.3" dependencies: - "@types/node": "*" - checksum: 5ee966ea7bd6b2802f31ad4281c92c4c0b6dfa593c378a2582c58541fa113bec3d70eb0696b34ad95e8e6861a884cba6c3e351285816693ed176222f840a8c08 + "@types/node": "npm:*" + checksum: 10/5ee966ea7bd6b2802f31ad4281c92c4c0b6dfa593c378a2582c58541fa113bec3d70eb0696b34ad95e8e6861a884cba6c3e351285816693ed176222f840a8c08 languageName: node linkType: hard @@ -2455,20 +2455,20 @@ __metadata: version: 8.30.1 resolution: "@typescript-eslint/eslint-plugin@npm:8.30.1" dependencies: - "@eslint-community/regexpp": ^4.10.0 - "@typescript-eslint/scope-manager": 8.30.1 - "@typescript-eslint/type-utils": 8.30.1 - "@typescript-eslint/utils": 8.30.1 - "@typescript-eslint/visitor-keys": 8.30.1 - graphemer: ^1.4.0 - ignore: ^5.3.1 - natural-compare: ^1.4.0 - ts-api-utils: ^2.0.1 + "@eslint-community/regexpp": "npm:^4.10.0" + "@typescript-eslint/scope-manager": "npm:8.30.1" + "@typescript-eslint/type-utils": "npm:8.30.1" + "@typescript-eslint/utils": "npm:8.30.1" + "@typescript-eslint/visitor-keys": "npm:8.30.1" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.3.1" + natural-compare: "npm:^1.4.0" + ts-api-utils: "npm:^2.0.1" peerDependencies: "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: dbdc516ad95ac46d6ce4591356207e179def1b332883a635a3319fe8e2bcdb9de788f3df7a9afae80b7fa803a347be0ca90b45da06d33bc43ff67ec9182f3dbe + checksum: 10/769b0365c1eda5d15ecb24cd297ca60d264001d46e14f42fae30f6f519610414726885a8d5cf57ef5a01484f92166104a74fb2ca2fd2af28f11cab149b6de591 languageName: node linkType: hard @@ -2476,15 +2476,15 @@ __metadata: version: 8.30.1 resolution: "@typescript-eslint/parser@npm:8.30.1" dependencies: - "@typescript-eslint/scope-manager": 8.30.1 - "@typescript-eslint/types": 8.30.1 - "@typescript-eslint/typescript-estree": 8.30.1 - "@typescript-eslint/visitor-keys": 8.30.1 - debug: ^4.3.4 + "@typescript-eslint/scope-manager": "npm:8.30.1" + "@typescript-eslint/types": "npm:8.30.1" + "@typescript-eslint/typescript-estree": "npm:8.30.1" + "@typescript-eslint/visitor-keys": "npm:8.30.1" + debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: cac3cfe1c1e85e6639a05b9fedf3bdc56034eba063c1d637282c278cf6d4d6bd039f31513e9591056e8da4dd6c433d4f9ac841e8bee52a19e5b8709599a9168a + checksum: 10/ffff7bfa7e6b0233feb2d2c9bc27e0fd16faa50a00e9853efcc59de312420ef5a54b94833e80727bc5c966c1b211d70601c2337e33cc5610fa2f28d858642f5b languageName: node linkType: hard @@ -2492,9 +2492,9 @@ __metadata: version: 8.30.1 resolution: "@typescript-eslint/scope-manager@npm:8.30.1" dependencies: - "@typescript-eslint/types": 8.30.1 - "@typescript-eslint/visitor-keys": 8.30.1 - checksum: cef9e700167fa1345edf26f60b384f04d05c386d2a255f6b89d602306165b6d7cf2a6e5d51f683571af6ebf1eebf89c07aed7f3253f399d632ecbb2ef1cbbaf1 + "@typescript-eslint/types": "npm:8.30.1" + "@typescript-eslint/visitor-keys": "npm:8.30.1" + checksum: 10/ecae69888a06126d57f3ac2db9935199b708406e8cd84e0918dd8302f31771145d62b52bf3c454be43c5aa4f93685d3f8c15b118d0de1c0323e02113c127aa66 languageName: node linkType: hard @@ -2502,21 +2502,21 @@ __metadata: version: 8.30.1 resolution: "@typescript-eslint/type-utils@npm:8.30.1" dependencies: - "@typescript-eslint/typescript-estree": 8.30.1 - "@typescript-eslint/utils": 8.30.1 - debug: ^4.3.4 - ts-api-utils: ^2.0.1 + "@typescript-eslint/typescript-estree": "npm:8.30.1" + "@typescript-eslint/utils": "npm:8.30.1" + debug: "npm:^4.3.4" + ts-api-utils: "npm:^2.0.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 6283d4b4d0edd371e9ad8172030ba51e9b69ed6f19a1ad6ad8ea98a00d07e77dd2a2618cd12a0827762ccd3c058b746b1d77b975dc5e81aad6e1b19abee650a7 + checksum: 10/c7a285bae7806a1e4aa9840feb727fe47f5de4ef3d68ecd1bbebc593a72ec08df17953098d71dc83a6936a42d5a44bcd4a49e6f067ec0947293795b0a389498f languageName: node linkType: hard "@typescript-eslint/types@npm:8.30.1": version: 8.30.1 resolution: "@typescript-eslint/types@npm:8.30.1" - checksum: 264c4d8e1bef5b9e79509e2322a3978716768f03ef3af9ed62a7490bec04d3aaa1535b71221fe95f0d113227dfbade3664f5d5687d7859585c6bce536f138927 + checksum: 10/342ec75ba2c596ffaa93612c6c6afd2b0a05c346bdfa73ac208b49f1969b48a3f739f306431f9a10cf34e99e8585ca924fdde7f9508dd7869142b25f399d6bd6 languageName: node linkType: hard @@ -2524,17 +2524,17 @@ __metadata: version: 8.30.1 resolution: "@typescript-eslint/typescript-estree@npm:8.30.1" dependencies: - "@typescript-eslint/types": 8.30.1 - "@typescript-eslint/visitor-keys": 8.30.1 - debug: ^4.3.4 - fast-glob: ^3.3.2 - is-glob: ^4.0.3 - minimatch: ^9.0.4 - semver: ^7.6.0 - ts-api-utils: ^2.0.1 + "@typescript-eslint/types": "npm:8.30.1" + "@typescript-eslint/visitor-keys": "npm:8.30.1" + debug: "npm:^4.3.4" + fast-glob: "npm:^3.3.2" + is-glob: "npm:^4.0.3" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^2.0.1" peerDependencies: typescript: ">=4.8.4 <5.9.0" - checksum: f57a34e36de92aad859081bd64004fa8cbc5c00836145230bf6ed555bcd63a360e34086619aa77bbf17b97167a17be75b8a472c7951eee7a423760c482852b62 + checksum: 10/60c307fbb8ec86d28e4b2237b624427b7aee737bced82e5f94acc84229eae907e7742ccf0c9c0825326b3ccb9f72b14075893d90e06c28f8ce2fd04502c0b410 languageName: node linkType: hard @@ -2542,14 +2542,14 @@ __metadata: version: 8.30.1 resolution: "@typescript-eslint/utils@npm:8.30.1" dependencies: - "@eslint-community/eslint-utils": ^4.4.0 - "@typescript-eslint/scope-manager": 8.30.1 - "@typescript-eslint/types": 8.30.1 - "@typescript-eslint/typescript-estree": 8.30.1 + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@typescript-eslint/scope-manager": "npm:8.30.1" + "@typescript-eslint/types": "npm:8.30.1" + "@typescript-eslint/typescript-estree": "npm:8.30.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 637b3b8b3dd6115122d1008572a86c356708682c28bfc40d916d8453caaefa9ac90cac2bf91b1a434e57ae5a84c81003c52389efff4371c71ee78ca91bb5b940 + checksum: 10/97d27d2f0bce6f60a1857d511dba401f076766477a2896405aca52e860f9c5460111299f6e17642e18e578be1dbf850a0b1202ba61aa65d6a52646429ff9c99c languageName: node linkType: hard @@ -2557,16 +2557,16 @@ __metadata: version: 8.30.1 resolution: "@typescript-eslint/visitor-keys@npm:8.30.1" dependencies: - "@typescript-eslint/types": 8.30.1 - eslint-visitor-keys: ^4.2.0 - checksum: 7878f1e3e2d497596e007c96ee5fd7993e79009c7de88fa10a431983be16de5292b73ccbb5ebab4dc2ab88d4864250a6b0f3c3e3acde775bb915fa6e34fc878d + "@typescript-eslint/types": "npm:8.30.1" + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10/0c08169123ebca4ab04464486a7f41093ba77e75fb088e2c8af9f36bb4c0f785d4e82940f6b62e47457d4758fa57a53423db4226250d6eb284e75a3f96f03f2b languageName: node linkType: hard "@ungap/structured-clone@npm:^1.0.0": version: 1.3.0 resolution: "@ungap/structured-clone@npm:1.3.0" - checksum: 64ed518f49c2b31f5b50f8570a1e37bde3b62f2460042c50f132430b2d869c4a6586f13aa33a58a4722715b8158c68cae2827389d6752ac54da2893c83e480fc + checksum: 10/80d6910946f2b1552a2406650051c91bbd1f24a6bf854354203d84fe2714b3e8ce4618f49cc3410494173a1c1e8e9777372fe68dce74bd45faf0a7a1a6ccf448 languageName: node linkType: hard @@ -2608,49 +2608,49 @@ __metadata: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.5.0": version: 1.5.0 resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.5.0" - conditions: os=linux & cpu=arm64 + conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard "@unrs/resolver-binding-linux-arm64-musl@npm:1.5.0": version: 1.5.0 resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.5.0" - conditions: os=linux & cpu=arm64 + conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.5.0": version: 1.5.0 resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.5.0" - conditions: os=linux & cpu=ppc64 + conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.5.0": version: 1.5.0 resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.5.0" - conditions: os=linux & cpu=riscv64 + conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard "@unrs/resolver-binding-linux-s390x-gnu@npm:1.5.0": version: 1.5.0 resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.5.0" - conditions: os=linux & cpu=s390x + conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard "@unrs/resolver-binding-linux-x64-gnu@npm:1.5.0": version: 1.5.0 resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.5.0" - conditions: os=linux & cpu=x64 + conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard "@unrs/resolver-binding-linux-x64-musl@npm:1.5.0": version: 1.5.0 resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.5.0" - conditions: os=linux & cpu=x64 + conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard @@ -2658,7 +2658,7 @@ __metadata: version: 1.5.0 resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.5.0" dependencies: - "@napi-rs/wasm-runtime": ^0.2.8 + "@napi-rs/wasm-runtime": "npm:^0.2.8" conditions: cpu=wasm32 languageName: node linkType: hard @@ -2688,10 +2688,10 @@ __metadata: version: 3.9.0 resolution: "@vitejs/plugin-react-swc@npm:3.9.0" dependencies: - "@swc/core": ^1.11.21 + "@swc/core": "npm:^1.11.21" peerDependencies: vite: ^4 || ^5 || ^6 - checksum: 3c69ce56649742c1f1c5d4a5130263135825ea09a79935c9b307d83e0d29d1764c8ac063b1454df2f8cdf00d67fc6195fc94286e94f10a04d9e4da35e504df30 + checksum: 10/545dddee3c2f7f35f37c680f79bebb98f3968209470ec56c594556410d498b41cf86df60d2ab9a56c69b02bef12ee3198371becc804b85172ec97ee0d2d7633d languageName: node linkType: hard @@ -2699,14 +2699,14 @@ __metadata: version: 4.4.0 resolution: "@vitejs/plugin-react@npm:4.4.0" dependencies: - "@babel/core": ^7.26.10 - "@babel/plugin-transform-react-jsx-self": ^7.25.9 - "@babel/plugin-transform-react-jsx-source": ^7.25.9 - "@types/babel__core": ^7.20.5 - react-refresh: ^0.17.0 + "@babel/core": "npm:^7.26.10" + "@babel/plugin-transform-react-jsx-self": "npm:^7.25.9" + "@babel/plugin-transform-react-jsx-source": "npm:^7.25.9" + "@types/babel__core": "npm:^7.20.5" + react-refresh: "npm:^0.17.0" peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - checksum: d15226cdbddea5dc9b5eedcb89ec68cf008cfde326a43d94819ef52944231ae702c6a26e5979c0584554fe6443222c552b7e6bc226229968eab031016bf00a7d + checksum: 10/ba4de3e93faa523268566441893c71485dcc3a9fce21103b471d31b78ea0be35b0f03022af58e34c2fa3da9a2b328f88a57c52d10aa908d230953dcf99c72af3 languageName: node linkType: hard @@ -2714,11 +2714,11 @@ __metadata: version: 2.1.9 resolution: "@vitest/expect@npm:2.1.9" dependencies: - "@vitest/spy": 2.1.9 - "@vitest/utils": 2.1.9 - chai: ^5.1.2 - tinyrainbow: ^1.2.0 - checksum: a234f96dd42c76e20af68b2ad2f00b80a3873501d5daa524bf1405b344e86123716b925f976d8104fd242bfbd0d9cf7084d0eb4a690097e6e5db456d220ed67a + "@vitest/spy": "npm:2.1.9" + "@vitest/utils": "npm:2.1.9" + chai: "npm:^5.1.2" + tinyrainbow: "npm:^1.2.0" + checksum: 10/c4317e4d013b12530cd9b175906788ef9d78b92fa0a37939a68c78bcf6d3657e7a43b632d00b9204a493fd0c2e7595a1c3c05652e749bf44a08927a9161e49f0 languageName: node linkType: hard @@ -2726,9 +2726,9 @@ __metadata: version: 2.1.9 resolution: "@vitest/mocker@npm:2.1.9" dependencies: - "@vitest/spy": 2.1.9 - estree-walker: ^3.0.3 - magic-string: ^0.30.12 + "@vitest/spy": "npm:2.1.9" + estree-walker: "npm:^3.0.3" + magic-string: "npm:^0.30.12" peerDependencies: msw: ^2.4.9 vite: ^5.0.0 @@ -2737,7 +2737,7 @@ __metadata: optional: true vite: optional: true - checksum: 17de391acc4d899f15356b45cde8202e5d5ca4517c32c0c9dcf32ce0660501773fdc29675b4f7d48c1579a560ac41f8f5181ebe41a7daf675f561d611e8e30dc + checksum: 10/54c5ef47065e047b011cf0d89321654250a77601c93cc5bbd613782d1939d014385d6c909e4857dd473278ce63f8b6bfbbf7a96e05f7f22f33951cdbfce22993 languageName: node linkType: hard @@ -2745,8 +2745,8 @@ __metadata: version: 2.1.9 resolution: "@vitest/pretty-format@npm:2.1.9" dependencies: - tinyrainbow: ^1.2.0 - checksum: 33f7ff0a9d356ddd6534390a0aea260dc04a3022a94901c87d141bacf71d2b3fff2e3bf08a55dd424c5355fd3b41656cb7871c76372fef45ffac1ea89d0dc508 + tinyrainbow: "npm:^1.2.0" + checksum: 10/557dc637c5825abd62ccb15080e59e04d22121e746d8020a0815d7c0c45132fed81b1ff36b26f5991e57a9f1d36e52aa19712abbfe1d0cbcd14252b449a919dc languageName: node linkType: hard @@ -2754,9 +2754,9 @@ __metadata: version: 2.1.9 resolution: "@vitest/runner@npm:2.1.9" dependencies: - "@vitest/utils": 2.1.9 - pathe: ^1.1.2 - checksum: d8aaadc98bcbe1ee7c832a7d619d3c77d3c67536f10b80a3106d9d6e03ecc0f5467ef7bd4a65a07fe924cc166fe7415d637b2b08ef71e1a208a250543f9f3545 + "@vitest/utils": "npm:2.1.9" + pathe: "npm:^1.1.2" + checksum: 10/3f2b67406c71fa5d3861601fca1bbd1bf850d82b1c34586199dcadae8cd63f666a5a13e83145287776b2f3c36ba684840feb37f5d6f1b834a1233feac5df8ed9 languageName: node linkType: hard @@ -2764,10 +2764,10 @@ __metadata: version: 2.1.9 resolution: "@vitest/snapshot@npm:2.1.9" dependencies: - "@vitest/pretty-format": 2.1.9 - magic-string: ^0.30.12 - pathe: ^1.1.2 - checksum: fb693dea59709c9df8660e5948c7971d2c3ce74212eafa7d542a578bbb8aed203dc03129dd5e476251e1946b50432e79a4fd59069fd4f950283e188167b9496d + "@vitest/pretty-format": "npm:2.1.9" + magic-string: "npm:^0.30.12" + pathe: "npm:^1.1.2" + checksum: 10/cb41d952bbad0ba55c265a21862d0ea5d2c54b75636f98cefbf467c973cec5c6edef5c21d325e26531de9a5abfe8ef6c367874163a57c169afd936b041e6cda8 languageName: node linkType: hard @@ -2775,8 +2775,8 @@ __metadata: version: 2.1.9 resolution: "@vitest/spy@npm:2.1.9" dependencies: - tinyspy: ^3.0.2 - checksum: f9279488b5d2a27800e33e8fe51cc685b2a0db49d30b80b2b0cc924f8b1736eb520459c6e8bd09fa4457f5bb86ff073e7bdcf60d36452c11a8a8f9cbc8030237 + tinyspy: "npm:^3.0.2" + checksum: 10/a47302082b6071b0f756df10045477b4f4d12391c35f595f66ba99e9c4b51d286096a61a640d87c948f5f050ecb3a46f73d51ae62b5bcaf52e4b8f12ecfb86e3 languageName: node linkType: hard @@ -2784,31 +2784,31 @@ __metadata: version: 2.1.9 resolution: "@vitest/utils@npm:2.1.9" dependencies: - "@vitest/pretty-format": 2.1.9 - loupe: ^3.1.2 - tinyrainbow: ^1.2.0 - checksum: b24fb9c6765801f2e0578ad5c32fadf9541a833301eaed2877a427096cf05214244b361f94eda80be2b9c841f58ae3c67d37dedc5a902b2cb44041979bae4d8f + "@vitest/pretty-format": "npm:2.1.9" + loupe: "npm:^3.1.2" + tinyrainbow: "npm:^1.2.0" + checksum: 10/83d62d5703a3210a2f137c25dc4e797a7a1d74d5d2e14ecc33b274c7710304fa8b5099101c98bc8d66cc2bf18a14f88ebf21f0996a99d0ee1439ae23b49f3961 languageName: node linkType: hard "@wildpeaks/snapshot-dom@npm:1.6.0": version: 1.6.0 resolution: "@wildpeaks/snapshot-dom@npm:1.6.0" - checksum: ccb4799a9bf1f6ba9e85d4f8c94ea2dbcf9043f4be7824c016325b65605f7173b47ba3cc062a26903584a0580d3665c32b617fd15c1696a4c8a64858bd2f60a3 + checksum: 10/34f386801870eb3a6c6d21737e6477d84061046045fa3b46ac0358122c0f9e6ac6acebec3eb38f81266f7a5655dc6319ed9f7656e7145b6586ce612c2215676c languageName: node linkType: hard "abbrev@npm:1": version: 1.1.1 resolution: "abbrev@npm:1.1.1" - checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 + checksum: 10/2d882941183c66aa665118bafdab82b7a177e9add5eb2776c33e960a4f3c89cff88a1b38aba13a456de01d0dd9d66a8bea7c903268b21ea91dd1097e1e2e8243 languageName: node linkType: hard "abbrev@npm:^3.0.0": version: 3.0.1 resolution: "abbrev@npm:3.0.1" - checksum: e70b209f5f408dd3a3bbd0eec4b10a2ffd64704a4a3821d0969d84928cc490a8eb60f85b78a95622c1841113edac10161c62e52f5e7d0027aa26786a8136e02e + checksum: 10/ebd2c149dda6f543b66ce3779ea612151bb3aa9d0824f169773ee9876f1ca5a4e0adbcccc7eed048c04da7998e1825e2aa76fcca92d9e67dea50ac2b0a58dc2e languageName: node linkType: hard @@ -2817,7 +2817,7 @@ __metadata: resolution: "acorn-jsx@npm:5.3.2" peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 + checksum: 10/d4371eaef7995530b5b5ca4183ff6f062ca17901a6d3f673c9ac011b01ede37e7a1f7f61f8f5cfe709e88054757bb8f3277dc4061087cdf4f2a1f90ccbcdb977 languageName: node linkType: hard @@ -2825,8 +2825,8 @@ __metadata: version: 8.3.4 resolution: "acorn-walk@npm:8.3.4" dependencies: - acorn: ^8.11.0 - checksum: 4ff03f42323e7cf90f1683e08606b0f460e1e6ac263d2730e3df91c7665b6f64e696db6ea27ee4bed18c2599569be61f28a8399fa170c611161a348c402ca19c + acorn: "npm:^8.11.0" + checksum: 10/871386764e1451c637bb8ab9f76f4995d408057e9909be6fb5ad68537ae3375d85e6a6f170b98989f44ab3ff6c74ad120bc2779a3d577606e7a0cd2b4efcaf77 languageName: node linkType: hard @@ -2835,21 +2835,21 @@ __metadata: resolution: "acorn@npm:8.14.1" bin: acorn: bin/acorn - checksum: 260d9bb6017a1b6e42d31364687f0258f78eb20210b36ef2baad38fd619d78d4e95ff7dde9b3dbe0d81f137f79a8d651a845363a26e6985997f7b71145dc5e94 + checksum: 10/d1379bbee224e8d44c3c3946e6ba6973e999fbdd4e22e41c3455d7f9b6f72f7ce18d3dc218002e1e48eea789539cf1cb6d1430c81838c6744799c712fb557d92 languageName: node linkType: hard "aes-js@npm:4.0.0-beta.5": version: 4.0.0-beta.5 resolution: "aes-js@npm:4.0.0-beta.5" - checksum: cc2ea969d77df939c32057f7e361b6530aa6cb93cb10617a17a45cd164e6d761002f031ff6330af3e67e58b1f0a3a8fd0b63a720afd591a653b02f649470e15b + checksum: 10/8f745da2e8fb38e91297a8ec13c2febe3219f8383303cd4ed4660ca67190242ccfd5fdc2f0d1642fd1ea934818fb871cd4cc28d3f28e812e3dc6c3d0f1f97c24 languageName: node linkType: hard "agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": version: 7.1.3 resolution: "agent-base@npm:7.1.3" - checksum: 87bb7ee54f5ecf0ccbfcba0b07473885c43ecd76cb29a8db17d6137a19d9f9cd443a2a7c5fd8a3f24d58ad8145f9eb49116344a66b107e1aeab82cf2383f4753 + checksum: 10/3db6d8d4651f2aa1a9e4af35b96ab11a7607af57a24f3bc721a387eaa3b5f674e901f0a648b0caefd48f3fd117c7761b79a3b55854e2aebaa96c3f32cf76af84 languageName: node linkType: hard @@ -2857,9 +2857,9 @@ __metadata: version: 3.1.0 resolution: "aggregate-error@npm:3.1.0" dependencies: - clean-stack: ^2.0.0 - indent-string: ^4.0.0 - checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10/1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 languageName: node linkType: hard @@ -2867,25 +2867,25 @@ __metadata: version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: - fast-deep-equal: ^3.1.1 - fast-json-stable-stringify: ^2.0.0 - json-schema-traverse: ^0.4.1 - uri-js: ^4.2.2 - checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 + fast-deep-equal: "npm:^3.1.1" + fast-json-stable-stringify: "npm:^2.0.0" + json-schema-traverse: "npm:^0.4.1" + uri-js: "npm:^4.2.2" + checksum: 10/48d6ad21138d12eb4d16d878d630079a2bda25a04e745c07846a4ad768319533031e28872a9b3c5790fa1ec41aabdf2abed30a56e5a03ebc2cf92184b8ee306c languageName: node linkType: hard "am-i-a-dependency@npm:1.1.2": version: 1.1.2 resolution: "am-i-a-dependency@npm:1.1.2" - checksum: 1263f60cc2d91f8ce4afb985804e28514453042bbb1059681700bb2a6659226ddc89c34183dbf08b513b3a04fbd5f6f023d9ea26159028b5751e0e3fb0904a48 + checksum: 10/1263f60cc2d91f8ce4afb985804e28514453042bbb1059681700bb2a6659226ddc89c34183dbf08b513b3a04fbd5f6f023d9ea26159028b5751e0e3fb0904a48 languageName: node linkType: hard "ansi-colors@npm:^4.1.1": version: 4.1.3 resolution: "ansi-colors@npm:4.1.3" - checksum: a9c2ec842038a1fabc7db9ece7d3177e2fe1c5dc6f0c51ecfbf5f39911427b89c00b5dc6b8bd95f82a26e9b16aaae2e83d45f060e98070ce4d1333038edceb0e + checksum: 10/43d6e2fc7b1c6e4dc373de708ee76311ec2e0433e7e8bd3194e7ff123ea6a747428fc61afdcf5969da5be3a5f0fd054602bec56fc0ebe249ce2fcde6e649e3c2 languageName: node linkType: hard @@ -2893,8 +2893,8 @@ __metadata: version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" dependencies: - type-fest: ^0.21.3 - checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 + type-fest: "npm:^0.21.3" + checksum: 10/8661034456193ffeda0c15c8c564a9636b0c04094b7f78bd01517929c17c504090a60f7a75f949f5af91289c264d3e1001d91492c1bd58efc8e100500ce04de2 languageName: node linkType: hard @@ -2902,43 +2902,43 @@ __metadata: version: 7.0.0 resolution: "ansi-escapes@npm:7.0.0" dependencies: - environment: ^1.0.0 - checksum: 19baa61e68d1998c03b3b8bd023653a6c2667f0ed6caa9a00780ffd6f0a14f4a6563c57a38b3c0aba71bd704cd49c4c8df41be60bd81c957409f91e9dd49051f + environment: "npm:^1.0.0" + checksum: 10/2d0e2345087bd7ae6bf122b9cc05ee35560d40dcc061146edcdc02bc2d7c7c50143cd12a22e69a0b5c0f62b948b7bc9a4539ee888b80f5bd33cdfd82d01a70ab languageName: node linkType: hard "ansi-regex@npm:^2.0.0": version: 2.1.1 resolution: "ansi-regex@npm:2.1.1" - checksum: 190abd03e4ff86794f338a31795d262c1dfe8c91f7e01d04f13f646f1dcb16c5800818f886047876f1272f065570ab86b24b99089f8b68a0e11ff19aed4ca8f1 + checksum: 10/190abd03e4ff86794f338a31795d262c1dfe8c91f7e01d04f13f646f1dcb16c5800818f886047876f1272f065570ab86b24b99089f8b68a0e11ff19aed4ca8f1 languageName: node linkType: hard "ansi-regex@npm:^4.1.0": version: 4.1.1 resolution: "ansi-regex@npm:4.1.1" - checksum: b1a6ee44cb6ecdabaa770b2ed500542714d4395d71c7e5c25baa631f680fb2ad322eb9ba697548d498a6fd366949fc8b5bfcf48d49a32803611f648005b01888 + checksum: 10/b1a6ee44cb6ecdabaa770b2ed500542714d4395d71c7e5c25baa631f680fb2ad322eb9ba697548d498a6fd366949fc8b5bfcf48d49a32803611f648005b01888 languageName: node linkType: hard "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" - checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + checksum: 10/2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b languageName: node linkType: hard "ansi-regex@npm:^6.0.1": version: 6.1.0 resolution: "ansi-regex@npm:6.1.0" - checksum: 495834a53b0856c02acd40446f7130cb0f8284f4a39afdab20d5dc42b2e198b1196119fe887beed8f9055c4ff2055e3b2f6d4641d0be018cdfb64fedf6fc1aac + checksum: 10/495834a53b0856c02acd40446f7130cb0f8284f4a39afdab20d5dc42b2e198b1196119fe887beed8f9055c4ff2055e3b2f6d4641d0be018cdfb64fedf6fc1aac languageName: node linkType: hard "ansi-styles@npm:^2.0.1, ansi-styles@npm:^2.2.1": version: 2.2.1 resolution: "ansi-styles@npm:2.2.1" - checksum: ebc0e00381f2a29000d1dac8466a640ce11943cef3bda3cd0020dc042e31e1058ab59bf6169cd794a54c3a7338a61ebc404b7c91e004092dd20e028c432c9c2c + checksum: 10/ebc0e00381f2a29000d1dac8466a640ce11943cef3bda3cd0020dc042e31e1058ab59bf6169cd794a54c3a7338a61ebc404b7c91e004092dd20e028c432c9c2c languageName: node linkType: hard @@ -2946,22 +2946,22 @@ __metadata: version: 4.3.0 resolution: "ansi-styles@npm:4.3.0" dependencies: - color-convert: ^2.0.1 - checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + color-convert: "npm:^2.0.1" + checksum: 10/b4494dfbfc7e4591b4711a396bd27e540f8153914123dccb4cdbbcb514015ada63a3809f362b9d8d4f6b17a706f1d7bea3c6f974b15fa5ae76b5b502070889ff languageName: node linkType: hard "ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" - checksum: ef940f2f0ced1a6347398da88a91da7930c33ecac3c77b72c5905f8b8fe402c52e6fde304ff5347f616e27a742da3f1dc76de98f6866c69251ad0b07a66776d9 + checksum: 10/70fdf883b704d17a5dfc9cde206e698c16bcd74e7f196ab821511651aee4f9f76c9514bdfa6ca3a27b5e49138b89cb222a28caf3afe4567570139577f991df32 languageName: node linkType: hard "any-promise@npm:^1.0.0": version: 1.3.0 resolution: "any-promise@npm:1.3.0" - checksum: 0ee8a9bdbe882c90464d75d1f55cf027f5458650c4bd1f0467e65aec38ccccda07ca5844969ee77ed46d04e7dded3eaceb027e8d32f385688523fe305fa7e1de + checksum: 10/6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb languageName: node linkType: hard @@ -2969,9 +2969,9 @@ __metadata: version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: - normalize-path: ^3.0.0 - picomatch: ^2.0.4 - checksum: 3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 10/3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 languageName: node linkType: hard @@ -2979,36 +2979,36 @@ __metadata: version: 2.0.0 resolution: "append-transform@npm:2.0.0" dependencies: - default-require-extensions: ^3.0.0 - checksum: f26f393bf7a428fd1bb18f2758a819830a582243310c5170edb3f98fdc5a535333d02b952f7c2d9b14522bd8ead5b132a0b15000eca18fa9f49172963ebbc231 + default-require-extensions: "npm:^3.0.0" + checksum: 10/f26f393bf7a428fd1bb18f2758a819830a582243310c5170edb3f98fdc5a535333d02b952f7c2d9b14522bd8ead5b132a0b15000eca18fa9f49172963ebbc231 languageName: node linkType: hard "arch@npm:^2.2.0": version: 2.2.0 resolution: "arch@npm:2.2.0" - checksum: e21b7635029fe8e9cdd5a026f9a6c659103e63fff423834323cdf836a1bb240a72d0c39ca8c470f84643385cf581bd8eda2cad8bf493e27e54bd9783abe9101f + checksum: 10/e35dbc6d362297000ab90930069576ba165fe63cd52383efcce14bd66c1b16a91ce849e1fd239964ed029d5e0bdfc32f68e9c7331b7df6c84ddebebfdbf242f7 languageName: node linkType: hard "archy@npm:^1.0.0": version: 1.0.0 resolution: "archy@npm:1.0.0" - checksum: 504ae7af655130bab9f471343cfdb054feaec7d8e300e13348bc9fe9e660f83d422e473069584f73233c701ae37d1c8452ff2522f2a20c38849e0f406f1732ac + checksum: 10/d7928049a57988b86df3f4de75ca16a4252ccee591d085c627e649fc54c5ae5daa833f17aa656bd825bd00bc0a2756ae03d2b983050bdbda1046b6d832bf7303 languageName: node linkType: hard "arg@npm:^4.1.0": version: 4.1.3 resolution: "arg@npm:4.1.3" - checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43 + checksum: 10/969b491082f20cad166649fa4d2073ea9e974a4e5ac36247ca23d2e5a8b3cb12d60e9ff70a8acfe26d76566c71fd351ee5e6a9a6595157eb36f92b1fd64e1599 languageName: node linkType: hard "arg@npm:^5.0.2": version: 5.0.2 resolution: "arg@npm:5.0.2" - checksum: 6c69ada1a9943d332d9e5382393e897c500908d91d5cb735a01120d5f71daf1b339b7b8980cbeaba8fd1afc68e658a739746179e4315a26e8a28951ff9930078 + checksum: 10/92fe7de222054a060fd2329e92e867410b3ea260328147ee3fb7855f78efae005f4087e698d4e688a856893c56bb09951588c40f2c901cf6996cd8cd7bcfef2c languageName: node linkType: hard @@ -3016,15 +3016,15 @@ __metadata: version: 1.0.10 resolution: "argparse@npm:1.0.10" dependencies: - sprintf-js: ~1.0.2 - checksum: 7ca6e45583a28de7258e39e13d81e925cfa25d7d4aacbf806a382d3c02fcb13403a07fb8aeef949f10a7cfe4a62da0e2e807b348a5980554cc28ee573ef95945 + sprintf-js: "npm:~1.0.2" + checksum: 10/c6a621343a553ff3779390bb5ee9c2263d6643ebcd7843227bdde6cc7adbed796eb5540ca98db19e3fd7b4714e1faa51551f8849b268bb62df27ddb15cbcd91e languageName: node linkType: hard "argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" - checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + checksum: 10/18640244e641a417ec75a9bd38b0b2b6b95af5199aa241b131d4b2fb206f334d7ecc600bd194861610a5579084978bfcbb02baa399dbe442d56d0ae5e60dbaef languageName: node linkType: hard @@ -3032,9 +3032,9 @@ __metadata: version: 1.0.2 resolution: "array-buffer-byte-length@npm:1.0.2" dependencies: - call-bound: ^1.0.3 - is-array-buffer: ^3.0.5 - checksum: 0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63 + call-bound: "npm:^1.0.3" + is-array-buffer: "npm:^3.0.5" + checksum: 10/0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63 languageName: node linkType: hard @@ -3042,20 +3042,20 @@ __metadata: version: 3.1.8 resolution: "array-includes@npm:3.1.8" dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-object-atoms: ^1.0.0 - get-intrinsic: ^1.2.4 - is-string: ^1.0.7 - checksum: eb39ba5530f64e4d8acab39297c11c1c5be2a4ea188ab2b34aba5fb7224d918f77717a9d57a3e2900caaa8440e59431bdaf5c974d5212ef65d97f132e38e2d91 + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + is-string: "npm:^1.0.7" + checksum: 10/290b206c9451f181fb2b1f79a3bf1c0b66bb259791290ffbada760c79b284eef6f5ae2aeb4bcff450ebc9690edd25732c4c73a3c2b340fcc0f4563aed83bf488 languageName: node linkType: hard "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" - checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + checksum: 10/5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d languageName: node linkType: hard @@ -3063,13 +3063,13 @@ __metadata: version: 1.2.5 resolution: "array.prototype.findlast@npm:1.2.5" dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 - es-shim-unscopables: ^1.0.2 - checksum: 83ce4ad95bae07f136d316f5a7c3a5b911ac3296c3476abe60225bc4a17938bf37541972fcc37dd5adbc99cbb9c928c70bbbfc1c1ce549d41a415144030bb446 + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/7dffcc665aa965718ad6de7e17ac50df0c5e38798c0a5bf9340cf24feb8594df6ec6f3fcbe714c1577728a1b18b5704b15669474b27bceeca91ef06ce2a23c31 languageName: node linkType: hard @@ -3077,14 +3077,14 @@ __metadata: version: 1.2.6 resolution: "array.prototype.findlastindex@npm:1.2.6" dependencies: - call-bind: ^1.0.8 - call-bound: ^1.0.4 - define-properties: ^1.2.1 - es-abstract: ^1.23.9 - es-errors: ^1.3.0 - es-object-atoms: ^1.1.1 - es-shim-unscopables: ^1.1.0 - checksum: bd2665bd51f674d4e1588ce5d5848a8adb255f414070e8e652585598b801480516df2c6cef2c60b6ea1a9189140411c49157a3f112d52e9eabb4e9fc80936ea6 + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.9" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" + es-shim-unscopables: "npm:^1.1.0" + checksum: 10/5ddb6420e820bef6ddfdcc08ce780d0fd5e627e97457919c27e32359916de5a11ce12f7c55073555e503856618eaaa70845d6ca11dcba724766f38eb1c22f7a2 languageName: node linkType: hard @@ -3092,11 +3092,11 @@ __metadata: version: 1.3.3 resolution: "array.prototype.flat@npm:1.3.3" dependencies: - call-bind: ^1.0.8 - define-properties: ^1.2.1 - es-abstract: ^1.23.5 - es-shim-unscopables: ^1.0.2 - checksum: 5d5a7829ab2bb271a8d30a1c91e6271cef0ec534593c0fe6d2fb9ebf8bb62c1e5326e2fddcbbcbbe5872ca04f5e6b54a1ecf092e0af704fb538da9b2bfd95b40 + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/f9b992fa0775d8f7c97abc91eb7f7b2f0ed8430dd9aeb9fdc2967ac4760cdd7fc2ef7ead6528fef40c7261e4d790e117808ce0d3e7e89e91514d4963a531cd01 languageName: node linkType: hard @@ -3104,11 +3104,11 @@ __metadata: version: 1.3.3 resolution: "array.prototype.flatmap@npm:1.3.3" dependencies: - call-bind: ^1.0.8 - define-properties: ^1.2.1 - es-abstract: ^1.23.5 - es-shim-unscopables: ^1.0.2 - checksum: 11b4de09b1cf008be6031bb507d997ad6f1892e57dc9153583de6ebca0f74ea403fffe0f203461d359de05048d609f3f480d9b46fed4099652d8b62cc972f284 + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/473534573aa4b37b1d80705d0ce642f5933cccf5617c9f3e8a56686e9815ba93d469138e86a1f25d2fe8af999c3d24f54d703ec1fc2db2e6778d46d0f4ac951e languageName: node linkType: hard @@ -3116,12 +3116,12 @@ __metadata: version: 1.1.4 resolution: "array.prototype.tosorted@npm:1.1.4" dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-abstract: ^1.23.3 - es-errors: ^1.3.0 - es-shim-unscopables: ^1.0.2 - checksum: e4142d6f556bcbb4f393c02e7dbaea9af8f620c040450c2be137c9cbbd1a17f216b9c688c5f2c08fbb038ab83f55993fa6efdd9a05881d84693c7bcb5422127a + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.3" + es-errors: "npm:^1.3.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/874694e5d50e138894ff5b853e639c29b0aa42bbd355acda8e8e9cd337f1c80565f21edc15e8c727fa4c0877fd9d8783c575809e440cc4d2d19acaa048bf967d languageName: node linkType: hard @@ -3129,14 +3129,14 @@ __metadata: version: 1.0.4 resolution: "arraybuffer.prototype.slice@npm:1.0.4" dependencies: - array-buffer-byte-length: ^1.0.1 - call-bind: ^1.0.8 - define-properties: ^1.2.1 - es-abstract: ^1.23.5 - es-errors: ^1.3.0 - get-intrinsic: ^1.2.6 - is-array-buffer: ^3.0.4 - checksum: b1d1fd20be4e972a3779b1569226f6740170dca10f07aa4421d42cefeec61391e79c557cda8e771f5baefe47d878178cd4438f60916ce831813c08132bced765 + array-buffer-byte-length: "npm:^1.0.1" + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + is-array-buffer: "npm:^3.0.4" + checksum: 10/4821ebdfe7d699f910c7f09bc9fa996f09b96b80bccb4f5dd4b59deae582f6ad6e505ecef6376f8beac1eda06df2dbc89b70e82835d104d6fcabd33c1aed1ae9 languageName: node linkType: hard @@ -3144,64 +3144,64 @@ __metadata: version: 0.2.6 resolution: "asn1@npm:0.2.6" dependencies: - safer-buffer: ~2.1.0 - checksum: 39f2ae343b03c15ad4f238ba561e626602a3de8d94ae536c46a4a93e69578826305366dc09fbb9b56aec39b4982a463682f259c38e59f6fa380cd72cd61e493d + safer-buffer: "npm:~2.1.0" + checksum: 10/cf629291fee6c1a6f530549939433ebf32200d7849f38b810ff26ee74235e845c0c12b2ed0f1607ac17383d19b219b69cefa009b920dab57924c5c544e495078 languageName: node linkType: hard "assert-plus@npm:1.0.0, assert-plus@npm:^1.0.0": version: 1.0.0 resolution: "assert-plus@npm:1.0.0" - checksum: 19b4340cb8f0e6a981c07225eacac0e9d52c2644c080198765d63398f0075f83bbc0c8e95474d54224e297555ad0d631c1dcd058adb1ddc2437b41a6b424ac64 + checksum: 10/f4f991ae2df849cc678b1afba52d512a7cbf0d09613ba111e72255409ff9158550c775162a47b12d015d1b82b3c273e8e25df0e4783d3ddb008a293486d00a07 languageName: node linkType: hard "assertion-error@npm:^2.0.1": version: 2.0.1 resolution: "assertion-error@npm:2.0.1" - checksum: a0789dd882211b87116e81e2648ccb7f60340b34f19877dd020b39ebb4714e475eb943e14ba3e22201c221ef6645b7bfe10297e76b6ac95b48a9898c1211ce66 + checksum: 10/a0789dd882211b87116e81e2648ccb7f60340b34f19877dd020b39ebb4714e475eb943e14ba3e22201c221ef6645b7bfe10297e76b6ac95b48a9898c1211ce66 languageName: node linkType: hard "astral-regex@npm:^2.0.0": version: 2.0.0 resolution: "astral-regex@npm:2.0.0" - checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 + checksum: 10/876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 languageName: node linkType: hard "async-function@npm:^1.0.0": version: 1.0.0 resolution: "async-function@npm:1.0.0" - checksum: 9102e246d1ed9b37ac36f57f0a6ca55226876553251a31fc80677e71471f463a54c872dc78d5d7f80740c8ba624395cccbe8b60f7b690c4418f487d8e9fd1106 + checksum: 10/1a09379937d846f0ce7614e75071c12826945d4e417db634156bf0e4673c495989302f52186dfa9767a1d9181794554717badd193ca2bbab046ef1da741d8efd languageName: node linkType: hard "async@npm:^3.2.0": version: 3.2.6 resolution: "async@npm:3.2.6" - checksum: ee6eb8cd8a0ab1b58bd2a3ed6c415e93e773573a91d31df9d5ef559baafa9dab37d3b096fa7993e84585cac3697b2af6ddb9086f45d3ac8cae821bb2aab65682 + checksum: 10/cb6e0561a3c01c4b56a799cc8bab6ea5fef45f069ab32500b6e19508db270ef2dffa55e5aed5865c5526e9907b1f8be61b27530823b411ffafb5e1538c86c368 languageName: node linkType: hard "asynckit@npm:^0.4.0": version: 0.4.0 resolution: "asynckit@npm:0.4.0" - checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be + checksum: 10/3ce727cbc78f69d6a4722517a58ee926c8c21083633b1d3fdf66fd688f6c127a53a592141bd4866f9b63240a86e9d8e974b13919450bd17fa33c2d22c4558ad8 languageName: node linkType: hard "at-least-node@npm:^1.0.0": version: 1.0.0 resolution: "at-least-node@npm:1.0.0" - checksum: 463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e + checksum: 10/463e2f8e43384f1afb54bc68485c436d7622acec08b6fad269b421cb1d29cebb5af751426793d0961ed243146fe4dc983402f6d5a51b720b277818dbf6f2e49e languageName: node linkType: hard "attr-accept@npm:^2.2.4": version: 2.2.5 resolution: "attr-accept@npm:2.2.5" - checksum: e6a23183c112f5d313ebfc7e63e454de0600caffe9ab88f86e9df420d2399a48e27e6c46ee8de2fc6f34fee3541ecdb557f2b86e6d8bd7d24fd3a66cc75e6349 + checksum: 10/474b1c53e62c5b881c745d1f098196f190c8b493245e95d4b0fea9298d3acb56f551868fc12806885277e55e9d8ad3c5963e92d93456f4e4081dfc5190977bfd languageName: node linkType: hard @@ -3209,17 +3209,17 @@ __metadata: version: 10.4.21 resolution: "autoprefixer@npm:10.4.21" dependencies: - browserslist: ^4.24.4 - caniuse-lite: ^1.0.30001702 - fraction.js: ^4.3.7 - normalize-range: ^0.1.2 - picocolors: ^1.1.1 - postcss-value-parser: ^4.2.0 + browserslist: "npm:^4.24.4" + caniuse-lite: "npm:^1.0.30001702" + fraction.js: "npm:^4.3.7" + normalize-range: "npm:^0.1.2" + picocolors: "npm:^1.1.1" + postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: 11770ce635a0520e457eaf2ff89056cd57094796a9f5d6d9375513388a5a016cd947333dcfd213b822fdd8a0b43ce68ae4958e79c6f077c41d87444c8cca0235 + checksum: 10/5d7aeee78ef362a6838e12312908516a8ac5364414175273e5cff83bbff67612755b93d567f3aa01ce318342df48aeab4b291847b5800c780e58c458f61a98a6 languageName: node linkType: hard @@ -3227,22 +3227,22 @@ __metadata: version: 1.0.7 resolution: "available-typed-arrays@npm:1.0.7" dependencies: - possible-typed-array-names: ^1.0.0 - checksum: 1aa3ffbfe6578276996de660848b6e95669d9a95ad149e3dd0c0cda77db6ee1dbd9d1dd723b65b6d277b882dd0c4b91a654ae9d3cf9e1254b7e93e4908d78fd3 + possible-typed-array-names: "npm:^1.0.0" + checksum: 10/6c9da3a66caddd83c875010a1ca8ef11eac02ba15fb592dc9418b2b5e7b77b645fa7729380a92d9835c2f05f2ca1b6251f39b993e0feb3f1517c74fa1af02cab languageName: node linkType: hard "aws-sign2@npm:~0.7.0": version: 0.7.0 resolution: "aws-sign2@npm:0.7.0" - checksum: b148b0bb0778098ad8cf7e5fc619768bcb51236707ca1d3e5b49e41b171166d8be9fdc2ea2ae43d7decf02989d0aaa3a9c4caa6f320af95d684de9b548a71525 + checksum: 10/2ac497d739f71be3264cf096a33ab256a1fea7fe80b87dc51ec29374505bd5a661279ef1c22989d68528ea61ed634021ca63b31cf1d3c2a3682ffc106f7d0e96 languageName: node linkType: hard "aws4@npm:^1.8.0": version: 1.13.2 resolution: "aws4@npm:1.13.2" - checksum: 9ac924e4a91c088b4928ea86b68d8c4558b0e6289ccabaae0e3e96a611bd75277c2eab6e3965821028768700516f612b929a5ce822f33a8771f74ba2a8cedb9c + checksum: 10/290b9f84facbad013747725bfd8b4c42d0b3b04b5620d8418f0219832ef95a7dc597a4af7b1589ae7fce18bacde96f40911c3cda36199dd04d9f8e01f72fa50a languageName: node linkType: hard @@ -3250,31 +3250,31 @@ __metadata: version: 3.1.0 resolution: "babel-plugin-macros@npm:3.1.0" dependencies: - "@babel/runtime": ^7.12.5 - cosmiconfig: ^7.0.0 - resolve: ^1.19.0 - checksum: 765de4abebd3e4688ebdfbff8571ddc8cd8061f839bb6c3e550b0344a4027b04c60491f843296ce3f3379fb356cc873d57a9ee6694262547eb822c14a25be9a6 + "@babel/runtime": "npm:^7.12.5" + cosmiconfig: "npm:^7.0.0" + resolve: "npm:^1.19.0" + checksum: 10/30be6ca45e9a124c58ca00af9a0753e5410ec0b79a737714fc4722bbbeb693e55d9258f05c437145ef4a867c2d1603e06a1c292d66c243ce1227458c8ea2ca8c languageName: node linkType: hard "bail@npm:^2.0.0": version: 2.0.2 resolution: "bail@npm:2.0.2" - checksum: aab4e8ccdc8d762bf3fdfce8e706601695620c0c2eda256dd85088dc0be3cfd7ff126f6e99c2bee1f24f5d418414aacf09d7f9702f16d6963df2fa488cda8824 + checksum: 10/aab4e8ccdc8d762bf3fdfce8e706601695620c0c2eda256dd85088dc0be3cfd7ff126f6e99c2bee1f24f5d418414aacf09d7f9702f16d6963df2fa488cda8824 languageName: node linkType: hard "balanced-match@npm:^1.0.0": version: 1.0.2 resolution: "balanced-match@npm:1.0.2" - checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + checksum: 10/9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 languageName: node linkType: hard "base64-js@npm:^1.3.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" - checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + checksum: 10/669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 languageName: node linkType: hard @@ -3282,50 +3282,50 @@ __metadata: version: 1.0.2 resolution: "bcrypt-pbkdf@npm:1.0.2" dependencies: - tweetnacl: ^0.14.3 - checksum: 4edfc9fe7d07019609ccf797a2af28351736e9d012c8402a07120c4453a3b789a15f2ee1530dc49eee8f7eb9379331a8dd4b3766042b9e502f74a68e7f662291 + tweetnacl: "npm:^0.14.3" + checksum: 10/13a4cde058250dbf1fa77a4f1b9a07d32ae2e3b9e28e88a0c7a1827835bc3482f3e478c4a0cfd4da6ff0c46dae07da1061123a995372b32cc563d9975f975404 languageName: node linkType: hard "big.js@npm:^6.2.1": version: 6.2.2 resolution: "big.js@npm:6.2.2" - checksum: 3659092d155d01338f21a01a46a93aa343d25e83bce55700005a46eec27d90fe56abd3b3edde742f16fbc5fee31b4c572b6821a595c1c180392b60b469fcda54 + checksum: 10/018af3e572780b41536a987c3fc3636efe7d05671e8bf4a6bd22b62316e32f57abfc0fc849732adfd81b00b249f873a5a107e01ab5aa4fc3d42c181cc821bf47 languageName: node linkType: hard "binary-extensions@npm:^2.0.0": version: 2.3.0 resolution: "binary-extensions@npm:2.3.0" - checksum: bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 + checksum: 10/bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 languageName: node linkType: hard "blob-util@npm:^2.0.2": version: 2.0.2 resolution: "blob-util@npm:2.0.2" - checksum: d543e6b92e4ca715ca33c78e89a07a2290d43e5b2bc897d7ec588c5c7bbf59df93e45225ac0c9258aa6ce4320358990f99c9288f1c48280f8ec5d7a2e088d19b + checksum: 10/b2c5a20c677f2a6c3821cf13c5522d64af96e666bc40cce6b43f87d16e89a55e2eab2f6264ec3f36d7f810eba848aa7e2bc611e47c14eb6395136c0b0a8b29ea languageName: node linkType: hard "bluebird@npm:3.7.1": version: 3.7.1 resolution: "bluebird@npm:3.7.1" - checksum: 58c295399e109925149977ebcb40e42fd109d3e458899e71441bc7e5e0867bbd796fdd20278b425fa29f13377fe335fbfc2a6e68e5ca1da03b1c3afdc439d097 + checksum: 10/2af420fcd493dea6aa2f53007bc511d44cd1da90e31810b405366956e4d9ca1c56f0c6d725e3444d9c59df7cacc9e3390ab52bd7d86c09852464d8a247f59841 languageName: node linkType: hard "bluebird@npm:^3.7.2": version: 3.7.2 resolution: "bluebird@npm:3.7.2" - checksum: 869417503c722e7dc54ca46715f70e15f4d9c602a423a02c825570862d12935be59ed9c7ba34a9b31f186c017c23cac6b54e35446f8353059c101da73eac22ef + checksum: 10/007c7bad22c5d799c8dd49c85b47d012a1fe3045be57447721e6afbd1d5be43237af1db62e26cb9b0d9ba812d2e4ca3bac82f6d7e016b6b88de06ee25ceb96e7 languageName: node linkType: hard "bn.js@npm:^5.2.1": version: 5.2.1 resolution: "bn.js@npm:5.2.1" - checksum: 3dd8c8d38055fedfa95c1d5fc3c99f8dd547b36287b37768db0abab3c239711f88ff58d18d155dd8ad902b0b0cee973747b7ae20ea12a09473272b0201c9edd3 + checksum: 10/7a7e8764d7a6e9708b8b9841b2b3d6019cc154d2fc23716d0efecfe1e16921b7533c6f7361fb05471eab47986c4aa310c270f88e3507172104632ac8df2cfd84 languageName: node linkType: hard @@ -3333,9 +3333,9 @@ __metadata: version: 1.1.11 resolution: "brace-expansion@npm:1.1.11" dependencies: - balanced-match: ^1.0.0 - concat-map: 0.0.1 - checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10/faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 languageName: node linkType: hard @@ -3343,8 +3343,8 @@ __metadata: version: 2.0.1 resolution: "brace-expansion@npm:2.0.1" dependencies: - balanced-match: ^1.0.0 - checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + balanced-match: "npm:^1.0.0" + checksum: 10/a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 languageName: node linkType: hard @@ -3352,8 +3352,8 @@ __metadata: version: 3.0.3 resolution: "braces@npm:3.0.3" dependencies: - fill-range: ^7.1.1 - checksum: b95aa0b3bd909f6cd1720ffcf031aeaf46154dd88b4da01f9a1d3f7ea866a79eba76a6d01cbc3c422b2ee5cdc39a4f02491058d5df0d7bf6e6a162a832df1f69 + fill-range: "npm:^7.1.1" + checksum: 10/fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6 languageName: node linkType: hard @@ -3361,27 +3361,27 @@ __metadata: version: 4.24.4 resolution: "browserslist@npm:4.24.4" dependencies: - caniuse-lite: ^1.0.30001688 - electron-to-chromium: ^1.5.73 - node-releases: ^2.0.19 - update-browserslist-db: ^1.1.1 + caniuse-lite: "npm:^1.0.30001688" + electron-to-chromium: "npm:^1.5.73" + node-releases: "npm:^2.0.19" + update-browserslist-db: "npm:^1.1.1" bin: browserslist: cli.js - checksum: 64074bf6cf0a9ae3094d753270e3eae9cf925149db45d646f0bc67bacc2e46d7ded64a4e835b95f5fdcf0350f63a83c3755b32f80831f643a47f0886deb8a065 + checksum: 10/11fda105e803d891311a21a1f962d83599319165faf471c2d70e045dff82a12128f5b50b1fcba665a2352ad66147aaa248a9d2355a80aadc3f53375eb3de2e48 languageName: node linkType: hard "buffer-crc32@npm:~0.2.3": version: 0.2.13 resolution: "buffer-crc32@npm:0.2.13" - checksum: 06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c + checksum: 10/06252347ae6daca3453b94e4b2f1d3754a3b146a111d81c68924c22d91889a40623264e95e67955b1cb4a68cbedf317abeabb5140a9766ed248973096db5ce1c languageName: node linkType: hard "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" - checksum: 0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb + checksum: 10/0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb languageName: node linkType: hard @@ -3389,9 +3389,9 @@ __metadata: version: 5.7.1 resolution: "buffer@npm:5.7.1" dependencies: - base64-js: ^1.3.1 - ieee754: ^1.1.13 - checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10/997434d3c6e3b39e0be479a80288875f71cd1c07d75a3855e6f08ef848a3c966023f79534e22e415ff3a5112708ce06127277ab20e527146d55c84566405c7c6 languageName: node linkType: hard @@ -3399,16 +3399,16 @@ __metadata: version: 6.0.3 resolution: "buffer@npm:6.0.3" dependencies: - base64-js: ^1.3.1 - ieee754: ^1.2.1 - checksum: 5ad23293d9a731e4318e420025800b42bf0d264004c0286c8cc010af7a270c7a0f6522e84f54b9ad65cbd6db20b8badbfd8d2ebf4f80fa03dab093b89e68c3f9 + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10/b6bc68237ebf29bdacae48ce60e5e28fc53ae886301f2ad9496618efac49427ed79096750033e7eab1897a4f26ae374ace49106a5758f38fb70c78c9fda2c3b1 languageName: node linkType: hard "cac@npm:^6.7.14": version: 6.7.14 resolution: "cac@npm:6.7.14" - checksum: 45a2496a9443abbe7f52a49b22fbe51b1905eff46e03fd5e6c98e3f85077be3f8949685a1849b1a9cd2bc3e5567dfebcf64f01ce01847baf918f1b37c839791a + checksum: 10/002769a0fbfc51c062acd2a59df465a2a947916b02ac50b56c69ec6c018ee99ac3e7f4dd7366334ea847f1ecacf4defaa61bcd2ac283db50156ce1f1d8c8ad42 languageName: node linkType: hard @@ -3416,26 +3416,26 @@ __metadata: version: 19.0.1 resolution: "cacache@npm:19.0.1" dependencies: - "@npmcli/fs": ^4.0.0 - fs-minipass: ^3.0.0 - glob: ^10.2.2 - lru-cache: ^10.0.1 - minipass: ^7.0.3 - minipass-collect: ^2.0.1 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - p-map: ^7.0.2 - ssri: ^12.0.0 - tar: ^7.4.3 - unique-filename: ^4.0.0 - checksum: e95684717de6881b4cdaa949fa7574e3171946421cd8291769dd3d2417dbf7abf4aa557d1f968cca83dcbc95bed2a281072b09abfc977c942413146ef7ed4525 + "@npmcli/fs": "npm:^4.0.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^7.0.2" + ssri: "npm:^12.0.0" + tar: "npm:^7.4.3" + unique-filename: "npm:^4.0.0" + checksum: 10/ea026b27b13656330c2bbaa462a88181dcaa0435c1c2e705db89b31d9bdf7126049d6d0445ba746dca21454a0cfdf1d6f47fd39d34c8c8435296b30bc5738a13 languageName: node linkType: hard "cachedir@npm:^2.3.0": version: 2.4.0 resolution: "cachedir@npm:2.4.0" - checksum: 43198514eaa61f65b5535ed29ad651f22836fba3868ed58a6a87731f05462f317d39098fa3ac778801c25455483c9b7f32a2fcad1f690a978947431f12a0f4d0 + checksum: 10/43198514eaa61f65b5535ed29ad651f22836fba3868ed58a6a87731f05462f317d39098fa3ac778801c25455483c9b7f32a2fcad1f690a978947431f12a0f4d0 languageName: node linkType: hard @@ -3443,11 +3443,11 @@ __metadata: version: 4.0.0 resolution: "caching-transform@npm:4.0.0" dependencies: - hasha: ^5.0.0 - make-dir: ^3.0.0 - package-hash: ^4.0.0 - write-file-atomic: ^3.0.0 - checksum: c4db6939533b677866808de67c32f0aaf8bf4fd3e3b8dc957e5d630c007c06b7f11512d44c38a38287fb068e931067e8da9019c34d787259a44121c9a6b87a1f + hasha: "npm:^5.0.0" + make-dir: "npm:^3.0.0" + package-hash: "npm:^4.0.0" + write-file-atomic: "npm:^3.0.0" + checksum: 10/7e7ca628511ab18c86eea1231834d2591de29a13ae771a7d9ab85be8c6e53e45c5a5b0d0d95d4a3274fc4f26c16956a98162e40c191c131204b5d5aa949660b5 languageName: node linkType: hard @@ -3455,9 +3455,9 @@ __metadata: version: 1.0.2 resolution: "call-bind-apply-helpers@npm:1.0.2" dependencies: - es-errors: ^1.3.0 - function-bind: ^1.1.2 - checksum: b2863d74fcf2a6948221f65d95b91b4b2d90cfe8927650b506141e669f7d5de65cea191bf788838bc40d13846b7886c5bc5c84ab96c3adbcf88ad69a72fcdc6b + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + checksum: 10/00482c1f6aa7cfb30fb1dbeb13873edf81cfac7c29ed67a5957d60635a56b2a4a480f1016ddbdb3395cc37900d46037fb965043a51c5c789ffeab4fc535d18b5 languageName: node linkType: hard @@ -3465,11 +3465,11 @@ __metadata: version: 1.0.8 resolution: "call-bind@npm:1.0.8" 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 - checksum: aa2899bce917a5392fd73bd32e71799c37c0b7ab454e0ed13af7f6727549091182aade8bbb7b55f304a5bc436d543241c14090fb8a3137e9875e23f444f4f5a9 + call-bind-apply-helpers: "npm:^1.0.0" + es-define-property: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.2" + checksum: 10/659b03c79bbfccf0cde3a79e7d52570724d7290209823e1ca5088f94b52192dc1836b82a324d0144612f816abb2f1734447438e38d9dafe0b3f82c2a1b9e3bce languageName: node linkType: hard @@ -3477,51 +3477,51 @@ __metadata: version: 1.0.4 resolution: "call-bound@npm:1.0.4" dependencies: - call-bind-apply-helpers: ^1.0.2 - get-intrinsic: ^1.3.0 - checksum: 2f6399488d1c272f56306ca60ff696575e2b7f31daf23bc11574798c84d9f2759dceb0cb1f471a85b77f28962a7ac6411f51d283ea2e45319009a19b6ccab3b2 + call-bind-apply-helpers: "npm:^1.0.2" + get-intrinsic: "npm:^1.3.0" + checksum: 10/ef2b96e126ec0e58a7ff694db43f4d0d44f80e641370c21549ed911fecbdbc2df3ebc9bddad918d6bbdefeafb60bb3337902006d5176d72bcd2da74820991af7 languageName: node linkType: hard "callsites@npm:^3.0.0": version: 3.1.0 resolution: "callsites@npm:3.1.0" - checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + checksum: 10/072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 languageName: node linkType: hard "camelcase-css@npm:^2.0.1": version: 2.0.1 resolution: "camelcase-css@npm:2.0.1" - checksum: 1cec2b3b3dcb5026688a470b00299a8db7d904c4802845c353dbd12d9d248d3346949a814d83bfd988d4d2e5b9904c07efe76fecd195a1d4f05b543e7c0b56b1 + checksum: 10/1cec2b3b3dcb5026688a470b00299a8db7d904c4802845c353dbd12d9d248d3346949a814d83bfd988d4d2e5b9904c07efe76fecd195a1d4f05b543e7c0b56b1 languageName: node linkType: hard "camelcase@npm:^5.0.0, camelcase@npm:^5.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" - checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b + checksum: 10/e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b languageName: node linkType: hard "caniuse-lite@npm:^1.0.30001688, caniuse-lite@npm:^1.0.30001702": version: 1.0.30001714 resolution: "caniuse-lite@npm:1.0.30001714" - checksum: e68fbee9a115f842f0d907e033f14e8d476f965473556fb993c8870854a2608573eebf4dbc2aa5b03caa9c6224ff4afe63ea8c702566fbbcb78c369fba72395b + checksum: 10/72ab5f5b3619f7ce53d46c08eea0efb977825fa1c895572d9ae20ed56a2b98e8f668b3167def711cde3b4ce8e07cc9e1fb8823783305453f6d2c2fd5341914d8 languageName: node linkType: hard "caseless@npm:~0.12.0": version: 0.12.0 resolution: "caseless@npm:0.12.0" - checksum: b43bd4c440aa1e8ee6baefee8063b4850fd0d7b378f6aabc796c9ec8cb26d27fb30b46885350777d9bd079c5256c0e1329ad0dc7c2817e0bb466810ebb353751 + checksum: 10/ea1efdf430975fdbac3505cdd21007f7ac5aa29b6d4d1c091f965853cd1bf87e4b08ea07b31a6d688b038872b7cdf0589d9262d59c699d199585daad052aeb20 languageName: node linkType: hard "ccount@npm:^2.0.0": version: 2.0.1 resolution: "ccount@npm:2.0.1" - checksum: 48193dada54c9e260e0acf57fc16171a225305548f9ad20d5471e0f7a8c026aedd8747091dccb0d900cde7df4e4ddbd235df0d8de4a64c71b12f0d3303eeafd4 + checksum: 10/48193dada54c9e260e0acf57fc16171a225305548f9ad20d5471e0f7a8c026aedd8747091dccb0d900cde7df4e4ddbd235df0d8de4a64c71b12f0d3303eeafd4 languageName: node linkType: hard @@ -3529,12 +3529,12 @@ __metadata: version: 5.2.0 resolution: "chai@npm:5.2.0" dependencies: - assertion-error: ^2.0.1 - check-error: ^2.1.1 - deep-eql: ^5.0.1 - loupe: ^3.1.0 - pathval: ^2.0.0 - checksum: 15e4ba12d02df3620fd59b4a6e8efe43b47872ce61f1c0ca77ac1205a2a5898f3b6f1f52408fd1a708b8d07fdfb5e65b97af40bad9fd94a69ed8d4264c7a69f1 + assertion-error: "npm:^2.0.1" + check-error: "npm:^2.1.1" + deep-eql: "npm:^5.0.1" + loupe: "npm:^3.1.0" + pathval: "npm:^2.0.0" + checksum: 10/2ce03671c159c6a567bf1912756daabdbb7c075f3c0078f1b59d61da8d276936367ee696dfe093b49e1479d9ba93a6074c8e55d49791dddd8061728cdcad249e languageName: node linkType: hard @@ -3542,9 +3542,9 @@ __metadata: version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: - ansi-styles: ^4.1.0 - supports-color: ^7.1.0 - checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10/cb3f3e594913d63b1814d7ca7c9bafbf895f75fbf93b92991980610dfd7b48500af4e3a5d4e3a8f337990a96b168d7eb84ee55efdce965e2ee8efc20f8c8f139 languageName: node linkType: hard @@ -3552,61 +3552,61 @@ __metadata: version: 1.1.3 resolution: "chalk@npm:1.1.3" dependencies: - ansi-styles: ^2.2.1 - escape-string-regexp: ^1.0.2 - has-ansi: ^2.0.0 - strip-ansi: ^3.0.0 - supports-color: ^2.0.0 - checksum: 9d2ea6b98fc2b7878829eec223abcf404622db6c48396a9b9257f6d0ead2acf18231ae368d6a664a83f272b0679158da12e97b5229f794939e555cc574478acd + ansi-styles: "npm:^2.2.1" + escape-string-regexp: "npm:^1.0.2" + has-ansi: "npm:^2.0.0" + strip-ansi: "npm:^3.0.0" + supports-color: "npm:^2.0.0" + checksum: 10/abcf10da02afde04cc615f06c4bdb3ffc70d2bfbf37e0df03bb88b7459a9411dab4d01210745b773abc936031530a20355f1facc4bee1bbf08613d8fdcfb3aeb languageName: node linkType: hard "chalk@npm:^5.4.1": version: 5.4.1 resolution: "chalk@npm:5.4.1" - checksum: 0c656f30b782fed4d99198825c0860158901f449a6b12b818b0aabad27ec970389e7e8767d0e00762175b23620c812e70c4fd92c0210e55fc2d993638b74e86e + checksum: 10/29df3ffcdf25656fed6e95962e2ef86d14dfe03cd50e7074b06bad9ffbbf6089adbb40f75c00744d843685c8d008adaf3aed31476780312553caf07fa86e5bc7 languageName: node linkType: hard "character-entities-html4@npm:^2.0.0": version: 2.1.0 resolution: "character-entities-html4@npm:2.1.0" - checksum: 7034aa7c7fa90309667f6dd50499c8a760c3d3a6fb159adb4e0bada0107d194551cdbad0714302f62d06ce4ed68565c8c2e15fdef2e8f8764eb63fa92b34b11d + checksum: 10/7034aa7c7fa90309667f6dd50499c8a760c3d3a6fb159adb4e0bada0107d194551cdbad0714302f62d06ce4ed68565c8c2e15fdef2e8f8764eb63fa92b34b11d languageName: node linkType: hard "character-entities-legacy@npm:^3.0.0": version: 3.0.0 resolution: "character-entities-legacy@npm:3.0.0" - checksum: 7582af055cb488b626d364b7d7a4e46b06abd526fb63c0e4eb35bcb9c9799cc4f76b39f34fdccef2d1174ac95e53e9ab355aae83227c1a2505877893fce77731 + checksum: 10/7582af055cb488b626d364b7d7a4e46b06abd526fb63c0e4eb35bcb9c9799cc4f76b39f34fdccef2d1174ac95e53e9ab355aae83227c1a2505877893fce77731 languageName: node linkType: hard "character-entities@npm:^2.0.0": version: 2.0.2 resolution: "character-entities@npm:2.0.2" - checksum: cf1643814023697f725e47328fcec17923b8f1799102a8a79c1514e894815651794a2bffd84bb1b3a4b124b050154e4529ed6e81f7c8068a734aecf07a6d3def + checksum: 10/c8dd1f4bf1a92fccf7d2fad9673660a88b37854557d30f6076c32fedfb92d1420208298829ff1d3b6b4fa1c7012e8326c45e7f5c3ed1e9a09ec177593c521b2f languageName: node linkType: hard "character-reference-invalid@npm:^2.0.0": version: 2.0.1 resolution: "character-reference-invalid@npm:2.0.1" - checksum: 98d3b1a52ae510b7329e6ee7f6210df14f1e318c5415975d4c9e7ee0ef4c07875d47c6e74230c64551f12f556b4a8ccc24d9f3691a2aa197019e72a95e9297ee + checksum: 10/98d3b1a52ae510b7329e6ee7f6210df14f1e318c5415975d4c9e7ee0ef4c07875d47c6e74230c64551f12f556b4a8ccc24d9f3691a2aa197019e72a95e9297ee languageName: node linkType: hard "check-error@npm:^2.1.1": version: 2.1.1 resolution: "check-error@npm:2.1.1" - checksum: d785ed17b1d4a4796b6e75c765a9a290098cf52ff9728ce0756e8ffd4293d2e419dd30c67200aee34202463b474306913f2fcfaf1890641026d9fc6966fea27a + checksum: 10/d785ed17b1d4a4796b6e75c765a9a290098cf52ff9728ce0756e8ffd4293d2e419dd30c67200aee34202463b474306913f2fcfaf1890641026d9fc6966fea27a languageName: node linkType: hard "check-more-types@npm:2.24.0, check-more-types@npm:^2.24.0": version: 2.24.0 resolution: "check-more-types@npm:2.24.0" - checksum: b09080ec3404d20a4b0ead828994b2e5913236ef44ed3033a27062af0004cf7d2091fbde4b396bf13b7ce02fb018bc9960b48305e6ab2304cd82d73ed7a51ef4 + checksum: 10/67c5288443bd73a81638e1185f8c5410d0edf6458c086149ef1cda95c07535b5dd5c11c426dc3ee8f0de0f3244aa2d4f2ba1937aaa8a94995589cdcce0bbccb9 languageName: node linkType: hard @@ -3614,46 +3614,46 @@ __metadata: version: 3.6.0 resolution: "chokidar@npm:3.6.0" dependencies: - anymatch: ~3.1.2 - braces: ~3.0.2 - fsevents: ~2.3.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 + anymatch: "npm:~3.1.2" + braces: "npm:~3.0.2" + fsevents: "npm:~2.3.2" + glob-parent: "npm:~5.1.2" + is-binary-path: "npm:~2.1.0" + is-glob: "npm:~4.0.1" + normalize-path: "npm:~3.0.0" + readdirp: "npm:~3.6.0" dependenciesMeta: fsevents: optional: true - checksum: d2f29f499705dcd4f6f3bbed79a9ce2388cf530460122eed3b9c48efeab7a4e28739c6551fd15bec9245c6b9eeca7a32baa64694d64d9b6faeb74ddb8c4a413d + checksum: 10/c327fb07704443f8d15f7b4a7ce93b2f0bc0e6cea07ec28a7570aa22cd51fcf0379df589403976ea956c369f25aa82d84561947e227cd925902e1751371658df languageName: node linkType: hard "chownr@npm:^3.0.0": version: 3.0.0 resolution: "chownr@npm:3.0.0" - checksum: fd73a4bab48b79e66903fe1cafbdc208956f41ea4f856df883d0c7277b7ab29fd33ee65f93b2ec9192fc0169238f2f8307b7735d27c155821d886b84aa97aa8d + checksum: 10/b63cb1f73d171d140a2ed8154ee6566c8ab775d3196b0e03a2a94b5f6a0ce7777ee5685ca56849403c8d17bd457a6540672f9a60696a6137c7a409097495b82c languageName: node linkType: hard "ci-info@npm:^3.2.0": version: 3.9.0 resolution: "ci-info@npm:3.9.0" - checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 + checksum: 10/75bc67902b4d1c7b435497adeb91598f6d52a3389398e44294f6601b20cfef32cf2176f7be0eb961d9e085bb333a8a5cae121cb22f81cf238ae7f58eb80e9397 languageName: node linkType: hard "classnames@npm:^2.3.0": version: 2.5.1 resolution: "classnames@npm:2.5.1" - checksum: da424a8a6f3a96a2e87d01a432ba19315503294ac7e025f9fece656db6b6a0f7b5003bb1fbb51cbb0d9624d964f1b9bb35a51c73af9b2434c7b292c42231c1e5 + checksum: 10/58eb394e8817021b153bb6e7d782cfb667e4ab390cb2e9dac2fc7c6b979d1cc2b2a733093955fc5c94aa79ef5c8c89f11ab77780894509be6afbb91dddd79d15 languageName: node linkType: hard "clean-stack@npm:^2.0.0": version: 2.2.0 resolution: "clean-stack@npm:2.2.0" - checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + checksum: 10/2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 languageName: node linkType: hard @@ -3661,8 +3661,8 @@ __metadata: version: 3.1.0 resolution: "cli-cursor@npm:3.1.0" dependencies: - restore-cursor: ^3.1.0 - checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 + restore-cursor: "npm:^3.1.0" + checksum: 10/2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 languageName: node linkType: hard @@ -3670,8 +3670,8 @@ __metadata: version: 5.0.0 resolution: "cli-cursor@npm:5.0.0" dependencies: - restore-cursor: ^5.0.0 - checksum: 1eb9a3f878b31addfe8d82c6d915ec2330cec8447ab1f117f4aa34f0137fbb3137ec3466e1c9a65bcb7557f6e486d343f2da57f253a2f668d691372dfa15c090 + restore-cursor: "npm:^5.0.0" + checksum: 10/1eb9a3f878b31addfe8d82c6d915ec2330cec8447ab1f117f4aa34f0137fbb3137ec3466e1c9a65bcb7557f6e486d343f2da57f253a2f668d691372dfa15c090 languageName: node linkType: hard @@ -3679,12 +3679,12 @@ __metadata: version: 0.6.5 resolution: "cli-table3@npm:0.6.5" dependencies: - "@colors/colors": 1.5.0 - string-width: ^4.2.0 + "@colors/colors": "npm:1.5.0" + string-width: "npm:^4.2.0" dependenciesMeta: "@colors/colors": optional: true - checksum: ab7afbf4f8597f1c631f3ee6bb3481d0bfeac8a3b81cffb5a578f145df5c88003b6cfff46046a7acae86596fdd03db382bfa67f20973b6b57425505abc47e42c + checksum: 10/8dca71256f6f1367bab84c33add3f957367c7c43750a9828a4212ebd31b8df76bd7419d386e3391ac7419698a8540c25f1a474584028f35b170841cde2e055c5 languageName: node linkType: hard @@ -3692,9 +3692,9 @@ __metadata: version: 2.1.0 resolution: "cli-truncate@npm:2.1.0" dependencies: - slice-ansi: ^3.0.0 - string-width: ^4.2.0 - checksum: bf1e4e6195392dc718bf9cd71f317b6300dc4a9191d052f31046b8773230ece4fa09458813bf0e3455a5e68c0690d2ea2c197d14a8b85a7b5e01c97f4b5feb5d + slice-ansi: "npm:^3.0.0" + string-width: "npm:^4.2.0" + checksum: 10/976f1887de067a8cd6ec830a7a8508336aebe6cec79b521d98ed13f67ef073b637f7305675b6247dd22f9e9cf045ec55fe746c7bdb288fbe8db0dfdc9fd52e55 languageName: node linkType: hard @@ -3702,16 +3702,16 @@ __metadata: version: 4.0.0 resolution: "cli-truncate@npm:4.0.0" dependencies: - slice-ansi: ^5.0.0 - string-width: ^7.0.0 - checksum: d5149175fd25ca985731bdeec46a55ec237475cf74c1a5e103baea696aceb45e372ac4acbaabf1316f06bd62e348123060f8191ffadfeedebd2a70a2a7fb199d + slice-ansi: "npm:^5.0.0" + string-width: "npm:^7.0.0" + checksum: 10/d5149175fd25ca985731bdeec46a55ec237475cf74c1a5e103baea696aceb45e372ac4acbaabf1316f06bd62e348123060f8191ffadfeedebd2a70a2a7fb199d languageName: node linkType: hard "client-only@npm:^0.0.1": version: 0.0.1 resolution: "client-only@npm:0.0.1" - checksum: 0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8 + checksum: 10/0c16bf660dadb90610553c1d8946a7fdfb81d624adea073b8440b7d795d5b5b08beb3c950c6a2cf16279365a3265158a236876d92bce16423c485c322d7dfaf8 languageName: node linkType: hard @@ -3719,10 +3719,10 @@ __metadata: version: 6.0.0 resolution: "cliui@npm:6.0.0" dependencies: - string-width: ^4.2.0 - strip-ansi: ^6.0.0 - wrap-ansi: ^6.2.0 - checksum: 4fcfd26d292c9f00238117f39fc797608292ae36bac2168cfee4c85923817d0607fe21b3329a8621e01aedf512c99b7eaa60e363a671ffd378df6649fb48ae42 + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.0" + wrap-ansi: "npm:^6.2.0" + checksum: 10/44afbcc29df0899e87595590792a871cd8c4bc7d6ce92832d9ae268d141a77022adafca1aeaeccff618b62a613b8354e57fe22a275c199ec04baf00d381ef6ab languageName: node linkType: hard @@ -3730,29 +3730,29 @@ __metadata: version: 2.0.1 resolution: "color-convert@npm:2.0.1" dependencies: - color-name: ~1.1.4 - checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + color-name: "npm:~1.1.4" + checksum: 10/fa00c91b4332b294de06b443923246bccebe9fab1b253f7fe1772d37b06a2269b4039a85e309abe1fe11b267b11c08d1d0473fda3badd6167f57313af2887a64 languageName: node linkType: hard "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" - checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + checksum: 10/b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 languageName: node linkType: hard "colord@npm:^2.9.3": version: 2.9.3 resolution: "colord@npm:2.9.3" - checksum: 95d909bfbcfd8d5605cbb5af56f2d1ce2b323990258fd7c0d2eb0e6d3bb177254d7fb8213758db56bb4ede708964f78c6b992b326615f81a18a6aaf11d64c650 + checksum: 10/907a4506d7307e2f580b471b581e992181ed75ab0c6925ece9ca46d88161d2fc50ed15891cd0556d0d9321237ca75afc9d462e4c050b939ef88428517f047f30 languageName: node linkType: hard "colorette@npm:^2.0.16, colorette@npm:^2.0.20": version: 2.0.20 resolution: "colorette@npm:2.0.20" - checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d + checksum: 10/0b8de48bfa5d10afc160b8eaa2b9938f34a892530b2f7d7897e0458d9535a066e3998b49da9d21161c78225b272df19ae3a64d6df28b4c9734c0e55bbd02406f languageName: node linkType: hard @@ -3760,64 +3760,64 @@ __metadata: version: 1.0.8 resolution: "combined-stream@npm:1.0.8" dependencies: - delayed-stream: ~1.0.0 - checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c + delayed-stream: "npm:~1.0.0" + checksum: 10/2e969e637d05d09fa50b02d74c83a1186f6914aae89e6653b62595cc75a221464f884f55f231b8f4df7a49537fba60bdc0427acd2bf324c09a1dbb84837e36e4 languageName: node linkType: hard "comma-separated-tokens@npm:^2.0.0": version: 2.0.3 resolution: "comma-separated-tokens@npm:2.0.3" - checksum: e3bf9e0332a5c45f49b90e79bcdb4a7a85f28d6a6f0876a94f1bb9b2bfbdbbb9292aac50e1e742d8c0db1e62a0229a106f57917e2d067fca951d81737651700d + checksum: 10/e3bf9e0332a5c45f49b90e79bcdb4a7a85f28d6a6f0876a94f1bb9b2bfbdbbb9292aac50e1e742d8c0db1e62a0229a106f57917e2d067fca951d81737651700d languageName: node linkType: hard "commander@npm:^13.1.0": version: 13.1.0 resolution: "commander@npm:13.1.0" - checksum: 8ca2fcb33caf2aa06fba3722d7a9440921331d54019dabf906f3603313e7bf334b009b862257b44083ff65d5a3ab19e83ad73af282bd5319f01dc228bdf87ef0 + checksum: 10/d3b4b79e6be8471ddadacbb8cd441fe82154d7da7393b50e76165a9e29ccdb74fa911a186437b9a211d0fc071db6051915c94fb8ef16d77511d898e9dbabc6af languageName: node linkType: hard "commander@npm:^2.19.0": version: 2.20.3 resolution: "commander@npm:2.20.3" - checksum: ab8c07884e42c3a8dbc5dd9592c606176c7eb5c1ca5ff274bcf907039b2c41de3626f684ea75ccf4d361ba004bbaff1f577d5384c155f3871e456bdf27becf9e + checksum: 10/90c5b6898610cd075984c58c4f88418a4fb44af08c1b1415e9854c03171bec31b336b7f3e4cefe33de994b3f12b03c5e2d638da4316df83593b9e82554e7e95b languageName: node linkType: hard "commander@npm:^4.0.0": version: 4.1.1 resolution: "commander@npm:4.1.1" - checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 + checksum: 10/3b2dc4125f387dab73b3294dbcb0ab2a862f9c0ad748ee2b27e3544d25325b7a8cdfbcc228d103a98a716960b14478114a5206b5415bd48cdafa38797891562c languageName: node linkType: hard "commander@npm:^6.2.1": version: 6.2.1 resolution: "commander@npm:6.2.1" - checksum: d7090410c0de6bc5c67d3ca41c41760d6d268f3c799e530aafb73b7437d1826bbf0d2a3edac33f8b57cc9887b4a986dce307fa5557e109be40eadb7c43b21742 + checksum: 10/25b88c2efd0380c84f7844b39cf18510da7bfc5013692d68cdc65f764a1c34e6c8a36ea6d72b6620e3710a930cf8fab2695bdec2bf7107a0f4fa30a3ef3b7d0e languageName: node linkType: hard "common-tags@npm:^1.8.0": version: 1.8.2 resolution: "common-tags@npm:1.8.2" - checksum: 767a6255a84bbc47df49a60ab583053bb29a7d9687066a18500a516188a062c4e4cd52de341f22de0b07062e699b1b8fe3cfa1cb55b241cb9301aeb4f45b4dff + checksum: 10/c665d0f463ee79dda801471ad8da6cb33ff7332ba45609916a508ad3d77ba07ca9deeb452e83f81f24c2b081e2c1315347f23d239210e63d1c5e1a0c7c019fe2 languageName: node linkType: hard "commondir@npm:^1.0.1": version: 1.0.1 resolution: "commondir@npm:1.0.1" - checksum: 59715f2fc456a73f68826285718503340b9f0dd89bfffc42749906c5cf3d4277ef11ef1cca0350d0e79204f00f1f6d83851ececc9095dc88512a697ac0b9bdcb + checksum: 10/4620bc4936a4ef12ce7dfcd272bb23a99f2ad68889a4e4ad766c9f8ad21af982511934d6f7050d4a8bde90011b1c15d56e61a1b4576d9913efbf697a20172d6c languageName: node linkType: hard "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" - checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + checksum: 10/9680699c8e2b3af0ae22592cb764acaf973f292a7b71b8a06720233011853a58e256c89216a10cbe889727532fd77f8bcd49a760cedfde271b8e006c20e079f2 languageName: node linkType: hard @@ -3825,9 +3825,9 @@ __metadata: version: 1.1.13 resolution: "config-chain@npm:1.1.13" dependencies: - ini: ^1.3.4 - proto-list: ~1.2.1 - checksum: 828137a28e7c2fc4b7fb229bd0cd6c1397bcf83434de54347e608154008f411749041ee392cbe42fab6307e02de4c12480260bf769b7d44b778fdea3839eafab + ini: "npm:^1.3.4" + proto-list: "npm:~1.2.1" + checksum: 10/83d22cabf709e7669f6870021c4d552e4fc02e9682702b726be94295f42ce76cfed00f70b2910ce3d6c9465d9758e191e28ad2e72ff4e3331768a90da6c1ef03 languageName: node linkType: hard @@ -3835,88 +3835,88 @@ __metadata: version: 0.0.0-use.local resolution: "contracts-ui@workspace:." dependencies: - "@cypress/code-coverage": ^3.12.20 - "@cypress/snapshot": ^2.1.7 - "@esbuild-plugins/node-globals-polyfill": ^0.2.3 - "@headlessui/react": ^1.7.18 - "@heroicons/react": ^1.0.6 - "@istanbuljs/nyc-config-typescript": ^1.0.2 - "@polkadot/api": 15.8.1 + "@cypress/code-coverage": "npm:^3.12.20" + "@cypress/snapshot": "npm:^2.1.7" + "@esbuild-plugins/node-globals-polyfill": "npm:^0.2.3" + "@headlessui/react": "npm:^1.7.18" + "@heroicons/react": "npm:^1.0.6" + "@istanbuljs/nyc-config-typescript": "npm:^1.0.2" + "@polkadot/api": "npm:15.8.1" "@polkadot/api-contract": "file:./.api-contract/build" - "@polkadot/extension-dapp": ^0.58.6 - "@polkadot/types": 15.8.1 - "@polkadot/ui-keyring": ^3.12.2 - "@polkadot/ui-shared": ^3.12.2 - "@tailwindcss/forms": ^0.5.7 - "@types/bcryptjs": ^2.4.6 - "@types/big.js": ^6.2.2 - "@types/node": ^22.5.0 - "@types/react": ^19.1.2 - "@types/react-dom": ^19.1.2 - "@typescript-eslint/eslint-plugin": ^8.2.0 - "@typescript-eslint/parser": ^8.2.0 - "@vitejs/plugin-react": ^4.3.1 - "@vitejs/plugin-react-swc": ^3.7.0 - autoprefixer: ^10.4.20 - big.js: ^6.2.1 - buffer: ^6.0.3 - copy-to-clipboard: ^3.3.3 - cross-env: ^7.0.3 - cypress: 13.13.3 - cypress-file-upload: ^5.0.8 - date-fns: ^2.30.0 - dexie: ^3.2.4 - dexie-react-hooks: 1.1.7 - eslint: ^9.9.1 - eslint-config-prettier: ^9.1.0 - eslint-import-resolver-typescript: ^3.6.1 - eslint-plugin-header: ^3.1.1 - eslint-plugin-import: ^2.29.1 - eslint-plugin-react: ^7.35.0 - eslint-plugin-react-hooks: ^4.6.2 - ethers: ^6.13.5 - husky: ^9.1.5 - istanbul-lib-coverage: ^3.2.2 - json5: ^2.2.3 - lint-staged: ^15.2.9 - nyc: ^17.0.0 - postcss: ^8.4.41 - postcss-import: ^16.1.0 - prettier: ^3.3.3 - prettier-plugin-tailwindcss: ^0.6.6 - react: ^18.3.1 - react-dom: ^18.3.1 - react-dropzone: ^14.2.3 - react-markdown: ^9.0.1 - react-router: ^6.26.1 - react-router-dom: ^6.26.1 - react-select: ^5.8.0 - react-tooltip: ^5.28.0 - remark-gfm: ^4.0.0 - source-map-support: ^0.5.21 - tailwind-merge: ^2.5.2 - tailwindcss: ^3.4.10 - ts-node: ^10.9.2 - typescript: ^5.5.4 - vite: ^5.4.2 - vite-plugin-istanbul: ^6.0.2 - vite-tsconfig-paths: ^5.0.1 - vitest: ^2.0.5 - yup: ^1.4.0 + "@polkadot/extension-dapp": "npm:^0.58.6" + "@polkadot/types": "npm:15.8.1" + "@polkadot/ui-keyring": "npm:^3.12.2" + "@polkadot/ui-shared": "npm:^3.12.2" + "@tailwindcss/forms": "npm:^0.5.7" + "@types/bcryptjs": "npm:^2.4.6" + "@types/big.js": "npm:^6.2.2" + "@types/node": "npm:^22.5.0" + "@types/react": "npm:^19.1.2" + "@types/react-dom": "npm:^19.1.2" + "@typescript-eslint/eslint-plugin": "npm:^8.2.0" + "@typescript-eslint/parser": "npm:^8.2.0" + "@vitejs/plugin-react": "npm:^4.3.1" + "@vitejs/plugin-react-swc": "npm:^3.7.0" + autoprefixer: "npm:^10.4.20" + big.js: "npm:^6.2.1" + buffer: "npm:^6.0.3" + copy-to-clipboard: "npm:^3.3.3" + cross-env: "npm:^7.0.3" + cypress: "npm:13.13.3" + cypress-file-upload: "npm:^5.0.8" + date-fns: "npm:^2.30.0" + dexie: "npm:^3.2.4" + dexie-react-hooks: "npm:1.1.7" + eslint: "npm:^9.9.1" + eslint-config-prettier: "npm:^9.1.0" + eslint-import-resolver-typescript: "npm:^3.6.1" + eslint-plugin-header: "npm:^3.1.1" + eslint-plugin-import: "npm:^2.29.1" + eslint-plugin-react: "npm:^7.35.0" + eslint-plugin-react-hooks: "npm:^4.6.2" + ethers: "npm:^6.13.5" + husky: "npm:^9.1.5" + istanbul-lib-coverage: "npm:^3.2.2" + json5: "npm:^2.2.3" + lint-staged: "npm:^15.2.9" + nyc: "npm:^17.0.0" + postcss: "npm:^8.4.41" + postcss-import: "npm:^16.1.0" + prettier: "npm:^3.3.3" + prettier-plugin-tailwindcss: "npm:^0.6.6" + react: "npm:^18.3.1" + react-dom: "npm:^18.3.1" + react-dropzone: "npm:^14.2.3" + react-markdown: "npm:^9.0.1" + react-router: "npm:^6.26.1" + react-router-dom: "npm:^6.26.1" + react-select: "npm:^5.8.0" + react-tooltip: "npm:^5.28.0" + remark-gfm: "npm:^4.0.0" + source-map-support: "npm:^0.5.21" + tailwind-merge: "npm:^2.5.2" + tailwindcss: "npm:^3.4.10" + ts-node: "npm:^10.9.2" + typescript: "npm:^5.5.4" + vite: "npm:^5.4.2" + vite-plugin-istanbul: "npm:^6.0.2" + vite-tsconfig-paths: "npm:^5.0.1" + vitest: "npm:^2.0.5" + yup: "npm:^1.4.0" languageName: unknown linkType: soft "convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.7.0": version: 1.9.0 resolution: "convert-source-map@npm:1.9.0" - checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 + checksum: 10/dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 languageName: node linkType: hard "convert-source-map@npm:^2.0.0": version: 2.0.0 resolution: "convert-source-map@npm:2.0.0" - checksum: 63ae9933be5a2b8d4509daca5124e20c14d023c820258e484e32dc324d34c2754e71297c94a05784064ad27615037ef677e3f0c00469fb55f409d2bb21261035 + checksum: 10/c987be3ec061348cdb3c2bfb924bec86dea1eacad10550a85ca23edb0fe3556c3a61c7399114f3331ccb3499d7fd0285ab24566e5745929412983494c3926e15 languageName: node linkType: hard @@ -3924,15 +3924,15 @@ __metadata: version: 3.3.3 resolution: "copy-to-clipboard@npm:3.3.3" dependencies: - toggle-selection: ^1.0.6 - checksum: e0a325e39b7615108e6c1c8ac110ae7b829cdc4ee3278b1df6a0e4228c490442cc86444cd643e2da344fbc424b3aab8909e2fec82f8bc75e7e5b190b7c24eecf + toggle-selection: "npm:^1.0.6" + checksum: 10/e0a325e39b7615108e6c1c8ac110ae7b829cdc4ee3278b1df6a0e4228c490442cc86444cd643e2da344fbc424b3aab8909e2fec82f8bc75e7e5b190b7c24eecf languageName: node linkType: hard "core-util-is@npm:1.0.2": version: 1.0.2 resolution: "core-util-is@npm:1.0.2" - checksum: 7a4c925b497a2c91421e25bf76d6d8190f0b2359a9200dbeed136e63b2931d6294d3b1893eda378883ed363cd950f44a12a401384c609839ea616befb7927dab + checksum: 10/d0f7587346b44a1fe6c269267e037dd34b4787191e473c3e685f507229d88561c40eb18872fabfff02977301815d474300b7bfbd15396c13c5377393f7e87ec3 languageName: node linkType: hard @@ -3940,19 +3940,19 @@ __metadata: version: 7.1.0 resolution: "cosmiconfig@npm:7.1.0" dependencies: - "@types/parse-json": ^4.0.0 - import-fresh: ^3.2.1 - parse-json: ^5.0.0 - path-type: ^4.0.0 - yaml: ^1.10.0 - checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f + "@types/parse-json": "npm:^4.0.0" + import-fresh: "npm:^3.2.1" + parse-json: "npm:^5.0.0" + path-type: "npm:^4.0.0" + yaml: "npm:^1.10.0" + checksum: 10/03600bb3870c80ed151b7b706b99a1f6d78df8f4bdad9c95485072ea13358ef294b13dd99f9e7bf4cc0b43bcd3599d40df7e648750d21c2f6817ca2cd687e071 languageName: node linkType: hard "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" - checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff + checksum: 10/a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff languageName: node linkType: hard @@ -3960,11 +3960,11 @@ __metadata: version: 7.0.3 resolution: "cross-env@npm:7.0.3" dependencies: - cross-spawn: ^7.0.1 + cross-spawn: "npm:^7.0.1" bin: cross-env: src/bin/cross-env.js cross-env-shell: src/bin/cross-env-shell.js - checksum: 26f2f3ea2ab32617f57effb70d329c2070d2f5630adc800985d8b30b56e8bf7f5f439dd3a0358b79cee6f930afc23cf8e23515f17ccfb30092c6b62c6b630a79 + checksum: 10/e99911f0d31c20e990fd92d6fd001f4b01668a303221227cc5cb42ed155f086351b1b3bd2699b200e527ab13011b032801f8ce638e6f09f854bdf744095e604c languageName: node linkType: hard @@ -3972,10 +3972,10 @@ __metadata: version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: - path-key: ^3.1.0 - shebang-command: ^2.0.0 - which: ^2.0.1 - checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10/0d52657d7ae36eb130999dffff1168ec348687b48dd38e2ff59992ed916c88d328cf1d07ff4a4a10bc78de5e1c23f04b306d569e42f7a2293915c081e4dfee86 languageName: node linkType: hard @@ -3984,14 +3984,14 @@ __metadata: resolution: "cssesc@npm:3.0.0" bin: cssesc: bin/cssesc - checksum: f8c4ababffbc5e2ddf2fa9957dda1ee4af6048e22aeda1869d0d00843223c1b13ad3f5d88b51caa46c994225eacb636b764eb807a8883e2fb6f99b4f4e8c48b2 + checksum: 10/0e161912c1306861d8f46e1883be1cbc8b1b2879f0f509287c0db71796e4ddfb97ac96bdfca38f77f452e2c10554e1bb5678c99b07a5cf947a12778f73e47e12 languageName: node linkType: hard "csstype@npm:^3.0.2": version: 3.1.3 resolution: "csstype@npm:3.1.3" - checksum: 8db785cc92d259102725b3c694ec0c823f5619a84741b5c7991b8ad135dfaa66093038a1cc63e03361a6cd28d122be48f2106ae72334e067dd619a51f49eddf7 + checksum: 10/f593cce41ff5ade23f44e77521e3a1bcc2c64107041e1bf6c3c32adc5187d0d60983292fda326154d20b01079e24931aa5b08e4467cc488b60bb1e7f6d478ade languageName: node linkType: hard @@ -4000,7 +4000,7 @@ __metadata: resolution: "cypress-file-upload@npm:5.0.8" peerDependencies: cypress: ">3.0.0" - checksum: 9c70ca7e0bb137d0ec0b8d38987219ce15b26ac3a40e3ed4e78e6ad4690392eab905586848eec6ad8edd42ee480e68ccc63007b2ebd0a02f4b3eca116ff017e3 + checksum: 10/c2f66b6de7572ef1b2c609bf76ad63831ee20d7a8a2f144eccc2a7a1fb21994c2f5524ad4921a731bbd2e362aa6ff932506fa8c93c875bc1c0edda383e1125ba languageName: node linkType: hard @@ -4008,51 +4008,51 @@ __metadata: version: 13.13.3 resolution: "cypress@npm:13.13.3" dependencies: - "@cypress/request": ^3.0.1 - "@cypress/xvfb": ^1.2.4 - "@types/sinonjs__fake-timers": 8.1.1 - "@types/sizzle": ^2.3.2 - arch: ^2.2.0 - blob-util: ^2.0.2 - bluebird: ^3.7.2 - buffer: ^5.7.1 - cachedir: ^2.3.0 - chalk: ^4.1.0 - check-more-types: ^2.24.0 - cli-cursor: ^3.1.0 - cli-table3: ~0.6.1 - commander: ^6.2.1 - common-tags: ^1.8.0 - dayjs: ^1.10.4 - debug: ^4.3.4 - enquirer: ^2.3.6 - eventemitter2: 6.4.7 - execa: 4.1.0 - executable: ^4.1.1 - extract-zip: 2.0.1 - figures: ^3.2.0 - fs-extra: ^9.1.0 - getos: ^3.2.1 - is-ci: ^3.0.1 - is-installed-globally: ~0.4.0 - lazy-ass: ^1.6.0 - listr2: ^3.8.3 - lodash: ^4.17.21 - log-symbols: ^4.0.0 - minimist: ^1.2.8 - ospath: ^1.2.2 - pretty-bytes: ^5.6.0 - process: ^0.11.10 - proxy-from-env: 1.0.0 - request-progress: ^3.0.0 - semver: ^7.5.3 - supports-color: ^8.1.1 - tmp: ~0.2.3 - untildify: ^4.0.0 - yauzl: ^2.10.0 + "@cypress/request": "npm:^3.0.1" + "@cypress/xvfb": "npm:^1.2.4" + "@types/sinonjs__fake-timers": "npm:8.1.1" + "@types/sizzle": "npm:^2.3.2" + arch: "npm:^2.2.0" + blob-util: "npm:^2.0.2" + bluebird: "npm:^3.7.2" + buffer: "npm:^5.7.1" + cachedir: "npm:^2.3.0" + chalk: "npm:^4.1.0" + check-more-types: "npm:^2.24.0" + cli-cursor: "npm:^3.1.0" + cli-table3: "npm:~0.6.1" + commander: "npm:^6.2.1" + common-tags: "npm:^1.8.0" + dayjs: "npm:^1.10.4" + debug: "npm:^4.3.4" + enquirer: "npm:^2.3.6" + eventemitter2: "npm:6.4.7" + execa: "npm:4.1.0" + executable: "npm:^4.1.1" + extract-zip: "npm:2.0.1" + figures: "npm:^3.2.0" + fs-extra: "npm:^9.1.0" + getos: "npm:^3.2.1" + is-ci: "npm:^3.0.1" + is-installed-globally: "npm:~0.4.0" + lazy-ass: "npm:^1.6.0" + listr2: "npm:^3.8.3" + lodash: "npm:^4.17.21" + log-symbols: "npm:^4.0.0" + minimist: "npm:^1.2.8" + ospath: "npm:^1.2.2" + pretty-bytes: "npm:^5.6.0" + process: "npm:^0.11.10" + proxy-from-env: "npm:1.0.0" + request-progress: "npm:^3.0.0" + semver: "npm:^7.5.3" + supports-color: "npm:^8.1.1" + tmp: "npm:~0.2.3" + untildify: "npm:^4.0.0" + yauzl: "npm:^2.10.0" bin: cypress: bin/cypress - checksum: fad0c9c10d0f2a440a6accce589ed0832364310ed2880e4679b0c3b4bb6a994b458c436e9bf0ba5ae08b629d4f7011e1dd818c820b1b593961499d64c49cfad5 + checksum: 10/8f4a7f27f4f3374247ef39be52027c1614f0447993d50dd83b98c4e5f1903fd9b506164cd5614bd03f2b5b1e604fb3bdb646530002bafda01e0510480530415f languageName: node linkType: hard @@ -4060,15 +4060,15 @@ __metadata: version: 1.14.1 resolution: "dashdash@npm:1.14.1" dependencies: - assert-plus: ^1.0.0 - checksum: 3634c249570f7f34e3d34f866c93f866c5b417f0dd616275decae08147dcdf8fccfaa5947380ccfb0473998ea3a8057c0b4cd90c875740ee685d0624b2983598 + assert-plus: "npm:^1.0.0" + checksum: 10/137b287fa021201ce100cef772c8eeeaaafdd2aa7282864022acf3b873021e54cb809e9c060fa164840bf54ff72d00d6e2d8da1ee5a86d7200eeefa1123a8f7f languageName: node linkType: hard "data-uri-to-buffer@npm:^4.0.0": version: 4.0.1 resolution: "data-uri-to-buffer@npm:4.0.1" - checksum: 0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c + checksum: 10/0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c languageName: node linkType: hard @@ -4076,10 +4076,10 @@ __metadata: version: 1.0.2 resolution: "data-view-buffer@npm:1.0.2" dependencies: - call-bound: ^1.0.3 - es-errors: ^1.3.0 - is-data-view: ^1.0.2 - checksum: 1e1cd509c3037ac0f8ba320da3d1f8bf1a9f09b0be09394b5e40781b8cc15ff9834967ba7c9f843a425b34f9fe14ce44cf055af6662c44263424c1eb8d65659b + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.2" + checksum: 10/c10b155a4e93999d3a215d08c23eea95f865e1f510b2e7748fcae1882b776df1afe8c99f483ace7fc0e5a3193ab08da138abebc9829d12003746c5a338c4d644 languageName: node linkType: hard @@ -4087,10 +4087,10 @@ __metadata: version: 1.0.2 resolution: "data-view-byte-length@npm:1.0.2" dependencies: - call-bound: ^1.0.3 - es-errors: ^1.3.0 - is-data-view: ^1.0.2 - checksum: 3600c91ced1cfa935f19ef2abae11029e01738de8d229354d3b2a172bf0d7e4ed08ff8f53294b715569fdf72dfeaa96aa7652f479c0f60570878d88e7e8bddf6 + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.2" + checksum: 10/2a47055fcf1ab3ec41b00b6f738c6461a841391a643c9ed9befec1117c1765b4d492661d97fb7cc899200c328949dca6ff189d2c6537d96d60e8a02dfe3c95f7 languageName: node linkType: hard @@ -4098,10 +4098,10 @@ __metadata: version: 1.0.1 resolution: "data-view-byte-offset@npm:1.0.1" dependencies: - call-bound: ^1.0.2 - es-errors: ^1.3.0 - is-data-view: ^1.0.1 - checksum: 8dd492cd51d19970876626b5b5169fbb67ca31ec1d1d3238ee6a71820ca8b80cafb141c485999db1ee1ef02f2cc3b99424c5eda8d59e852d9ebb79ab290eb5ee + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10/fa3bdfa0968bea6711ee50375094b39f561bce3f15f9e558df59de9c25f0bdd4cddc002d9c1d70ac7772ebd36854a7e22d1761e7302a934e6f1c2263bcf44aa2 languageName: node linkType: hard @@ -4109,15 +4109,15 @@ __metadata: version: 2.30.0 resolution: "date-fns@npm:2.30.0" dependencies: - "@babel/runtime": ^7.21.0 - checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4 + "@babel/runtime": "npm:^7.21.0" + checksum: 10/70b3e8ea7aaaaeaa2cd80bd889622a4bcb5d8028b4de9162cbcda359db06e16ff6e9309e54eead5341e71031818497f19aaf9839c87d1aba1e27bb4796e758a9 languageName: node linkType: hard "dayjs@npm:1.11.13, dayjs@npm:^1.10.4": version: 1.11.13 resolution: "dayjs@npm:1.11.13" - checksum: f388db88a6aa93956c1f6121644e783391c7b738b73dbc54485578736565c8931bdfba4bb94e9b1535c6e509c97d5deb918bbe1ae6b34358d994de735055cca9 + checksum: 10/7374d63ab179b8d909a95e74790def25c8986e329ae989840bacb8b1888be116d20e1c4eee75a69ea0dfbae13172efc50ef85619d304ee7ca3c01d5878b704f5 languageName: node linkType: hard @@ -4125,8 +4125,8 @@ __metadata: version: 3.1.0 resolution: "debug@npm:3.1.0" dependencies: - ms: 2.0.0 - checksum: 0b52718ab957254a5b3ca07fc34543bc778f358620c206a08452251eb7fc193c3ea3505072acbf4350219c14e2d71ceb7bdaa0d3370aa630b50da790458d08b3 + ms: "npm:2.0.0" + checksum: 10/f5fd4b1390dd3b03a78aa30133a4b4db62acc3e6cd86af49f114bf7f7bd57c41a5c5c2eced2ad2c8190d70c60309f2dd5782feeaa0704dbaa5697890e3c5ad07 languageName: node linkType: hard @@ -4134,11 +4134,11 @@ __metadata: version: 4.4.0 resolution: "debug@npm:4.4.0" dependencies: - ms: ^2.1.3 + ms: "npm:^2.1.3" peerDependenciesMeta: supports-color: optional: true - checksum: fb42df878dd0e22816fc56e1fdca9da73caa85212fbe40c868b1295a6878f9101ae684f4eeef516c13acfc700f5ea07f1136954f43d4cd2d477a811144136479 + checksum: 10/1847944c2e3c2c732514b93d11886575625686056cd765336212dc15de2d2b29612b6cd80e1afba767bb8e1803b778caf9973e98169ef1a24a7a7009e1820367 languageName: node linkType: hard @@ -4146,8 +4146,8 @@ __metadata: version: 4.1.1 resolution: "debug@npm:4.1.1" dependencies: - ms: ^2.1.1 - checksum: 1e681f5cce94ba10f8dde74b20b42e4d8cf0d2a6700f4c165bb3bb6885565ef5ca5885bf07e704974a835f2415ff095a63164f539988a1f07e8a69fe8b1d65ad + ms: "npm:^2.1.1" + checksum: 10/19bd01e5b1e5869eacfb8e1ee9873dc90e1f90edfd9c460e388326b163e662189af291fcb67e3614dcfbeae29c1c7780a9a7b4bcea39b201316abdc058be89be languageName: node linkType: hard @@ -4155,15 +4155,15 @@ __metadata: version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: - ms: ^2.1.1 - checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c + ms: "npm:^2.1.1" + checksum: 10/d86fd7be2b85462297ea16f1934dc219335e802f629ca9a69b63ed8ed041dda492389bb2ee039217c02e5b54792b1c51aa96ae954cf28634d363a2360c7a1639 languageName: node linkType: hard "decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" - checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa + checksum: 10/ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa languageName: node linkType: hard @@ -4171,22 +4171,22 @@ __metadata: version: 1.1.0 resolution: "decode-named-character-reference@npm:1.1.0" dependencies: - character-entities: ^2.0.0 - checksum: 102970fde2d011f307d3789776e68defd75ba4ade1a34951affd1fabb86cd32026fd809f2658c2b600d839a57b6b6a84e2b3a45166d38c8625d66ca11cd702b8 + character-entities: "npm:^2.0.0" + checksum: 10/102970fde2d011f307d3789776e68defd75ba4ade1a34951affd1fabb86cd32026fd809f2658c2b600d839a57b6b6a84e2b3a45166d38c8625d66ca11cd702b8 languageName: node linkType: hard "deep-eql@npm:^5.0.1": version: 5.0.2 resolution: "deep-eql@npm:5.0.2" - checksum: 6aaaadb4c19cbce42e26b2bbe5bd92875f599d2602635dc97f0294bae48da79e89470aedee05f449e0ca8c65e9fd7e7872624d1933a1db02713d99c2ca8d1f24 + checksum: 10/a529b81e2ef8821621d20a36959a0328873a3e49d393ad11f8efe8559f31239494c2eb889b80342808674c475802ba95b9d6c4c27641b9a029405104c1b59fcf languageName: node linkType: hard "deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" - checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 + checksum: 10/ec12d074aef5ae5e81fa470b9317c313142c9e8e2afe3f8efa124db309720db96d1d222b82b84c834e5f87e7a614b44a4684b6683583118b87c833b3be40d4d8 languageName: node linkType: hard @@ -4194,8 +4194,8 @@ __metadata: version: 3.0.1 resolution: "default-require-extensions@npm:3.0.1" dependencies: - strip-bom: ^4.0.0 - checksum: 45882fc971dd157faf6716ced04c15cf252c0a2d6f5c5844b66ca49f46ed03396a26cd940771aa569927aee22923a961bab789e74b25aabc94d90742c9dd1217 + strip-bom: "npm:^4.0.0" + checksum: 10/45882fc971dd157faf6716ced04c15cf252c0a2d6f5c5844b66ca49f46ed03396a26cd940771aa569927aee22923a961bab789e74b25aabc94d90742c9dd1217 languageName: node linkType: hard @@ -4203,10 +4203,10 @@ __metadata: version: 1.1.4 resolution: "define-data-property@npm:1.1.4" dependencies: - es-define-property: ^1.0.0 - es-errors: ^1.3.0 - gopd: ^1.0.1 - checksum: 8068ee6cab694d409ac25936eb861eea704b7763f7f342adbdfe337fc27c78d7ae0eff2364b2917b58c508d723c7a074326d068eef2e45c4edcd85cf94d0313b + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10/abdcb2505d80a53524ba871273e5da75e77e52af9e15b3aa65d8aad82b8a3a424dad7aee2cc0b71470ac7acf501e08defac362e8b6a73cdb4309f028061df4ae languageName: node linkType: hard @@ -4214,24 +4214,24 @@ __metadata: version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: - define-data-property: ^1.0.1 - has-property-descriptors: ^1.0.0 - object-keys: ^1.1.1 - checksum: b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 + define-data-property: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.0" + object-keys: "npm:^1.1.1" + checksum: 10/b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 languageName: node linkType: hard "delayed-stream@npm:~1.0.0": version: 1.0.0 resolution: "delayed-stream@npm:1.0.0" - checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + checksum: 10/46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 languageName: node linkType: hard "dequal@npm:^2.0.0": version: 2.0.3 resolution: "dequal@npm:2.0.3" - checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 + checksum: 10/6ff05a7561f33603df87c45e389c9ac0a95e3c056be3da1a0c4702149e3a7f6fe5ffbb294478687ba51a9e95f3a60e8b6b9005993acd79c292c7d15f71964b6b languageName: node linkType: hard @@ -4239,8 +4239,8 @@ __metadata: version: 1.1.0 resolution: "devlop@npm:1.1.0" dependencies: - dequal: ^2.0.0 - checksum: d2ff650bac0bb6ef08c48f3ba98640bb5fec5cce81e9957eb620408d1bab1204d382a45b785c6b3314dc867bb0684936b84c6867820da6db97cbb5d3c15dd185 + dequal: "npm:^2.0.0" + checksum: 10/3cc5f903d02d279d6dc4aa71ab6ed9898b9f4d1f861cc5421ce7357893c21b9520de78afb203c92bd650a6977ad0ca98195453a0707a39958cf5fea3b0a8ddd8 languageName: node linkType: hard @@ -4251,35 +4251,35 @@ __metadata: "@types/react": ">=16" dexie: ^3.2 || ^4.0.1-alpha react: ">=16" - checksum: d1133546ab8d345a8e10d38d272eaa1efa3a34e7bdefacd2acc2419f30e52ea02ab29b19d8911755fbda5882e59d132ba5c3cb840dd4430d3cbca15ef5ea610e + checksum: 10/6f64ce678d8aec39ac50b9ee6b9298dc48f2d6d0b1adb80c8826c3b19ea5571001449fcf2bbe9f744dd6b054cc42ce840eab284aa698786a760ba4a530924aa9 languageName: node linkType: hard "dexie@npm:^3.2.4": version: 3.2.7 resolution: "dexie@npm:3.2.7" - checksum: 257504ed23cea2e5ed5c18a17a031c0a44aff70c5b3d6a63536b544cec9027c4c492a608165d5e7a44a104570c92dec2aa59c7bcec0c65f52000f979e1193dfd + checksum: 10/e70dae162b1589ff02b98810d1cdc157be0e0f66710be28ab2477db4ccd5cc7364f8c681e3f21883c3835ea800f8100ec975b015fa3ac6cdcb5686d187b31043 languageName: node linkType: hard "didyoumean@npm:^1.2.2": version: 1.2.2 resolution: "didyoumean@npm:1.2.2" - checksum: d5d98719d58b3c2fa59663c4c42ba9716f1fd01245c31d5fce31915bd3aa26e6aac149788e007358f778ebbd68a2256eb5973e8ca6f221df221ba060115acf2e + checksum: 10/de7f11b6a0c8c61018629b7f405bb9746d6e994ce87c1a4b7655c3c718442dc69037a3d46d804950604fd9cbe85c074f7b224a119fc1bda851690a74540c6cf8 languageName: node linkType: hard "diff@npm:^1.3.2": version: 1.4.0 resolution: "diff@npm:1.4.0" - checksum: 6c18f1f60461a6b84d2b9d8c658a4ba93f52bb6443ae916db8a1a66343d867c3b76cd6d4d5316576fc03a151a5a29416f1d46a5634b29cf0e494829ec623f8c4 + checksum: 10/79f0f7357c7a948f4e304f6eb33f94096be9c3fcb49cf0bf651268dd0ee198b2c04f6741b1741d0dfa2d8aae3839b0d279ee7befd5a501229f7dcc473402c795 languageName: node linkType: hard "diff@npm:^4.0.1": version: 4.0.2 resolution: "diff@npm:4.0.2" - checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d + checksum: 10/ec09ec2101934ca5966355a229d77afcad5911c92e2a77413efda5455636c4cf2ce84057e2d7715227a2eeeda04255b849bd3ae3a4dd22eb22e86e76456df069 languageName: node linkType: hard @@ -4287,8 +4287,8 @@ __metadata: version: 3.0.1 resolution: "dir-glob@npm:3.0.1" dependencies: - path-type: ^4.0.0 - checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + path-type: "npm:^4.0.0" + checksum: 10/fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 languageName: node linkType: hard @@ -4296,18 +4296,18 @@ __metadata: version: 2.0.0 resolution: "disparity@npm:2.0.0" dependencies: - ansi-styles: ^2.0.1 - diff: ^1.3.2 + ansi-styles: "npm:^2.0.1" + diff: "npm:^1.3.2" bin: disparity: bin/disparity - checksum: 3e80be65cc48967201f0c5ea36b9a5be913f2c6ad872e89921f0bf6b44f4168772bd0fe09e4f9ac684f52782666de6aa4c0ecabd3719c1db1b51400c2bd2dbd1 + checksum: 10/4739f59056dd4fd2d3ef365d4a472d9a560b09c52185e4276e937ceb47ec052aef9351b1e40e7b7c9108314dda771bbe19774924c7f93165b50a72664125eb3d languageName: node linkType: hard "dlv@npm:^1.1.3": version: 1.1.3 resolution: "dlv@npm:1.1.3" - checksum: d7381bca22ed11933a1ccf376db7a94bee2c57aa61e490f680124fa2d1cd27e94eba641d9f45be57caab4f9a6579de0983466f620a2cd6230d7ec93312105ae7 + checksum: 10/836459ec6b50e43e9ed388a5fc28954be99e3481af3fa4b5d82a600762eb65ef8faacd454097ed7fc2f8a60aea2800d65a4cece5cd0d81ab82b2031f3f759e6e languageName: node linkType: hard @@ -4315,8 +4315,8 @@ __metadata: version: 2.1.0 resolution: "doctrine@npm:2.1.0" dependencies: - esutils: ^2.0.2 - checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8 + esutils: "npm:^2.0.2" + checksum: 10/555684f77e791b17173ea86e2eea45ef26c22219cb64670669c4f4bebd26dbc95cd90ec1f4159e9349a6bb9eb892ce4dde8cd0139e77bedd8bf4518238618474 languageName: node linkType: hard @@ -4324,9 +4324,9 @@ __metadata: version: 5.2.1 resolution: "dom-helpers@npm:5.2.1" dependencies: - "@babel/runtime": ^7.8.7 - csstype: ^3.0.2 - checksum: 863ba9e086f7093df3376b43e74ce4422571d404fc9828bf2c56140963d5edf0e56160f9b2f3bb61b282c07f8fc8134f023c98fd684bddcb12daf7b0f14d951c + "@babel/runtime": "npm:^7.8.7" + csstype: "npm:^3.0.2" + checksum: 10/bed2341adf8864bf932b3289c24f35fdd99930af77df46688abf2d753ff291df49a15850c874d686d9be6ec4e1c6835673906e64dbd8b2839d227f117a11fd41 languageName: node linkType: hard @@ -4334,17 +4334,17 @@ __metadata: version: 1.0.1 resolution: "dunder-proto@npm:1.0.1" dependencies: - call-bind-apply-helpers: ^1.0.1 - es-errors: ^1.3.0 - gopd: ^1.2.0 - checksum: 149207e36f07bd4941921b0ca929e3a28f1da7bd6b6ff8ff7f4e2f2e460675af4576eeba359c635723dc189b64cdd4787e0255897d5b135ccc5d15cb8685fc90 + call-bind-apply-helpers: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.2.0" + checksum: 10/5add88a3d68d42d6e6130a0cac450b7c2edbe73364bbd2fc334564418569bea97c6943a8fcd70e27130bf32afc236f30982fc4905039b703f23e9e0433c29934 languageName: node linkType: hard "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" - checksum: 7d00d7cd8e49b9afa762a813faac332dee781932d6f2c848dc348939c4253f1d4564341b7af1d041853bc3f32c2ef141b58e0a4d9862c17a7f08f68df1e0f1ed + checksum: 10/9b1d3e1baefeaf7d70799db8774149cef33b97183a6addceeba0cf6b85ba23ee2686f302f14482006df32df75d32b17c509c143a3689627929e4a8efaf483952 languageName: node linkType: hard @@ -4352,9 +4352,9 @@ __metadata: version: 0.1.2 resolution: "ecc-jsbn@npm:0.1.2" dependencies: - jsbn: ~0.1.0 - safer-buffer: ^2.1.0 - checksum: 22fef4b6203e5f31d425f5b711eb389e4c6c2723402e389af394f8411b76a488fa414d309d866e2b577ce3e8462d344205545c88a8143cc21752a5172818888a + jsbn: "npm:~0.1.0" + safer-buffer: "npm:^2.1.0" + checksum: 10/d43591f2396196266e186e6d6928038cc11c76c3699a912cb9c13757060f7bbc7f17f47c4cb16168cdeacffc7965aef021142577e646fb3cb88810c15173eb57 languageName: node linkType: hard @@ -4362,41 +4362,41 @@ __metadata: version: 0.15.3 resolution: "editorconfig@npm:0.15.3" dependencies: - commander: ^2.19.0 - lru-cache: ^4.1.5 - semver: ^5.6.0 - sigmund: ^1.0.1 + commander: "npm:^2.19.0" + lru-cache: "npm:^4.1.5" + semver: "npm:^5.6.0" + sigmund: "npm:^1.0.1" bin: editorconfig: bin/editorconfig - checksum: a94afeda19f12a4bcc4a573f0858df13dd3a2d1a3268cc0f17a6326ebe7ddd6cb0c026f8e4e73c17d34f3892bf6f8b561512d9841e70063f61da71b4c57dc5f0 + checksum: 10/d82b32cc4e8f5a873b868aedd07056d62afb00c1453a3214bcef7799ff045c4c13146731c7648e5b8397b9efc71c1896733ad97a211d05cc8933364273321295 languageName: node linkType: hard "electron-to-chromium@npm:^1.5.73": version: 1.5.137 resolution: "electron-to-chromium@npm:1.5.137" - checksum: 000803b46f87a52fda756ffcb92b7e8baa1ccd5c2545fde46f35b8f10f9d7e1d0d8681532f8ef2e9ee2e0367c63772554f04966abd8576b3403204fdf684a2b5 + checksum: 10/97645a6400b70a04906f83812fd1b3c3992f5b5dff0413298857df096c6aad09299f0d8f491b3b7282fe4360dc2ad2c150363d4e662cd7dd7be32f5fc8778c5d languageName: node linkType: hard "emoji-regex@npm:^10.3.0": version: 10.4.0 resolution: "emoji-regex@npm:10.4.0" - checksum: a6d9a0e454829a52e664e049847776ee1fff5646617b06cd87de7c03ce1dfcce4102a3b154d5e9c8e90f8125bc120fc1fe114d523dddf60a8a161f26c72658d2 + checksum: 10/76bb92c5bcf0b6980d37e535156231e4a9d0aa6ab3b9f5eabf7690231d5aa5d5b8e516f36e6804cbdd0f1c23dfef2a60c40ab7bb8aedd890584281a565b97c50 languageName: node linkType: hard "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" - checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + checksum: 10/c72d67a6821be15ec11997877c437491c313d924306b8da5d87d2a2bcc2cec9903cb5b04ee1a088460501d8e5b44f10df82fdc93c444101a7610b80c8b6938e1 languageName: node linkType: hard "emoji-regex@npm:^9.2.2": version: 9.2.2 resolution: "emoji-regex@npm:9.2.2" - checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + checksum: 10/915acf859cea7131dac1b2b5c9c8e35c4849e325a1d114c30adb8cd615970f6dca0e27f64f3a4949d7d6ed86ecd79a1c5c63f02e697513cddd7b5835c90948b8 languageName: node linkType: hard @@ -4404,8 +4404,8 @@ __metadata: version: 0.1.13 resolution: "encoding@npm:0.1.13" dependencies: - iconv-lite: ^0.6.2 - checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + iconv-lite: "npm:^0.6.2" + checksum: 10/bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f languageName: node linkType: hard @@ -4413,8 +4413,8 @@ __metadata: version: 1.4.4 resolution: "end-of-stream@npm:1.4.4" dependencies: - once: ^1.4.0 - checksum: 530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b + once: "npm:^1.4.0" + checksum: 10/530a5a5a1e517e962854a31693dbb5c0b2fc40b46dad2a56a2deec656ca040631124f4795823acc68238147805f8b021abbe221f4afed5ef3c8e8efc2024908b languageName: node linkType: hard @@ -4422,30 +4422,30 @@ __metadata: version: 2.4.1 resolution: "enquirer@npm:2.4.1" dependencies: - ansi-colors: ^4.1.1 - strip-ansi: ^6.0.1 - checksum: f080f11a74209647dbf347a7c6a83c8a47ae1ebf1e75073a808bc1088eb780aa54075bfecd1bcdb3e3c724520edb8e6ee05da031529436b421b71066fcc48cb5 + ansi-colors: "npm:^4.1.1" + strip-ansi: "npm:^6.0.1" + checksum: 10/b3726486cd98f0d458a851a03326a2a5dd4d84f37ff94ff2a2960c915e0fc865865da3b78f0877dc36ac5c1189069eca603e82ec63d5bc6b0dd9985bf6426d7a languageName: node linkType: hard "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" - checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + checksum: 10/65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e languageName: node linkType: hard "environment@npm:^1.0.0": version: 1.1.0 resolution: "environment@npm:1.1.0" - checksum: dd3c1b9825e7f71f1e72b03c2344799ac73f2e9ef81b78ea8b373e55db021786c6b9f3858ea43a436a2c4611052670ec0afe85bc029c384cc71165feee2f4ba6 + checksum: 10/dd3c1b9825e7f71f1e72b03c2344799ac73f2e9ef81b78ea8b373e55db021786c6b9f3858ea43a436a2c4611052670ec0afe85bc029c384cc71165feee2f4ba6 languageName: node linkType: hard "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" - checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + checksum: 10/1d20d825cdcce8d811bfbe86340f4755c02655a7feb2f13f8c880566d9d72a3f6c92c192a6867632e490d6da67b678271f46e01044996a6443e870331100dfdd languageName: node linkType: hard @@ -4453,8 +4453,8 @@ __metadata: version: 1.3.2 resolution: "error-ex@npm:1.3.2" dependencies: - is-arrayish: ^0.2.1 - checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + is-arrayish: "npm:^0.2.1" + checksum: 10/d547740aa29c34e753fb6fed2c5de81802438529c12b3673bd37b6bb1fe49b9b7abdc3c11e6062fe625d8a296b3cf769a80f878865e25e685f787763eede3ffb languageName: node linkType: hard @@ -4462,72 +4462,72 @@ __metadata: version: 1.23.9 resolution: "es-abstract@npm:1.23.9" dependencies: - array-buffer-byte-length: ^1.0.2 - arraybuffer.prototype.slice: ^1.0.4 - available-typed-arrays: ^1.0.7 - call-bind: ^1.0.8 - call-bound: ^1.0.3 - data-view-buffer: ^1.0.2 - data-view-byte-length: ^1.0.2 - data-view-byte-offset: ^1.0.1 - es-define-property: ^1.0.1 - es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 - es-set-tostringtag: ^2.1.0 - es-to-primitive: ^1.3.0 - function.prototype.name: ^1.1.8 - get-intrinsic: ^1.2.7 - get-proto: ^1.0.0 - get-symbol-description: ^1.1.0 - globalthis: ^1.0.4 - gopd: ^1.2.0 - has-property-descriptors: ^1.0.2 - has-proto: ^1.2.0 - has-symbols: ^1.1.0 - hasown: ^2.0.2 - internal-slot: ^1.1.0 - is-array-buffer: ^3.0.5 - is-callable: ^1.2.7 - is-data-view: ^1.0.2 - is-regex: ^1.2.1 - is-shared-array-buffer: ^1.0.4 - is-string: ^1.1.1 - is-typed-array: ^1.1.15 - is-weakref: ^1.1.0 - math-intrinsics: ^1.1.0 - object-inspect: ^1.13.3 - object-keys: ^1.1.1 - object.assign: ^4.1.7 - own-keys: ^1.0.1 - regexp.prototype.flags: ^1.5.3 - safe-array-concat: ^1.1.3 - safe-push-apply: ^1.0.0 - safe-regex-test: ^1.1.0 - set-proto: ^1.0.0 - string.prototype.trim: ^1.2.10 - string.prototype.trimend: ^1.0.9 - string.prototype.trimstart: ^1.0.8 - typed-array-buffer: ^1.0.3 - typed-array-byte-length: ^1.0.3 - typed-array-byte-offset: ^1.0.4 - typed-array-length: ^1.0.7 - unbox-primitive: ^1.1.0 - which-typed-array: ^1.1.18 - checksum: f3ee2614159ca197f97414ab36e3f406ee748ce2f97ffbf09e420726db5a442ce13f1e574601468bff6e6eb81588e6c9ce1ac6c03868a37c7cd48ac679f8485a + array-buffer-byte-length: "npm:^1.0.2" + arraybuffer.prototype.slice: "npm:^1.0.4" + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + data-view-buffer: "npm:^1.0.2" + data-view-byte-length: "npm:^1.0.2" + data-view-byte-offset: "npm:^1.0.1" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-set-tostringtag: "npm:^2.1.0" + es-to-primitive: "npm:^1.3.0" + function.prototype.name: "npm:^1.1.8" + get-intrinsic: "npm:^1.2.7" + get-proto: "npm:^1.0.0" + get-symbol-description: "npm:^1.1.0" + globalthis: "npm:^1.0.4" + gopd: "npm:^1.2.0" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + internal-slot: "npm:^1.1.0" + is-array-buffer: "npm:^3.0.5" + is-callable: "npm:^1.2.7" + is-data-view: "npm:^1.0.2" + is-regex: "npm:^1.2.1" + is-shared-array-buffer: "npm:^1.0.4" + is-string: "npm:^1.1.1" + is-typed-array: "npm:^1.1.15" + is-weakref: "npm:^1.1.0" + math-intrinsics: "npm:^1.1.0" + object-inspect: "npm:^1.13.3" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.7" + own-keys: "npm:^1.0.1" + regexp.prototype.flags: "npm:^1.5.3" + safe-array-concat: "npm:^1.1.3" + safe-push-apply: "npm:^1.0.0" + safe-regex-test: "npm:^1.1.0" + set-proto: "npm:^1.0.0" + string.prototype.trim: "npm:^1.2.10" + string.prototype.trimend: "npm:^1.0.9" + string.prototype.trimstart: "npm:^1.0.8" + typed-array-buffer: "npm:^1.0.3" + typed-array-byte-length: "npm:^1.0.3" + typed-array-byte-offset: "npm:^1.0.4" + typed-array-length: "npm:^1.0.7" + unbox-primitive: "npm:^1.1.0" + which-typed-array: "npm:^1.1.18" + checksum: 10/31a321966d760d88fc2ed984104841b42f4f24fc322b246002b9be0af162e03803ee41fcc3cf8be89e07a27ba3033168f877dd983703cb81422ffe5322a27582 languageName: node linkType: hard "es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": version: 1.0.1 resolution: "es-define-property@npm:1.0.1" - checksum: 0512f4e5d564021c9e3a644437b0155af2679d10d80f21adaf868e64d30efdfbd321631956f20f42d655fedb2e3a027da479fad3fa6048f768eb453a80a5f80a + checksum: 10/f8dc9e660d90919f11084db0a893128f3592b781ce967e4fccfb8f3106cb83e400a4032c559184ec52ee1dbd4b01e7776c7cd0b3327b1961b1a4a7008920fe78 languageName: node linkType: hard "es-errors@npm:^1.3.0": version: 1.3.0 resolution: "es-errors@npm:1.3.0" - checksum: ec1414527a0ccacd7f15f4a3bc66e215f04f595ba23ca75cdae0927af099b5ec865f9f4d33e9d7e86f512f252876ac77d4281a7871531a50678132429b1271b5 + checksum: 10/96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5 languageName: node linkType: hard @@ -4535,30 +4535,30 @@ __metadata: version: 1.2.1 resolution: "es-iterator-helpers@npm:1.2.1" dependencies: - call-bind: ^1.0.8 - call-bound: ^1.0.3 - define-properties: ^1.2.1 - es-abstract: ^1.23.6 - es-errors: ^1.3.0 - es-set-tostringtag: ^2.0.3 - function-bind: ^1.1.2 - get-intrinsic: ^1.2.6 - globalthis: ^1.0.4 - gopd: ^1.2.0 - has-property-descriptors: ^1.0.2 - has-proto: ^1.2.0 - has-symbols: ^1.1.0 - internal-slot: ^1.1.0 - iterator.prototype: ^1.1.4 - safe-array-concat: ^1.1.3 - checksum: 952808dd1df3643d67ec7adf20c30b36e5eecadfbf36354e6f39ed3266c8e0acf3446ce9bc465e38723d613cb1d915c1c07c140df65bdce85da012a6e7bda62b + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.6" + es-errors: "npm:^1.3.0" + es-set-tostringtag: "npm:^2.0.3" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.6" + globalthis: "npm:^1.0.4" + gopd: "npm:^1.2.0" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + internal-slot: "npm:^1.1.0" + iterator.prototype: "npm:^1.1.4" + safe-array-concat: "npm:^1.1.3" + checksum: 10/802e0e8427a05ff4a5b0c70c7fdaaeff37cdb81a28694aeb7bfb831c6ab340d8f3deeb67b96732ff9e9699ea240524d5ea8a9a6a335fcd15aa3983b27b06113f languageName: node linkType: hard "es-module-lexer@npm:^1.5.4": version: 1.6.0 resolution: "es-module-lexer@npm:1.6.0" - checksum: 4413a9aed9bf581de62b98174f3eea3f23ce2994fb6832df64bdd6504f6977da1a3b5ebd3c10f75e3c2f214dcf1a1d8b54be5e62c71b7110e6ccedbf975d2b7d + checksum: 10/807ee7020cc46a9c970c78cad1f2f3fc139877e5ebad7f66dbfbb124d451189ba1c48c1c632bd5f8ce1b8af2caef3fca340ba044a410fa890d17b080a59024bb languageName: node linkType: hard @@ -4566,8 +4566,8 @@ __metadata: version: 1.1.1 resolution: "es-object-atoms@npm:1.1.1" dependencies: - es-errors: ^1.3.0 - checksum: 214d3767287b12f36d3d7267ef342bbbe1e89f899cfd67040309fc65032372a8e60201410a99a1645f2f90c1912c8c49c8668066f6bdd954bcd614dda2e3da97 + es-errors: "npm:^1.3.0" + checksum: 10/54fe77de288451dae51c37bfbfe3ec86732dc3778f98f3eb3bdb4bf48063b2c0b8f9c93542656986149d08aa5be3204286e2276053d19582b76753f1a2728867 languageName: node linkType: hard @@ -4575,11 +4575,11 @@ __metadata: version: 2.1.0 resolution: "es-set-tostringtag@npm:2.1.0" dependencies: - es-errors: ^1.3.0 - get-intrinsic: ^1.2.6 - has-tostringtag: ^1.0.2 - hasown: ^2.0.2 - checksum: 789f35de4be3dc8d11fdcb91bc26af4ae3e6d602caa93299a8c45cf05d36cc5081454ae2a6d3afa09cceca214b76c046e4f8151e092e6fc7feeb5efb9e794fc6 + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10/86814bf8afbcd8966653f731415888019d4bc4aca6b6c354132a7a75bb87566751e320369654a101d23a91c87a85c79b178bcf40332839bd347aff437c4fb65f languageName: node linkType: hard @@ -4587,8 +4587,8 @@ __metadata: version: 1.1.0 resolution: "es-shim-unscopables@npm:1.1.0" dependencies: - hasown: ^2.0.2 - checksum: 33cfb1ebcb2f869f0bf528be1a8660b4fe8b6cec8fc641f330e508db2284b58ee2980fad6d0828882d22858c759c0806076427a3673b6daa60f753e3b558ee15 + hasown: "npm:^2.0.2" + checksum: 10/c351f586c30bbabc62355be49564b2435468b52c3532b8a1663672e3d10dc300197e69c247869dd173e56d86423ab95fc0c10b0939cdae597094e0fdca078cba languageName: node linkType: hard @@ -4596,17 +4596,17 @@ __metadata: version: 1.3.0 resolution: "es-to-primitive@npm:1.3.0" dependencies: - is-callable: ^1.2.7 - is-date-object: ^1.0.5 - is-symbol: ^1.0.4 - checksum: 966965880356486cd4d1fe9a523deda2084c81b3702d951212c098f5f2ee93605d1b7c1840062efb48a07d892641c7ed1bc194db563645c0dd2b919cb6d65b93 + is-callable: "npm:^1.2.7" + is-date-object: "npm:^1.0.5" + is-symbol: "npm:^1.0.4" + checksum: 10/17faf35c221aad59a16286cbf58ef6f080bf3c485dff202c490d074d8e74da07884e29b852c245d894eac84f73c58330ec956dfd6d02c0b449d75eb1012a3f9b languageName: node linkType: hard "es6-error@npm:^4.0.1": version: 4.1.1 resolution: "es6-error@npm:4.1.1" - checksum: ae41332a51ec1323da6bbc5d75b7803ccdeddfae17c41b6166ebbafc8e8beb7a7b80b884b7fab1cc80df485860ac3c59d78605e860bb4f8cd816b3d6ade0d010 + checksum: 10/48483c25701dc5a6376f39bbe2eaf5da0b505607ec5a98cd3ade472c1939242156660636e2e508b33211e48e88b132d245341595c067bd4a95ac79fa7134da06 languageName: node linkType: hard @@ -4614,29 +4614,29 @@ __metadata: version: 0.21.5 resolution: "esbuild@npm:0.21.5" dependencies: - "@esbuild/aix-ppc64": 0.21.5 - "@esbuild/android-arm": 0.21.5 - "@esbuild/android-arm64": 0.21.5 - "@esbuild/android-x64": 0.21.5 - "@esbuild/darwin-arm64": 0.21.5 - "@esbuild/darwin-x64": 0.21.5 - "@esbuild/freebsd-arm64": 0.21.5 - "@esbuild/freebsd-x64": 0.21.5 - "@esbuild/linux-arm": 0.21.5 - "@esbuild/linux-arm64": 0.21.5 - "@esbuild/linux-ia32": 0.21.5 - "@esbuild/linux-loong64": 0.21.5 - "@esbuild/linux-mips64el": 0.21.5 - "@esbuild/linux-ppc64": 0.21.5 - "@esbuild/linux-riscv64": 0.21.5 - "@esbuild/linux-s390x": 0.21.5 - "@esbuild/linux-x64": 0.21.5 - "@esbuild/netbsd-x64": 0.21.5 - "@esbuild/openbsd-x64": 0.21.5 - "@esbuild/sunos-x64": 0.21.5 - "@esbuild/win32-arm64": 0.21.5 - "@esbuild/win32-ia32": 0.21.5 - "@esbuild/win32-x64": 0.21.5 + "@esbuild/aix-ppc64": "npm:0.21.5" + "@esbuild/android-arm": "npm:0.21.5" + "@esbuild/android-arm64": "npm:0.21.5" + "@esbuild/android-x64": "npm:0.21.5" + "@esbuild/darwin-arm64": "npm:0.21.5" + "@esbuild/darwin-x64": "npm:0.21.5" + "@esbuild/freebsd-arm64": "npm:0.21.5" + "@esbuild/freebsd-x64": "npm:0.21.5" + "@esbuild/linux-arm": "npm:0.21.5" + "@esbuild/linux-arm64": "npm:0.21.5" + "@esbuild/linux-ia32": "npm:0.21.5" + "@esbuild/linux-loong64": "npm:0.21.5" + "@esbuild/linux-mips64el": "npm:0.21.5" + "@esbuild/linux-ppc64": "npm:0.21.5" + "@esbuild/linux-riscv64": "npm:0.21.5" + "@esbuild/linux-s390x": "npm:0.21.5" + "@esbuild/linux-x64": "npm:0.21.5" + "@esbuild/netbsd-x64": "npm:0.21.5" + "@esbuild/openbsd-x64": "npm:0.21.5" + "@esbuild/sunos-x64": "npm:0.21.5" + "@esbuild/win32-arm64": "npm:0.21.5" + "@esbuild/win32-ia32": "npm:0.21.5" + "@esbuild/win32-x64": "npm:0.21.5" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -4686,35 +4686,35 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 2911c7b50b23a9df59a7d6d4cdd3a4f85855787f374dce751148dbb13305e0ce7e880dde1608c2ab7a927fc6cec3587b80995f7fc87a64b455f8b70b55fd8ec1 + checksum: 10/d2ff2ca84d30cce8e871517374d6c2290835380dc7cd413b2d49189ed170d45e407be14de2cb4794cf76f75cf89955c4714726ebd3de7444b3046f5cab23ab6b languageName: node linkType: hard "escalade@npm:^3.2.0": version: 3.2.0 resolution: "escalade@npm:3.2.0" - checksum: 47b029c83de01b0d17ad99ed766347b974b0d628e848de404018f3abee728e987da0d2d370ad4574aa3d5b5bfc368754fd085d69a30f8e75903486ec4b5b709e + checksum: 10/9d7169e3965b2f9ae46971afa392f6e5a25545ea30f2e2dd99c9b0a95a3f52b5653681a84f5b2911a413ddad2d7a93d3514165072f349b5ffc59c75a899970d6 languageName: node linkType: hard "escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" - checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + checksum: 10/6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 languageName: node linkType: hard "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" - checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + checksum: 10/98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 languageName: node linkType: hard "escape-string-regexp@npm:^5.0.0": version: 5.0.0 resolution: "escape-string-regexp@npm:5.0.0" - checksum: 20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e + checksum: 10/20daabe197f3cb198ec28546deebcf24b3dbb1a5a269184381b3116d12f0532e06007f4bc8da25669d6a7f8efb68db0758df4cd981f57bc5b57f521a3e12c59e languageName: node linkType: hard @@ -4725,7 +4725,7 @@ __metadata: eslint: ">=7.0.0" bin: eslint-config-prettier: bin/cli.js - checksum: 9229b768c879f500ee54ca05925f31b0c0bafff3d9f5521f98ff05127356de78c81deb9365c86a5ec4efa990cb72b74df8612ae15965b14136044c73e1f6a907 + checksum: 10/411e3b3b1c7aa04e3e0f20d561271b3b909014956c4dba51c878bf1a23dbb8c800a3be235c46c4732c70827276e540b6eed4636d9b09b444fd0a8e07f0fcd830 languageName: node linkType: hard @@ -4733,10 +4733,10 @@ __metadata: version: 0.3.9 resolution: "eslint-import-resolver-node@npm:0.3.9" dependencies: - debug: ^3.2.7 - is-core-module: ^2.13.0 - resolve: ^1.22.4 - checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22 + debug: "npm:^3.2.7" + is-core-module: "npm:^2.13.0" + resolve: "npm:^1.22.4" + checksum: 10/d52e08e1d96cf630957272e4f2644dcfb531e49dcfd1edd2e07e43369eb2ec7a7d4423d417beee613201206ff2efa4eb9a582b5825ee28802fc7c71fcd53ca83 languageName: node linkType: hard @@ -4744,13 +4744,13 @@ __metadata: version: 3.10.0 resolution: "eslint-import-resolver-typescript@npm:3.10.0" dependencies: - "@nolyfill/is-core-module": 1.0.39 - debug: ^4.4.0 - get-tsconfig: ^4.10.0 - is-bun-module: ^2.0.0 - stable-hash: ^0.0.5 - tinyglobby: ^0.2.12 - unrs-resolver: ^1.3.2 + "@nolyfill/is-core-module": "npm:1.0.39" + debug: "npm:^4.4.0" + get-tsconfig: "npm:^4.10.0" + is-bun-module: "npm:^2.0.0" + stable-hash: "npm:^0.0.5" + tinyglobby: "npm:^0.2.12" + unrs-resolver: "npm:^1.3.2" peerDependencies: eslint: "*" eslint-plugin-import: "*" @@ -4760,7 +4760,7 @@ __metadata: optional: true eslint-plugin-import-x: optional: true - checksum: 6d7b865346b79fb8174fc024a1f4de1815dc9e9e50ed9eec324ac91518df7f15ce0e690fc61dcaf5a0f28a951a4728c615c29e7c872a49669f3c5e79aeb1e90e + checksum: 10/f289b9279e7a6c63700d05d0712b335113651c6501f01e00918b3731ad17cae0208c9ae034fb72e73078517bb10b62c4e500539da22728293fa88e11522ba101 languageName: node linkType: hard @@ -4768,11 +4768,11 @@ __metadata: version: 2.12.0 resolution: "eslint-module-utils@npm:2.12.0" dependencies: - debug: ^3.2.7 + debug: "npm:^3.2.7" peerDependenciesMeta: eslint: optional: true - checksum: be3ac52e0971c6f46daeb1a7e760e45c7c45f820c8cc211799f85f10f04ccbf7afc17039165d56cb2da7f7ca9cec2b3a777013cddf0b976784b37eb9efa24180 + checksum: 10/dd27791147eca17366afcb83f47d6825b6ce164abb256681e5de4ec1d7e87d8605641eb869298a0dbc70665e2446dbcc2f40d3e1631a9475dd64dd23d4ca5dee languageName: node linkType: hard @@ -4781,7 +4781,7 @@ __metadata: resolution: "eslint-plugin-header@npm:3.1.1" peerDependencies: eslint: ">=7.7.0" - checksum: 2353e4ba011be81d5c27fbd79929e18dce118d7673a2f717b1ac5a0bceb33e06ec9a7c80a01dddc5804df75e2cc8eb475d268cd1abef5eab5088ede62e5ad246 + checksum: 10/6fc7d6e7e2c386e2efa25fb467c0a290fea6330f80acfc6c8fcd3a8473c9023615571463ecd5240b818677660c5e78840fce501d70537802eaebe6bec7e76799 languageName: node linkType: hard @@ -4789,28 +4789,28 @@ __metadata: version: 2.31.0 resolution: "eslint-plugin-import@npm:2.31.0" dependencies: - "@rtsao/scc": ^1.1.0 - array-includes: ^3.1.8 - array.prototype.findlastindex: ^1.2.5 - array.prototype.flat: ^1.3.2 - array.prototype.flatmap: ^1.3.2 - debug: ^3.2.7 - doctrine: ^2.1.0 - eslint-import-resolver-node: ^0.3.9 - eslint-module-utils: ^2.12.0 - hasown: ^2.0.2 - is-core-module: ^2.15.1 - is-glob: ^4.0.3 - minimatch: ^3.1.2 - object.fromentries: ^2.0.8 - object.groupby: ^1.0.3 - object.values: ^1.2.0 - semver: ^6.3.1 - string.prototype.trimend: ^1.0.8 - tsconfig-paths: ^3.15.0 + "@rtsao/scc": "npm:^1.1.0" + array-includes: "npm:^3.1.8" + array.prototype.findlastindex: "npm:^1.2.5" + array.prototype.flat: "npm:^1.3.2" + array.prototype.flatmap: "npm:^1.3.2" + debug: "npm:^3.2.7" + doctrine: "npm:^2.1.0" + eslint-import-resolver-node: "npm:^0.3.9" + eslint-module-utils: "npm:^2.12.0" + hasown: "npm:^2.0.2" + is-core-module: "npm:^2.15.1" + is-glob: "npm:^4.0.3" + minimatch: "npm:^3.1.2" + object.fromentries: "npm:^2.0.8" + object.groupby: "npm:^1.0.3" + object.values: "npm:^1.2.0" + semver: "npm:^6.3.1" + string.prototype.trimend: "npm:^1.0.8" + tsconfig-paths: "npm:^3.15.0" peerDependencies: eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - checksum: b1d2ac268b3582ff1af2a72a2c476eae4d250c100f2e335b6e102036e4a35efa530b80ec578dfc36761fabb34a635b9bf5ab071abe9d4404a4bb054fdf22d415 + checksum: 10/6b76bd009ac2db0615d9019699d18e2a51a86cb8c1d0855a35fb1b418be23b40239e6debdc6e8c92c59f1468ed0ea8d7b85c817117a113d5cc225be8a02ad31c languageName: node linkType: hard @@ -4819,7 +4819,7 @@ __metadata: resolution: "eslint-plugin-react-hooks@npm:4.6.2" peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 395c433610f59577cfcf3f2e42bcb130436c8a0b3777ac64f441d88c5275f4fcfc89094cedab270f2822daf29af1079151a7a6579a8e9ea8cee66540ba0384c4 + checksum: 10/5a0680941f34e70cf505bcb6082df31a3e445d193ee95a88ff3483041eb944f4cefdaf7e81b0eb1feb4eeceee8c7c6ddb8a2a6e8c4c0388514a42e16ac7b7a69 languageName: node linkType: hard @@ -4827,27 +4827,27 @@ __metadata: version: 7.37.5 resolution: "eslint-plugin-react@npm:7.37.5" dependencies: - array-includes: ^3.1.8 - array.prototype.findlast: ^1.2.5 - array.prototype.flatmap: ^1.3.3 - array.prototype.tosorted: ^1.1.4 - doctrine: ^2.1.0 - es-iterator-helpers: ^1.2.1 - estraverse: ^5.3.0 - hasown: ^2.0.2 - jsx-ast-utils: ^2.4.1 || ^3.0.0 - minimatch: ^3.1.2 - object.entries: ^1.1.9 - object.fromentries: ^2.0.8 - object.values: ^1.2.1 - prop-types: ^15.8.1 - resolve: ^2.0.0-next.5 - semver: ^6.3.1 - string.prototype.matchall: ^4.0.12 - string.prototype.repeat: ^1.0.0 + array-includes: "npm:^3.1.8" + array.prototype.findlast: "npm:^1.2.5" + array.prototype.flatmap: "npm:^1.3.3" + array.prototype.tosorted: "npm:^1.1.4" + doctrine: "npm:^2.1.0" + es-iterator-helpers: "npm:^1.2.1" + estraverse: "npm:^5.3.0" + hasown: "npm:^2.0.2" + jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" + minimatch: "npm:^3.1.2" + object.entries: "npm:^1.1.9" + object.fromentries: "npm:^2.0.8" + object.values: "npm:^1.2.1" + prop-types: "npm:^15.8.1" + resolve: "npm:^2.0.0-next.5" + semver: "npm:^6.3.1" + string.prototype.matchall: "npm:^4.0.12" + string.prototype.repeat: "npm:^1.0.0" peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - checksum: 8675e7558e646e3c2fcb04bb60cfe416000b831ef0b363f0117838f5bfc799156113cb06058ad4d4b39fc730903b7360b05038da11093064ca37caf76b7cf2ca + checksum: 10/ee1bd4e0ec64f29109d5a625bb703d179c82e0159c86c3f1b52fc1209d2994625a137dae303c333fb308a2e38315e44066d5204998177e31974382f9fda25d5c languageName: node linkType: hard @@ -4855,23 +4855,23 @@ __metadata: version: 8.3.0 resolution: "eslint-scope@npm:8.3.0" dependencies: - esrecurse: ^4.3.0 - estraverse: ^5.2.0 - checksum: 57a58b6716533e25d527089826c4add89a047aecf75e4a88fee05f113ef5a72b85392b304a69bf670646cc3e068354aec70361b9718c2453949a05fc4d9bfe73 + esrecurse: "npm:^4.3.0" + estraverse: "npm:^5.2.0" + checksum: 10/ee1ff009e949423639a8b53453c0cb189967d9142c5d94dc3752bed9880140a0760007148ac6b0bd03557d70ede9cd7c3b1e66f9a7f3427b2dbeca2a5be22c91 languageName: node linkType: hard "eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 36e9ef87fca698b6fd7ca5ca35d7b2b6eeaaf106572e2f7fd31c12d3bfdaccdb587bba6d3621067e5aece31c8c3a348b93922ab8f7b2cbc6aaab5e1d89040c60 + checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b languageName: node linkType: hard "eslint-visitor-keys@npm:^4.2.0": version: 4.2.0 resolution: "eslint-visitor-keys@npm:4.2.0" - checksum: 779c604672b570bb4da84cef32f6abb085ac78379779c1122d7879eade8bb38ae715645324597cf23232d03cef06032c9844d25c73625bc282a5bfd30247e5b5 + checksum: 10/9651b3356b01760e586b4c631c5268c0e1a85236e3292bf754f0472f465bf9a856c0ddc261fceace155334118c0151778effafbab981413dbf9288349343fa25 languageName: node linkType: hard @@ -4879,41 +4879,41 @@ __metadata: version: 9.24.0 resolution: "eslint@npm:9.24.0" dependencies: - "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.12.1 - "@eslint/config-array": ^0.20.0 - "@eslint/config-helpers": ^0.2.0 - "@eslint/core": ^0.12.0 - "@eslint/eslintrc": ^3.3.1 - "@eslint/js": 9.24.0 - "@eslint/plugin-kit": ^0.2.7 - "@humanfs/node": ^0.16.6 - "@humanwhocodes/module-importer": ^1.0.1 - "@humanwhocodes/retry": ^0.4.2 - "@types/estree": ^1.0.6 - "@types/json-schema": ^7.0.15 - ajv: ^6.12.4 - chalk: ^4.0.0 - cross-spawn: ^7.0.6 - debug: ^4.3.2 - escape-string-regexp: ^4.0.0 - eslint-scope: ^8.3.0 - eslint-visitor-keys: ^4.2.0 - espree: ^10.3.0 - esquery: ^1.5.0 - esutils: ^2.0.2 - fast-deep-equal: ^3.1.3 - file-entry-cache: ^8.0.0 - find-up: ^5.0.0 - glob-parent: ^6.0.2 - ignore: ^5.2.0 - imurmurhash: ^0.1.4 - is-glob: ^4.0.0 - json-stable-stringify-without-jsonify: ^1.0.1 - lodash.merge: ^4.6.2 - minimatch: ^3.1.2 - natural-compare: ^1.4.0 - optionator: ^0.9.3 + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@eslint-community/regexpp": "npm:^4.12.1" + "@eslint/config-array": "npm:^0.20.0" + "@eslint/config-helpers": "npm:^0.2.0" + "@eslint/core": "npm:^0.12.0" + "@eslint/eslintrc": "npm:^3.3.1" + "@eslint/js": "npm:9.24.0" + "@eslint/plugin-kit": "npm:^0.2.7" + "@humanfs/node": "npm:^0.16.6" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@humanwhocodes/retry": "npm:^0.4.2" + "@types/estree": "npm:^1.0.6" + "@types/json-schema": "npm:^7.0.15" + ajv: "npm:^6.12.4" + chalk: "npm:^4.0.0" + cross-spawn: "npm:^7.0.6" + debug: "npm:^4.3.2" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^8.3.0" + eslint-visitor-keys: "npm:^4.2.0" + espree: "npm:^10.3.0" + esquery: "npm:^1.5.0" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^8.0.0" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + lodash.merge: "npm:^4.6.2" + minimatch: "npm:^3.1.2" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" peerDependencies: jiti: "*" peerDependenciesMeta: @@ -4921,7 +4921,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: fb4cdca007fe8b66d6c1ae8e682ce504afc116ab9a0ba264a69ff7cd40833ad02d9b86394685563175d202c31dbb57b31de46687cfa10ed890c7ae560f560871 + checksum: 10/05810e135c1f429be451a4be92283c0be204010bb0ea71edfeae1d25ff917cbc5a229144ee55853a085088c7e4092e59a28c0dae87a865ef9600ad4438861d4a languageName: node linkType: hard @@ -4929,10 +4929,10 @@ __metadata: version: 10.3.0 resolution: "espree@npm:10.3.0" dependencies: - acorn: ^8.14.0 - acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^4.2.0 - checksum: 63e8030ff5a98cea7f8b3e3a1487c998665e28d674af08b9b3100ed991670eb3cbb0e308c4548c79e03762753838fbe530c783f17309450d6b47a889fee72bef + acorn: "npm:^8.14.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10/3412d44d4204c9e29d6b5dd0277400cfa0cd68495dc09eae1b9ce79d0c8985c1c5cc09cb9ba32a1cd963f48a49b0c46bdb7736afe395a300aa6bb1c0d86837e8 languageName: node linkType: hard @@ -4942,7 +4942,7 @@ __metadata: bin: esparse: ./bin/esparse.js esvalidate: ./bin/esvalidate.js - checksum: b45bc805a613dbea2835278c306b91aff6173c8d034223fa81498c77dcbce3b2931bf6006db816f62eacd9fd4ea975dfd85a5b7f3c6402cfd050d4ca3c13a628 + checksum: 10/f1d3c622ad992421362294f7acf866aa9409fbad4eb2e8fa230bd33944ce371d32279667b242d8b8907ec2b6ad7353a717f3c0e60e748873a34a7905174bc0eb languageName: node linkType: hard @@ -4950,8 +4950,8 @@ __metadata: version: 1.6.0 resolution: "esquery@npm:1.6.0" dependencies: - estraverse: ^5.1.0 - checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 + estraverse: "npm:^5.1.0" + checksum: 10/c587fb8ec9ed83f2b1bc97cf2f6854cc30bf784a79d62ba08c6e358bf22280d69aee12827521cf38e69ae9761d23fb7fde593ce315610f85655c139d99b05e5a languageName: node linkType: hard @@ -4959,22 +4959,22 @@ __metadata: version: 4.3.0 resolution: "esrecurse@npm:4.3.0" dependencies: - estraverse: ^5.2.0 - checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 + estraverse: "npm:^5.2.0" + checksum: 10/44ffcd89e714ea6b30143e7f119b104fc4d75e77ee913f34d59076b40ef2d21967f84e019f84e1fd0465b42cdbf725db449f232b5e47f29df29ed76194db8e16 languageName: node linkType: hard "estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": version: 5.3.0 resolution: "estraverse@npm:5.3.0" - checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b + checksum: 10/37cbe6e9a68014d34dbdc039f90d0baf72436809d02edffcc06ba3c2a12eb298048f877511353b130153e532aac8d68ba78430c0dd2f44806ebc7c014b01585e languageName: node linkType: hard "estree-util-is-identifier-name@npm:^3.0.0": version: 3.0.0 resolution: "estree-util-is-identifier-name@npm:3.0.0" - checksum: ea3909f0188ea164af0aadeca87c087e3e5da78d76da5ae9c7954ff1340ea3e4679c4653bbf4299ffb70caa9b322218cc1128db2541f3d2976eb9704f9857787 + checksum: 10/cdc9187614fdb269d714eddfdf72c270a79daa9ed51e259bb78527983be6dcc68da6a914ccc41175b662194c67fbd2a1cd262f85fac1eef7111cfddfaf6f77f8 languageName: node linkType: hard @@ -4982,15 +4982,15 @@ __metadata: version: 3.0.3 resolution: "estree-walker@npm:3.0.3" dependencies: - "@types/estree": ^1.0.0 - checksum: a65728d5727b71de172c5df323385755a16c0fdab8234dc756c3854cfee343261ddfbb72a809a5660fac8c75d960bb3e21aa898c2d7e9b19bb298482ca58a3af + "@types/estree": "npm:^1.0.0" + checksum: 10/a65728d5727b71de172c5df323385755a16c0fdab8234dc756c3854cfee343261ddfbb72a809a5660fac8c75d960bb3e21aa898c2d7e9b19bb298482ca58a3af languageName: node linkType: hard "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" - checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 + checksum: 10/b23acd24791db11d8f65be5ea58fd9a6ce2df5120ae2da65c16cfc5331ff59d5ac4ef50af66cd4bde238881503ec839928a0135b99a036a9cdfa22d17fd56cdb languageName: node linkType: hard @@ -4998,28 +4998,28 @@ __metadata: version: 6.13.6 resolution: "ethers@npm:6.13.6" dependencies: - "@adraffy/ens-normalize": 1.10.1 - "@noble/curves": 1.2.0 - "@noble/hashes": 1.3.2 - "@types/node": 22.7.5 - aes-js: 4.0.0-beta.5 - tslib: 2.7.0 - ws: 8.17.1 - checksum: 9d0eb6d031c11a325dcab34378c70f335d2985c33063e07e82c85d1448135b730d2bfb47fb28c8d618c57f37462793b0fad9e16588ba3b2dffc77c898b580ee5 + "@adraffy/ens-normalize": "npm:1.10.1" + "@noble/curves": "npm:1.2.0" + "@noble/hashes": "npm:1.3.2" + "@types/node": "npm:22.7.5" + aes-js: "npm:4.0.0-beta.5" + tslib: "npm:2.7.0" + ws: "npm:8.17.1" + checksum: 10/271ea38276d28b0f8ed0a52c3c5c6f0efc3b2a9e17b29454ec3248d248c0b4793781d91e5fbf784781906afa30ec5b8bd670a9b0e71af271b1d3bcc0177e63df languageName: node linkType: hard "eventemitter2@npm:6.4.7": version: 6.4.7 resolution: "eventemitter2@npm:6.4.7" - checksum: 1b36a77e139d6965ebf3a36c01fa00c089ae6b80faa1911e52888f40b3a7057b36a2cc45dcd1ad87cda3798fe7b97a0aabcbb8175a8b96092a23bb7d0f039e66 + checksum: 10/df2a733ee3a7ac6e7f6988cebbaac5b14b46bf82f700f1ec86f9e3f3d095dba20f9aa5c29d9d62a6f50fd943f798f7f2a38c4e1b45148f6f7cec7586a8ac6881 languageName: node linkType: hard "eventemitter3@npm:^5.0.1": version: 5.0.1 resolution: "eventemitter3@npm:5.0.1" - checksum: 543d6c858ab699303c3c32e0f0f47fc64d360bf73c3daf0ac0b5079710e340d6fe9f15487f94e66c629f5f82cd1a8678d692f3dbb6f6fcd1190e1b97fcad36f8 + checksum: 10/ac6423ec31124629c84c7077eed1e6987f6d66c31cf43c6fcbf6c87791d56317ce808d9ead483652436df171b526fc7220eccdc9f3225df334e81582c3cf7dd5 languageName: node linkType: hard @@ -5027,16 +5027,16 @@ __metadata: version: 4.1.0 resolution: "execa@npm:4.1.0" dependencies: - cross-spawn: ^7.0.0 - get-stream: ^5.0.0 - human-signals: ^1.1.1 - is-stream: ^2.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^4.0.0 - onetime: ^5.1.0 - signal-exit: ^3.0.2 - strip-final-newline: ^2.0.0 - checksum: e30d298934d9c52f90f3847704fd8224e849a081ab2b517bbc02f5f7732c24e56a21f14cb96a08256deffeb2d12b2b7cb7e2b014a12fb36f8d3357e06417ed55 + cross-spawn: "npm:^7.0.0" + get-stream: "npm:^5.0.0" + human-signals: "npm:^1.1.1" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.0" + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + strip-final-newline: "npm:^2.0.0" + checksum: 10/ed58e41fe424797f3d837c8fb622548eeb72fa03324f2676af95f806568904eb55f196127a097f87d4517cab524c169ece13e6c9e201867de57b089584864b8f languageName: node linkType: hard @@ -5044,16 +5044,16 @@ __metadata: version: 8.0.1 resolution: "execa@npm:8.0.1" dependencies: - cross-spawn: ^7.0.3 - get-stream: ^8.0.1 - human-signals: ^5.0.0 - is-stream: ^3.0.0 - merge-stream: ^2.0.0 - npm-run-path: ^5.1.0 - onetime: ^6.0.0 - signal-exit: ^4.1.0 - strip-final-newline: ^3.0.0 - checksum: cac1bf86589d1d9b73bdc5dda65c52012d1a9619c44c526891956745f7b366ca2603d29fe3f7460bacc2b48c6eab5d6a4f7afe0534b31473d3708d1265545e1f + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^8.0.1" + human-signals: "npm:^5.0.0" + is-stream: "npm:^3.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^5.1.0" + onetime: "npm:^6.0.0" + signal-exit: "npm:^4.1.0" + strip-final-newline: "npm:^3.0.0" + checksum: 10/d2ab5fe1e2bb92b9788864d0713f1fce9a07c4594e272c0c97bc18c90569897ab262e4ea58d27a694d288227a2e24f16f5e2575b44224ad9983b799dc7f1098d languageName: node linkType: hard @@ -5061,29 +5061,29 @@ __metadata: version: 4.1.1 resolution: "executable@npm:4.1.1" dependencies: - pify: ^2.2.0 - checksum: f01927ce59bccec804e171bf859a26e362c1f50aa9ebc69f7cafdcce3859d29d4b6267fd47237c18b0a1830614bd3f0ee14b7380d9bad18a4e7af9b5f0b6984f + pify: "npm:^2.2.0" + checksum: 10/f01927ce59bccec804e171bf859a26e362c1f50aa9ebc69f7cafdcce3859d29d4b6267fd47237c18b0a1830614bd3f0ee14b7380d9bad18a4e7af9b5f0b6984f languageName: node linkType: hard "expect-type@npm:^1.1.0": version: 1.2.1 resolution: "expect-type@npm:1.2.1" - checksum: 4fc41ff0c784cb8984ab7801326251d3178083661f0ad08bbd3e5ca789293e6b66d5082f0cef83ebf9849c85d0280a19df5e4e2c57999a2464db9a01c7e3344f + checksum: 10/d121d90f4f3f705ca0b656e36f28c0ba91483d0cddf2876e64e23c3dea2f2d5853e9c0c9a4e90eb4b3e4663bf09c2c02e9729c339dcd308c70b2107188e6b286 languageName: node linkType: hard "exponential-backoff@npm:^3.1.1": version: 3.1.2 resolution: "exponential-backoff@npm:3.1.2" - checksum: 7e191e3dd6edd8c56c88f2c8037c98fbb8034fe48778be53ed8cb30ccef371a061a4e999a469aab939b92f8f12698f3b426d52f4f76b7a20da5f9f98c3cbc862 + checksum: 10/ca2f01f1aa4dafd3f3917bd531ab5be08c6f5f4b2389d2e974f903de3cbeb50b9633374353516b6afd70905775e33aba11afab1232d3acf0aa2963b98a611c51 languageName: node linkType: hard "extend@npm:^3.0.0, extend@npm:~3.0.2": version: 3.0.2 resolution: "extend@npm:3.0.2" - checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515 + checksum: 10/59e89e2dc798ec0f54b36d82f32a27d5f6472c53974f61ca098db5d4648430b725387b53449a34df38fd0392045434426b012f302b3cc049a6500ccf82877e4e languageName: node linkType: hard @@ -5091,37 +5091,37 @@ __metadata: version: 2.0.1 resolution: "extract-zip@npm:2.0.1" dependencies: - "@types/yauzl": ^2.9.1 - debug: ^4.1.1 - get-stream: ^5.1.0 - yauzl: ^2.10.0 + "@types/yauzl": "npm:^2.9.1" + debug: "npm:^4.1.1" + get-stream: "npm:^5.1.0" + yauzl: "npm:^2.10.0" dependenciesMeta: "@types/yauzl": optional: true bin: extract-zip: cli.js - checksum: 8cbda9debdd6d6980819cc69734d874ddd71051c9fe5bde1ef307ebcedfe949ba57b004894b585f758b7c9eeeea0e3d87f2dda89b7d25320459c2c9643ebb635 + checksum: 10/8cbda9debdd6d6980819cc69734d874ddd71051c9fe5bde1ef307ebcedfe949ba57b004894b585f758b7c9eeeea0e3d87f2dda89b7d25320459c2c9643ebb635 languageName: node linkType: hard "extsprintf@npm:1.3.0": version: 1.3.0 resolution: "extsprintf@npm:1.3.0" - checksum: cee7a4a1e34cffeeec18559109de92c27517e5641991ec6bab849aa64e3081022903dd53084f2080d0d2530803aa5ee84f1e9de642c365452f9e67be8f958ce2 + checksum: 10/26967d6c7ecbfb5bc5b7a6c43503dc5fafd9454802037e9fa1665e41f615da4ff5918bd6cb871a3beabed01a31eca1ccd0bdfb41231f50ad50d405a430f78377 languageName: node linkType: hard "extsprintf@npm:^1.2.0": version: 1.4.1 resolution: "extsprintf@npm:1.4.1" - checksum: a2f29b241914a8d2bad64363de684821b6b1609d06ae68d5b539e4de6b28659715b5bea94a7265201603713b7027d35399d10b0548f09071c5513e65e8323d33 + checksum: 10/bfd6d55f3c0c04d826fe0213264b383c03f32825af6b1ff777f3f2dc49467e599361993568d75b7b19a8ea1bb08c8e7cd8c3d87d179ced91bb0dcf81ca6938e0 languageName: node linkType: hard "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" - checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + checksum: 10/e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d languageName: node linkType: hard @@ -5129,26 +5129,26 @@ __metadata: version: 3.3.3 resolution: "fast-glob@npm:3.3.3" 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 - checksum: 0704d7b85c0305fd2cef37777337dfa26230fdd072dce9fb5c82a4b03156f3ffb8ed3e636033e65d45d2a5805a4e475825369a27404c0307f2db0c8eb3366fbd + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.8" + checksum: 10/dcc6432b269762dd47381d8b8358bf964d8f4f60286ac6aa41c01ade70bda459ff2001b516690b96d5365f68a49242966112b5d5cc9cd82395fa8f9d017c90ad languageName: node linkType: hard "fast-json-stable-stringify@npm:^2.0.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb + checksum: 10/2c20055c1fa43c922428f16ca8bb29f2807de63e5c851f665f7ac9790176c01c3b40335257736b299764a8d383388dabc73c8083b8e1bc3d99f0a941444ec60e languageName: node linkType: hard "fast-levenshtein@npm:^2.0.6": version: 2.0.6 resolution: "fast-levenshtein@npm:2.0.6" - checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c + checksum: 10/eb7e220ecf2bab5159d157350b81d01f75726a4382f5a9266f42b9150c4523b9795f7f5d9fbbbeaeac09a441b2369f05ee02db48ea938584205530fe5693cfe1 languageName: node linkType: hard @@ -5156,8 +5156,8 @@ __metadata: version: 1.19.1 resolution: "fastq@npm:1.19.1" dependencies: - reusify: ^1.0.4 - checksum: 7691d1794fb84ad0ec2a185f10e00f0e1713b894e2c9c4d42f0bc0ba5f8c00e6e655a202074ca0b91b9c3d977aab7c30c41a8dc069fb5368576ac0054870a0e6 + reusify: "npm:^1.0.4" + checksum: 10/75679dc226316341c4f2a6b618571f51eac96779906faecd8921b984e844d6ae42fabb2df69b1071327d398d5716693ea9c9c8941f64ac9e89ec2032ce59d730 languageName: node linkType: hard @@ -5165,8 +5165,8 @@ __metadata: version: 1.1.0 resolution: "fd-slicer@npm:1.1.0" dependencies: - pend: ~1.2.0 - checksum: c8585fd5713f4476eb8261150900d2cb7f6ff2d87f8feb306ccc8a1122efd152f1783bdb2b8dc891395744583436bfd8081d8e63ece0ec8687eeefea394d4ff2 + pend: "npm:~1.2.0" + checksum: 10/db3e34fa483b5873b73f248e818f8a8b59a6427fd8b1436cd439c195fdf11e8659419404826059a642b57d18075c856d06d6a50a1413b714f12f833a9341ead3 languageName: node linkType: hard @@ -5178,7 +5178,7 @@ __metadata: peerDependenciesMeta: picomatch: optional: true - checksum: fa53e13c63e8c14add5b70fd47e28267dd5481ebbba4b47720ec25aae7d10a800ef0f2e33de350faaf63c10b3d7b64138925718832220d593f75e724846c736d + checksum: 10/8e6d20f4590dc168de1374a9cadaa37e20ca6e0b822aa247c230e7ea1d9e9674a68cd816146435e4ecc98f9285091462ab7e5e56eebc9510931a1794e4db68b2 languageName: node linkType: hard @@ -5186,9 +5186,9 @@ __metadata: version: 3.2.0 resolution: "fetch-blob@npm:3.2.0" dependencies: - node-domexception: ^1.0.0 - web-streams-polyfill: ^3.0.3 - checksum: f19bc28a2a0b9626e69fd7cf3a05798706db7f6c7548da657cbf5026a570945f5eeaedff52007ea35c8bcd3d237c58a20bf1543bc568ab2422411d762dd3d5bf + node-domexception: "npm:^1.0.0" + web-streams-polyfill: "npm:^3.0.3" + checksum: 10/5264ecceb5fdc19eb51d1d0359921f12730941e333019e673e71eb73921146dceabcb0b8f534582be4497312d656508a439ad0f5edeec2b29ab2e10c72a1f86b languageName: node linkType: hard @@ -5196,8 +5196,8 @@ __metadata: version: 3.2.0 resolution: "figures@npm:3.2.0" dependencies: - escape-string-regexp: ^1.0.5 - checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b + escape-string-regexp: "npm:^1.0.5" + checksum: 10/a3bf94e001be51d3770500789157f067218d4bc681a65e1f69d482de15120bcac822dceb1a7b3803f32e4e3a61a46df44f7f2c8ba95d6375e7491502e0dd3d97 languageName: node linkType: hard @@ -5205,8 +5205,8 @@ __metadata: version: 8.0.0 resolution: "file-entry-cache@npm:8.0.0" dependencies: - flat-cache: ^4.0.0 - checksum: f67802d3334809048c69b3d458f672e1b6d26daefda701761c81f203b80149c35dea04d78ea4238969dd617678e530876722a0634c43031a0957f10cc3ed190f + flat-cache: "npm:^4.0.0" + checksum: 10/afe55c4de4e0d226a23c1eae62a7219aafb390859122608a89fa4df6addf55c7fd3f1a2da6f5b41e7cdff496e4cf28bbd215d53eab5c817afa96d2b40c81bfb0 languageName: node linkType: hard @@ -5214,8 +5214,8 @@ __metadata: version: 2.1.2 resolution: "file-selector@npm:2.1.2" dependencies: - tslib: ^2.7.0 - checksum: 0e7c5233ca7d33a05eb99236e8cfc843ea304335589d954393aeb7c5b7595f30be23c79173d28180e728b6eb441cd1dd355d6ad7fbb03b8e4f37d20e3d5c3184 + tslib: "npm:^2.7.0" + checksum: 10/2a6be0e1904df85f8705a5171fd3b93c1b1ff2ad0143556adb78ac4de899bfc0ba1a20083b4febd4f7000759ec9119a31af76a057e29dd9215907da69ac95e50 languageName: node linkType: hard @@ -5223,8 +5223,8 @@ __metadata: version: 7.1.1 resolution: "fill-range@npm:7.1.1" dependencies: - to-regex-range: ^5.0.1 - checksum: b4abfbca3839a3d55e4ae5ec62e131e2e356bf4859ce8480c64c4876100f4df292a63e5bb1618e1d7460282ca2b305653064f01654474aa35c68000980f17798 + to-regex-range: "npm:^5.0.1" + checksum: 10/a7095cb39e5bc32fada2aa7c7249d3f6b01bd1ce461a61b0adabacccabd9198500c6fb1f68a7c851a657e273fce2233ba869638897f3d7ed2e87a2d89b4436ea languageName: node linkType: hard @@ -5232,17 +5232,17 @@ __metadata: version: 3.3.2 resolution: "find-cache-dir@npm:3.3.2" dependencies: - commondir: ^1.0.1 - make-dir: ^3.0.2 - pkg-dir: ^4.1.0 - checksum: 1e61c2e64f5c0b1c535bd85939ae73b0e5773142713273818cc0b393ee3555fb0fd44e1a5b161b8b6c3e03e98c2fcc9c227d784850a13a90a8ab576869576817 + commondir: "npm:^1.0.1" + make-dir: "npm:^3.0.2" + pkg-dir: "npm:^4.1.0" + checksum: 10/3907c2e0b15132704ed67083686cd3e68ab7d9ecc22e50ae9da20678245d488b01fa22c0e34c0544dc6edc4354c766f016c8c186a787be7c17f7cde8c5281e85 languageName: node linkType: hard "find-root@npm:^1.1.0": version: 1.1.0 resolution: "find-root@npm:1.1.0" - checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf + checksum: 10/caa799c976a14925ba7f31ca1a226fe73d3aa270f4f1b623fcfeb1c6e263111db4beb807d8acd31bd4d48d44c343b93688a9288dfbccca27463c36a0301b0bb9 languageName: node linkType: hard @@ -5250,9 +5250,9 @@ __metadata: version: 4.1.0 resolution: "find-up@npm:4.1.0" dependencies: - locate-path: ^5.0.0 - path-exists: ^4.0.0 - checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 + locate-path: "npm:^5.0.0" + path-exists: "npm:^4.0.0" + checksum: 10/4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 languageName: node linkType: hard @@ -5260,9 +5260,9 @@ __metadata: version: 5.0.0 resolution: "find-up@npm:5.0.0" dependencies: - locate-path: ^6.0.0 - path-exists: ^4.0.0 - checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + locate-path: "npm:^6.0.0" + path-exists: "npm:^4.0.0" + checksum: 10/07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 languageName: node linkType: hard @@ -5270,30 +5270,30 @@ __metadata: version: 4.0.1 resolution: "flat-cache@npm:4.0.1" dependencies: - flatted: ^3.2.9 - keyv: ^4.5.4 - checksum: 899fc86bf6df093547d76e7bfaeb900824b869d7d457d02e9b8aae24836f0a99fbad79328cfd6415ee8908f180699bf259dc7614f793447cb14f707caf5996f6 + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.4" + checksum: 10/58ce851d9045fffc7871ce2bd718bc485ad7e777bf748c054904b87c351ff1080c2c11da00788d78738bfb51b71e4d5ea12d13b98eb36e3358851ffe495b62dc languageName: node linkType: hard "flatted@npm:^3.2.9": version: 3.3.3 resolution: "flatted@npm:3.3.3" - checksum: 8c96c02fbeadcf4e8ffd0fa24983241e27698b0781295622591fc13585e2f226609d95e422bcf2ef044146ffacb6b68b1f20871454eddf75ab3caa6ee5f4a1fe + checksum: 10/8c96c02fbeadcf4e8ffd0fa24983241e27698b0781295622591fc13585e2f226609d95e422bcf2ef044146ffacb6b68b1f20871454eddf75ab3caa6ee5f4a1fe languageName: node linkType: hard "folktale@npm:2.0.1": version: 2.0.1 resolution: "folktale@npm:2.0.1" - checksum: 5f2e5952b31d3e35835691150262ce0720b7448a8defeb5a6cc948a3dc45924c978f85abee6fe3830c930d357f7b5ceee35967f3d15e8cd00b2146086aabdca5 + checksum: 10/d844141a5a4b5c3b51dd197c5d41e9e42ddd8cacc1e844d7801add792b03a8ff261facc79eb879aee27e240fc73880469eeb47d46f901dc689d712231ec0a84f languageName: node linkType: hard "folktale@npm:2.3.2": version: 2.3.2 resolution: "folktale@npm:2.3.2" - checksum: e6409a83f0894715dfb1fe99d4d854c8d92f0421d5b09788869f9f6aa7dc6f9de342eb4fb1039c37e7253aec4ce5f6be555f66f5e540fbc95bea4484d0559a9c + checksum: 10/c0901a087b55ba96a72292b4400433175cb1750d77ae703f7e49102915e192bd18b7d4ca5588985ca7920db307b8b06323ece8e67c6927db74ee583c2e152b99 languageName: node linkType: hard @@ -5301,8 +5301,8 @@ __metadata: version: 0.3.5 resolution: "for-each@npm:0.3.5" dependencies: - is-callable: ^1.2.7 - checksum: 3c986d7e11f4381237cc98baa0a2f87eabe74719eee65ed7bed275163082b940ede19268c61d04c6260e0215983b12f8d885e3c8f9aa8c2113bf07c37051745c + is-callable: "npm:^1.2.7" + checksum: 10/330cc2439f85c94f4609de3ee1d32c5693ae15cdd7fe3d112c4fd9efd4ce7143f2c64ef6c2c9e0cfdb0058437f33ef05b5bdae5b98fcc903fb2143fbaf0fea0f languageName: node linkType: hard @@ -5310,9 +5310,9 @@ __metadata: version: 2.0.0 resolution: "foreground-child@npm:2.0.0" dependencies: - cross-spawn: ^7.0.0 - signal-exit: ^3.0.2 - checksum: f77ec9aff621abd6b754cb59e690743e7639328301fbea6ff09df27d2befaf7dd5b77cec51c32323d73a81a7d91caaf9413990d305cbe3d873eec4fe58960956 + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^3.0.2" + checksum: 10/f36574ad8e19d69ce06fceac7d86161b863968e4ba292c14b7b40e5c464e3e9bcd7711250d33427d95cc2bb0d48cf101df9687433dbbc7fd3c7e4f595be8305e languageName: node linkType: hard @@ -5320,16 +5320,16 @@ __metadata: version: 3.3.1 resolution: "foreground-child@npm:3.3.1" dependencies: - cross-spawn: ^7.0.6 - signal-exit: ^4.0.1 - checksum: b2c1a6fc0bf0233d645d9fefdfa999abf37db1b33e5dab172b3cbfb0662b88bfbd2c9e7ab853533d199050ec6b65c03fcf078fc212d26e4990220e98c6930eef + cross-spawn: "npm:^7.0.6" + signal-exit: "npm:^4.0.1" + checksum: 10/427b33f997a98073c0424e5c07169264a62cda806d8d2ded159b5b903fdfc8f0a1457e06b5fc35506497acb3f1e353f025edee796300209ac6231e80edece835 languageName: node linkType: hard "forever-agent@npm:~0.6.1": version: 0.6.1 resolution: "forever-agent@npm:0.6.1" - checksum: 766ae6e220f5fe23676bb4c6a99387cec5b7b62ceb99e10923376e27bfea72f3c3aeec2ba5f45f3f7ba65d6616965aa7c20b15002b6860833bb6e394dea546a8 + checksum: 10/c1e1644d5e074ac063ecbc3fb8582013ef91fff0e3fa41e76db23d2f62bc6d9677aac86db950917deed4fe1fdd772df780cfaa352075f23deec9c015313afb97 languageName: node linkType: hard @@ -5337,11 +5337,11 @@ __metadata: version: 4.0.2 resolution: "form-data@npm:4.0.2" dependencies: - asynckit: ^0.4.0 - combined-stream: ^1.0.8 - es-set-tostringtag: ^2.1.0 - mime-types: ^2.1.12 - checksum: e887298b22c13c7c9c5a8ba3716f295a479a13ca78bfd855ef11cbce1bcf22bc0ae2062e94808e21d46e5c667664a1a1a8a7f57d7040193c1fefbfb11af58aab + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + es-set-tostringtag: "npm:^2.1.0" + mime-types: "npm:^2.1.12" + checksum: 10/82c65b426af4a40090e517a1bc9057f76970b4c6043e37aa49859c447d88553e77d4cc5626395079a53d2b0889ba5f2a49f3900db3ad3f3f1bf76613532572fb languageName: node linkType: hard @@ -5349,22 +5349,22 @@ __metadata: version: 4.0.10 resolution: "formdata-polyfill@npm:4.0.10" dependencies: - fetch-blob: ^3.1.2 - checksum: 82a34df292afadd82b43d4a740ce387bc08541e0a534358425193017bf9fb3567875dc5f69564984b1da979979b70703aa73dee715a17b6c229752ae736dd9db + fetch-blob: "npm:^3.1.2" + checksum: 10/9b5001d2edef3c9449ac3f48bd4f8cc92e7d0f2e7c1a5c8ba555ad4e77535cc5cf621fabe49e97f304067037282dd9093b9160a3cb533e46420b446c4e6bc06f languageName: node linkType: hard "fraction.js@npm:^4.3.7": version: 4.3.7 resolution: "fraction.js@npm:4.3.7" - checksum: e1553ae3f08e3ba0e8c06e43a3ab20b319966dfb7ddb96fd9b5d0ee11a66571af7f993229c88ebbb0d4a816eb813a24ed48207b140d442a8f76f33763b8d1f3f + checksum: 10/bb5ebcdeeffcdc37b68ead3bdfc244e68de188e0c64e9702197333c72963b95cc798883ad16adc21588088b942bca5b6a6ff4aeb1362d19f6f3b629035dc15f5 languageName: node linkType: hard "fromentries@npm:^1.2.0": version: 1.3.2 resolution: "fromentries@npm:1.3.2" - checksum: 33729c529ce19f5494f846f0dd4945078f4e37f4e8955f4ae8cc7385c218f600e9d93a7d225d17636c20d1889106fd87061f911550861b7072f53bf891e6b341 + checksum: 10/10d6e07d289db102c0c1eaf5c3e3fa55ddd6b50033d7de16d99a7cd89f1e1a302dfadb26457031f9bb5d2ed95a179aaf0396092dde5abcae06e8a2f0476826be languageName: node linkType: hard @@ -5372,11 +5372,11 @@ __metadata: version: 9.1.0 resolution: "fs-extra@npm:9.1.0" dependencies: - at-least-node: ^1.0.0 - graceful-fs: ^4.2.0 - jsonfile: ^6.0.1 - universalify: ^2.0.0 - checksum: ba71ba32e0faa74ab931b7a0031d1523c66a73e225de7426e275e238e312d07313d2da2d33e34a52aa406c8763ade5712eb3ec9ba4d9edce652bcacdc29e6b20 + at-least-node: "npm:^1.0.0" + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/08600da1b49552ed23dfac598c8fc909c66776dd130fea54fbcad22e330f7fcc13488bb995f6bc9ce5651aa35b65702faf616fe76370ee56f1aade55da982dca languageName: node linkType: hard @@ -5384,15 +5384,15 @@ __metadata: version: 3.0.3 resolution: "fs-minipass@npm:3.0.3" dependencies: - minipass: ^7.0.3 - checksum: 8722a41109130851d979222d3ec88aabaceeaaf8f57b2a8f744ef8bd2d1ce95453b04a61daa0078822bc5cd21e008814f06fe6586f56fef511e71b8d2394d802 + minipass: "npm:^7.0.3" + checksum: 10/af143246cf6884fe26fa281621d45cfe111d34b30535a475bfa38dafe343dadb466c047a924ffc7d6b7b18265df4110224ce3803806dbb07173bf2087b648d7f languageName: node linkType: hard "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" - checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + checksum: 10/e703107c28e362d8d7b910bbcbfd371e640a3bb45ae157a362b5952c0030c0b6d4981140ec319b347bce7adc025dd7813da1ff908a945ac214d64f5402a51b96 languageName: node linkType: hard @@ -5400,17 +5400,17 @@ __metadata: version: 2.3.3 resolution: "fsevents@npm:2.3.3" dependencies: - node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 + node-gyp: "npm:latest" + checksum: 10/4c1ade961ded57cdbfbb5cac5106ec17bc8bccd62e16343c569a0ceeca83b9dfef87550b4dc5cbb89642da412b20c5071f304c8c464b80415446e8e155a038c0 conditions: os=darwin languageName: node linkType: hard -"fsevents@patch:fsevents@~2.3.2#~builtin, fsevents@patch:fsevents@~2.3.3#~builtin": +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=18f3a7" + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" dependencies: - node-gyp: latest + node-gyp: "npm:latest" conditions: os=darwin languageName: node linkType: hard @@ -5418,7 +5418,7 @@ __metadata: "function-bind@npm:^1.1.2": version: 1.1.2 resolution: "function-bind@npm:1.1.2" - checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1 + checksum: 10/185e20d20f10c8d661d59aac0f3b63b31132d492e1b11fcc2a93cb2c47257ebaee7407c38513efd2b35cafdf972d9beb2ea4593c1e0f3bf8f2744836928d7454 languageName: node linkType: hard @@ -5426,41 +5426,41 @@ __metadata: version: 1.1.8 resolution: "function.prototype.name@npm:1.1.8" dependencies: - call-bind: ^1.0.8 - call-bound: ^1.0.3 - define-properties: ^1.2.1 - functions-have-names: ^1.2.3 - hasown: ^2.0.2 - is-callable: ^1.2.7 - checksum: 3a366535dc08b25f40a322efefa83b2da3cd0f6da41db7775f2339679120ef63b6c7e967266182609e655b8f0a8f65596ed21c7fd72ad8bd5621c2340edd4010 + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + functions-have-names: "npm:^1.2.3" + hasown: "npm:^2.0.2" + is-callable: "npm:^1.2.7" + checksum: 10/25b9e5bea936732a6f0c0c08db58cc0d609ac1ed458c6a07ead46b32e7b9bf3fe5887796c3f83d35994efbc4fdde81c08ac64135b2c399b8f2113968d44082bc languageName: node linkType: hard "functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" - checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 + checksum: 10/0ddfd3ed1066a55984aaecebf5419fbd9344a5c38dd120ffb0739fac4496758dcf371297440528b115e4367fc46e3abc86a2cc0ff44612181b175ae967a11a05 languageName: node linkType: hard "gensync@npm:^1.0.0-beta.2": version: 1.0.0-beta.2 resolution: "gensync@npm:1.0.0-beta.2" - checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec + checksum: 10/17d8333460204fbf1f9160d067e1e77f908a5447febb49424b8ab043026049835c9ef3974445c57dbd39161f4d2b04356d7de12b2eecaa27a7a7ea7d871cbedd languageName: node linkType: hard "get-caller-file@npm:^2.0.1": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" - checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + checksum: 10/b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 languageName: node linkType: hard "get-east-asian-width@npm:^1.0.0": version: 1.3.0 resolution: "get-east-asian-width@npm:1.3.0" - checksum: 757a34c7a46ff385e2775f96f9d3e553f6b6666a8898fb89040d36a1010fba692332772945606a7d4b0f0c6afb84cd394e75d5477c56e1f00f1eb79603b0aecc + checksum: 10/8e8e779eb28701db7fdb1c8cab879e39e6ae23f52dadd89c8aed05869671cee611a65d4f8557b83e981428623247d8bc5d0c7a4ef3ea7a41d826e73600112ad8 languageName: node linkType: hard @@ -5468,24 +5468,24 @@ __metadata: version: 1.3.0 resolution: "get-intrinsic@npm:1.3.0" 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 - checksum: 301008e4482bb9a9cb49e132b88fee093bff373b4e6def8ba219b1e96b60158a6084f273ef5cafe832e42cd93462f4accb46a618d35fe59a2b507f2388c5b79d + call-bind-apply-helpers: "npm:^1.0.2" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" + function-bind: "npm:^1.1.2" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + math-intrinsics: "npm:^1.1.0" + checksum: 10/6e9dd920ff054147b6f44cb98104330e87caafae051b6d37b13384a45ba15e71af33c3baeac7cb630a0aaa23142718dcf25b45cfdd86c184c5dcb4e56d953a10 languageName: node linkType: hard "get-package-type@npm:^0.1.0": version: 0.1.0 resolution: "get-package-type@npm:0.1.0" - checksum: bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 + checksum: 10/bba0811116d11e56d702682ddef7c73ba3481f114590e705fc549f4d868972263896af313c57a25c076e3c0d567e11d919a64ba1b30c879be985fc9d44f96148 languageName: node linkType: hard @@ -5493,9 +5493,9 @@ __metadata: version: 1.0.1 resolution: "get-proto@npm:1.0.1" dependencies: - dunder-proto: ^1.0.1 - es-object-atoms: ^1.0.0 - checksum: 4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b + dunder-proto: "npm:^1.0.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b languageName: node linkType: hard @@ -5503,15 +5503,15 @@ __metadata: version: 5.2.0 resolution: "get-stream@npm:5.2.0" dependencies: - pump: ^3.0.0 - checksum: 8bc1a23174a06b2b4ce600df38d6c98d2ef6d84e020c1ddad632ad75bac4e092eeb40e4c09e0761c35fc2dbc5e7fff5dab5e763a383582c4a167dd69a905bd12 + pump: "npm:^3.0.0" + checksum: 10/13a73148dca795e41421013da6e3ebff8ccb7fba4d2f023fd0c6da2c166ec4e789bec9774a73a7b49c08daf2cae552f8a3e914042ac23b5f59dd278cc8f9cbfb languageName: node linkType: hard "get-stream@npm:^8.0.1": version: 8.0.1 resolution: "get-stream@npm:8.0.1" - checksum: 01e3d3cf29e1393f05f44d2f00445c5f9ec3d1c49e8179b31795484b9c117f4c695e5e07b88b50785d5c8248a788c85d9913a79266fc77e3ef11f78f10f1b974 + checksum: 10/dde5511e2e65a48e9af80fea64aff11b4921b14b6e874c6f8294c50975095af08f41bfb0b680c887f28b566dd6ec2cb2f960f9d36a323359be324ce98b766e9e languageName: node linkType: hard @@ -5519,10 +5519,10 @@ __metadata: version: 1.1.0 resolution: "get-symbol-description@npm:1.1.0" dependencies: - call-bound: ^1.0.3 - es-errors: ^1.3.0 - get-intrinsic: ^1.2.6 - checksum: 655ed04db48ee65ef2ddbe096540d4405e79ba0a7f54225775fef43a7e2afcb93a77d141c5f05fdef0afce2eb93bcbfb3597142189d562ac167ff183582683cd + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + checksum: 10/a353e3a9595a74720b40fb5bae3ba4a4f826e186e83814d93375182384265676f59e49998b9cdfac4a2225ce95a3d32a68f502a2c5619303987f1c183ab80494 languageName: node linkType: hard @@ -5530,8 +5530,8 @@ __metadata: version: 4.10.0 resolution: "get-tsconfig@npm:4.10.0" dependencies: - resolve-pkg-maps: ^1.0.0 - checksum: cebf14d38ecaa9a1af25fc3f56317402a4457e7e20f30f52a0ab98b4c85962a259f75065e483824f73a1ce4a8e4926c149ead60f0619842b8cd13b94e15fbdec + resolve-pkg-maps: "npm:^1.0.0" + checksum: 10/5259b5c99a1957114337d9d0603b4a305ec9e29fa6cac7d2fbf634ba6754a0cc88bfd281a02416ce64e604b637d3cb239185381a79a5842b17fb55c097b38c4b languageName: node linkType: hard @@ -5539,8 +5539,8 @@ __metadata: version: 3.2.1 resolution: "getos@npm:3.2.1" dependencies: - async: ^3.2.0 - checksum: 42fd78a66d47cebd3e09de5566cc0044e034b08f4a000a310dbd89a77b02c65d8f4002554bfa495ea5bdc4fa9d515f5ac785a7cc474ba45383cc697f865eeaf1 + async: "npm:^3.2.0" + checksum: 10/228bede057f5cbed93dc6a66ce459a0364059faa2869682547663302f612e6295f13d3ad2a54ebbed573a9eb7f8124508b24409df6bcda6e15906c357526d11f languageName: node linkType: hard @@ -5548,8 +5548,8 @@ __metadata: version: 0.1.7 resolution: "getpass@npm:0.1.7" dependencies: - assert-plus: ^1.0.0 - checksum: ab18d55661db264e3eac6012c2d3daeafaab7a501c035ae0ccb193c3c23e9849c6e29b6ac762b9c2adae460266f925d55a3a2a3a3c8b94be2f222df94d70c046 + assert-plus: "npm:^1.0.0" + checksum: 10/ab18d55661db264e3eac6012c2d3daeafaab7a501c035ae0ccb193c3c23e9849c6e29b6ac762b9c2adae460266f925d55a3a2a3a3c8b94be2f222df94d70c046 languageName: node linkType: hard @@ -5557,8 +5557,8 @@ __metadata: version: 5.1.2 resolution: "glob-parent@npm:5.1.2" dependencies: - is-glob: ^4.0.1 - checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e + is-glob: "npm:^4.0.1" + checksum: 10/32cd106ce8c0d83731966d31517adb766d02c3812de49c30cfe0675c7c0ae6630c11214c54a5ae67aca882cf738d27fd7768f21aa19118b9245950554be07247 languageName: node linkType: hard @@ -5566,8 +5566,8 @@ __metadata: version: 6.0.2 resolution: "glob-parent@npm:6.0.2" dependencies: - is-glob: ^4.0.3 - checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + is-glob: "npm:^4.0.3" + checksum: 10/c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 languageName: node linkType: hard @@ -5575,15 +5575,15 @@ __metadata: version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: - foreground-child: ^3.1.0 - jackspeak: ^3.1.2 - minimatch: ^9.0.4 - minipass: ^7.1.2 - package-json-from-dist: ^1.0.0 - path-scurry: ^1.11.1 + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" bin: glob: dist/esm/bin.mjs - checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a + checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac languageName: node linkType: hard @@ -5591,13 +5591,13 @@ __metadata: version: 7.2.3 resolution: "glob@npm:7.2.3" 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 - checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.1.1" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 10/59452a9202c81d4508a43b8af7082ca5c76452b9fcc4a9ab17655822e6ce9b21d4f8fbadabe4fe3faef448294cec249af305e2cd824b7e9aaf689240e5e96a7b languageName: node linkType: hard @@ -5605,22 +5605,22 @@ __metadata: version: 3.0.1 resolution: "global-dirs@npm:3.0.1" dependencies: - ini: 2.0.0 - checksum: 70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438 + ini: "npm:2.0.0" + checksum: 10/70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438 languageName: node linkType: hard "globals@npm:^11.1.0": version: 11.12.0 resolution: "globals@npm:11.12.0" - checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e + checksum: 10/9f054fa38ff8de8fa356502eb9d2dae0c928217b8b5c8de1f09f5c9b6c8a96d8b9bd3afc49acbcd384a98a81fea713c859e1b09e214c60509517bb8fc2bc13c2 languageName: node linkType: hard "globals@npm:^14.0.0": version: 14.0.0 resolution: "globals@npm:14.0.0" - checksum: 534b8216736a5425737f59f6e6a5c7f386254560c9f41d24a9227d60ee3ad4a9e82c5b85def0e212e9d92162f83a92544be4c7fd4c902cb913736c10e08237ac + checksum: 10/03939c8af95c6df5014b137cac83aa909090c3a3985caef06ee9a5a669790877af8698ab38007e4c0186873adc14c0b13764acc754b16a754c216cc56aa5f021 languageName: node linkType: hard @@ -5628,9 +5628,9 @@ __metadata: version: 1.0.4 resolution: "globalthis@npm:1.0.4" dependencies: - define-properties: ^1.2.1 - gopd: ^1.0.1 - checksum: 39ad667ad9f01476474633a1834a70842041f70a55571e8dcef5fb957980a92da5022db5430fca8aecc5d47704ae30618c0bc877a579c70710c904e9ef06108a + define-properties: "npm:^1.2.1" + gopd: "npm:^1.0.1" + checksum: 10/1f1fd078fb2f7296306ef9dd51019491044ccf17a59ed49d375b576ca108ff37e47f3d29aead7add40763574a992f16a5367dd1e2173b8634ef18556ab719ac4 languageName: node linkType: hard @@ -5638,41 +5638,41 @@ __metadata: version: 11.1.0 resolution: "globby@npm:11.1.0" dependencies: - array-union: ^2.1.0 - dir-glob: ^3.0.1 - fast-glob: ^3.2.9 - ignore: ^5.2.0 - merge2: ^1.4.1 - slash: ^3.0.0 - checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 + array-union: "npm:^2.1.0" + dir-glob: "npm:^3.0.1" + fast-glob: "npm:^3.2.9" + ignore: "npm:^5.2.0" + merge2: "npm:^1.4.1" + slash: "npm:^3.0.0" + checksum: 10/288e95e310227bbe037076ea81b7c2598ccbc3122d87abc6dab39e1eec309aa14f0e366a98cdc45237ffcfcbad3db597778c0068217dcb1950fef6249104e1b1 languageName: node linkType: hard "globrex@npm:^0.1.2": version: 0.1.2 resolution: "globrex@npm:0.1.2" - checksum: adca162494a176ce9ecf4dd232f7b802956bb1966b37f60c15e49d2e7d961b66c60826366dc2649093cad5a0d69970cfa8875bd1695b5a1a2f33dcd2aa88da3c + checksum: 10/81ce62ee6f800d823d6b7da7687f841676d60ee8f51f934ddd862e4057316d26665c4edc0358d4340a923ac00a514f8b67c787e28fe693aae16350f4e60d55e9 languageName: node linkType: hard "gopd@npm:^1.0.1, gopd@npm:^1.2.0": version: 1.2.0 resolution: "gopd@npm:1.2.0" - checksum: cc6d8e655e360955bdccaca51a12a474268f95bb793fc3e1f2bdadb075f28bfd1fd988dab872daf77a61d78cbaf13744bc8727a17cfb1d150d76047d805375f3 + checksum: 10/94e296d69f92dc1c0768fcfeecfb3855582ab59a7c75e969d5f96ce50c3d201fd86d5a2857c22565764d5bb8a816c7b1e58f133ec318cd56274da36c5e3fb1a1 languageName: node linkType: hard "graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" - checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 + checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 languageName: node linkType: hard "graphemer@npm:^1.4.0": version: 1.4.0 resolution: "graphemer@npm:1.4.0" - checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + checksum: 10/6dd60dba97007b21e3a829fab3f771803cc1292977fe610e240ea72afd67e5690ac9eeaafc4a99710e78962e5936ab5a460787c2a1180f1cb0ccfac37d29f897 languageName: node linkType: hard @@ -5680,22 +5680,22 @@ __metadata: version: 2.0.0 resolution: "has-ansi@npm:2.0.0" dependencies: - ansi-regex: ^2.0.0 - checksum: 1b51daa0214440db171ff359d0a2d17bc20061164c57e76234f614c91dbd2a79ddd68dfc8ee73629366f7be45a6df5f2ea9de83f52e1ca24433f2cc78c35d8ec + ansi-regex: "npm:^2.0.0" + checksum: 10/1b51daa0214440db171ff359d0a2d17bc20061164c57e76234f614c91dbd2a79ddd68dfc8ee73629366f7be45a6df5f2ea9de83f52e1ca24433f2cc78c35d8ec languageName: node linkType: hard "has-bigints@npm:^1.0.2": version: 1.1.0 resolution: "has-bigints@npm:1.1.0" - checksum: 79730518ae02c77e4af6a1d1a0b6a2c3e1509785532771f9baf0241e83e36329542c3d7a0e723df8cbc85f74eff4f177828a2265a01ba576adbdc2d40d86538b + checksum: 10/90fb1b24d40d2472bcd1c8bd9dd479037ec240215869bdbff97b2be83acef57d28f7e96bdd003a21bed218d058b49097f4acc8821c05b1629cc5d48dd7bfcccd languageName: node linkType: hard "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" - checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + checksum: 10/261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad languageName: node linkType: hard @@ -5703,8 +5703,8 @@ __metadata: version: 1.0.2 resolution: "has-property-descriptors@npm:1.0.2" dependencies: - es-define-property: ^1.0.0 - checksum: fcbb246ea2838058be39887935231c6d5788babed499d0e9d0cc5737494c48aba4fe17ba1449e0d0fbbb1e36175442faa37f9c427ae357d6ccb1d895fbcd3de3 + es-define-property: "npm:^1.0.0" + checksum: 10/2d8c9ab8cebb572e3362f7d06139a4592105983d4317e68f7adba320fe6ddfc8874581e0971e899e633fd5f72e262830edce36d5a0bc863dad17ad20572484b2 languageName: node linkType: hard @@ -5712,15 +5712,15 @@ __metadata: version: 1.2.0 resolution: "has-proto@npm:1.2.0" dependencies: - dunder-proto: ^1.0.0 - checksum: f55010cb94caa56308041d77967c72a02ffd71386b23f9afa8447e58bc92d49d15c19bf75173713468e92fe3fb1680b03b115da39c21c32c74886d1d50d3e7ff + dunder-proto: "npm:^1.0.0" + checksum: 10/7eaed07728eaa28b77fadccabce53f30de467ff186a766872669a833ac2e87d8922b76a22cc58339d7e0277aefe98d6d00762113b27a97cdf65adcf958970935 languageName: node linkType: hard "has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": version: 1.1.0 resolution: "has-symbols@npm:1.1.0" - checksum: b2316c7302a0e8ba3aaba215f834e96c22c86f192e7310bdf689dd0e6999510c89b00fbc5742571507cebf25764d68c988b3a0da217369a73596191ac0ce694b + checksum: 10/959385c98696ebbca51e7534e0dc723ada325efa3475350951363cce216d27373e0259b63edb599f72eb94d6cde8577b4b2375f080b303947e560f85692834fa languageName: node linkType: hard @@ -5728,8 +5728,8 @@ __metadata: version: 1.0.2 resolution: "has-tostringtag@npm:1.0.2" dependencies: - has-symbols: ^1.0.3 - checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d + has-symbols: "npm:^1.0.3" + checksum: 10/c74c5f5ceee3c8a5b8bc37719840dc3749f5b0306d818974141dda2471a1a2ca6c8e46b9d6ac222c5345df7a901c9b6f350b1e6d62763fec877e26609a401bfe languageName: node linkType: hard @@ -5737,9 +5737,9 @@ __metadata: version: 5.2.2 resolution: "hasha@npm:5.2.2" dependencies: - is-stream: ^2.0.0 - type-fest: ^0.8.0 - checksum: 06cc474bed246761ff61c19d629977eb5f53fa817be4313a255a64ae0f433e831a29e83acb6555e3f4592b348497596f1d1653751008dda4f21c9c21ca60ac5a + is-stream: "npm:^2.0.0" + type-fest: "npm:^0.8.0" + checksum: 10/06cc474bed246761ff61c19d629977eb5f53fa817be4313a255a64ae0f433e831a29e83acb6555e3f4592b348497596f1d1653751008dda4f21c9c21ca60ac5a languageName: node linkType: hard @@ -5747,8 +5747,8 @@ __metadata: version: 2.0.2 resolution: "hasown@npm:2.0.2" dependencies: - function-bind: ^1.1.2 - checksum: e8516f776a15149ca6c6ed2ae3110c417a00b62260e222590e54aa367cbcd6ed99122020b37b7fbdf05748df57b265e70095d7bf35a47660587619b15ffb93db + function-bind: "npm:^1.1.2" + checksum: 10/7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a languageName: node linkType: hard @@ -5756,22 +5756,22 @@ __metadata: version: 2.3.6 resolution: "hast-util-to-jsx-runtime@npm:2.3.6" dependencies: - "@types/estree": ^1.0.0 - "@types/hast": ^3.0.0 - "@types/unist": ^3.0.0 - comma-separated-tokens: ^2.0.0 - devlop: ^1.0.0 - estree-util-is-identifier-name: ^3.0.0 - hast-util-whitespace: ^3.0.0 - mdast-util-mdx-expression: ^2.0.0 - mdast-util-mdx-jsx: ^3.0.0 - mdast-util-mdxjs-esm: ^2.0.0 - property-information: ^7.0.0 - space-separated-tokens: ^2.0.0 - style-to-js: ^1.0.0 - unist-util-position: ^5.0.0 - vfile-message: ^4.0.0 - checksum: 78c25465cf010f1004b22f0bbb3bd47793f458ead3561c779ea2b9204ceb1adc9c048592b0a15025df0c683a12ebe16a8bef008c06d9c0369f51116f64b35a2d + "@types/estree": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/unist": "npm:^3.0.0" + comma-separated-tokens: "npm:^2.0.0" + devlop: "npm:^1.0.0" + estree-util-is-identifier-name: "npm:^3.0.0" + hast-util-whitespace: "npm:^3.0.0" + mdast-util-mdx-expression: "npm:^2.0.0" + mdast-util-mdx-jsx: "npm:^3.0.0" + mdast-util-mdxjs-esm: "npm:^2.0.0" + property-information: "npm:^7.0.0" + space-separated-tokens: "npm:^2.0.0" + style-to-js: "npm:^1.0.0" + unist-util-position: "npm:^5.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10/111bd69f482952c7591cb4e1d3face25f1c18849b310a4d6cacc91e2d2cbc965d455fad35c059b8f0cfd762e933b826a7090b6f3098dece08307a6569de8f1d8 languageName: node linkType: hard @@ -5779,8 +5779,8 @@ __metadata: version: 3.0.0 resolution: "hast-util-whitespace@npm:3.0.0" dependencies: - "@types/hast": ^3.0.0 - checksum: 41d93ccce218ba935dc3c12acdf586193c35069489c8c8f50c2aa824c00dec94a3c78b03d1db40fa75381942a189161922e4b7bca700b3a2cc779634c351a1e4 + "@types/hast": "npm:^3.0.0" + checksum: 10/8c7e9eeb8131fc18702f3a42623eb6b0b09d470347aa8badacac70e6d91f79657ab8c6b57c4c6fee3658cff405fac30e816d1cdfb3ed1fbf6045d0a4555cf4d4 languageName: node linkType: hard @@ -5788,29 +5788,29 @@ __metadata: version: 3.3.2 resolution: "hoist-non-react-statics@npm:3.3.2" dependencies: - react-is: ^16.7.0 - checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 + react-is: "npm:^16.7.0" + checksum: 10/1acbe85f33e5a39f90c822ad4d28b24daeb60f71c545279431dc98c312cd28a54f8d64788e477fe21dc502b0e3cf58589ebe5c1ad22af27245370391c2d24ea6 languageName: node linkType: hard "html-escaper@npm:^2.0.0": version: 2.0.2 resolution: "html-escaper@npm:2.0.2" - checksum: d2df2da3ad40ca9ee3a39c5cc6475ef67c8f83c234475f24d8e9ce0dc80a2c82df8e1d6fa78ddd1e9022a586ea1bd247a615e80a5cd9273d90111ddda7d9e974 + checksum: 10/034d74029dcca544a34fb6135e98d427acd73019796ffc17383eaa3ec2fe1c0471dcbbc8f8ed39e46e86d43ccd753a160631615e4048285e313569609b66d5b7 languageName: node linkType: hard "html-url-attributes@npm:^3.0.0": version: 3.0.1 resolution: "html-url-attributes@npm:3.0.1" - checksum: 1ecbf9cae0c438d2802386710177b7bbf7e30cc61327e9f125eb32fca7302cd1e3ab45c441859cb1e7646109be322fc1163592ad4dfde9b14d09416d101a6573 + checksum: 10/494074c2f730c5c0e517aa1b10111fb36732534a2d2b70427582c4a615472b47da472cf3a17562cc653826d378d20960f2783e0400f4f7cf0c3c2d91c6188d13 languageName: node linkType: hard "http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" - checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + checksum: 10/362d5ed66b12ceb9c0a328fb31200b590ab1b02f4a254a697dc796850cc4385603e75f53ec59f768b2dad3bfa1464bd229f7de278d2899a0e3beffc634b6683f languageName: node linkType: hard @@ -5818,9 +5818,9 @@ __metadata: version: 7.0.2 resolution: "http-proxy-agent@npm:7.0.2" dependencies: - agent-base: ^7.1.0 - debug: ^4.3.4 - checksum: 670858c8f8f3146db5889e1fa117630910101db601fff7d5a8aa637da0abedf68c899f03d3451cac2f83bcc4c3d2dabf339b3aa00ff8080571cceb02c3ce02f3 + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10/d062acfa0cb82beeb558f1043c6ba770ea892b5fb7b28654dbc70ea2aeea55226dd34c02a294f6c1ca179a5aa483c4ea641846821b182edbd9cc5d89b54c6848 languageName: node linkType: hard @@ -5828,10 +5828,10 @@ __metadata: version: 1.4.0 resolution: "http-signature@npm:1.4.0" dependencies: - assert-plus: ^1.0.0 - jsprim: ^2.0.2 - sshpk: ^1.18.0 - checksum: f07f4cc0481e4461c68b9b7d1a25bf2ec4cef8e0061812b989c1e64f504b4b11f75f88022102aea05d25d47a87789599f1a310b1f8a56945a50c93e54c7ee076 + assert-plus: "npm:^1.0.0" + jsprim: "npm:^2.0.2" + sshpk: "npm:^1.18.0" + checksum: 10/f9f5eed4ac5db5e1ec6d00652680c7d8b76d553560017e34505c0c22c37abb2e6d22b9268ed4a8542aa9746852a2d64850531091e443393c9c8e0f4fd4174455 languageName: node linkType: hard @@ -5839,23 +5839,23 @@ __metadata: version: 7.0.6 resolution: "https-proxy-agent@npm:7.0.6" dependencies: - agent-base: ^7.1.2 - debug: 4 - checksum: b882377a120aa0544846172e5db021fa8afbf83fea2a897d397bd2ddd8095ab268c24bc462f40a15f2a8c600bf4aa05ce52927f70038d4014e68aefecfa94e8d + agent-base: "npm:^7.1.2" + debug: "npm:4" + checksum: 10/784b628cbd55b25542a9d85033bdfd03d4eda630fb8b3c9477959367f3be95dc476ed2ecbb9836c359c7c698027fc7b45723a302324433590f45d6c1706e8c13 languageName: node linkType: hard "human-signals@npm:^1.1.1": version: 1.1.1 resolution: "human-signals@npm:1.1.1" - checksum: d587647c9e8ec24e02821b6be7de5a0fc37f591f6c4e319b3054b43fd4c35a70a94c46fc74d8c1a43c47fde157d23acd7421f375e1c1365b09a16835b8300205 + checksum: 10/6a58224dffcef5588910b1028bda8623c9a7053460a1fe3367e61921a6b5f6b93aba30f323868a958f968d7de3f5f78421f11d4d9f7e9563b1bd2b00ed9a4deb languageName: node linkType: hard "human-signals@npm:^5.0.0": version: 5.0.0 resolution: "human-signals@npm:5.0.0" - checksum: 6504560d5ed91444f16bea3bd9dfc66110a339442084e56c3e7fa7bbdf3f406426d6563d662bdce67064b165eac31eeabfc0857ed170aaa612cf14ec9f9a464c + checksum: 10/30f8870d831cdcd2d6ec0486a7d35d49384996742052cee792854273fa9dd9e7d5db06bb7985d4953e337e10714e994e0302e90dc6848069171b05ec836d65b0 languageName: node linkType: hard @@ -5864,7 +5864,7 @@ __metadata: resolution: "husky@npm:9.1.7" bin: husky: bin.js - checksum: c2412753f15695db369634ba70f50f5c0b7e5cb13b673d0826c411ec1bd9ddef08c1dad89ea154f57da2521d2605bd64308af748749b27d08c5f563bcd89975f + checksum: 10/c2412753f15695db369634ba70f50f5c0b7e5cb13b673d0826c411ec1bd9ddef08c1dad89ea154f57da2521d2605bd64308af748749b27d08c5f563bcd89975f languageName: node linkType: hard @@ -5872,22 +5872,22 @@ __metadata: version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: - safer-buffer: ">= 2.1.2 < 3.0.0" - checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10/24e3292dd3dadaa81d065c6f8c41b274a47098150d444b96e5f53b4638a9a71482921ea6a91a1f59bb71d9796de25e04afd05919fa64c360347ba65d3766f10f languageName: node linkType: hard "ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": version: 1.2.1 resolution: "ieee754@npm:1.2.1" - checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e + checksum: 10/d9f2557a59036f16c282aaeb107832dc957a93d73397d89bbad4eb1130560560eb695060145e8e6b3b498b15ab95510226649a0b8f52ae06583575419fe10fc4 languageName: node linkType: hard "ignore@npm:^5.2.0, ignore@npm:^5.3.1": version: 5.3.2 resolution: "ignore@npm:5.3.2" - checksum: 2acfd32a573260ea522ea0bfeff880af426d68f6831f973129e2ba7363f422923cf53aab62f8369cbf4667c7b25b6f8a3761b34ecdb284ea18e87a5262a865be + checksum: 10/cceb6a457000f8f6a50e1196429750d782afce5680dd878aa4221bd79972d68b3a55b4b1458fc682be978f4d3c6a249046aa0880637367216444ab7b014cfc98 languageName: node linkType: hard @@ -5895,23 +5895,23 @@ __metadata: version: 3.3.1 resolution: "import-fresh@npm:3.3.1" dependencies: - parent-module: ^1.0.0 - resolve-from: ^4.0.0 - checksum: a06b19461b4879cc654d46f8a6244eb55eb053437afd4cbb6613cad6be203811849ed3e4ea038783092879487299fda24af932b86bdfff67c9055ba3612b8c87 + parent-module: "npm:^1.0.0" + resolve-from: "npm:^4.0.0" + checksum: 10/a06b19461b4879cc654d46f8a6244eb55eb053437afd4cbb6613cad6be203811849ed3e4ea038783092879487299fda24af932b86bdfff67c9055ba3612b8c87 languageName: node linkType: hard "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" - checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + checksum: 10/2d30b157a91fe1c1d7c6f653cbf263f039be6c5bfa959245a16d4ee191fc0f2af86c08545b6e6beeb041c56b574d2d5b9f95343d378ab49c0f37394d541e7fc8 languageName: node linkType: hard "indent-string@npm:^4.0.0": version: 4.0.0 resolution: "indent-string@npm:4.0.0" - checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + checksum: 10/cd3f5cbc9ca2d624c6a1f53f12e6b341659aba0e2d3254ae2b4464aaea8b4294cdb09616abbc59458f980531f2429784ed6a420d48d245bcad0811980c9efae9 languageName: node linkType: hard @@ -5919,37 +5919,37 @@ __metadata: version: 1.0.6 resolution: "inflight@npm:1.0.6" dependencies: - once: ^1.3.0 - wrappy: 1 - checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 10/d2ebd65441a38c8336c223d1b80b921b9fa737e37ea466fd7e253cb000c64ae1f17fa59e68130ef5bda92cfd8d36b83d37dab0eb0a4558bcfec8e8cdfd2dcb67 languageName: node linkType: hard "inherits@npm:2": version: 2.0.4 resolution: "inherits@npm:2.0.4" - checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + checksum: 10/cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521 languageName: node linkType: hard "ini@npm:2.0.0": version: 2.0.0 resolution: "ini@npm:2.0.0" - checksum: e7aadc5fb2e4aefc666d74ee2160c073995a4061556b1b5b4241ecb19ad609243b9cceafe91bae49c219519394bbd31512516cb22a3b1ca6e66d869e0447e84e + checksum: 10/04e24ba05c4f6947e15560824e153b4610bceea2f5a3ab68651d221a4aab3c77d4e3e90a917ebc8bf5ad71a30a8575de56c39d6b4c4b1375a28016b9f3625f9d languageName: node linkType: hard "ini@npm:^1.3.4": version: 1.3.8 resolution: "ini@npm:1.3.8" - checksum: dfd98b0ca3a4fc1e323e38a6c8eb8936e31a97a918d3b377649ea15bdb15d481207a0dda1021efbd86b464cae29a0d33c1d7dcaf6c5672bee17fa849bc50a1b3 + checksum: 10/314ae176e8d4deb3def56106da8002b462221c174ddb7ce0c49ee72c8cd1f9044f7b10cc555a7d8850982c3b9ca96fc212122749f5234bc2b6fb05fb942ed566 languageName: node linkType: hard "inline-style-parser@npm:0.2.4": version: 0.2.4 resolution: "inline-style-parser@npm:0.2.4" - checksum: 5df20a21dd8d67104faaae29774bb50dc9690c75bc5c45dac107559670a5530104ead72c4cf54f390026e617e7014c65b3d68fb0bb573a37c4d1f94e9c36e1ca + checksum: 10/80814479d1f3c9cbd102f9de4cd6558cf43cc2e48640e81c4371c3634f1e8b6dfeb2f21063cfa31d46cc83e834c20cd59ed9eeed9bfd45ef5bc02187ad941faf languageName: node linkType: hard @@ -5957,10 +5957,10 @@ __metadata: version: 1.1.0 resolution: "internal-slot@npm:1.1.0" dependencies: - es-errors: ^1.3.0 - hasown: ^2.0.2 - side-channel: ^1.1.0 - checksum: 8e0991c2d048cc08dab0a91f573c99f6a4215075887517ea4fa32203ce8aea60fa03f95b177977fa27eb502e5168366d0f3e02c762b799691411d49900611861 + es-errors: "npm:^1.3.0" + hasown: "npm:^2.0.2" + side-channel: "npm:^1.1.0" + checksum: 10/1d5219273a3dab61b165eddf358815eefc463207db33c20fcfca54717da02e3f492003757721f972fd0bf21e4b426cab389c5427b99ceea4b8b670dc88ee6d4a languageName: node linkType: hard @@ -5968,16 +5968,16 @@ __metadata: version: 9.0.5 resolution: "ip-address@npm:9.0.5" dependencies: - jsbn: 1.1.0 - sprintf-js: ^1.1.3 - checksum: aa15f12cfd0ef5e38349744e3654bae649a34c3b10c77a674a167e99925d1549486c5b14730eebce9fea26f6db9d5e42097b00aa4f9f612e68c79121c71652dc + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10/1ed81e06721af012306329b31f532b5e24e00cb537be18ddc905a84f19fe8f83a09a1699862bf3a1ec4b9dea93c55a3fa5faf8b5ea380431469df540f38b092c languageName: node linkType: hard "is-alphabetical@npm:^2.0.0": version: 2.0.1 resolution: "is-alphabetical@npm:2.0.1" - checksum: 56207db8d9de0850f0cd30f4966bf731eb82cedfe496cbc2e97e7c3bacaf66fc54a972d2d08c0d93bb679cb84976a05d24c5ad63de56fabbfc60aadae312edaa + checksum: 10/56207db8d9de0850f0cd30f4966bf731eb82cedfe496cbc2e97e7c3bacaf66fc54a972d2d08c0d93bb679cb84976a05d24c5ad63de56fabbfc60aadae312edaa languageName: node linkType: hard @@ -5985,9 +5985,9 @@ __metadata: version: 2.0.1 resolution: "is-alphanumerical@npm:2.0.1" dependencies: - is-alphabetical: ^2.0.0 - is-decimal: ^2.0.0 - checksum: 87acc068008d4c9c4e9f5bd5e251041d42e7a50995c77b1499cf6ed248f971aadeddb11f239cabf09f7975ee58cac7a48ffc170b7890076d8d227b24a68663c9 + is-alphabetical: "npm:^2.0.0" + is-decimal: "npm:^2.0.0" + checksum: 10/87acc068008d4c9c4e9f5bd5e251041d42e7a50995c77b1499cf6ed248f971aadeddb11f239cabf09f7975ee58cac7a48ffc170b7890076d8d227b24a68663c9 languageName: node linkType: hard @@ -5995,17 +5995,17 @@ __metadata: version: 3.0.5 resolution: "is-array-buffer@npm:3.0.5" dependencies: - call-bind: ^1.0.8 - call-bound: ^1.0.3 - get-intrinsic: ^1.2.6 - checksum: f137a2a6e77af682cdbffef1e633c140cf596f72321baf8bba0f4ef22685eb4339dde23dfe9e9ca430b5f961dee4d46577dcf12b792b68518c8449b134fb9156 + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.6" + checksum: 10/ef1095c55b963cd0dcf6f88a113e44a0aeca91e30d767c475e7d746d28d1195b10c5076b94491a7a0cd85020ca6a4923070021d74651d093dc909e9932cf689b languageName: node linkType: hard "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" - checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f + checksum: 10/73ced84fa35e59e2c57da2d01e12cd01479f381d7f122ce41dcbb713f09dbfc651315832cd2bf8accba7681a69e4d6f1e03941d94dd10040d415086360e7005e languageName: node linkType: hard @@ -6013,12 +6013,12 @@ __metadata: version: 2.1.1 resolution: "is-async-function@npm:2.1.1" dependencies: - async-function: ^1.0.0 - call-bound: ^1.0.3 - get-proto: ^1.0.1 - has-tostringtag: ^1.0.2 - safe-regex-test: ^1.1.0 - checksum: 9bece45133da26636488ca127d7686b85ad3ca18927e2850cff1937a650059e90be1c71a48623f8791646bb7a241b0cabf602a0b9252dcfa5ab273f2399000e6 + async-function: "npm:^1.0.0" + call-bound: "npm:^1.0.3" + get-proto: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + safe-regex-test: "npm:^1.1.0" + checksum: 10/7c2ac7efdf671e03265e74a043bcb1c0a32e226bc2a42dfc5ec8644667df668bbe14b91c08e6c1414f392f8cf86cd1d489b3af97756e2c7a49dd1ba63fd40ca6 languageName: node linkType: hard @@ -6026,8 +6026,8 @@ __metadata: version: 1.1.0 resolution: "is-bigint@npm:1.1.0" dependencies: - has-bigints: ^1.0.2 - checksum: ee1544f0e664f253306786ed1dce494b8cf242ef415d6375d8545b4d8816b0f054bd9f948a8988ae2c6325d1c28260dd02978236b2f7b8fb70dfc4838a6c9fa7 + has-bigints: "npm:^1.0.2" + checksum: 10/10cf327310d712fe227cfaa32d8b11814c214392b6ac18c827f157e1e85363cf9c8e2a22df526689bd5d25e53b58cc110894787afb54e138e7c504174dba15fd languageName: node linkType: hard @@ -6035,8 +6035,8 @@ __metadata: version: 2.1.0 resolution: "is-binary-path@npm:2.1.0" dependencies: - binary-extensions: ^2.0.0 - checksum: 84192eb88cff70d320426f35ecd63c3d6d495da9d805b19bc65b518984b7c0760280e57dbf119b7e9be6b161784a5a673ab2c6abe83abb5198a432232ad5b35c + binary-extensions: "npm:^2.0.0" + checksum: 10/078e51b4f956c2c5fd2b26bb2672c3ccf7e1faff38e0ebdba45612265f4e3d9fc3127a1fa8370bbf09eab61339203c3d3b7af5662cbf8be4030f8fac37745b0e languageName: node linkType: hard @@ -6044,9 +6044,9 @@ __metadata: version: 1.2.2 resolution: "is-boolean-object@npm:1.2.2" dependencies: - call-bound: ^1.0.3 - has-tostringtag: ^1.0.2 - checksum: 0415b181e8f1bfd5d3f8a20f8108e64d372a72131674eea9c2923f39d065b6ad08d654765553bdbffbd92c3746f1007986c34087db1bd89a31f71be8359ccdaa + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10/051fa95fdb99d7fbf653165a7e6b2cba5d2eb62f7ffa81e793a790f3fb5366c91c1b7b6af6820aa2937dd86c73aa3ca9d9ca98f500988457b1c59692c52ba911 languageName: node linkType: hard @@ -6054,15 +6054,15 @@ __metadata: version: 2.0.0 resolution: "is-bun-module@npm:2.0.0" dependencies: - semver: ^7.7.1 - checksum: e75bd87cb1aaff7c97cf085509669559a713f741a43b4fd5979cb44c5c0c16c05670ce5f23fc22337d1379211fac118c525c5ed73544076ddaf181c1c21ace35 + semver: "npm:^7.7.1" + checksum: 10/cded5a1a58368b847872d08617975d620ad94426d76a932f3e08d55b4574d199e0a62a4fb024fa2dc444200b71719eb0bffc5d3d1e1cc82e29b293bb8d66a990 languageName: node linkType: hard "is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" - checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac + checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9 languageName: node linkType: hard @@ -6070,10 +6070,10 @@ __metadata: version: 3.0.1 resolution: "is-ci@npm:3.0.1" dependencies: - ci-info: ^3.2.0 + ci-info: "npm:^3.2.0" bin: is-ci: bin.js - checksum: 192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e + checksum: 10/192c66dc7826d58f803ecae624860dccf1899fc1f3ac5505284c0a5cf5f889046ffeb958fa651e5725d5705c5bcb14f055b79150ea5fcad7456a9569de60260e languageName: node linkType: hard @@ -6081,8 +6081,8 @@ __metadata: version: 2.16.1 resolution: "is-core-module@npm:2.16.1" dependencies: - hasown: ^2.0.2 - checksum: 6ec5b3c42d9cbf1ac23f164b16b8a140c3cec338bf8f884c076ca89950c7cc04c33e78f02b8cae7ff4751f3247e3174b2330f1fe4de194c7210deb8b1ea316a7 + hasown: "npm:^2.0.2" + checksum: 10/452b2c2fb7f889cbbf7e54609ef92cf6c24637c568acc7e63d166812a0fb365ae8a504c333a29add8bdb1686704068caa7f4e4b639b650dde4f00a038b8941fb languageName: node linkType: hard @@ -6090,10 +6090,10 @@ __metadata: version: 1.0.2 resolution: "is-data-view@npm:1.0.2" dependencies: - call-bound: ^1.0.2 - get-intrinsic: ^1.2.6 - is-typed-array: ^1.1.13 - checksum: 31600dd19932eae7fd304567e465709ffbfa17fa236427c9c864148e1b54eb2146357fcf3aed9b686dee13c217e1bb5a649cb3b9c479e1004c0648e9febde1b2 + call-bound: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.6" + is-typed-array: "npm:^1.1.13" + checksum: 10/357e9a48fa38f369fd6c4c3b632a3ab2b8adca14997db2e4b3fe94c4cd0a709af48e0fb61b02c64a90c0dd542fd489d49c2d03157b05ae6c07f5e4dec9e730a8 languageName: node linkType: hard @@ -6101,23 +6101,23 @@ __metadata: version: 1.1.0 resolution: "is-date-object@npm:1.1.0" dependencies: - call-bound: ^1.0.2 - has-tostringtag: ^1.0.2 - checksum: d6c36ab9d20971d65f3fc64cef940d57a4900a2ac85fb488a46d164c2072a33da1cb51eefcc039e3e5c208acbce343d3480b84ab5ff0983f617512da2742562a + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10/3a811b2c3176fb31abee1d23d3dc78b6c65fd9c07d591fcb67553cab9e7f272728c3dd077d2d738b53f9a2103255b0a6e8dfc9568a7805c56a78b2563e8d1dec languageName: node linkType: hard "is-decimal@npm:^2.0.0": version: 2.0.1 resolution: "is-decimal@npm:2.0.1" - checksum: 97132de7acdce77caa7b797632970a2ecd649a88e715db0e4dbc00ab0708b5e7574ba5903962c860cd4894a14fd12b100c0c4ac8aed445cf6f55c6cf747a4158 + checksum: 10/97132de7acdce77caa7b797632970a2ecd649a88e715db0e4dbc00ab0708b5e7574ba5903962c860cd4894a14fd12b100c0c4ac8aed445cf6f55c6cf747a4158 languageName: node linkType: hard "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" - checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + checksum: 10/df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 languageName: node linkType: hard @@ -6125,22 +6125,22 @@ __metadata: version: 1.1.1 resolution: "is-finalizationregistry@npm:1.1.1" dependencies: - call-bound: ^1.0.3 - checksum: 38c646c506e64ead41a36c182d91639833311970b6b6c6268634f109eef0a1a9d2f1f2e499ef4cb43c744a13443c4cdd2f0812d5afdcee5e9b65b72b28c48557 + call-bound: "npm:^1.0.3" + checksum: 10/0bfb145e9a1ba852ddde423b0926d2169ae5fe9e37882cde9e8f69031281a986308df4d982283e152396e88b86562ed2256cbaa5e6390fb840a4c25ab54b8a80 languageName: node linkType: hard "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + checksum: 10/44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 languageName: node linkType: hard "is-fullwidth-code-point@npm:^4.0.0": version: 4.0.0 resolution: "is-fullwidth-code-point@npm:4.0.0" - checksum: 8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d + checksum: 10/8ae89bf5057bdf4f57b346fb6c55e9c3dd2549983d54191d722d5c739397a903012cc41a04ee3403fd872e811243ef91a7c5196da7b5841dc6b6aae31a264a8d languageName: node linkType: hard @@ -6148,8 +6148,8 @@ __metadata: version: 5.0.0 resolution: "is-fullwidth-code-point@npm:5.0.0" dependencies: - get-east-asian-width: ^1.0.0 - checksum: 8dfb2d2831b9e87983c136f5c335cd9d14c1402973e357a8ff057904612ed84b8cba196319fabedf9aefe4639e14fe3afe9d9966d1d006ebeb40fe1fed4babe5 + get-east-asian-width: "npm:^1.0.0" + checksum: 10/8dfb2d2831b9e87983c136f5c335cd9d14c1402973e357a8ff057904612ed84b8cba196319fabedf9aefe4639e14fe3afe9d9966d1d006ebeb40fe1fed4babe5 languageName: node linkType: hard @@ -6157,11 +6157,11 @@ __metadata: version: 1.1.0 resolution: "is-generator-function@npm:1.1.0" dependencies: - call-bound: ^1.0.3 - get-proto: ^1.0.0 - has-tostringtag: ^1.0.2 - safe-regex-test: ^1.1.0 - checksum: f7f7276131bdf7e28169b86ac55a5b080012a597f9d85a0cbef6fe202a7133fa450a3b453e394870e3cb3685c5a764c64a9f12f614684b46969b1e6f297bed6b + call-bound: "npm:^1.0.3" + get-proto: "npm:^1.0.0" + has-tostringtag: "npm:^1.0.2" + safe-regex-test: "npm:^1.1.0" + checksum: 10/5906ff51a856a5fbc6b90a90fce32040b0a6870da905f98818f1350f9acadfc9884f7c3dec833fce04b83dd883937b86a190b6593ede82e8b1af8b6c4ecf7cbd languageName: node linkType: hard @@ -6169,15 +6169,15 @@ __metadata: version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: - is-extglob: ^2.1.1 - checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 + is-extglob: "npm:^2.1.1" + checksum: 10/3ed74f2b0cdf4f401f38edb0442ddfde3092d79d7d35c9919c86641efdbcbb32e45aa3c0f70ce5eecc946896cd5a0f26e4188b9f2b881876f7cb6c505b82da11 languageName: node linkType: hard "is-hexadecimal@npm:^2.0.0": version: 2.0.1 resolution: "is-hexadecimal@npm:2.0.1" - checksum: 66a2ea85994c622858f063f23eda506db29d92b52580709eb6f4c19550552d4dcf3fb81952e52f7cf972097237959e00adc7bb8c9400cd12886e15bf06145321 + checksum: 10/66a2ea85994c622858f063f23eda506db29d92b52580709eb6f4c19550552d4dcf3fb81952e52f7cf972097237959e00adc7bb8c9400cd12886e15bf06145321 languageName: node linkType: hard @@ -6185,16 +6185,16 @@ __metadata: version: 0.4.0 resolution: "is-installed-globally@npm:0.4.0" dependencies: - global-dirs: ^3.0.0 - is-path-inside: ^3.0.2 - checksum: 3359840d5982d22e9b350034237b2cda2a12bac1b48a721912e1ab8e0631dd07d45a2797a120b7b87552759a65ba03e819f1bd63f2d7ab8657ec0b44ee0bf399 + global-dirs: "npm:^3.0.0" + is-path-inside: "npm:^3.0.2" + checksum: 10/5294d21c82cb9beedd693ce1dfb12117c4db36d6e35edc9dc6bf06cb300d23c96520d1bfb063386b054268ae3d7255c3f09393b52218cc26ace99b217bf37c93 languageName: node linkType: hard "is-map@npm:^2.0.3": version: 2.0.3 resolution: "is-map@npm:2.0.3" - checksum: e6ce5f6380f32b141b3153e6ba9074892bbbbd655e92e7ba5ff195239777e767a976dcd4e22f864accaf30e53ebf961ab1995424aef91af68788f0591b7396cc + checksum: 10/8de7b41715b08bcb0e5edb0fb9384b80d2d5bcd10e142188f33247d19ff078abaf8e9b6f858e2302d8d05376a26a55cd23a3c9f8ab93292b02fcd2cc9e4e92bb languageName: node linkType: hard @@ -6202,30 +6202,30 @@ __metadata: version: 1.1.1 resolution: "is-number-object@npm:1.1.1" dependencies: - call-bound: ^1.0.3 - has-tostringtag: ^1.0.2 - checksum: 6517f0a0e8c4b197a21afb45cd3053dc711e79d45d8878aa3565de38d0102b130ca8732485122c7b336e98c27dacd5236854e3e6526e0eb30cae64956535662f + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10/a5922fb8779ab1ea3b8a9c144522b3d0bea5d9f8f23f7a72470e61e1e4df47714e28e0154ac011998b709cce260c3c9447ad3cd24a96c2f2a0abfdb2cbdc76c8 languageName: node linkType: hard "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" - checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a + checksum: 10/6a6c3383f68afa1e05b286af866017c78f1226d43ac8cb064e115ff9ed85eb33f5c4f7216c96a71e4dfea289ef52c5da3aef5bbfade8ffe47a0465d70c0c8e86 languageName: node linkType: hard "is-path-inside@npm:^3.0.2": version: 3.0.3 resolution: "is-path-inside@npm:3.0.3" - checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + checksum: 10/abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 languageName: node linkType: hard "is-plain-obj@npm:^4.0.0": version: 4.1.0 resolution: "is-plain-obj@npm:4.1.0" - checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce + checksum: 10/6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce languageName: node linkType: hard @@ -6233,18 +6233,18 @@ __metadata: version: 1.2.1 resolution: "is-regex@npm:1.2.1" dependencies: - call-bound: ^1.0.2 - gopd: ^1.2.0 - has-tostringtag: ^1.0.2 - hasown: ^2.0.2 - checksum: 99ee0b6d30ef1bb61fa4b22fae7056c6c9b3c693803c0c284ff7a8570f83075a7d38cda53b06b7996d441215c27895ea5d1af62124562e13d91b3dbec41a5e13 + call-bound: "npm:^1.0.2" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10/c42b7efc5868a5c9a4d8e6d3e9816e8815c611b09535c00fead18a1138455c5cb5e1887f0023a467ad3f9c419d62ba4dc3d9ba8bafe55053914d6d6454a945d2 languageName: node linkType: hard "is-set@npm:^2.0.3": version: 2.0.3 resolution: "is-set@npm:2.0.3" - checksum: 36e3f8c44bdbe9496c9689762cc4110f6a6a12b767c5d74c0398176aa2678d4467e3bf07595556f2dba897751bde1422480212b97d973c7b08a343100b0c0dfe + checksum: 10/5685df33f0a4a6098a98c72d94d67cad81b2bc72f1fb2091f3d9283c4a1c582123cd709145b02a9745f0ce6b41e3e43f1c944496d1d74d4ea43358be61308669 languageName: node linkType: hard @@ -6252,22 +6252,22 @@ __metadata: version: 1.0.4 resolution: "is-shared-array-buffer@npm:1.0.4" dependencies: - call-bound: ^1.0.3 - checksum: 1611fedc175796eebb88f4dfc393dd969a4a8e6c69cadaff424ee9d4464f9f026399a5f84a90f7c62d6d7ee04e3626a912149726de102b0bd6c1ee6a9868fa5a + call-bound: "npm:^1.0.3" + checksum: 10/0380d7c60cc692856871526ffcd38a8133818a2ee42d47bb8008248a0cd2121d8c8b5f66b6da3cac24bc5784553cacb6faaf678f66bc88c6615b42af2825230e languageName: node linkType: hard "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" - checksum: b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + checksum: 10/b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 languageName: node linkType: hard "is-stream@npm:^3.0.0": version: 3.0.0 resolution: "is-stream@npm:3.0.0" - checksum: 172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 + checksum: 10/172093fe99119ffd07611ab6d1bcccfe8bc4aa80d864b15f43e63e54b7abc71e779acd69afdb854c4e2a67fdc16ae710e370eda40088d1cfc956a50ed82d8f16 languageName: node linkType: hard @@ -6275,9 +6275,9 @@ __metadata: version: 1.1.1 resolution: "is-string@npm:1.1.1" dependencies: - call-bound: ^1.0.3 - has-tostringtag: ^1.0.2 - checksum: 2eeaaff605250f5e836ea3500d33d1a5d3aa98d008641d9d42fb941e929ffd25972326c2ef912987e54c95b6f10416281aaf1b35cdf81992cfb7524c5de8e193 + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10/5277cb9e225a7cc8a368a72623b44a99f2cfa139659c6b203553540681ad4276bfc078420767aad0e73eef5f0bd07d4abf39a35d37ec216917879d11cebc1f8b languageName: node linkType: hard @@ -6285,10 +6285,10 @@ __metadata: version: 1.1.1 resolution: "is-symbol@npm:1.1.1" dependencies: - call-bound: ^1.0.2 - has-symbols: ^1.1.0 - safe-regex-test: ^1.1.0 - checksum: bfafacf037af6f3c9d68820b74be4ae8a736a658a3344072df9642a090016e281797ba8edbeb1c83425879aae55d1cb1f30b38bf132d703692b2570367358032 + call-bound: "npm:^1.0.2" + has-symbols: "npm:^1.1.0" + safe-regex-test: "npm:^1.1.0" + checksum: 10/db495c0d8cd0a7a66b4f4ef7fccee3ab5bd954cb63396e8ac4d32efe0e9b12fdfceb851d6c501216a71f4f21e5ff20fc2ee845a3d52d455e021c466ac5eb2db2 languageName: node linkType: hard @@ -6296,29 +6296,29 @@ __metadata: version: 1.1.15 resolution: "is-typed-array@npm:1.1.15" dependencies: - which-typed-array: ^1.1.16 - checksum: ea7cfc46c282f805d19a9ab2084fd4542fed99219ee9dbfbc26284728bd713a51eac66daa74eca00ae0a43b61322920ba334793607dc39907465913e921e0892 + which-typed-array: "npm:^1.1.16" + checksum: 10/e8cf60b9ea85667097a6ad68c209c9722cfe8c8edf04d6218366469e51944c5cc25bae45ffb845c23f811d262e4314d3b0168748eb16711aa34d12724cdf0735 languageName: node linkType: hard "is-typedarray@npm:^1.0.0, is-typedarray@npm:~1.0.0": version: 1.0.0 resolution: "is-typedarray@npm:1.0.0" - checksum: 3508c6cd0a9ee2e0df2fa2e9baabcdc89e911c7bd5cf64604586697212feec525aa21050e48affb5ffc3df20f0f5d2e2cf79b08caa64e1ccc9578e251763aef7 + checksum: 10/4b433bfb0f9026f079f4eb3fbaa4ed2de17c9995c3a0b5c800bec40799b4b2a8b4e051b1ada77749deb9ded4ae52fe2096973f3a93ff83df1a5a7184a669478c languageName: node linkType: hard "is-unicode-supported@npm:^0.1.0": version: 0.1.0 resolution: "is-unicode-supported@npm:0.1.0" - checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 + checksum: 10/a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 languageName: node linkType: hard "is-weakmap@npm:^2.0.2": version: 2.0.2 resolution: "is-weakmap@npm:2.0.2" - checksum: f36aef758b46990e0d3c37269619c0a08c5b29428c0bb11ecba7f75203442d6c7801239c2f31314bc79199217ef08263787f3837d9e22610ad1da62970d6616d + checksum: 10/a7b7e23206c542dcf2fa0abc483142731788771527e90e7e24f658c0833a0d91948a4f7b30d78f7a65255a48512e41a0288b778ba7fc396137515c12e201fd11 languageName: node linkType: hard @@ -6326,8 +6326,8 @@ __metadata: version: 1.1.1 resolution: "is-weakref@npm:1.1.1" dependencies: - call-bound: ^1.0.3 - checksum: 1769b9aed5d435a3a989ffc18fc4ad1947d2acdaf530eb2bd6af844861b545047ea51102f75901f89043bed0267ed61d914ee21e6e8b9aa734ec201cdfc0726f + call-bound: "npm:^1.0.3" + checksum: 10/543506fd8259038b371bb083aac25b16cb4fd8b12fc58053aa3d45ac28dfd001cd5c6dffbba7aeea4213c74732d46b6cb2cfb5b412eed11f2db524f3f97d09a0 languageName: node linkType: hard @@ -6335,51 +6335,51 @@ __metadata: version: 2.0.4 resolution: "is-weakset@npm:2.0.4" dependencies: - call-bound: ^1.0.3 - get-intrinsic: ^1.2.6 - checksum: 5c6c8415a06065d78bdd5e3a771483aa1cd928df19138aa73c4c51333226f203f22117b4325df55cc8b3085a6716870a320c2d757efee92d7a7091a039082041 + call-bound: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.6" + checksum: 10/1d5e1d0179beeed3661125a6faa2e59bfb48afda06fc70db807f178aa0ebebc3758fb6358d76b3d528090d5ef85148c345dcfbf90839592fe293e3e5e82f2134 languageName: node linkType: hard "is-windows@npm:^1.0.2": version: 1.0.2 resolution: "is-windows@npm:1.0.2" - checksum: 438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 + checksum: 10/438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 languageName: node linkType: hard "isarray@npm:^2.0.5": version: 2.0.5 resolution: "isarray@npm:2.0.5" - checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a + checksum: 10/1d8bc7911e13bb9f105b1b3e0b396c787a9e63046af0b8fe0ab1414488ab06b2b099b87a2d8a9e31d21c9a6fad773c7fc8b257c4880f2d957274479d28ca3414 languageName: node linkType: hard "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" - checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + checksum: 10/7c9f715c03aff08f35e98b1fadae1b9267b38f0615d501824f9743f3aab99ef10e303ce7db3f186763a0b70a19de5791ebfc854ff884d5a8c4d92211f642ec92 languageName: node linkType: hard "isexe@npm:^3.1.1": version: 3.1.1 resolution: "isexe@npm:3.1.1" - checksum: 7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + checksum: 10/7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e languageName: node linkType: hard "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" - checksum: 1eb2fe63a729f7bdd8a559ab552c69055f4f48eb5c2f03724430587c6f450783c8f1cd936c1c952d0a927925180fcc892ebd5b174236cf1065d4bd5bdb37e963 + checksum: 10/22d9c181015226d4534a227539256897bbbcb7edd1066ca4fc4d3a06dbd976325dfdd16b3983c7d236a89f256805c1a685a772e0364e98873d3819b064ad35a1 languageName: node linkType: hard "istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0, istanbul-lib-coverage@npm:^3.2.2": version: 3.2.2 resolution: "istanbul-lib-coverage@npm:3.2.2" - checksum: 2367407a8d13982d8f7a859a35e7f8dd5d8f75aae4bb5484ede3a9ea1b426dc245aff28b976a2af48ee759fdd9be374ce2bd2669b644f31e76c5f46a2e29a831 + checksum: 10/40bbdd1e937dfd8c830fa286d0f665e81b7a78bdabcd4565f6d5667c99828bda3db7fb7ac6b96a3e2e8a2461ddbc5452d9f8bc7d00cb00075fa6a3e99f5b6a81 languageName: node linkType: hard @@ -6387,8 +6387,8 @@ __metadata: version: 3.0.0 resolution: "istanbul-lib-hook@npm:3.0.0" dependencies: - append-transform: ^2.0.0 - checksum: ac4d0a0751e959cfe4c95d817df5f1f573f9b0cf892552e60d81785654291391fac1ceb667f13bb17fcc2ef23b74c89ed8cf1c6148c833c8596a2b920b079101 + append-transform: "npm:^2.0.0" + checksum: 10/512a996cce6b1b9003ba59eab42299dd1527176c01f3ceb7b16bf68f437eeab4958f9df7df0a6b258d45d5f1a2ca2a1bdb915970711e1a5d7b2de911c582f721 languageName: node linkType: hard @@ -6396,11 +6396,11 @@ __metadata: version: 4.0.3 resolution: "istanbul-lib-instrument@npm:4.0.3" dependencies: - "@babel/core": ^7.7.5 - "@istanbuljs/schema": ^0.1.2 - istanbul-lib-coverage: ^3.0.0 - semver: ^6.3.0 - checksum: fa1171d3022b1bb8f6a734042620ac5d9ee7dc80f3065a0bb12863e9f0494d0eefa3d86608fcc0254ab2765d29d7dad8bdc42e5f8df2f9a1fbe85ccc59d76cb9 + "@babel/core": "npm:^7.7.5" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-coverage: "npm:^3.0.0" + semver: "npm:^6.3.0" + checksum: 10/6e04ab365b95644ec4954b645f901be90be8ad81233d6df536300cdafcf70dd1ed22a912ceda38b32053c7fc9830c44cd23550c603f493329a8532073d1d6c42 languageName: node linkType: hard @@ -6408,12 +6408,12 @@ __metadata: version: 6.0.3 resolution: "istanbul-lib-instrument@npm:6.0.3" dependencies: - "@babel/core": ^7.23.9 - "@babel/parser": ^7.23.9 - "@istanbuljs/schema": ^0.1.3 - istanbul-lib-coverage: ^3.2.0 - semver: ^7.5.4 - checksum: 74104c60c65c4fa0e97cc76f039226c356123893929f067bfad5f86fe839e08f5d680354a68fead3bc9c1e2f3fa6f3f53cded70778e821d911e851d349f3545a + "@babel/core": "npm:^7.23.9" + "@babel/parser": "npm:^7.23.9" + "@istanbuljs/schema": "npm:^0.1.3" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^7.5.4" + checksum: 10/aa5271c0008dfa71b6ecc9ba1e801bf77b49dc05524e8c30d58aaf5b9505e0cd12f25f93165464d4266a518c5c75284ecb598fbd89fec081ae77d2c9d3327695 languageName: node linkType: hard @@ -6421,13 +6421,13 @@ __metadata: version: 2.0.3 resolution: "istanbul-lib-processinfo@npm:2.0.3" dependencies: - archy: ^1.0.0 - cross-spawn: ^7.0.3 - istanbul-lib-coverage: ^3.2.0 - p-map: ^3.0.0 - rimraf: ^3.0.0 - uuid: ^8.3.2 - checksum: 501729e809a4e98bbb9f62f89cae924be81655a7ff8118661f8834a10bb89ed5d3a5099ea0b6555e1a8ee15a0099cb64f7170b89aae155ab2afacfe8dd94421a + archy: "npm:^1.0.0" + cross-spawn: "npm:^7.0.3" + istanbul-lib-coverage: "npm:^3.2.0" + p-map: "npm:^3.0.0" + rimraf: "npm:^3.0.0" + uuid: "npm:^8.3.2" + checksum: 10/60e7b3441687249460f34a817c7204967b07830a69b6e430e60a45615319c2ab4e2b2eaeb8b3decf549fccd419cd600d21173961632229967608d7d1b194f39e languageName: node linkType: hard @@ -6435,10 +6435,10 @@ __metadata: version: 3.0.1 resolution: "istanbul-lib-report@npm:3.0.1" dependencies: - istanbul-lib-coverage: ^3.0.0 - make-dir: ^4.0.0 - supports-color: ^7.1.0 - checksum: fd17a1b879e7faf9bb1dc8f80b2a16e9f5b7b8498fe6ed580a618c34df0bfe53d2abd35bf8a0a00e628fb7405462576427c7df20bbe4148d19c14b431c974b21 + istanbul-lib-coverage: "npm:^3.0.0" + make-dir: "npm:^4.0.0" + supports-color: "npm:^7.1.0" + checksum: 10/86a83421ca1cf2109a9f6d193c06c31ef04a45e72a74579b11060b1e7bb9b6337a4e6f04abfb8857e2d569c271273c65e855ee429376a0d7c91ad91db42accd1 languageName: node linkType: hard @@ -6446,10 +6446,10 @@ __metadata: version: 4.0.1 resolution: "istanbul-lib-source-maps@npm:4.0.1" dependencies: - debug: ^4.1.1 - istanbul-lib-coverage: ^3.0.0 - source-map: ^0.6.1 - checksum: 21ad3df45db4b81852b662b8d4161f6446cd250c1ddc70ef96a585e2e85c26ed7cd9c2a396a71533cfb981d1a645508bc9618cae431e55d01a0628e7dec62ef2 + debug: "npm:^4.1.1" + istanbul-lib-coverage: "npm:^3.0.0" + source-map: "npm:^0.6.1" + checksum: 10/5526983462799aced011d776af166e350191b816821ea7bcf71cab3e5272657b062c47dc30697a22a43656e3ced78893a42de677f9ccf276a28c913190953b82 languageName: node linkType: hard @@ -6457,9 +6457,9 @@ __metadata: version: 3.1.7 resolution: "istanbul-reports@npm:3.1.7" dependencies: - html-escaper: ^2.0.0 - istanbul-lib-report: ^3.0.0 - checksum: 2072db6e07bfbb4d0eb30e2700250636182398c1af811aea5032acb219d2080f7586923c09fa194029efd6b92361afb3dcbe1ebcc3ee6651d13340f7c6c4ed95 + html-escaper: "npm:^2.0.0" + istanbul-lib-report: "npm:^3.0.0" + checksum: 10/f1faaa4684efaf57d64087776018d7426312a59aa6eeb4e0e3a777347d23cd286ad18f427e98f0e3dee666103d7404c9d7abc5f240406a912fa16bd6695437fa languageName: node linkType: hard @@ -6467,20 +6467,20 @@ __metadata: version: 1.1.5 resolution: "iterator.prototype@npm:1.1.5" dependencies: - define-data-property: ^1.1.4 - es-object-atoms: ^1.0.0 - get-intrinsic: ^1.2.6 - get-proto: ^1.0.0 - has-symbols: ^1.1.0 - set-function-name: ^2.0.2 - checksum: 7db23c42629ba4790e6e15f78b555f41dbd08818c85af306988364bd19d86716a1187cb333444f3a0036bfc078a0e9cb7ec67fef3a61662736d16410d7f77869 + define-data-property: "npm:^1.1.4" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.6" + get-proto: "npm:^1.0.0" + has-symbols: "npm:^1.1.0" + set-function-name: "npm:^2.0.2" + checksum: 10/352bcf333f42189e65cc8cb2dcb94a5c47cf0a9110ce12aba788d405a980b5f5f3a06c79bf915377e1d480647169babd842ded0d898bed181bf6686e8e6823f6 languageName: node linkType: hard "its-name@npm:1.0.0": version: 1.0.0 resolution: "its-name@npm:1.0.0" - checksum: 9eb7cee9e5fc0cb2f82dddb9373dea9ca695e4814302cf4d234cc1148df537e0b5e1c14f790816665fd7de6a84ea014ef0977558da8d77cdebfbef8a41a9fb71 + checksum: 10/9eb7cee9e5fc0cb2f82dddb9373dea9ca695e4814302cf4d234cc1148df537e0b5e1c14f790816665fd7de6a84ea014ef0977558da8d77cdebfbef8a41a9fb71 languageName: node linkType: hard @@ -6488,12 +6488,12 @@ __metadata: version: 3.4.3 resolution: "jackspeak@npm:3.4.3" dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: be31027fc72e7cc726206b9f560395604b82e0fddb46c4cbf9f97d049bcef607491a5afc0699612eaa4213ca5be8fd3e1e7cd187b3040988b65c9489838a7c00 + checksum: 10/96f8786eaab98e4bf5b2a5d6d9588ea46c4d06bbc4f2eb861fdd7b6b182b16f71d8a70e79820f335d52653b16d4843b29dd9cdcf38ae80406756db9199497cf3 languageName: node linkType: hard @@ -6502,7 +6502,7 @@ __metadata: resolution: "jiti@npm:1.21.7" bin: jiti: bin/jiti.js - checksum: 9cd20dabf82e3a4cceecb746a69381da7acda93d34eed0cdb9c9bdff3bce07e4f2f4a016ca89924392c935297d9aedc58ff9f7d3281bc5293319ad244926e0b7 + checksum: 10/6a182521532126e4b7b5ad64b64fb2e162718fc03bc6019c21aa2222aacde6c6dfce4fc3bce9f69561a73b24ab5f79750ad353c37c3487a220d5869a39eae3a2 languageName: node linkType: hard @@ -6510,23 +6510,23 @@ __metadata: version: 1.10.3 resolution: "js-beautify@npm:1.10.3" dependencies: - config-chain: ^1.1.12 - editorconfig: ^0.15.3 - glob: ^7.1.3 - mkdirp: ~0.5.1 - nopt: ~4.0.1 + config-chain: "npm:^1.1.12" + editorconfig: "npm:^0.15.3" + glob: "npm:^7.1.3" + mkdirp: "npm:~0.5.1" + nopt: "npm:~4.0.1" bin: css-beautify: js/bin/css-beautify.js html-beautify: js/bin/html-beautify.js js-beautify: js/bin/js-beautify.js - checksum: 57ba90f460a14366bd86be37f1dc45ea718741724655e8100269bdf103d252416e4d0be119cdfc547dcac88c700f7bab8762040a3c41820e80a9620a0ea785f8 + checksum: 10/553e795ebdef8043968740a14d412b68c10b0430c7c2219f640f6e3965f19200b314277f8dadf63d489b96ddfe6221d770819f20ae102edfec0e4398af091253 languageName: node linkType: hard "js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" - checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 + checksum: 10/af37d0d913fb56aec6dc0074c163cc71cd23c0b8aad5c2350747b6721d37ba118af35abdd8b33c47ec2800de07dedb16a527ca9c530ee004093e04958bd0cbf2 languageName: node linkType: hard @@ -6534,10 +6534,10 @@ __metadata: version: 4.1.0 resolution: "js-yaml@npm:4.1.0" dependencies: - argparse: ^2.0.1 + argparse: "npm:^2.0.1" bin: js-yaml: bin/js-yaml.js - checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a + checksum: 10/c138a34a3fd0d08ebaf71273ad4465569a483b8a639e0b118ff65698d257c2791d3199e3f303631f2cb98213fa7b5f5d6a4621fd0fff819421b990d30d967140 languageName: node linkType: hard @@ -6545,25 +6545,25 @@ __metadata: version: 3.14.1 resolution: "js-yaml@npm:3.14.1" dependencies: - argparse: ^1.0.7 - esprima: ^4.0.0 + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" bin: js-yaml: bin/js-yaml.js - checksum: bef146085f472d44dee30ec34e5cf36bf89164f5d585435a3d3da89e52622dff0b188a580e4ad091c3341889e14cb88cac6e4deb16dc5b1e9623bb0601fc255c + checksum: 10/9e22d80b4d0105b9899135365f746d47466ed53ef4223c529b3c0f7a39907743fdbd3c4379f94f1106f02755b5e90b2faaf84801a891135544e1ea475d1a1379 languageName: node linkType: hard "jsbn@npm:1.1.0": version: 1.1.0 resolution: "jsbn@npm:1.1.0" - checksum: 944f924f2bd67ad533b3850eee47603eed0f6ae425fd1ee8c760f477e8c34a05f144c1bd4f5a5dd1963141dc79a2c55f89ccc5ab77d039e7077f3ad196b64965 + checksum: 10/bebe7ae829bbd586ce8cbe83501dd8cb8c282c8902a8aeeed0a073a89dc37e8103b1244f3c6acd60278bcbfe12d93a3f83c9ac396868a3b3bbc3c5e5e3b648ef languageName: node linkType: hard "jsbn@npm:~0.1.0": version: 0.1.1 resolution: "jsbn@npm:0.1.1" - checksum: e5ff29c1b8d965017ef3f9c219dacd6e40ad355c664e277d31246c90545a02e6047018c16c60a00f36d561b3647215c41894f5d869ada6908a2e0ce4200c88f2 + checksum: 10/5450133242845100e694f0ef9175f44c012691a9b770b2571e677314e6f70600abb10777cdfc9a0c6a9f2ac6d134577403633de73e2fcd0f97875a67744e2d14 languageName: node linkType: hard @@ -6572,49 +6572,49 @@ __metadata: resolution: "jsesc@npm:3.1.0" bin: jsesc: bin/jsesc - checksum: 19c94095ea026725540c0d29da33ab03144f6bcf2d4159e4833d534976e99e0c09c38cefa9a575279a51fc36b31166f8d6d05c9fe2645d5f15851d690b41f17f + checksum: 10/20bd37a142eca5d1794f354db8f1c9aeb54d85e1f5c247b371de05d23a9751ecd7bd3a9c4fc5298ea6fa09a100dafb4190fa5c98c6610b75952c3487f3ce7967 languageName: node linkType: hard "json-buffer@npm:3.0.1": version: 3.0.1 resolution: "json-buffer@npm:3.0.1" - checksum: 9026b03edc2847eefa2e37646c579300a1f3a4586cfb62bf857832b60c852042d0d6ae55d1afb8926163fa54c2b01d83ae24705f34990348bdac6273a29d4581 + checksum: 10/82876154521b7b68ba71c4f969b91572d1beabadd87bd3a6b236f85fbc7dc4695089191ed60bb59f9340993c51b33d479f45b6ba9f3548beb519705281c32c3c languageName: node linkType: hard "json-parse-even-better-errors@npm:^2.3.0": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f + checksum: 10/5f3a99009ed5f2a5a67d06e2f298cc97bc86d462034173308156f15b43a6e850be8511dc204b9b94566305da2947f7d90289657237d210351a39059ff9d666cf languageName: node linkType: hard "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" - checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + checksum: 10/7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b languageName: node linkType: hard "json-schema@npm:0.4.0": version: 0.4.0 resolution: "json-schema@npm:0.4.0" - checksum: 66389434c3469e698da0df2e7ac5a3281bcff75e797a5c127db7c5b56270e01ae13d9afa3c03344f76e32e81678337a8c912bdbb75101c62e487dc3778461d72 + checksum: 10/8b3b64eff4a807dc2a3045b104ed1b9335cd8d57aa74c58718f07f0f48b8baa3293b00af4dcfbdc9144c3aafea1e97982cc27cc8e150fc5d93c540649507a458 languageName: node linkType: hard "json-stable-stringify-without-jsonify@npm:^1.0.1": version: 1.0.1 resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 + checksum: 10/12786c2e2f22c27439e6db0532ba321f1d0617c27ad8cb1c352a0e9249a50182fd1ba8b52a18899291604b0c32eafa8afd09e51203f19109a0537f68db2b652d languageName: node linkType: hard "json-stringify-safe@npm:^5.0.1, json-stringify-safe@npm:~5.0.1": version: 5.0.1 resolution: "json-stringify-safe@npm:5.0.1" - checksum: 48ec0adad5280b8a96bb93f4563aa1667fd7a36334f79149abd42446d0989f2ddc58274b479f4819f1f00617957e6344c886c55d05a4e15ebb4ab931e4a6a8ee + checksum: 10/59169a081e4eeb6f9559ae1f938f656191c000e0512aa6df9f3c8b2437a4ab1823819c6b9fd1818a4e39593ccfd72e9a051fdd3e2d1e340ed913679e888ded8c languageName: node linkType: hard @@ -6622,10 +6622,10 @@ __metadata: version: 1.0.2 resolution: "json5@npm:1.0.2" dependencies: - minimist: ^1.2.0 + minimist: "npm:^1.2.0" bin: json5: lib/cli.js - checksum: 866458a8c58a95a49bef3adba929c625e82532bcff1fe93f01d29cb02cac7c3fe1f4b79951b7792c2da9de0b32871a8401a6e3c5b36778ad852bf5b8a61165d7 + checksum: 10/a78d812dbbd5642c4f637dd130954acfd231b074965871c3e28a5bbd571f099d623ecf9161f1960c4ddf68e0cc98dee8bebfdb94a71ad4551f85a1afc94b63f6 languageName: node linkType: hard @@ -6634,7 +6634,7 @@ __metadata: resolution: "json5@npm:2.2.3" bin: json5: lib/cli.js - checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 + checksum: 10/1db67b853ff0de3534085d630691d3247de53a2ed1390ba0ddff681ea43e9b3e30ecbdb65c5e9aab49435e44059c23dbd6fee8ee619419ba37465bb0dd7135da languageName: node linkType: hard @@ -6642,12 +6642,12 @@ __metadata: version: 6.1.0 resolution: "jsonfile@npm:6.1.0" dependencies: - graceful-fs: ^4.1.6 - universalify: ^2.0.0 + graceful-fs: "npm:^4.1.6" + universalify: "npm:^2.0.0" dependenciesMeta: graceful-fs: optional: true - checksum: 7af3b8e1ac8fe7f1eccc6263c6ca14e1966fcbc74b618d3c78a0a2075579487547b94f72b7a1114e844a1e15bb00d440e5d1720bfc4612d790a6f285d5ea8354 + checksum: 10/03014769e7dc77d4cf05fa0b534907270b60890085dd5e4d60a382ff09328580651da0b8b4cdf44d91e4c8ae64d91791d965f05707beff000ed494a38b6fec85 languageName: node linkType: hard @@ -6655,11 +6655,11 @@ __metadata: version: 2.0.2 resolution: "jsprim@npm:2.0.2" dependencies: - assert-plus: 1.0.0 - extsprintf: 1.3.0 - json-schema: 0.4.0 - verror: 1.10.0 - checksum: d175f6b1991e160cb0aa39bc857da780e035611986b5492f32395411879fdaf4e513d98677f08f7352dac93a16b66b8361c674b86a3fa406e2e7af6b26321838 + assert-plus: "npm:1.0.0" + extsprintf: "npm:1.3.0" + json-schema: "npm:0.4.0" + verror: "npm:1.10.0" + checksum: 10/fcfca5b55f83e1b8be5f932c71754bd37afd2611f81685abd05689e8ce718a91155ff7bd5b94c65ce483a787b5c43c6d0c18c1d2259fca5bb61a3f8ea2e29c0a languageName: node linkType: hard @@ -6667,11 +6667,11 @@ __metadata: version: 3.3.5 resolution: "jsx-ast-utils@npm:3.3.5" dependencies: - array-includes: ^3.1.6 - array.prototype.flat: ^1.3.1 - object.assign: ^4.1.4 - object.values: ^1.1.6 - checksum: f4b05fa4d7b5234230c905cfa88d36dc8a58a6666975a3891429b1a8cdc8a140bca76c297225cb7a499fad25a2c052ac93934449a2c31a44fc9edd06c773780a + array-includes: "npm:^3.1.6" + array.prototype.flat: "npm:^1.3.1" + object.assign: "npm:^4.1.4" + object.values: "npm:^1.1.6" + checksum: 10/b61d44613687dfe4cc8ad4b4fbf3711bf26c60b8d5ed1f494d723e0808415c59b24a7c0ed8ab10736a40ff84eef38cbbfb68b395e05d31117b44ffc59d31edfc languageName: node linkType: hard @@ -6679,15 +6679,15 @@ __metadata: version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: - json-buffer: 3.0.1 - checksum: 74a24395b1c34bd44ad5cb2b49140d087553e170625240b86755a6604cd65aa16efdbdeae5cdb17ba1284a0fbb25ad06263755dbc71b8d8b06f74232ce3cdd72 + json-buffer: "npm:3.0.1" + checksum: 10/167eb6ef64cc84b6fa0780ee50c9de456b422a1e18802209234f7c2cf7eae648c7741f32e50d7e24ccb22b24c13154070b01563d642755b156c357431a191e75 languageName: node linkType: hard "lazy-ass@npm:1.6.0, lazy-ass@npm:^1.6.0": version: 1.6.0 resolution: "lazy-ass@npm:1.6.0" - checksum: 5a3ebb17915b03452320804466345382a6c25ac782ec4874fecdb2385793896cd459be2f187dc7def8899180c32ee0ab9a1aa7fe52193ac3ff3fe29bb0591729 + checksum: 10/3969ebef060b6f665fc78310ec769f7d2945db2d5af2b6663eda1bc9ec45c845deba9c4a3f75f124ce2c76fedf56514a063ee5c2affc8bc94963fbbddb442a88 languageName: node linkType: hard @@ -6695,23 +6695,23 @@ __metadata: version: 0.4.1 resolution: "levn@npm:0.4.1" dependencies: - prelude-ls: ^1.2.1 - type-check: ~0.4.0 - checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 + prelude-ls: "npm:^1.2.1" + type-check: "npm:~0.4.0" + checksum: 10/2e4720ff79f21ae08d42374b0a5c2f664c5be8b6c8f565bb4e1315c96ed3a8acaa9de788ffed82d7f2378cf36958573de07ef92336cb5255ed74d08b8318c9ee languageName: node linkType: hard "lilconfig@npm:^3.0.0, lilconfig@npm:^3.1.3": version: 3.1.3 resolution: "lilconfig@npm:3.1.3" - checksum: 644eb10830350f9cdc88610f71a921f510574ed02424b57b0b3abb66ea725d7a082559552524a842f4e0272c196b88dfe1ff7d35ffcc6f45736777185cd67c9a + checksum: 10/b932ce1af94985f0efbe8896e57b1f814a48c8dbd7fc0ef8469785c6303ed29d0090af3ccad7e36b626bfca3a4dc56cc262697e9a8dd867623cf09a39d54e4c3 languageName: node linkType: hard "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" - checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 + checksum: 10/0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 languageName: node linkType: hard @@ -6719,19 +6719,19 @@ __metadata: version: 15.5.1 resolution: "lint-staged@npm:15.5.1" dependencies: - chalk: ^5.4.1 - commander: ^13.1.0 - debug: ^4.4.0 - execa: ^8.0.1 - lilconfig: ^3.1.3 - listr2: ^8.2.5 - micromatch: ^4.0.8 - pidtree: ^0.6.0 - string-argv: ^0.3.2 - yaml: ^2.7.0 + chalk: "npm:^5.4.1" + commander: "npm:^13.1.0" + debug: "npm:^4.4.0" + execa: "npm:^8.0.1" + lilconfig: "npm:^3.1.3" + listr2: "npm:^8.2.5" + micromatch: "npm:^4.0.8" + pidtree: "npm:^0.6.0" + string-argv: "npm:^0.3.2" + yaml: "npm:^2.7.0" bin: lint-staged: bin/lint-staged.js - checksum: aa285bf6c55459030254536661e2cf4a69d8084ff945a088b1a60a94b96e3593c866b2804e7a5b6168f65ea675b785657e70ade9248e9c6f3023d3bd35b497b5 + checksum: 10/58662ea6e40c9292a3499ffd01cf6c1e8415f79bee7526fc8d9abbb173ba020d0099d7996a407f67be8e0f23cc6a6f898d86b7e27f41f37ba924ec25597b7914 languageName: node linkType: hard @@ -6739,20 +6739,20 @@ __metadata: version: 3.14.0 resolution: "listr2@npm:3.14.0" dependencies: - cli-truncate: ^2.1.0 - colorette: ^2.0.16 - log-update: ^4.0.0 - p-map: ^4.0.0 - rfdc: ^1.3.0 - rxjs: ^7.5.1 - through: ^2.3.8 - wrap-ansi: ^7.0.0 + cli-truncate: "npm:^2.1.0" + colorette: "npm:^2.0.16" + log-update: "npm:^4.0.0" + p-map: "npm:^4.0.0" + rfdc: "npm:^1.3.0" + rxjs: "npm:^7.5.1" + through: "npm:^2.3.8" + wrap-ansi: "npm:^7.0.0" peerDependencies: enquirer: ">= 2.3.0 < 3" peerDependenciesMeta: enquirer: optional: true - checksum: fdb8b2d6bdf5df9371ebd5082bee46c6d0ca3d1e5f2b11fbb5a127839855d5f3da9d4968fce94f0a5ec67cac2459766abbb1faeef621065ebb1829b11ef9476d + checksum: 10/cebbd692330279ea82f05468cbb0a16f5b40015a6163e0a2fb04ef168da8e2d6c54e129148e90112d92e7f9ecb85a56e6b88d867a58a8ebdf36e0c98df49ae5c languageName: node linkType: hard @@ -6760,13 +6760,13 @@ __metadata: version: 8.3.2 resolution: "listr2@npm:8.3.2" dependencies: - cli-truncate: ^4.0.0 - colorette: ^2.0.20 - eventemitter3: ^5.0.1 - log-update: ^6.1.0 - rfdc: ^1.4.1 - wrap-ansi: ^9.0.0 - checksum: f820250d081efd8ccc9f7751623650d184b82bea16c12e254815681f19c75836ee6494d0ea27088e250f49fd328fbc33120dadb8d55ee45fe5abca1de8e6da09 + cli-truncate: "npm:^4.0.0" + colorette: "npm:^2.0.20" + eventemitter3: "npm:^5.0.1" + log-update: "npm:^6.1.0" + rfdc: "npm:^1.4.1" + wrap-ansi: "npm:^9.0.0" + checksum: 10/4f07e2e05e322fd6458339ee2460b337477089b87882b29afa3cc5c1eacfaa04006d99b370756bd3cf0c9d64823d5a063646583878b459468c173df8476f03c5 languageName: node linkType: hard @@ -6774,8 +6774,8 @@ __metadata: version: 5.0.0 resolution: "locate-path@npm:5.0.0" dependencies: - p-locate: ^4.1.0 - checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 + p-locate: "npm:^4.1.0" + checksum: 10/83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 languageName: node linkType: hard @@ -6783,36 +6783,36 @@ __metadata: version: 6.0.0 resolution: "locate-path@npm:6.0.0" dependencies: - p-locate: ^5.0.0 - checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + p-locate: "npm:^5.0.0" + checksum: 10/72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a languageName: node linkType: hard "lodash.flattendeep@npm:^4.4.0": version: 4.4.0 resolution: "lodash.flattendeep@npm:4.4.0" - checksum: 8521c919acac3d4bcf0aaf040c1ca9cb35d6c617e2d72e9b4d51c9a58b4366622cd6077441a18be626c3f7b28227502b3bf042903d447b056ee7e0b11d45c722 + checksum: 10/0d0b41d8d86999e8bea94905ac65347404d427aacddbc6654dc2f85905e27cd2b708139671ecea135fa6f0a17ed94b9d4cab8ce12b08eddcbb1ddd83952ee4c2 languageName: node linkType: hard "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" - checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 + checksum: 10/d0ea2dd0097e6201be083865d50c3fb54fbfbdb247d9cc5950e086c991f448b7ab0cdab0d57eacccb43473d3f2acd21e134db39f22dac2d6c9ba6bf26978e3d6 languageName: node linkType: hard "lodash.once@npm:^4.1.1": version: 4.1.1 resolution: "lodash.once@npm:4.1.1" - checksum: d768fa9f9b4e1dc6453be99b753906f58990e0c45e7b2ca5a3b40a33111e5d17f6edf2f768786e2716af90a8e78f8f91431ab8435f761fef00f9b0c256f6d245 + checksum: 10/202f2c8c3d45e401b148a96de228e50ea6951ee5a9315ca5e15733d5a07a6b1a02d9da1e7fdf6950679e17e8ca8f7190ec33cae47beb249b0c50019d753f38f3 languageName: node linkType: hard "lodash@npm:^4.17.20, lodash@npm:^4.17.21": version: 4.17.21 resolution: "lodash@npm:4.17.21" - checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 + checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 languageName: node linkType: hard @@ -6820,9 +6820,9 @@ __metadata: version: 4.1.0 resolution: "log-symbols@npm:4.1.0" dependencies: - chalk: ^4.1.0 - is-unicode-supported: ^0.1.0 - checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 + chalk: "npm:^4.1.0" + is-unicode-supported: "npm:^0.1.0" + checksum: 10/fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 languageName: node linkType: hard @@ -6830,11 +6830,11 @@ __metadata: version: 4.0.0 resolution: "log-update@npm:4.0.0" dependencies: - ansi-escapes: ^4.3.0 - cli-cursor: ^3.1.0 - slice-ansi: ^4.0.0 - wrap-ansi: ^6.2.0 - checksum: ae2f85bbabc1906034154fb7d4c4477c79b3e703d22d78adee8b3862fa913942772e7fa11713e3d96fb46de4e3cabefbf5d0a544344f03b58d3c4bff52aa9eb2 + ansi-escapes: "npm:^4.3.0" + cli-cursor: "npm:^3.1.0" + slice-ansi: "npm:^4.0.0" + wrap-ansi: "npm:^6.2.0" + checksum: 10/ae2f85bbabc1906034154fb7d4c4477c79b3e703d22d78adee8b3862fa913942772e7fa11713e3d96fb46de4e3cabefbf5d0a544344f03b58d3c4bff52aa9eb2 languageName: node linkType: hard @@ -6842,19 +6842,19 @@ __metadata: version: 6.1.0 resolution: "log-update@npm:6.1.0" 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 - checksum: 817a9ba6c5cbc19e94d6359418df8cfe8b3244a2903f6d53354e175e243a85b782dc6a98db8b5e457ee2f09542ca8916c39641b9cd3b0e6ef45e9481d50c918a + ansi-escapes: "npm:^7.0.0" + cli-cursor: "npm:^5.0.0" + slice-ansi: "npm:^7.1.0" + strip-ansi: "npm:^7.1.0" + wrap-ansi: "npm:^9.0.0" + checksum: 10/5abb4131e33b1e7f8416bb194fe17a3603d83e4657c5bf5bb81ce4187f3b00ea481643b85c3d5cefe6037a452cdcf7f1391ab8ea0d9c23e75d19589830ec4f11 languageName: node linkType: hard "longest-streak@npm:^3.0.0": version: 3.1.0 resolution: "longest-streak@npm:3.1.0" - checksum: d7f952ed004cbdb5c8bcfc4f7f5c3d65449e6c5a9e9be4505a656e3df5a57ee125f284286b4bf8ecea0c21a7b3bf2b8f9001ad506c319b9815ad6a63a47d0fd0 + checksum: 10/d7f952ed004cbdb5c8bcfc4f7f5c3d65449e6c5a9e9be4505a656e3df5a57ee125f284286b4bf8ecea0c21a7b3bf2b8f9001ad506c319b9815ad6a63a47d0fd0 languageName: node linkType: hard @@ -6862,24 +6862,24 @@ __metadata: version: 1.4.0 resolution: "loose-envify@npm:1.4.0" dependencies: - js-tokens: ^3.0.0 || ^4.0.0 + js-tokens: "npm:^3.0.0 || ^4.0.0" bin: loose-envify: cli.js - checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + checksum: 10/6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 languageName: node linkType: hard "loupe@npm:^3.1.0, loupe@npm:^3.1.2": version: 3.1.3 resolution: "loupe@npm:3.1.3" - checksum: 9b2530b1d5a44d2c9fc5241f97ea00296dca257173c535b4832bc31f9516e10387991feb5b3fff23df116c8fcf907ce3980f82b215dcc5d19cde17ce9b9ec3e1 + checksum: 10/9e98c34daf0eba48ccc603595e51f2ae002110982d84879cf78c51de2c632f0c571dfe82ce4210af60c32203d06b443465c269bda925076fe6d9b612cc65c321 languageName: node linkType: hard "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0": version: 10.4.3 resolution: "lru-cache@npm:10.4.3" - checksum: 6476138d2125387a6d20f100608c2583d415a4f64a0fecf30c9e2dda976614f09cad4baa0842447bd37dd459a7bd27f57d9d8f8ce558805abd487c583f3d774a + checksum: 10/e6e90267360476720fa8e83cc168aa2bf0311f3f2eea20a6ba78b90a885ae72071d9db132f40fda4129c803e7dcec3a6b6a6fbb44ca90b081630b810b5d6a41a languageName: node linkType: hard @@ -6887,9 +6887,9 @@ __metadata: version: 4.1.5 resolution: "lru-cache@npm:4.1.5" dependencies: - pseudomap: ^1.0.2 - yallist: ^2.1.2 - checksum: 4bb4b58a36cd7dc4dcec74cbe6a8f766a38b7426f1ff59d4cf7d82a2aa9b9565cd1cb98f6ff60ce5cd174524868d7bc9b7b1c294371851356066ca9ac4cf135a + pseudomap: "npm:^1.0.2" + yallist: "npm:^2.1.2" + checksum: 10/9ec7d73f11a32cba0e80b7a58fdf29970814c0c795acaee1a6451ddfd609bae6ef9df0837f5bbeabb571ecd49c1e2d79e10e9b4ed422cfba17a0cb6145b018a9 languageName: node linkType: hard @@ -6897,8 +6897,8 @@ __metadata: version: 5.1.1 resolution: "lru-cache@npm:5.1.1" dependencies: - yallist: ^3.0.2 - checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb + yallist: "npm:^3.0.2" + checksum: 10/951d2673dcc64a7fb888bf3d13bc2fdf923faca97d89cdb405ba3dfff77e2b26e5798d405e78fcd7094c9e7b8b4dab2ddc5a4f8a11928af24a207b7c738ca3f8 languageName: node linkType: hard @@ -6906,8 +6906,8 @@ __metadata: version: 0.30.17 resolution: "magic-string@npm:0.30.17" dependencies: - "@jridgewell/sourcemap-codec": ^1.5.0 - checksum: f4b4ed17c5ada64f77fc98491847302ebad64894a905c417c943840c0384662118c9b37f9f68bb86add159fa4749ff6f118c4627d69a470121b46731f8debc6d + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10/2f71af2b0afd78c2e9012a29b066d2c8ba45a9cd0c8070f7fd72de982fb1c403b4e3afdb1dae00691d56885ede66b772ef6bedf765e02e3a7066208fe2fec4aa languageName: node linkType: hard @@ -6915,8 +6915,8 @@ __metadata: version: 3.1.0 resolution: "make-dir@npm:3.1.0" dependencies: - semver: ^6.0.0 - checksum: 484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 + semver: "npm:^6.0.0" + checksum: 10/484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 languageName: node linkType: hard @@ -6924,15 +6924,15 @@ __metadata: version: 4.0.0 resolution: "make-dir@npm:4.0.0" dependencies: - semver: ^7.5.3 - checksum: bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a + semver: "npm:^7.5.3" + checksum: 10/bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a languageName: node linkType: hard "make-error@npm:^1.1.1": version: 1.3.6 resolution: "make-error@npm:1.3.6" - checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 + checksum: 10/b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402 languageName: node linkType: hard @@ -6940,32 +6940,32 @@ __metadata: version: 14.0.3 resolution: "make-fetch-happen@npm:14.0.3" dependencies: - "@npmcli/agent": ^3.0.0 - cacache: ^19.0.1 - http-cache-semantics: ^4.1.1 - minipass: ^7.0.2 - minipass-fetch: ^4.0.0 - minipass-flush: ^1.0.5 - minipass-pipeline: ^1.2.4 - negotiator: ^1.0.0 - proc-log: ^5.0.0 - promise-retry: ^2.0.1 - ssri: ^12.0.0 - checksum: 6fb2fee6da3d98f1953b03d315826b5c5a4ea1f908481afc113782d8027e19f080c85ae998454de4e5f27a681d3ec58d57278f0868d4e0b736f51d396b661691 + "@npmcli/agent": "npm:^3.0.0" + cacache: "npm:^19.0.1" + http-cache-semantics: "npm:^4.1.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^4.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^1.0.0" + proc-log: "npm:^5.0.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^12.0.0" + checksum: 10/fce0385840b6d86b735053dfe941edc2dd6468fda80fe74da1eeff10cbd82a75760f406194f2bc2fa85b99545b2bc1f84c08ddf994b21830775ba2d1a87e8bdf languageName: node linkType: hard "markdown-table@npm:^3.0.0": version: 3.0.4 resolution: "markdown-table@npm:3.0.4" - checksum: bc24b177cbb3ef170cb38c9f191476aa63f7236ebc8980317c5e91b5bf98c8fb471cf46d8920478c5e770d7f4337326f6b5b3efbf0687c2044fd332d7a64dfcb + checksum: 10/bc699819e6a15607e5def0f21aa862aa061cf1f49877baa93b0185574f6ab143591afe0e18b94d9b15ea80c6a693894150dbccfacf4f6767160dc32ae393dfe0 languageName: node linkType: hard "math-intrinsics@npm:^1.1.0": version: 1.1.0 resolution: "math-intrinsics@npm:1.1.0" - checksum: 0e513b29d120f478c85a70f49da0b8b19bc638975eca466f2eeae0071f3ad00454c621bf66e16dd435896c208e719fc91ad79bbfba4e400fe0b372e7c1c9c9a2 + checksum: 10/11df2eda46d092a6035479632e1ec865b8134bdfc4bd9e571a656f4191525404f13a283a515938c3a8de934dbfd9c09674d9da9fa831e6eb7e22b50b197d2edd languageName: node linkType: hard @@ -6973,11 +6973,11 @@ __metadata: version: 3.0.2 resolution: "mdast-util-find-and-replace@npm:3.0.2" dependencies: - "@types/mdast": ^4.0.0 - escape-string-regexp: ^5.0.0 - unist-util-is: ^6.0.0 - unist-util-visit-parents: ^6.0.0 - checksum: 00dde8aaf87d065034b911bdae20d17c107f5103c6ba5a3d117598c847ce005c6b03114b5603e0d07cc61fefcbb05bdb9f66100efeaa0278dbd80eda1087595f + "@types/mdast": "npm:^4.0.0" + escape-string-regexp: "npm:^5.0.0" + unist-util-is: "npm:^6.0.0" + unist-util-visit-parents: "npm:^6.0.0" + checksum: 10/446561aa950341ef6828069cef05566256cb6836b77ea498e648102411f96fdfa342c78b82c9d813b51a1dac80b030ce80c055e044bc285a3d52d8558fc3d65e languageName: node linkType: hard @@ -6985,19 +6985,19 @@ __metadata: version: 2.0.2 resolution: "mdast-util-from-markdown@npm:2.0.2" 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 - checksum: 1ad19f48b30ac6e0cb756070c210c78ad93c26876edfb3f75127783bc6df8b9402016d8f3e9964f3d1d5430503138ec65c145e869438727e1aa7f3cebf228fba + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + mdast-util-to-string: "npm:^4.0.0" + micromark: "npm:^4.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-decode-string: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + unist-util-stringify-position: "npm:^4.0.0" + checksum: 10/69b207913fbcc0469f8c59d922af4d5509b79e809d77c9bd4781543a907fe2ecc8e6433ce0707066a27b117b13f38af3aae4f2d085e18ebd2d3ad5f1a5647902 languageName: node linkType: hard @@ -7005,12 +7005,12 @@ __metadata: version: 2.0.1 resolution: "mdast-util-gfm-autolink-literal@npm:2.0.1" dependencies: - "@types/mdast": ^4.0.0 - ccount: ^2.0.0 - devlop: ^1.0.0 - mdast-util-find-and-replace: ^3.0.0 - micromark-util-character: ^2.0.0 - checksum: 5630b12e072d7004cb132231c94f667fb5813486779cb0dfb0a196d7ae0e048897a43b0b37e080017adda618ddfcbea1d7bf23c0fa31c87bfc683e0898ea1cfe + "@types/mdast": "npm:^4.0.0" + ccount: "npm:^2.0.0" + devlop: "npm:^1.0.0" + mdast-util-find-and-replace: "npm:^3.0.0" + micromark-util-character: "npm:^2.0.0" + checksum: 10/d933b42feb126bd094d4be4a4955326c4a9e727a5d0dbe3c824534a19d831996fcf16f67df3dd29550a7d2ac4ac568c80485bee380151ebb42c62848ab20dfa6 languageName: node linkType: hard @@ -7018,12 +7018,12 @@ __metadata: version: 2.1.0 resolution: "mdast-util-gfm-footnote@npm:2.1.0" dependencies: - "@types/mdast": ^4.0.0 - devlop: ^1.1.0 - mdast-util-from-markdown: ^2.0.0 - mdast-util-to-markdown: ^2.0.0 - micromark-util-normalize-identifier: ^2.0.0 - checksum: a23c5531d63b254b46cbcb063b5731f56ccc9d1f038a17fa66d3994255868604a2b963f24e0f5b16dd3374743622afafcfe0c98cf90548d485bdc426ba77c618 + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.1.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + checksum: 10/5fac0f64d1233f7c533c2bb99a95c56f8f5dab553ae3a83f87c1fd6e4f28e0050e3240ae32ba77b4f5df0b84404932c66fd00c852a0925059bfa5d876f155854 languageName: node linkType: hard @@ -7031,10 +7031,10 @@ __metadata: version: 2.0.0 resolution: "mdast-util-gfm-strikethrough@npm:2.0.0" dependencies: - "@types/mdast": ^4.0.0 - mdast-util-from-markdown: ^2.0.0 - mdast-util-to-markdown: ^2.0.0 - checksum: fe9b1d0eba9b791ff9001c008744eafe3dd7a81b085f2bf521595ce4a8e8b1b44764ad9361761ad4533af3e5d913d8ad053abec38172031d9ee32a8ebd1c7dbd + "@types/mdast": "npm:^4.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10/b1abc137d78270540585ad94a7a4ed1630683312690b902389dae0ede50a6832e26d1be053687f49728e14fa8a379da9384342725d3beb4480fc30b12866ab37 languageName: node linkType: hard @@ -7042,12 +7042,12 @@ __metadata: version: 2.0.0 resolution: "mdast-util-gfm-table@npm:2.0.0" dependencies: - "@types/mdast": ^4.0.0 - devlop: ^1.0.0 - markdown-table: ^3.0.0 - mdast-util-from-markdown: ^2.0.0 - mdast-util-to-markdown: ^2.0.0 - checksum: 063a627fd0993548fd63ca0c24c437baf91ba7d51d0a38820bd459bc20bf3d13d7365ef8d28dca99176dd5eb26058f7dde51190479c186dfe6af2e11202957c9 + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + markdown-table: "npm:^3.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10/a043d60d723a86f79c49cbdd1d98b80c89f4a8f9f5fa84b3880c53e132f40150972460aba9be1f44a612ef5abd6810d122c5e7e5d9c54f3ac7560cce8c305c75 languageName: node linkType: hard @@ -7055,11 +7055,11 @@ __metadata: version: 2.0.0 resolution: "mdast-util-gfm-task-list-item@npm:2.0.0" dependencies: - "@types/mdast": ^4.0.0 - devlop: ^1.0.0 - mdast-util-from-markdown: ^2.0.0 - mdast-util-to-markdown: ^2.0.0 - checksum: 37db90c59b15330fc54d790404abf5ef9f2f83e8961c53666fe7de4aab8dd5e6b3c296b6be19797456711a89a27840291d8871ff0438e9b4e15c89d170efe072 + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10/679a3ff09b52015c0088cd0616ccecc7cc9d250d56a8762aafdffc640f3f607bbd9fe047d3e7e7078e6a996e83f677be3bfcad7ac7260563825fa80a04f8e09d languageName: node linkType: hard @@ -7067,14 +7067,14 @@ __metadata: version: 3.1.0 resolution: "mdast-util-gfm@npm:3.1.0" dependencies: - mdast-util-from-markdown: ^2.0.0 - mdast-util-gfm-autolink-literal: ^2.0.0 - mdast-util-gfm-footnote: ^2.0.0 - mdast-util-gfm-strikethrough: ^2.0.0 - mdast-util-gfm-table: ^2.0.0 - mdast-util-gfm-task-list-item: ^2.0.0 - mdast-util-to-markdown: ^2.0.0 - checksum: ecdadc0b46608d03eea53366cfee8c9441ddacc49fe4e12934eff8fea06f9377d2679d9d9e43177295c09c8d7def5f48d739f99b0f6144a0e228a77f5a1c76bc + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-gfm-autolink-literal: "npm:^2.0.0" + mdast-util-gfm-footnote: "npm:^2.0.0" + mdast-util-gfm-strikethrough: "npm:^2.0.0" + mdast-util-gfm-table: "npm:^2.0.0" + mdast-util-gfm-task-list-item: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10/d66809a07000ee63661ae9044f550989d96101e3c11557a84e12038ed28490667244432dbb1f8b7d9ebb4936cc8770d3de118aff85b7474f33693b4c07a1ffda languageName: node linkType: hard @@ -7082,13 +7082,13 @@ __metadata: version: 2.0.1 resolution: "mdast-util-mdx-expression@npm:2.0.1" dependencies: - "@types/estree-jsx": ^1.0.0 - "@types/hast": ^3.0.0 - "@types/mdast": ^4.0.0 - devlop: ^1.0.0 - mdast-util-from-markdown: ^2.0.0 - mdast-util-to-markdown: ^2.0.0 - checksum: 6af56b06bde3ab971129db9855dcf0d31806c70b3b052d7a90a5499a366b57ffd0c2efca67d281c448c557298ba7e3e61bd07133733b735440840dd339b28e19 + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10/70e860f8ee22c4f478449942750055d649d4380bf43b235d0710af510189d285fb057e401d20b59596d9789f4e270fce08ca892dc849676f9e3383b991d52485 languageName: node linkType: hard @@ -7096,19 +7096,19 @@ __metadata: version: 3.2.0 resolution: "mdast-util-mdx-jsx@npm:3.2.0" dependencies: - "@types/estree-jsx": ^1.0.0 - "@types/hast": ^3.0.0 - "@types/mdast": ^4.0.0 - "@types/unist": ^3.0.0 - ccount: ^2.0.0 - devlop: ^1.1.0 - mdast-util-from-markdown: ^2.0.0 - mdast-util-to-markdown: ^2.0.0 - parse-entities: ^4.0.0 - stringify-entities: ^4.0.0 - unist-util-stringify-position: ^4.0.0 - vfile-message: ^4.0.0 - checksum: 224f5f6ad247f0f2622ee36c82ac7a4c6a60c31850de4056bf95f531bd2f7ec8943ef34dfe8a8375851f65c07e4913c4f33045d703df4ff4d11b2de5a088f7f9 + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + ccount: "npm:^2.0.0" + devlop: "npm:^1.1.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + parse-entities: "npm:^4.0.0" + stringify-entities: "npm:^4.0.0" + unist-util-stringify-position: "npm:^4.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10/62cd650a522e5d72ea6afd6d4a557fc86525b802d097a29a2fbe17d22e7b97c502a580611873e4d685777fe77c6ff8d39fb6e37d026b3acbc86c3b24927f4ad9 languageName: node linkType: hard @@ -7116,13 +7116,13 @@ __metadata: version: 2.0.1 resolution: "mdast-util-mdxjs-esm@npm:2.0.1" dependencies: - "@types/estree-jsx": ^1.0.0 - "@types/hast": ^3.0.0 - "@types/mdast": ^4.0.0 - devlop: ^1.0.0 - mdast-util-from-markdown: ^2.0.0 - mdast-util-to-markdown: ^2.0.0 - checksum: 1f9dad04d31d59005332e9157ea9510dc1d03092aadbc607a10475c7eec1c158b475aa0601a3a4f74e13097ca735deb8c2d9d37928ddef25d3029fd7c9e14dc3 + "@types/estree-jsx": "npm:^1.0.0" + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + checksum: 10/05474226e163a3f407fccb5780b0d8585a95e548e5da4a85227df43f281b940c7941a9a9d4af1be4f885fe554731647addb057a728e87aa1f503ff9cc72c9163 languageName: node linkType: hard @@ -7130,9 +7130,9 @@ __metadata: version: 4.1.0 resolution: "mdast-util-phrasing@npm:4.1.0" dependencies: - "@types/mdast": ^4.0.0 - unist-util-is: ^6.0.0 - checksum: 3a97533e8ad104a422f8bebb34b3dde4f17167b8ed3a721cf9263c7416bd3447d2364e6d012a594aada40cac9e949db28a060bb71a982231693609034ed5324e + "@types/mdast": "npm:^4.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10/3a97533e8ad104a422f8bebb34b3dde4f17167b8ed3a721cf9263c7416bd3447d2364e6d012a594aada40cac9e949db28a060bb71a982231693609034ed5324e languageName: node linkType: hard @@ -7140,16 +7140,16 @@ __metadata: version: 13.2.0 resolution: "mdast-util-to-hast@npm:13.2.0" dependencies: - "@types/hast": ^3.0.0 - "@types/mdast": ^4.0.0 - "@ungap/structured-clone": ^1.0.0 - devlop: ^1.0.0 - micromark-util-sanitize-uri: ^2.0.0 - trim-lines: ^3.0.0 - unist-util-position: ^5.0.0 - unist-util-visit: ^5.0.0 - vfile: ^6.0.0 - checksum: 7e5231ff3d4e35e1421908437577fd5098141f64918ff5cc8a0f7a8a76c5407f7a3ee88d75f7a1f7afb763989c9f357475fa0ba8296c00aaff1e940098fe86a6 + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + "@ungap/structured-clone": "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + trim-lines: "npm:^3.0.0" + unist-util-position: "npm:^5.0.0" + unist-util-visit: "npm:^5.0.0" + vfile: "npm:^6.0.0" + checksum: 10/b17ee338f843af31a1c7a2ebf0df6f0b41c9380b7119a63ab521d271df665456578e1234bb7617883e8d860fe878038dcf2b76ab2f21e0f7451215a096d26cce languageName: node linkType: hard @@ -7157,16 +7157,16 @@ __metadata: version: 2.1.2 resolution: "mdast-util-to-markdown@npm:2.1.2" 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 - checksum: 288d152bd50c00632e6e01c610bb904a220d1e226c8086c40627877959746f83ab0b872f4150cb7d910198953b1bf756e384ac3fee3e7b0ddb4517f9084c5803 + "@types/mdast": "npm:^4.0.0" + "@types/unist": "npm:^3.0.0" + longest-streak: "npm:^3.0.0" + mdast-util-phrasing: "npm:^4.0.0" + mdast-util-to-string: "npm:^4.0.0" + micromark-util-classify-character: "npm:^2.0.0" + micromark-util-decode-string: "npm:^2.0.0" + unist-util-visit: "npm:^5.0.0" + zwitch: "npm:^2.0.0" + checksum: 10/ab494a32f1ec90f0a502970b403b1847a10f3ba635adddb66ce70994cc47b4924c6c05078ddd29a8c2c5c9bc8c0bcc20e5fc1ef0fcb9b0cb9c0589a000817f1c languageName: node linkType: hard @@ -7174,29 +7174,29 @@ __metadata: version: 4.0.0 resolution: "mdast-util-to-string@npm:4.0.0" dependencies: - "@types/mdast": ^4.0.0 - checksum: 35489fb5710d58cbc2d6c8b6547df161a3f81e0f28f320dfb3548a9393555daf07c310c0c497708e67ed4dfea4a06e5655799e7d631ca91420c288b4525d6c29 + "@types/mdast": "npm:^4.0.0" + checksum: 10/f4a5dbb9ea03521d7d3e26a9ba5652a1d6fbd55706dddd2155427517085688830e0ecd3f12418cfd40892640886eb39a4034c3c967d85e01e2fa64cfb53cff05 languageName: node linkType: hard "memoize-one@npm:^6.0.0": version: 6.0.0 resolution: "memoize-one@npm:6.0.0" - checksum: f185ea69f7cceae5d1cb596266dcffccf545e8e7b4106ec6aa93b71ab9d16460dd118ac8b12982c55f6d6322fcc1485de139df07eacffaae94888b9b3ad7675f + checksum: 10/28feaf7e9a870efef1187df110b876ce42deaf86c955f4111d72d23b96e44eed573469316e6ad0d2cc7fa3b1526978215617b126158015f957242c7493babca9 languageName: node linkType: hard "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" - checksum: 6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + checksum: 10/6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 languageName: node linkType: hard "merge2@npm:^1.3.0, merge2@npm:^1.4.1": version: 1.4.1 resolution: "merge2@npm:1.4.1" - checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 languageName: node linkType: hard @@ -7204,23 +7204,23 @@ __metadata: version: 2.0.3 resolution: "micromark-core-commonmark@npm:2.0.3" 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 - checksum: cfb0fd9c895f86a4e9344f7f0344fe6bd1018945798222835248146a42430b8c7bc0b2857af574cf4e1b4ce4e5c1a35a1479942421492e37baddde8de85814dc + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-factory-destination: "npm:^2.0.0" + micromark-factory-label: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-factory-title: "npm:^2.0.0" + micromark-factory-whitespace: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-classify-character: "npm:^2.0.0" + micromark-util-html-tag-name: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-resolve-all: "npm:^2.0.0" + micromark-util-subtokenize: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/2b98b9eba1463850ebd8f338f966bd2113dafe764b490ebee3dccab3764d3c48b53fe67673297530e56bf54f58de27dfd1952ed79c5b4e32047cb7f29bd807f2 languageName: node linkType: hard @@ -7228,11 +7228,11 @@ __metadata: version: 2.1.0 resolution: "micromark-extension-gfm-autolink-literal@npm:2.1.0" dependencies: - micromark-util-character: ^2.0.0 - micromark-util-sanitize-uri: ^2.0.0 - micromark-util-symbol: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: e00a570c70c837b9cbbe94b2c23b787f44e781cd19b72f1828e3453abca2a9fb600fa539cdc75229fa3919db384491063645086e02249481e6ff3ec2c18f767c + micromark-util-character: "npm:^2.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/933b9b96ca62cd50732d9e58ae90ba446f4314e0ecbff3127e9aae430d9a295346f88fb33b5532acaf648d659b0db92e0c00c2e9f504c0d7b8bb4553318cac50 languageName: node linkType: hard @@ -7240,15 +7240,15 @@ __metadata: version: 2.1.0 resolution: "micromark-extension-gfm-footnote@npm:2.1.0" dependencies: - devlop: ^1.0.0 - micromark-core-commonmark: ^2.0.0 - micromark-factory-space: ^2.0.0 - micromark-util-character: ^2.0.0 - micromark-util-normalize-identifier: ^2.0.0 - micromark-util-sanitize-uri: ^2.0.0 - micromark-util-symbol: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: ac6fb039e98395d37b71ebff7c7a249aef52678b5cf554c89c4f716111d4be62ef99a5d715a5bd5d68fa549778c977d85cb671d1d8506dc8a3a1b46e867ae52f + devlop: "npm:^1.0.0" + micromark-core-commonmark: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/7e019414e31ab53c49c909b7068adbbcb1726433fce82bf735219276fe6e00a42b66288acb5c8831f80e77480fac34880eeeb60b1dc09d5885862b31db4b9ea2 languageName: node linkType: hard @@ -7256,13 +7256,13 @@ __metadata: version: 2.1.0 resolution: "micromark-extension-gfm-strikethrough@npm:2.1.0" dependencies: - devlop: ^1.0.0 - micromark-util-chunked: ^2.0.0 - micromark-util-classify-character: ^2.0.0 - micromark-util-resolve-all: ^2.0.0 - micromark-util-symbol: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: cdb7a38dd6eefb6ceb6792a44a6796b10f951e8e3e45b8579f599f43e7ae26ccd048c0aa7e441b3c29dd0c54656944fe6eb0098de2bc4b5106fbc0a42e9e016c + devlop: "npm:^1.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-classify-character: "npm:^2.0.0" + micromark-util-resolve-all: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/eaf2c7b1e3eb2a7d7f405e8abe561be083cc52b8e027225ed286490939f527d18c120df59c8d8e17fdcf284f8d014502bf3db45d8e36e3109457ece8fb1db29b languageName: node linkType: hard @@ -7270,12 +7270,12 @@ __metadata: version: 2.1.1 resolution: "micromark-extension-gfm-table@npm:2.1.1" dependencies: - devlop: ^1.0.0 - micromark-factory-space: ^2.0.0 - micromark-util-character: ^2.0.0 - micromark-util-symbol: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: 16a59c8c2381c8418d9cf36c605abb0b66cfebaad07e09c4c9b113298d13e0c517b652885529fcb74d149afec3f6e8ab065fd27a900073d5ec0a1d8f0c51b593 + devlop: "npm:^1.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/0391ead408d79a183a9bba325b0e660b85aef2cd6e442a9214afc4e0bdc3105cd7dbf41fc75465acf152883a4050b6203107c2a80bcadb304235581a1340fd8c languageName: node linkType: hard @@ -7283,8 +7283,8 @@ __metadata: version: 2.0.0 resolution: "micromark-extension-gfm-tagfilter@npm:2.0.0" dependencies: - micromark-util-types: ^2.0.0 - checksum: cf21552f4a63592bfd6c96ae5d64a5f22bda4e77814e3f0501bfe80e7a49378ad140f827007f36044666f176b3a0d5fea7c2e8e7973ce4b4579b77789f01ae95 + micromark-util-types: "npm:^2.0.0" + checksum: 10/c5e3f8cdf22e184de3f55968e6b010876a100dff31f509b7d2975f2b981a7fdda6c2d9e452238b9fe54dc51f5d7b069e86de509d421d4efbdfc9194749b3f132 languageName: node linkType: hard @@ -7292,12 +7292,12 @@ __metadata: version: 2.1.0 resolution: "micromark-extension-gfm-task-list-item@npm:2.1.0" dependencies: - devlop: ^1.0.0 - micromark-factory-space: ^2.0.0 - micromark-util-character: ^2.0.0 - micromark-util-symbol: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: b1ad86a4e9d68d9ad536d94fb25a5182acbc85cc79318f4a6316034342f6a71d67983cc13f12911d0290fd09b2bda43cdabe8781a2d9cca2ebe0d421e8b2b8a4 + devlop: "npm:^1.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/c5f72929f0dca77df01442b721356624de6657364e2264ef50fc7226305976f302a49b670836f9494ce70a9b0335d974b5ef8e6457553c4c200bfc06d6951964 languageName: node linkType: hard @@ -7305,15 +7305,15 @@ __metadata: version: 3.0.0 resolution: "micromark-extension-gfm@npm:3.0.0" dependencies: - micromark-extension-gfm-autolink-literal: ^2.0.0 - micromark-extension-gfm-footnote: ^2.0.0 - micromark-extension-gfm-strikethrough: ^2.0.0 - micromark-extension-gfm-table: ^2.0.0 - micromark-extension-gfm-tagfilter: ^2.0.0 - micromark-extension-gfm-task-list-item: ^2.0.0 - micromark-util-combine-extensions: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: 2060fa62666a09532d6b3a272d413bc1b25bbb262f921d7402795ac021e1362c8913727e33d7528d5b4ccaf26922ec51208c43f795a702964817bc986de886c9 + micromark-extension-gfm-autolink-literal: "npm:^2.0.0" + micromark-extension-gfm-footnote: "npm:^2.0.0" + micromark-extension-gfm-strikethrough: "npm:^2.0.0" + micromark-extension-gfm-table: "npm:^2.0.0" + micromark-extension-gfm-tagfilter: "npm:^2.0.0" + micromark-extension-gfm-task-list-item: "npm:^2.0.0" + micromark-util-combine-extensions: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/8493d1041756bf21f9421fa6d357056bff6112aeccebc20595604686cdd908a6816765de297206457ae4c00f85fc58672bdbcbbc36820c25d561b1737af89055 languageName: node linkType: hard @@ -7321,10 +7321,10 @@ __metadata: version: 2.0.1 resolution: "micromark-factory-destination@npm:2.0.1" dependencies: - micromark-util-character: ^2.0.0 - micromark-util-symbol: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: 9c4baa9ca2ed43c061bbf40ddd3d85154c2a0f1f485de9dea41d7dd2ad994ebb02034a003b2c1dbe228ba83a0576d591f0e90e0bf978713f84ee7d7f3aa98320 + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/9c4baa9ca2ed43c061bbf40ddd3d85154c2a0f1f485de9dea41d7dd2ad994ebb02034a003b2c1dbe228ba83a0576d591f0e90e0bf978713f84ee7d7f3aa98320 languageName: node linkType: hard @@ -7332,11 +7332,11 @@ __metadata: version: 2.0.1 resolution: "micromark-factory-label@npm:2.0.1" dependencies: - devlop: ^1.0.0 - micromark-util-character: ^2.0.0 - micromark-util-symbol: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: bd03f5a75f27cdbf03b894ddc5c4480fc0763061fecf9eb927d6429233c930394f223969a99472df142d570c831236134de3dc23245d23d9f046f9d0b623b5c2 + devlop: "npm:^1.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/bd03f5a75f27cdbf03b894ddc5c4480fc0763061fecf9eb927d6429233c930394f223969a99472df142d570c831236134de3dc23245d23d9f046f9d0b623b5c2 languageName: node linkType: hard @@ -7344,9 +7344,9 @@ __metadata: version: 2.0.1 resolution: "micromark-factory-space@npm:2.0.1" dependencies: - micromark-util-character: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: 1bd68a017c1a66f4787506660c1e1c5019169aac3b1cb075d49ac5e360e0b2065e984d4e1d6e9e52a9d44000f2fa1c98e66a743d7aae78b4b05616bf3242ed71 + micromark-util-character: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/1bd68a017c1a66f4787506660c1e1c5019169aac3b1cb075d49ac5e360e0b2065e984d4e1d6e9e52a9d44000f2fa1c98e66a743d7aae78b4b05616bf3242ed71 languageName: node linkType: hard @@ -7354,11 +7354,11 @@ __metadata: version: 2.0.1 resolution: "micromark-factory-title@npm:2.0.1" 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 - checksum: b4d2e4850a8ba0dff25ce54e55a3eb0d43dda88a16293f53953153288f9d84bcdfa8ca4606b2cfbb4f132ea79587bbb478a73092a349f893f5264fbcdbce2ee1 + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/b4d2e4850a8ba0dff25ce54e55a3eb0d43dda88a16293f53953153288f9d84bcdfa8ca4606b2cfbb4f132ea79587bbb478a73092a349f893f5264fbcdbce2ee1 languageName: node linkType: hard @@ -7366,11 +7366,11 @@ __metadata: version: 2.0.1 resolution: "micromark-factory-whitespace@npm:2.0.1" 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 - checksum: 67b3944d012a42fee9e10e99178254a04d48af762b54c10a50fcab988688799993efb038daf9f5dbc04001a97b9c1b673fc6f00e6a56997877ab25449f0c8650 + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/67b3944d012a42fee9e10e99178254a04d48af762b54c10a50fcab988688799993efb038daf9f5dbc04001a97b9c1b673fc6f00e6a56997877ab25449f0c8650 languageName: node linkType: hard @@ -7378,9 +7378,9 @@ __metadata: version: 2.1.1 resolution: "micromark-util-character@npm:2.1.1" dependencies: - micromark-util-symbol: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: e9e409efe4f2596acd44587e8591b722bfc041c1577e8fe0d9c007a4776fb800f9b3637a22862ad2ba9489f4bdf72bb547fce5767dbbfe0a5e6760e2a21c6495 + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/85da8f8e5f7ed16046575bef5b0964ca3fca3162b87b74ae279f1e48eb7160891313eb64f04606baed81c58b514dbdb64f1a9d110a51baaaa79225d72a7b1852 languageName: node linkType: hard @@ -7388,8 +7388,8 @@ __metadata: version: 2.0.1 resolution: "micromark-util-chunked@npm:2.0.1" dependencies: - micromark-util-symbol: ^2.0.0 - checksum: f8cb2a67bcefe4bd2846d838c97b777101f0043b9f1de4f69baf3e26bb1f9885948444e3c3aec66db7595cad8173bd4567a000eb933576c233d54631f6323fe4 + micromark-util-symbol: "npm:^2.0.0" + checksum: 10/f8cb2a67bcefe4bd2846d838c97b777101f0043b9f1de4f69baf3e26bb1f9885948444e3c3aec66db7595cad8173bd4567a000eb933576c233d54631f6323fe4 languageName: node linkType: hard @@ -7397,10 +7397,10 @@ __metadata: version: 2.0.1 resolution: "micromark-util-classify-character@npm:2.0.1" dependencies: - micromark-util-character: ^2.0.0 - micromark-util-symbol: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: 4d8bbe3a6dbf69ac0fc43516866b5bab019fe3f4568edc525d4feaaaf78423fa54e6b6732b5bccbeed924455279a3758ffc9556954aafb903982598a95a02704 + micromark-util-character: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/4d8bbe3a6dbf69ac0fc43516866b5bab019fe3f4568edc525d4feaaaf78423fa54e6b6732b5bccbeed924455279a3758ffc9556954aafb903982598a95a02704 languageName: node linkType: hard @@ -7408,9 +7408,9 @@ __metadata: version: 2.0.1 resolution: "micromark-util-combine-extensions@npm:2.0.1" dependencies: - micromark-util-chunked: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: 5d22fb9ee37e8143adfe128a72b50fa09568c2cc553b3c76160486c96dbbb298c5802a177a10a215144a604b381796071b5d35be1f2c2b2ee17995eda92f0c8e + micromark-util-chunked: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/5d22fb9ee37e8143adfe128a72b50fa09568c2cc553b3c76160486c96dbbb298c5802a177a10a215144a604b381796071b5d35be1f2c2b2ee17995eda92f0c8e languageName: node linkType: hard @@ -7418,8 +7418,8 @@ __metadata: version: 2.0.2 resolution: "micromark-util-decode-numeric-character-reference@npm:2.0.2" dependencies: - micromark-util-symbol: ^2.0.0 - checksum: ee11c8bde51e250e302050474c4a2adca094bca05c69f6cdd241af12df285c48c88d19ee6e022b9728281c280be16328904adca994605680c43af56019f4b0b6 + micromark-util-symbol: "npm:^2.0.0" + checksum: 10/ee11c8bde51e250e302050474c4a2adca094bca05c69f6cdd241af12df285c48c88d19ee6e022b9728281c280be16328904adca994605680c43af56019f4b0b6 languageName: node linkType: hard @@ -7427,25 +7427,25 @@ __metadata: version: 2.0.1 resolution: "micromark-util-decode-string@npm:2.0.1" 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 - checksum: e9546ae53f9b5a4f9aa6aaf3e750087100d3429485ca80dbacec99ff2bb15a406fa7d93784a0fc2fe05ad7296b9295e75160ef71faec9e90110b7be2ae66241a + decode-named-character-reference: "npm:^1.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + checksum: 10/2f517e4c613609445db4b9a17f8c77832f55fb341620a8fd598f083c1227027485d601c2021c2f8f9883210b8671e7b3990f0c6feeecd49a136475465808c380 languageName: node linkType: hard "micromark-util-encode@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-encode@npm:2.0.1" - checksum: be890b98e78dd0cdd953a313f4148c4692cc2fb05533e56fef5f421287d3c08feee38ca679f318e740530791fc251bfe8c80efa926fcceb4419b269c9343d226 + checksum: 10/be890b98e78dd0cdd953a313f4148c4692cc2fb05533e56fef5f421287d3c08feee38ca679f318e740530791fc251bfe8c80efa926fcceb4419b269c9343d226 languageName: node linkType: hard "micromark-util-html-tag-name@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-html-tag-name@npm:2.0.1" - checksum: dea365f5ad28ad74ff29fcb581f7b74fc1f80271c5141b3b2bc91c454cbb6dfca753f28ae03730d657874fcbd89d0494d0e3965dfdca06d9855f467c576afa9d + checksum: 10/dea365f5ad28ad74ff29fcb581f7b74fc1f80271c5141b3b2bc91c454cbb6dfca753f28ae03730d657874fcbd89d0494d0e3965dfdca06d9855f467c576afa9d languageName: node linkType: hard @@ -7453,8 +7453,8 @@ __metadata: version: 2.0.1 resolution: "micromark-util-normalize-identifier@npm:2.0.1" dependencies: - micromark-util-symbol: ^2.0.0 - checksum: 1eb9a289d7da067323df9fdc78bfa90ca3207ad8fd893ca02f3133e973adcb3743b233393d23d95c84ccaf5d220ae7f5a28402a644f135dcd4b8cfa60a7b5f84 + micromark-util-symbol: "npm:^2.0.0" + checksum: 10/1eb9a289d7da067323df9fdc78bfa90ca3207ad8fd893ca02f3133e973adcb3743b233393d23d95c84ccaf5d220ae7f5a28402a644f135dcd4b8cfa60a7b5f84 languageName: node linkType: hard @@ -7462,8 +7462,8 @@ __metadata: version: 2.0.1 resolution: "micromark-util-resolve-all@npm:2.0.1" dependencies: - micromark-util-types: ^2.0.0 - checksum: 9275f3ddb6c26f254dd2158e66215d050454b279707a7d9ce5a3cd0eba23201021cedcb78ae1a746c1b23227dcc418ee40dd074ade195359506797a5493550cc + micromark-util-types: "npm:^2.0.0" + checksum: 10/9275f3ddb6c26f254dd2158e66215d050454b279707a7d9ce5a3cd0eba23201021cedcb78ae1a746c1b23227dcc418ee40dd074ade195359506797a5493550cc languageName: node linkType: hard @@ -7471,10 +7471,10 @@ __metadata: version: 2.0.1 resolution: "micromark-util-sanitize-uri@npm:2.0.1" dependencies: - micromark-util-character: ^2.0.0 - micromark-util-encode: ^2.0.0 - micromark-util-symbol: ^2.0.0 - checksum: d01517840c17de67aaa0b0f03bfe05fac8a41d99723cd8ce16c62f6810e99cd3695364a34c335485018e5e2c00e69031744630a1b85c6868aa2f2ca1b36daa2f + micromark-util-character: "npm:^2.0.0" + micromark-util-encode: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + checksum: 10/064c72abfc9777864ca0521a016dde62ab3e7af5215d10fd27e820798500d5d305da638459c589275c1a093cf588f493cc2f65273deac5a5331ecefc6c9ea78a languageName: node linkType: hard @@ -7482,25 +7482,25 @@ __metadata: version: 2.1.0 resolution: "micromark-util-subtokenize@npm:2.1.0" dependencies: - devlop: ^1.0.0 - micromark-util-chunked: ^2.0.0 - micromark-util-symbol: ^2.0.0 - micromark-util-types: ^2.0.0 - checksum: 2e194bc8a5279d256582020500e5072a95c1094571be49043704343032e1fffbe09c862ef9c131cf5c762e296ddb54ff8bc767b3786a798524a68d1db6942934 + devlop: "npm:^1.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/5f18c70cb952a414a4d161f5d6a5254d33c7dfcd56577e592ef2e172a0414058d3531a3554f43538f14e243592fffbc2e68ddaf6a41c54577b3ba7beb555d3dc languageName: node linkType: hard "micromark-util-symbol@npm:^2.0.0": version: 2.0.1 resolution: "micromark-util-symbol@npm:2.0.1" - checksum: fb7346950550bc85a55793dda94a8b3cb3abc068dbd7570d1162db7aee803411d06c0a5de4ae59cd945f46143bdeadd4bba02a02248fa0d18cc577babaa00044 + checksum: 10/497e6d95fc21c2bb5265b78a6a60db518c376dc438739b2e7d4aee6f9f165222711724b456c63163314f32b8eea68a064687711d41e986262926eab23ddb9229 languageName: node linkType: hard "micromark-util-types@npm:^2.0.0": version: 2.0.2 resolution: "micromark-util-types@npm:2.0.2" - checksum: 884f7974839e4bc6d2bd662e57c973a9164fd5c0d8fe16cddf07472b86a7e6726747c00674952c0321d17685d700cd3295e9f58a842a53acdf6c6d55ab051aab + checksum: 10/a9eb067bd9384eab61942285d53738aa22f3fef4819eaf20249bec6ec13f1e4da2800230fd0ceb7e705108987aa9062fe3e9a8e5e48aa60180db80b9489dc3e2 languageName: node linkType: hard @@ -7508,24 +7508,24 @@ __metadata: version: 4.0.2 resolution: "micromark@npm:4.0.2" 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 - checksum: 5306c15dd12f543755bc627fc361d4255dfc430e7af6069a07ac0eacc338fbd761fe8e93f02a8bfab6097bab12ee903192fe31389222459d5029242a5aaba3b8 + "@types/debug": "npm:^4.0.0" + debug: "npm:^4.0.0" + decode-named-character-reference: "npm:^1.0.0" + devlop: "npm:^1.0.0" + micromark-core-commonmark: "npm:^2.0.0" + micromark-factory-space: "npm:^2.0.0" + micromark-util-character: "npm:^2.0.0" + micromark-util-chunked: "npm:^2.0.0" + micromark-util-combine-extensions: "npm:^2.0.0" + micromark-util-decode-numeric-character-reference: "npm:^2.0.0" + micromark-util-encode: "npm:^2.0.0" + micromark-util-normalize-identifier: "npm:^2.0.0" + micromark-util-resolve-all: "npm:^2.0.0" + micromark-util-sanitize-uri: "npm:^2.0.0" + micromark-util-subtokenize: "npm:^2.0.0" + micromark-util-symbol: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + checksum: 10/1b85e49c8f71013df2d07a59e477deb72cd325d41cc15f35b2aa52b8b7a93fed45498ce3e18ed34464a9afa9ba8a9210b2509454b2a2d16ac06c7429f562bfac languageName: node linkType: hard @@ -7533,16 +7533,16 @@ __metadata: version: 4.0.8 resolution: "micromatch@npm:4.0.8" dependencies: - braces: ^3.0.3 - picomatch: ^2.3.1 - checksum: 79920eb634e6f400b464a954fcfa589c4e7c7143209488e44baf627f9affc8b1e306f41f4f0deedde97e69cb725920879462d3e750ab3bd3c1aed675bb3a8966 + braces: "npm:^3.0.3" + picomatch: "npm:^2.3.1" + checksum: 10/6bf2a01672e7965eb9941d1f02044fad2bd12486b5553dc1116ff24c09a8723157601dc992e74c911d896175918448762df3b3fd0a6b61037dd1a9766ddfbf58 languageName: node linkType: hard "mime-db@npm:1.52.0": version: 1.52.0 resolution: "mime-db@npm:1.52.0" - checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f + checksum: 10/54bb60bf39e6f8689f6622784e668a3d7f8bed6b0d886f5c3c446cb3284be28b30bf707ed05d0fe44a036f8469976b2629bbea182684977b084de9da274694d7 languageName: node linkType: hard @@ -7550,29 +7550,29 @@ __metadata: version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: - mime-db: 1.52.0 - checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 + mime-db: "npm:1.52.0" + checksum: 10/89aa9651b67644035de2784a6e665fc685d79aba61857e02b9c8758da874a754aed4a9aced9265f5ed1171fd934331e5516b84a7f0218031b6fa0270eca1e51a languageName: node linkType: hard "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" - checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + checksum: 10/d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a languageName: node linkType: hard "mimic-fn@npm:^4.0.0": version: 4.0.0 resolution: "mimic-fn@npm:4.0.0" - checksum: 995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 + checksum: 10/995dcece15ee29aa16e188de6633d43a3db4611bcf93620e7e62109ec41c79c0f34277165b8ce5e361205049766e371851264c21ac64ca35499acb5421c2ba56 languageName: node linkType: hard "mimic-function@npm:^5.0.0": version: 5.0.1 resolution: "mimic-function@npm:5.0.1" - checksum: eb5893c99e902ccebbc267c6c6b83092966af84682957f79313311edb95e8bb5f39fb048d77132b700474d1c86d90ccc211e99bae0935447a4834eb4c882982c + checksum: 10/eb5893c99e902ccebbc267c6c6b83092966af84682957f79313311edb95e8bb5f39fb048d77132b700474d1c86d90ccc211e99bae0935447a4834eb4c882982c languageName: node linkType: hard @@ -7581,7 +7581,7 @@ __metadata: resolution: "mini-svg-data-uri@npm:1.4.4" bin: mini-svg-data-uri: cli.js - checksum: 997f1fbd8d59a70f03761e18626d335197a3479cb9d1ff75678e4b64b864d32a0b8fc18115eabde035e5299b8b4a354a78e57dd6ac10f9d604162a6170898d09 + checksum: 10/1336c2b00b6a72b0ce3cf942f7ab074faf463b941042fbe51d7a70be119c5d4223880aaa29584d5a804496ca1dda9b6fff7dd5aa284721907519b646192d8aaa languageName: node linkType: hard @@ -7589,8 +7589,8 @@ __metadata: version: 3.1.2 resolution: "minimatch@npm:3.1.2" dependencies: - brace-expansion: ^1.1.7 - checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + brace-expansion: "npm:^1.1.7" + checksum: 10/e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634 languageName: node linkType: hard @@ -7598,15 +7598,15 @@ __metadata: version: 9.0.5 resolution: "minimatch@npm:9.0.5" dependencies: - brace-expansion: ^2.0.1 - checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 + brace-expansion: "npm:^2.0.1" + checksum: 10/dd6a8927b063aca6d910b119e1f2df6d2ce7d36eab91de83167dd136bb85e1ebff97b0d3de1cb08bd1f7e018ca170b4962479fefab5b2a69e2ae12cb2edc8348 languageName: node linkType: hard "minimist@npm:minimist@^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" - checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 + checksum: 10/908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f languageName: node linkType: hard @@ -7614,8 +7614,8 @@ __metadata: version: 2.0.1 resolution: "minipass-collect@npm:2.0.1" dependencies: - minipass: ^7.0.3 - checksum: b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 + minipass: "npm:^7.0.3" + checksum: 10/b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 languageName: node linkType: hard @@ -7623,14 +7623,14 @@ __metadata: version: 4.0.1 resolution: "minipass-fetch@npm:4.0.1" dependencies: - encoding: ^0.1.13 - minipass: ^7.0.3 - minipass-sized: ^1.0.3 - minizlib: ^3.0.1 + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^3.0.1" dependenciesMeta: encoding: optional: true - checksum: 3dfca705ce887ca9ff14d73e8d8593996dea1a1ecd8101fdbb9c10549d1f9670bc8fb66ad0192769ead4c2dc01b4f9ca1cf567ded365adff17827a303b948140 + checksum: 10/7ddfebdbb87d9866e7b5f7eead5a9e3d9d507992af932a11d275551f60006cf7d9178e66d586dbb910894f3e3458d27c0ddf93c76e94d49d0a54a541ddc1263d languageName: node linkType: hard @@ -7638,8 +7638,8 @@ __metadata: version: 1.0.5 resolution: "minipass-flush@npm:1.0.5" dependencies: - minipass: ^3.0.0 - checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + minipass: "npm:^3.0.0" + checksum: 10/56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf languageName: node linkType: hard @@ -7647,8 +7647,8 @@ __metadata: version: 1.2.4 resolution: "minipass-pipeline@npm:1.2.4" dependencies: - minipass: ^3.0.0 - checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + minipass: "npm:^3.0.0" + checksum: 10/b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b languageName: node linkType: hard @@ -7656,8 +7656,8 @@ __metadata: version: 1.0.3 resolution: "minipass-sized@npm:1.0.3" dependencies: - minipass: ^3.0.0 - checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + minipass: "npm:^3.0.0" + checksum: 10/40982d8d836a52b0f37049a0a7e5d0f089637298e6d9b45df9c115d4f0520682a78258905e5c8b180fb41b593b0a82cc1361d2c74b45f7ada66334f84d1ecfdd languageName: node linkType: hard @@ -7665,15 +7665,15 @@ __metadata: version: 3.3.6 resolution: "minipass@npm:3.3.6" dependencies: - yallist: ^4.0.0 - checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + yallist: "npm:^4.0.0" + checksum: 10/a5c6ef069f70d9a524d3428af39f2b117ff8cd84172e19b754e7264a33df460873e6eb3d6e55758531580970de50ae950c496256bb4ad3691a2974cddff189f0 languageName: node linkType: hard "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": version: 7.1.2 resolution: "minipass@npm:7.1.2" - checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 + checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950 languageName: node linkType: hard @@ -7681,8 +7681,8 @@ __metadata: version: 3.0.2 resolution: "minizlib@npm:3.0.2" dependencies: - minipass: ^7.1.2 - checksum: 493bed14dcb6118da7f8af356a8947cf1473289c09658e5aabd69a737800a8c3b1736fb7d7931b722268a9c9bc038a6d53c049b6a6af24b34a121823bb709996 + minipass: "npm:^7.1.2" + checksum: 10/c075bed1594f68dcc8c35122333520112daefd4d070e5d0a228bd4cf5580e9eed3981b96c0ae1d62488e204e80fd27b2b9d0068ca9a5ef3993e9565faf63ca41 languageName: node linkType: hard @@ -7691,7 +7691,7 @@ __metadata: resolution: "mkdirp@npm:3.0.1" bin: mkdirp: dist/cjs/src/bin.js - checksum: 972deb188e8fb55547f1e58d66bd6b4a3623bf0c7137802582602d73e6480c1c2268dcbafbfb1be466e00cc7e56ac514d7fd9334b7cf33e3e2ab547c16f83a8d + checksum: 10/16fd79c28645759505914561e249b9a1f5fe3362279ad95487a4501e4467abeb714fd35b95307326b8fd03f3c7719065ef11a6f97b7285d7888306d1bd2232ba languageName: node linkType: hard @@ -7699,31 +7699,31 @@ __metadata: version: 0.5.6 resolution: "mkdirp@npm:0.5.6" dependencies: - minimist: ^1.2.6 + minimist: "npm:^1.2.6" bin: mkdirp: bin/cmd.js - checksum: 0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2 + checksum: 10/0c91b721bb12c3f9af4b77ebf73604baf350e64d80df91754dc509491ae93bf238581e59c7188360cec7cb62fc4100959245a42cfe01834efedc5e9d068376c2 languageName: node linkType: hard "mock-socket@npm:^9.3.1": version: 9.3.1 resolution: "mock-socket@npm:9.3.1" - checksum: cb2dde4fc5dde280dd5ccb78eaaa223382ee16437f46b86558017655584ad08c22e733bde2dd5cc86927def506b6caeb0147e3167b9a62d70d5cf19d44103853 + checksum: 10/c5c07568f2859db6926d79cb61580c07e67958b5cd6b52d1270fdfa17ae066d7f74a18a4208fc4386092eea4e1ee001aa23f015c88a1774265994e4fae34d18e languageName: node linkType: hard "ms@npm:2.0.0": version: 2.0.0 resolution: "ms@npm:2.0.0" - checksum: 0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 + checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 languageName: node linkType: hard "ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" - checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d languageName: node linkType: hard @@ -7731,10 +7731,10 @@ __metadata: version: 2.7.0 resolution: "mz@npm:2.7.0" dependencies: - any-promise: ^1.0.0 - object-assign: ^4.0.1 - thenify-all: ^1.0.0 - checksum: 8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87 + any-promise: "npm:^1.0.0" + object-assign: "npm:^4.0.1" + thenify-all: "npm:^1.0.0" + checksum: 10/8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87 languageName: node linkType: hard @@ -7743,21 +7743,21 @@ __metadata: resolution: "nanoid@npm:3.3.11" bin: nanoid: bin/nanoid.cjs - checksum: 3be20d8866a57a6b6d218e82549711c8352ed969f9ab3c45379da28f405363ad4c9aeb0b39e9abc101a529ca65a72ff9502b00bf74a912c4b64a9d62dfd26c29 + checksum: 10/73b5afe5975a307aaa3c95dfe3334c52cdf9ae71518176895229b8d65ab0d1c0417dd081426134eb7571c055720428ea5d57c645138161e7d10df80815527c48 languageName: node linkType: hard "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" - checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d + checksum: 10/23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d languageName: node linkType: hard "negotiator@npm:^1.0.0": version: 1.0.0 resolution: "negotiator@npm:1.0.0" - checksum: 20ebfe79b2d2e7cf9cbc8239a72662b584f71164096e6e8896c8325055497c96f6b80cd22c258e8a2f2aa382a787795ec3ee8b37b422a302c7d4381b0d5ecfbb + checksum: 10/b5734e87295324fabf868e36fb97c84b7d7f3156ec5f4ee5bf6e488079c11054f818290fc33804cef7b1ee21f55eeb14caea83e7dafae6492a409b3e573153e5 languageName: node linkType: hard @@ -7765,17 +7765,17 @@ __metadata: version: 13.5.6 resolution: "nock@npm:13.5.6" dependencies: - debug: ^4.1.0 - json-stringify-safe: ^5.0.1 - propagate: ^2.0.0 - checksum: 82d31ef7a428e8a6bc430b2772745ecb1f9c8835170789bbcc29c9036614adf3b7112daeb6d59edd93f4340a9a96acee401021572d469a7a0e09a669679f2794 + debug: "npm:^4.1.0" + json-stringify-safe: "npm:^5.0.1" + propagate: "npm:^2.0.0" + checksum: 10/a57c265b75e5f7767e2f8baf058773cdbf357c31c5fea2761386ec03a008a657f9df921899fe2a9502773b47145b708863b32345aef529b3c45cba4019120f88 languageName: node linkType: hard "node-domexception@npm:^1.0.0": version: 1.0.0 resolution: "node-domexception@npm:1.0.0" - checksum: ee1d37dd2a4eb26a8a92cd6b64dfc29caec72bff5e1ed9aba80c294f57a31ba4895a60fd48347cf17dd6e766da0ae87d75657dfd1f384ebfa60462c2283f5c7f + checksum: 10/e332522f242348c511640c25a6fc7da4f30e09e580c70c6b13cb0be83c78c3e71c8d4665af2527e869fc96848924a4316ae7ec9014c091e2156f41739d4fa233 languageName: node linkType: hard @@ -7783,10 +7783,10 @@ __metadata: version: 3.3.2 resolution: "node-fetch@npm:3.3.2" dependencies: - data-uri-to-buffer: ^4.0.0 - fetch-blob: ^3.1.4 - formdata-polyfill: ^4.0.10 - checksum: 06a04095a2ddf05b0830a0d5302699704d59bda3102894ea64c7b9d4c865ecdff2d90fd042df7f5bc40337266961cb6183dcc808ea4f3000d024f422b462da92 + data-uri-to-buffer: "npm:^4.0.0" + fetch-blob: "npm:^3.1.4" + formdata-polyfill: "npm:^4.0.10" + checksum: 10/24207ca8c81231c7c59151840e3fded461d67a31cf3e3b3968e12201a42f89ce4a0b5fb7079b1fa0a4655957b1ca9257553200f03a9f668b45ebad265ca5593d languageName: node linkType: hard @@ -7794,19 +7794,19 @@ __metadata: version: 11.2.0 resolution: "node-gyp@npm:11.2.0" dependencies: - env-paths: ^2.2.0 - exponential-backoff: ^3.1.1 - graceful-fs: ^4.2.6 - make-fetch-happen: ^14.0.3 - nopt: ^8.0.0 - proc-log: ^5.0.0 - semver: ^7.3.5 - tar: ^7.4.3 - tinyglobby: ^0.2.12 - which: ^5.0.0 + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^14.0.3" + nopt: "npm:^8.0.0" + proc-log: "npm:^5.0.0" + semver: "npm:^7.3.5" + tar: "npm:^7.4.3" + tinyglobby: "npm:^0.2.12" + which: "npm:^5.0.0" bin: node-gyp: bin/node-gyp.js - checksum: 2536282ba81f8a94b29482d3622b6ab298611440619e46de4512a6f32396a68b5530357c474b859787069d84a4c537d99e0c71078cce5b9f808bf84eeb78e8fb + checksum: 10/806fd8e3adc9157e17bf0d4a2c899cf6b98a0bbe9f453f630094ce791866271f6cddcaf2133e6513715d934fcba2014d287c7053d5d7934937b3a34d5a3d84ad languageName: node linkType: hard @@ -7814,15 +7814,15 @@ __metadata: version: 0.2.1 resolution: "node-preload@npm:0.2.1" dependencies: - process-on-spawn: ^1.0.0 - checksum: 4586f91ac7417b33accce0ac629fb60f642d0c8d212b3c536dc3dda37fe54f8a3b858273380e1036e41a65d85470332c358315d2288e6584260d620fb4b00fb3 + process-on-spawn: "npm:^1.0.0" + checksum: 10/de36ed365b7e474eaf05c41f976774dece23a7f398fe76dbf9705f9670a1f49e6a27c5f31fe58b4e43d96413fdce4806192c60d35317b25725636c90889d5bab languageName: node linkType: hard "node-releases@npm:^2.0.19": version: 2.0.19 resolution: "node-releases@npm:2.0.19" - checksum: 917dbced519f48c6289a44830a0ca6dc944c3ee9243c468ebd8515a41c97c8b2c256edb7f3f750416bc37952cc9608684e6483c7b6c6f39f6bd8d86c52cfe658 + checksum: 10/c2b33b4f0c40445aee56141f13ca692fa6805db88510e5bbb3baadb2da13e1293b738e638e15e4a8eb668bb9e97debb08e7a35409b477b5cc18f171d35a83045 languageName: node linkType: hard @@ -7830,10 +7830,10 @@ __metadata: version: 8.1.0 resolution: "nopt@npm:8.1.0" dependencies: - abbrev: ^3.0.0 + abbrev: "npm:^3.0.0" bin: nopt: bin/nopt.js - checksum: 49cfd3eb6f565e292bf61f2ff1373a457238804d5a5a63a8d786c923007498cba89f3648e3b952bc10203e3e7285752abf5b14eaf012edb821e84f24e881a92a + checksum: 10/26ab456c51a96f02a9e5aa8d1b80ef3219f2070f3f3528a040e32fb735b1e651e17bdf0f1476988d3a46d498f35c65ed662d122f340d38ce4a7e71dd7b20c4bc languageName: node linkType: hard @@ -7841,25 +7841,25 @@ __metadata: version: 4.0.3 resolution: "nopt@npm:4.0.3" dependencies: - abbrev: 1 - osenv: ^0.1.4 + abbrev: "npm:1" + osenv: "npm:^0.1.4" bin: nopt: bin/nopt.js - checksum: 66cd3b6021fc8130fc201236bc3dce614fc86988b78faa91377538b09d57aad9ba4300b5d6a01dc93d6c6f2c170f81cc893063d496d108150b65191beb4a50a4 + checksum: 10/037a9274c8f038a8e6ac026d14cd798bbfa9a98a5d958f4829e13b6381b44cb8576d070d4dc6d83ba514068eea7b2ceae023a3b6b63a3dbff331ad2167b611c2 languageName: node linkType: hard "normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" - checksum: 88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 + checksum: 10/88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 languageName: node linkType: hard "normalize-range@npm:^0.1.2": version: 0.1.2 resolution: "normalize-range@npm:0.1.2" - checksum: 9b2f14f093593f367a7a0834267c24f3cb3e887a2d9809c77d8a7e5fd08738bcd15af46f0ab01cc3a3d660386f015816b5c922cea8bf2ee79777f40874063184 + checksum: 10/9b2f14f093593f367a7a0834267c24f3cb3e887a2d9809c77d8a7e5fd08738bcd15af46f0ab01cc3a3d660386f015816b5c922cea8bf2ee79777f40874063184 languageName: node linkType: hard @@ -7867,8 +7867,8 @@ __metadata: version: 4.0.1 resolution: "npm-run-path@npm:4.0.1" dependencies: - path-key: ^3.0.0 - checksum: 5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + path-key: "npm:^3.0.0" + checksum: 10/5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 languageName: node linkType: hard @@ -7876,8 +7876,8 @@ __metadata: version: 5.3.0 resolution: "npm-run-path@npm:5.3.0" dependencies: - path-key: ^4.0.0 - checksum: ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25 + path-key: "npm:^4.0.0" + checksum: 10/ae8e7a89da9594fb9c308f6555c73f618152340dcaae423e5fb3620026fefbec463618a8b761920382d666fa7a2d8d240b6fe320e8a6cdd54dc3687e2b659d25 languageName: node linkType: hard @@ -7885,36 +7885,36 @@ __metadata: version: 15.1.0 resolution: "nyc@npm:15.1.0" dependencies: - "@istanbuljs/load-nyc-config": ^1.0.0 - "@istanbuljs/schema": ^0.1.2 - caching-transform: ^4.0.0 - convert-source-map: ^1.7.0 - decamelize: ^1.2.0 - find-cache-dir: ^3.2.0 - find-up: ^4.1.0 - foreground-child: ^2.0.0 - get-package-type: ^0.1.0 - glob: ^7.1.6 - istanbul-lib-coverage: ^3.0.0 - istanbul-lib-hook: ^3.0.0 - istanbul-lib-instrument: ^4.0.0 - istanbul-lib-processinfo: ^2.0.2 - istanbul-lib-report: ^3.0.0 - istanbul-lib-source-maps: ^4.0.0 - istanbul-reports: ^3.0.2 - make-dir: ^3.0.0 - node-preload: ^0.2.1 - p-map: ^3.0.0 - process-on-spawn: ^1.0.0 - resolve-from: ^5.0.0 - rimraf: ^3.0.0 - signal-exit: ^3.0.2 - spawn-wrap: ^2.0.0 - test-exclude: ^6.0.0 - yargs: ^15.0.2 + "@istanbuljs/load-nyc-config": "npm:^1.0.0" + "@istanbuljs/schema": "npm:^0.1.2" + caching-transform: "npm:^4.0.0" + convert-source-map: "npm:^1.7.0" + decamelize: "npm:^1.2.0" + find-cache-dir: "npm:^3.2.0" + find-up: "npm:^4.1.0" + foreground-child: "npm:^2.0.0" + get-package-type: "npm:^0.1.0" + glob: "npm:^7.1.6" + istanbul-lib-coverage: "npm:^3.0.0" + istanbul-lib-hook: "npm:^3.0.0" + istanbul-lib-instrument: "npm:^4.0.0" + istanbul-lib-processinfo: "npm:^2.0.2" + istanbul-lib-report: "npm:^3.0.0" + istanbul-lib-source-maps: "npm:^4.0.0" + istanbul-reports: "npm:^3.0.2" + make-dir: "npm:^3.0.0" + node-preload: "npm:^0.2.1" + p-map: "npm:^3.0.0" + process-on-spawn: "npm:^1.0.0" + resolve-from: "npm:^5.0.0" + rimraf: "npm:^3.0.0" + signal-exit: "npm:^3.0.2" + spawn-wrap: "npm:^2.0.0" + test-exclude: "npm:^6.0.0" + yargs: "npm:^15.0.2" bin: nyc: bin/nyc.js - checksum: 82a7031982df2fd6ab185c9f1b5d032b6221846268007b45b5773c6582e776ab33e96cd22b4231520345942fcef69b4339bd967675b8483f3fa255b56326faef + checksum: 10/c987f04f4192dfd94e9e69869c76a54220b3ed555016751f380a413a378cceff8ec346df579e9126035b6acbc60ab893cc65e67729cc427c0171361bcb481e66 languageName: node linkType: hard @@ -7922,64 +7922,64 @@ __metadata: version: 17.1.0 resolution: "nyc@npm:17.1.0" dependencies: - "@istanbuljs/load-nyc-config": ^1.0.0 - "@istanbuljs/schema": ^0.1.2 - caching-transform: ^4.0.0 - convert-source-map: ^1.7.0 - decamelize: ^1.2.0 - find-cache-dir: ^3.2.0 - find-up: ^4.1.0 - foreground-child: ^3.3.0 - get-package-type: ^0.1.0 - glob: ^7.1.6 - istanbul-lib-coverage: ^3.0.0 - istanbul-lib-hook: ^3.0.0 - istanbul-lib-instrument: ^6.0.2 - istanbul-lib-processinfo: ^2.0.2 - istanbul-lib-report: ^3.0.0 - istanbul-lib-source-maps: ^4.0.0 - istanbul-reports: ^3.0.2 - make-dir: ^3.0.0 - node-preload: ^0.2.1 - p-map: ^3.0.0 - process-on-spawn: ^1.0.0 - resolve-from: ^5.0.0 - rimraf: ^3.0.0 - signal-exit: ^3.0.2 - spawn-wrap: ^2.0.0 - test-exclude: ^6.0.0 - yargs: ^15.0.2 + "@istanbuljs/load-nyc-config": "npm:^1.0.0" + "@istanbuljs/schema": "npm:^0.1.2" + caching-transform: "npm:^4.0.0" + convert-source-map: "npm:^1.7.0" + decamelize: "npm:^1.2.0" + find-cache-dir: "npm:^3.2.0" + find-up: "npm:^4.1.0" + foreground-child: "npm:^3.3.0" + get-package-type: "npm:^0.1.0" + glob: "npm:^7.1.6" + istanbul-lib-coverage: "npm:^3.0.0" + istanbul-lib-hook: "npm:^3.0.0" + istanbul-lib-instrument: "npm:^6.0.2" + istanbul-lib-processinfo: "npm:^2.0.2" + istanbul-lib-report: "npm:^3.0.0" + istanbul-lib-source-maps: "npm:^4.0.0" + istanbul-reports: "npm:^3.0.2" + make-dir: "npm:^3.0.0" + node-preload: "npm:^0.2.1" + p-map: "npm:^3.0.0" + process-on-spawn: "npm:^1.0.0" + resolve-from: "npm:^5.0.0" + rimraf: "npm:^3.0.0" + signal-exit: "npm:^3.0.2" + spawn-wrap: "npm:^2.0.0" + test-exclude: "npm:^6.0.0" + yargs: "npm:^15.0.2" bin: nyc: bin/nyc.js - checksum: 725b396a1e2e35fc7c347090c80b48473e4da038c18bef9890c5c1bc42549de6b8400437c286caf8a0fc439f5e2b25327af7a878f121677084be30bc25bcbbbb + checksum: 10/08ce3aeac3b1903e82d0b9c95779420d5dba86a04e79a36e2f551bb51aa304f508373de7f5c027198754402e966e177b5dbdf61bbfab0a3b30708675d5105caf languageName: node linkType: hard "object-assign@npm:^4.0.1, object-assign@npm:^4.1.1": version: 4.1.1 resolution: "object-assign@npm:4.1.1" - checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f languageName: node linkType: hard "object-hash@npm:^3.0.0": version: 3.0.0 resolution: "object-hash@npm:3.0.0" - checksum: 80b4904bb3857c52cc1bfd0b52c0352532ca12ed3b8a6ff06a90cd209dfda1b95cee059a7625eb9da29537027f68ac4619363491eedb2f5d3dddbba97494fd6c + checksum: 10/f498d456a20512ba7be500cef4cf7b3c183cc72c65372a549c9a0e6dd78ce26f375e9b1315c07592d3fde8f10d5019986eba35970570d477ed9a2a702514432a languageName: node linkType: hard "object-inspect@npm:^1.13.3": version: 1.13.4 resolution: "object-inspect@npm:1.13.4" - checksum: 582810c6a8d2ef988ea0a39e69e115a138dad8f42dd445383b394877e5816eb4268489f316a6f74ee9c4e0a984b3eab1028e3e79d62b1ed67c726661d55c7a8b + checksum: 10/aa13b1190ad3e366f6c83ad8a16ed37a19ed57d267385aa4bfdccda833d7b90465c057ff6c55d035a6b2e52c1a2295582b294217a0a3a1ae7abdd6877ef781fb languageName: node linkType: hard "object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" - checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a + checksum: 10/3d81d02674115973df0b7117628ea4110d56042e5326413e4b4313f0bcdf7dd78d4a3acef2c831463fa3796a66762c49daef306f4a0ea1af44877d7086d73bde languageName: node linkType: hard @@ -7987,13 +7987,13 @@ __metadata: version: 4.1.7 resolution: "object.assign@npm:4.1.7" dependencies: - call-bind: ^1.0.8 - call-bound: ^1.0.3 - define-properties: ^1.2.1 - es-object-atoms: ^1.0.0 - has-symbols: ^1.1.0 - object-keys: ^1.1.1 - checksum: 60e07d2651cf4f5528c485f1aa4dbded9b384c47d80e8187cefd11320abb1aebebf78df5483451dfa549059f8281c21f7b4bf7d19e9e5e97d8d617df0df298de + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + has-symbols: "npm:^1.1.0" + object-keys: "npm:^1.1.1" + checksum: 10/3fe28cdd779f2a728a9a66bd688679ba231a2b16646cd1e46b528fe7c947494387dda4bc189eff3417f3717ef4f0a8f2439347cf9a9aa3cef722fbfd9f615587 languageName: node linkType: hard @@ -8001,11 +8001,11 @@ __metadata: version: 1.1.9 resolution: "object.entries@npm:1.1.9" dependencies: - call-bind: ^1.0.8 - call-bound: ^1.0.4 - define-properties: ^1.2.1 - es-object-atoms: ^1.1.1 - checksum: 0ab2ef331c4d6a53ff600a5d69182948d453107c3a1f7fd91bc29d387538c2aba21d04949a74f57c21907208b1f6fb175567fd1f39f1a7a4046ba1bca762fb41 + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.1.1" + checksum: 10/24163ab1e1e013796693fc5f5d349e8b3ac0b6a34a7edb6c17d3dd45c6a8854145780c57d302a82512c1582f63720f4b4779d6c1cfba12cbb1420b978802d8a3 languageName: node linkType: hard @@ -8013,11 +8013,11 @@ __metadata: version: 2.0.8 resolution: "object.fromentries@npm:2.0.8" dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - es-object-atoms: ^1.0.0 - checksum: 29b2207a2db2782d7ced83f93b3ff5d425f901945f3665ffda1821e30a7253cd1fd6b891a64279976098137ddfa883d748787a6fea53ecdb51f8df8b8cec0ae1 + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + checksum: 10/5b2e80f7af1778b885e3d06aeb335dcc86965e39464671adb7167ab06ac3b0f5dd2e637a90d8ebd7426d69c6f135a4753ba3dd7d0fe2a7030cf718dcb910fd92 languageName: node linkType: hard @@ -8025,10 +8025,10 @@ __metadata: version: 1.0.3 resolution: "object.groupby@npm:1.0.3" dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-abstract: ^1.23.2 - checksum: 0d30693ca3ace29720bffd20b3130451dca7a56c612e1926c0a1a15e4306061d84410bdb1456be2656c5aca53c81b7a3661eceaa362db1bba6669c2c9b6d1982 + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + checksum: 10/44cb86dd2c660434be65f7585c54b62f0425b0c96b5c948d2756be253ef06737da7e68d7106e35506ce4a44d16aa85a413d11c5034eb7ce5579ec28752eb42d0 languageName: node linkType: hard @@ -8036,11 +8036,11 @@ __metadata: version: 1.2.1 resolution: "object.values@npm:1.2.1" dependencies: - call-bind: ^1.0.8 - call-bound: ^1.0.3 - define-properties: ^1.2.1 - es-object-atoms: ^1.0.0 - checksum: f9b9a2a125ccf8ded29414d7c056ae0d187b833ee74919821fc60d7e216626db220d9cb3cf33f965c84aaaa96133626ca13b80f3c158b673976dc8cfcfcd26bb + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/f5ec9eccdefeaaa834b089c525663436812a65ff13de7964a1c3a9110f32054f2d58aa476a645bb14f75a79f3fe1154fb3e7bfdae7ac1e80affe171b2ef74bce languageName: node linkType: hard @@ -8048,8 +8048,8 @@ __metadata: version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: - wrappy: 1 - checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + wrappy: "npm:1" + checksum: 10/cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 languageName: node linkType: hard @@ -8057,8 +8057,8 @@ __metadata: version: 5.1.2 resolution: "onetime@npm:5.1.2" dependencies: - mimic-fn: ^2.1.0 - checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 + mimic-fn: "npm:^2.1.0" + checksum: 10/e9fd0695a01cf226652f0385bf16b7a24153dbbb2039f764c8ba6d2306a8506b0e4ce570de6ad99c7a6eb49520743afdb66edd95ee979c1a342554ed49a9aadd languageName: node linkType: hard @@ -8066,8 +8066,8 @@ __metadata: version: 6.0.0 resolution: "onetime@npm:6.0.0" dependencies: - mimic-fn: ^4.0.0 - checksum: 0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 + mimic-fn: "npm:^4.0.0" + checksum: 10/0846ce78e440841335d4e9182ef69d5762e9f38aa7499b19f42ea1c4cd40f0b4446094c455c713f9adac3f4ae86f613bb5e30c99e52652764d06a89f709b3788 languageName: node linkType: hard @@ -8075,8 +8075,8 @@ __metadata: version: 7.0.0 resolution: "onetime@npm:7.0.0" dependencies: - mimic-function: ^5.0.0 - checksum: eb08d2da9339819e2f9d52cab9caf2557d80e9af8c7d1ae86e1a0fef027d00a88e9f5bd67494d350df360f7c559fbb44e800b32f310fb989c860214eacbb561c + mimic-function: "npm:^5.0.0" + checksum: 10/eb08d2da9339819e2f9d52cab9caf2557d80e9af8c7d1ae86e1a0fef027d00a88e9f5bd67494d350df360f7c559fbb44e800b32f310fb989c860214eacbb561c languageName: node linkType: hard @@ -8084,27 +8084,27 @@ __metadata: version: 0.9.4 resolution: "optionator@npm:0.9.4" dependencies: - deep-is: ^0.1.3 - fast-levenshtein: ^2.0.6 - levn: ^0.4.1 - prelude-ls: ^1.2.1 - type-check: ^0.4.0 - word-wrap: ^1.2.5 - checksum: ecbd010e3dc73e05d239976422d9ef54a82a13f37c11ca5911dff41c98a6c7f0f163b27f922c37e7f8340af9d36febd3b6e9cef508f3339d4c393d7276d716bb + deep-is: "npm:^0.1.3" + fast-levenshtein: "npm:^2.0.6" + levn: "npm:^0.4.1" + prelude-ls: "npm:^1.2.1" + type-check: "npm:^0.4.0" + word-wrap: "npm:^1.2.5" + checksum: 10/a8398559c60aef88d7f353a4f98dcdff6090a4e70f874c827302bf1213d9106a1c4d5fcb68dacb1feb3c30a04c4102f41047aa55d4c576b863d6fc876e001af6 languageName: node linkType: hard "os-homedir@npm:^1.0.0": version: 1.0.2 resolution: "os-homedir@npm:1.0.2" - checksum: af609f5a7ab72de2f6ca9be6d6b91a599777afc122ac5cad47e126c1f67c176fe9b52516b9eeca1ff6ca0ab8587fe66208bc85e40a3940125f03cdb91408e9d2 + checksum: 10/af609f5a7ab72de2f6ca9be6d6b91a599777afc122ac5cad47e126c1f67c176fe9b52516b9eeca1ff6ca0ab8587fe66208bc85e40a3940125f03cdb91408e9d2 languageName: node linkType: hard "os-tmpdir@npm:^1.0.0": version: 1.0.2 resolution: "os-tmpdir@npm:1.0.2" - checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d + checksum: 10/5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d languageName: node linkType: hard @@ -8112,16 +8112,16 @@ __metadata: version: 0.1.5 resolution: "osenv@npm:0.1.5" dependencies: - os-homedir: ^1.0.0 - os-tmpdir: ^1.0.0 - checksum: 779d261920f2a13e5e18cf02446484f12747d3f2ff82280912f52b213162d43d312647a40c332373cbccd5e3fb8126915d3bfea8dde4827f70f82da76e52d359 + os-homedir: "npm:^1.0.0" + os-tmpdir: "npm:^1.0.0" + checksum: 10/779d261920f2a13e5e18cf02446484f12747d3f2ff82280912f52b213162d43d312647a40c332373cbccd5e3fb8126915d3bfea8dde4827f70f82da76e52d359 languageName: node linkType: hard "ospath@npm:^1.2.2": version: 1.2.2 resolution: "ospath@npm:1.2.2" - checksum: 505f48a4f4f1c557d6c656ec985707726e3714721680139be037613e903aa8c8fa4ddd8d1342006f9b2dc0065e6e20f8b7bea2ee05354f31257044790367b347 + checksum: 10/505f48a4f4f1c557d6c656ec985707726e3714721680139be037613e903aa8c8fa4ddd8d1342006f9b2dc0065e6e20f8b7bea2ee05354f31257044790367b347 languageName: node linkType: hard @@ -8129,10 +8129,10 @@ __metadata: version: 1.0.1 resolution: "own-keys@npm:1.0.1" dependencies: - get-intrinsic: ^1.2.6 - object-keys: ^1.1.1 - safe-push-apply: ^1.0.0 - checksum: cc9dd7d85c4ccfbe8109fce307d581ac7ede7b26de892b537873fbce2dc6a206d89aea0630dbb98e47ce0873517cefeaa7be15fcf94aaf4764a3b34b474a5b61 + get-intrinsic: "npm:^1.2.6" + object-keys: "npm:^1.1.1" + safe-push-apply: "npm:^1.0.0" + checksum: 10/ab4bb3b8636908554fc19bf899e225444195092864cb61503a0d048fdaf662b04be2605b636a4ffeaf6e8811f6fcfa8cbb210ec964c0eb1a41eb853e1d5d2f41 languageName: node linkType: hard @@ -8140,8 +8140,8 @@ __metadata: version: 2.3.0 resolution: "p-limit@npm:2.3.0" dependencies: - p-try: ^2.0.0 - checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 + p-try: "npm:^2.0.0" + checksum: 10/84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 languageName: node linkType: hard @@ -8149,8 +8149,8 @@ __metadata: version: 3.1.0 resolution: "p-limit@npm:3.1.0" dependencies: - yocto-queue: ^0.1.0 - checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + yocto-queue: "npm:^0.1.0" + checksum: 10/7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 languageName: node linkType: hard @@ -8158,8 +8158,8 @@ __metadata: version: 4.1.0 resolution: "p-locate@npm:4.1.0" dependencies: - p-limit: ^2.2.0 - checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 + p-limit: "npm:^2.2.0" + checksum: 10/513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 languageName: node linkType: hard @@ -8167,8 +8167,8 @@ __metadata: version: 5.0.0 resolution: "p-locate@npm:5.0.0" dependencies: - p-limit: ^3.0.2 - checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + p-limit: "npm:^3.0.2" + checksum: 10/1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 languageName: node linkType: hard @@ -8176,8 +8176,8 @@ __metadata: version: 3.0.0 resolution: "p-map@npm:3.0.0" dependencies: - aggregate-error: ^3.0.0 - checksum: 49b0fcbc66b1ef9cd379de1b4da07fa7a9f84b41509ea3f461c31903623aaba8a529d22f835e0d77c7cb9fcc16e4fae71e308fd40179aea514ba68f27032b5d5 + aggregate-error: "npm:^3.0.0" + checksum: 10/d4a0664d2af05d7e5f6f342e6493d4cad48f7398ac803c5066afb1f8d2010bfc2a83d935689437288f7b1a743772085b8fa0909a8282b5df4210bcda496c37c8 languageName: node linkType: hard @@ -8185,22 +8185,22 @@ __metadata: version: 4.0.0 resolution: "p-map@npm:4.0.0" dependencies: - aggregate-error: ^3.0.0 - checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + aggregate-error: "npm:^3.0.0" + checksum: 10/7ba4a2b1e24c05e1fc14bbaea0fc6d85cf005ae7e9c9425d4575550f37e2e584b1af97bcde78eacd7559208f20995988d52881334db16cf77bc1bcf68e48ed7c languageName: node linkType: hard "p-map@npm:^7.0.2": version: 7.0.3 resolution: "p-map@npm:7.0.3" - checksum: 8c92d533acf82f0d12f7e196edccff773f384098bbb048acdd55a08778ce4fc8889d8f1bde72969487bd96f9c63212698d79744c20bedfce36c5b00b46d369f8 + checksum: 10/2ef48ccfc6dd387253d71bf502604f7893ed62090b2c9d73387f10006c342606b05233da0e4f29388227b61eb5aeface6197e166520c465c234552eeab2fe633 languageName: node linkType: hard "p-try@npm:^2.0.0": version: 2.2.0 resolution: "p-try@npm:2.2.0" - checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae + checksum: 10/f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae languageName: node linkType: hard @@ -8208,18 +8208,18 @@ __metadata: version: 4.0.0 resolution: "package-hash@npm:4.0.0" dependencies: - graceful-fs: ^4.1.15 - hasha: ^5.0.0 - lodash.flattendeep: ^4.4.0 - release-zalgo: ^1.0.0 - checksum: 32c49e3a0e1c4a33b086a04cdd6d6e570aee019cb8402ec16476d9b3564a40e38f91ce1a1f9bc88b08f8ef2917a11e0b786c08140373bdf609ea90749031e6fc + graceful-fs: "npm:^4.1.15" + hasha: "npm:^5.0.0" + lodash.flattendeep: "npm:^4.4.0" + release-zalgo: "npm:^1.0.0" + checksum: 10/c7209d98ac31926e0c1753d014f8b6b924e1e6a1aacf833dc99edece9c8381424c41c97c26c7eee82026944a79e99023cde5998bf515d7465c87005d52152040 languageName: node linkType: hard "package-json-from-dist@npm:^1.0.0": version: 1.0.1 resolution: "package-json-from-dist@npm:1.0.1" - checksum: 58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602 + checksum: 10/58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602 languageName: node linkType: hard @@ -8227,8 +8227,8 @@ __metadata: version: 1.0.1 resolution: "parent-module@npm:1.0.1" dependencies: - callsites: ^3.0.0 - checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff + callsites: "npm:^3.0.0" + checksum: 10/6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff languageName: node linkType: hard @@ -8236,14 +8236,14 @@ __metadata: version: 4.0.2 resolution: "parse-entities@npm:4.0.2" dependencies: - "@types/unist": ^2.0.0 - character-entities-legacy: ^3.0.0 - character-reference-invalid: ^2.0.0 - decode-named-character-reference: ^1.0.0 - is-alphanumerical: ^2.0.0 - is-decimal: ^2.0.0 - is-hexadecimal: ^2.0.0 - checksum: db22b46da1a62af00409c929ac49fbd306b5ebf0dbacf4646d2ae2b58616ef90a40eedc282568a3cf740fac2a7928bc97146973a628f6977ca274dedc2ad6edc + "@types/unist": "npm:^2.0.0" + character-entities-legacy: "npm:^3.0.0" + character-reference-invalid: "npm:^2.0.0" + decode-named-character-reference: "npm:^1.0.0" + is-alphanumerical: "npm:^2.0.0" + is-decimal: "npm:^2.0.0" + is-hexadecimal: "npm:^2.0.0" + checksum: 10/b0ce693d0b3d7ed1cea6fe814e6e077c71532695f01178e846269e9a2bc2f7ff34ca4bb8db80b48af0451100f25bb010df6591c9bb6306e4680ccb423d1e4038 languageName: node linkType: hard @@ -8251,46 +8251,46 @@ __metadata: version: 5.2.0 resolution: "parse-json@npm:5.2.0" dependencies: - "@babel/code-frame": ^7.0.0 - error-ex: ^1.3.1 - json-parse-even-better-errors: ^2.3.0 - lines-and-columns: ^1.1.6 - checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + "@babel/code-frame": "npm:^7.0.0" + error-ex: "npm:^1.3.1" + json-parse-even-better-errors: "npm:^2.3.0" + lines-and-columns: "npm:^1.1.6" + checksum: 10/62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 languageName: node linkType: hard "path-exists@npm:^4.0.0": version: 4.0.0 resolution: "path-exists@npm:4.0.0" - checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + checksum: 10/505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 languageName: node linkType: hard "path-is-absolute@npm:^1.0.0": version: 1.0.1 resolution: "path-is-absolute@npm:1.0.1" - checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + checksum: 10/060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 languageName: node linkType: hard "path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" - checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + checksum: 10/55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 languageName: node linkType: hard "path-key@npm:^4.0.0": version: 4.0.0 resolution: "path-key@npm:4.0.0" - checksum: 8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 + checksum: 10/8e6c314ae6d16b83e93032c61020129f6f4484590a777eed709c4a01b50e498822b00f76ceaf94bc64dbd90b327df56ceadce27da3d83393790f1219e07721d7 languageName: node linkType: hard "path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" - checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + checksum: 10/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a languageName: node linkType: hard @@ -8298,65 +8298,65 @@ __metadata: version: 1.11.1 resolution: "path-scurry@npm:1.11.1" dependencies: - lru-cache: ^10.2.0 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - checksum: 890d5abcd593a7912dcce7cf7c6bf7a0b5648e3dee6caf0712c126ca0a65c7f3d7b9d769072a4d1baf370f61ce493ab5b038d59988688e0c5f3f646ee3c69023 + lru-cache: "npm:^10.2.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10/5e8845c159261adda6f09814d7725683257fcc85a18f329880ab4d7cc1d12830967eae5d5894e453f341710d5484b8fdbbd4d75181b4d6e1eb2f4dc7aeadc434 languageName: node linkType: hard "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" - checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 + checksum: 10/5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 languageName: node linkType: hard "pathe@npm:^1.1.2": version: 1.1.2 resolution: "pathe@npm:1.1.2" - checksum: ec5f778d9790e7b9ffc3e4c1df39a5bb1ce94657a4e3ad830c1276491ca9d79f189f47609884671db173400256b005f4955f7952f52a2aeb5834ad5fb4faf134 + checksum: 10/f201d796351bf7433d147b92c20eb154a4e0ea83512017bf4ec4e492a5d6e738fb45798be4259a61aa81270179fce11026f6ff0d3fa04173041de044defe9d80 languageName: node linkType: hard "pathval@npm:^2.0.0": version: 2.0.0 resolution: "pathval@npm:2.0.0" - checksum: 682b6a6289de7990909effef7dae9aa7bb6218c0426727bccf66a35b34e7bfbc65615270c5e44e3c9557a5cb44b1b9ef47fc3cb18bce6ad3ba92bcd28467ed7d + checksum: 10/b91575bf9cdf01757afd7b5e521eb8a0b874a49bc972d08e0047cfea0cd3c019f5614521d4bc83d2855e3fcc331db6817dfd533dd8f3d90b16bc76fad2450fc1 languageName: node linkType: hard "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" - checksum: 6c72f5243303d9c60bd98e6446ba7d30ae29e3d56fdb6fae8767e8ba6386f33ee284c97efe3230a0d0217e2b1723b8ab490b1bbf34fcbb2180dbc8a9de47850d + checksum: 10/6c72f5243303d9c60bd98e6446ba7d30ae29e3d56fdb6fae8767e8ba6386f33ee284c97efe3230a0d0217e2b1723b8ab490b1bbf34fcbb2180dbc8a9de47850d languageName: node linkType: hard "performance-now@npm:^2.1.0": version: 2.1.0 resolution: "performance-now@npm:2.1.0" - checksum: 534e641aa8f7cba160f0afec0599b6cecefbb516a2e837b512be0adbe6c1da5550e89c78059c7fabc5c9ffdf6627edabe23eb7c518c4500067a898fa65c2b550 + checksum: 10/534e641aa8f7cba160f0afec0599b6cecefbb516a2e837b512be0adbe6c1da5550e89c78059c7fabc5c9ffdf6627edabe23eb7c518c4500067a898fa65c2b550 languageName: node linkType: hard "picocolors@npm:^1.0.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" - checksum: e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 + checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 languageName: node linkType: hard "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" - checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf + checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc languageName: node linkType: hard "picomatch@npm:^4.0.2": version: 4.0.2 resolution: "picomatch@npm:4.0.2" - checksum: a7a5188c954f82c6585720e9143297ccd0e35ad8072231608086ca950bee672d51b0ef676254af0788205e59bd4e4deb4e7708769226bed725bf13370a7d1464 + checksum: 10/ce617b8da36797d09c0baacb96ca8a44460452c89362d7cb8f70ca46b4158ba8bc3606912de7c818eb4a939f7f9015cef3c766ec8a0c6bfc725fdc078e39c717 languageName: node linkType: hard @@ -8365,21 +8365,21 @@ __metadata: resolution: "pidtree@npm:0.6.0" bin: pidtree: bin/pidtree.js - checksum: 8fbc073ede9209dd15e80d616e65eb674986c93be49f42d9ddde8dbbd141bb53d628a7ca4e58ab5c370bb00383f67d75df59a9a226dede8fa801267a7030c27a + checksum: 10/ea67fb3159e170fd069020e0108ba7712df9f0fd13c8db9b2286762856ddce414fb33932e08df4bfe36e91fe860b51852aee49a6f56eb4714b69634343add5df languageName: node linkType: hard "pify@npm:^2.2.0, pify@npm:^2.3.0": version: 2.3.0 resolution: "pify@npm:2.3.0" - checksum: 9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba + checksum: 10/9503aaeaf4577acc58642ad1d25c45c6d90288596238fb68f82811c08104c800e5a7870398e9f015d82b44ecbcbef3dc3d4251a1cbb582f6e5959fe09884b2ba languageName: node linkType: hard "pirates@npm:^4.0.1": version: 4.0.7 resolution: "pirates@npm:4.0.7" - checksum: 3dcbaff13c8b5bc158416feb6dc9e49e3c6be5fddc1ea078a05a73ef6b85d79324bbb1ef59b954cdeff000dbf000c1d39f32dc69310c7b78fbada5171b583e40 + checksum: 10/2427f371366081ae42feb58214f04805d6b41d6b84d74480ebcc9e0ddbd7105a139f7c653daeaf83ad8a1a77214cf07f64178e76de048128fec501eab3305a96 languageName: node linkType: hard @@ -8387,15 +8387,15 @@ __metadata: version: 4.2.0 resolution: "pkg-dir@npm:4.2.0" dependencies: - find-up: ^4.0.0 - checksum: 9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 + find-up: "npm:^4.0.0" + checksum: 10/9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 languageName: node linkType: hard "possible-typed-array-names@npm:^1.0.0": version: 1.1.0 resolution: "possible-typed-array-names@npm:1.1.0" - checksum: cfcd4f05264eee8fd184cd4897a17890561d1d473434b43ab66ad3673d9c9128981ec01e0cb1d65a52cd6b1eebfb2eae1e53e39b2e0eca86afc823ede7a4f41b + checksum: 10/2f44137b8d3dd35f4a7ba7469eec1cd9cfbb46ec164b93a5bc1f4c3d68599c9910ee3b91da1d28b4560e9cc8414c3cd56fedc07259c67e52cc774476270d3302 languageName: node linkType: hard @@ -8403,12 +8403,12 @@ __metadata: version: 15.1.0 resolution: "postcss-import@npm:15.1.0" dependencies: - postcss-value-parser: ^4.0.0 - read-cache: ^1.0.0 - resolve: ^1.1.7 + postcss-value-parser: "npm:^4.0.0" + read-cache: "npm:^1.0.0" + resolve: "npm:^1.1.7" peerDependencies: postcss: ^8.0.0 - checksum: 7bd04bd8f0235429009d0022cbf00faebc885de1d017f6d12ccb1b021265882efc9302006ba700af6cab24c46bfa2f3bc590be3f9aee89d064944f171b04e2a3 + checksum: 10/33c91b7e6b794b5c33d7d7d4730e5f0729c131d2de1ada7fcc116955625a78c3ce613983f019fa9447681795cf3f851e9c38dfbe3f48a2d08a8aef917c70a32a languageName: node linkType: hard @@ -8416,12 +8416,12 @@ __metadata: version: 16.1.0 resolution: "postcss-import@npm:16.1.0" dependencies: - postcss-value-parser: ^4.0.0 - read-cache: ^1.0.0 - resolve: ^1.1.7 + postcss-value-parser: "npm:^4.0.0" + read-cache: "npm:^1.0.0" + resolve: "npm:^1.1.7" peerDependencies: postcss: ^8.0.0 - checksum: 6d7f2fd649b7c7c3ff58d9d08003a0502466a007176655922ec535c98ab1a6bb42f09f017bb05bd18dd5fb57419df0ed9a06ec7f53b1a286fcb2daf964eec19c + checksum: 10/a0877244976b8b8a930adfc8dff9f5f6c251d78649e67aa80e963d11821e6dbc8f8b16fa1d126e8725093d69c77486fc4a6861c823693c068c3192d4879e0b29 languageName: node linkType: hard @@ -8429,10 +8429,10 @@ __metadata: version: 4.0.1 resolution: "postcss-js@npm:4.0.1" dependencies: - camelcase-css: ^2.0.1 + camelcase-css: "npm:^2.0.1" peerDependencies: postcss: ^8.4.21 - checksum: 5c1e83efeabeb5a42676193f4357aa9c88f4dc1b3c4a0332c132fe88932b33ea58848186db117cf473049fc233a980356f67db490bd0a7832ccba9d0b3fd3491 + checksum: 10/ef2cfe8554daab4166cfcb290f376e7387964c36503f5bd42008778dba735685af8d4f5e0aba67cae999f47c855df40a1cd31ae840e0df320ded36352581045e languageName: node linkType: hard @@ -8440,8 +8440,8 @@ __metadata: version: 4.0.2 resolution: "postcss-load-config@npm:4.0.2" dependencies: - lilconfig: ^3.0.0 - yaml: ^2.3.4 + lilconfig: "npm:^3.0.0" + yaml: "npm:^2.3.4" peerDependencies: postcss: ">=8.0.9" ts-node: ">=9.0.0" @@ -8450,7 +8450,7 @@ __metadata: optional: true ts-node: optional: true - checksum: 7c27dd3801db4eae207a5116fed2db6b1ebb780b40c3dd62a3e57e087093a8e6a14ee17ada729fee903152d6ef4826c6339eb135bee6208e0f3140d7e8090185 + checksum: 10/e2c2ed9b7998a5b123e1ce0c124daf6504b1454c67dcc1c8fdbcc5ffb2597b7de245e3ac34f63afc928d3fd3260b1e36492ebbdb01a9ff63f16b3c8b7b925d1b languageName: node linkType: hard @@ -8458,10 +8458,10 @@ __metadata: version: 6.2.0 resolution: "postcss-nested@npm:6.2.0" dependencies: - postcss-selector-parser: ^6.1.1 + postcss-selector-parser: "npm:^6.1.1" peerDependencies: postcss: ^8.2.14 - checksum: 2c86ecf2d0ce68f27c87c7e24ae22dc6dd5515a89fcaf372b2627906e11f5c1f36e4a09e4c15c20fd4a23d628b3d945c35839f44496fbee9a25866258006671b + checksum: 10/d7f6ba6bfd03d42f84689a0630d4e393c421bb53723f16fe179a840f03ed17763b0fe494458577d2a015e857e0ec27c7e194909ffe209ee5f0676aec39737317 languageName: node linkType: hard @@ -8469,16 +8469,16 @@ __metadata: version: 6.1.2 resolution: "postcss-selector-parser@npm:6.1.2" dependencies: - cssesc: ^3.0.0 - util-deprecate: ^1.0.2 - checksum: ce9440fc42a5419d103f4c7c1847cb75488f3ac9cbe81093b408ee9701193a509f664b4d10a2b4d82c694ee7495e022f8f482d254f92b7ffd9ed9dea696c6f84 + cssesc: "npm:^3.0.0" + util-deprecate: "npm:^1.0.2" + checksum: 10/190034c94d809c115cd2f32ee6aade84e933450a43ec3899c3e78e7d7b33efd3a2a975bb45d7700b6c5b196c06a7d9acf3f1ba6f1d87032d9675a29d8bca1dd3 languageName: node linkType: hard "postcss-value-parser@npm:^4.0.0, postcss-value-parser@npm:^4.2.0": version: 4.2.0 resolution: "postcss-value-parser@npm:4.2.0" - checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f + checksum: 10/e4e4486f33b3163a606a6ed94f9c196ab49a37a7a7163abfcd469e5f113210120d70b8dd5e33d64636f41ad52316a3725655421eb9a1094f1bcab1db2f555c62 languageName: node linkType: hard @@ -8486,17 +8486,17 @@ __metadata: version: 8.5.3 resolution: "postcss@npm:8.5.3" dependencies: - nanoid: ^3.3.8 - picocolors: ^1.1.1 - source-map-js: ^1.2.1 - checksum: da574620eb84ff60e65e1d8fc6bd5ad87a19101a23d0aba113c653434161543918229a0f673d89efb3b6d4906287eb04b957310dbcf4cbebacad9d1312711461 + nanoid: "npm:^3.3.8" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10/6d7e21a772e8b05bf102636918654dac097bac013f0dc8346b72ac3604fc16829646f94ea862acccd8f82e910b00e2c11c1f0ea276543565d278c7ca35516a7c languageName: node linkType: hard "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" - checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a + checksum: 10/0b9d2c76801ca652a7f64892dd37b7e3fab149a37d2424920099bf894acccc62abb4424af2155ab36dea8744843060a2d8ddc983518d0b1e22265a22324b72ed languageName: node linkType: hard @@ -8554,7 +8554,7 @@ __metadata: optional: true prettier-plugin-svelte: optional: true - checksum: b626a09248e94d39b0ac26fe26323503faaf11aeae9a741b8a93ed65ee27ac12eadc00fa8f7113a0c54f88df59aa0136e4efb830d47ab204808a21b16e7d9b84 + checksum: 10/7c87d8b9c7fc6e8bd3722da5c0bd115cfc249baba339b28b56ed270f0bcb99e0196836cd7270c8ab6bc499186f41e2bac4adff7795cd523d8f63f43424a0a36d languageName: node linkType: hard @@ -8563,21 +8563,21 @@ __metadata: resolution: "prettier@npm:3.5.3" bin: prettier: bin/prettier.cjs - checksum: 61e97bb8e71a95d8f9c71f1fd5229c9aaa9d1e184dedb12399f76aa802fb6fdc8954ecac9df25a7f82ee7311cf8ddbd06baf5507388fc98e5b44036cc6a88a1b + checksum: 10/7050c08f674d9e49fbd9a4c008291d0715471f64e94cc5e4b01729affce221dfc6875c8de7e66b728c64abc9352eefb7eaae071b5f79d30081be207b53774b78 languageName: node linkType: hard "pretty-bytes@npm:^5.6.0": version: 5.6.0 resolution: "pretty-bytes@npm:5.6.0" - checksum: 9c082500d1e93434b5b291bd651662936b8bd6204ec9fa17d563116a192d6d86b98f6d328526b4e8d783c07d5499e2614a807520249692da9ec81564b2f439cd + checksum: 10/9c082500d1e93434b5b291bd651662936b8bd6204ec9fa17d563116a192d6d86b98f6d328526b4e8d783c07d5499e2614a807520249692da9ec81564b2f439cd languageName: node linkType: hard "proc-log@npm:^5.0.0": version: 5.0.0 resolution: "proc-log@npm:5.0.0" - checksum: c78b26ecef6d5cce4a7489a1e9923d7b4b1679028c8654aef0463b27f4a90b0946cd598f55799da602895c52feb085ec76381d007ab8dcceebd40b89c2f9dfe0 + checksum: 10/35610bdb0177d3ab5d35f8827a429fb1dc2518d9e639f2151ac9007f01a061c30e0c635a970c9b00c39102216160f6ec54b62377c92fac3b7bfc2ad4b98d195c languageName: node linkType: hard @@ -8585,15 +8585,15 @@ __metadata: version: 1.1.0 resolution: "process-on-spawn@npm:1.1.0" dependencies: - fromentries: ^1.2.0 - checksum: 3621c774784f561879ff0ae52b1ad06465278e8fcaa7144fe4daab7f481edfa81c51894356d497c29c4026c5efe04540932400209fe53180f32c4743cd572069 + fromentries: "npm:^1.2.0" + checksum: 10/4cc56df51bf54d7629c1857e472c9440984d230c4a4dfdfc2de25abcee57b3d8f4bdfb0b9ad65fe7eea11a7a10f03474c3e8c5eb554454d32c86444e635c85f8 languageName: node linkType: hard "process@npm:^0.11.10": version: 0.11.10 resolution: "process@npm:0.11.10" - checksum: bfcce49814f7d172a6e6a14d5fa3ac92cc3d0c3b9feb1279774708a719e19acd673995226351a082a9ae99978254e320ccda4240ddc474ba31a76c79491ca7c3 + checksum: 10/dbaa7e8d1d5cf375c36963ff43116772a989ef2bb47c9bdee20f38fd8fc061119cf38140631cf90c781aca4d3f0f0d2c834711952b728953f04fd7d238f59f5b languageName: node linkType: hard @@ -8601,9 +8601,9 @@ __metadata: version: 2.0.1 resolution: "promise-retry@npm:2.0.1" dependencies: - err-code: ^2.0.2 - retry: ^0.12.0 - checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10/96e1a82453c6c96eef53a37a1d6134c9f2482f94068f98a59145d0986ca4e497bf110a410adf73857e588165eab3899f0ebcf7b3890c1b3ce802abc0d65967d4 languageName: node linkType: hard @@ -8611,52 +8611,52 @@ __metadata: version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: - loose-envify: ^1.4.0 - object-assign: ^4.1.1 - react-is: ^16.13.1 - checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 + loose-envify: "npm:^1.4.0" + object-assign: "npm:^4.1.1" + react-is: "npm:^16.13.1" + checksum: 10/7d959caec002bc964c86cdc461ec93108b27337dabe6192fb97d69e16a0c799a03462713868b40749bfc1caf5f57ef80ac3e4ffad3effa636ee667582a75e2c0 languageName: node linkType: hard "propagate@npm:^2.0.0": version: 2.0.1 resolution: "propagate@npm:2.0.1" - checksum: c4febaee2be0979e82fb6b3727878fd122a98d64a7fa3c9d09b0576751b88514a9e9275b1b92e76b364d488f508e223bd7e1dcdc616be4cdda876072fbc2a96c + checksum: 10/8c761c16e8232f82f6d015d3e01e8bd4109f47ad804f904d950f6fe319813b448ca112246b6bfdc182b400424b155b0b7c4525a9bb009e6fa950200157569c14 languageName: node linkType: hard "property-expr@npm:^2.0.5": version: 2.0.6 resolution: "property-expr@npm:2.0.6" - checksum: 89977f4bb230736c1876f460dd7ca9328034502fd92e738deb40516d16564b850c0bbc4e052c3df88b5b8cd58e51c93b46a94bea049a3f23f4a022c038864cab + checksum: 10/89977f4bb230736c1876f460dd7ca9328034502fd92e738deb40516d16564b850c0bbc4e052c3df88b5b8cd58e51c93b46a94bea049a3f23f4a022c038864cab languageName: node linkType: hard "property-information@npm:^7.0.0": version: 7.0.0 resolution: "property-information@npm:7.0.0" - checksum: c12fbaf841d9e7ea2215139ec53a7fe848b1a214d486623b64b7b56de3e4e601ec8211b0fb10dabda86de67ae06aaa328d9bdafe9c6b64e7f23d78f0dbf4bbfc + checksum: 10/55f443088456cddc2fe499d6f5895e68cbd465e39dc318ecc63a0d2432d1b918f51fb6d13f8b1adf8a78337bc4e608baa6e46afbe0c6d50d2e38588b2c409f86 languageName: node linkType: hard "proto-list@npm:~1.2.1": version: 1.2.4 resolution: "proto-list@npm:1.2.4" - checksum: 4d4826e1713cbfa0f15124ab0ae494c91b597a3c458670c9714c36e8baddf5a6aad22842776f2f5b137f259c8533e741771445eb8df82e861eea37a6eaba03f7 + checksum: 10/9cc3b46d613fa0d637033b225db1bc98e914c3c05864f7adc9bee728192e353125ef2e49f71129a413f6333951756000b0e54f299d921f02d3e9e370cc994100 languageName: node linkType: hard "proxy-from-env@npm:1.0.0": version: 1.0.0 resolution: "proxy-from-env@npm:1.0.0" - checksum: 292e28d1de0c315958d71d8315eb546dd3cd8c8cbc2dab7c54eeb9f5c17f421771964ad0b5e1f77011bab2305bdae42e1757ce33bdb1ccc3e87732322a8efcf1 + checksum: 10/f26b59c0f21dd118c23a0eb1f5250848a23b5029ec5c9f2b4011b6439b19fa83da50858d84e9261da94aa4e67778c1bac5483afce884b7770a96895a4e6b9a19 languageName: node linkType: hard "pseudomap@npm:^1.0.2": version: 1.0.2 resolution: "pseudomap@npm:1.0.2" - checksum: 856c0aae0ff2ad60881168334448e898ad7a0e45fe7386d114b150084254c01e200c957cf378378025df4e052c7890c5bd933939b0e0d2ecfcc1dc2f0b2991f5 + checksum: 10/856c0aae0ff2ad60881168334448e898ad7a0e45fe7386d114b150084254c01e200c957cf378378025df4e052c7890c5bd933939b0e0d2ecfcc1dc2f0b2991f5 languageName: node linkType: hard @@ -8664,16 +8664,16 @@ __metadata: version: 3.0.2 resolution: "pump@npm:3.0.2" dependencies: - end-of-stream: ^1.1.0 - once: ^1.3.1 - checksum: e0c4216874b96bd25ddf31a0b61a5613e26cc7afa32379217cf39d3915b0509def3565f5f6968fafdad2894c8bbdbd67d340e84f3634b2a29b950cffb6442d9f + end-of-stream: "npm:^1.1.0" + once: "npm:^1.3.1" + checksum: 10/e0c4216874b96bd25ddf31a0b61a5613e26cc7afa32379217cf39d3915b0509def3565f5f6968fafdad2894c8bbdbd67d340e84f3634b2a29b950cffb6442d9f languageName: node linkType: hard "punycode@npm:^2.1.0": version: 2.3.1 resolution: "punycode@npm:2.3.1" - checksum: bb0a0ceedca4c3c57a9b981b90601579058903c62be23c5e8e843d2c2d4148a3ecf029d5133486fb0e1822b098ba8bba09e89d6b21742d02fa26bda6441a6fb2 + checksum: 10/febdc4362bead22f9e2608ff0171713230b57aff9dddc1c273aa2a651fbd366f94b7d6a71d78342a7c0819906750351ca7f2edd26ea41b626d87d6a13d1bd059 languageName: node linkType: hard @@ -8681,22 +8681,22 @@ __metadata: version: 6.14.0 resolution: "qs@npm:6.14.0" dependencies: - side-channel: ^1.1.0 - checksum: 189b52ad4e9a0da1a16aff4c58b2a554a8dad9bd7e287c7da7446059b49ca2e33a49e570480e8be406b87fccebf134f51c373cbce36c8c83859efa0c9b71d635 + side-channel: "npm:^1.1.0" + checksum: 10/a60e49bbd51c935a8a4759e7505677b122e23bf392d6535b8fc31c1e447acba2c901235ecb192764013cd2781723dc1f61978b5fdd93cc31d7043d31cdc01974 languageName: node linkType: hard "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" - checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + checksum: 10/72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b languageName: node linkType: hard "ramda@npm:0.25.0": version: 0.25.0 resolution: "ramda@npm:0.25.0" - checksum: 008abbcc69aefd89a2a4a0c9f4cf9f8da2ec490a0e1e261b4c88de8540ef0c383d469bfdf71b758b559377c71bfa8efea164fdb1779169359a86b46f7cb23cb1 + checksum: 10/f16715fe64e74925fe209746bffe945e20f95a01c82d32aadbd255d1053fc0d1f0a4233005e302a80acaa822d89764a793f51e69c10930efbb25cb8d23c97d8f languageName: node linkType: hard @@ -8704,11 +8704,11 @@ __metadata: version: 18.3.1 resolution: "react-dom@npm:18.3.1" dependencies: - loose-envify: ^1.1.0 - scheduler: ^0.23.2 + loose-envify: "npm:^1.1.0" + scheduler: "npm:^0.23.2" peerDependencies: react: ^18.3.1 - checksum: 298954ecd8f78288dcaece05e88b570014d8f6dce5db6f66e6ee91448debeb59dcd31561dddb354eee47e6c1bb234669459060deb238ed0213497146e555a0b9 + checksum: 10/3f4b73a3aa083091173b29812b10394dd06f4ac06aff410b74702cfb3aa29d7b0ced208aab92d5272919b612e5cda21aeb1d54191848cf6e46e9e354f3541f81 languageName: node linkType: hard @@ -8716,19 +8716,19 @@ __metadata: version: 14.3.8 resolution: "react-dropzone@npm:14.3.8" dependencies: - attr-accept: ^2.2.4 - file-selector: ^2.1.0 - prop-types: ^15.8.1 + attr-accept: "npm:^2.2.4" + file-selector: "npm:^2.1.0" + prop-types: "npm:^15.8.1" peerDependencies: react: ">= 16.8 || 18.0.0" - checksum: c80ef459fe478f79aa48878f41404f43718602b2ade8416ff824914259cdd6ce1eb9ae8f02fa9769215c49ce98b8ab2c89cf6b0a00c0a7937aa3888471d67d98 + checksum: 10/31d5089c2acb4528a279761473a00a1c148b78ae41a6ac49ed09ee94f1d44595437188308ec838debfa0d08082893b170dc072e680aca00469793a05d61b07f2 languageName: node linkType: hard "react-is@npm:^16.13.1, react-is@npm:^16.7.0": version: 16.13.1 resolution: "react-is@npm:16.13.1" - checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf languageName: node linkType: hard @@ -8736,28 +8736,28 @@ __metadata: version: 9.1.0 resolution: "react-markdown@npm:9.1.0" dependencies: - "@types/hast": ^3.0.0 - "@types/mdast": ^4.0.0 - devlop: ^1.0.0 - hast-util-to-jsx-runtime: ^2.0.0 - html-url-attributes: ^3.0.0 - mdast-util-to-hast: ^13.0.0 - remark-parse: ^11.0.0 - remark-rehype: ^11.0.0 - unified: ^11.0.0 - unist-util-visit: ^5.0.0 - vfile: ^6.0.0 + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + devlop: "npm:^1.0.0" + hast-util-to-jsx-runtime: "npm:^2.0.0" + html-url-attributes: "npm:^3.0.0" + mdast-util-to-hast: "npm:^13.0.0" + remark-parse: "npm:^11.0.0" + remark-rehype: "npm:^11.0.0" + unified: "npm:^11.0.0" + unist-util-visit: "npm:^5.0.0" + vfile: "npm:^6.0.0" peerDependencies: "@types/react": ">=18" react: ">=18" - checksum: d78ca3b6bea23a3383d067ad8eb0aec3a22a4500663f32773be45ad38572b5f1b823184fafc85c1a35ff6290bddea42b003dc7bdfc02cf20a9e0163ecd3ea605 + checksum: 10/07045797b926afafc6aff692c9ee7d1cb9b12bc0e2d2b9f22ab17f2d1036dd807034a58565d67cfcfe94fe43961452a977496a175cbc9028ed51f2eec823c2f4 languageName: node linkType: hard "react-refresh@npm:^0.17.0": version: 0.17.0 resolution: "react-refresh@npm:0.17.0" - checksum: e9d23a70543edde879263976d7909cd30c6f698fa372a1240142cf7c8bf99e0396378b9c07c2d39c3a10261d7ba07dc49f990cd8f1ac7b88952e99040a0be5e9 + checksum: 10/5e94f07d43bb1cfdc9b0c6e0c8c73e754005489950dcff1edb53aa8451d1d69a47b740b195c7c80fb4eb511c56a3585dc55eddd83f0097fb5e015116a1460467 languageName: node linkType: hard @@ -8765,12 +8765,12 @@ __metadata: version: 6.30.0 resolution: "react-router-dom@npm:6.30.0" dependencies: - "@remix-run/router": 1.23.0 - react-router: 6.30.0 + "@remix-run/router": "npm:1.23.0" + react-router: "npm:6.30.0" peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: e1172127e52c4585397e7312e59e15f6547004f4d6f73631f1a991417a9ad7e272eb11ba248fcc7a9aeb93e7c425ebb2f959f54c7b01c7b119d13f94192c5e74 + checksum: 10/e161e39d56ee799553d0bc6c8f19c901ee8cdbae218094f41cbc18f3262cb4d5e9f8381bd47a7e59d30e55c0cdd0a6803aa98537f2f9122efbce5c66a3041a35 languageName: node linkType: hard @@ -8778,10 +8778,10 @@ __metadata: version: 6.30.0 resolution: "react-router@npm:6.30.0" dependencies: - "@remix-run/router": 1.23.0 + "@remix-run/router": "npm:1.23.0" peerDependencies: react: ">=16.8" - checksum: 35fe773f62b1943cf5ae65056e5d1acbfba50a572a908699881889f073639d42e0d839df107af48a7a058254d59505699b5d68831a714fe6d9aafce982403458 + checksum: 10/2a449f2769b7b001f9ea16108b83cd014b50c621a378ef2a99bb823a418833bc1b213f5f1665c97ecbdfa9391f9593693ace09a292969aa7259a45070b5e066a languageName: node linkType: hard @@ -8789,19 +8789,19 @@ __metadata: version: 5.10.1 resolution: "react-select@npm:5.10.1" dependencies: - "@babel/runtime": ^7.12.0 - "@emotion/cache": ^11.4.0 - "@emotion/react": ^11.8.1 - "@floating-ui/dom": ^1.0.1 - "@types/react-transition-group": ^4.4.0 - memoize-one: ^6.0.0 - prop-types: ^15.6.0 - react-transition-group: ^4.3.0 - use-isomorphic-layout-effect: ^1.2.0 + "@babel/runtime": "npm:^7.12.0" + "@emotion/cache": "npm:^11.4.0" + "@emotion/react": "npm:^11.8.1" + "@floating-ui/dom": "npm:^1.0.1" + "@types/react-transition-group": "npm:^4.4.0" + memoize-one: "npm:^6.0.0" + prop-types: "npm:^15.6.0" + react-transition-group: "npm:^4.3.0" + use-isomorphic-layout-effect: "npm:^1.2.0" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - checksum: b3050e46936416b024a8e76821beeb8b4275c1835db689aaaf1c8c3cae8afdade17a1711b53b63c72109b1c12711d64234285ea1468e95aaf33d5e6b0bb356e3 + checksum: 10/c0c4d798e9b1f654b56c26bffb149ab811d24ca0950c1e8c3675438065628561eb132c6a5982cea893a288a0e9af6f9d9db290f4e53da71570dada0c1147f146 languageName: node linkType: hard @@ -8809,12 +8809,12 @@ __metadata: version: 5.28.1 resolution: "react-tooltip@npm:5.28.1" dependencies: - "@floating-ui/dom": ^1.6.1 - classnames: ^2.3.0 + "@floating-ui/dom": "npm:^1.6.1" + classnames: "npm:^2.3.0" peerDependencies: react: ">=16.14.0" react-dom: ">=16.14.0" - checksum: dce1fb5c144f97b8bcecf81ba65c0737d5ba1d09cdca552b93426784ae5421da09e94e970da6452a1f9fe0487c3d3216d0b66e6371d70e72384be785dbabb210 + checksum: 10/64f89b6ed00fa19868c3ca813a807f6201e252d5ba91d651583a858a528444636b7c357ed31cc3a703b76c42789201ca047326ac1ceddd5bc19b340a1b0982a3 languageName: node linkType: hard @@ -8822,14 +8822,14 @@ __metadata: version: 4.4.5 resolution: "react-transition-group@npm:4.4.5" dependencies: - "@babel/runtime": ^7.5.5 - dom-helpers: ^5.0.1 - loose-envify: ^1.4.0 - prop-types: ^15.6.2 + "@babel/runtime": "npm:^7.5.5" + dom-helpers: "npm:^5.0.1" + loose-envify: "npm:^1.4.0" + prop-types: "npm:^15.6.2" peerDependencies: react: ">=16.6.0" react-dom: ">=16.6.0" - checksum: 75602840106aa9c6545149d6d7ae1502fb7b7abadcce70a6954c4b64a438ff1cd16fc77a0a1e5197cdd72da398f39eb929ea06f9005c45b132ed34e056ebdeb1 + checksum: 10/ca32d3fd2168c976c5d90a317f25d5f5cd723608b415fb3b9006f9d793c8965c619562d0884503a3e44e4b06efbca4fdd1520f30e58ca3e00a0890e637d55419 languageName: node linkType: hard @@ -8837,8 +8837,8 @@ __metadata: version: 18.3.1 resolution: "react@npm:18.3.1" dependencies: - loose-envify: ^1.1.0 - checksum: a27bcfa8ff7c15a1e50244ad0d0c1cb2ad4375eeffefd266a64889beea6f6b64c4966c9b37d14ee32d6c9fcd5aa6ba183b6988167ab4d127d13e7cb5b386a376 + loose-envify: "npm:^1.1.0" + checksum: 10/261137d3f3993eaa2368a83110466fc0e558bc2c7f7ae7ca52d94f03aac945f45146bd85e5f481044db1758a1dbb57879e2fcdd33924e2dde1bdc550ce73f7bf languageName: node linkType: hard @@ -8846,8 +8846,8 @@ __metadata: version: 1.0.0 resolution: "read-cache@npm:1.0.0" dependencies: - pify: ^2.3.0 - checksum: cffc728b9ede1e0667399903f9ecaf3789888b041c46ca53382fa3a06303e5132774dc0a96d0c16aa702dbac1ea0833d5a868d414f5ab2af1e1438e19e6657c6 + pify: "npm:^2.3.0" + checksum: 10/83a39149d9dfa38f0c482ea0d77b34773c92fef07fe7599cdd914d255b14d0453e0229ef6379d8d27d6947f42d7581635296d0cfa7708f05a9bd8e789d398b31 languageName: node linkType: hard @@ -8855,8 +8855,8 @@ __metadata: version: 3.6.0 resolution: "readdirp@npm:3.6.0" dependencies: - picomatch: ^2.2.1 - checksum: 1ced032e6e45670b6d7352d71d21ce7edf7b9b928494dcaba6f11fba63180d9da6cd7061ebc34175ffda6ff529f481818c962952004d273178acd70f7059b320 + picomatch: "npm:^2.2.1" + checksum: 10/196b30ef6ccf9b6e18c4e1724b7334f72a093d011a99f3b5920470f0b3406a51770867b3e1ae9711f227ef7a7065982f6ee2ce316746b2cb42c88efe44297fe7 languageName: node linkType: hard @@ -8864,22 +8864,22 @@ __metadata: version: 1.0.10 resolution: "reflect.getprototypeof@npm:1.0.10" dependencies: - call-bind: ^1.0.8 - define-properties: ^1.2.1 - es-abstract: ^1.23.9 - es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 - get-intrinsic: ^1.2.7 - get-proto: ^1.0.1 - which-builtin-type: ^1.2.1 - checksum: ccc5debeb66125e276ae73909cecb27e47c35d9bb79d9cc8d8d055f008c58010ab8cb401299786e505e4aab733a64cba9daf5f312a58e96a43df66adad221870 + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.9" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.7" + get-proto: "npm:^1.0.1" + which-builtin-type: "npm:^1.2.1" + checksum: 10/80a4e2be716f4fe46a89a08ccad0863b47e8ce0f49616cab2d65dab0fbd53c6fdba0f52935fd41d37a2e4e22355c272004f920d63070de849f66eea7aeb4a081 languageName: node linkType: hard "regenerator-runtime@npm:^0.14.0": version: 0.14.1 resolution: "regenerator-runtime@npm:0.14.1" - checksum: 9f57c93277b5585d3c83b0cf76be47b473ae8c6d9142a46ce8b0291a04bb2cf902059f0f8445dcabb3fb7378e5fe4bb4ea1e008876343d42e46d3b484534ce38 + checksum: 10/5db3161abb311eef8c45bcf6565f4f378f785900ed3945acf740a9888c792f75b98ecb77f0775f3bf95502ff423529d23e94f41d80c8256e8fa05ed4b07cf471 languageName: node linkType: hard @@ -8887,13 +8887,13 @@ __metadata: version: 1.5.4 resolution: "regexp.prototype.flags@npm:1.5.4" dependencies: - call-bind: ^1.0.8 - define-properties: ^1.2.1 - es-errors: ^1.3.0 - get-proto: ^1.0.1 - gopd: ^1.2.0 - set-function-name: ^2.0.2 - checksum: 18cb667e56cb328d2dda569d7f04e3ea78f2683135b866d606538cf7b1d4271f7f749f09608c877527799e6cf350e531368f3c7a20ccd1bb41048a48926bdeeb + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-errors: "npm:^1.3.0" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + set-function-name: "npm:^2.0.2" + checksum: 10/8ab897ca445968e0b96f6237641510f3243e59c180ee2ee8d83889c52ff735dd1bf3657fcd36db053e35e1d823dd53f2565d0b8021ea282c9fe62401c6c3bd6d languageName: node linkType: hard @@ -8901,8 +8901,8 @@ __metadata: version: 1.0.0 resolution: "release-zalgo@npm:1.0.0" dependencies: - es6-error: ^4.0.1 - checksum: b59849dc310f6c426f34e308c48ba83df3d034ddef75189951723bb2aac99d29d15f5e127edad951c4095fc9025aa582053907154d68fe0c5380cd6a75365e53 + es6-error: "npm:^4.0.1" + checksum: 10/1719e44b240ee1f57d034b26ea167f3cbf3c36fdae6d6efd0e6e5b202d9852baffc1c5595d378b5f8b2ad729b907ddd962f3d051d89499f83584993a5399f964 languageName: node linkType: hard @@ -8910,13 +8910,13 @@ __metadata: version: 4.0.1 resolution: "remark-gfm@npm:4.0.1" dependencies: - "@types/mdast": ^4.0.0 - mdast-util-gfm: ^3.0.0 - micromark-extension-gfm: ^3.0.0 - remark-parse: ^11.0.0 - remark-stringify: ^11.0.0 - unified: ^11.0.0 - checksum: b278f51c4496f15ad868b72bf2eb2066c23a0892b5885544d3a4c233c964d44e51a0efe22d3fb33db4fbac92aefd51bb33453b8e73077b041a12b8269a02c17d + "@types/mdast": "npm:^4.0.0" + mdast-util-gfm: "npm:^3.0.0" + micromark-extension-gfm: "npm:^3.0.0" + remark-parse: "npm:^11.0.0" + remark-stringify: "npm:^11.0.0" + unified: "npm:^11.0.0" + checksum: 10/86899862cf4ae1466664d3f88c6113e30b5e84e35480aef4093890aed2297ab9872506ff1f614c63963bba7d075c326d0027a1591c11bb493f6776dad21b95f6 languageName: node linkType: hard @@ -8924,11 +8924,11 @@ __metadata: version: 11.0.0 resolution: "remark-parse@npm:11.0.0" dependencies: - "@types/mdast": ^4.0.0 - mdast-util-from-markdown: ^2.0.0 - micromark-util-types: ^2.0.0 - unified: ^11.0.0 - checksum: d83d245290fa84bb04fb3e78111f09c74f7417e7c012a64dd8dc04fccc3699036d828fbd8eeec8944f774b6c30cc1d925c98f8c46495ebcee7c595496342ab7f + "@types/mdast": "npm:^4.0.0" + mdast-util-from-markdown: "npm:^2.0.0" + micromark-util-types: "npm:^2.0.0" + unified: "npm:^11.0.0" + checksum: 10/59d584be56ebc7c05524989c4ed86eb8a7b6e361942b705ca13a37349f60740a6073aedf7783af46ce920d09dd156148942d5e33e8be3dbcd47f818cb4bc410c languageName: node linkType: hard @@ -8936,12 +8936,12 @@ __metadata: version: 11.1.2 resolution: "remark-rehype@npm:11.1.2" dependencies: - "@types/hast": ^3.0.0 - "@types/mdast": ^4.0.0 - mdast-util-to-hast: ^13.0.0 - unified: ^11.0.0 - vfile: ^6.0.0 - checksum: 6eab55cb3464ec01d8e002cc9fe02ae57f48162899693fd53b5ba553ac8699dae7b55fce9df7131a5981313b19b495d6fbfa98a9d6bd243e7485591364d9b5b3 + "@types/hast": "npm:^3.0.0" + "@types/mdast": "npm:^4.0.0" + mdast-util-to-hast: "npm:^13.0.0" + unified: "npm:^11.0.0" + vfile: "npm:^6.0.0" + checksum: 10/b5374a0bf08398431c92740d0cd9b20aea9df44cee12326820ddcc1b7ee642706604006461ea9799554c347e7caf31e7432132a03b97c508e1f77d29c423bd86 languageName: node linkType: hard @@ -8949,10 +8949,10 @@ __metadata: version: 11.0.0 resolution: "remark-stringify@npm:11.0.0" dependencies: - "@types/mdast": ^4.0.0 - mdast-util-to-markdown: ^2.0.0 - unified: ^11.0.0 - checksum: 59e07460eb629d6c3b3c0f438b0b236e7e6858fd5ab770303078f5a556ec00354d9c7fb9ef6d5f745a4617ac7da1ab618b170fbb4dac120e183fecd9cc86bce6 + "@types/mdast": "npm:^4.0.0" + mdast-util-to-markdown: "npm:^2.0.0" + unified: "npm:^11.0.0" + checksum: 10/32b2f6093ba08e713183629b37e633e0999b6981560eec41f04fe957f76fc6f56dcc14c87c6b45419863be844c6f1130eb2dc055085fc0adc0775b1df7340348 languageName: node linkType: hard @@ -8960,43 +8960,43 @@ __metadata: version: 3.0.0 resolution: "request-progress@npm:3.0.0" dependencies: - throttleit: ^1.0.0 - checksum: 6ea1761dcc8a8b7b5894afd478c0286aa31bd69438d7050294bd4fd0d0b3e09b5cde417d38deef9c49809039c337d8744e4bb49d8632b0c3e4ffa5e8a687e0fd + throttleit: "npm:^1.0.0" + checksum: 10/c25b1c75fb0a0c3b38874abd7ebd58e320c55bc17a48e76772b26828d9e0f688741e144d31b678af9cf447cba32ae153efad05f8a2db225eb07135a613d3162b languageName: node linkType: hard "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1" - checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 + checksum: 10/a72468e2589270d91f06c7d36ec97a88db53ae5d6fe3787fadc943f0b0276b10347f89b363b2a82285f650bdcc135ad4a257c61bdd4d00d6df1fa24875b0ddaf languageName: node linkType: hard "require-main-filename@npm:^2.0.0": version: 2.0.0 resolution: "require-main-filename@npm:2.0.0" - checksum: e9e294695fea08b076457e9ddff854e81bffbe248ed34c1eec348b7abbd22a0d02e8d75506559e2265e96978f3c4720bd77a6dad84755de8162b357eb6c778c7 + checksum: 10/8604a570c06a69c9d939275becc33a65676529e1c3e5a9f42d58471674df79357872b96d70bb93a0380a62d60dc9031c98b1a9dad98c946ffdd61b7ac0c8cedd languageName: node linkType: hard "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" - checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f + checksum: 10/91eb76ce83621eea7bbdd9b55121a5c1c4a39e54a9ce04a9ad4517f102f8b5131c2cf07622c738a6683991bf54f2ce178f5a42803ecbd527ddc5105f362cc9e3 languageName: node linkType: hard "resolve-from@npm:^5.0.0": version: 5.0.0 resolution: "resolve-from@npm:5.0.0" - checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf + checksum: 10/be18a5e4d76dd711778664829841cde690971d02b6cbae277735a09c1c28f407b99ef6ef3cd585a1e6546d4097b28df40ed32c4a287b9699dcf6d7f208495e23 languageName: node linkType: hard "resolve-pkg-maps@npm:^1.0.0": version: 1.0.0 resolution: "resolve-pkg-maps@npm:1.0.0" - checksum: 1012afc566b3fdb190a6309cc37ef3b2dcc35dff5fa6683a9d00cd25c3247edfbc4691b91078c97adc82a29b77a2660c30d791d65dab4fc78bfc473f60289977 + checksum: 10/0763150adf303040c304009231314d1e84c6e5ebfa2d82b7d94e96a6e82bacd1dcc0b58ae257315f3c8adb89a91d8d0f12928241cba2df1680fbe6f60bf99b0e languageName: node linkType: hard @@ -9004,12 +9004,12 @@ __metadata: version: 1.22.10 resolution: "resolve@npm:1.22.10" dependencies: - is-core-module: ^2.16.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 + is-core-module: "npm:^2.16.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: ab7a32ff4046fcd7c6fdd525b24a7527847d03c3650c733b909b01b757f92eb23510afa9cc3e9bf3f26a3e073b48c88c706dfd4c1d2fb4a16a96b73b6328ddcf + checksum: 10/0a398b44da5c05e6e421d70108822c327675febb880eebe905587628de401854c61d5df02866ff34fc4cb1173a51c9f0e84a94702738df3611a62e2acdc68181 languageName: node linkType: hard @@ -9017,38 +9017,38 @@ __metadata: version: 2.0.0-next.5 resolution: "resolve@npm:2.0.0-next.5" dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: a73ac69a1c4bd34c56b213d91f5b17ce390688fdb4a1a96ed3025cc7e08e7bfb90b3a06fcce461780cb0b589c958afcb0080ab802c71c01a7ecc8c64feafc89f + checksum: 10/2d6fd28699f901744368e6f2032b4268b4c7b9185fd8beb64f68c93ac6b22e52ae13560ceefc96241a665b985edf9ffd393ae26d2946a7d3a07b7007b7d51e79 languageName: node linkType: hard -"resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.22.8#~builtin": +"resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.22.8#optional!builtin": version: 1.22.10 - resolution: "resolve@patch:resolve@npm%3A1.22.10#~builtin::version=1.22.10&hash=07638b" + resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d" dependencies: - is-core-module: ^2.16.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 + is-core-module: "npm:^2.16.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 8aac1e4e4628bd00bf4b94b23de137dd3fe44097a8d528fd66db74484be929936e20c696e1a3edf4488f37e14180b73df6f600992baea3e089e8674291f16c9d + checksum: 10/d4d878bfe3702d215ea23e75e0e9caf99468e3db76f5ca100d27ebdc527366fee3877e54bce7d47cc72ca8952fc2782a070d238bfa79a550eeb0082384c3b81a languageName: node linkType: hard -"resolve@patch:resolve@^2.0.0-next.5#~builtin": +"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin": version: 2.0.0-next.5 - resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#~builtin::version=2.0.0-next.5&hash=07638b" + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d" dependencies: - is-core-module: ^2.13.0 - path-parse: ^1.0.7 - supports-preserve-symlinks-flag: ^1.0.0 + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 064d09c1808d0c51b3d90b5d27e198e6d0c5dad0eb57065fd40803d6a20553e5398b07f76739d69cbabc12547058bec6b32106ea66622375fb0d7e8fca6a846c + checksum: 10/05fa778de9d0347c8b889eb7a18f1f06bf0f801b0eb4610b4871a4b2f22e220900cf0ad525e94f990bb8d8921c07754ab2122c0c225ab4cdcea98f36e64fa4c2 languageName: node linkType: hard @@ -9056,9 +9056,9 @@ __metadata: version: 3.1.0 resolution: "restore-cursor@npm:3.1.0" dependencies: - onetime: ^5.1.0 - signal-exit: ^3.0.2 - checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + checksum: 10/f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 languageName: node linkType: hard @@ -9066,30 +9066,30 @@ __metadata: version: 5.1.0 resolution: "restore-cursor@npm:5.1.0" dependencies: - onetime: ^7.0.0 - signal-exit: ^4.1.0 - checksum: 838dd54e458d89cfbc1a923b343c1b0f170a04100b4ce1733e97531842d7b440463967e521216e8ab6c6f8e89df877acc7b7f4c18ec76e99fb9bf5a60d358d2c + onetime: "npm:^7.0.0" + signal-exit: "npm:^4.1.0" + checksum: 10/838dd54e458d89cfbc1a923b343c1b0f170a04100b4ce1733e97531842d7b440463967e521216e8ab6c6f8e89df877acc7b7f4c18ec76e99fb9bf5a60d358d2c languageName: node linkType: hard "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" - checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + checksum: 10/1f914879f97e7ee931ad05fe3afa629bd55270fc6cf1c1e589b6a99fab96d15daad0fa1a52a00c729ec0078045fe3e399bd4fd0c93bcc906957bdc17f89cb8e6 languageName: node linkType: hard "reusify@npm:^1.0.4": version: 1.1.0 resolution: "reusify@npm:1.1.0" - checksum: 64cb3142ac5e9ad689aca289585cb41d22521f4571f73e9488af39f6b1bd62f0cbb3d65e2ecc768ec6494052523f473f1eb4b55c3e9014b3590c17fc6a03e22a + checksum: 10/af47851b547e8a8dc89af144fceee17b80d5beaf5e6f57ed086432d79943434ff67ca526e92275be6f54b6189f6920a24eace75c2657eed32d02c400312b21ec languageName: node linkType: hard "rfdc@npm:^1.3.0, rfdc@npm:^1.4.1": version: 1.4.1 resolution: "rfdc@npm:1.4.1" - checksum: 3b05bd55062c1d78aaabfcea43840cdf7e12099968f368e9a4c3936beb744adb41cbdb315eac6d4d8c6623005d6f87fdf16d8a10e1ff3722e84afea7281c8d13 + checksum: 10/2f3d11d3d8929b4bfeefc9acb03aae90f971401de0add5ae6c5e38fec14f0405e6a4aad8fdb76344bfdd20c5193110e3750cbbd28ba86d73729d222b6cf4a729 languageName: node linkType: hard @@ -9097,10 +9097,10 @@ __metadata: version: 3.0.2 resolution: "rimraf@npm:3.0.2" dependencies: - glob: ^7.1.3 + glob: "npm:^7.1.3" bin: rimraf: bin.js - checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + checksum: 10/063ffaccaaaca2cfd0ef3beafb12d6a03dd7ff1260d752d62a6077b5dfff6ae81bea571f655bb6b589d366930ec1bdd285d40d560c0dae9b12f125e54eb743d5 languageName: node linkType: hard @@ -9108,28 +9108,28 @@ __metadata: version: 4.40.0 resolution: "rollup@npm:4.40.0" dependencies: - "@rollup/rollup-android-arm-eabi": 4.40.0 - "@rollup/rollup-android-arm64": 4.40.0 - "@rollup/rollup-darwin-arm64": 4.40.0 - "@rollup/rollup-darwin-x64": 4.40.0 - "@rollup/rollup-freebsd-arm64": 4.40.0 - "@rollup/rollup-freebsd-x64": 4.40.0 - "@rollup/rollup-linux-arm-gnueabihf": 4.40.0 - "@rollup/rollup-linux-arm-musleabihf": 4.40.0 - "@rollup/rollup-linux-arm64-gnu": 4.40.0 - "@rollup/rollup-linux-arm64-musl": 4.40.0 - "@rollup/rollup-linux-loongarch64-gnu": 4.40.0 - "@rollup/rollup-linux-powerpc64le-gnu": 4.40.0 - "@rollup/rollup-linux-riscv64-gnu": 4.40.0 - "@rollup/rollup-linux-riscv64-musl": 4.40.0 - "@rollup/rollup-linux-s390x-gnu": 4.40.0 - "@rollup/rollup-linux-x64-gnu": 4.40.0 - "@rollup/rollup-linux-x64-musl": 4.40.0 - "@rollup/rollup-win32-arm64-msvc": 4.40.0 - "@rollup/rollup-win32-ia32-msvc": 4.40.0 - "@rollup/rollup-win32-x64-msvc": 4.40.0 - "@types/estree": 1.0.7 - fsevents: ~2.3.2 + "@rollup/rollup-android-arm-eabi": "npm:4.40.0" + "@rollup/rollup-android-arm64": "npm:4.40.0" + "@rollup/rollup-darwin-arm64": "npm:4.40.0" + "@rollup/rollup-darwin-x64": "npm:4.40.0" + "@rollup/rollup-freebsd-arm64": "npm:4.40.0" + "@rollup/rollup-freebsd-x64": "npm:4.40.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.40.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.40.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.40.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.40.0" + "@rollup/rollup-linux-loongarch64-gnu": "npm:4.40.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.40.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.40.0" + "@rollup/rollup-linux-riscv64-musl": "npm:4.40.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.40.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.40.0" + "@rollup/rollup-linux-x64-musl": "npm:4.40.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.40.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.40.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.40.0" + "@types/estree": "npm:1.0.7" + fsevents: "npm:~2.3.2" dependenciesMeta: "@rollup/rollup-android-arm-eabi": optional: true @@ -9175,7 +9175,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 4826d7bbb48147403023133b6d8a67f792efe3463def637713bed392b5d7fc9903b4b86de44c58420304beca9e8d108268036e9081fff675af6c01822ef6b2b9 + checksum: 10/59976247cd855bc48b7192c82a6751bd04213e5a265109c652a6c43bde9056038c6399c0cf50ea3001edd5c11bb878a59e1055bb651b3bd6bbd0373c0345ed0c languageName: node linkType: hard @@ -9183,8 +9183,8 @@ __metadata: version: 1.2.0 resolution: "run-parallel@npm:1.2.0" dependencies: - queue-microtask: ^1.2.2 - checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + queue-microtask: "npm:^1.2.2" + checksum: 10/cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d languageName: node linkType: hard @@ -9192,8 +9192,8 @@ __metadata: version: 7.8.2 resolution: "rxjs@npm:7.8.2" dependencies: - tslib: ^2.1.0 - checksum: 2f233d7c832a6c255dabe0759014d7d9b1c9f1cb2f2f0d59690fd11c883c9826ea35a51740c06ab45b6ade0d9087bde9192f165cba20b6730d344b831ef80744 + tslib: "npm:^2.1.0" + checksum: 10/03dff09191356b2b87d94fbc1e97c4e9eb3c09d4452399dddd451b09c2f1ba8d56925a40af114282d7bc0c6fe7514a2236ca09f903cf70e4bbf156650dddb49d languageName: node linkType: hard @@ -9201,19 +9201,19 @@ __metadata: version: 1.1.3 resolution: "safe-array-concat@npm:1.1.3" dependencies: - call-bind: ^1.0.8 - call-bound: ^1.0.2 - get-intrinsic: ^1.2.6 - has-symbols: ^1.1.0 - isarray: ^2.0.5 - checksum: 00f6a68140e67e813f3ad5e73e6dedcf3e42a9fa01f04d44b0d3f7b1f4b257af876832a9bfc82ac76f307e8a6cc652e3cf95876048a26cbec451847cf6ae3707 + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.6" + has-symbols: "npm:^1.1.0" + isarray: "npm:^2.0.5" + checksum: 10/fac4f40f20a3f7da024b54792fcc61059e814566dcbb04586bfefef4d3b942b2408933f25b7b3dd024affd3f2a6bbc916bef04807855e4f192413941369db864 languageName: node linkType: hard "safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.2": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" - checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + checksum: 10/32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451 languageName: node linkType: hard @@ -9221,9 +9221,9 @@ __metadata: version: 1.0.0 resolution: "safe-push-apply@npm:1.0.0" dependencies: - es-errors: ^1.3.0 - isarray: ^2.0.5 - checksum: 8c11cbee6dc8ff5cc0f3d95eef7052e43494591384015902e4292aef4ae9e539908288520ed97179cee17d6ffb450fe5f05a46ce7a1749685f7524fd568ab5db + es-errors: "npm:^1.3.0" + isarray: "npm:^2.0.5" + checksum: 10/2bd4e53b6694f7134b9cf93631480e7fafc8637165f0ee91d5a4af5e7f33d37de9562d1af5021178dd4217d0230cde8d6530fa28cfa1ebff9a431bf8fff124b4 languageName: node linkType: hard @@ -9231,24 +9231,24 @@ __metadata: version: 1.1.0 resolution: "safe-regex-test@npm:1.1.0" dependencies: - call-bound: ^1.0.2 - es-errors: ^1.3.0 - is-regex: ^1.2.1 - checksum: 3c809abeb81977c9ed6c869c83aca6873ea0f3ab0f806b8edbba5582d51713f8a6e9757d24d2b4b088f563801475ea946c8e77e7713e8c65cdd02305b6caedab + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + is-regex: "npm:^1.2.1" + checksum: 10/ebdb61f305bf4756a5b023ad86067df5a11b26898573afe9e52a548a63c3bd594825d9b0e2dde2eb3c94e57e0e04ac9929d4107c394f7b8e56a4613bed46c69a languageName: node linkType: hard "safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" - checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + checksum: 10/7eaf7a0cf37cc27b42fb3ef6a9b1df6e93a1c6d98c6c6702b02fe262d5fcbd89db63320793b99b21cb5348097d0a53de81bd5f4e8b86e20cc9412e3f1cfb4e83 languageName: node linkType: hard "scale-ts@npm:^1.6.0": version: 1.6.1 resolution: "scale-ts@npm:1.6.1" - checksum: 0e045e45184194eab4770d823a2d455646eae7fc827f0f6162ca409f4f3387415a152e885f1594ba327da5b62ebc355c16049c5573c9a298038bd5d741a92175 + checksum: 10/f1f9bf1d9abfcfcaf8ae2ae326270beca5c2456cc72f6b6b8230aa175a30bdcd6387678746a4d873c834efbba9c8e015698d42ee67bd71b70f7adfe2e0ba1d39 languageName: node linkType: hard @@ -9256,8 +9256,8 @@ __metadata: version: 0.23.2 resolution: "scheduler@npm:0.23.2" dependencies: - loose-envify: ^1.1.0 - checksum: 3e82d1f419e240ef6219d794ff29c7ee415fbdc19e038f680a10c067108e06284f1847450a210b29bbaf97b9d8a97ced5f624c31c681248ac84c80d56ad5a2c4 + loose-envify: "npm:^1.1.0" + checksum: 10/e8d68b89d18d5b028223edf090092846868a765a591944760942b77ea1f69b17235f7e956696efbb62c8130ab90af7e0949bfb8eba7896335507317236966bc9 languageName: node linkType: hard @@ -9266,7 +9266,7 @@ __metadata: resolution: "semver@npm:5.7.2" bin: semver: bin/semver - checksum: fb4ab5e0dd1c22ce0c937ea390b4a822147a9c53dbd2a9a0132f12fe382902beef4fbf12cf51bb955248d8d15874ce8cd89532569756384f994309825f10b686 + checksum: 10/fca14418a174d4b4ef1fecb32c5941e3412d52a4d3d85165924ce3a47fbc7073372c26faf7484ceb4bbc2bde25880c6b97e492473dc7e9708fdfb1c6a02d546e languageName: node linkType: hard @@ -9275,7 +9275,7 @@ __metadata: resolution: "semver@npm:6.3.1" bin: semver: bin/semver.js - checksum: ae47d06de28836adb9d3e25f22a92943477371292d9b665fb023fae278d345d508ca1958232af086d85e0155aee22e313e100971898bbb8d5d89b8b1d4054ca2 + checksum: 10/1ef3a85bd02a760c6ef76a45b8c1ce18226de40831e02a00bad78485390b98b6ccaa31046245fc63bba4a47a6a592b6c7eedc65cc47126e60489f9cc1ce3ed7e languageName: node linkType: hard @@ -9284,14 +9284,14 @@ __metadata: resolution: "semver@npm:7.7.1" bin: semver: bin/semver.js - checksum: 586b825d36874007c9382d9e1ad8f93888d8670040add24a28e06a910aeebd673a2eb9e3bf169c6679d9245e66efb9057e0852e70d9daa6c27372aab1dda7104 + checksum: 10/4cfa1eb91ef3751e20fc52e47a935a0118d56d6f15a837ab814da0c150778ba2ca4f1a4d9068b33070ea4273629e615066664c2cfcd7c272caf7a8a0f6518b2c languageName: node linkType: hard "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" - checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 + checksum: 10/8980ebf7ae9eb945bb036b6e283c547ee783a1ad557a82babf758a065e2fb6ea337fd82cac30dd565c1e606e423f30024a19fff7afbf4977d784720c4026a8ef languageName: node linkType: hard @@ -9299,13 +9299,13 @@ __metadata: version: 1.2.2 resolution: "set-function-length@npm:1.2.2" 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 - checksum: a8248bdacdf84cb0fab4637774d9fb3c7a8e6089866d04c817583ff48e14149c87044ce683d7f50759a8c50fb87c7a7e173535b06169c87ef76f5fb276dfff72 + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/505d62b8e088468917ca4e3f8f39d0e29f9a563b97dbebf92f4bd2c3172ccfb3c5b8e4566d5fcd00784a00433900e7cb8fbc404e2dbd8c3818ba05bb9d4a8a6d languageName: node linkType: hard @@ -9313,11 +9313,11 @@ __metadata: version: 2.0.2 resolution: "set-function-name@npm:2.0.2" dependencies: - define-data-property: ^1.1.4 - es-errors: ^1.3.0 - functions-have-names: ^1.2.3 - has-property-descriptors: ^1.0.2 - checksum: d6229a71527fd0404399fc6227e0ff0652800362510822a291925c9d7b48a1ca1a468b11b281471c34cd5a2da0db4f5d7ff315a61d26655e77f6e971e6d0c80f + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + functions-have-names: "npm:^1.2.3" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/c7614154a53ebf8c0428a6c40a3b0b47dac30587c1a19703d1b75f003803f73cdfa6a93474a9ba678fa565ef5fbddc2fae79bca03b7d22ab5fd5163dbe571a74 languageName: node linkType: hard @@ -9325,10 +9325,10 @@ __metadata: version: 1.0.0 resolution: "set-proto@npm:1.0.0" dependencies: - dunder-proto: ^1.0.1 - es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 - checksum: ec27cbbe334598547e99024403e96da32aca3e530583e4dba7f5db1c43cbc4affa9adfbd77c7b2c210b9b8b2e7b2e600bad2a6c44fd62e804d8233f96bbb62f4 + dunder-proto: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + checksum: 10/b87f8187bca595ddc3c0721ece4635015fd9d7cb294e6dd2e394ce5186a71bbfa4dc8a35010958c65e43ad83cde09642660e61a952883c24fd6b45ead15f045c languageName: node linkType: hard @@ -9336,15 +9336,15 @@ __metadata: version: 2.0.0 resolution: "shebang-command@npm:2.0.0" dependencies: - shebang-regex: ^3.0.0 - checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + shebang-regex: "npm:^3.0.0" + checksum: 10/6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa languageName: node linkType: hard "shebang-regex@npm:^3.0.0": version: 3.0.0 resolution: "shebang-regex@npm:3.0.0" - checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + checksum: 10/1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 languageName: node linkType: hard @@ -9352,9 +9352,9 @@ __metadata: version: 1.0.0 resolution: "side-channel-list@npm:1.0.0" dependencies: - es-errors: ^1.3.0 - object-inspect: ^1.13.3 - checksum: 603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + checksum: 10/603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f languageName: node linkType: hard @@ -9362,11 +9362,11 @@ __metadata: version: 1.0.1 resolution: "side-channel-map@npm:1.0.1" dependencies: - call-bound: ^1.0.2 - es-errors: ^1.3.0 - get-intrinsic: ^1.2.5 - object-inspect: ^1.13.3 - checksum: 42501371cdf71f4ccbbc9c9e2eb00aaaab80a4c1c429d5e8da713fd4d39ef3b8d4a4b37ed4f275798a65260a551a7131fd87fe67e922dba4ac18586d6aab8b06 + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + checksum: 10/5771861f77feefe44f6195ed077a9e4f389acc188f895f570d56445e251b861754b547ea9ef73ecee4e01fdada6568bfe9020d2ec2dfc5571e9fa1bbc4a10615 languageName: node linkType: hard @@ -9374,12 +9374,12 @@ __metadata: version: 1.0.2 resolution: "side-channel-weakmap@npm:1.0.2" dependencies: - call-bound: ^1.0.2 - es-errors: ^1.3.0 - get-intrinsic: ^1.2.5 - object-inspect: ^1.13.3 - side-channel-map: ^1.0.1 - checksum: a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + side-channel-map: "npm:^1.0.1" + checksum: 10/a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 languageName: node linkType: hard @@ -9387,47 +9387,47 @@ __metadata: version: 1.1.0 resolution: "side-channel@npm:1.1.0" dependencies: - es-errors: ^1.3.0 - object-inspect: ^1.13.3 - side-channel-list: ^1.0.0 - side-channel-map: ^1.0.1 - side-channel-weakmap: ^1.0.2 - checksum: bf73d6d6682034603eb8e99c63b50155017ed78a522d27c2acec0388a792c3ede3238b878b953a08157093b85d05797217d270b7666ba1f111345fbe933380ff + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + side-channel-list: "npm:^1.0.0" + side-channel-map: "npm:^1.0.1" + side-channel-weakmap: "npm:^1.0.2" + checksum: 10/7d53b9db292c6262f326b6ff3bc1611db84ece36c2c7dc0e937954c13c73185b0406c56589e2bb8d071d6fee468e14c39fb5d203ee39be66b7b8174f179afaba languageName: node linkType: hard "siginfo@npm:^2.0.0": version: 2.0.0 resolution: "siginfo@npm:2.0.0" - checksum: 8aa5a98640ca09fe00d74416eca97551b3e42991614a3d1b824b115fc1401543650914f651ab1311518177e4d297e80b953f4cd4cd7ea1eabe824e8f2091de01 + checksum: 10/e93ff66c6531a079af8fb217240df01f980155b5dc408d2d7bebc398dd284e383eb318153bf8acd4db3c4fe799aa5b9a641e38b0ba3b1975700b1c89547ea4e7 languageName: node linkType: hard "sigmund@npm:^1.0.1": version: 1.0.1 resolution: "sigmund@npm:1.0.1" - checksum: 793f81f8083ad75ff3903ffd93cf35be8d797e872822cf880aea27ce6db522b508d93ea52ae292bccf357ce34dd5c7faa544cc51c2216e70bbf5fcf09b62707c + checksum: 10/5c199a9f7b24483bec8289dcaf72a0280382fc6ece47a19ddb3c8599b2f9126d4e113710a69fba2c70e22a7f2eadcd8adefb142700164ef19699f4ea1c02cbaa languageName: node linkType: hard "signal-exit@npm:^3.0.2": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" - checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + checksum: 10/a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 languageName: node linkType: hard "signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" - checksum: 64c757b498cb8629ffa5f75485340594d2f8189e9b08700e69199069c8e3070fb3e255f7ab873c05dc0b3cec412aea7402e10a5990cb6a050bd33ba062a6c549 + checksum: 10/c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f languageName: node linkType: hard "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" - checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c + checksum: 10/94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c languageName: node linkType: hard @@ -9435,10 +9435,10 @@ __metadata: version: 3.0.0 resolution: "slice-ansi@npm:3.0.0" dependencies: - ansi-styles: ^4.0.0 - astral-regex: ^2.0.0 - is-fullwidth-code-point: ^3.0.0 - checksum: 5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24 + ansi-styles: "npm:^4.0.0" + astral-regex: "npm:^2.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + checksum: 10/5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24 languageName: node linkType: hard @@ -9446,10 +9446,10 @@ __metadata: version: 4.0.0 resolution: "slice-ansi@npm:4.0.0" dependencies: - ansi-styles: ^4.0.0 - astral-regex: ^2.0.0 - is-fullwidth-code-point: ^3.0.0 - checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 + ansi-styles: "npm:^4.0.0" + astral-regex: "npm:^2.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + checksum: 10/4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 languageName: node linkType: hard @@ -9457,9 +9457,9 @@ __metadata: version: 5.0.0 resolution: "slice-ansi@npm:5.0.0" dependencies: - ansi-styles: ^6.0.0 - is-fullwidth-code-point: ^4.0.0 - checksum: 7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e + ansi-styles: "npm:^6.0.0" + is-fullwidth-code-point: "npm:^4.0.0" + checksum: 10/7e600a2a55e333a21ef5214b987c8358fe28bfb03c2867ff2cbf919d62143d1812ac27b4297a077fdaf27a03da3678e49551c93e35f9498a3d90221908a1180e languageName: node linkType: hard @@ -9467,16 +9467,16 @@ __metadata: version: 7.1.0 resolution: "slice-ansi@npm:7.1.0" dependencies: - ansi-styles: ^6.2.1 - is-fullwidth-code-point: ^5.0.0 - checksum: 10313dd3cf7a2e4b265f527b1684c7c568210b09743fd1bd74f2194715ed13ffba653dc93a5fa79e3b1711518b8990a732cb7143aa01ddafe626e99dfa6474b2 + ansi-styles: "npm:^6.2.1" + is-fullwidth-code-point: "npm:^5.0.0" + checksum: 10/10313dd3cf7a2e4b265f527b1684c7c568210b09743fd1bd74f2194715ed13ffba653dc93a5fa79e3b1711518b8990a732cb7143aa01ddafe626e99dfa6474b2 languageName: node linkType: hard "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" - checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + checksum: 10/927484aa0b1640fd9473cee3e0a0bcad6fce93fd7bbc18bac9ad0c33686f5d2e2c422fba24b5899c184524af01e11dd2bd051c2bf2b07e47aff8ca72cbfc60d2 languageName: node linkType: hard @@ -9484,8 +9484,8 @@ __metadata: version: 2.0.26 resolution: "smoldot@npm:2.0.26" dependencies: - ws: ^8.8.1 - checksum: df1b27afae3ade7ee08947ca73f6e7afd450106b7ae4ff127ad7e71b7c20b01a2dc64135a07a7039aeeb23ad30fb549d7003c3131afa368f47125abf6837d919 + ws: "npm:^8.8.1" + checksum: 10/b975c8ef16e2286b2eddc8c19c18080bd528f27e9abc0e2731304823e67ebe1fc71b01bed2c070d00da1f7e2f69e25c159c976d27eb1796de4a978362dae701e languageName: node linkType: hard @@ -9493,14 +9493,14 @@ __metadata: version: 2.8.3 resolution: "snap-shot-compare@npm:2.8.3" dependencies: - check-more-types: 2.24.0 - debug: 4.1.1 - disparity: 2.0.0 - folktale: 2.3.2 - lazy-ass: 1.6.0 - strip-ansi: 5.2.0 - variable-diff: 1.1.0 - checksum: ea4632d0d9661783c96e8166fb956dabf87f5642e41482048008401eb1058058248d19c7113cecf6244aaf0dd68506953a0baee017466ea9ea4ecd63fa551516 + check-more-types: "npm:2.24.0" + debug: "npm:4.1.1" + disparity: "npm:2.0.0" + folktale: "npm:2.3.2" + lazy-ass: "npm:1.6.0" + strip-ansi: "npm:5.2.0" + variable-diff: "npm:1.1.0" + checksum: 10/14fa4e9386524c8e05d79db5e1fe1698ee007f2e95d9f96c8144e32f9efef15529a422ade02d4d6ded33d1b0d99e124f4b3c52d1549935362c82044de528ec93 languageName: node linkType: hard @@ -9508,12 +9508,12 @@ __metadata: version: 1.2.3 resolution: "snap-shot-store@npm:1.2.3" dependencies: - check-more-types: 2.24.0 - debug: 3.1.0 - folktale: 2.0.1 - lazy-ass: 1.6.0 - ramda: 0.25.0 - checksum: fc0e19ac1ab1f9e934363b7f1b535f21b6704c7490db19e81afbdd229f8aa7af07334e04fbfd72c0a26cba845b166face463c9a45a9ed5276f8421c8f78be76e + check-more-types: "npm:2.24.0" + debug: "npm:3.1.0" + folktale: "npm:2.0.1" + lazy-ass: "npm:1.6.0" + ramda: "npm:0.25.0" + checksum: 10/3772875baf455e9528f1b1cb93280dafc874b5ee1e4a0afa1719e6ed1692cf4c26bedd6429b250dfc07202ddb2501cc1adbdfbb6f20bcbfb675637a4c2b88837 languageName: node linkType: hard @@ -9521,10 +9521,10 @@ __metadata: version: 8.0.5 resolution: "socks-proxy-agent@npm:8.0.5" dependencies: - agent-base: ^7.1.2 - debug: ^4.3.4 - socks: ^2.8.3 - checksum: b4fbcdb7ad2d6eec445926e255a1fb95c975db0020543fbac8dfa6c47aecc6b3b619b7fb9c60a3f82c9b2969912a5e7e174a056ae4d98cb5322f3524d6036e1d + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10/ee99e1dacab0985b52cbe5a75640be6e604135e9489ebdc3048635d186012fbaecc20fbbe04b177dee434c319ba20f09b3e7dfefb7d932466c0d707744eac05c languageName: node linkType: hard @@ -9532,16 +9532,16 @@ __metadata: version: 2.8.4 resolution: "socks@npm:2.8.4" dependencies: - ip-address: ^9.0.5 - smart-buffer: ^4.2.0 - checksum: cd1edc924475d5dfde534adf66038df7e62c7343e6b8c0113e52dc9bb6a0a10e25b2f136197f379d695f18e8f0f2b7f6e42977bf720ddbee912a851201c396ad + ip-address: "npm:^9.0.5" + smart-buffer: "npm:^4.2.0" + checksum: 10/ab3af97aeb162f32c80e176c717ccf16a11a6ebb4656a62b94c0f96495ea2a1f4a8206c04b54438558485d83d0c5f61920c07a1a5d3963892a589b40cc6107dd languageName: node linkType: hard "source-map-js@npm:^1.2.1": version: 1.2.1 resolution: "source-map-js@npm:1.2.1" - checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b + checksum: 10/ff9d8c8bf096d534a5b7707e0382ef827b4dd360a577d3f34d2b9f48e12c9d230b5747974ee7c607f0df65113732711bb701fe9ece3c7edbd43cb2294d707df3 languageName: node linkType: hard @@ -9549,37 +9549,37 @@ __metadata: version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: - buffer-from: ^1.0.0 - source-map: ^0.6.0 - checksum: 43e98d700d79af1d36f859bdb7318e601dfc918c7ba2e98456118ebc4c4872b327773e5a1df09b0524e9e5063bb18f0934538eace60cca2710d1fa687645d137 + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10/8317e12d84019b31e34b86d483dd41d6f832f389f7417faf8fc5c75a66a12d9686e47f589a0554a868b8482f037e23df9d040d29387eb16fa14cb85f091ba207 languageName: node linkType: hard "source-map@npm:^0.5.7": version: 0.5.7 resolution: "source-map@npm:0.5.7" - checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d + checksum: 10/9b4ac749ec5b5831cad1f8cc4c19c4298ebc7474b24a0acf293e2f040f03f8eeccb3d01f12aa0f90cf46d555c887e03912b83a042c627f419bda5152d89c5269 languageName: node linkType: hard "source-map@npm:^0.6.0, source-map@npm:^0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" - checksum: 59ce8640cf3f3124f64ac289012c2b8bd377c238e316fb323ea22fbfe83da07d81e000071d7242cad7a23cd91c7de98e4df8830ec3f133cb6133a5f6e9f67bc2 + checksum: 10/59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff languageName: node linkType: hard "source-map@npm:^0.7.4": version: 0.7.4 resolution: "source-map@npm:0.7.4" - checksum: 01cc5a74b1f0e1d626a58d36ad6898ea820567e87f18dfc9d24a9843a351aaa2ec09b87422589906d6ff1deed29693e176194dc88bcae7c9a852dc74b311dbf5 + checksum: 10/a0f7c9b797eda93139842fd28648e868a9a03ea0ad0d9fa6602a0c1f17b7fb6a7dcca00c144476cccaeaae5042e99a285723b1a201e844ad67221bf5d428f1dc languageName: node linkType: hard "space-separated-tokens@npm:^2.0.0": version: 2.0.2 resolution: "space-separated-tokens@npm:2.0.2" - checksum: 202e97d7ca1ba0758a0aa4fe226ff98142073bcceeff2da3aad037968878552c3bbce3b3231970025375bbba5aee00c5b8206eda408da837ab2dc9c0f26be990 + checksum: 10/202e97d7ca1ba0758a0aa4fe226ff98142073bcceeff2da3aad037968878552c3bbce3b3231970025375bbba5aee00c5b8206eda408da837ab2dc9c0f26be990 languageName: node linkType: hard @@ -9587,27 +9587,27 @@ __metadata: version: 2.0.0 resolution: "spawn-wrap@npm:2.0.0" dependencies: - foreground-child: ^2.0.0 - is-windows: ^1.0.2 - make-dir: ^3.0.0 - rimraf: ^3.0.0 - signal-exit: ^3.0.2 - which: ^2.0.1 - checksum: 5a518e37620def6d516b86207482a4f76bcf3c37c57d8d886d9fa399b04e5668d11fd12817b178029b02002a5ebbd09010374307effa821ba39594042f0a2d96 + foreground-child: "npm:^2.0.0" + is-windows: "npm:^1.0.2" + make-dir: "npm:^3.0.0" + rimraf: "npm:^3.0.0" + signal-exit: "npm:^3.0.2" + which: "npm:^2.0.1" + checksum: 10/ce6ca08d66c3a41a28a7ecc10bf4945d7930fd3ae961d40804ee109cee6ee9f8436125f53bc07918ca1eb461fe2ff0033af1dc3cb803469b585639675fc2d2e7 languageName: node linkType: hard "sprintf-js@npm:^1.1.3": version: 1.1.3 resolution: "sprintf-js@npm:1.1.3" - checksum: a3fdac7b49643875b70864a9d9b469d87a40dfeaf5d34d9d0c5b1cda5fd7d065531fcb43c76357d62254c57184a7b151954156563a4d6a747015cfb41021cad0 + checksum: 10/e7587128c423f7e43cc625fe2f87e6affdf5ca51c1cc468e910d8aaca46bb44a7fbcfa552f787b1d3987f7043aeb4527d1b99559e6621e01b42b3f45e5a24cbb languageName: node linkType: hard "sprintf-js@npm:~1.0.2": version: 1.0.3 resolution: "sprintf-js@npm:1.0.3" - checksum: 19d79aec211f09b99ec3099b5b2ae2f6e9cdefe50bc91ac4c69144b6d3928a640bb6ae5b3def70c2e85a2c3d9f5ec2719921e3a59d3ca3ef4b2fd1a4656a0df3 + checksum: 10/c34828732ab8509c2741e5fd1af6b767c3daf2c642f267788f933a65b1614943c282e74c4284f4fa749c264b18ee016a0d37a3e5b73aee446da46277d3a85daa languageName: node linkType: hard @@ -9615,20 +9615,20 @@ __metadata: version: 1.18.0 resolution: "sshpk@npm:1.18.0" dependencies: - asn1: ~0.2.3 - assert-plus: ^1.0.0 - bcrypt-pbkdf: ^1.0.0 - dashdash: ^1.12.0 - ecc-jsbn: ~0.1.1 - getpass: ^0.1.1 - jsbn: ~0.1.0 - safer-buffer: ^2.0.2 - tweetnacl: ~0.14.0 + asn1: "npm:~0.2.3" + assert-plus: "npm:^1.0.0" + bcrypt-pbkdf: "npm:^1.0.0" + dashdash: "npm:^1.12.0" + ecc-jsbn: "npm:~0.1.1" + getpass: "npm:^0.1.1" + jsbn: "npm:~0.1.0" + safer-buffer: "npm:^2.0.2" + tweetnacl: "npm:~0.14.0" bin: sshpk-conv: bin/sshpk-conv sshpk-sign: bin/sshpk-sign sshpk-verify: bin/sshpk-verify - checksum: 01d43374eee3a7e37b3b82fdbecd5518cbb2e47ccbed27d2ae30f9753f22bd6ffad31225cb8ef013bc3fb7785e686cea619203ee1439a228f965558c367c3cfa + checksum: 10/858339d43e3c6b6a848772a66f69442ce74f1a37655d9f35ba9d1f85329499ff0000af9f8ab83dbb39ad24c0c370edabe0be1e39863f70c6cded9924b8458c34 languageName: node linkType: hard @@ -9636,43 +9636,43 @@ __metadata: version: 12.0.0 resolution: "ssri@npm:12.0.0" dependencies: - minipass: ^7.0.3 - checksum: ef4b6b0ae47b4a69896f5f1c4375f953b9435388c053c36d27998bc3d73e046969ccde61ab659e679142971a0b08e50478a1228f62edb994105b280f17900c98 + minipass: "npm:^7.0.3" + checksum: 10/7024c1a6e39b3f18aa8f1c8290e884fe91b0f9ca5a6c6d410544daad54de0ba664db879afe16412e187c6c292fd60b937f047ee44292e5c2af2dcc6d8e1a9b48 languageName: node linkType: hard "stable-hash@npm:^0.0.5": version: 0.0.5 resolution: "stable-hash@npm:0.0.5" - checksum: 9222ea2c558e37c4a576cb4e406966b9e6aa05b93f5c4f09ef4aaabe3577439b9b8fbff407b16840b63e2ae83de74290c7b1c2da7360d571e480e46a4aec0a56 + checksum: 10/9222ea2c558e37c4a576cb4e406966b9e6aa05b93f5c4f09ef4aaabe3577439b9b8fbff407b16840b63e2ae83de74290c7b1c2da7360d571e480e46a4aec0a56 languageName: node linkType: hard "stackback@npm:0.0.2": version: 0.0.2 resolution: "stackback@npm:0.0.2" - checksum: 2d4dc4e64e2db796de4a3c856d5943daccdfa3dd092e452a1ce059c81e9a9c29e0b9badba91b43ef0d5ff5c04ee62feb3bcc559a804e16faf447bac2d883aa99 + checksum: 10/2d4dc4e64e2db796de4a3c856d5943daccdfa3dd092e452a1ce059c81e9a9c29e0b9badba91b43ef0d5ff5c04ee62feb3bcc559a804e16faf447bac2d883aa99 languageName: node linkType: hard "std-env@npm:^3.8.0": version: 3.9.0 resolution: "std-env@npm:3.9.0" - checksum: d40126e4a650f6e5456711e6c297420352a376ef99a9599e8224d2d8f2ff2b91a954f3264fcef888d94fce5c9ae14992c5569761c95556fc87248ce4602ed212 + checksum: 10/3044b2c54a74be4f460db56725571241ab3ac89a91f39c7709519bc90fa37148784bc4cd7d3a301aa735f43bd174496f263563f76703ce3e81370466ab7c235b languageName: node linkType: hard "store@npm:^2.0.12": version: 2.0.12 resolution: "store@npm:2.0.12" - checksum: 4e0fe69f71dc3c99af1b87e87dcb0c81fc979bd38abbcdf66d5705f1c44e6fd5e043056288efd695926c75419adc356873e6792d9b024085a8db51dbdda899ea + checksum: 10/2245bf29943fe59c2420fbe8ce19c8b86717353edcd6ec30a745cf2faee380b604777aa7f16344a15a8ff33ce689ce61dc95b4e6dc7c737101c00036c311ee7f languageName: node linkType: hard "string-argv@npm:^0.3.2": version: 0.3.2 resolution: "string-argv@npm:0.3.2" - checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f + checksum: 10/f9d3addf887026b4b5f997a271149e93bf71efc8692e7dc0816e8807f960b18bcb9787b45beedf0f97ff459575ee389af3f189d8b649834cac602f2e857e75af languageName: node linkType: hard @@ -9680,10 +9680,10 @@ __metadata: version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: - emoji-regex: ^8.0.0 - is-fullwidth-code-point: ^3.0.0 - strip-ansi: ^6.0.1 - checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10/e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb languageName: node linkType: hard @@ -9691,10 +9691,10 @@ __metadata: version: 5.1.2 resolution: "string-width@npm:5.1.2" dependencies: - eastasianwidth: ^0.2.0 - emoji-regex: ^9.2.2 - strip-ansi: ^7.0.1 - checksum: 7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10/7369deaa29f21dda9a438686154b62c2c5f661f8dda60449088f9f980196f7908fc39fdd1803e3e01541970287cf5deae336798337e9319a7055af89dafa7193 languageName: node linkType: hard @@ -9702,10 +9702,10 @@ __metadata: version: 7.2.0 resolution: "string-width@npm:7.2.0" dependencies: - emoji-regex: ^10.3.0 - get-east-asian-width: ^1.0.0 - strip-ansi: ^7.1.0 - checksum: 42f9e82f61314904a81393f6ef75b832c39f39761797250de68c041d8ba4df2ef80db49ab6cd3a292923a6f0f409b8c9980d120f7d32c820b4a8a84a2598a295 + emoji-regex: "npm:^10.3.0" + get-east-asian-width: "npm:^1.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10/42f9e82f61314904a81393f6ef75b832c39f39761797250de68c041d8ba4df2ef80db49ab6cd3a292923a6f0f409b8c9980d120f7d32c820b4a8a84a2598a295 languageName: node linkType: hard @@ -9713,20 +9713,20 @@ __metadata: version: 4.0.12 resolution: "string.prototype.matchall@npm:4.0.12" dependencies: - call-bind: ^1.0.8 - call-bound: ^1.0.3 - define-properties: ^1.2.1 - es-abstract: ^1.23.6 - es-errors: ^1.3.0 - es-object-atoms: ^1.0.0 - get-intrinsic: ^1.2.6 - gopd: ^1.2.0 - has-symbols: ^1.1.0 - internal-slot: ^1.1.0 - regexp.prototype.flags: ^1.5.3 - set-function-name: ^2.0.2 - side-channel: ^1.1.0 - checksum: 98a09d6af91bfc6ee25556f3d7cd6646d02f5f08bda55d45528ed273d266d55a71af7291fe3fc76854deffb9168cc1a917d0b07a7d5a178c7e9537c99e6d2b57 + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.6" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.6" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + internal-slot: "npm:^1.1.0" + regexp.prototype.flags: "npm:^1.5.3" + set-function-name: "npm:^2.0.2" + side-channel: "npm:^1.1.0" + checksum: 10/e4ab34b9e7639211e6c5e9759adb063028c5c5c4fc32ad967838b2bd1e5ce83a66ae8ec755d24a79302849f090b59194571b2c33471e86e7821b21c0f56df316 languageName: node linkType: hard @@ -9734,9 +9734,9 @@ __metadata: version: 1.0.0 resolution: "string.prototype.repeat@npm:1.0.0" dependencies: - define-properties: ^1.1.3 - es-abstract: ^1.17.5 - checksum: 95dfc514ed7f328d80a066dabbfbbb1615c3e51490351085409db2eb7cbfed7ea29fdadaf277647fbf9f4a1e10e6dd9e95e78c0fd2c4e6bb6723ea6e59401004 + define-properties: "npm:^1.1.3" + es-abstract: "npm:^1.17.5" + checksum: 10/4b1bd91b75fa8fdf0541625184ebe80e445a465ce4253c19c3bccd633898005dadae0f74b85ae72662a53aafb8035bf48f8f5c0755aec09bc106a7f13959d05e languageName: node linkType: hard @@ -9744,14 +9744,14 @@ __metadata: version: 1.2.10 resolution: "string.prototype.trim@npm:1.2.10" dependencies: - call-bind: ^1.0.8 - call-bound: ^1.0.2 - define-data-property: ^1.1.4 - define-properties: ^1.2.1 - es-abstract: ^1.23.5 - es-object-atoms: ^1.0.0 - has-property-descriptors: ^1.0.2 - checksum: 87659cd8561237b6c69f5376328fda934693aedde17bb7a2c57008e9d9ff992d0c253a391c7d8d50114e0e49ff7daf86a362f7961cf92f7564cd01342ca2e385 + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + define-data-property: "npm:^1.1.4" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-object-atoms: "npm:^1.0.0" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/47bb63cd2470a64bc5e2da1e570d369c016ccaa85c918c3a8bb4ab5965120f35e66d1f85ea544496fac84b9207a6b722adf007e6c548acd0813e5f8a82f9712a languageName: node linkType: hard @@ -9759,11 +9759,11 @@ __metadata: version: 1.0.9 resolution: "string.prototype.trimend@npm:1.0.9" dependencies: - call-bind: ^1.0.8 - call-bound: ^1.0.2 - define-properties: ^1.2.1 - es-object-atoms: ^1.0.0 - checksum: cb86f639f41d791a43627784be2175daa9ca3259c7cb83e7a207a729909b74f2ea0ec5d85de5761e6835e5f443e9420c6ff3f63a845378e4a61dd793177bc287 + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/140c73899b6747de9e499c7c2e7a83d549c47a26fa06045b69492be9cfb9e2a95187499a373983a08a115ecff8bc3bd7b0fb09b8ff72fb2172abe766849272ef languageName: node linkType: hard @@ -9771,10 +9771,10 @@ __metadata: version: 1.0.8 resolution: "string.prototype.trimstart@npm:1.0.8" dependencies: - call-bind: ^1.0.7 - define-properties: ^1.2.1 - es-object-atoms: ^1.0.0 - checksum: df1007a7f580a49d692375d996521dc14fd103acda7f3034b3c558a60b82beeed3a64fa91e494e164581793a8ab0ae2f59578a49896a7af6583c1f20472bce96 + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/160167dfbd68e6f7cb9f51a16074eebfce1571656fc31d40c3738ca9e30e35496f2c046fe57b6ad49f65f238a152be8c86fd9a2dd58682b5eba39dad995b3674 languageName: node linkType: hard @@ -9782,9 +9782,9 @@ __metadata: version: 4.0.4 resolution: "stringify-entities@npm:4.0.4" dependencies: - character-entities-html4: ^2.0.0 - character-entities-legacy: ^3.0.0 - checksum: ac1344ef211eacf6cf0a0a8feaf96f9c36083835b406560d2c6ff5a87406a41b13f2f0b4c570a3b391f465121c4fd6822b863ffb197e8c0601a64097862cc5b5 + character-entities-html4: "npm:^2.0.0" + character-entities-legacy: "npm:^3.0.0" + checksum: 10/42bd2f37528795a7b4386bd39dc4699515fb0f0b8c418a6bb29ae205ce66eaff9e8801a2bee65b8049c918c9475a71c7e5911f6a88c19f1d84ebdcba3d881a2d languageName: node linkType: hard @@ -9792,8 +9792,8 @@ __metadata: version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" dependencies: - ansi-regex: ^5.0.1 - checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + ansi-regex: "npm:^5.0.1" + checksum: 10/ae3b5436d34fadeb6096367626ce987057713c566e1e7768818797e00ac5d62023d0f198c4e681eae9e20701721980b26a64a8f5b91238869592a9c6800719a2 languageName: node linkType: hard @@ -9801,8 +9801,8 @@ __metadata: version: 5.2.0 resolution: "strip-ansi@npm:5.2.0" dependencies: - ansi-regex: ^4.1.0 - checksum: bdb5f76ade97062bd88e7723aa019adbfacdcba42223b19ccb528ffb9fb0b89a5be442c663c4a3fb25268eaa3f6ea19c7c3fbae830bd1562d55adccae1fcec46 + ansi-regex: "npm:^4.1.0" + checksum: 10/bdb5f76ade97062bd88e7723aa019adbfacdcba42223b19ccb528ffb9fb0b89a5be442c663c4a3fb25268eaa3f6ea19c7c3fbae830bd1562d55adccae1fcec46 languageName: node linkType: hard @@ -9810,8 +9810,8 @@ __metadata: version: 3.0.1 resolution: "strip-ansi@npm:3.0.1" dependencies: - ansi-regex: ^2.0.0 - checksum: 9b974de611ce5075c70629c00fa98c46144043db92ae17748fb780f706f7a789e9989fd10597b7c2053ae8d1513fd707816a91f1879b2f71e6ac0b6a863db465 + ansi-regex: "npm:^2.0.0" + checksum: 10/9b974de611ce5075c70629c00fa98c46144043db92ae17748fb780f706f7a789e9989fd10597b7c2053ae8d1513fd707816a91f1879b2f71e6ac0b6a863db465 languageName: node linkType: hard @@ -9819,43 +9819,43 @@ __metadata: version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" dependencies: - ansi-regex: ^6.0.1 - checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d + ansi-regex: "npm:^6.0.1" + checksum: 10/475f53e9c44375d6e72807284024ac5d668ee1d06010740dec0b9744f2ddf47de8d7151f80e5f6190fc8f384e802fdf9504b76a7e9020c9faee7103623338be2 languageName: node linkType: hard "strip-bom@npm:^3.0.0": version: 3.0.0 resolution: "strip-bom@npm:3.0.0" - checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + checksum: 10/8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b languageName: node linkType: hard "strip-bom@npm:^4.0.0": version: 4.0.0 resolution: "strip-bom@npm:4.0.0" - checksum: 9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 + checksum: 10/9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 languageName: node linkType: hard "strip-final-newline@npm:^2.0.0": version: 2.0.0 resolution: "strip-final-newline@npm:2.0.0" - checksum: 69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 + checksum: 10/69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 languageName: node linkType: hard "strip-final-newline@npm:^3.0.0": version: 3.0.0 resolution: "strip-final-newline@npm:3.0.0" - checksum: 23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 + checksum: 10/23ee263adfa2070cd0f23d1ac14e2ed2f000c9b44229aec9c799f1367ec001478469560abefd00c5c99ee6f0b31c137d53ec6029c53e9f32a93804e18c201050 languageName: node linkType: hard "strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" - checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + checksum: 10/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 languageName: node linkType: hard @@ -9863,8 +9863,8 @@ __metadata: version: 1.1.16 resolution: "style-to-js@npm:1.1.16" dependencies: - style-to-object: 1.0.8 - checksum: 1f424ca17d923090821197f27e077e88bcf92b15274157f20330a18405f52a66395232546dc694c776d1a8f1868dabe15738532e18ce59a0683b046610bb4964 + style-to-object: "npm:1.0.8" + checksum: 10/a876cc49a29ac90c7723b4d6f002ac6c1ac5ccc6b5bc963d9c607cfc74b15927b704c9324df6f824f576c65689fe4b4ff79caabcd44a13d8a02641f721f1b316 languageName: node linkType: hard @@ -9872,15 +9872,15 @@ __metadata: version: 1.0.8 resolution: "style-to-object@npm:1.0.8" dependencies: - inline-style-parser: 0.2.4 - checksum: 80ca4773fc728d7919edc552eb46bab11aa8cdd0b426528ee8b817ba6872ea7b9d38fbb97b6443fd2d4895a4c4b02ec32765387466a302d0b4d1b91deab1e1a0 + inline-style-parser: "npm:0.2.4" + checksum: 10/530b067325e3119bfaf75bdbe25cc86b02b559db00d881a74b98a2d5bb10ac953d1b455ed90c825963cf3b4bdaa1bda45f406d78d987391434b8d8ab3835df4e languageName: node linkType: hard "stylis@npm:4.2.0": version: 4.2.0 resolution: "stylis@npm:4.2.0" - checksum: 0eb6cc1b866dc17a6037d0a82ac7fa877eba6a757443e79e7c4f35bacedbf6421fadcab4363b39667b43355cbaaa570a3cde850f776498e5450f32ed2f9b7584 + checksum: 10/58359185275ef1f39c339ae94e598168aa6bb789f6cf0d52e726c1e7087a94e9c17f0385a28d34483dec1ffc2c75670ec714dc5603d99c3124ec83bc2b0a0f42 languageName: node linkType: hard @@ -9888,24 +9888,24 @@ __metadata: version: 3.35.0 resolution: "sucrase@npm:3.35.0" dependencies: - "@jridgewell/gen-mapping": ^0.3.2 - commander: ^4.0.0 - glob: ^10.3.10 - lines-and-columns: ^1.1.6 - mz: ^2.7.0 - pirates: ^4.0.1 - ts-interface-checker: ^0.1.9 + "@jridgewell/gen-mapping": "npm:^0.3.2" + commander: "npm:^4.0.0" + glob: "npm:^10.3.10" + lines-and-columns: "npm:^1.1.6" + mz: "npm:^2.7.0" + pirates: "npm:^4.0.1" + ts-interface-checker: "npm:^0.1.9" bin: sucrase: bin/sucrase sucrase-node: bin/sucrase-node - checksum: 9fc5792a9ab8a14dcf9c47dcb704431d35c1cdff1d17d55d382a31c2e8e3063870ad32ce120a80915498486246d612e30cda44f1624d9d9a10423e1a43487ad1 + checksum: 10/bc601558a62826f1c32287d4fdfa4f2c09fe0fec4c4d39d0e257fd9116d7d6227a18309721d4185ec84c9dc1af0d5ec0e05a42a337fbb74fc293e068549aacbe languageName: node linkType: hard "supports-color@npm:^2.0.0": version: 2.0.0 resolution: "supports-color@npm:2.0.0" - checksum: 602538c5812b9006404370b5a4b885d3e2a1f6567d314f8b4a41974ffe7d08e525bf92ae0f9c7030e3b4c78e4e34ace55d6a67a74f1571bc205959f5972f88f0 + checksum: 10/d2957d19e782a806abc3e8616b6648cc1e70c3ebe94fb1c2d43160686f6d79cd7c9f22c4853bc4a362d89d1c249ab6d429788c5f6c83b3086e6d763024bf4581 languageName: node linkType: hard @@ -9913,8 +9913,8 @@ __metadata: version: 7.2.0 resolution: "supports-color@npm:7.2.0" dependencies: - has-flag: ^4.0.0 - checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a + has-flag: "npm:^4.0.0" + checksum: 10/c8bb7afd564e3b26b50ca6ee47572c217526a1389fe018d00345856d4a9b08ffbd61fadaf283a87368d94c3dcdb8f5ffe2650a5a65863e21ad2730ca0f05210a languageName: node linkType: hard @@ -9922,22 +9922,22 @@ __metadata: version: 8.1.1 resolution: "supports-color@npm:8.1.1" dependencies: - has-flag: ^4.0.0 - checksum: c052193a7e43c6cdc741eb7f378df605636e01ad434badf7324f17fb60c69a880d8d8fcdcb562cf94c2350e57b937d7425ab5b8326c67c2adc48f7c87c1db406 + has-flag: "npm:^4.0.0" + checksum: 10/157b534df88e39c5518c5e78c35580c1eca848d7dbaf31bbe06cdfc048e22c7ff1a9d046ae17b25691128f631a51d9ec373c1b740c12ae4f0de6e292037e4282 languageName: node linkType: hard "supports-preserve-symlinks-flag@npm:^1.0.0": version: 1.0.0 resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae + checksum: 10/a9dc19ae2220c952bd2231d08ddeecb1b0328b61e72071ff4000c8384e145cc07c1c0bdb3b5a1cb06e186a7b2790f1dee793418b332f6ddf320de25d9125be7e languageName: node linkType: hard "tailwind-merge@npm:^2.5.2": version: 2.6.0 resolution: "tailwind-merge@npm:2.6.0" - checksum: 18976c4096920bc6125f1dc837479805de996d86bcc636f98436f65c297003bde89ffe51dfd325b7c97fc71b1dbba8505459dd96010e7b181badd29aea996440 + checksum: 10/a84f49d6f2cfb18ba06dc51b446b69f6b42cedcb9c9fa4e7c5f931b56e739870e513339e02b348b43f44011fa4852f02f72658a3f3e066e5101b09fc28644210 languageName: node linkType: hard @@ -9945,32 +9945,32 @@ __metadata: version: 3.4.17 resolution: "tailwindcss@npm:3.4.17" dependencies: - "@alloc/quick-lru": ^5.2.0 - arg: ^5.0.2 - chokidar: ^3.6.0 - didyoumean: ^1.2.2 - dlv: ^1.1.3 - fast-glob: ^3.3.2 - glob-parent: ^6.0.2 - is-glob: ^4.0.3 - jiti: ^1.21.6 - lilconfig: ^3.1.3 - micromatch: ^4.0.8 - normalize-path: ^3.0.0 - object-hash: ^3.0.0 - picocolors: ^1.1.1 - postcss: ^8.4.47 - postcss-import: ^15.1.0 - postcss-js: ^4.0.1 - postcss-load-config: ^4.0.2 - postcss-nested: ^6.2.0 - postcss-selector-parser: ^6.1.2 - resolve: ^1.22.8 - sucrase: ^3.35.0 + "@alloc/quick-lru": "npm:^5.2.0" + arg: "npm:^5.0.2" + chokidar: "npm:^3.6.0" + didyoumean: "npm:^1.2.2" + dlv: "npm:^1.1.3" + fast-glob: "npm:^3.3.2" + glob-parent: "npm:^6.0.2" + is-glob: "npm:^4.0.3" + jiti: "npm:^1.21.6" + lilconfig: "npm:^3.1.3" + micromatch: "npm:^4.0.8" + normalize-path: "npm:^3.0.0" + object-hash: "npm:^3.0.0" + picocolors: "npm:^1.1.1" + postcss: "npm:^8.4.47" + postcss-import: "npm:^15.1.0" + postcss-js: "npm:^4.0.1" + postcss-load-config: "npm:^4.0.2" + postcss-nested: "npm:^6.2.0" + postcss-selector-parser: "npm:^6.1.2" + resolve: "npm:^1.22.8" + sucrase: "npm:^3.35.0" bin: tailwind: lib/cli.js tailwindcss: lib/cli.js - checksum: bda962f30e9a2f0567e2ee936ec863d5178958078e577ced13da60b3af779062a53a7e95f2f32b5c558f12a7477dea3ce071441a7362c6d7bf50bc9e166728a4 + checksum: 10/b0e00533ae3800223b5b71af9cb1dd9bfea5ef5ffa01300f1ced99de9511487aa41e03106173e4168c56c8f6600ee21c98c1d75a5def23cddf9b39b4ad71210d languageName: node linkType: hard @@ -9978,13 +9978,13 @@ __metadata: version: 7.4.3 resolution: "tar@npm:7.4.3" dependencies: - "@isaacs/fs-minipass": ^4.0.0 - chownr: ^3.0.0 - minipass: ^7.1.2 - minizlib: ^3.0.1 - mkdirp: ^3.0.1 - yallist: ^5.0.0 - checksum: 8485350c0688331c94493031f417df069b778aadb25598abdad51862e007c39d1dd5310702c7be4a6784731a174799d8885d2fde0484269aea205b724d7b2ffa + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.0.1" + mkdirp: "npm:^3.0.1" + yallist: "npm:^5.0.0" + checksum: 10/12a2a4fc6dee23e07cc47f1aeb3a14a1afd3f16397e1350036a8f4cdfee8dcac7ef5978337a4e7b2ac2c27a9a6d46388fc2088ea7c80cb6878c814b1425f8ecf languageName: node linkType: hard @@ -9992,10 +9992,10 @@ __metadata: version: 6.0.0 resolution: "test-exclude@npm:6.0.0" dependencies: - "@istanbuljs/schema": ^0.1.2 - glob: ^7.1.4 - minimatch: ^3.0.4 - checksum: 3b34a3d77165a2cb82b34014b3aba93b1c4637a5011807557dc2f3da826c59975a5ccad765721c4648b39817e3472789f9b0fa98fc854c5c1c7a1e632aacdc28 + "@istanbuljs/schema": "npm:^0.1.2" + glob: "npm:^7.1.4" + minimatch: "npm:^3.0.4" + checksum: 10/8fccb2cb6c8fcb6bb4115394feb833f8b6cf4b9503ec2485c2c90febf435cac62abe882a0c5c51a37b9bbe70640cdd05acf5f45e486ac4583389f4b0855f69e5 languageName: node linkType: hard @@ -10003,8 +10003,8 @@ __metadata: version: 1.6.0 resolution: "thenify-all@npm:1.6.0" dependencies: - thenify: ">= 3.1.0 < 4" - checksum: dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e + thenify: "npm:>= 3.1.0 < 4" + checksum: 10/dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e languageName: node linkType: hard @@ -10012,43 +10012,43 @@ __metadata: version: 3.3.1 resolution: "thenify@npm:3.3.1" dependencies: - any-promise: ^1.0.0 - checksum: 84e1b804bfec49f3531215f17b4a6e50fd4397b5f7c1bccc427b9c656e1ecfb13ea79d899930184f78bc2f57285c54d9a50a590c8868f4f0cef5c1d9f898b05e + any-promise: "npm:^1.0.0" + checksum: 10/486e1283a867440a904e36741ff1a177faa827cf94d69506f7e3ae4187b9afdf9ec368b3d8da225c192bfe2eb943f3f0080594156bf39f21b57cd1411e2e7f6d languageName: node linkType: hard "throttleit@npm:^1.0.0": version: 1.0.1 resolution: "throttleit@npm:1.0.1" - checksum: 32e0b12ca5810cd34dfce0408c7cb658dfd039848a073466eaac667ce6e846cafa53ac518e4b01dc6f34e6652b66fd29a5c6b666718ec5086ef328a9d029dc75 + checksum: 10/17f1aba82192d8b4f5be5f7e7955acd2db0b60557a2e041900bcb685c03fc0a42e44fae955741c2994ec314918c6c1c2c179bfe17b1fbb4a011c506e9ea7cc33 languageName: node linkType: hard "through@npm:^2.3.8": version: 2.3.8 resolution: "through@npm:2.3.8" - checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd + checksum: 10/5da78346f70139a7d213b65a0106f3c398d6bc5301f9248b5275f420abc2c4b1e77c2abc72d218dedc28c41efb2e7c312cb76a7730d04f9c2d37d247da3f4198 languageName: node linkType: hard "tiny-case@npm:^1.0.3": version: 1.0.3 resolution: "tiny-case@npm:1.0.3" - checksum: 3f7a30c39d5b0e1bc097b0b271bec14eb5b836093db034f35a0de26c14422380b50dc12bfd37498cf35b192f5df06f28a710712c87ead68872a9e37ad6f6049d + checksum: 10/3f7a30c39d5b0e1bc097b0b271bec14eb5b836093db034f35a0de26c14422380b50dc12bfd37498cf35b192f5df06f28a710712c87ead68872a9e37ad6f6049d languageName: node linkType: hard "tinybench@npm:^2.9.0": version: 2.9.0 resolution: "tinybench@npm:2.9.0" - checksum: 1ab00d7dfe0d1f127cbf00822bacd9024f7a50a3ecd1f354a8168e0b7d2b53a639a24414e707c27879d1adc0f5153141d51d76ebd7b4d37fe245e742e5d91fe8 + checksum: 10/cfa1e1418e91289219501703c4693c70708c91ffb7f040fd318d24aef419fb5a43e0c0160df9471499191968b2451d8da7f8087b08c3133c251c40d24aced06c languageName: node linkType: hard "tinyexec@npm:^0.3.1": version: 0.3.2 resolution: "tinyexec@npm:0.3.2" - checksum: bd491923020610bdeadb0d8cf5d70e7cbad5a3201620fd01048c9bf3b31ffaa75c33254e1540e13b993ce4e8187852b0b5a93057bb598e7a57afa2ca2048a35c + checksum: 10/b9d5fed3166fb1acd1e7f9a89afcd97ccbe18b9c1af0278e429455f6976d69271ba2d21797e7c36d57d6b05025e525d2882d88c2ab435b60d1ddf2fea361de57 languageName: node linkType: hard @@ -10056,37 +10056,37 @@ __metadata: version: 0.2.12 resolution: "tinyglobby@npm:0.2.12" dependencies: - fdir: ^6.4.3 - picomatch: ^4.0.2 - checksum: ef9357fa1b2b661afdccd315cb4995f5f36bce948faaace68aae85fe57bdd8f837883045c88efc50d3186bac6586e4ae2f31026b9a3aac061b884217e6092e23 + fdir: "npm:^6.4.3" + picomatch: "npm:^4.0.2" + checksum: 10/4ad28701fa9118b32ef0e27f409e0a6c5741e8b02286d50425c1f6f71e6d6c6ded9dd5bbbbb714784b08623c4ec4d150151f1d3d996cfabe0495f908ab4f7002 languageName: node linkType: hard "tinypool@npm:^1.0.1": version: 1.0.2 resolution: "tinypool@npm:1.0.2" - checksum: 752f23114d8fc95a9497fc812231d6d0a63728376aa11e6e8499c10423a91112e760e388887ea7854f1b16977c321f07c0eab061ec2f60f6761e58b184aac880 + checksum: 10/6109322f14b3763f65c8fa49fddab72cd3edd96b82dd50e05e63de74867329ff5353bff4377281ec963213d9314f37f4a353e9ee34bbac85fd4c1e4a568d6076 languageName: node linkType: hard "tinyrainbow@npm:^1.2.0": version: 1.2.0 resolution: "tinyrainbow@npm:1.2.0" - checksum: d1e2cb5400032c0092be00e4a3da5450bea8b4fad58bfb5d3c58ca37ff5c5e252f7fcfb9af247914854af79c46014add9d1042fe044358c305a129ed55c8be35 + checksum: 10/2924444db6804355e5ba2b6e586c7f77329d93abdd7257a069a0f4530dff9f16de484e80479094e3f39273462541b003a65ee3a6afc2d12555aa745132deba5d languageName: node linkType: hard "tinyspy@npm:^3.0.2": version: 3.0.2 resolution: "tinyspy@npm:3.0.2" - checksum: 5db671b2ff5cd309de650c8c4761ca945459d7204afb1776db9a04fb4efa28a75f08517a8620c01ee32a577748802231ad92f7d5b194dc003ee7f987a2a06337 + checksum: 10/5db671b2ff5cd309de650c8c4761ca945459d7204afb1776db9a04fb4efa28a75f08517a8620c01ee32a577748802231ad92f7d5b194dc003ee7f987a2a06337 languageName: node linkType: hard "tldts-core@npm:^6.1.86": version: 6.1.86 resolution: "tldts-core@npm:6.1.86" - checksum: 0a715457e03101deff9b34cf45dcd91b81985ef32d35b8e9c4764dcf76369bf75394304997584080bb7b8897e94e20f35f3e8240a1ec87d6faba3cc34dc5a954 + checksum: 10/cb5dff9cc15661ac773a2099e98c99a5cb3cebc35909c23cc4261ff7992032c7501995ae995de3574dbbf3431e59c47496534d52f5e96abcb231f0e72144c020 languageName: node linkType: hard @@ -10094,17 +10094,17 @@ __metadata: version: 6.1.86 resolution: "tldts@npm:6.1.86" dependencies: - tldts-core: ^6.1.86 + tldts-core: "npm:^6.1.86" bin: tldts: bin/cli.js - checksum: e5c57664f73663c6c8f7770db02c0c03d6f877fe837854c72037be8092826f95b8e568962358441ef18431b80b7e40ed88391c70873ee7ec0d4344999a12e3de + checksum: 10/f7e66824e44479ccdda55ea556af14ce61c4d27708be403e3f90631defde49f82a580e1ca07187cc7e3b349e257a30c2808a22903f3a0548e136ebb609ccc109 languageName: node linkType: hard "tmp@npm:~0.2.3": version: 0.2.3 resolution: "tmp@npm:0.2.3" - checksum: 73b5c96b6e52da7e104d9d44afb5d106bb1e16d9fa7d00dbeb9e6522e61b571fbdb165c756c62164be9a3bbe192b9b268c236d370a2a0955c7689cd2ae377b95 + checksum: 10/7b13696787f159c9754793a83aa79a24f1522d47b87462ddb57c18ee93ff26c74cbb2b8d9138f571d2e0e765c728fb2739863a672b280528512c6d83d511c6fa languageName: node linkType: hard @@ -10112,22 +10112,22 @@ __metadata: version: 5.0.1 resolution: "to-regex-range@npm:5.0.1" dependencies: - is-number: ^7.0.0 - checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed + is-number: "npm:^7.0.0" + checksum: 10/10dda13571e1f5ad37546827e9b6d4252d2e0bc176c24a101252153ef435d83696e2557fe128c4678e4e78f5f01e83711c703eef9814eb12dab028580d45980a languageName: node linkType: hard "toggle-selection@npm:^1.0.6": version: 1.0.6 resolution: "toggle-selection@npm:1.0.6" - checksum: a90dc80ed1e7b18db8f4e16e86a5574f87632dc729cfc07d9ea3ced50021ad42bb4e08f22c0913e0b98e3837b0b717e0a51613c65f30418e21eb99da6556a74c + checksum: 10/9a0ed0ecbaac72b4944888dacd79fe0a55eeea76120a4c7e46b3bb3d85b24f086e90560bb22f5a965654a25ab43d79ec47dfdb3f1850ba740b14c5a50abc7040 languageName: node linkType: hard "toposort@npm:^2.0.2": version: 2.0.2 resolution: "toposort@npm:2.0.2" - checksum: d64c74b570391c9432873f48e231b439ee56bc49f7cb9780b505cfdf5cb832f808d0bae072515d93834dd6bceca5bb34448b5b4b408335e4d4716eaf68195dcb + checksum: 10/6f128353e4ed9739e49a28fb756b0a00f3752b29fc9b862ff781446598ee3b486cd229697feebc4eabd916eac5de219f3dae450c585bf13673f6b133a7226e06 languageName: node linkType: hard @@ -10135,22 +10135,22 @@ __metadata: version: 5.1.2 resolution: "tough-cookie@npm:5.1.2" dependencies: - tldts: ^6.1.32 - checksum: 31c626a77ac247b881665851035773afe7eeac283b91ed8da3c297ed55480ea1dd1ba3f5bb1f94b653ac2d5b184f17ce4bf1cf6ca7c58ee7c321b4323c4f8024 + tldts: "npm:^6.1.32" + checksum: 10/de430e6e6d34b794137e05b8ac2aa6b74ebbe6cdceb4126f168cf1e76101162a4b2e0e7587c3b70e728bd8654fc39958b2035be7619ee6f08e7257610ba4cd04 languageName: node linkType: hard "trim-lines@npm:^3.0.0": version: 3.0.1 resolution: "trim-lines@npm:3.0.1" - checksum: e241da104682a0e0d807222cc1496b92e716af4db7a002f4aeff33ae6a0024fef93165d49eab11aa07c71e1347c42d46563f91dfaa4d3fb945aa535cdead53ed + checksum: 10/7a1325e4ce8ff7e9e52007600e9c9862a166d0db1f1cf0c9357e359e410acab1278fcd91cc279dfa5123fc37b69f080de02f471e91dbbc61b155b9ca92597929 languageName: node linkType: hard "trough@npm:^2.0.0": version: 2.2.0 resolution: "trough@npm:2.2.0" - checksum: 6097df63169aca1f9b08c263b1b501a9b878387f46e161dde93f6d0bba7febba93c95f876a293c5ea370f6cb03bcb687b2488c8955c3cfb66c2c0161ea8c00f6 + checksum: 10/999c1cb3db6ec63e1663f911146a90125065da37f66ba342b031d53edb22a62f56c1f934bbc61a55b2b29dd74207544cfd78875b414665c1ffadcd9a9a009eeb languageName: node linkType: hard @@ -10159,14 +10159,14 @@ __metadata: resolution: "ts-api-utils@npm:2.1.0" peerDependencies: typescript: ">=4.8.4" - checksum: 5b1ef89105654d93d67582308bd8dfe4bbf6874fccbcaa729b08fbb00a940fd4c691ca6d0d2b18c3c70878d9a7e503421b7cc473dbc3d0d54258b86401d4b15d + checksum: 10/02e55b49d9617c6eebf8aadfa08d3ca03ca0cd2f0586ad34117fdfc7aa3cd25d95051843fde9df86665ad907f99baed179e7a117b11021417f379e4d2614eacd languageName: node linkType: hard "ts-interface-checker@npm:^0.1.9": version: 0.1.13 resolution: "ts-interface-checker@npm:0.1.13" - checksum: 20c29189c2dd6067a8775e07823ddf8d59a33e2ffc47a1bd59a5cb28bb0121a2969a816d5e77eda2ed85b18171aa5d1c4005a6b88ae8499ec7cc49f78571cb5e + checksum: 10/9f7346b9e25bade7a1050c001ec5a4f7023909c0e1644c5a96ae20703a131627f081479e6622a4ecee2177283d0069e651e507bedadd3904fc4010ab28ffce00 languageName: node linkType: hard @@ -10174,19 +10174,19 @@ __metadata: version: 10.9.2 resolution: "ts-node@npm:10.9.2" dependencies: - "@cspotcode/source-map-support": ^0.8.0 - "@tsconfig/node10": ^1.0.7 - "@tsconfig/node12": ^1.0.7 - "@tsconfig/node14": ^1.0.0 - "@tsconfig/node16": ^1.0.2 - acorn: ^8.4.1 - acorn-walk: ^8.1.1 - arg: ^4.1.0 - create-require: ^1.1.0 - diff: ^4.0.1 - make-error: ^1.1.1 - v8-compile-cache-lib: ^3.0.1 - yn: 3.1.1 + "@cspotcode/source-map-support": "npm:^0.8.0" + "@tsconfig/node10": "npm:^1.0.7" + "@tsconfig/node12": "npm:^1.0.7" + "@tsconfig/node14": "npm:^1.0.0" + "@tsconfig/node16": "npm:^1.0.2" + acorn: "npm:^8.4.1" + acorn-walk: "npm:^8.1.1" + arg: "npm:^4.1.0" + create-require: "npm:^1.1.0" + diff: "npm:^4.0.1" + make-error: "npm:^1.1.1" + v8-compile-cache-lib: "npm:^3.0.1" + yn: "npm:3.1.1" peerDependencies: "@swc/core": ">=1.2.50" "@swc/wasm": ">=1.2.50" @@ -10204,7 +10204,7 @@ __metadata: ts-node-script: dist/bin-script.js ts-node-transpile-only: dist/bin-transpile.js ts-script: dist/bin-script-deprecated.js - checksum: fde256c9073969e234526e2cfead42591b9a2aec5222bac154b0de2fa9e4ceb30efcd717ee8bc785a56f3a119bdd5aa27b333d9dbec94ed254bd26f8944c67ac + checksum: 10/a91a15b3c9f76ac462f006fa88b6bfa528130dcfb849dd7ef7f9d640832ab681e235b8a2bc58ecde42f72851cc1d5d4e22c901b0c11aa51001ea1d395074b794 languageName: node linkType: hard @@ -10218,7 +10218,7 @@ __metadata: optional: true bin: tsconfck: bin/tsconfck.js - checksum: 9a85b707cf9a99caec4ec312783a903bf9d4bea52036786df40f8c50beb903a49a5895a0a8144f5862175ee202af80d28406dd2d5c4664cbc17260a193c84dba + checksum: 10/46b68f0fcec7da045490e427400c2a7fea67bdb6dae871257e8d2ec48e9dc99674214df86ff51c6d01ceb68ba9d7d806d3b69de432efa3c76b5fba160c252857 languageName: node linkType: hard @@ -10226,25 +10226,25 @@ __metadata: version: 3.15.0 resolution: "tsconfig-paths@npm:3.15.0" dependencies: - "@types/json5": ^0.0.29 - json5: ^1.0.2 - minimist: ^1.2.6 - strip-bom: ^3.0.0 - checksum: 59f35407a390d9482b320451f52a411a256a130ff0e7543d18c6f20afab29ac19fbe55c360a93d6476213cc335a4d76ce90f67df54c4e9037f7d240920832201 + "@types/json5": "npm:^0.0.29" + json5: "npm:^1.0.2" + minimist: "npm:^1.2.6" + strip-bom: "npm:^3.0.0" + checksum: 10/2041beaedc6c271fc3bedd12e0da0cc553e65d030d4ff26044b771fac5752d0460944c0b5e680f670c2868c95c664a256cec960ae528888db6ded83524e33a14 languageName: node linkType: hard "tslib@npm:2.7.0": version: 2.7.0 resolution: "tslib@npm:2.7.0" - checksum: 1606d5c89f88d466889def78653f3aab0f88692e80bb2066d090ca6112ae250ec1cfa9dbfaab0d17b60da15a4186e8ec4d893801c67896b277c17374e36e1d28 + checksum: 10/9a5b47ddac65874fa011c20ff76db69f97cf90c78cff5934799ab8894a5342db2d17b4e7613a087046bc1d133d21547ddff87ac558abeec31ffa929c88b7fce6 languageName: node linkType: hard "tslib@npm:^2.1.0, tslib@npm:^2.4.0, tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" - checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a + checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 languageName: node linkType: hard @@ -10252,15 +10252,15 @@ __metadata: version: 0.6.0 resolution: "tunnel-agent@npm:0.6.0" dependencies: - safe-buffer: ^5.0.1 - checksum: 05f6510358f8afc62a057b8b692f05d70c1782b70db86d6a1e0d5e28a32389e52fa6e7707b6c5ecccacc031462e4bc35af85ecfe4bbc341767917b7cf6965711 + safe-buffer: "npm:^5.0.1" + checksum: 10/7f0d9ed5c22404072b2ae8edc45c071772affd2ed14a74f03b4e71b4dd1a14c3714d85aed64abcaaee5fec2efc79002ba81155c708f4df65821b444abb0cfade languageName: node linkType: hard "tweetnacl@npm:^0.14.3, tweetnacl@npm:~0.14.0": version: 0.14.5 resolution: "tweetnacl@npm:0.14.5" - checksum: 6061daba1724f59473d99a7bb82e13f211cdf6e31315510ae9656fefd4779851cb927adad90f3b488c8ed77c106adc0421ea8055f6f976ff21b27c5c4e918487 + checksum: 10/04ee27901cde46c1c0a64b9584e04c96c5fe45b38c0d74930710751ea991408b405747d01dfae72f80fc158137018aea94f9c38c651cb9c318f0861a310c3679 languageName: node linkType: hard @@ -10268,29 +10268,29 @@ __metadata: version: 0.4.0 resolution: "type-check@npm:0.4.0" dependencies: - prelude-ls: ^1.2.1 - checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a + prelude-ls: "npm:^1.2.1" + checksum: 10/14687776479d048e3c1dbfe58a2409e00367810d6960c0f619b33793271ff2a27f81b52461f14a162f1f89a9b1d8da1b237fc7c99b0e1fdcec28ec63a86b1fec languageName: node linkType: hard "type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" - checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 + checksum: 10/f4254070d9c3d83a6e573bcb95173008d73474ceadbbf620dd32d273940ca18734dff39c2b2480282df9afe5d1675ebed5499a00d791758748ea81f61a38961f languageName: node linkType: hard "type-fest@npm:^0.8.0": version: 0.8.1 resolution: "type-fest@npm:0.8.1" - checksum: d61c4b2eba24009033ae4500d7d818a94fd6d1b481a8111612ee141400d5f1db46f199c014766b9fa9b31a6a7374d96fc748c6d688a78a3ce5a33123839becb7 + checksum: 10/fd4a91bfb706aeeb0d326ebd2e9a8ea5263979e5dec8d16c3e469a5bd3a946e014a062ef76c02e3086d3d1c7209a56a20a4caafd0e9f9a5c2ab975084ea3d388 languageName: node linkType: hard "type-fest@npm:^2.19.0": version: 2.19.0 resolution: "type-fest@npm:2.19.0" - checksum: a4ef07ece297c9fba78fc1bd6d85dff4472fe043ede98bd4710d2615d15776902b595abf62bd78339ed6278f021235fb28a96361f8be86ed754f778973a0d278 + checksum: 10/7bf9e8fdf34f92c8bb364c0af14ca875fac7e0183f2985498b77be129dc1b3b1ad0a6b3281580f19e48c6105c037fb966ad9934520c69c6434d17fd0af4eed78 languageName: node linkType: hard @@ -10298,10 +10298,10 @@ __metadata: version: 1.0.3 resolution: "typed-array-buffer@npm:1.0.3" dependencies: - call-bound: ^1.0.3 - es-errors: ^1.3.0 - is-typed-array: ^1.1.14 - checksum: 3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80 + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + is-typed-array: "npm:^1.1.14" + checksum: 10/3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80 languageName: node linkType: hard @@ -10309,12 +10309,12 @@ __metadata: version: 1.0.3 resolution: "typed-array-byte-length@npm:1.0.3" dependencies: - call-bind: ^1.0.8 - for-each: ^0.3.3 - gopd: ^1.2.0 - has-proto: ^1.2.0 - is-typed-array: ^1.1.14 - checksum: cda9352178ebeab073ad6499b03e938ebc30c4efaea63a26839d89c4b1da9d2640b0d937fc2bd1f049eb0a38def6fbe8a061b601292ae62fe079a410ce56e3a6 + call-bind: "npm:^1.0.8" + for-each: "npm:^0.3.3" + gopd: "npm:^1.2.0" + has-proto: "npm:^1.2.0" + is-typed-array: "npm:^1.1.14" + checksum: 10/269dad101dda73e3110117a9b84db86f0b5c07dad3a9418116fd38d580cab7fc628a4fc167e29b6d7c39da2f53374b78e7cb578b3c5ec7a556689d985d193519 languageName: node linkType: hard @@ -10322,14 +10322,14 @@ __metadata: version: 1.0.4 resolution: "typed-array-byte-offset@npm:1.0.4" dependencies: - available-typed-arrays: ^1.0.7 - call-bind: ^1.0.8 - for-each: ^0.3.3 - gopd: ^1.2.0 - has-proto: ^1.2.0 - is-typed-array: ^1.1.15 - reflect.getprototypeof: ^1.0.9 - checksum: 670b7e6bb1d3c2cf6160f27f9f529e60c3f6f9611c67e47ca70ca5cfa24ad95415694c49d1dbfeda016d3372cab7dfc9e38c7b3e1bb8d692cae13a63d3c144d7 + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + for-each: "npm:^0.3.3" + gopd: "npm:^1.2.0" + has-proto: "npm:^1.2.0" + is-typed-array: "npm:^1.1.15" + reflect.getprototypeof: "npm:^1.0.9" + checksum: 10/c2869aa584cdae24ecfd282f20a0f556b13a49a9d5bca1713370bb3c89dff0ccbc5ceb45cb5b784c98f4579e5e3e2a07e438c3a5b8294583e2bd4abbd5104fb5 languageName: node linkType: hard @@ -10337,13 +10337,13 @@ __metadata: version: 1.0.7 resolution: "typed-array-length@npm:1.0.7" dependencies: - call-bind: ^1.0.7 - for-each: ^0.3.3 - gopd: ^1.0.1 - is-typed-array: ^1.1.13 - possible-typed-array-names: ^1.0.0 - reflect.getprototypeof: ^1.0.6 - checksum: deb1a4ffdb27cd930b02c7030cb3e8e0993084c643208e52696e18ea6dd3953dfc37b939df06ff78170423d353dc8b10d5bae5796f3711c1b3abe52872b3774c + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + is-typed-array: "npm:^1.1.13" + possible-typed-array-names: "npm:^1.0.0" + reflect.getprototypeof: "npm:^1.0.6" + checksum: 10/d6b2f0e81161682d2726eb92b1dc2b0890890f9930f33f9bcf6fc7272895ce66bc368066d273e6677776de167608adc53fcf81f1be39a146d64b630edbf2081c languageName: node linkType: hard @@ -10351,8 +10351,8 @@ __metadata: version: 3.1.5 resolution: "typedarray-to-buffer@npm:3.1.5" dependencies: - is-typedarray: ^1.0.0 - checksum: 99c11aaa8f45189fcfba6b8a4825fd684a321caa9bd7a76a27cf0c7732c174d198b99f449c52c3818107430b5f41c0ccbbfb75cb2ee3ca4a9451710986d61a60 + is-typedarray: "npm:^1.0.0" + checksum: 10/7c850c3433fbdf4d04f04edfc751743b8f577828b8e1eb93b95a3bce782d156e267d83e20fb32b3b47813e69a69ab5e9b5342653332f7d21c7d1210661a7a72c languageName: node linkType: hard @@ -10362,17 +10362,17 @@ __metadata: bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: cb1d081c889a288b962d3c8ae18d337ad6ee88a8e81ae0103fa1fecbe923737f3ba1dbdb3e6d8b776c72bc73bfa6d8d850c0306eed1a51377d2fccdfd75d92c4 + checksum: 10/65c40944c51b513b0172c6710ee62e951b70af6f75d5a5da745cb7fab132c09ae27ffdf7838996e3ed603bb015dadd099006658046941bd0ba30340cc563ae92 languageName: node linkType: hard -"typescript@patch:typescript@^5.5.4#~builtin": +"typescript@patch:typescript@npm%3A^5.5.4#optional!builtin": version: 5.8.3 - resolution: "typescript@patch:typescript@npm%3A5.8.3#~builtin::version=5.8.3&hash=493e53" + resolution: "typescript@patch:typescript@npm%3A5.8.3#optional!builtin::version=5.8.3&hash=5786d5" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 1b503525a88ff0ff5952e95870971c4fb2118c17364d60302c21935dedcd6c37e6a0a692f350892bafcef6f4a16d09073fe461158547978d2f16fbe4cb18581c + checksum: 10/b9b1e73dabac5dc730c041325dbd9c99467c1b0d239f1b74ec3b90d831384af3e2ba973946232df670519147eb51a2c20f6f96163cea2b359f03de1e2091cc4f languageName: node linkType: hard @@ -10380,25 +10380,25 @@ __metadata: version: 1.1.0 resolution: "unbox-primitive@npm:1.1.0" dependencies: - call-bound: ^1.0.3 - has-bigints: ^1.0.2 - has-symbols: ^1.1.0 - which-boxed-primitive: ^1.1.1 - checksum: 729f13b84a5bfa3fead1d8139cee5c38514e63a8d6a437819a473e241ba87eeb593646568621c7fc7f133db300ef18d65d1a5a60dc9c7beb9000364d93c581df + call-bound: "npm:^1.0.3" + has-bigints: "npm:^1.0.2" + has-symbols: "npm:^1.1.0" + which-boxed-primitive: "npm:^1.1.1" + checksum: 10/fadb347020f66b2c8aeacf8b9a79826fa34cc5e5457af4eb0bbc4e79bd87fed0fa795949825df534320f7c13f199259516ad30abc55a6e7b91d8d996ca069e50 languageName: node linkType: hard "undici-types@npm:~6.19.2": version: 6.19.8 resolution: "undici-types@npm:6.19.8" - checksum: de51f1b447d22571cf155dfe14ff6d12c5bdaec237c765085b439c38ca8518fc360e88c70f99469162bf2e14188a7b0bcb06e1ed2dc031042b984b0bb9544017 + checksum: 10/cf0b48ed4fc99baf56584afa91aaffa5010c268b8842f62e02f752df209e3dea138b372a60a963b3b2576ed932f32329ce7ddb9cb5f27a6c83040d8cd74b7a70 languageName: node linkType: hard "undici-types@npm:~6.21.0": version: 6.21.0 resolution: "undici-types@npm:6.21.0" - checksum: 46331c7d6016bf85b3e8f20c159d62f5ae471aba1eb3dc52fff35a0259d58dcc7d592d4cc4f00c5f9243fa738a11cfa48bd20203040d4a9e6bc25e807fab7ab3 + checksum: 10/ec8f41aa4359d50f9b59fa61fe3efce3477cc681908c8f84354d8567bb3701fafdddf36ef6bff307024d3feb42c837cf6f670314ba37fc8145e219560e473d14 languageName: node linkType: hard @@ -10406,14 +10406,14 @@ __metadata: version: 11.0.5 resolution: "unified@npm:11.0.5" dependencies: - "@types/unist": ^3.0.0 - bail: ^2.0.0 - devlop: ^1.0.0 - extend: ^3.0.0 - is-plain-obj: ^4.0.0 - trough: ^2.0.0 - vfile: ^6.0.0 - checksum: b3bf7fd6f568cc261e074dae21188483b0f2a8ab858d62e6e85b75b96cc655f59532906ae3c64d56a9b257408722d71f1d4135292b3d7ee02907c8b592fb3cf0 + "@types/unist": "npm:^3.0.0" + bail: "npm:^2.0.0" + devlop: "npm:^1.0.0" + extend: "npm:^3.0.0" + is-plain-obj: "npm:^4.0.0" + trough: "npm:^2.0.0" + vfile: "npm:^6.0.0" + checksum: 10/d9e6e88900a075f391b6bbf06f34062d41fa6257798110d1647753cfc2c6a6e2c1d016434e8ee35706c50485f9fb9ae4707a6a4790bd8dc461ec7e7315ed908b languageName: node linkType: hard @@ -10421,8 +10421,8 @@ __metadata: version: 4.0.0 resolution: "unique-filename@npm:4.0.0" dependencies: - unique-slug: ^5.0.0 - checksum: 6a62094fcac286b9ec39edbd1f8f64ff92383baa430af303dfed1ffda5e47a08a6b316408554abfddd9730c78b6106bef4ca4d02c1231a735ddd56ced77573df + unique-slug: "npm:^5.0.0" + checksum: 10/6a62094fcac286b9ec39edbd1f8f64ff92383baa430af303dfed1ffda5e47a08a6b316408554abfddd9730c78b6106bef4ca4d02c1231a735ddd56ced77573df languageName: node linkType: hard @@ -10430,8 +10430,8 @@ __metadata: version: 5.0.0 resolution: "unique-slug@npm:5.0.0" dependencies: - imurmurhash: ^0.1.4 - checksum: 222d0322bc7bbf6e45c08967863212398313ef73423f4125e075f893a02405a5ffdbaaf150f7dd1e99f8861348a486dd079186d27c5f2c60e465b7dcbb1d3e5b + imurmurhash: "npm:^0.1.4" + checksum: 10/beafdf3d6f44990e0a5ce560f8f881b4ee811be70b6ba0db25298c31c8cf525ed963572b48cd03be1c1349084f9e339be4241666d7cf1ebdad20598d3c652b27 languageName: node linkType: hard @@ -10439,8 +10439,8 @@ __metadata: version: 6.0.0 resolution: "unist-util-is@npm:6.0.0" dependencies: - "@types/unist": ^3.0.0 - checksum: f630a925126594af9993b091cf807b86811371e465b5049a6283e08537d3e6ba0f7e248e1e7dab52cfe33f9002606acef093441137181b327f6fe504884b20e2 + "@types/unist": "npm:^3.0.0" + checksum: 10/edd6a93fb2255addf4b9eeb304c1da63c62179aef793169dd64ab955cf2f6814885fe25f95f8105893e3562dead348af535718d7a84333826e0491c04bf42511 languageName: node linkType: hard @@ -10448,8 +10448,8 @@ __metadata: version: 5.0.0 resolution: "unist-util-position@npm:5.0.0" dependencies: - "@types/unist": ^3.0.0 - checksum: f89b27989b19f07878de9579cd8db2aa0194c8360db69e2c99bd2124a480d79c08f04b73a64daf01a8fb3af7cba65ff4b45a0b978ca243226084ad5f5d441dde + "@types/unist": "npm:^3.0.0" + checksum: 10/89d4da00e74618d7562ac7ac288961df9bcd4ccca6df3b5a90650f018eceb6b95de6e771e88bdbef46cc9d96861d456abe57b7ad1108921e0feb67c6292aa29d languageName: node linkType: hard @@ -10457,8 +10457,8 @@ __metadata: version: 4.0.0 resolution: "unist-util-stringify-position@npm:4.0.0" dependencies: - "@types/unist": ^3.0.0 - checksum: e2e7aee4b92ddb64d314b4ac89eef7a46e4c829cbd3ee4aee516d100772b490eb6b4974f653ba0717a0071ca6ea0770bf22b0a2ea62c65fcba1d071285e96324 + "@types/unist": "npm:^3.0.0" + checksum: 10/d15c88aca7a31902d95d5b5355bbe09583cf6f6ff6e59e134ef76c76d3c30bc1021f2d7ea5b7897c6d0858ed5f3770c1b19de9c78274f50d72f95a0d05f1af71 languageName: node linkType: hard @@ -10466,9 +10466,9 @@ __metadata: version: 6.0.1 resolution: "unist-util-visit-parents@npm:6.0.1" dependencies: - "@types/unist": ^3.0.0 - unist-util-is: ^6.0.0 - checksum: 08927647c579f63b91aafcbec9966dc4a7d0af1e5e26fc69f4e3e6a01215084835a2321b06f3cbe7bf7914a852830fc1439f0fc3d7153d8804ac3ef851ddfa20 + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + checksum: 10/645b3cbc5e923bc692b1eb1a9ca17bffc5aabc25e6090ff3f1489bff8effd1890b28f7a09dc853cb6a7fa0da8581bfebc9b670a68b53c4c086cb9610dfd37701 languageName: node linkType: hard @@ -10476,17 +10476,17 @@ __metadata: version: 5.0.0 resolution: "unist-util-visit@npm:5.0.0" dependencies: - "@types/unist": ^3.0.0 - unist-util-is: ^6.0.0 - unist-util-visit-parents: ^6.0.0 - checksum: 9ec42e618e7e5d0202f3c191cd30791b51641285732767ee2e6bcd035931032e3c1b29093f4d7fd0c79175bbc1f26f24f26ee49770d32be76f8730a652a857e6 + "@types/unist": "npm:^3.0.0" + unist-util-is: "npm:^6.0.0" + unist-util-visit-parents: "npm:^6.0.0" + checksum: 10/f2bbde23641e9ade7640358c06ddeec0f38342322eb8e7819d9ee380b0f859d25d084dde22bf63db0280b3b2f36575f15aa1d6c23acf276c91c2493cf799e3b0 languageName: node linkType: hard "universalify@npm:^2.0.0": version: 2.0.1 resolution: "universalify@npm:2.0.1" - checksum: ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 + checksum: 10/ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 languageName: node linkType: hard @@ -10494,22 +10494,22 @@ __metadata: version: 1.5.0 resolution: "unrs-resolver@npm:1.5.0" dependencies: - "@unrs/resolver-binding-darwin-arm64": 1.5.0 - "@unrs/resolver-binding-darwin-x64": 1.5.0 - "@unrs/resolver-binding-freebsd-x64": 1.5.0 - "@unrs/resolver-binding-linux-arm-gnueabihf": 1.5.0 - "@unrs/resolver-binding-linux-arm-musleabihf": 1.5.0 - "@unrs/resolver-binding-linux-arm64-gnu": 1.5.0 - "@unrs/resolver-binding-linux-arm64-musl": 1.5.0 - "@unrs/resolver-binding-linux-ppc64-gnu": 1.5.0 - "@unrs/resolver-binding-linux-riscv64-gnu": 1.5.0 - "@unrs/resolver-binding-linux-s390x-gnu": 1.5.0 - "@unrs/resolver-binding-linux-x64-gnu": 1.5.0 - "@unrs/resolver-binding-linux-x64-musl": 1.5.0 - "@unrs/resolver-binding-wasm32-wasi": 1.5.0 - "@unrs/resolver-binding-win32-arm64-msvc": 1.5.0 - "@unrs/resolver-binding-win32-ia32-msvc": 1.5.0 - "@unrs/resolver-binding-win32-x64-msvc": 1.5.0 + "@unrs/resolver-binding-darwin-arm64": "npm:1.5.0" + "@unrs/resolver-binding-darwin-x64": "npm:1.5.0" + "@unrs/resolver-binding-freebsd-x64": "npm:1.5.0" + "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.5.0" + "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.5.0" + "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.5.0" + "@unrs/resolver-binding-linux-arm64-musl": "npm:1.5.0" + "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.5.0" + "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.5.0" + "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.5.0" + "@unrs/resolver-binding-linux-x64-gnu": "npm:1.5.0" + "@unrs/resolver-binding-linux-x64-musl": "npm:1.5.0" + "@unrs/resolver-binding-wasm32-wasi": "npm:1.5.0" + "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.5.0" + "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.5.0" + "@unrs/resolver-binding-win32-x64-msvc": "npm:1.5.0" dependenciesMeta: "@unrs/resolver-binding-darwin-arm64": optional: true @@ -10543,14 +10543,14 @@ __metadata: optional: true "@unrs/resolver-binding-win32-x64-msvc": optional: true - checksum: 76e0c0626f36fb5204efe099c5dad81a0a70b39c235cf7a5c808e3d7fefe21c205d2d94a99027ae6e2ed9d6b8a9f0b1296ab28222cd018a2690f2cf5f3b0e3c0 + checksum: 10/124936f842a0bee90e00ec01ec2f4a840435e92d78e88c1ddd5408da984a2fe3d9e0a34b0e8bba2b778374aa6c4382ef5dbc9cb8e75504478ce61dc69302c965 languageName: node linkType: hard "untildify@npm:^4.0.0": version: 4.0.0 resolution: "untildify@npm:4.0.0" - checksum: 39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 + checksum: 10/39ced9c418a74f73f0a56e1ba4634b4d959422dff61f4c72a8e39f60b99380c1b45ed776fbaa0a4101b157e4310d873ad7d114e8534ca02609b4916bb4187fb9 languageName: node linkType: hard @@ -10558,13 +10558,13 @@ __metadata: version: 1.1.3 resolution: "update-browserslist-db@npm:1.1.3" dependencies: - escalade: ^3.2.0 - picocolors: ^1.1.1 + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.1" peerDependencies: browserslist: ">= 4.21.0" bin: update-browserslist-db: cli.js - checksum: 7b6d8d08c34af25ee435bccac542bedcb9e57c710f3c42421615631a80aa6dd28b0a81c9d2afbef53799d482fb41453f714b8a7a0a8003e3b4ec8fb1abb819af + checksum: 10/87af2776054ffb9194cf95e0201547d041f72ee44ce54b144da110e65ea7ca01379367407ba21de5c9edd52c74d95395366790de67f3eb4cc4afa0fe4424e76f languageName: node linkType: hard @@ -10572,8 +10572,8 @@ __metadata: version: 4.4.1 resolution: "uri-js@npm:4.4.1" dependencies: - punycode: ^2.1.0 - checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 + punycode: "npm:^2.1.0" + checksum: 10/b271ca7e3d46b7160222e3afa3e531505161c9a4e097febae9664e4b59912f4cbe94861361a4175edac3a03fee99d91e44b6a58c17a634bc5a664b19fc76fbcb languageName: node linkType: hard @@ -10585,14 +10585,14 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 84fc1074b4e3ee2886fde944baef4ec210453fc78861429fe50ae97be8209e492f18c059c6b2ff1a21df231d72d1638707dabca889bd9d7bee36f21c196a0d19 + checksum: 10/84fc1074b4e3ee2886fde944baef4ec210453fc78861429fe50ae97be8209e492f18c059c6b2ff1a21df231d72d1638707dabca889bd9d7bee36f21c196a0d19 languageName: node linkType: hard "util-deprecate@npm:^1.0.2": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" - checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + checksum: 10/474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 languageName: node linkType: hard @@ -10601,14 +10601,14 @@ __metadata: resolution: "uuid@npm:8.3.2" bin: uuid: dist/bin/uuid - checksum: 5575a8a75c13120e2f10e6ddc801b2c7ed7d8f3c8ac22c7ed0c7b2ba6383ec0abda88c905085d630e251719e0777045ae3236f04c812184b7c765f63a70e58df + checksum: 10/9a5f7aa1d6f56dd1e8d5f2478f855f25c645e64e26e347a98e98d95781d5ed20062d6cca2eecb58ba7c84bc3910be95c0451ef4161906abaab44f9cb68ffbdd1 languageName: node linkType: hard "v8-compile-cache-lib@npm:^3.0.1": version: 3.0.1 resolution: "v8-compile-cache-lib@npm:3.0.1" - checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0 + checksum: 10/88d3423a52b6aaf1836be779cab12f7016d47ad8430dffba6edf766695e6d90ad4adaa3d8eeb512cc05924f3e246c4a4ca51e089dccf4402caa536b5e5be8961 languageName: node linkType: hard @@ -10616,9 +10616,9 @@ __metadata: version: 1.1.0 resolution: "variable-diff@npm:1.1.0" dependencies: - chalk: ^1.1.1 - object-assign: ^4.0.1 - checksum: 3abbbd7745cc61baf70cd4d9e66dfa6c81cdfa7146cd80ad4321383103838e0f633b24fa4443e82e09c410e2fd5f37f68b5fba57bf53f2c2565ab484bad66a0b + chalk: "npm:^1.1.1" + object-assign: "npm:^4.0.1" + checksum: 10/15f4c5db85ddf86e7bd5e3824f569ab587c7a2d71463a17610b6037268ab1d0b32d56bcabd9711ed25ab1c0f26d6852d0eef22972c74ee00b7ed3d3f44a7a8f9 languageName: node linkType: hard @@ -10626,10 +10626,10 @@ __metadata: version: 1.10.0 resolution: "verror@npm:1.10.0" dependencies: - assert-plus: ^1.0.0 - core-util-is: 1.0.2 - extsprintf: ^1.2.0 - checksum: c431df0bedf2088b227a4e051e0ff4ca54df2c114096b0c01e1cbaadb021c30a04d7dd5b41ab277bcd51246ca135bf931d4c4c796ecae7a4fef6d744ecef36ea + assert-plus: "npm:^1.0.0" + core-util-is: "npm:1.0.2" + extsprintf: "npm:^1.2.0" + checksum: 10/da548149dd9c130a8a2587c9ee71ea30128d1526925707e2d01ed9c5c45c9e9f86733c66a328247cdd5f7c1516fb25b0f959ba754bfbe15072aa99ff96468a29 languageName: node linkType: hard @@ -10637,9 +10637,9 @@ __metadata: version: 4.0.2 resolution: "vfile-message@npm:4.0.2" dependencies: - "@types/unist": ^3.0.0 - unist-util-stringify-position: ^4.0.0 - checksum: 964e7e119f4c0e0270fc269119c41c96da20afa01acb7c9809a88365c8e0c64aa692fafbd952669382b978002ecd7ad31ef4446d85e8a22cdb62f6df20186c2d + "@types/unist": "npm:^3.0.0" + unist-util-stringify-position: "npm:^4.0.0" + checksum: 10/1a5a72bf4945a7103750a3001bd979088ce42f6a01efa8590e68b2425e1afc61ddc5c76f2d3c4a7053b40332b24c09982b68743223e99281158fe727135719fc languageName: node linkType: hard @@ -10647,9 +10647,9 @@ __metadata: version: 6.0.3 resolution: "vfile@npm:6.0.3" dependencies: - "@types/unist": ^3.0.0 - vfile-message: ^4.0.0 - checksum: 152b6729be1af70df723efb65c1a1170fd483d41086557da3651eea69a1dd1f0c22ea4344834d56d30734b9185bcab63e22edc81d3f0e9bed8aa4660d61080af + "@types/unist": "npm:^3.0.0" + vfile-message: "npm:^4.0.0" + checksum: 10/a5a85293c9eb8787aa42e180edaef00c13199a493d6ed82fecf13ab29a68526850788e22434d77808ea6b17a74e03ff899b9b4711df5b9eee75afcddd7c2e1fb languageName: node linkType: hard @@ -10657,14 +10657,14 @@ __metadata: version: 2.1.9 resolution: "vite-node@npm:2.1.9" dependencies: - cac: ^6.7.14 - debug: ^4.3.7 - es-module-lexer: ^1.5.4 - pathe: ^1.1.2 - vite: ^5.0.0 + cac: "npm:^6.7.14" + debug: "npm:^4.3.7" + es-module-lexer: "npm:^1.5.4" + pathe: "npm:^1.1.2" + vite: "npm:^5.0.0" bin: vite-node: vite-node.mjs - checksum: 716d37649834ecea547b43121ee89b2e4f9ca65ff6ce26214770ecfefe070b8c7245c9fdd0f92fb232d266e153629d04af9a4dc4fc350abfa521e5e46434b7b2 + checksum: 10/c3a6c93e6e0d822c972076fdd35a912fb2ff0dac328de6f748db99265307d321768a4145c7932d306ef8faaf60da44dc422fe6501e1ab1083258df6a7fab8b20 languageName: node linkType: hard @@ -10672,15 +10672,15 @@ __metadata: version: 6.0.2 resolution: "vite-plugin-istanbul@npm:6.0.2" dependencies: - "@istanbuljs/load-nyc-config": ^1.1.0 - espree: ^10.0.1 - istanbul-lib-instrument: ^6.0.2 - picocolors: ^1.0.0 - source-map: ^0.7.4 - test-exclude: ^6.0.0 + "@istanbuljs/load-nyc-config": "npm:^1.1.0" + espree: "npm:^10.0.1" + istanbul-lib-instrument: "npm:^6.0.2" + picocolors: "npm:^1.0.0" + source-map: "npm:^0.7.4" + test-exclude: "npm:^6.0.0" peerDependencies: vite: ">=4 <=6" - checksum: fddd8367fa02159a047179c9c576c309f9a14bb970116e35fe543d40e3acc615c1671387b9de2394a5bc75d2ab0cfb7b7ebb9e29ec4ddff5411fa7bfee663e42 + checksum: 10/fddd8367fa02159a047179c9c576c309f9a14bb970116e35fe543d40e3acc615c1671387b9de2394a5bc75d2ab0cfb7b7ebb9e29ec4ddff5411fa7bfee663e42 languageName: node linkType: hard @@ -10688,15 +10688,15 @@ __metadata: version: 5.1.4 resolution: "vite-tsconfig-paths@npm:5.1.4" dependencies: - debug: ^4.1.1 - globrex: ^0.1.2 - tsconfck: ^3.0.3 + debug: "npm:^4.1.1" + globrex: "npm:^0.1.2" + tsconfck: "npm:^3.0.3" peerDependencies: vite: "*" peerDependenciesMeta: vite: optional: true - checksum: 9d868fcad7ac59049c08ce60f65a0e1b1caebb3d849c60ebe6ed47645255007fd8275c22a42155666fd76ee947bc36481d83c0527b2d9fa45ccafac4dbf99722 + checksum: 10/b409dbd17829f560021a71dba3e473b9c06dcf5fdc9d630b72c1f787145ec478b38caff1be04868971ac8bdcbf0f5af45eeece23dbc9c59c54b901f867740ae0 languageName: node linkType: hard @@ -10704,10 +10704,10 @@ __metadata: version: 5.4.18 resolution: "vite@npm:5.4.18" dependencies: - esbuild: ^0.21.3 - fsevents: ~2.3.3 - postcss: ^8.4.43 - rollup: ^4.20.0 + esbuild: "npm:^0.21.3" + fsevents: "npm:~2.3.3" + postcss: "npm:^8.4.43" + rollup: "npm:^4.20.0" peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 less: "*" @@ -10739,7 +10739,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: b61bab8c74b7a1a626e26ae2802734d666818b2a1856217b330ea7522e24a619f3d7f690f0466ea844d96549da44409075289cbc0fa8cb0245d40017c8455f74 + checksum: 10/491f0d047695a4bb3aafdb30822a3638ac41c23b022c1599bf51beab26a7cffe3ef1617bdf014592da48864079f217da5bf144a6c3238d2d74dea688ba3a549a languageName: node linkType: hard @@ -10747,26 +10747,26 @@ __metadata: version: 2.1.9 resolution: "vitest@npm:2.1.9" dependencies: - "@vitest/expect": 2.1.9 - "@vitest/mocker": 2.1.9 - "@vitest/pretty-format": ^2.1.9 - "@vitest/runner": 2.1.9 - "@vitest/snapshot": 2.1.9 - "@vitest/spy": 2.1.9 - "@vitest/utils": 2.1.9 - chai: ^5.1.2 - debug: ^4.3.7 - expect-type: ^1.1.0 - magic-string: ^0.30.12 - pathe: ^1.1.2 - std-env: ^3.8.0 - tinybench: ^2.9.0 - tinyexec: ^0.3.1 - tinypool: ^1.0.1 - tinyrainbow: ^1.2.0 - vite: ^5.0.0 - vite-node: 2.1.9 - why-is-node-running: ^2.3.0 + "@vitest/expect": "npm:2.1.9" + "@vitest/mocker": "npm:2.1.9" + "@vitest/pretty-format": "npm:^2.1.9" + "@vitest/runner": "npm:2.1.9" + "@vitest/snapshot": "npm:2.1.9" + "@vitest/spy": "npm:2.1.9" + "@vitest/utils": "npm:2.1.9" + chai: "npm:^5.1.2" + debug: "npm:^4.3.7" + expect-type: "npm:^1.1.0" + magic-string: "npm:^0.30.12" + pathe: "npm:^1.1.2" + std-env: "npm:^3.8.0" + tinybench: "npm:^2.9.0" + tinyexec: "npm:^0.3.1" + tinypool: "npm:^1.0.1" + tinyrainbow: "npm:^1.2.0" + vite: "npm:^5.0.0" + vite-node: "npm:2.1.9" + why-is-node-running: "npm:^2.3.0" peerDependencies: "@edge-runtime/vm": "*" "@types/node": ^18.0.0 || >=20.0.0 @@ -10789,14 +10789,14 @@ __metadata: optional: true bin: vitest: vitest.mjs - checksum: 20db77529f843930ef1626103c898b27528d6d68d6c44753ec823e318f26bbdeb3bc56e6fb80e3f1ecc34382107d32e1f4e709e23198f414fecc9298ab225fa8 + checksum: 10/28e061be0ff9219b259f72e00c4890fb774f474a9225361e2a4be82c27d58fc01b8d928345c47d7b06d27165586ae09792e8954dcc4b0f0b439cd824c7374131 languageName: node linkType: hard "web-streams-polyfill@npm:^3.0.3": version: 3.3.3 resolution: "web-streams-polyfill@npm:3.3.3" - checksum: 21ab5ea08a730a2ef8023736afe16713b4f2023ec1c7085c16c8e293ee17ed085dff63a0ad8722da30c99c4ccbd4ccd1b2e79c861829f7ef2963d7de7004c2cb + checksum: 10/8e7e13501b3834094a50abe7c0b6456155a55d7571312b89570012ef47ec2a46d766934768c50aabad10a9c30dd764a407623e8bfcc74fcb58495c29130edea9 languageName: node linkType: hard @@ -10804,12 +10804,12 @@ __metadata: version: 1.1.1 resolution: "which-boxed-primitive@npm:1.1.1" dependencies: - is-bigint: ^1.1.0 - is-boolean-object: ^1.2.1 - is-number-object: ^1.1.1 - is-string: ^1.1.1 - is-symbol: ^1.1.1 - checksum: ee41d0260e4fd39551ad77700c7047d3d281ec03d356f5e5c8393fe160ba0db53ef446ff547d05f76ffabfd8ad9df7c9a827e12d4cccdbc8fccf9239ff8ac21e + is-bigint: "npm:^1.1.0" + is-boolean-object: "npm:^1.2.1" + is-number-object: "npm:^1.1.1" + is-string: "npm:^1.1.1" + is-symbol: "npm:^1.1.1" + checksum: 10/a877c0667bc089518c83ad4d845cf8296b03efe3565c1de1940c646e00a2a1ae9ed8a185bcfa27cbf352de7906f0616d83b9d2f19ca500ee02a551fb5cf40740 languageName: node linkType: hard @@ -10817,20 +10817,20 @@ __metadata: version: 1.2.1 resolution: "which-builtin-type@npm:1.2.1" dependencies: - call-bound: ^1.0.2 - function.prototype.name: ^1.1.6 - has-tostringtag: ^1.0.2 - is-async-function: ^2.0.0 - is-date-object: ^1.1.0 - is-finalizationregistry: ^1.1.0 - is-generator-function: ^1.0.10 - is-regex: ^1.2.1 - is-weakref: ^1.0.2 - isarray: ^2.0.5 - which-boxed-primitive: ^1.1.0 - which-collection: ^1.0.2 - which-typed-array: ^1.1.16 - checksum: 7a3617ba0e7cafb795f74db418df889867d12bce39a477f3ee29c6092aa64d396955bf2a64eae3726d8578440e26777695544057b373c45a8bcf5fbe920bf633 + call-bound: "npm:^1.0.2" + function.prototype.name: "npm:^1.1.6" + has-tostringtag: "npm:^1.0.2" + is-async-function: "npm:^2.0.0" + is-date-object: "npm:^1.1.0" + is-finalizationregistry: "npm:^1.1.0" + is-generator-function: "npm:^1.0.10" + is-regex: "npm:^1.2.1" + is-weakref: "npm:^1.0.2" + isarray: "npm:^2.0.5" + which-boxed-primitive: "npm:^1.1.0" + which-collection: "npm:^1.0.2" + which-typed-array: "npm:^1.1.16" + checksum: 10/22c81c5cb7a896c5171742cd30c90d992ff13fb1ea7693e6cf80af077791613fb3f89aa9b4b7f890bd47b6ce09c6322c409932359580a2a2a54057f7b52d1cbe languageName: node linkType: hard @@ -10838,18 +10838,18 @@ __metadata: version: 1.0.2 resolution: "which-collection@npm:1.0.2" dependencies: - is-map: ^2.0.3 - is-set: ^2.0.3 - is-weakmap: ^2.0.2 - is-weakset: ^2.0.3 - checksum: c51821a331624c8197916598a738fc5aeb9a857f1e00d89f5e4c03dc7c60b4032822b8ec5696d28268bb83326456a8b8216344fb84270d18ff1d7628051879d9 + is-map: "npm:^2.0.3" + is-set: "npm:^2.0.3" + is-weakmap: "npm:^2.0.2" + is-weakset: "npm:^2.0.3" + checksum: 10/674bf659b9bcfe4055f08634b48a8588e879161b9fefed57e9ec4ff5601e4d50a05ccd76cf10f698ef5873784e5df3223336d56c7ce88e13bcf52ebe582fc8d7 languageName: node linkType: hard "which-module@npm:^2.0.0": version: 2.0.1 resolution: "which-module@npm:2.0.1" - checksum: 1967b7ce17a2485544a4fdd9063599f0f773959cca24176dbe8f405e55472d748b7c549cd7920ff6abb8f1ab7db0b0f1b36de1a21c57a8ff741f4f1e792c52be + checksum: 10/1967b7ce17a2485544a4fdd9063599f0f773959cca24176dbe8f405e55472d748b7c549cd7920ff6abb8f1ab7db0b0f1b36de1a21c57a8ff741f4f1e792c52be languageName: node linkType: hard @@ -10857,14 +10857,14 @@ __metadata: version: 1.1.19 resolution: "which-typed-array@npm:1.1.19" 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 - checksum: 162d2a07f68ea323f88ed9419861487ce5d02cb876f2cf9dd1e428d04a63133f93a54f89308f337b27cabd312ee3d027cae4a79002b2f0a85b79b9ef4c190670 + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + for-each: "npm:^0.3.5" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + checksum: 10/12be30fb88567f9863186bee1777f11bea09dd59ed8b3ce4afa7dd5cade75e2f4cc56191a2da165113cc7cf79987ba021dac1e22b5b62aa7e5c56949f2469a68 languageName: node linkType: hard @@ -10872,10 +10872,10 @@ __metadata: version: 2.0.2 resolution: "which@npm:2.0.2" dependencies: - isexe: ^2.0.0 + isexe: "npm:^2.0.0" bin: node-which: ./bin/node-which - checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + checksum: 10/4782f8a1d6b8fc12c65e968fea49f59752bf6302dc43036c3bf87da718a80710f61a062516e9764c70008b487929a73546125570acea95c5b5dcc8ac3052c70f languageName: node linkType: hard @@ -10883,10 +10883,10 @@ __metadata: version: 5.0.0 resolution: "which@npm:5.0.0" dependencies: - isexe: ^3.1.1 + isexe: "npm:^3.1.1" bin: node-which: bin/which.js - checksum: 6ec99e89ba32c7e748b8a3144e64bfc74aa63e2b2eacbb61a0060ad0b961eb1a632b08fb1de067ed59b002cec3e21de18299216ebf2325ef0f78e0f121e14e90 + checksum: 10/6ec99e89ba32c7e748b8a3144e64bfc74aa63e2b2eacbb61a0060ad0b961eb1a632b08fb1de067ed59b002cec3e21de18299216ebf2325ef0f78e0f121e14e90 languageName: node linkType: hard @@ -10894,18 +10894,18 @@ __metadata: version: 2.3.0 resolution: "why-is-node-running@npm:2.3.0" dependencies: - siginfo: ^2.0.0 - stackback: 0.0.2 + siginfo: "npm:^2.0.0" + stackback: "npm:0.0.2" bin: why-is-node-running: cli.js - checksum: 58ebbf406e243ace97083027f0df7ff4c2108baf2595bb29317718ef207cc7a8104e41b711ff65d6fa354f25daa8756b67f2f04931a4fd6ba9d13ae8197496fb + checksum: 10/0de6e6cd8f2f94a8b5ca44e84cf1751eadcac3ebedcdc6e5fbbe6c8011904afcbc1a2777c53496ec02ced7b81f2e7eda61e76bf8262a8bc3ceaa1f6040508051 languageName: node linkType: hard "word-wrap@npm:^1.2.5": version: 1.2.5 resolution: "word-wrap@npm:1.2.5" - checksum: f93ba3586fc181f94afdaff3a6fef27920b4b6d9eaefed0f428f8e07adea2a7f54a5f2830ce59406c8416f033f86902b91eb824072354645eea687dff3691ccb + checksum: 10/1ec6f6089f205f83037be10d0c4b34c9183b0b63fca0834a5b3cee55dd321429d73d40bb44c8fc8471b5203d6e8f8275717f49a8ff4b2b0ab41d7e1b563e0854 languageName: node linkType: hard @@ -10913,10 +10913,10 @@ __metadata: version: 7.0.0 resolution: "wrap-ansi@npm:7.0.0" dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10/cebdaeca3a6880da410f75209e68cd05428580de5ad24535f22696d7d9cab134d1f8498599f344c3cf0fb37c1715807a183778d8c648d6cc0cb5ff2bb4236540 languageName: node linkType: hard @@ -10924,10 +10924,10 @@ __metadata: version: 6.2.0 resolution: "wrap-ansi@npm:6.2.0" dependencies: - ansi-styles: ^4.0.0 - string-width: ^4.1.0 - strip-ansi: ^6.0.0 - checksum: 6cd96a410161ff617b63581a08376f0cb9162375adeb7956e10c8cd397821f7eb2a6de24eb22a0b28401300bf228c86e50617cd568209b5f6775b93c97d2fe3a + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10/0d64f2d438e0b555e693b95aee7b2689a12c3be5ac458192a1ce28f542a6e9e59ddfecc37520910c2c88eb1f82a5411260566dba5064e8f9895e76e169e76187 languageName: node linkType: hard @@ -10935,10 +10935,10 @@ __metadata: version: 8.1.0 resolution: "wrap-ansi@npm:8.1.0" dependencies: - ansi-styles: ^6.1.0 - string-width: ^5.0.1 - strip-ansi: ^7.0.1 - checksum: 371733296dc2d616900ce15a0049dca0ef67597d6394c57347ba334393599e800bab03c41d4d45221b6bc967b8c453ec3ae4749eff3894202d16800fdfe0e238 + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10/7b1e4b35e9bb2312d2ee9ee7dc95b8cb5f8b4b5a89f7dde5543fe66c1e3715663094defa50d75454ac900bd210f702d575f15f3f17fa9ec0291806d2578d1ddf languageName: node linkType: hard @@ -10946,17 +10946,17 @@ __metadata: version: 9.0.0 resolution: "wrap-ansi@npm:9.0.0" dependencies: - ansi-styles: ^6.2.1 - string-width: ^7.0.0 - strip-ansi: ^7.1.0 - checksum: b2d43b76b3d8dcbdd64768165e548aad3e54e1cae4ecd31bac9966faaa7cf0b0345677ad6879db10ba58eb446ba8fa44fb82b4951872fd397f096712467a809f + ansi-styles: "npm:^6.2.1" + string-width: "npm:^7.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10/b9d91564c091cf3978a7c18ca0f3e4d4606e83549dbe59cf76f5e77feefdd5ec91443155e8102630524d10a8c275efac8a7082c0f26fa43e6b989dc150d176ce languageName: node linkType: hard "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" - checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + checksum: 10/159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 languageName: node linkType: hard @@ -10964,11 +10964,11 @@ __metadata: version: 3.0.3 resolution: "write-file-atomic@npm:3.0.3" dependencies: - imurmurhash: ^0.1.4 - is-typedarray: ^1.0.0 - signal-exit: ^3.0.2 - typedarray-to-buffer: ^3.1.5 - checksum: c55b24617cc61c3a4379f425fc62a386cc51916a9b9d993f39734d005a09d5a4bb748bc251f1304e7abd71d0a26d339996c275955f527a131b1dcded67878280 + imurmurhash: "npm:^0.1.4" + is-typedarray: "npm:^1.0.0" + signal-exit: "npm:^3.0.2" + typedarray-to-buffer: "npm:^3.1.5" + checksum: 10/0955ab94308b74d32bc252afe69d8b42ba4b8a28b8d79f399f3f405969f82623f981e35d13129a52aa2973450f342107c06d86047572637584e85a1c0c246bf3 languageName: node linkType: hard @@ -10983,7 +10983,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 442badcce1f1178ec87a0b5372ae2e9771e07c4929a3180321901f226127f252441e8689d765aa5cfba5f50ac60dd830954afc5aeae81609aefa11d3ddf5cecf + checksum: 10/4264ae92c0b3e59c7e309001e93079b26937aab181835fb7af79f906b22cd33b6196d96556dafb4e985742dd401e99139572242e9847661fdbc96556b9e6902d languageName: node linkType: hard @@ -10998,49 +10998,49 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 4658357185d891bc45cc2d42a84f9e192d047e8476fb5cba25b604f7d75ca87ca0dd54cd0b2cc49aeee57c79045a741cb7d0b14501953ac60c790cd105c42f23 + checksum: 10/3f38e9594f2af5b6324138e86b74df7d77bbb8e310bf8188679dd80bac0d1f47e51536a1923ac3365f31f3d8b25ea0b03e4ade466aa8292a86cd5defca64b19b languageName: node linkType: hard "y18n@npm:^4.0.0": version: 4.0.3 resolution: "y18n@npm:4.0.3" - checksum: 014dfcd9b5f4105c3bb397c1c8c6429a9df004aa560964fb36732bfb999bfe83d45ae40aeda5b55d21b1ee53d8291580a32a756a443e064317953f08025b1aa4 + checksum: 10/392870b2a100bbc643bc035fe3a89cef5591b719c7bdc8721bcdb3d27ab39fa4870acdca67b0ee096e146d769f311d68eda6b8195a6d970f227795061923013f languageName: node linkType: hard "yallist@npm:^2.1.2": version: 2.1.2 resolution: "yallist@npm:2.1.2" - checksum: 9ba99409209f485b6fcb970330908a6d41fa1c933f75e08250316cce19383179a6b70a7e0721b89672ebb6199cc377bf3e432f55100da6a7d6e11902b0a642cb + checksum: 10/75fc7bee4821f52d1c6e6021b91b3e079276f1a9ce0ad58da3c76b79a7e47d6f276d35e206a96ac16c1cf48daee38a8bb3af0b1522a3d11c8ffe18f898828832 languageName: node linkType: hard "yallist@npm:^3.0.2": version: 3.1.1 resolution: "yallist@npm:3.1.1" - checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d + checksum: 10/9af0a4329c3c6b779ac4736c69fae4190ac03029fa27c1aef4e6bcc92119b73dea6fe5db5fe881fb0ce2a0e9539a42cdf60c7c21eda04d1a0b8c082e38509efb languageName: node linkType: hard "yallist@npm:^4.0.0": version: 4.0.0 resolution: "yallist@npm:4.0.0" - checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + checksum: 10/4cb02b42b8a93b5cf50caf5d8e9beb409400a8a4d85e83bb0685c1457e9ac0b7a00819e9f5991ac25ffabb56a78e2f017c1acc010b3a1babfe6de690ba531abd languageName: node linkType: hard "yallist@npm:^5.0.0": version: 5.0.0 resolution: "yallist@npm:5.0.0" - checksum: eba51182400b9f35b017daa7f419f434424410691bbc5de4f4240cc830fdef906b504424992700dc047f16b4d99100a6f8b8b11175c193f38008e9c96322b6a5 + checksum: 10/1884d272d485845ad04759a255c71775db0fac56308764b4c77ea56a20d56679fad340213054c8c9c9c26fcfd4c4b2a90df993b7e0aaf3cdb73c618d1d1a802a languageName: node linkType: hard "yaml@npm:^1.10.0": version: 1.10.2 resolution: "yaml@npm:1.10.2" - checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f + checksum: 10/e088b37b4d4885b70b50c9fa1b7e54bd2e27f5c87205f9deaffd1fb293ab263d9c964feadb9817a7b129a5bf30a06582cb08750f810568ecc14f3cdbabb79cb3 languageName: node linkType: hard @@ -11049,7 +11049,7 @@ __metadata: resolution: "yaml@npm:2.7.1" bin: yaml: bin.mjs - checksum: 385f8115ddfafdf8e599813cca8b2bf4e3f6a01b919fff5ae7da277e164df684d7dfe558b4085172094792b5a04786d3c55fa8b74abb0ee029873f031150bb80 + checksum: 10/af57658d37c5efae4bac7204589b742ae01878a278554d632f01012868cf7fa66cba09b39140f12e7f6ceecc693ae52bcfb737596c4827e6e233338cb3a9528e languageName: node linkType: hard @@ -11057,9 +11057,9 @@ __metadata: version: 18.1.3 resolution: "yargs-parser@npm:18.1.3" dependencies: - camelcase: ^5.0.0 - decamelize: ^1.2.0 - checksum: 60e8c7d1b85814594d3719300ecad4e6ae3796748b0926137bfec1f3042581b8646d67e83c6fc80a692ef08b8390f21ddcacb9464476c39bbdf52e34961dd4d9 + camelcase: "npm:^5.0.0" + decamelize: "npm:^1.2.0" + checksum: 10/235bcbad5b7ca13e5abc54df61d42f230857c6f83223a38e4ed7b824681875b7f8b6ed52139d88a3ad007050f28dc0324b3c805deac7db22ae3b4815dae0e1bf languageName: node linkType: hard @@ -11067,18 +11067,18 @@ __metadata: version: 15.4.1 resolution: "yargs@npm:15.4.1" dependencies: - cliui: ^6.0.0 - decamelize: ^1.2.0 - find-up: ^4.1.0 - get-caller-file: ^2.0.1 - require-directory: ^2.1.1 - require-main-filename: ^2.0.0 - set-blocking: ^2.0.0 - string-width: ^4.2.0 - which-module: ^2.0.0 - y18n: ^4.0.0 - yargs-parser: ^18.1.2 - checksum: 40b974f508d8aed28598087720e086ecd32a5fd3e945e95ea4457da04ee9bdb8bdd17fd91acff36dc5b7f0595a735929c514c40c402416bbb87c03f6fb782373 + cliui: "npm:^6.0.0" + decamelize: "npm:^1.2.0" + find-up: "npm:^4.1.0" + get-caller-file: "npm:^2.0.1" + require-directory: "npm:^2.1.1" + require-main-filename: "npm:^2.0.0" + set-blocking: "npm:^2.0.0" + string-width: "npm:^4.2.0" + which-module: "npm:^2.0.0" + y18n: "npm:^4.0.0" + yargs-parser: "npm:^18.1.2" + checksum: 10/bbcc82222996c0982905b668644ca363eebe6ffd6a572fbb52f0c0e8146661d8ce5af2a7df546968779bb03d1e4186f3ad3d55dfaadd1c4f0d5187c0e3a5ba16 languageName: node linkType: hard @@ -11086,23 +11086,23 @@ __metadata: version: 2.10.0 resolution: "yauzl@npm:2.10.0" dependencies: - buffer-crc32: ~0.2.3 - fd-slicer: ~1.1.0 - checksum: 7f21fe0bbad6e2cb130044a5d1d0d5a0e5bf3d8d4f8c4e6ee12163ce798fee3de7388d22a7a0907f563ac5f9d40f8699a223d3d5c1718da90b0156da6904022b + buffer-crc32: "npm:~0.2.3" + fd-slicer: "npm:~1.1.0" + checksum: 10/1e4c311050dc0cf2ee3dbe8854fe0a6cde50e420b3e561a8d97042526b4cf7a0718d6c8d89e9e526a152f4a9cec55bcea9c3617264115f48bd6704cf12a04445 languageName: node linkType: hard "yn@npm:3.1.1": version: 3.1.1 resolution: "yn@npm:3.1.1" - checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 + checksum: 10/2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6 languageName: node linkType: hard "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" - checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + checksum: 10/f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 languageName: node linkType: hard @@ -11110,17 +11110,17 @@ __metadata: version: 1.6.1 resolution: "yup@npm:1.6.1" dependencies: - property-expr: ^2.0.5 - tiny-case: ^1.0.3 - toposort: ^2.0.2 - type-fest: ^2.19.0 - checksum: 4ef0b15eb01d89a4f15c78c112b588468d553420be6f2f519d0e58a270c96a5bbbf1bff7bc8909851ba8b3df5e1fdb8b34d4a3bd4e9269006c592b3e8580568f + property-expr: "npm:^2.0.5" + tiny-case: "npm:^1.0.3" + toposort: "npm:^2.0.2" + type-fest: "npm:^2.19.0" + checksum: 10/19dba13403160a8739a9e57c8b816254842f3a9e01672846a980d8230cee8763783c089ded88662b30158d1479cf6bce0b51dce7f19ae7d0477be0c981024bc0 languageName: node linkType: hard "zwitch@npm:^2.0.0": version: 2.0.4 resolution: "zwitch@npm:2.0.4" - checksum: f22ec5fc2d5f02c423c93d35cdfa83573a3a3bd98c66b927c368ea4d0e7252a500df2a90a6b45522be536a96a73404393c958e945fdba95e6832c200791702b6 + checksum: 10/f22ec5fc2d5f02c423c93d35cdfa83573a3a3bd98c66b927c368ea4d0e7252a500df2a90a6b45522be536a96a73404393c958e945fdba95e6832c200791702b6 languageName: node linkType: hard From 7f964765db2e405dc5c06c311a03dfa6974965bd Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Thu, 22 May 2025 15:37:21 +0200 Subject: [PATCH 12/32] feat: version context --- src/constants/index.ts | 1 + src/ui/components/App.tsx | 33 ++++++++++++++----------- src/ui/contexts/VersionContext.tsx | 33 +++++++++++++++++++++++++ src/ui/contexts/index.tsx | 1 + src/ui/layout/sidebar/MobileMenu.tsx | 2 ++ src/ui/layout/sidebar/VersionSelect.tsx | 26 +++++++++++++++++++ src/ui/layout/sidebar/index.tsx | 3 +++ 7 files changed, 84 insertions(+), 15 deletions(-) create mode 100644 src/ui/contexts/VersionContext.tsx create mode 100644 src/ui/layout/sidebar/VersionSelect.tsx diff --git a/src/constants/index.ts b/src/constants/index.ts index 5b2185b7..72473490 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -8,6 +8,7 @@ export const LOCAL_STORAGE_KEY = { CUSTOM_ENDPOINT: 'contractsUiCustomEndpoint', PREFERRED_ENDPOINT: 'contractsUiPreferredEndpoint', THEME: 'theme', + VERSION: 'inkVersion', } as const; export type LocalStorageKey = (typeof LOCAL_STORAGE_KEY)[keyof typeof LOCAL_STORAGE_KEY]; diff --git a/src/ui/components/App.tsx b/src/ui/components/App.tsx index a1b8d5fc..8c591bcc 100644 --- a/src/ui/components/App.tsx +++ b/src/ui/components/App.tsx @@ -8,27 +8,30 @@ import { DatabaseContextProvider, ThemeContextProvider, TransactionsContextProvider, + VersionContextProvider, } from 'ui/contexts'; import { Sidebar } from 'ui/layout/sidebar'; export default function App() { return ( - - - - {/* we want the sidebar outside the outlet to prevent flickering in quicklinks */} -
- - - - - - -
-
-
-
+ + + + + {/* we want the sidebar outside the outlet to prevent flickering in quicklinks */} +
+ + + + + + +
+
+
+
+
); } diff --git a/src/ui/contexts/VersionContext.tsx b/src/ui/contexts/VersionContext.tsx new file mode 100644 index 00000000..339933f6 --- /dev/null +++ b/src/ui/contexts/VersionContext.tsx @@ -0,0 +1,33 @@ +// Copyright 2022-2024 use-ink/contracts-ui authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import { createContext, useEffect, useContext } from 'react'; +import { LOCAL_STORAGE_KEY } from '../../constants'; +import { useLocalStorage } from '../hooks/useLocalStorage'; + +export type InkVersion = 'v5' | 'v6'; + +export interface VersionSupported { + version: InkVersion; + setVersion: (v: InkVersion) => void; +} + +const VersionContext = createContext(undefined); + +export const VersionContextProvider = ({ children }: React.PropsWithChildren) => { + const [version, setVersion] = useLocalStorage(LOCAL_STORAGE_KEY.VERSION, 'v6'); + + useEffect(() => setVersion(version), [version]); + + return ( + {children} + ); +}; + +export const useVersion = () => { + const context = useContext(VersionContext); + if (context === undefined) { + throw new Error('useVersion must be used within VersionContextProvider'); + } + return context; +}; diff --git a/src/ui/contexts/index.tsx b/src/ui/contexts/index.tsx index 3e41de68..7aeae4b9 100644 --- a/src/ui/contexts/index.tsx +++ b/src/ui/contexts/index.tsx @@ -6,3 +6,4 @@ export * from './DatabaseContext'; export * from './InstantiateContext'; export * from './TransactionsContext'; export * from './ThemeContext'; +export * from './VersionContext'; diff --git a/src/ui/layout/sidebar/MobileMenu.tsx b/src/ui/layout/sidebar/MobileMenu.tsx index c8421f4e..8a244499 100644 --- a/src/ui/layout/sidebar/MobileMenu.tsx +++ b/src/ui/layout/sidebar/MobileMenu.tsx @@ -7,6 +7,7 @@ import { Footer } from './Footer'; import { Navigation } from './Navigation'; import { NetworkAndUser } from './NetworkAndUser'; import { QuickLinks } from './QuickLinks'; +import { VersionSelect } from './VersionSelect'; export function MobileMenu() { const [networkMenuOpen, setNetworkMenuOpen] = useState(false); @@ -42,6 +43,7 @@ export function MobileMenu() { <>
+
diff --git a/src/ui/layout/sidebar/VersionSelect.tsx b/src/ui/layout/sidebar/VersionSelect.tsx new file mode 100644 index 00000000..d0e07905 --- /dev/null +++ b/src/ui/layout/sidebar/VersionSelect.tsx @@ -0,0 +1,26 @@ +import { InkVersion, useVersion } from 'ui/contexts'; +import { Dropdown } from 'ui/components'; + +export function VersionSelect() { + const { version, setVersion } = useVersion(); + const dropdownOptions = [ + { + label: 'ink! v6 (default)', + value: 'v6', + }, + { + label: 'ink! v5', + value: 'v', + }, + ]; + return ( +
+ setVersion(e as InkVersion)} + options={dropdownOptions} + value={version} + /> +
+ ); +} diff --git a/src/ui/layout/sidebar/index.tsx b/src/ui/layout/sidebar/index.tsx index bfa2075b..edc49dd0 100644 --- a/src/ui/layout/sidebar/index.tsx +++ b/src/ui/layout/sidebar/index.tsx @@ -1,11 +1,13 @@ // Copyright 2022-2024 use-ink/contracts-ui authors & contributors // SPDX-License-Identifier: GPL-3.0-only +import { V } from 'vitest/dist/chunks/reporters.nr4dxCkA.js'; import { Footer } from './Footer'; import { MobileMenu } from './MobileMenu'; import { Navigation } from './Navigation'; import { NetworkAndUser } from './NetworkAndUser'; import { QuickLinks } from './QuickLinks'; +import { VersionSelect } from './VersionSelect'; export function Sidebar() { return ( @@ -15,6 +17,7 @@ export function Sidebar() {
From 0cff94e989203b324fa47842fa7cd481a13c1eb9 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Thu, 22 May 2025 15:44:02 +0200 Subject: [PATCH 13/32] chore: api-revive and api-contract in the same repo --- .api-contract/src/mod.ts | 4 --- {.api-contract => .api-revive}/README.md | 2 +- .../build-deno/Abi/index.ts | 0 .../build-deno/Abi/toLatestCompatible.ts | 0 .../build-deno/Abi/toV1.ts | 0 .../build-deno/Abi/toV2.ts | 0 .../build-deno/Abi/toV3.ts | 0 .../build-deno/Abi/toV4.ts | 0 .../build-deno/README.md | 2 +- .../build-deno/augment.ts | 0 .../build-deno/base/Base.ts | 0 .../build-deno/base/Blueprint.ts | 0 .../build-deno/base/Code.ts | 0 .../build-deno/base/Contract.ts | 0 .../build-deno/base/index.ts | 0 .../build-deno/base/mock.ts | 0 .../build-deno/base/types.ts | 0 .../build-deno/base/util.ts | 0 .../build-deno/bundle.ts | 0 .../build-deno/checkTypes.manual.ts | 5 +--- .../build-deno/index.ts | 0 .../build-deno/mod.ts | 0 .../build-deno/packageDetect.ts | 0 .../build-deno/packageInfo.ts | 2 +- .../build-deno/promise/index.ts | 0 .../build-deno/promise/types.ts | 0 .../build-deno/rx/index.ts | 0 .../build-deno/rx/types.ts | 0 .../build-deno/test/contracts/index.ts | 0 .../build-deno/test/contracts/ink/index.ts | 0 .../test/contracts/ink/v0/accumulator.wasm | Bin .../test/contracts/ink/v0/adder.wasm | Bin .../test/contracts/ink/v0/delegator.wasm | Bin .../build-deno/test/contracts/ink/v0/dns.wasm | Bin .../test/contracts/ink/v0/erc20.wasm | Bin .../test/contracts/ink/v0/erc721.wasm | Bin .../test/contracts/ink/v0/flipper.wasm | Bin .../test/contracts/ink/v0/incrementer.wasm | Bin .../build-deno/test/contracts/ink/v0/index.ts | 0 .../test/contracts/ink/v0/multisig_plain.wasm | Bin .../test/contracts/ink/v0/subber.wasm | Bin .../test/contracts/ink/v0/trait-flipper.wasm | Bin .../build-deno/test/contracts/ink/v1/index.ts | 0 .../build-deno/test/contracts/ink/v2/index.ts | 0 .../build-deno/test/contracts/ink/v3/index.ts | 0 .../test/contracts/ink/v4/erc20.wasm | Bin .../test/contracts/ink/v4/flipper.wasm | Bin .../build-deno/test/contracts/ink/v4/index.ts | 0 .../test/contracts/ink/v5/erc20.wasm | Bin .../test/contracts/ink/v5/flipper.wasm | Bin .../build-deno/test/contracts/ink/v5/index.ts | 0 .../build-deno/test/contracts/solang/index.ts | 0 .../test/contracts/solang/v0/index.ts | 0 .../test/contracts/solang/v0/ints256.sol | 0 .../test/contracts/solang/v0/ints256.wasm | Bin .../build-deno/test/contracts/user/index.ts | 0 .../test/contracts/user/v0/assetTransfer.wasm | Bin .../test/contracts/user/v0/enumExample.wasm | Bin .../test/contracts/user/v0/index.ts | 0 .../test/contracts/user/v3/index.ts | 0 .../test/contracts/user/v4/index.ts | 0 .../build-deno/test/contracts/util.ts | 0 .../build-deno/types.ts | 0 .../build-deno/util.ts | 0 .../build-tsc-cjs/Abi/index.js | 0 .../build-tsc-cjs/Abi/toLatestCompatible.js | 0 .../build-tsc-cjs/Abi/toV1.js | 0 .../build-tsc-cjs/Abi/toV2.js | 0 .../build-tsc-cjs/Abi/toV3.js | 0 .../build-tsc-cjs/Abi/toV4.js | 0 .../build-tsc-cjs/augment.js | 0 .../build-tsc-cjs/base/Base.js | 0 .../build-tsc-cjs/base/Blueprint.js | 0 .../build-tsc-cjs/base/Code.js | 0 .../build-tsc-cjs/base/Contract.js | 0 .../build-tsc-cjs/base/index.js | 0 .../build-tsc-cjs/base/mock.js | 0 .../build-tsc-cjs/base/types.js | 0 .../build-tsc-cjs/base/util.js | 0 .../build-tsc-cjs/bundle.js | 0 .../build-tsc-cjs/index.js | 0 .../build-tsc-cjs/packageDetect.js | 0 .../build-tsc-cjs/packageInfo.js | 2 +- .../build-tsc-cjs/promise/index.js | 0 .../build-tsc-cjs/promise/types.js | 0 .../build-tsc-cjs/rx/index.js | 0 .../build-tsc-cjs/rx/types.js | 0 .../build-tsc-cjs/types.js | 0 .../build-tsc-cjs/util.js | 0 .../build-tsc-esm/Abi/index.js | 0 .../build-tsc-esm/Abi/toLatestCompatible.js | 0 .../build-tsc-esm/Abi/toV1.js | 0 .../build-tsc-esm/Abi/toV2.js | 0 .../build-tsc-esm/Abi/toV3.js | 0 .../build-tsc-esm/Abi/toV4.js | 0 .../build-tsc-esm/augment.js | 0 .../build-tsc-esm/base/Base.js | 0 .../build-tsc-esm/base/Blueprint.js | 0 .../build-tsc-esm/base/Code.js | 0 .../build-tsc-esm/base/Contract.js | 0 .../build-tsc-esm/base/index.js | 0 .../build-tsc-esm/base/mock.js | 0 .../build-tsc-esm/base/types.js | 0 .../build-tsc-esm/base/util.js | 0 .../build-tsc-esm/bundle.js | 0 .../build-tsc-esm/index.js | 0 .../build-tsc-esm/packageDetect.js | 0 .../build-tsc-esm/packageInfo.js | 2 +- .../build-tsc-esm/promise/index.js | 0 .../build-tsc-esm/promise/types.js | 0 .../build-tsc-esm/rx/index.js | 0 .../build-tsc-esm/rx/types.js | 0 .../build-tsc-esm/types.js | 0 .../build-tsc-esm/util.js | 0 .../build-tsc/Abi/index.d.ts | 0 .../build-tsc/Abi/toLatestCompatible.d.ts | 0 .../build-tsc/Abi/toV1.d.ts | 0 .../build-tsc/Abi/toV2.d.ts | 0 .../build-tsc/Abi/toV3.d.ts | 0 .../build-tsc/Abi/toV4.d.ts | 0 .../build-tsc/augment.d.ts | 0 .../build-tsc/base/Base.d.ts | 0 .../build-tsc/base/Blueprint.d.ts | 0 .../build-tsc/base/Code.d.ts | 0 .../build-tsc/base/Contract.d.ts | 0 .../build-tsc/base/index.d.ts | 0 .../build-tsc/base/mock.d.ts | 0 .../build-tsc/base/types.d.ts | 0 .../build-tsc/base/util.d.ts | 0 .../build-tsc/bundle.d.ts | 0 .../build-tsc/index.d.ts | 0 .../build-tsc/packageDetect.d.ts | 0 .../build-tsc/packageInfo.d.ts | 0 .../build-tsc/promise/index.d.ts | 0 .../build-tsc/promise/types.d.ts | 0 .../build-tsc/rx/index.d.ts | 0 .../build-tsc/rx/types.d.ts | 0 .../build-tsc/types.d.ts | 0 .../build-tsc/util.d.ts | 0 .../build/Abi/index.d.ts | 0 .../build/Abi/index.js | 0 .../build/Abi/toLatestCompatible.d.ts | 0 .../build/Abi/toLatestCompatible.js | 0 .../build/Abi/toV1.d.ts | 0 .../build/Abi/toV1.js | 0 .../build/Abi/toV2.d.ts | 0 .../build/Abi/toV2.js | 0 .../build/Abi/toV3.d.ts | 0 .../build/Abi/toV3.js | 0 .../build/Abi/toV4.d.ts | 0 .../build/Abi/toV4.js | 0 {.api-contract => .api-revive}/build/LICENSE | 0 .../build/README.md | 2 +- .../build/augment.d.ts | 0 .../build/augment.js | 0 .../build/base/Base.d.ts | 0 .../build/base/Base.js | 0 .../build/base/Blueprint.d.ts | 0 .../build/base/Blueprint.js | 0 .../build/base/Code.d.ts | 0 .../build/base/Code.js | 0 .../build/base/Contract.d.ts | 0 .../build/base/Contract.js | 0 .../build/base/index.d.ts | 0 .../build/base/index.js | 0 .../build/base/mock.d.ts | 0 .../build/base/mock.js | 0 .../build/base/types.d.ts | 0 .../build/base/types.js | 0 .../build/base/util.d.ts | 0 .../build/base/util.js | 0 .../build/bundle-polkadot-api-contract.js | 10 +++---- .../build/bundle.d.ts | 0 .../build/bundle.js | 0 .../build/cjs/Abi/index.d.ts | 0 .../build/cjs/Abi/index.js | 0 .../build/cjs/Abi/toLatestCompatible.d.ts | 0 .../build/cjs/Abi/toLatestCompatible.js | 0 .../build/cjs/Abi/toV1.d.ts | 0 .../build/cjs/Abi/toV1.js | 0 .../build/cjs/Abi/toV2.d.ts | 0 .../build/cjs/Abi/toV2.js | 0 .../build/cjs/Abi/toV3.d.ts | 0 .../build/cjs/Abi/toV3.js | 0 .../build/cjs/Abi/toV4.d.ts | 0 .../build/cjs/Abi/toV4.js | 0 .../build/cjs/augment.d.ts | 0 .../build/cjs/augment.js | 0 .../build/cjs/base/Base.d.ts | 0 .../build/cjs/base/Base.js | 0 .../build/cjs/base/Blueprint.d.ts | 0 .../build/cjs/base/Blueprint.js | 0 .../build/cjs/base/Code.d.ts | 0 .../build/cjs/base/Code.js | 0 .../build/cjs/base/Contract.d.ts | 0 .../build/cjs/base/Contract.js | 0 .../build/cjs/base/index.d.ts | 0 .../build/cjs/base/index.js | 0 .../build/cjs/base/mock.d.ts | 0 .../build/cjs/base/mock.js | 0 .../build/cjs/base/types.d.ts | 0 .../build/cjs/base/types.js | 0 .../build/cjs/base/util.d.ts | 0 .../build/cjs/base/util.js | 0 .../build/cjs/bundle.d.ts | 0 .../build/cjs/bundle.js | 0 .../build/cjs/index.d.ts | 0 .../build/cjs/index.js | 0 .../build/cjs/package.json | 0 .../build/cjs/packageDetect.d.ts | 0 .../build/cjs/packageDetect.js | 0 .../build/cjs/packageInfo.d.ts | 0 .../build/cjs/packageInfo.js | 2 +- .../build/cjs/promise/index.d.ts | 0 .../build/cjs/promise/index.js | 0 .../build/cjs/promise/types.d.ts | 0 .../build/cjs/promise/types.js | 0 .../build/cjs/rx/index.d.ts | 0 .../build/cjs/rx/index.js | 0 .../build/cjs/rx/types.d.ts | 0 .../build/cjs/rx/types.js | 0 .../build/cjs/types.d.ts | 0 .../build/cjs/types.js | 0 .../build/cjs/util.d.ts | 0 .../build/cjs/util.js | 0 .../build/index.d.ts | 0 {.api-contract => .api-revive}/build/index.js | 0 .../build/package.json | 6 ++-- .../build/packageDetect.d.ts | 0 .../build/packageDetect.js | 0 .../build/packageInfo.d.ts | 0 .../build/packageInfo.js | 2 +- .../build/promise/index.d.ts | 0 .../build/promise/index.js | 0 .../build/promise/types.d.ts | 0 .../build/promise/types.js | 0 .../build/rx/index.d.ts | 0 .../build/rx/index.js | 0 .../build/rx/types.d.ts | 0 .../build/rx/types.js | 0 .../build/types.d.ts | 0 {.api-contract => .api-revive}/build/types.js | 0 .../build/util.d.ts | 0 {.api-contract => .api-revive}/build/util.js | 0 {.api-contract => .api-revive}/package.json | 6 ++-- .../src/Abi/Abi.spec.ts | 2 +- .../src/Abi/index.ts | 2 +- .../src/Abi/toLatestCompatible.spec.ts | 2 +- .../src/Abi/toLatestCompatible.ts | 2 +- .../src/Abi/toV1.ts | 2 +- .../src/Abi/toV2.ts | 2 +- .../src/Abi/toV3.ts | 2 +- .../src/Abi/toV4.ts | 2 +- {.api-contract => .api-revive}/src/augment.ts | 2 +- .../src/base/Base.ts | 0 .../src/base/Blueprint.ts | 2 +- .../src/base/Code.spec.ts | 2 +- .../src/base/Code.ts | 2 +- .../src/base/Contract.ts | 2 +- .../src/base/index.ts | 0 .../src/base/mock.ts | 2 +- .../src/base/types.ts | 2 +- .../src/base/util.ts | 2 +- {.api-contract => .api-revive}/src/bundle.ts | 2 +- .../src/checkTypes.manual.ts | 4 +-- {.api-contract => .api-revive}/src/index.ts | 2 +- .api-revive/src/mod.ts | 4 +++ .../src/packageDetect.ts | 2 +- .../src/packageInfo.ts | 4 +-- .../src/promise/index.ts | 2 +- .../src/promise/types.ts | 2 +- .../src/rx/index.ts | 2 +- .../src/rx/types.ts | 2 +- .../test/compare/ink_v0_delegator.test.json | 0 .../src/test/compare/ink_v0_dns.test.json | 0 .../src/test/compare/ink_v0_erc20.test.json | 0 .../src/test/compare/ink_v0_erc721.test.json | 0 .../src/test/compare/ink_v0_flipper.test.json | 0 .../compare/ink_v0_flipperBundle.test.json | 0 .../test/compare/ink_v0_incrementer.test.json | 0 .../compare/ink_v0_multisigPlain.test.json | 0 .../src/test/compare/ink_v1_flipper.test.json | 0 .../src/test/compare/ink_v1_psp22.test.json | 0 .../src/test/compare/ink_v2_erc20.test.json | 0 .../src/test/compare/ink_v2_flipper.test.json | 0 .../src/test/compare/ink_v3_flipper.test.json | 0 .../test/compare/ink_v3_traitErc20.test.json | 0 .../compare/ink_v4_erc20Contract.test.json | 0 .../compare/ink_v4_erc20Metadata.test.json | 0 .../compare/ink_v4_flipperContract.test.json | 0 .../compare/ink_v4_flipperMetadata.test.json | 0 .../src/test/compare/ink_v5_erc20.test.json | 0 ...5_erc20AnonymousTransferMetadata.test.json | 0 .../compare/ink_v5_erc20Contract.test.json | 0 .../compare/ink_v5_erc20Metadata.test.json | 0 .../compare/ink_v5_flipperContract.test.json | 0 .../compare/ink_v5_flipperMetadata.test.json | 0 .../test/compare/solang_v0_ints256.test.json | 0 .../compare/user_v0_assetTransfer.test.json | 0 .../compare/user_v0_enumExample.test.json | 0 .../test/compare/user_v0_recursive.test.json | 0 .../test/compare/user_v0_withString.test.json | 0 .../src/test/compare/user_v3_ask.test.json | 0 .../src/test/compare/user_v4_events.test.json | 0 .../src/test/contracts/index.ts | 2 +- .../src/test/contracts/ink/index.ts | 2 +- .../test/contracts/ink/v0/accumulator.wasm | Bin .../src/test/contracts/ink/v0/adder.wasm | Bin .../src/test/contracts/ink/v0/delegator.json | 0 .../src/test/contracts/ink/v0/delegator.wasm | Bin .../src/test/contracts/ink/v0/dns.json | 0 .../src/test/contracts/ink/v0/dns.wasm | Bin .../src/test/contracts/ink/v0/erc20.json | 0 .../src/test/contracts/ink/v0/erc20.wasm | Bin .../src/test/contracts/ink/v0/erc721.json | 0 .../src/test/contracts/ink/v0/erc721.wasm | Bin .../contracts/ink/v0/flipper.contract.json | 0 .../src/test/contracts/ink/v0/flipper.json | 0 .../src/test/contracts/ink/v0/flipper.wasm | Bin .../test/contracts/ink/v0/incrementer.json | 0 .../test/contracts/ink/v0/incrementer.wasm | Bin .../src/test/contracts/ink/v0/index.ts | 2 +- .../test/contracts/ink/v0/multisig_plain.json | 0 .../test/contracts/ink/v0/multisig_plain.wasm | Bin .../src/test/contracts/ink/v0/subber.wasm | Bin .../test/contracts/ink/v0/trait-flipper.json | 0 .../test/contracts/ink/v0/trait-flipper.wasm | Bin .../contracts/ink/v1/flipper.contract.json | 0 .../src/test/contracts/ink/v1/index.ts | 2 +- .../ink/v1/psp22_minter_pauser.contract.json | 0 .../test/contracts/ink/v2/erc20.contract.json | 0 .../contracts/ink/v2/flipper.contract.json | 0 .../src/test/contracts/ink/v2/index.ts | 2 +- .../contracts/ink/v3/flipper.contract.json | 0 .../src/test/contracts/ink/v3/index.ts | 2 +- .../ink/v3/trait_erc20.contract.json | 0 .../test/contracts/ink/v4/erc20.contract.json | 0 .../src/test/contracts/ink/v4/erc20.json | 0 .../src/test/contracts/ink/v4/erc20.wasm | Bin .../contracts/ink/v4/flipper.contract.json | 0 .../src/test/contracts/ink/v4/flipper.json | 0 .../src/test/contracts/ink/v4/flipper.wasm | Bin .../src/test/contracts/ink/v4/index.ts | 2 +- .../test/contracts/ink/v5/erc20.contract.json | 0 .../src/test/contracts/ink/v5/erc20.json | 0 .../src/test/contracts/ink/v5/erc20.wasm | Bin .../ink/v5/erc20_anonymous_transfer.json | 0 .../contracts/ink/v5/flipper.contract.json | 0 .../src/test/contracts/ink/v5/flipper.json | 0 .../src/test/contracts/ink/v5/flipper.wasm | Bin .../src/test/contracts/ink/v5/index.ts | 2 +- .../src/test/contracts/solang/index.ts | 2 +- .../src/test/contracts/solang/v0/index.ts | 2 +- .../src/test/contracts/solang/v0/ints256.json | 0 .../src/test/contracts/solang/v0/ints256.sol | 0 .../src/test/contracts/solang/v0/ints256.wasm | Bin .../src/test/contracts/user/index.ts | 2 +- .../test/contracts/user/v0/assetTransfer.json | 0 .../test/contracts/user/v0/assetTransfer.wasm | Bin .../test/contracts/user/v0/enumExample.json | 0 .../test/contracts/user/v0/enumExample.wasm | Bin .../src/test/contracts/user/v0/index.ts | 2 +- .../contracts/user/v0/recursive.contract.json | 0 .../test/contracts/user/v0/withString.json | 0 .../src/test/contracts/user/v3/ask.json | 0 .../src/test/contracts/user/v3/index.ts | 2 +- .../contracts/user/v4/events.contract.json | 0 .../src/test/contracts/user/v4/index.ts | 2 +- .../src/test/contracts/util.ts | 2 +- {.api-contract => .api-revive}/src/types.ts | 2 +- {.api-contract => .api-revive}/src/util.ts | 2 +- .../tsconfig.build.json | 0 .../tsconfig.spec.json | 2 +- package.json | 3 +- yarn.lock | 26 +++++++++++++++--- 375 files changed, 93 insertions(+), 77 deletions(-) delete mode 100644 .api-contract/src/mod.ts rename {.api-contract => .api-revive}/README.md (75%) rename {.api-contract => .api-revive}/build-deno/Abi/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/Abi/toLatestCompatible.ts (100%) rename {.api-contract => .api-revive}/build-deno/Abi/toV1.ts (100%) rename {.api-contract => .api-revive}/build-deno/Abi/toV2.ts (100%) rename {.api-contract => .api-revive}/build-deno/Abi/toV3.ts (100%) rename {.api-contract => .api-revive}/build-deno/Abi/toV4.ts (100%) rename {.api-contract => .api-revive}/build-deno/README.md (75%) rename {.api-contract => .api-revive}/build-deno/augment.ts (100%) rename {.api-contract => .api-revive}/build-deno/base/Base.ts (100%) rename {.api-contract => .api-revive}/build-deno/base/Blueprint.ts (100%) rename {.api-contract => .api-revive}/build-deno/base/Code.ts (100%) rename {.api-contract => .api-revive}/build-deno/base/Contract.ts (100%) rename {.api-contract => .api-revive}/build-deno/base/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/base/mock.ts (100%) rename {.api-contract => .api-revive}/build-deno/base/types.ts (100%) rename {.api-contract => .api-revive}/build-deno/base/util.ts (100%) rename {.api-contract => .api-revive}/build-deno/bundle.ts (100%) rename {.api-contract => .api-revive}/build-deno/checkTypes.manual.ts (93%) rename {.api-contract => .api-revive}/build-deno/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/mod.ts (100%) rename {.api-contract => .api-revive}/build-deno/packageDetect.ts (100%) rename {.api-contract => .api-revive}/build-deno/packageInfo.ts (76%) rename {.api-contract => .api-revive}/build-deno/promise/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/promise/types.ts (100%) rename {.api-contract => .api-revive}/build-deno/rx/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/rx/types.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/accumulator.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/adder.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/delegator.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/dns.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/erc20.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/erc721.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/flipper.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/incrementer.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/multisig_plain.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/subber.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v0/trait-flipper.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v1/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v2/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v3/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v4/erc20.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v4/flipper.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v4/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v5/erc20.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v5/flipper.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/ink/v5/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/solang/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/solang/v0/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/solang/v0/ints256.sol (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/solang/v0/ints256.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/user/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/user/v0/assetTransfer.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/user/v0/enumExample.wasm (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/user/v0/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/user/v3/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/user/v4/index.ts (100%) rename {.api-contract => .api-revive}/build-deno/test/contracts/util.ts (100%) rename {.api-contract => .api-revive}/build-deno/types.ts (100%) rename {.api-contract => .api-revive}/build-deno/util.ts (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/Abi/index.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/Abi/toLatestCompatible.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/Abi/toV1.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/Abi/toV2.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/Abi/toV3.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/Abi/toV4.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/augment.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/base/Base.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/base/Blueprint.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/base/Code.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/base/Contract.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/base/index.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/base/mock.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/base/types.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/base/util.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/bundle.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/index.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/packageDetect.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/packageInfo.js (87%) rename {.api-contract => .api-revive}/build-tsc-cjs/promise/index.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/promise/types.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/rx/index.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/rx/types.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/types.js (100%) rename {.api-contract => .api-revive}/build-tsc-cjs/util.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/Abi/index.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/Abi/toLatestCompatible.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/Abi/toV1.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/Abi/toV2.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/Abi/toV3.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/Abi/toV4.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/augment.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/base/Base.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/base/Blueprint.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/base/Code.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/base/Contract.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/base/index.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/base/mock.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/base/types.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/base/util.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/bundle.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/index.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/packageDetect.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/packageInfo.js (88%) rename {.api-contract => .api-revive}/build-tsc-esm/promise/index.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/promise/types.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/rx/index.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/rx/types.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/types.js (100%) rename {.api-contract => .api-revive}/build-tsc-esm/util.js (100%) rename {.api-contract => .api-revive}/build-tsc/Abi/index.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/Abi/toLatestCompatible.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/Abi/toV1.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/Abi/toV2.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/Abi/toV3.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/Abi/toV4.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/augment.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/base/Base.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/base/Blueprint.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/base/Code.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/base/Contract.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/base/index.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/base/mock.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/base/types.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/base/util.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/bundle.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/index.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/packageDetect.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/packageInfo.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/promise/index.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/promise/types.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/rx/index.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/rx/types.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/types.d.ts (100%) rename {.api-contract => .api-revive}/build-tsc/util.d.ts (100%) rename {.api-contract => .api-revive}/build/Abi/index.d.ts (100%) rename {.api-contract => .api-revive}/build/Abi/index.js (100%) rename {.api-contract => .api-revive}/build/Abi/toLatestCompatible.d.ts (100%) rename {.api-contract => .api-revive}/build/Abi/toLatestCompatible.js (100%) rename {.api-contract => .api-revive}/build/Abi/toV1.d.ts (100%) rename {.api-contract => .api-revive}/build/Abi/toV1.js (100%) rename {.api-contract => .api-revive}/build/Abi/toV2.d.ts (100%) rename {.api-contract => .api-revive}/build/Abi/toV2.js (100%) rename {.api-contract => .api-revive}/build/Abi/toV3.d.ts (100%) rename {.api-contract => .api-revive}/build/Abi/toV3.js (100%) rename {.api-contract => .api-revive}/build/Abi/toV4.d.ts (100%) rename {.api-contract => .api-revive}/build/Abi/toV4.js (100%) rename {.api-contract => .api-revive}/build/LICENSE (100%) rename {.api-contract => .api-revive}/build/README.md (75%) rename {.api-contract => .api-revive}/build/augment.d.ts (100%) rename {.api-contract => .api-revive}/build/augment.js (100%) rename {.api-contract => .api-revive}/build/base/Base.d.ts (100%) rename {.api-contract => .api-revive}/build/base/Base.js (100%) rename {.api-contract => .api-revive}/build/base/Blueprint.d.ts (100%) rename {.api-contract => .api-revive}/build/base/Blueprint.js (100%) rename {.api-contract => .api-revive}/build/base/Code.d.ts (100%) rename {.api-contract => .api-revive}/build/base/Code.js (100%) rename {.api-contract => .api-revive}/build/base/Contract.d.ts (100%) rename {.api-contract => .api-revive}/build/base/Contract.js (100%) rename {.api-contract => .api-revive}/build/base/index.d.ts (100%) rename {.api-contract => .api-revive}/build/base/index.js (100%) rename {.api-contract => .api-revive}/build/base/mock.d.ts (100%) rename {.api-contract => .api-revive}/build/base/mock.js (100%) rename {.api-contract => .api-revive}/build/base/types.d.ts (100%) rename {.api-contract => .api-revive}/build/base/types.js (100%) rename {.api-contract => .api-revive}/build/base/util.d.ts (100%) rename {.api-contract => .api-revive}/build/base/util.js (100%) rename {.api-contract => .api-revive}/build/bundle-polkadot-api-contract.js (99%) rename {.api-contract => .api-revive}/build/bundle.d.ts (100%) rename {.api-contract => .api-revive}/build/bundle.js (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/index.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/index.js (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/toLatestCompatible.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/toLatestCompatible.js (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/toV1.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/toV1.js (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/toV2.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/toV2.js (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/toV3.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/toV3.js (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/toV4.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/Abi/toV4.js (100%) rename {.api-contract => .api-revive}/build/cjs/augment.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/augment.js (100%) rename {.api-contract => .api-revive}/build/cjs/base/Base.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/base/Base.js (100%) rename {.api-contract => .api-revive}/build/cjs/base/Blueprint.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/base/Blueprint.js (100%) rename {.api-contract => .api-revive}/build/cjs/base/Code.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/base/Code.js (100%) rename {.api-contract => .api-revive}/build/cjs/base/Contract.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/base/Contract.js (100%) rename {.api-contract => .api-revive}/build/cjs/base/index.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/base/index.js (100%) rename {.api-contract => .api-revive}/build/cjs/base/mock.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/base/mock.js (100%) rename {.api-contract => .api-revive}/build/cjs/base/types.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/base/types.js (100%) rename {.api-contract => .api-revive}/build/cjs/base/util.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/base/util.js (100%) rename {.api-contract => .api-revive}/build/cjs/bundle.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/bundle.js (100%) rename {.api-contract => .api-revive}/build/cjs/index.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/index.js (100%) rename {.api-contract => .api-revive}/build/cjs/package.json (100%) rename {.api-contract => .api-revive}/build/cjs/packageDetect.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/packageDetect.js (100%) rename {.api-contract => .api-revive}/build/cjs/packageInfo.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/packageInfo.js (87%) rename {.api-contract => .api-revive}/build/cjs/promise/index.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/promise/index.js (100%) rename {.api-contract => .api-revive}/build/cjs/promise/types.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/promise/types.js (100%) rename {.api-contract => .api-revive}/build/cjs/rx/index.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/rx/index.js (100%) rename {.api-contract => .api-revive}/build/cjs/rx/types.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/rx/types.js (100%) rename {.api-contract => .api-revive}/build/cjs/types.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/types.js (100%) rename {.api-contract => .api-revive}/build/cjs/util.d.ts (100%) rename {.api-contract => .api-revive}/build/cjs/util.js (100%) rename {.api-contract => .api-revive}/build/index.d.ts (100%) rename {.api-contract => .api-revive}/build/index.js (100%) rename {.api-contract => .api-revive}/build/package.json (98%) rename {.api-contract => .api-revive}/build/packageDetect.d.ts (100%) rename {.api-contract => .api-revive}/build/packageDetect.js (100%) rename {.api-contract => .api-revive}/build/packageInfo.d.ts (100%) rename {.api-contract => .api-revive}/build/packageInfo.js (88%) rename {.api-contract => .api-revive}/build/promise/index.d.ts (100%) rename {.api-contract => .api-revive}/build/promise/index.js (100%) rename {.api-contract => .api-revive}/build/promise/types.d.ts (100%) rename {.api-contract => .api-revive}/build/promise/types.js (100%) rename {.api-contract => .api-revive}/build/rx/index.d.ts (100%) rename {.api-contract => .api-revive}/build/rx/index.js (100%) rename {.api-contract => .api-revive}/build/rx/types.d.ts (100%) rename {.api-contract => .api-revive}/build/rx/types.js (100%) rename {.api-contract => .api-revive}/build/types.d.ts (100%) rename {.api-contract => .api-revive}/build/types.js (100%) rename {.api-contract => .api-revive}/build/util.d.ts (100%) rename {.api-contract => .api-revive}/build/util.js (100%) rename {.api-contract => .api-revive}/package.json (90%) rename {.api-contract => .api-revive}/src/Abi/Abi.spec.ts (99%) rename {.api-contract => .api-revive}/src/Abi/index.ts (99%) rename {.api-contract => .api-revive}/src/Abi/toLatestCompatible.spec.ts (98%) rename {.api-contract => .api-revive}/src/Abi/toLatestCompatible.ts (96%) rename {.api-contract => .api-revive}/src/Abi/toV1.ts (93%) rename {.api-contract => .api-revive}/src/Abi/toV2.ts (96%) rename {.api-contract => .api-revive}/src/Abi/toV3.ts (91%) rename {.api-contract => .api-revive}/src/Abi/toV4.ts (92%) rename {.api-contract => .api-revive}/src/augment.ts (51%) rename {.api-contract => .api-revive}/src/base/Base.ts (100%) rename {.api-contract => .api-revive}/src/base/Blueprint.ts (98%) rename {.api-contract => .api-revive}/src/base/Code.spec.ts (95%) rename {.api-contract => .api-revive}/src/base/Code.ts (98%) rename {.api-contract => .api-revive}/src/base/Contract.ts (99%) rename {.api-contract => .api-revive}/src/base/index.ts (100%) rename {.api-contract => .api-revive}/src/base/mock.ts (89%) rename {.api-contract => .api-revive}/src/base/types.ts (96%) rename {.api-contract => .api-revive}/src/base/util.ts (97%) rename {.api-contract => .api-revive}/src/bundle.ts (76%) rename {.api-contract => .api-revive}/src/checkTypes.manual.ts (95%) rename {.api-contract => .api-revive}/src/index.ts (58%) create mode 100644 .api-revive/src/mod.ts rename {.api-contract => .api-revive}/src/packageDetect.ts (86%) rename {.api-contract => .api-revive}/src/packageInfo.ts (62%) rename {.api-contract => .api-revive}/src/promise/index.ts (93%) rename {.api-contract => .api-revive}/src/promise/types.ts (83%) rename {.api-contract => .api-revive}/src/rx/index.ts (93%) rename {.api-contract => .api-revive}/src/rx/types.ts (83%) rename {.api-contract => .api-revive}/src/test/compare/ink_v0_delegator.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v0_dns.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v0_erc20.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v0_erc721.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v0_flipper.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v0_flipperBundle.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v0_incrementer.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v0_multisigPlain.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v1_flipper.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v1_psp22.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v2_erc20.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v2_flipper.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v3_flipper.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v3_traitErc20.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v4_erc20Contract.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v4_erc20Metadata.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v4_flipperContract.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v4_flipperMetadata.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v5_erc20.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v5_erc20Contract.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v5_erc20Metadata.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v5_flipperContract.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/ink_v5_flipperMetadata.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/solang_v0_ints256.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/user_v0_assetTransfer.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/user_v0_enumExample.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/user_v0_recursive.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/user_v0_withString.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/user_v3_ask.test.json (100%) rename {.api-contract => .api-revive}/src/test/compare/user_v4_events.test.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/index.ts (85%) rename {.api-contract => .api-revive}/src/test/contracts/ink/index.ts (84%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/accumulator.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/adder.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/delegator.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/delegator.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/dns.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/dns.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/erc20.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/erc20.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/erc721.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/erc721.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/flipper.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/flipper.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/flipper.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/incrementer.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/incrementer.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/index.ts (90%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/multisig_plain.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/multisig_plain.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/subber.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/trait-flipper.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v0/trait-flipper.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v1/flipper.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v1/index.ts (79%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v2/erc20.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v2/flipper.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v2/index.ts (75%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v3/flipper.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v3/index.ts (79%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v3/trait_erc20.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v4/erc20.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v4/erc20.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v4/erc20.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v4/flipper.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v4/flipper.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v4/flipper.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v4/index.ts (84%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v5/erc20.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v5/erc20.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v5/erc20.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v5/erc20_anonymous_transfer.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v5/flipper.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v5/flipper.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v5/flipper.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/ink/v5/index.ts (88%) rename {.api-contract => .api-revive}/src/test/contracts/solang/index.ts (71%) rename {.api-contract => .api-revive}/src/test/contracts/solang/v0/index.ts (62%) rename {.api-contract => .api-revive}/src/test/contracts/solang/v0/ints256.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/solang/v0/ints256.sol (100%) rename {.api-contract => .api-revive}/src/test/contracts/solang/v0/ints256.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/user/index.ts (78%) rename {.api-contract => .api-revive}/src/test/contracts/user/v0/assetTransfer.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/user/v0/assetTransfer.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/user/v0/enumExample.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/user/v0/enumExample.wasm (100%) rename {.api-contract => .api-revive}/src/test/contracts/user/v0/index.ts (84%) rename {.api-contract => .api-revive}/src/test/contracts/user/v0/recursive.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/user/v0/withString.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/user/v3/ask.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/user/v3/index.ts (61%) rename {.api-contract => .api-revive}/src/test/contracts/user/v4/events.contract.json (100%) rename {.api-contract => .api-revive}/src/test/contracts/user/v4/index.ts (64%) rename {.api-contract => .api-revive}/src/test/contracts/util.ts (87%) rename {.api-contract => .api-revive}/src/types.ts (97%) rename {.api-contract => .api-revive}/src/util.ts (89%) rename {.api-contract => .api-revive}/tsconfig.build.json (100%) rename {.api-contract => .api-revive}/tsconfig.spec.json (91%) diff --git a/.api-contract/src/mod.ts b/.api-contract/src/mod.ts deleted file mode 100644 index 57e1fea8..00000000 --- a/.api-contract/src/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export * from './index.js'; diff --git a/.api-contract/README.md b/.api-revive/README.md similarity index 75% rename from .api-contract/README.md rename to .api-revive/README.md index f50beb5f..48d2ef2c 100644 --- a/.api-contract/README.md +++ b/.api-revive/README.md @@ -1,3 +1,3 @@ -# @polkadot/api-contract +# @polkadot/api-revive Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-contract/build-deno/Abi/index.ts b/.api-revive/build-deno/Abi/index.ts similarity index 100% rename from .api-contract/build-deno/Abi/index.ts rename to .api-revive/build-deno/Abi/index.ts diff --git a/.api-contract/build-deno/Abi/toLatestCompatible.ts b/.api-revive/build-deno/Abi/toLatestCompatible.ts similarity index 100% rename from .api-contract/build-deno/Abi/toLatestCompatible.ts rename to .api-revive/build-deno/Abi/toLatestCompatible.ts diff --git a/.api-contract/build-deno/Abi/toV1.ts b/.api-revive/build-deno/Abi/toV1.ts similarity index 100% rename from .api-contract/build-deno/Abi/toV1.ts rename to .api-revive/build-deno/Abi/toV1.ts diff --git a/.api-contract/build-deno/Abi/toV2.ts b/.api-revive/build-deno/Abi/toV2.ts similarity index 100% rename from .api-contract/build-deno/Abi/toV2.ts rename to .api-revive/build-deno/Abi/toV2.ts diff --git a/.api-contract/build-deno/Abi/toV3.ts b/.api-revive/build-deno/Abi/toV3.ts similarity index 100% rename from .api-contract/build-deno/Abi/toV3.ts rename to .api-revive/build-deno/Abi/toV3.ts diff --git a/.api-contract/build-deno/Abi/toV4.ts b/.api-revive/build-deno/Abi/toV4.ts similarity index 100% rename from .api-contract/build-deno/Abi/toV4.ts rename to .api-revive/build-deno/Abi/toV4.ts diff --git a/.api-contract/build-deno/README.md b/.api-revive/build-deno/README.md similarity index 75% rename from .api-contract/build-deno/README.md rename to .api-revive/build-deno/README.md index f50beb5f..48d2ef2c 100644 --- a/.api-contract/build-deno/README.md +++ b/.api-revive/build-deno/README.md @@ -1,3 +1,3 @@ -# @polkadot/api-contract +# @polkadot/api-revive Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-contract/build-deno/augment.ts b/.api-revive/build-deno/augment.ts similarity index 100% rename from .api-contract/build-deno/augment.ts rename to .api-revive/build-deno/augment.ts diff --git a/.api-contract/build-deno/base/Base.ts b/.api-revive/build-deno/base/Base.ts similarity index 100% rename from .api-contract/build-deno/base/Base.ts rename to .api-revive/build-deno/base/Base.ts diff --git a/.api-contract/build-deno/base/Blueprint.ts b/.api-revive/build-deno/base/Blueprint.ts similarity index 100% rename from .api-contract/build-deno/base/Blueprint.ts rename to .api-revive/build-deno/base/Blueprint.ts diff --git a/.api-contract/build-deno/base/Code.ts b/.api-revive/build-deno/base/Code.ts similarity index 100% rename from .api-contract/build-deno/base/Code.ts rename to .api-revive/build-deno/base/Code.ts diff --git a/.api-contract/build-deno/base/Contract.ts b/.api-revive/build-deno/base/Contract.ts similarity index 100% rename from .api-contract/build-deno/base/Contract.ts rename to .api-revive/build-deno/base/Contract.ts diff --git a/.api-contract/build-deno/base/index.ts b/.api-revive/build-deno/base/index.ts similarity index 100% rename from .api-contract/build-deno/base/index.ts rename to .api-revive/build-deno/base/index.ts diff --git a/.api-contract/build-deno/base/mock.ts b/.api-revive/build-deno/base/mock.ts similarity index 100% rename from .api-contract/build-deno/base/mock.ts rename to .api-revive/build-deno/base/mock.ts diff --git a/.api-contract/build-deno/base/types.ts b/.api-revive/build-deno/base/types.ts similarity index 100% rename from .api-contract/build-deno/base/types.ts rename to .api-revive/build-deno/base/types.ts diff --git a/.api-contract/build-deno/base/util.ts b/.api-revive/build-deno/base/util.ts similarity index 100% rename from .api-contract/build-deno/base/util.ts rename to .api-revive/build-deno/base/util.ts diff --git a/.api-contract/build-deno/bundle.ts b/.api-revive/build-deno/bundle.ts similarity index 100% rename from .api-contract/build-deno/bundle.ts rename to .api-revive/build-deno/bundle.ts diff --git a/.api-contract/build-deno/checkTypes.manual.ts b/.api-revive/build-deno/checkTypes.manual.ts similarity index 93% rename from .api-contract/build-deno/checkTypes.manual.ts rename to .api-revive/build-deno/checkTypes.manual.ts index 4f0b0c8e..e08380dc 100644 --- a/.api-contract/build-deno/checkTypes.manual.ts +++ b/.api-revive/build-deno/checkTypes.manual.ts @@ -3,10 +3,7 @@ import 'https://deno.land/x/polkadot/api-augment/mod.ts'; import type { TestKeyringMapSubstrate } from 'https://deno.land/x/polkadot/keyring/testingPairs.ts'; import { ApiPromise } from 'https://deno.land/x/polkadot/api/mod.ts'; -import { - BlueprintPromise, - ContractPromise, -} from 'https://deno.land/x/polkadot/api-contract/mod.ts'; +import { BlueprintPromise, ContractPromise } from 'https://deno.land/x/polkadot/api-revive/mod.ts'; import { createTestPairs } from 'https://deno.land/x/polkadot/keyring/testingPairs.ts'; import abiIncrementer from './test/contracts/ink/v0/incrementer.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/index.ts b/.api-revive/build-deno/index.ts similarity index 100% rename from .api-contract/build-deno/index.ts rename to .api-revive/build-deno/index.ts diff --git a/.api-contract/build-deno/mod.ts b/.api-revive/build-deno/mod.ts similarity index 100% rename from .api-contract/build-deno/mod.ts rename to .api-revive/build-deno/mod.ts diff --git a/.api-contract/build-deno/packageDetect.ts b/.api-revive/build-deno/packageDetect.ts similarity index 100% rename from .api-contract/build-deno/packageDetect.ts rename to .api-revive/build-deno/packageDetect.ts diff --git a/.api-contract/build-deno/packageInfo.ts b/.api-revive/build-deno/packageInfo.ts similarity index 76% rename from .api-contract/build-deno/packageInfo.ts rename to .api-revive/build-deno/packageInfo.ts index 0ca48fa7..017b69ca 100644 --- a/.api-contract/build-deno/packageInfo.ts +++ b/.api-revive/build-deno/packageInfo.ts @@ -1,5 +1,5 @@ export const packageInfo = { - name: '@polkadot/api-contract', + name: '@polkadot/api-revive', path: new URL(import.meta.url).pathname, type: 'deno', version: '15.8.1', diff --git a/.api-contract/build-deno/promise/index.ts b/.api-revive/build-deno/promise/index.ts similarity index 100% rename from .api-contract/build-deno/promise/index.ts rename to .api-revive/build-deno/promise/index.ts diff --git a/.api-contract/build-deno/promise/types.ts b/.api-revive/build-deno/promise/types.ts similarity index 100% rename from .api-contract/build-deno/promise/types.ts rename to .api-revive/build-deno/promise/types.ts diff --git a/.api-contract/build-deno/rx/index.ts b/.api-revive/build-deno/rx/index.ts similarity index 100% rename from .api-contract/build-deno/rx/index.ts rename to .api-revive/build-deno/rx/index.ts diff --git a/.api-contract/build-deno/rx/types.ts b/.api-revive/build-deno/rx/types.ts similarity index 100% rename from .api-contract/build-deno/rx/types.ts rename to .api-revive/build-deno/rx/types.ts diff --git a/.api-contract/build-deno/test/contracts/index.ts b/.api-revive/build-deno/test/contracts/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/index.ts rename to .api-revive/build-deno/test/contracts/index.ts diff --git a/.api-contract/build-deno/test/contracts/ink/index.ts b/.api-revive/build-deno/test/contracts/ink/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/index.ts rename to .api-revive/build-deno/test/contracts/ink/index.ts diff --git a/.api-contract/build-deno/test/contracts/ink/v0/accumulator.wasm b/.api-revive/build-deno/test/contracts/ink/v0/accumulator.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/accumulator.wasm rename to .api-revive/build-deno/test/contracts/ink/v0/accumulator.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v0/adder.wasm b/.api-revive/build-deno/test/contracts/ink/v0/adder.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/adder.wasm rename to .api-revive/build-deno/test/contracts/ink/v0/adder.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v0/delegator.wasm b/.api-revive/build-deno/test/contracts/ink/v0/delegator.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/delegator.wasm rename to .api-revive/build-deno/test/contracts/ink/v0/delegator.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v0/dns.wasm b/.api-revive/build-deno/test/contracts/ink/v0/dns.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/dns.wasm rename to .api-revive/build-deno/test/contracts/ink/v0/dns.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v0/erc20.wasm b/.api-revive/build-deno/test/contracts/ink/v0/erc20.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/erc20.wasm rename to .api-revive/build-deno/test/contracts/ink/v0/erc20.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v0/erc721.wasm b/.api-revive/build-deno/test/contracts/ink/v0/erc721.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/erc721.wasm rename to .api-revive/build-deno/test/contracts/ink/v0/erc721.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v0/flipper.wasm b/.api-revive/build-deno/test/contracts/ink/v0/flipper.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/flipper.wasm rename to .api-revive/build-deno/test/contracts/ink/v0/flipper.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v0/incrementer.wasm b/.api-revive/build-deno/test/contracts/ink/v0/incrementer.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/incrementer.wasm rename to .api-revive/build-deno/test/contracts/ink/v0/incrementer.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v0/index.ts b/.api-revive/build-deno/test/contracts/ink/v0/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/index.ts rename to .api-revive/build-deno/test/contracts/ink/v0/index.ts diff --git a/.api-contract/build-deno/test/contracts/ink/v0/multisig_plain.wasm b/.api-revive/build-deno/test/contracts/ink/v0/multisig_plain.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/multisig_plain.wasm rename to .api-revive/build-deno/test/contracts/ink/v0/multisig_plain.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v0/subber.wasm b/.api-revive/build-deno/test/contracts/ink/v0/subber.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/subber.wasm rename to .api-revive/build-deno/test/contracts/ink/v0/subber.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v0/trait-flipper.wasm b/.api-revive/build-deno/test/contracts/ink/v0/trait-flipper.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v0/trait-flipper.wasm rename to .api-revive/build-deno/test/contracts/ink/v0/trait-flipper.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v1/index.ts b/.api-revive/build-deno/test/contracts/ink/v1/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v1/index.ts rename to .api-revive/build-deno/test/contracts/ink/v1/index.ts diff --git a/.api-contract/build-deno/test/contracts/ink/v2/index.ts b/.api-revive/build-deno/test/contracts/ink/v2/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v2/index.ts rename to .api-revive/build-deno/test/contracts/ink/v2/index.ts diff --git a/.api-contract/build-deno/test/contracts/ink/v3/index.ts b/.api-revive/build-deno/test/contracts/ink/v3/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v3/index.ts rename to .api-revive/build-deno/test/contracts/ink/v3/index.ts diff --git a/.api-contract/build-deno/test/contracts/ink/v4/erc20.wasm b/.api-revive/build-deno/test/contracts/ink/v4/erc20.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v4/erc20.wasm rename to .api-revive/build-deno/test/contracts/ink/v4/erc20.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v4/flipper.wasm b/.api-revive/build-deno/test/contracts/ink/v4/flipper.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v4/flipper.wasm rename to .api-revive/build-deno/test/contracts/ink/v4/flipper.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v4/index.ts b/.api-revive/build-deno/test/contracts/ink/v4/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v4/index.ts rename to .api-revive/build-deno/test/contracts/ink/v4/index.ts diff --git a/.api-contract/build-deno/test/contracts/ink/v5/erc20.wasm b/.api-revive/build-deno/test/contracts/ink/v5/erc20.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v5/erc20.wasm rename to .api-revive/build-deno/test/contracts/ink/v5/erc20.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v5/flipper.wasm b/.api-revive/build-deno/test/contracts/ink/v5/flipper.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v5/flipper.wasm rename to .api-revive/build-deno/test/contracts/ink/v5/flipper.wasm diff --git a/.api-contract/build-deno/test/contracts/ink/v5/index.ts b/.api-revive/build-deno/test/contracts/ink/v5/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/ink/v5/index.ts rename to .api-revive/build-deno/test/contracts/ink/v5/index.ts diff --git a/.api-contract/build-deno/test/contracts/solang/index.ts b/.api-revive/build-deno/test/contracts/solang/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/solang/index.ts rename to .api-revive/build-deno/test/contracts/solang/index.ts diff --git a/.api-contract/build-deno/test/contracts/solang/v0/index.ts b/.api-revive/build-deno/test/contracts/solang/v0/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/solang/v0/index.ts rename to .api-revive/build-deno/test/contracts/solang/v0/index.ts diff --git a/.api-contract/build-deno/test/contracts/solang/v0/ints256.sol b/.api-revive/build-deno/test/contracts/solang/v0/ints256.sol similarity index 100% rename from .api-contract/build-deno/test/contracts/solang/v0/ints256.sol rename to .api-revive/build-deno/test/contracts/solang/v0/ints256.sol diff --git a/.api-contract/build-deno/test/contracts/solang/v0/ints256.wasm b/.api-revive/build-deno/test/contracts/solang/v0/ints256.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/solang/v0/ints256.wasm rename to .api-revive/build-deno/test/contracts/solang/v0/ints256.wasm diff --git a/.api-contract/build-deno/test/contracts/user/index.ts b/.api-revive/build-deno/test/contracts/user/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/user/index.ts rename to .api-revive/build-deno/test/contracts/user/index.ts diff --git a/.api-contract/build-deno/test/contracts/user/v0/assetTransfer.wasm b/.api-revive/build-deno/test/contracts/user/v0/assetTransfer.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/user/v0/assetTransfer.wasm rename to .api-revive/build-deno/test/contracts/user/v0/assetTransfer.wasm diff --git a/.api-contract/build-deno/test/contracts/user/v0/enumExample.wasm b/.api-revive/build-deno/test/contracts/user/v0/enumExample.wasm similarity index 100% rename from .api-contract/build-deno/test/contracts/user/v0/enumExample.wasm rename to .api-revive/build-deno/test/contracts/user/v0/enumExample.wasm diff --git a/.api-contract/build-deno/test/contracts/user/v0/index.ts b/.api-revive/build-deno/test/contracts/user/v0/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/user/v0/index.ts rename to .api-revive/build-deno/test/contracts/user/v0/index.ts diff --git a/.api-contract/build-deno/test/contracts/user/v3/index.ts b/.api-revive/build-deno/test/contracts/user/v3/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/user/v3/index.ts rename to .api-revive/build-deno/test/contracts/user/v3/index.ts diff --git a/.api-contract/build-deno/test/contracts/user/v4/index.ts b/.api-revive/build-deno/test/contracts/user/v4/index.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/user/v4/index.ts rename to .api-revive/build-deno/test/contracts/user/v4/index.ts diff --git a/.api-contract/build-deno/test/contracts/util.ts b/.api-revive/build-deno/test/contracts/util.ts similarity index 100% rename from .api-contract/build-deno/test/contracts/util.ts rename to .api-revive/build-deno/test/contracts/util.ts diff --git a/.api-contract/build-deno/types.ts b/.api-revive/build-deno/types.ts similarity index 100% rename from .api-contract/build-deno/types.ts rename to .api-revive/build-deno/types.ts diff --git a/.api-contract/build-deno/util.ts b/.api-revive/build-deno/util.ts similarity index 100% rename from .api-contract/build-deno/util.ts rename to .api-revive/build-deno/util.ts diff --git a/.api-contract/build-tsc-cjs/Abi/index.js b/.api-revive/build-tsc-cjs/Abi/index.js similarity index 100% rename from .api-contract/build-tsc-cjs/Abi/index.js rename to .api-revive/build-tsc-cjs/Abi/index.js diff --git a/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js b/.api-revive/build-tsc-cjs/Abi/toLatestCompatible.js similarity index 100% rename from .api-contract/build-tsc-cjs/Abi/toLatestCompatible.js rename to .api-revive/build-tsc-cjs/Abi/toLatestCompatible.js diff --git a/.api-contract/build-tsc-cjs/Abi/toV1.js b/.api-revive/build-tsc-cjs/Abi/toV1.js similarity index 100% rename from .api-contract/build-tsc-cjs/Abi/toV1.js rename to .api-revive/build-tsc-cjs/Abi/toV1.js diff --git a/.api-contract/build-tsc-cjs/Abi/toV2.js b/.api-revive/build-tsc-cjs/Abi/toV2.js similarity index 100% rename from .api-contract/build-tsc-cjs/Abi/toV2.js rename to .api-revive/build-tsc-cjs/Abi/toV2.js diff --git a/.api-contract/build-tsc-cjs/Abi/toV3.js b/.api-revive/build-tsc-cjs/Abi/toV3.js similarity index 100% rename from .api-contract/build-tsc-cjs/Abi/toV3.js rename to .api-revive/build-tsc-cjs/Abi/toV3.js diff --git a/.api-contract/build-tsc-cjs/Abi/toV4.js b/.api-revive/build-tsc-cjs/Abi/toV4.js similarity index 100% rename from .api-contract/build-tsc-cjs/Abi/toV4.js rename to .api-revive/build-tsc-cjs/Abi/toV4.js diff --git a/.api-contract/build-tsc-cjs/augment.js b/.api-revive/build-tsc-cjs/augment.js similarity index 100% rename from .api-contract/build-tsc-cjs/augment.js rename to .api-revive/build-tsc-cjs/augment.js diff --git a/.api-contract/build-tsc-cjs/base/Base.js b/.api-revive/build-tsc-cjs/base/Base.js similarity index 100% rename from .api-contract/build-tsc-cjs/base/Base.js rename to .api-revive/build-tsc-cjs/base/Base.js diff --git a/.api-contract/build-tsc-cjs/base/Blueprint.js b/.api-revive/build-tsc-cjs/base/Blueprint.js similarity index 100% rename from .api-contract/build-tsc-cjs/base/Blueprint.js rename to .api-revive/build-tsc-cjs/base/Blueprint.js diff --git a/.api-contract/build-tsc-cjs/base/Code.js b/.api-revive/build-tsc-cjs/base/Code.js similarity index 100% rename from .api-contract/build-tsc-cjs/base/Code.js rename to .api-revive/build-tsc-cjs/base/Code.js diff --git a/.api-contract/build-tsc-cjs/base/Contract.js b/.api-revive/build-tsc-cjs/base/Contract.js similarity index 100% rename from .api-contract/build-tsc-cjs/base/Contract.js rename to .api-revive/build-tsc-cjs/base/Contract.js diff --git a/.api-contract/build-tsc-cjs/base/index.js b/.api-revive/build-tsc-cjs/base/index.js similarity index 100% rename from .api-contract/build-tsc-cjs/base/index.js rename to .api-revive/build-tsc-cjs/base/index.js diff --git a/.api-contract/build-tsc-cjs/base/mock.js b/.api-revive/build-tsc-cjs/base/mock.js similarity index 100% rename from .api-contract/build-tsc-cjs/base/mock.js rename to .api-revive/build-tsc-cjs/base/mock.js diff --git a/.api-contract/build-tsc-cjs/base/types.js b/.api-revive/build-tsc-cjs/base/types.js similarity index 100% rename from .api-contract/build-tsc-cjs/base/types.js rename to .api-revive/build-tsc-cjs/base/types.js diff --git a/.api-contract/build-tsc-cjs/base/util.js b/.api-revive/build-tsc-cjs/base/util.js similarity index 100% rename from .api-contract/build-tsc-cjs/base/util.js rename to .api-revive/build-tsc-cjs/base/util.js diff --git a/.api-contract/build-tsc-cjs/bundle.js b/.api-revive/build-tsc-cjs/bundle.js similarity index 100% rename from .api-contract/build-tsc-cjs/bundle.js rename to .api-revive/build-tsc-cjs/bundle.js diff --git a/.api-contract/build-tsc-cjs/index.js b/.api-revive/build-tsc-cjs/index.js similarity index 100% rename from .api-contract/build-tsc-cjs/index.js rename to .api-revive/build-tsc-cjs/index.js diff --git a/.api-contract/build-tsc-cjs/packageDetect.js b/.api-revive/build-tsc-cjs/packageDetect.js similarity index 100% rename from .api-contract/build-tsc-cjs/packageDetect.js rename to .api-revive/build-tsc-cjs/packageDetect.js diff --git a/.api-contract/build-tsc-cjs/packageInfo.js b/.api-revive/build-tsc-cjs/packageInfo.js similarity index 87% rename from .api-contract/build-tsc-cjs/packageInfo.js rename to .api-revive/build-tsc-cjs/packageInfo.js index 39a18613..86e0744f 100644 --- a/.api-contract/build-tsc-cjs/packageInfo.js +++ b/.api-revive/build-tsc-cjs/packageInfo.js @@ -2,7 +2,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); exports.packageInfo = void 0; exports.packageInfo = { - name: '@polkadot/api-contract', + name: '@polkadot/api-revive', path: typeof __dirname === 'string' ? __dirname : 'auto', type: 'cjs', version: '15.8.1', diff --git a/.api-contract/build-tsc-cjs/promise/index.js b/.api-revive/build-tsc-cjs/promise/index.js similarity index 100% rename from .api-contract/build-tsc-cjs/promise/index.js rename to .api-revive/build-tsc-cjs/promise/index.js diff --git a/.api-contract/build-tsc-cjs/promise/types.js b/.api-revive/build-tsc-cjs/promise/types.js similarity index 100% rename from .api-contract/build-tsc-cjs/promise/types.js rename to .api-revive/build-tsc-cjs/promise/types.js diff --git a/.api-contract/build-tsc-cjs/rx/index.js b/.api-revive/build-tsc-cjs/rx/index.js similarity index 100% rename from .api-contract/build-tsc-cjs/rx/index.js rename to .api-revive/build-tsc-cjs/rx/index.js diff --git a/.api-contract/build-tsc-cjs/rx/types.js b/.api-revive/build-tsc-cjs/rx/types.js similarity index 100% rename from .api-contract/build-tsc-cjs/rx/types.js rename to .api-revive/build-tsc-cjs/rx/types.js diff --git a/.api-contract/build-tsc-cjs/types.js b/.api-revive/build-tsc-cjs/types.js similarity index 100% rename from .api-contract/build-tsc-cjs/types.js rename to .api-revive/build-tsc-cjs/types.js diff --git a/.api-contract/build-tsc-cjs/util.js b/.api-revive/build-tsc-cjs/util.js similarity index 100% rename from .api-contract/build-tsc-cjs/util.js rename to .api-revive/build-tsc-cjs/util.js diff --git a/.api-contract/build-tsc-esm/Abi/index.js b/.api-revive/build-tsc-esm/Abi/index.js similarity index 100% rename from .api-contract/build-tsc-esm/Abi/index.js rename to .api-revive/build-tsc-esm/Abi/index.js diff --git a/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js b/.api-revive/build-tsc-esm/Abi/toLatestCompatible.js similarity index 100% rename from .api-contract/build-tsc-esm/Abi/toLatestCompatible.js rename to .api-revive/build-tsc-esm/Abi/toLatestCompatible.js diff --git a/.api-contract/build-tsc-esm/Abi/toV1.js b/.api-revive/build-tsc-esm/Abi/toV1.js similarity index 100% rename from .api-contract/build-tsc-esm/Abi/toV1.js rename to .api-revive/build-tsc-esm/Abi/toV1.js diff --git a/.api-contract/build-tsc-esm/Abi/toV2.js b/.api-revive/build-tsc-esm/Abi/toV2.js similarity index 100% rename from .api-contract/build-tsc-esm/Abi/toV2.js rename to .api-revive/build-tsc-esm/Abi/toV2.js diff --git a/.api-contract/build-tsc-esm/Abi/toV3.js b/.api-revive/build-tsc-esm/Abi/toV3.js similarity index 100% rename from .api-contract/build-tsc-esm/Abi/toV3.js rename to .api-revive/build-tsc-esm/Abi/toV3.js diff --git a/.api-contract/build-tsc-esm/Abi/toV4.js b/.api-revive/build-tsc-esm/Abi/toV4.js similarity index 100% rename from .api-contract/build-tsc-esm/Abi/toV4.js rename to .api-revive/build-tsc-esm/Abi/toV4.js diff --git a/.api-contract/build-tsc-esm/augment.js b/.api-revive/build-tsc-esm/augment.js similarity index 100% rename from .api-contract/build-tsc-esm/augment.js rename to .api-revive/build-tsc-esm/augment.js diff --git a/.api-contract/build-tsc-esm/base/Base.js b/.api-revive/build-tsc-esm/base/Base.js similarity index 100% rename from .api-contract/build-tsc-esm/base/Base.js rename to .api-revive/build-tsc-esm/base/Base.js diff --git a/.api-contract/build-tsc-esm/base/Blueprint.js b/.api-revive/build-tsc-esm/base/Blueprint.js similarity index 100% rename from .api-contract/build-tsc-esm/base/Blueprint.js rename to .api-revive/build-tsc-esm/base/Blueprint.js diff --git a/.api-contract/build-tsc-esm/base/Code.js b/.api-revive/build-tsc-esm/base/Code.js similarity index 100% rename from .api-contract/build-tsc-esm/base/Code.js rename to .api-revive/build-tsc-esm/base/Code.js diff --git a/.api-contract/build-tsc-esm/base/Contract.js b/.api-revive/build-tsc-esm/base/Contract.js similarity index 100% rename from .api-contract/build-tsc-esm/base/Contract.js rename to .api-revive/build-tsc-esm/base/Contract.js diff --git a/.api-contract/build-tsc-esm/base/index.js b/.api-revive/build-tsc-esm/base/index.js similarity index 100% rename from .api-contract/build-tsc-esm/base/index.js rename to .api-revive/build-tsc-esm/base/index.js diff --git a/.api-contract/build-tsc-esm/base/mock.js b/.api-revive/build-tsc-esm/base/mock.js similarity index 100% rename from .api-contract/build-tsc-esm/base/mock.js rename to .api-revive/build-tsc-esm/base/mock.js diff --git a/.api-contract/build-tsc-esm/base/types.js b/.api-revive/build-tsc-esm/base/types.js similarity index 100% rename from .api-contract/build-tsc-esm/base/types.js rename to .api-revive/build-tsc-esm/base/types.js diff --git a/.api-contract/build-tsc-esm/base/util.js b/.api-revive/build-tsc-esm/base/util.js similarity index 100% rename from .api-contract/build-tsc-esm/base/util.js rename to .api-revive/build-tsc-esm/base/util.js diff --git a/.api-contract/build-tsc-esm/bundle.js b/.api-revive/build-tsc-esm/bundle.js similarity index 100% rename from .api-contract/build-tsc-esm/bundle.js rename to .api-revive/build-tsc-esm/bundle.js diff --git a/.api-contract/build-tsc-esm/index.js b/.api-revive/build-tsc-esm/index.js similarity index 100% rename from .api-contract/build-tsc-esm/index.js rename to .api-revive/build-tsc-esm/index.js diff --git a/.api-contract/build-tsc-esm/packageDetect.js b/.api-revive/build-tsc-esm/packageDetect.js similarity index 100% rename from .api-contract/build-tsc-esm/packageDetect.js rename to .api-revive/build-tsc-esm/packageDetect.js diff --git a/.api-contract/build-tsc-esm/packageInfo.js b/.api-revive/build-tsc-esm/packageInfo.js similarity index 88% rename from .api-contract/build-tsc-esm/packageInfo.js rename to .api-revive/build-tsc-esm/packageInfo.js index 0d90c7dc..b9cf3215 100644 --- a/.api-contract/build-tsc-esm/packageInfo.js +++ b/.api-revive/build-tsc-esm/packageInfo.js @@ -1,5 +1,5 @@ export const packageInfo = { - name: '@polkadot/api-contract', + name: '@polkadot/api-revive', path: import.meta && import.meta.url ? new URL(import.meta.url).pathname.substring( diff --git a/.api-contract/build-tsc-esm/promise/index.js b/.api-revive/build-tsc-esm/promise/index.js similarity index 100% rename from .api-contract/build-tsc-esm/promise/index.js rename to .api-revive/build-tsc-esm/promise/index.js diff --git a/.api-contract/build-tsc-esm/promise/types.js b/.api-revive/build-tsc-esm/promise/types.js similarity index 100% rename from .api-contract/build-tsc-esm/promise/types.js rename to .api-revive/build-tsc-esm/promise/types.js diff --git a/.api-contract/build-tsc-esm/rx/index.js b/.api-revive/build-tsc-esm/rx/index.js similarity index 100% rename from .api-contract/build-tsc-esm/rx/index.js rename to .api-revive/build-tsc-esm/rx/index.js diff --git a/.api-contract/build-tsc-esm/rx/types.js b/.api-revive/build-tsc-esm/rx/types.js similarity index 100% rename from .api-contract/build-tsc-esm/rx/types.js rename to .api-revive/build-tsc-esm/rx/types.js diff --git a/.api-contract/build-tsc-esm/types.js b/.api-revive/build-tsc-esm/types.js similarity index 100% rename from .api-contract/build-tsc-esm/types.js rename to .api-revive/build-tsc-esm/types.js diff --git a/.api-contract/build-tsc-esm/util.js b/.api-revive/build-tsc-esm/util.js similarity index 100% rename from .api-contract/build-tsc-esm/util.js rename to .api-revive/build-tsc-esm/util.js diff --git a/.api-contract/build-tsc/Abi/index.d.ts b/.api-revive/build-tsc/Abi/index.d.ts similarity index 100% rename from .api-contract/build-tsc/Abi/index.d.ts rename to .api-revive/build-tsc/Abi/index.d.ts diff --git a/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts b/.api-revive/build-tsc/Abi/toLatestCompatible.d.ts similarity index 100% rename from .api-contract/build-tsc/Abi/toLatestCompatible.d.ts rename to .api-revive/build-tsc/Abi/toLatestCompatible.d.ts diff --git a/.api-contract/build-tsc/Abi/toV1.d.ts b/.api-revive/build-tsc/Abi/toV1.d.ts similarity index 100% rename from .api-contract/build-tsc/Abi/toV1.d.ts rename to .api-revive/build-tsc/Abi/toV1.d.ts diff --git a/.api-contract/build-tsc/Abi/toV2.d.ts b/.api-revive/build-tsc/Abi/toV2.d.ts similarity index 100% rename from .api-contract/build-tsc/Abi/toV2.d.ts rename to .api-revive/build-tsc/Abi/toV2.d.ts diff --git a/.api-contract/build-tsc/Abi/toV3.d.ts b/.api-revive/build-tsc/Abi/toV3.d.ts similarity index 100% rename from .api-contract/build-tsc/Abi/toV3.d.ts rename to .api-revive/build-tsc/Abi/toV3.d.ts diff --git a/.api-contract/build-tsc/Abi/toV4.d.ts b/.api-revive/build-tsc/Abi/toV4.d.ts similarity index 100% rename from .api-contract/build-tsc/Abi/toV4.d.ts rename to .api-revive/build-tsc/Abi/toV4.d.ts diff --git a/.api-contract/build-tsc/augment.d.ts b/.api-revive/build-tsc/augment.d.ts similarity index 100% rename from .api-contract/build-tsc/augment.d.ts rename to .api-revive/build-tsc/augment.d.ts diff --git a/.api-contract/build-tsc/base/Base.d.ts b/.api-revive/build-tsc/base/Base.d.ts similarity index 100% rename from .api-contract/build-tsc/base/Base.d.ts rename to .api-revive/build-tsc/base/Base.d.ts diff --git a/.api-contract/build-tsc/base/Blueprint.d.ts b/.api-revive/build-tsc/base/Blueprint.d.ts similarity index 100% rename from .api-contract/build-tsc/base/Blueprint.d.ts rename to .api-revive/build-tsc/base/Blueprint.d.ts diff --git a/.api-contract/build-tsc/base/Code.d.ts b/.api-revive/build-tsc/base/Code.d.ts similarity index 100% rename from .api-contract/build-tsc/base/Code.d.ts rename to .api-revive/build-tsc/base/Code.d.ts diff --git a/.api-contract/build-tsc/base/Contract.d.ts b/.api-revive/build-tsc/base/Contract.d.ts similarity index 100% rename from .api-contract/build-tsc/base/Contract.d.ts rename to .api-revive/build-tsc/base/Contract.d.ts diff --git a/.api-contract/build-tsc/base/index.d.ts b/.api-revive/build-tsc/base/index.d.ts similarity index 100% rename from .api-contract/build-tsc/base/index.d.ts rename to .api-revive/build-tsc/base/index.d.ts diff --git a/.api-contract/build-tsc/base/mock.d.ts b/.api-revive/build-tsc/base/mock.d.ts similarity index 100% rename from .api-contract/build-tsc/base/mock.d.ts rename to .api-revive/build-tsc/base/mock.d.ts diff --git a/.api-contract/build-tsc/base/types.d.ts b/.api-revive/build-tsc/base/types.d.ts similarity index 100% rename from .api-contract/build-tsc/base/types.d.ts rename to .api-revive/build-tsc/base/types.d.ts diff --git a/.api-contract/build-tsc/base/util.d.ts b/.api-revive/build-tsc/base/util.d.ts similarity index 100% rename from .api-contract/build-tsc/base/util.d.ts rename to .api-revive/build-tsc/base/util.d.ts diff --git a/.api-contract/build-tsc/bundle.d.ts b/.api-revive/build-tsc/bundle.d.ts similarity index 100% rename from .api-contract/build-tsc/bundle.d.ts rename to .api-revive/build-tsc/bundle.d.ts diff --git a/.api-contract/build-tsc/index.d.ts b/.api-revive/build-tsc/index.d.ts similarity index 100% rename from .api-contract/build-tsc/index.d.ts rename to .api-revive/build-tsc/index.d.ts diff --git a/.api-contract/build-tsc/packageDetect.d.ts b/.api-revive/build-tsc/packageDetect.d.ts similarity index 100% rename from .api-contract/build-tsc/packageDetect.d.ts rename to .api-revive/build-tsc/packageDetect.d.ts diff --git a/.api-contract/build-tsc/packageInfo.d.ts b/.api-revive/build-tsc/packageInfo.d.ts similarity index 100% rename from .api-contract/build-tsc/packageInfo.d.ts rename to .api-revive/build-tsc/packageInfo.d.ts diff --git a/.api-contract/build-tsc/promise/index.d.ts b/.api-revive/build-tsc/promise/index.d.ts similarity index 100% rename from .api-contract/build-tsc/promise/index.d.ts rename to .api-revive/build-tsc/promise/index.d.ts diff --git a/.api-contract/build-tsc/promise/types.d.ts b/.api-revive/build-tsc/promise/types.d.ts similarity index 100% rename from .api-contract/build-tsc/promise/types.d.ts rename to .api-revive/build-tsc/promise/types.d.ts diff --git a/.api-contract/build-tsc/rx/index.d.ts b/.api-revive/build-tsc/rx/index.d.ts similarity index 100% rename from .api-contract/build-tsc/rx/index.d.ts rename to .api-revive/build-tsc/rx/index.d.ts diff --git a/.api-contract/build-tsc/rx/types.d.ts b/.api-revive/build-tsc/rx/types.d.ts similarity index 100% rename from .api-contract/build-tsc/rx/types.d.ts rename to .api-revive/build-tsc/rx/types.d.ts diff --git a/.api-contract/build-tsc/types.d.ts b/.api-revive/build-tsc/types.d.ts similarity index 100% rename from .api-contract/build-tsc/types.d.ts rename to .api-revive/build-tsc/types.d.ts diff --git a/.api-contract/build-tsc/util.d.ts b/.api-revive/build-tsc/util.d.ts similarity index 100% rename from .api-contract/build-tsc/util.d.ts rename to .api-revive/build-tsc/util.d.ts diff --git a/.api-contract/build/Abi/index.d.ts b/.api-revive/build/Abi/index.d.ts similarity index 100% rename from .api-contract/build/Abi/index.d.ts rename to .api-revive/build/Abi/index.d.ts diff --git a/.api-contract/build/Abi/index.js b/.api-revive/build/Abi/index.js similarity index 100% rename from .api-contract/build/Abi/index.js rename to .api-revive/build/Abi/index.js diff --git a/.api-contract/build/Abi/toLatestCompatible.d.ts b/.api-revive/build/Abi/toLatestCompatible.d.ts similarity index 100% rename from .api-contract/build/Abi/toLatestCompatible.d.ts rename to .api-revive/build/Abi/toLatestCompatible.d.ts diff --git a/.api-contract/build/Abi/toLatestCompatible.js b/.api-revive/build/Abi/toLatestCompatible.js similarity index 100% rename from .api-contract/build/Abi/toLatestCompatible.js rename to .api-revive/build/Abi/toLatestCompatible.js diff --git a/.api-contract/build/Abi/toV1.d.ts b/.api-revive/build/Abi/toV1.d.ts similarity index 100% rename from .api-contract/build/Abi/toV1.d.ts rename to .api-revive/build/Abi/toV1.d.ts diff --git a/.api-contract/build/Abi/toV1.js b/.api-revive/build/Abi/toV1.js similarity index 100% rename from .api-contract/build/Abi/toV1.js rename to .api-revive/build/Abi/toV1.js diff --git a/.api-contract/build/Abi/toV2.d.ts b/.api-revive/build/Abi/toV2.d.ts similarity index 100% rename from .api-contract/build/Abi/toV2.d.ts rename to .api-revive/build/Abi/toV2.d.ts diff --git a/.api-contract/build/Abi/toV2.js b/.api-revive/build/Abi/toV2.js similarity index 100% rename from .api-contract/build/Abi/toV2.js rename to .api-revive/build/Abi/toV2.js diff --git a/.api-contract/build/Abi/toV3.d.ts b/.api-revive/build/Abi/toV3.d.ts similarity index 100% rename from .api-contract/build/Abi/toV3.d.ts rename to .api-revive/build/Abi/toV3.d.ts diff --git a/.api-contract/build/Abi/toV3.js b/.api-revive/build/Abi/toV3.js similarity index 100% rename from .api-contract/build/Abi/toV3.js rename to .api-revive/build/Abi/toV3.js diff --git a/.api-contract/build/Abi/toV4.d.ts b/.api-revive/build/Abi/toV4.d.ts similarity index 100% rename from .api-contract/build/Abi/toV4.d.ts rename to .api-revive/build/Abi/toV4.d.ts diff --git a/.api-contract/build/Abi/toV4.js b/.api-revive/build/Abi/toV4.js similarity index 100% rename from .api-contract/build/Abi/toV4.js rename to .api-revive/build/Abi/toV4.js diff --git a/.api-contract/build/LICENSE b/.api-revive/build/LICENSE similarity index 100% rename from .api-contract/build/LICENSE rename to .api-revive/build/LICENSE diff --git a/.api-contract/build/README.md b/.api-revive/build/README.md similarity index 75% rename from .api-contract/build/README.md rename to .api-revive/build/README.md index f50beb5f..48d2ef2c 100644 --- a/.api-contract/build/README.md +++ b/.api-revive/build/README.md @@ -1,3 +1,3 @@ -# @polkadot/api-contract +# @polkadot/api-revive Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-contract/build/augment.d.ts b/.api-revive/build/augment.d.ts similarity index 100% rename from .api-contract/build/augment.d.ts rename to .api-revive/build/augment.d.ts diff --git a/.api-contract/build/augment.js b/.api-revive/build/augment.js similarity index 100% rename from .api-contract/build/augment.js rename to .api-revive/build/augment.js diff --git a/.api-contract/build/base/Base.d.ts b/.api-revive/build/base/Base.d.ts similarity index 100% rename from .api-contract/build/base/Base.d.ts rename to .api-revive/build/base/Base.d.ts diff --git a/.api-contract/build/base/Base.js b/.api-revive/build/base/Base.js similarity index 100% rename from .api-contract/build/base/Base.js rename to .api-revive/build/base/Base.js diff --git a/.api-contract/build/base/Blueprint.d.ts b/.api-revive/build/base/Blueprint.d.ts similarity index 100% rename from .api-contract/build/base/Blueprint.d.ts rename to .api-revive/build/base/Blueprint.d.ts diff --git a/.api-contract/build/base/Blueprint.js b/.api-revive/build/base/Blueprint.js similarity index 100% rename from .api-contract/build/base/Blueprint.js rename to .api-revive/build/base/Blueprint.js diff --git a/.api-contract/build/base/Code.d.ts b/.api-revive/build/base/Code.d.ts similarity index 100% rename from .api-contract/build/base/Code.d.ts rename to .api-revive/build/base/Code.d.ts diff --git a/.api-contract/build/base/Code.js b/.api-revive/build/base/Code.js similarity index 100% rename from .api-contract/build/base/Code.js rename to .api-revive/build/base/Code.js diff --git a/.api-contract/build/base/Contract.d.ts b/.api-revive/build/base/Contract.d.ts similarity index 100% rename from .api-contract/build/base/Contract.d.ts rename to .api-revive/build/base/Contract.d.ts diff --git a/.api-contract/build/base/Contract.js b/.api-revive/build/base/Contract.js similarity index 100% rename from .api-contract/build/base/Contract.js rename to .api-revive/build/base/Contract.js diff --git a/.api-contract/build/base/index.d.ts b/.api-revive/build/base/index.d.ts similarity index 100% rename from .api-contract/build/base/index.d.ts rename to .api-revive/build/base/index.d.ts diff --git a/.api-contract/build/base/index.js b/.api-revive/build/base/index.js similarity index 100% rename from .api-contract/build/base/index.js rename to .api-revive/build/base/index.js diff --git a/.api-contract/build/base/mock.d.ts b/.api-revive/build/base/mock.d.ts similarity index 100% rename from .api-contract/build/base/mock.d.ts rename to .api-revive/build/base/mock.d.ts diff --git a/.api-contract/build/base/mock.js b/.api-revive/build/base/mock.js similarity index 100% rename from .api-contract/build/base/mock.js rename to .api-revive/build/base/mock.js diff --git a/.api-contract/build/base/types.d.ts b/.api-revive/build/base/types.d.ts similarity index 100% rename from .api-contract/build/base/types.d.ts rename to .api-revive/build/base/types.d.ts diff --git a/.api-contract/build/base/types.js b/.api-revive/build/base/types.js similarity index 100% rename from .api-contract/build/base/types.js rename to .api-revive/build/base/types.js diff --git a/.api-contract/build/base/util.d.ts b/.api-revive/build/base/util.d.ts similarity index 100% rename from .api-contract/build/base/util.d.ts rename to .api-revive/build/base/util.d.ts diff --git a/.api-contract/build/base/util.js b/.api-revive/build/base/util.js similarity index 100% rename from .api-contract/build/base/util.js rename to .api-revive/build/base/util.js diff --git a/.api-contract/build/bundle-polkadot-api-contract.js b/.api-revive/build/bundle-polkadot-api-contract.js similarity index 99% rename from .api-contract/build/bundle-polkadot-api-contract.js rename to .api-revive/build/bundle-polkadot-api-contract.js index ea71636a..cb628937 100644 --- a/.api-contract/build/bundle-polkadot-api-contract.js +++ b/.api-revive/build/bundle-polkadot-api-contract.js @@ -475,7 +475,7 @@ } const packageInfo = { - name: '@polkadot/api-contract', + name: '@polkadot/api-revive', path: { url: @@ -484,21 +484,21 @@ : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-contract.js', document.baseURI).href, + new URL('bundle-polkadot-api-revive.js', document.baseURI).href, } && (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-contract.js', document.baseURI).href) + new URL('bundle-polkadot-api-revive.js', document.baseURI).href) ? new URL( typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-contract.js', document.baseURI).href, + new URL('bundle-polkadot-api-revive.js', document.baseURI).href, ).pathname.substring( 0, new URL( @@ -507,7 +507,7 @@ : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-contract.js', document.baseURI).href, + new URL('bundle-polkadot-api-revive.js', document.baseURI).href, ).pathname.lastIndexOf('/') + 1, ) : 'auto', diff --git a/.api-contract/build/bundle.d.ts b/.api-revive/build/bundle.d.ts similarity index 100% rename from .api-contract/build/bundle.d.ts rename to .api-revive/build/bundle.d.ts diff --git a/.api-contract/build/bundle.js b/.api-revive/build/bundle.js similarity index 100% rename from .api-contract/build/bundle.js rename to .api-revive/build/bundle.js diff --git a/.api-contract/build/cjs/Abi/index.d.ts b/.api-revive/build/cjs/Abi/index.d.ts similarity index 100% rename from .api-contract/build/cjs/Abi/index.d.ts rename to .api-revive/build/cjs/Abi/index.d.ts diff --git a/.api-contract/build/cjs/Abi/index.js b/.api-revive/build/cjs/Abi/index.js similarity index 100% rename from .api-contract/build/cjs/Abi/index.js rename to .api-revive/build/cjs/Abi/index.js diff --git a/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts b/.api-revive/build/cjs/Abi/toLatestCompatible.d.ts similarity index 100% rename from .api-contract/build/cjs/Abi/toLatestCompatible.d.ts rename to .api-revive/build/cjs/Abi/toLatestCompatible.d.ts diff --git a/.api-contract/build/cjs/Abi/toLatestCompatible.js b/.api-revive/build/cjs/Abi/toLatestCompatible.js similarity index 100% rename from .api-contract/build/cjs/Abi/toLatestCompatible.js rename to .api-revive/build/cjs/Abi/toLatestCompatible.js diff --git a/.api-contract/build/cjs/Abi/toV1.d.ts b/.api-revive/build/cjs/Abi/toV1.d.ts similarity index 100% rename from .api-contract/build/cjs/Abi/toV1.d.ts rename to .api-revive/build/cjs/Abi/toV1.d.ts diff --git a/.api-contract/build/cjs/Abi/toV1.js b/.api-revive/build/cjs/Abi/toV1.js similarity index 100% rename from .api-contract/build/cjs/Abi/toV1.js rename to .api-revive/build/cjs/Abi/toV1.js diff --git a/.api-contract/build/cjs/Abi/toV2.d.ts b/.api-revive/build/cjs/Abi/toV2.d.ts similarity index 100% rename from .api-contract/build/cjs/Abi/toV2.d.ts rename to .api-revive/build/cjs/Abi/toV2.d.ts diff --git a/.api-contract/build/cjs/Abi/toV2.js b/.api-revive/build/cjs/Abi/toV2.js similarity index 100% rename from .api-contract/build/cjs/Abi/toV2.js rename to .api-revive/build/cjs/Abi/toV2.js diff --git a/.api-contract/build/cjs/Abi/toV3.d.ts b/.api-revive/build/cjs/Abi/toV3.d.ts similarity index 100% rename from .api-contract/build/cjs/Abi/toV3.d.ts rename to .api-revive/build/cjs/Abi/toV3.d.ts diff --git a/.api-contract/build/cjs/Abi/toV3.js b/.api-revive/build/cjs/Abi/toV3.js similarity index 100% rename from .api-contract/build/cjs/Abi/toV3.js rename to .api-revive/build/cjs/Abi/toV3.js diff --git a/.api-contract/build/cjs/Abi/toV4.d.ts b/.api-revive/build/cjs/Abi/toV4.d.ts similarity index 100% rename from .api-contract/build/cjs/Abi/toV4.d.ts rename to .api-revive/build/cjs/Abi/toV4.d.ts diff --git a/.api-contract/build/cjs/Abi/toV4.js b/.api-revive/build/cjs/Abi/toV4.js similarity index 100% rename from .api-contract/build/cjs/Abi/toV4.js rename to .api-revive/build/cjs/Abi/toV4.js diff --git a/.api-contract/build/cjs/augment.d.ts b/.api-revive/build/cjs/augment.d.ts similarity index 100% rename from .api-contract/build/cjs/augment.d.ts rename to .api-revive/build/cjs/augment.d.ts diff --git a/.api-contract/build/cjs/augment.js b/.api-revive/build/cjs/augment.js similarity index 100% rename from .api-contract/build/cjs/augment.js rename to .api-revive/build/cjs/augment.js diff --git a/.api-contract/build/cjs/base/Base.d.ts b/.api-revive/build/cjs/base/Base.d.ts similarity index 100% rename from .api-contract/build/cjs/base/Base.d.ts rename to .api-revive/build/cjs/base/Base.d.ts diff --git a/.api-contract/build/cjs/base/Base.js b/.api-revive/build/cjs/base/Base.js similarity index 100% rename from .api-contract/build/cjs/base/Base.js rename to .api-revive/build/cjs/base/Base.js diff --git a/.api-contract/build/cjs/base/Blueprint.d.ts b/.api-revive/build/cjs/base/Blueprint.d.ts similarity index 100% rename from .api-contract/build/cjs/base/Blueprint.d.ts rename to .api-revive/build/cjs/base/Blueprint.d.ts diff --git a/.api-contract/build/cjs/base/Blueprint.js b/.api-revive/build/cjs/base/Blueprint.js similarity index 100% rename from .api-contract/build/cjs/base/Blueprint.js rename to .api-revive/build/cjs/base/Blueprint.js diff --git a/.api-contract/build/cjs/base/Code.d.ts b/.api-revive/build/cjs/base/Code.d.ts similarity index 100% rename from .api-contract/build/cjs/base/Code.d.ts rename to .api-revive/build/cjs/base/Code.d.ts diff --git a/.api-contract/build/cjs/base/Code.js b/.api-revive/build/cjs/base/Code.js similarity index 100% rename from .api-contract/build/cjs/base/Code.js rename to .api-revive/build/cjs/base/Code.js diff --git a/.api-contract/build/cjs/base/Contract.d.ts b/.api-revive/build/cjs/base/Contract.d.ts similarity index 100% rename from .api-contract/build/cjs/base/Contract.d.ts rename to .api-revive/build/cjs/base/Contract.d.ts diff --git a/.api-contract/build/cjs/base/Contract.js b/.api-revive/build/cjs/base/Contract.js similarity index 100% rename from .api-contract/build/cjs/base/Contract.js rename to .api-revive/build/cjs/base/Contract.js diff --git a/.api-contract/build/cjs/base/index.d.ts b/.api-revive/build/cjs/base/index.d.ts similarity index 100% rename from .api-contract/build/cjs/base/index.d.ts rename to .api-revive/build/cjs/base/index.d.ts diff --git a/.api-contract/build/cjs/base/index.js b/.api-revive/build/cjs/base/index.js similarity index 100% rename from .api-contract/build/cjs/base/index.js rename to .api-revive/build/cjs/base/index.js diff --git a/.api-contract/build/cjs/base/mock.d.ts b/.api-revive/build/cjs/base/mock.d.ts similarity index 100% rename from .api-contract/build/cjs/base/mock.d.ts rename to .api-revive/build/cjs/base/mock.d.ts diff --git a/.api-contract/build/cjs/base/mock.js b/.api-revive/build/cjs/base/mock.js similarity index 100% rename from .api-contract/build/cjs/base/mock.js rename to .api-revive/build/cjs/base/mock.js diff --git a/.api-contract/build/cjs/base/types.d.ts b/.api-revive/build/cjs/base/types.d.ts similarity index 100% rename from .api-contract/build/cjs/base/types.d.ts rename to .api-revive/build/cjs/base/types.d.ts diff --git a/.api-contract/build/cjs/base/types.js b/.api-revive/build/cjs/base/types.js similarity index 100% rename from .api-contract/build/cjs/base/types.js rename to .api-revive/build/cjs/base/types.js diff --git a/.api-contract/build/cjs/base/util.d.ts b/.api-revive/build/cjs/base/util.d.ts similarity index 100% rename from .api-contract/build/cjs/base/util.d.ts rename to .api-revive/build/cjs/base/util.d.ts diff --git a/.api-contract/build/cjs/base/util.js b/.api-revive/build/cjs/base/util.js similarity index 100% rename from .api-contract/build/cjs/base/util.js rename to .api-revive/build/cjs/base/util.js diff --git a/.api-contract/build/cjs/bundle.d.ts b/.api-revive/build/cjs/bundle.d.ts similarity index 100% rename from .api-contract/build/cjs/bundle.d.ts rename to .api-revive/build/cjs/bundle.d.ts diff --git a/.api-contract/build/cjs/bundle.js b/.api-revive/build/cjs/bundle.js similarity index 100% rename from .api-contract/build/cjs/bundle.js rename to .api-revive/build/cjs/bundle.js diff --git a/.api-contract/build/cjs/index.d.ts b/.api-revive/build/cjs/index.d.ts similarity index 100% rename from .api-contract/build/cjs/index.d.ts rename to .api-revive/build/cjs/index.d.ts diff --git a/.api-contract/build/cjs/index.js b/.api-revive/build/cjs/index.js similarity index 100% rename from .api-contract/build/cjs/index.js rename to .api-revive/build/cjs/index.js diff --git a/.api-contract/build/cjs/package.json b/.api-revive/build/cjs/package.json similarity index 100% rename from .api-contract/build/cjs/package.json rename to .api-revive/build/cjs/package.json diff --git a/.api-contract/build/cjs/packageDetect.d.ts b/.api-revive/build/cjs/packageDetect.d.ts similarity index 100% rename from .api-contract/build/cjs/packageDetect.d.ts rename to .api-revive/build/cjs/packageDetect.d.ts diff --git a/.api-contract/build/cjs/packageDetect.js b/.api-revive/build/cjs/packageDetect.js similarity index 100% rename from .api-contract/build/cjs/packageDetect.js rename to .api-revive/build/cjs/packageDetect.js diff --git a/.api-contract/build/cjs/packageInfo.d.ts b/.api-revive/build/cjs/packageInfo.d.ts similarity index 100% rename from .api-contract/build/cjs/packageInfo.d.ts rename to .api-revive/build/cjs/packageInfo.d.ts diff --git a/.api-contract/build/cjs/packageInfo.js b/.api-revive/build/cjs/packageInfo.js similarity index 87% rename from .api-contract/build/cjs/packageInfo.js rename to .api-revive/build/cjs/packageInfo.js index 39a18613..86e0744f 100644 --- a/.api-contract/build/cjs/packageInfo.js +++ b/.api-revive/build/cjs/packageInfo.js @@ -2,7 +2,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); exports.packageInfo = void 0; exports.packageInfo = { - name: '@polkadot/api-contract', + name: '@polkadot/api-revive', path: typeof __dirname === 'string' ? __dirname : 'auto', type: 'cjs', version: '15.8.1', diff --git a/.api-contract/build/cjs/promise/index.d.ts b/.api-revive/build/cjs/promise/index.d.ts similarity index 100% rename from .api-contract/build/cjs/promise/index.d.ts rename to .api-revive/build/cjs/promise/index.d.ts diff --git a/.api-contract/build/cjs/promise/index.js b/.api-revive/build/cjs/promise/index.js similarity index 100% rename from .api-contract/build/cjs/promise/index.js rename to .api-revive/build/cjs/promise/index.js diff --git a/.api-contract/build/cjs/promise/types.d.ts b/.api-revive/build/cjs/promise/types.d.ts similarity index 100% rename from .api-contract/build/cjs/promise/types.d.ts rename to .api-revive/build/cjs/promise/types.d.ts diff --git a/.api-contract/build/cjs/promise/types.js b/.api-revive/build/cjs/promise/types.js similarity index 100% rename from .api-contract/build/cjs/promise/types.js rename to .api-revive/build/cjs/promise/types.js diff --git a/.api-contract/build/cjs/rx/index.d.ts b/.api-revive/build/cjs/rx/index.d.ts similarity index 100% rename from .api-contract/build/cjs/rx/index.d.ts rename to .api-revive/build/cjs/rx/index.d.ts diff --git a/.api-contract/build/cjs/rx/index.js b/.api-revive/build/cjs/rx/index.js similarity index 100% rename from .api-contract/build/cjs/rx/index.js rename to .api-revive/build/cjs/rx/index.js diff --git a/.api-contract/build/cjs/rx/types.d.ts b/.api-revive/build/cjs/rx/types.d.ts similarity index 100% rename from .api-contract/build/cjs/rx/types.d.ts rename to .api-revive/build/cjs/rx/types.d.ts diff --git a/.api-contract/build/cjs/rx/types.js b/.api-revive/build/cjs/rx/types.js similarity index 100% rename from .api-contract/build/cjs/rx/types.js rename to .api-revive/build/cjs/rx/types.js diff --git a/.api-contract/build/cjs/types.d.ts b/.api-revive/build/cjs/types.d.ts similarity index 100% rename from .api-contract/build/cjs/types.d.ts rename to .api-revive/build/cjs/types.d.ts diff --git a/.api-contract/build/cjs/types.js b/.api-revive/build/cjs/types.js similarity index 100% rename from .api-contract/build/cjs/types.js rename to .api-revive/build/cjs/types.js diff --git a/.api-contract/build/cjs/util.d.ts b/.api-revive/build/cjs/util.d.ts similarity index 100% rename from .api-contract/build/cjs/util.d.ts rename to .api-revive/build/cjs/util.d.ts diff --git a/.api-contract/build/cjs/util.js b/.api-revive/build/cjs/util.js similarity index 100% rename from .api-contract/build/cjs/util.js rename to .api-revive/build/cjs/util.js diff --git a/.api-contract/build/index.d.ts b/.api-revive/build/index.d.ts similarity index 100% rename from .api-contract/build/index.d.ts rename to .api-revive/build/index.d.ts diff --git a/.api-contract/build/index.js b/.api-revive/build/index.js similarity index 100% rename from .api-contract/build/index.js rename to .api-revive/build/index.js diff --git a/.api-contract/build/package.json b/.api-revive/build/package.json similarity index 98% rename from .api-contract/build/package.json rename to .api-revive/build/package.json index efb638cd..7122732a 100644 --- a/.api-contract/build/package.json +++ b/.api-revive/build/package.json @@ -5,11 +5,11 @@ "engines": { "node": ">=18" }, - "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme", + "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-revive#readme", "license": "Apache-2.0", - "name": "@polkadot/api-contract", + "name": "@polkadot/api-revive", "repository": { - "directory": "packages/api-contract", + "directory": "packages/api-revive", "type": "git", "url": "https://github.com/polkadot-js/api.git" }, diff --git a/.api-contract/build/packageDetect.d.ts b/.api-revive/build/packageDetect.d.ts similarity index 100% rename from .api-contract/build/packageDetect.d.ts rename to .api-revive/build/packageDetect.d.ts diff --git a/.api-contract/build/packageDetect.js b/.api-revive/build/packageDetect.js similarity index 100% rename from .api-contract/build/packageDetect.js rename to .api-revive/build/packageDetect.js diff --git a/.api-contract/build/packageInfo.d.ts b/.api-revive/build/packageInfo.d.ts similarity index 100% rename from .api-contract/build/packageInfo.d.ts rename to .api-revive/build/packageInfo.d.ts diff --git a/.api-contract/build/packageInfo.js b/.api-revive/build/packageInfo.js similarity index 88% rename from .api-contract/build/packageInfo.js rename to .api-revive/build/packageInfo.js index 0d90c7dc..b9cf3215 100644 --- a/.api-contract/build/packageInfo.js +++ b/.api-revive/build/packageInfo.js @@ -1,5 +1,5 @@ export const packageInfo = { - name: '@polkadot/api-contract', + name: '@polkadot/api-revive', path: import.meta && import.meta.url ? new URL(import.meta.url).pathname.substring( diff --git a/.api-contract/build/promise/index.d.ts b/.api-revive/build/promise/index.d.ts similarity index 100% rename from .api-contract/build/promise/index.d.ts rename to .api-revive/build/promise/index.d.ts diff --git a/.api-contract/build/promise/index.js b/.api-revive/build/promise/index.js similarity index 100% rename from .api-contract/build/promise/index.js rename to .api-revive/build/promise/index.js diff --git a/.api-contract/build/promise/types.d.ts b/.api-revive/build/promise/types.d.ts similarity index 100% rename from .api-contract/build/promise/types.d.ts rename to .api-revive/build/promise/types.d.ts diff --git a/.api-contract/build/promise/types.js b/.api-revive/build/promise/types.js similarity index 100% rename from .api-contract/build/promise/types.js rename to .api-revive/build/promise/types.js diff --git a/.api-contract/build/rx/index.d.ts b/.api-revive/build/rx/index.d.ts similarity index 100% rename from .api-contract/build/rx/index.d.ts rename to .api-revive/build/rx/index.d.ts diff --git a/.api-contract/build/rx/index.js b/.api-revive/build/rx/index.js similarity index 100% rename from .api-contract/build/rx/index.js rename to .api-revive/build/rx/index.js diff --git a/.api-contract/build/rx/types.d.ts b/.api-revive/build/rx/types.d.ts similarity index 100% rename from .api-contract/build/rx/types.d.ts rename to .api-revive/build/rx/types.d.ts diff --git a/.api-contract/build/rx/types.js b/.api-revive/build/rx/types.js similarity index 100% rename from .api-contract/build/rx/types.js rename to .api-revive/build/rx/types.js diff --git a/.api-contract/build/types.d.ts b/.api-revive/build/types.d.ts similarity index 100% rename from .api-contract/build/types.d.ts rename to .api-revive/build/types.d.ts diff --git a/.api-contract/build/types.js b/.api-revive/build/types.js similarity index 100% rename from .api-contract/build/types.js rename to .api-revive/build/types.js diff --git a/.api-contract/build/util.d.ts b/.api-revive/build/util.d.ts similarity index 100% rename from .api-contract/build/util.d.ts rename to .api-revive/build/util.d.ts diff --git a/.api-contract/build/util.js b/.api-revive/build/util.js similarity index 100% rename from .api-contract/build/util.js rename to .api-revive/build/util.js diff --git a/.api-contract/package.json b/.api-revive/package.json similarity index 90% rename from .api-contract/package.json rename to .api-revive/package.json index f685482a..c8e61129 100644 --- a/.api-contract/package.json +++ b/.api-revive/package.json @@ -5,11 +5,11 @@ "engines": { "node": ">=18" }, - "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme", + "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-revive#readme", "license": "Apache-2.0", - "name": "@polkadot/api-contract", + "name": "@polkadot/api-revive", "repository": { - "directory": "packages/api-contract", + "directory": "packages/api-revive", "type": "git", "url": "https://github.com/polkadot-js/api.git" }, diff --git a/.api-contract/src/Abi/Abi.spec.ts b/.api-revive/src/Abi/Abi.spec.ts similarity index 99% rename from .api-contract/src/Abi/Abi.spec.ts rename to .api-revive/src/Abi/Abi.spec.ts index 1e58a3e7..89422d7a 100644 --- a/.api-contract/src/Abi/Abi.spec.ts +++ b/.api-revive/src/Abi/Abi.spec.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 /// diff --git a/.api-contract/src/Abi/index.ts b/.api-revive/src/Abi/index.ts similarity index 99% rename from .api-contract/src/Abi/index.ts rename to .api-revive/src/Abi/index.ts index 538875c4..a3babb83 100644 --- a/.api-contract/src/Abi/index.ts +++ b/.api-revive/src/Abi/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { Bytes, Vec } from '@polkadot/types'; diff --git a/.api-contract/src/Abi/toLatestCompatible.spec.ts b/.api-revive/src/Abi/toLatestCompatible.spec.ts similarity index 98% rename from .api-contract/src/Abi/toLatestCompatible.spec.ts rename to .api-revive/src/Abi/toLatestCompatible.spec.ts index aab966fc..832436b5 100644 --- a/.api-contract/src/Abi/toLatestCompatible.spec.ts +++ b/.api-revive/src/Abi/toLatestCompatible.spec.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 /// diff --git a/.api-contract/src/Abi/toLatestCompatible.ts b/.api-revive/src/Abi/toLatestCompatible.ts similarity index 96% rename from .api-contract/src/Abi/toLatestCompatible.ts rename to .api-revive/src/Abi/toLatestCompatible.ts index 181fc96a..7800f666 100644 --- a/.api-contract/src/Abi/toLatestCompatible.ts +++ b/.api-revive/src/Abi/toLatestCompatible.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ContractMetadataV4, ContractMetadataV5 } from '@polkadot/types/interfaces'; diff --git a/.api-contract/src/Abi/toV1.ts b/.api-revive/src/Abi/toV1.ts similarity index 93% rename from .api-contract/src/Abi/toV1.ts rename to .api-revive/src/Abi/toV1.ts index 5d0663be..904a4c00 100644 --- a/.api-contract/src/Abi/toV1.ts +++ b/.api-revive/src/Abi/toV1.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ContractMetadataV0, ContractMetadataV1 } from '@polkadot/types/interfaces'; diff --git a/.api-contract/src/Abi/toV2.ts b/.api-revive/src/Abi/toV2.ts similarity index 96% rename from .api-contract/src/Abi/toV2.ts rename to .api-revive/src/Abi/toV2.ts index 9619a1c0..901cd810 100644 --- a/.api-contract/src/Abi/toV2.ts +++ b/.api-revive/src/Abi/toV2.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { Text } from '@polkadot/types'; diff --git a/.api-contract/src/Abi/toV3.ts b/.api-revive/src/Abi/toV3.ts similarity index 91% rename from .api-contract/src/Abi/toV3.ts rename to .api-revive/src/Abi/toV3.ts index fccd5a2b..852db696 100644 --- a/.api-contract/src/Abi/toV3.ts +++ b/.api-revive/src/Abi/toV3.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ContractMetadataV2, ContractMetadataV3 } from '@polkadot/types/interfaces'; diff --git a/.api-contract/src/Abi/toV4.ts b/.api-revive/src/Abi/toV4.ts similarity index 92% rename from .api-contract/src/Abi/toV4.ts rename to .api-revive/src/Abi/toV4.ts index 15a7f9c9..bd78e8ad 100644 --- a/.api-contract/src/Abi/toV4.ts +++ b/.api-revive/src/Abi/toV4.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ContractMetadataV3, ContractMetadataV4 } from '@polkadot/types/interfaces'; diff --git a/.api-contract/src/augment.ts b/.api-revive/src/augment.ts similarity index 51% rename from .api-contract/src/augment.ts rename to .api-revive/src/augment.ts index 56f6e04c..21b62204 100644 --- a/.api-contract/src/augment.ts +++ b/.api-revive/src/augment.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import '@polkadot/api-augment'; diff --git a/.api-contract/src/base/Base.ts b/.api-revive/src/base/Base.ts similarity index 100% rename from .api-contract/src/base/Base.ts rename to .api-revive/src/base/Base.ts diff --git a/.api-contract/src/base/Blueprint.ts b/.api-revive/src/base/Blueprint.ts similarity index 98% rename from .api-contract/src/base/Blueprint.ts rename to .api-revive/src/base/Blueprint.ts index 37011c12..d7f22416 100644 --- a/.api-contract/src/base/Blueprint.ts +++ b/.api-revive/src/base/Blueprint.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiBase } from '@polkadot/api/base'; diff --git a/.api-contract/src/base/Code.spec.ts b/.api-revive/src/base/Code.spec.ts similarity index 95% rename from .api-contract/src/base/Code.spec.ts rename to .api-revive/src/base/Code.spec.ts index 0fd4cc99..c17c91e4 100644 --- a/.api-contract/src/base/Code.spec.ts +++ b/.api-revive/src/base/Code.spec.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 /// diff --git a/.api-contract/src/base/Code.ts b/.api-revive/src/base/Code.ts similarity index 98% rename from .api-contract/src/base/Code.ts rename to .api-revive/src/base/Code.ts index db19fff4..f0864dee 100644 --- a/.api-contract/src/base/Code.ts +++ b/.api-revive/src/base/Code.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiBase } from '@polkadot/api/base'; diff --git a/.api-contract/src/base/Contract.ts b/.api-revive/src/base/Contract.ts similarity index 99% rename from .api-contract/src/base/Contract.ts rename to .api-revive/src/base/Contract.ts index f59ae5b7..10f8bb66 100644 --- a/.api-contract/src/base/Contract.ts +++ b/.api-revive/src/base/Contract.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiBase } from '@polkadot/api/base'; diff --git a/.api-contract/src/base/index.ts b/.api-revive/src/base/index.ts similarity index 100% rename from .api-contract/src/base/index.ts rename to .api-revive/src/base/index.ts diff --git a/.api-contract/src/base/mock.ts b/.api-revive/src/base/mock.ts similarity index 89% rename from .api-contract/src/base/mock.ts rename to .api-revive/src/base/mock.ts index bb997998..3ec5387b 100644 --- a/.api-contract/src/base/mock.ts +++ b/.api-revive/src/base/mock.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiBase } from '@polkadot/api/base'; diff --git a/.api-contract/src/base/types.ts b/.api-revive/src/base/types.ts similarity index 96% rename from .api-contract/src/base/types.ts rename to .api-revive/src/base/types.ts index 6f9cbc9d..32ff90f7 100644 --- a/.api-contract/src/base/types.ts +++ b/.api-revive/src/base/types.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { Observable } from 'rxjs'; diff --git a/.api-contract/src/base/util.ts b/.api-revive/src/base/util.ts similarity index 97% rename from .api-contract/src/base/util.ts rename to .api-revive/src/base/util.ts index 33c28016..9157a291 100644 --- a/.api-contract/src/base/util.ts +++ b/.api-revive/src/base/util.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { SubmittableResult } from '@polkadot/api'; diff --git a/.api-contract/src/bundle.ts b/.api-revive/src/bundle.ts similarity index 76% rename from .api-contract/src/bundle.ts rename to .api-revive/src/bundle.ts index 1be0423b..5c74aaa5 100644 --- a/.api-contract/src/bundle.ts +++ b/.api-revive/src/bundle.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 // all named diff --git a/.api-contract/src/checkTypes.manual.ts b/.api-revive/src/checkTypes.manual.ts similarity index 95% rename from .api-contract/src/checkTypes.manual.ts rename to .api-revive/src/checkTypes.manual.ts index 236f68e5..ff776315 100644 --- a/.api-contract/src/checkTypes.manual.ts +++ b/.api-revive/src/checkTypes.manual.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 // Simple non-runnable checks to test type definitions in the editor itself @@ -8,7 +8,7 @@ import '@polkadot/api-augment'; import type { TestKeyringMapSubstrate } from '@polkadot/keyring/testingPairs'; import { ApiPromise } from '@polkadot/api'; -import { BlueprintPromise, ContractPromise } from '@polkadot/api-contract'; +import { BlueprintPromise, ContractPromise } from '@polkadot/api-revive'; import { createTestPairs } from '@polkadot/keyring/testingPairs'; import abiIncrementer from './test/contracts/ink/v0/incrementer.json' assert { type: 'json' }; diff --git a/.api-contract/src/index.ts b/.api-revive/src/index.ts similarity index 58% rename from .api-contract/src/index.ts rename to .api-revive/src/index.ts index 5e015c3f..12d70fe0 100644 --- a/.api-contract/src/index.ts +++ b/.api-revive/src/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import './packageDetect.js'; diff --git a/.api-revive/src/mod.ts b/.api-revive/src/mod.ts new file mode 100644 index 00000000..3407c30e --- /dev/null +++ b/.api-revive/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/.api-contract/src/packageDetect.ts b/.api-revive/src/packageDetect.ts similarity index 86% rename from .api-contract/src/packageDetect.ts rename to .api-revive/src/packageDetect.ts index ee014dfe..7f541faf 100644 --- a/.api-contract/src/packageDetect.ts +++ b/.api-revive/src/packageDetect.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 // Do not edit, auto-generated by @polkadot/dev diff --git a/.api-contract/src/packageInfo.ts b/.api-revive/src/packageInfo.ts similarity index 62% rename from .api-contract/src/packageInfo.ts rename to .api-revive/src/packageInfo.ts index 2f695e88..63e1465a 100644 --- a/.api-contract/src/packageInfo.ts +++ b/.api-revive/src/packageInfo.ts @@ -1,10 +1,10 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 // Do not edit, auto-generated by @polkadot/dev export const packageInfo = { - name: '@polkadot/api-contract', + name: '@polkadot/api-revive', path: 'auto', type: 'auto', version: '15.8.1', diff --git a/.api-contract/src/promise/index.ts b/.api-revive/src/promise/index.ts similarity index 93% rename from .api-contract/src/promise/index.ts rename to .api-revive/src/promise/index.ts index 53058fcf..f802fb7b 100644 --- a/.api-contract/src/promise/index.ts +++ b/.api-revive/src/promise/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiPromise } from '@polkadot/api'; diff --git a/.api-contract/src/promise/types.ts b/.api-revive/src/promise/types.ts similarity index 83% rename from .api-contract/src/promise/types.ts rename to .api-revive/src/promise/types.ts index 7057fec2..deb451f0 100644 --- a/.api-contract/src/promise/types.ts +++ b/.api-revive/src/promise/types.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { diff --git a/.api-contract/src/rx/index.ts b/.api-revive/src/rx/index.ts similarity index 93% rename from .api-contract/src/rx/index.ts rename to .api-revive/src/rx/index.ts index 72bc95d7..fc31b107 100644 --- a/.api-contract/src/rx/index.ts +++ b/.api-revive/src/rx/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiRx } from '@polkadot/api'; diff --git a/.api-contract/src/rx/types.ts b/.api-revive/src/rx/types.ts similarity index 83% rename from .api-contract/src/rx/types.ts rename to .api-revive/src/rx/types.ts index 7057fec2..deb451f0 100644 --- a/.api-contract/src/rx/types.ts +++ b/.api-revive/src/rx/types.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { diff --git a/.api-contract/src/test/compare/ink_v0_delegator.test.json b/.api-revive/src/test/compare/ink_v0_delegator.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v0_delegator.test.json rename to .api-revive/src/test/compare/ink_v0_delegator.test.json diff --git a/.api-contract/src/test/compare/ink_v0_dns.test.json b/.api-revive/src/test/compare/ink_v0_dns.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v0_dns.test.json rename to .api-revive/src/test/compare/ink_v0_dns.test.json diff --git a/.api-contract/src/test/compare/ink_v0_erc20.test.json b/.api-revive/src/test/compare/ink_v0_erc20.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v0_erc20.test.json rename to .api-revive/src/test/compare/ink_v0_erc20.test.json diff --git a/.api-contract/src/test/compare/ink_v0_erc721.test.json b/.api-revive/src/test/compare/ink_v0_erc721.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v0_erc721.test.json rename to .api-revive/src/test/compare/ink_v0_erc721.test.json diff --git a/.api-contract/src/test/compare/ink_v0_flipper.test.json b/.api-revive/src/test/compare/ink_v0_flipper.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v0_flipper.test.json rename to .api-revive/src/test/compare/ink_v0_flipper.test.json diff --git a/.api-contract/src/test/compare/ink_v0_flipperBundle.test.json b/.api-revive/src/test/compare/ink_v0_flipperBundle.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v0_flipperBundle.test.json rename to .api-revive/src/test/compare/ink_v0_flipperBundle.test.json diff --git a/.api-contract/src/test/compare/ink_v0_incrementer.test.json b/.api-revive/src/test/compare/ink_v0_incrementer.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v0_incrementer.test.json rename to .api-revive/src/test/compare/ink_v0_incrementer.test.json diff --git a/.api-contract/src/test/compare/ink_v0_multisigPlain.test.json b/.api-revive/src/test/compare/ink_v0_multisigPlain.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v0_multisigPlain.test.json rename to .api-revive/src/test/compare/ink_v0_multisigPlain.test.json diff --git a/.api-contract/src/test/compare/ink_v1_flipper.test.json b/.api-revive/src/test/compare/ink_v1_flipper.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v1_flipper.test.json rename to .api-revive/src/test/compare/ink_v1_flipper.test.json diff --git a/.api-contract/src/test/compare/ink_v1_psp22.test.json b/.api-revive/src/test/compare/ink_v1_psp22.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v1_psp22.test.json rename to .api-revive/src/test/compare/ink_v1_psp22.test.json diff --git a/.api-contract/src/test/compare/ink_v2_erc20.test.json b/.api-revive/src/test/compare/ink_v2_erc20.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v2_erc20.test.json rename to .api-revive/src/test/compare/ink_v2_erc20.test.json diff --git a/.api-contract/src/test/compare/ink_v2_flipper.test.json b/.api-revive/src/test/compare/ink_v2_flipper.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v2_flipper.test.json rename to .api-revive/src/test/compare/ink_v2_flipper.test.json diff --git a/.api-contract/src/test/compare/ink_v3_flipper.test.json b/.api-revive/src/test/compare/ink_v3_flipper.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v3_flipper.test.json rename to .api-revive/src/test/compare/ink_v3_flipper.test.json diff --git a/.api-contract/src/test/compare/ink_v3_traitErc20.test.json b/.api-revive/src/test/compare/ink_v3_traitErc20.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v3_traitErc20.test.json rename to .api-revive/src/test/compare/ink_v3_traitErc20.test.json diff --git a/.api-contract/src/test/compare/ink_v4_erc20Contract.test.json b/.api-revive/src/test/compare/ink_v4_erc20Contract.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v4_erc20Contract.test.json rename to .api-revive/src/test/compare/ink_v4_erc20Contract.test.json diff --git a/.api-contract/src/test/compare/ink_v4_erc20Metadata.test.json b/.api-revive/src/test/compare/ink_v4_erc20Metadata.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v4_erc20Metadata.test.json rename to .api-revive/src/test/compare/ink_v4_erc20Metadata.test.json diff --git a/.api-contract/src/test/compare/ink_v4_flipperContract.test.json b/.api-revive/src/test/compare/ink_v4_flipperContract.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v4_flipperContract.test.json rename to .api-revive/src/test/compare/ink_v4_flipperContract.test.json diff --git a/.api-contract/src/test/compare/ink_v4_flipperMetadata.test.json b/.api-revive/src/test/compare/ink_v4_flipperMetadata.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v4_flipperMetadata.test.json rename to .api-revive/src/test/compare/ink_v4_flipperMetadata.test.json diff --git a/.api-contract/src/test/compare/ink_v5_erc20.test.json b/.api-revive/src/test/compare/ink_v5_erc20.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v5_erc20.test.json rename to .api-revive/src/test/compare/ink_v5_erc20.test.json diff --git a/.api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json b/.api-revive/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json rename to .api-revive/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json diff --git a/.api-contract/src/test/compare/ink_v5_erc20Contract.test.json b/.api-revive/src/test/compare/ink_v5_erc20Contract.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v5_erc20Contract.test.json rename to .api-revive/src/test/compare/ink_v5_erc20Contract.test.json diff --git a/.api-contract/src/test/compare/ink_v5_erc20Metadata.test.json b/.api-revive/src/test/compare/ink_v5_erc20Metadata.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v5_erc20Metadata.test.json rename to .api-revive/src/test/compare/ink_v5_erc20Metadata.test.json diff --git a/.api-contract/src/test/compare/ink_v5_flipperContract.test.json b/.api-revive/src/test/compare/ink_v5_flipperContract.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v5_flipperContract.test.json rename to .api-revive/src/test/compare/ink_v5_flipperContract.test.json diff --git a/.api-contract/src/test/compare/ink_v5_flipperMetadata.test.json b/.api-revive/src/test/compare/ink_v5_flipperMetadata.test.json similarity index 100% rename from .api-contract/src/test/compare/ink_v5_flipperMetadata.test.json rename to .api-revive/src/test/compare/ink_v5_flipperMetadata.test.json diff --git a/.api-contract/src/test/compare/solang_v0_ints256.test.json b/.api-revive/src/test/compare/solang_v0_ints256.test.json similarity index 100% rename from .api-contract/src/test/compare/solang_v0_ints256.test.json rename to .api-revive/src/test/compare/solang_v0_ints256.test.json diff --git a/.api-contract/src/test/compare/user_v0_assetTransfer.test.json b/.api-revive/src/test/compare/user_v0_assetTransfer.test.json similarity index 100% rename from .api-contract/src/test/compare/user_v0_assetTransfer.test.json rename to .api-revive/src/test/compare/user_v0_assetTransfer.test.json diff --git a/.api-contract/src/test/compare/user_v0_enumExample.test.json b/.api-revive/src/test/compare/user_v0_enumExample.test.json similarity index 100% rename from .api-contract/src/test/compare/user_v0_enumExample.test.json rename to .api-revive/src/test/compare/user_v0_enumExample.test.json diff --git a/.api-contract/src/test/compare/user_v0_recursive.test.json b/.api-revive/src/test/compare/user_v0_recursive.test.json similarity index 100% rename from .api-contract/src/test/compare/user_v0_recursive.test.json rename to .api-revive/src/test/compare/user_v0_recursive.test.json diff --git a/.api-contract/src/test/compare/user_v0_withString.test.json b/.api-revive/src/test/compare/user_v0_withString.test.json similarity index 100% rename from .api-contract/src/test/compare/user_v0_withString.test.json rename to .api-revive/src/test/compare/user_v0_withString.test.json diff --git a/.api-contract/src/test/compare/user_v3_ask.test.json b/.api-revive/src/test/compare/user_v3_ask.test.json similarity index 100% rename from .api-contract/src/test/compare/user_v3_ask.test.json rename to .api-revive/src/test/compare/user_v3_ask.test.json diff --git a/.api-contract/src/test/compare/user_v4_events.test.json b/.api-revive/src/test/compare/user_v4_events.test.json similarity index 100% rename from .api-contract/src/test/compare/user_v4_events.test.json rename to .api-revive/src/test/compare/user_v4_events.test.json diff --git a/.api-contract/src/test/contracts/index.ts b/.api-revive/src/test/contracts/index.ts similarity index 85% rename from .api-contract/src/test/contracts/index.ts rename to .api-revive/src/test/contracts/index.ts index 3ffc7321..8099b022 100644 --- a/.api-contract/src/test/contracts/index.ts +++ b/.api-revive/src/test/contracts/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import ink from './ink/index.js'; diff --git a/.api-contract/src/test/contracts/ink/index.ts b/.api-revive/src/test/contracts/ink/index.ts similarity index 84% rename from .api-contract/src/test/contracts/ink/index.ts rename to .api-revive/src/test/contracts/ink/index.ts index 3ae97f89..7783e64e 100644 --- a/.api-contract/src/test/contracts/ink/index.ts +++ b/.api-revive/src/test/contracts/ink/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import { createVersionedExport } from '../util.js'; diff --git a/.api-contract/src/test/contracts/ink/v0/accumulator.wasm b/.api-revive/src/test/contracts/ink/v0/accumulator.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/accumulator.wasm rename to .api-revive/src/test/contracts/ink/v0/accumulator.wasm diff --git a/.api-contract/src/test/contracts/ink/v0/adder.wasm b/.api-revive/src/test/contracts/ink/v0/adder.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/adder.wasm rename to .api-revive/src/test/contracts/ink/v0/adder.wasm diff --git a/.api-contract/src/test/contracts/ink/v0/delegator.json b/.api-revive/src/test/contracts/ink/v0/delegator.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/delegator.json rename to .api-revive/src/test/contracts/ink/v0/delegator.json diff --git a/.api-contract/src/test/contracts/ink/v0/delegator.wasm b/.api-revive/src/test/contracts/ink/v0/delegator.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/delegator.wasm rename to .api-revive/src/test/contracts/ink/v0/delegator.wasm diff --git a/.api-contract/src/test/contracts/ink/v0/dns.json b/.api-revive/src/test/contracts/ink/v0/dns.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/dns.json rename to .api-revive/src/test/contracts/ink/v0/dns.json diff --git a/.api-contract/src/test/contracts/ink/v0/dns.wasm b/.api-revive/src/test/contracts/ink/v0/dns.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/dns.wasm rename to .api-revive/src/test/contracts/ink/v0/dns.wasm diff --git a/.api-contract/src/test/contracts/ink/v0/erc20.json b/.api-revive/src/test/contracts/ink/v0/erc20.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/erc20.json rename to .api-revive/src/test/contracts/ink/v0/erc20.json diff --git a/.api-contract/src/test/contracts/ink/v0/erc20.wasm b/.api-revive/src/test/contracts/ink/v0/erc20.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/erc20.wasm rename to .api-revive/src/test/contracts/ink/v0/erc20.wasm diff --git a/.api-contract/src/test/contracts/ink/v0/erc721.json b/.api-revive/src/test/contracts/ink/v0/erc721.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/erc721.json rename to .api-revive/src/test/contracts/ink/v0/erc721.json diff --git a/.api-contract/src/test/contracts/ink/v0/erc721.wasm b/.api-revive/src/test/contracts/ink/v0/erc721.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/erc721.wasm rename to .api-revive/src/test/contracts/ink/v0/erc721.wasm diff --git a/.api-contract/src/test/contracts/ink/v0/flipper.contract.json b/.api-revive/src/test/contracts/ink/v0/flipper.contract.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/flipper.contract.json rename to .api-revive/src/test/contracts/ink/v0/flipper.contract.json diff --git a/.api-contract/src/test/contracts/ink/v0/flipper.json b/.api-revive/src/test/contracts/ink/v0/flipper.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/flipper.json rename to .api-revive/src/test/contracts/ink/v0/flipper.json diff --git a/.api-contract/src/test/contracts/ink/v0/flipper.wasm b/.api-revive/src/test/contracts/ink/v0/flipper.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/flipper.wasm rename to .api-revive/src/test/contracts/ink/v0/flipper.wasm diff --git a/.api-contract/src/test/contracts/ink/v0/incrementer.json b/.api-revive/src/test/contracts/ink/v0/incrementer.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/incrementer.json rename to .api-revive/src/test/contracts/ink/v0/incrementer.json diff --git a/.api-contract/src/test/contracts/ink/v0/incrementer.wasm b/.api-revive/src/test/contracts/ink/v0/incrementer.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/incrementer.wasm rename to .api-revive/src/test/contracts/ink/v0/incrementer.wasm diff --git a/.api-contract/src/test/contracts/ink/v0/index.ts b/.api-revive/src/test/contracts/ink/v0/index.ts similarity index 90% rename from .api-contract/src/test/contracts/ink/v0/index.ts rename to .api-revive/src/test/contracts/ink/v0/index.ts index 923a6fa6..53e15062 100644 --- a/.api-contract/src/test/contracts/ink/v0/index.ts +++ b/.api-revive/src/test/contracts/ink/v0/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as delegator } from './delegator.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v0/multisig_plain.json b/.api-revive/src/test/contracts/ink/v0/multisig_plain.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/multisig_plain.json rename to .api-revive/src/test/contracts/ink/v0/multisig_plain.json diff --git a/.api-contract/src/test/contracts/ink/v0/multisig_plain.wasm b/.api-revive/src/test/contracts/ink/v0/multisig_plain.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/multisig_plain.wasm rename to .api-revive/src/test/contracts/ink/v0/multisig_plain.wasm diff --git a/.api-contract/src/test/contracts/ink/v0/subber.wasm b/.api-revive/src/test/contracts/ink/v0/subber.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/subber.wasm rename to .api-revive/src/test/contracts/ink/v0/subber.wasm diff --git a/.api-contract/src/test/contracts/ink/v0/trait-flipper.json b/.api-revive/src/test/contracts/ink/v0/trait-flipper.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/trait-flipper.json rename to .api-revive/src/test/contracts/ink/v0/trait-flipper.json diff --git a/.api-contract/src/test/contracts/ink/v0/trait-flipper.wasm b/.api-revive/src/test/contracts/ink/v0/trait-flipper.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v0/trait-flipper.wasm rename to .api-revive/src/test/contracts/ink/v0/trait-flipper.wasm diff --git a/.api-contract/src/test/contracts/ink/v1/flipper.contract.json b/.api-revive/src/test/contracts/ink/v1/flipper.contract.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v1/flipper.contract.json rename to .api-revive/src/test/contracts/ink/v1/flipper.contract.json diff --git a/.api-contract/src/test/contracts/ink/v1/index.ts b/.api-revive/src/test/contracts/ink/v1/index.ts similarity index 79% rename from .api-contract/src/test/contracts/ink/v1/index.ts rename to .api-revive/src/test/contracts/ink/v1/index.ts index b20c8916..22d37f30 100644 --- a/.api-contract/src/test/contracts/ink/v1/index.ts +++ b/.api-revive/src/test/contracts/ink/v1/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json b/.api-revive/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json rename to .api-revive/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json diff --git a/.api-contract/src/test/contracts/ink/v2/erc20.contract.json b/.api-revive/src/test/contracts/ink/v2/erc20.contract.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v2/erc20.contract.json rename to .api-revive/src/test/contracts/ink/v2/erc20.contract.json diff --git a/.api-contract/src/test/contracts/ink/v2/flipper.contract.json b/.api-revive/src/test/contracts/ink/v2/flipper.contract.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v2/flipper.contract.json rename to .api-revive/src/test/contracts/ink/v2/flipper.contract.json diff --git a/.api-contract/src/test/contracts/ink/v2/index.ts b/.api-revive/src/test/contracts/ink/v2/index.ts similarity index 75% rename from .api-contract/src/test/contracts/ink/v2/index.ts rename to .api-revive/src/test/contracts/ink/v2/index.ts index 45359d54..5f91257e 100644 --- a/.api-contract/src/test/contracts/ink/v2/index.ts +++ b/.api-revive/src/test/contracts/ink/v2/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as erc20 } from './erc20.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v3/flipper.contract.json b/.api-revive/src/test/contracts/ink/v3/flipper.contract.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v3/flipper.contract.json rename to .api-revive/src/test/contracts/ink/v3/flipper.contract.json diff --git a/.api-contract/src/test/contracts/ink/v3/index.ts b/.api-revive/src/test/contracts/ink/v3/index.ts similarity index 79% rename from .api-contract/src/test/contracts/ink/v3/index.ts rename to .api-revive/src/test/contracts/ink/v3/index.ts index c0c494cb..5260393d 100644 --- a/.api-contract/src/test/contracts/ink/v3/index.ts +++ b/.api-revive/src/test/contracts/ink/v3/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json b/.api-revive/src/test/contracts/ink/v3/trait_erc20.contract.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json rename to .api-revive/src/test/contracts/ink/v3/trait_erc20.contract.json diff --git a/.api-contract/src/test/contracts/ink/v4/erc20.contract.json b/.api-revive/src/test/contracts/ink/v4/erc20.contract.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v4/erc20.contract.json rename to .api-revive/src/test/contracts/ink/v4/erc20.contract.json diff --git a/.api-contract/src/test/contracts/ink/v4/erc20.json b/.api-revive/src/test/contracts/ink/v4/erc20.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v4/erc20.json rename to .api-revive/src/test/contracts/ink/v4/erc20.json diff --git a/.api-contract/src/test/contracts/ink/v4/erc20.wasm b/.api-revive/src/test/contracts/ink/v4/erc20.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v4/erc20.wasm rename to .api-revive/src/test/contracts/ink/v4/erc20.wasm diff --git a/.api-contract/src/test/contracts/ink/v4/flipper.contract.json b/.api-revive/src/test/contracts/ink/v4/flipper.contract.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v4/flipper.contract.json rename to .api-revive/src/test/contracts/ink/v4/flipper.contract.json diff --git a/.api-contract/src/test/contracts/ink/v4/flipper.json b/.api-revive/src/test/contracts/ink/v4/flipper.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v4/flipper.json rename to .api-revive/src/test/contracts/ink/v4/flipper.json diff --git a/.api-contract/src/test/contracts/ink/v4/flipper.wasm b/.api-revive/src/test/contracts/ink/v4/flipper.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v4/flipper.wasm rename to .api-revive/src/test/contracts/ink/v4/flipper.wasm diff --git a/.api-contract/src/test/contracts/ink/v4/index.ts b/.api-revive/src/test/contracts/ink/v4/index.ts similarity index 84% rename from .api-contract/src/test/contracts/ink/v4/index.ts rename to .api-revive/src/test/contracts/ink/v4/index.ts index 808eba8c..00716b85 100644 --- a/.api-contract/src/test/contracts/ink/v4/index.ts +++ b/.api-revive/src/test/contracts/ink/v4/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v5/erc20.contract.json b/.api-revive/src/test/contracts/ink/v5/erc20.contract.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v5/erc20.contract.json rename to .api-revive/src/test/contracts/ink/v5/erc20.contract.json diff --git a/.api-contract/src/test/contracts/ink/v5/erc20.json b/.api-revive/src/test/contracts/ink/v5/erc20.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v5/erc20.json rename to .api-revive/src/test/contracts/ink/v5/erc20.json diff --git a/.api-contract/src/test/contracts/ink/v5/erc20.wasm b/.api-revive/src/test/contracts/ink/v5/erc20.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v5/erc20.wasm rename to .api-revive/src/test/contracts/ink/v5/erc20.wasm diff --git a/.api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json b/.api-revive/src/test/contracts/ink/v5/erc20_anonymous_transfer.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json rename to .api-revive/src/test/contracts/ink/v5/erc20_anonymous_transfer.json diff --git a/.api-contract/src/test/contracts/ink/v5/flipper.contract.json b/.api-revive/src/test/contracts/ink/v5/flipper.contract.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v5/flipper.contract.json rename to .api-revive/src/test/contracts/ink/v5/flipper.contract.json diff --git a/.api-contract/src/test/contracts/ink/v5/flipper.json b/.api-revive/src/test/contracts/ink/v5/flipper.json similarity index 100% rename from .api-contract/src/test/contracts/ink/v5/flipper.json rename to .api-revive/src/test/contracts/ink/v5/flipper.json diff --git a/.api-contract/src/test/contracts/ink/v5/flipper.wasm b/.api-revive/src/test/contracts/ink/v5/flipper.wasm similarity index 100% rename from .api-contract/src/test/contracts/ink/v5/flipper.wasm rename to .api-revive/src/test/contracts/ink/v5/flipper.wasm diff --git a/.api-contract/src/test/contracts/ink/v5/index.ts b/.api-revive/src/test/contracts/ink/v5/index.ts similarity index 88% rename from .api-contract/src/test/contracts/ink/v5/index.ts rename to .api-revive/src/test/contracts/ink/v5/index.ts index 8e9497fa..d61899a2 100644 --- a/.api-contract/src/test/contracts/ink/v5/index.ts +++ b/.api-revive/src/test/contracts/ink/v5/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/solang/index.ts b/.api-revive/src/test/contracts/solang/index.ts similarity index 71% rename from .api-contract/src/test/contracts/solang/index.ts rename to .api-revive/src/test/contracts/solang/index.ts index e5ef0340..6576121f 100644 --- a/.api-contract/src/test/contracts/solang/index.ts +++ b/.api-revive/src/test/contracts/solang/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import { createVersionedExport } from '../util.js'; diff --git a/.api-contract/src/test/contracts/solang/v0/index.ts b/.api-revive/src/test/contracts/solang/v0/index.ts similarity index 62% rename from .api-contract/src/test/contracts/solang/v0/index.ts rename to .api-revive/src/test/contracts/solang/v0/index.ts index 6c73b8f6..333b4941 100644 --- a/.api-contract/src/test/contracts/solang/v0/index.ts +++ b/.api-revive/src/test/contracts/solang/v0/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as ints256 } from './ints256.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/solang/v0/ints256.json b/.api-revive/src/test/contracts/solang/v0/ints256.json similarity index 100% rename from .api-contract/src/test/contracts/solang/v0/ints256.json rename to .api-revive/src/test/contracts/solang/v0/ints256.json diff --git a/.api-contract/src/test/contracts/solang/v0/ints256.sol b/.api-revive/src/test/contracts/solang/v0/ints256.sol similarity index 100% rename from .api-contract/src/test/contracts/solang/v0/ints256.sol rename to .api-revive/src/test/contracts/solang/v0/ints256.sol diff --git a/.api-contract/src/test/contracts/solang/v0/ints256.wasm b/.api-revive/src/test/contracts/solang/v0/ints256.wasm similarity index 100% rename from .api-contract/src/test/contracts/solang/v0/ints256.wasm rename to .api-revive/src/test/contracts/solang/v0/ints256.wasm diff --git a/.api-contract/src/test/contracts/user/index.ts b/.api-revive/src/test/contracts/user/index.ts similarity index 78% rename from .api-contract/src/test/contracts/user/index.ts rename to .api-revive/src/test/contracts/user/index.ts index 69e91c72..90f855cf 100644 --- a/.api-contract/src/test/contracts/user/index.ts +++ b/.api-revive/src/test/contracts/user/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import { createVersionedExport } from '../util.js'; diff --git a/.api-contract/src/test/contracts/user/v0/assetTransfer.json b/.api-revive/src/test/contracts/user/v0/assetTransfer.json similarity index 100% rename from .api-contract/src/test/contracts/user/v0/assetTransfer.json rename to .api-revive/src/test/contracts/user/v0/assetTransfer.json diff --git a/.api-contract/src/test/contracts/user/v0/assetTransfer.wasm b/.api-revive/src/test/contracts/user/v0/assetTransfer.wasm similarity index 100% rename from .api-contract/src/test/contracts/user/v0/assetTransfer.wasm rename to .api-revive/src/test/contracts/user/v0/assetTransfer.wasm diff --git a/.api-contract/src/test/contracts/user/v0/enumExample.json b/.api-revive/src/test/contracts/user/v0/enumExample.json similarity index 100% rename from .api-contract/src/test/contracts/user/v0/enumExample.json rename to .api-revive/src/test/contracts/user/v0/enumExample.json diff --git a/.api-contract/src/test/contracts/user/v0/enumExample.wasm b/.api-revive/src/test/contracts/user/v0/enumExample.wasm similarity index 100% rename from .api-contract/src/test/contracts/user/v0/enumExample.wasm rename to .api-revive/src/test/contracts/user/v0/enumExample.wasm diff --git a/.api-contract/src/test/contracts/user/v0/index.ts b/.api-revive/src/test/contracts/user/v0/index.ts similarity index 84% rename from .api-contract/src/test/contracts/user/v0/index.ts rename to .api-revive/src/test/contracts/user/v0/index.ts index 0837c3e2..7fed6c30 100644 --- a/.api-contract/src/test/contracts/user/v0/index.ts +++ b/.api-revive/src/test/contracts/user/v0/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as assetTransfer } from './assetTransfer.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/user/v0/recursive.contract.json b/.api-revive/src/test/contracts/user/v0/recursive.contract.json similarity index 100% rename from .api-contract/src/test/contracts/user/v0/recursive.contract.json rename to .api-revive/src/test/contracts/user/v0/recursive.contract.json diff --git a/.api-contract/src/test/contracts/user/v0/withString.json b/.api-revive/src/test/contracts/user/v0/withString.json similarity index 100% rename from .api-contract/src/test/contracts/user/v0/withString.json rename to .api-revive/src/test/contracts/user/v0/withString.json diff --git a/.api-contract/src/test/contracts/user/v3/ask.json b/.api-revive/src/test/contracts/user/v3/ask.json similarity index 100% rename from .api-contract/src/test/contracts/user/v3/ask.json rename to .api-revive/src/test/contracts/user/v3/ask.json diff --git a/.api-contract/src/test/contracts/user/v3/index.ts b/.api-revive/src/test/contracts/user/v3/index.ts similarity index 61% rename from .api-contract/src/test/contracts/user/v3/index.ts rename to .api-revive/src/test/contracts/user/v3/index.ts index 388ac3d8..e36a0412 100644 --- a/.api-contract/src/test/contracts/user/v3/index.ts +++ b/.api-revive/src/test/contracts/user/v3/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as ask } from './ask.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/user/v4/events.contract.json b/.api-revive/src/test/contracts/user/v4/events.contract.json similarity index 100% rename from .api-contract/src/test/contracts/user/v4/events.contract.json rename to .api-revive/src/test/contracts/user/v4/events.contract.json diff --git a/.api-contract/src/test/contracts/user/v4/index.ts b/.api-revive/src/test/contracts/user/v4/index.ts similarity index 64% rename from .api-contract/src/test/contracts/user/v4/index.ts rename to .api-revive/src/test/contracts/user/v4/index.ts index 46af49a4..91514c4a 100644 --- a/.api-contract/src/test/contracts/user/v4/index.ts +++ b/.api-revive/src/test/contracts/user/v4/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as events } from './events.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/util.ts b/.api-revive/src/test/contracts/util.ts similarity index 87% rename from .api-contract/src/test/contracts/util.ts rename to .api-revive/src/test/contracts/util.ts index d305fb5b..65601e8f 100644 --- a/.api-contract/src/test/contracts/util.ts +++ b/.api-revive/src/test/contracts/util.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 export function createVersionedExport( diff --git a/.api-contract/src/types.ts b/.api-revive/src/types.ts similarity index 97% rename from .api-contract/src/types.ts rename to .api-revive/src/types.ts index 3f92f537..5146e3b6 100644 --- a/.api-contract/src/types.ts +++ b/.api-revive/src/types.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiBase } from '@polkadot/api/base'; diff --git a/.api-contract/src/util.ts b/.api-revive/src/util.ts similarity index 89% rename from .api-contract/src/util.ts rename to .api-revive/src/util.ts index 21e5018a..008afb57 100644 --- a/.api-contract/src/util.ts +++ b/.api-revive/src/util.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// Copyright 2017-2025 @polkadot/api-revive authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { SubmittableResult } from '@polkadot/api'; diff --git a/.api-contract/tsconfig.build.json b/.api-revive/tsconfig.build.json similarity index 100% rename from .api-contract/tsconfig.build.json rename to .api-revive/tsconfig.build.json diff --git a/.api-contract/tsconfig.spec.json b/.api-revive/tsconfig.spec.json similarity index 91% rename from .api-contract/tsconfig.spec.json rename to .api-revive/tsconfig.spec.json index 38b05b54..8990ae5f 100644 --- a/.api-contract/tsconfig.spec.json +++ b/.api-revive/tsconfig.spec.json @@ -18,7 +18,7 @@ ], "references": [ { "path": "../api-augment/tsconfig.build.json" }, - { "path": "../api-contract/tsconfig.build.json" }, + { "path": "../api-revive/tsconfig.build.json" }, { "path": "../api/tsconfig.build.json" }, { "path": "../types-support/tsconfig.build.json" }, { "path": "../types/tsconfig.build.json" } diff --git a/package.json b/package.json index d14dfd6d..2a216d20 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,8 @@ "@headlessui/react": "^1.7.18", "@heroicons/react": "^1.0.6", "@polkadot/api": "15.8.1", - "@polkadot/api-contract": "file:./.api-contract/build", + "@polkadot/api-contract": "15.8.1", + "@polkadot/api-revive": "file:./.api-revive/build", "@polkadot/extension-dapp": "^0.58.6", "@polkadot/types": "15.8.1", "@polkadot/ui-keyring": "^3.12.2", diff --git a/yarn.lock b/yarn.lock index 11b1d572..124196e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1174,9 +1174,9 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-contract@file:./.api-contract/build::locator=contracts-ui%40workspace%3A.": +"@polkadot/api-contract@npm:15.8.1": version: 15.8.1 - resolution: "@polkadot/api-contract@file:./.api-contract/build#./.api-contract/build::hash=ebb2da&locator=contracts-ui%40workspace%3A." + resolution: "@polkadot/api-contract@npm:15.8.1" dependencies: "@polkadot/api": "npm:15.8.1" "@polkadot/api-augment": "npm:15.8.1" @@ -1187,7 +1187,7 @@ __metadata: "@polkadot/util-crypto": "npm:^13.4.3" rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/bed0a6e1b1bfe8dedae982536458b2882bb0ca5e3b54e88ef20687344991bcbf8daafd3a6da87109615e2dfbc5ab711bfc4a8783208bed5b768d670db553f3d7 + checksum: 10/39faecc46621714b85efdaabe60a414decb82002ef928b42175cc652313a57682ce1cbcca50e54aff5cc910134b17ca524e9d5a18e063c8cd0950a9197176f01 languageName: node linkType: hard @@ -1227,6 +1227,23 @@ __metadata: languageName: node linkType: hard +"@polkadot/api-revive@file:./.api-revive/build::locator=contracts-ui%40workspace%3A.": + version: 15.8.1 + resolution: "@polkadot/api-revive@file:./.api-revive/build#./.api-revive/build::hash=16e0e4&locator=contracts-ui%40workspace%3A." + dependencies: + "@polkadot/api": "npm:15.8.1" + "@polkadot/api-augment": "npm:15.8.1" + "@polkadot/types": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/types-create": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + "@polkadot/util-crypto": "npm:^13.4.3" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/019eb69f965ef04b522a9825faa03c4e64985f209e7765fbdf787d51b2755c7dcecac2b739d5a55156d30490f6f68958102192fb2ab94536c2df9a6662930a3c + languageName: node + linkType: hard + "@polkadot/api@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/api@npm:15.8.1" @@ -3842,7 +3859,8 @@ __metadata: "@heroicons/react": "npm:^1.0.6" "@istanbuljs/nyc-config-typescript": "npm:^1.0.2" "@polkadot/api": "npm:15.8.1" - "@polkadot/api-contract": "file:./.api-contract/build" + "@polkadot/api-contract": "npm:15.8.1" + "@polkadot/api-revive": "file:./.api-revive/build" "@polkadot/extension-dapp": "npm:^0.58.6" "@polkadot/types": "npm:15.8.1" "@polkadot/ui-keyring": "npm:^3.12.2" From 66473ed8d655ca40b2af87af39575b5e18d673fb Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Thu, 22 May 2025 15:58:52 +0200 Subject: [PATCH 14/32] chore: ink-node or substrate-contracts-node depending on version --- src/ui/components/common/ConnectionError.tsx | 19 +++++++++++-------- src/ui/layout/sidebar/VersionSelect.tsx | 2 +- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/ui/components/common/ConnectionError.tsx b/src/ui/components/common/ConnectionError.tsx index 38e871d0..aaa4e51b 100644 --- a/src/ui/components/common/ConnectionError.tsx +++ b/src/ui/components/common/ConnectionError.tsx @@ -4,27 +4,30 @@ import { useNavigate } from 'react-router-dom'; import { Error } from './Error'; import { useApi } from 'ui/contexts'; +import { useVersion } from 'ui/contexts'; import { ROCOCO_CONTRACTS, LOCAL } from 'src/constants'; function ContractsNodeHelp() { const navigate = useNavigate(); + const { version } = useVersion(); + const nodeName = version === 'v6' ? 'ink-node' : 'substrate-contracts-node'; + const repoUrl = + version === 'v6' + ? 'https://github.com/use-ink/ink-node' + : 'https://github.com/use-ink/substrate-contracts-node'; + // TODO: Change default chain depending on the version return ( <>
diff --git a/src/ui/layout/sidebar/VersionSelect.tsx b/src/ui/layout/sidebar/VersionSelect.tsx index d0e07905..a6135128 100644 --- a/src/ui/layout/sidebar/VersionSelect.tsx +++ b/src/ui/layout/sidebar/VersionSelect.tsx @@ -10,7 +10,7 @@ export function VersionSelect() { }, { label: 'ink! v5', - value: 'v', + value: 'v5', }, ]; return ( From 8ae5daaa43477c7a16958b04746f74367d2f71dc Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Mon, 26 May 2025 09:33:03 +0200 Subject: [PATCH 15/32] chore: update api-contracts --- {.api-revive => .api-contract}/README.md | 2 +- .../build-deno/Abi/index.ts | 0 .../build-deno/Abi/toLatestCompatible.ts | 0 .../build-deno/Abi/toV1.ts | 0 .../build-deno/Abi/toV2.ts | 0 .../build-deno/Abi/toV3.ts | 0 .../build-deno/Abi/toV4.ts | 0 .../build-deno/README.md | 2 +- .../build-deno/augment.ts | 0 .api-contract/build-deno/base/Base.ts | 49 +++ .../build-deno/base/BaseRevive.ts | 2 +- .../build-deno/base/Blueprint.ts | 25 +- .../build-deno/base/BlueprintRevive.ts | 103 +++++ .api-contract/build-deno/base/Code.ts | 155 +++++++ .../build-deno/base/CodeRevive.ts | 31 +- .../build-deno/base/Contract.ts | 9 +- .../build-deno/base/ContractRevive.ts | 264 ++++++++++++ .../build-deno/base/index.ts | 3 + .../build-deno/base/mock.ts | 0 .../build-deno/base/types.ts | 0 .../build-deno/base/util.ts | 0 .../build-deno/bundle.ts | 0 .../build-deno/checkTypes.manual.ts | 5 +- .../build-deno/index.ts | 0 .../build-deno/mod.ts | 0 .../build-deno/packageDetect.ts | 0 .../build-deno/packageInfo.ts | 2 +- .api-contract/build-deno/promise/index.ts | 80 ++++ .../build-deno/promise/types.ts | 0 .../build-deno/rx/index.ts | 0 .../build-deno/rx/types.ts | 0 .../build-deno/test/contracts/index.ts | 0 .../build-deno/test/contracts/ink/index.ts | 0 .../test/contracts/ink/v0/accumulator.wasm | Bin .../test/contracts/ink/v0/adder.wasm | Bin .../test/contracts/ink/v0/delegator.wasm | Bin .../build-deno/test/contracts/ink/v0/dns.wasm | Bin .../test/contracts/ink/v0/erc20.wasm | Bin .../test/contracts/ink/v0/erc721.wasm | Bin .../test/contracts/ink/v0/flipper.wasm | Bin .../test/contracts/ink/v0/incrementer.wasm | Bin .../build-deno/test/contracts/ink/v0/index.ts | 0 .../test/contracts/ink/v0/multisig_plain.wasm | Bin .../test/contracts/ink/v0/subber.wasm | Bin .../test/contracts/ink/v0/trait-flipper.wasm | Bin .../build-deno/test/contracts/ink/v1/index.ts | 0 .../build-deno/test/contracts/ink/v2/index.ts | 0 .../build-deno/test/contracts/ink/v3/index.ts | 0 .../test/contracts/ink/v4/erc20.wasm | Bin .../test/contracts/ink/v4/flipper.wasm | Bin .../build-deno/test/contracts/ink/v4/index.ts | 0 .../test/contracts/ink/v5/erc20.wasm | Bin .../test/contracts/ink/v5/flipper.wasm | Bin .../build-deno/test/contracts/ink/v5/index.ts | 0 .../build-deno/test/contracts/solang/index.ts | 0 .../test/contracts/solang/v0/index.ts | 0 .../test/contracts/solang/v0/ints256.sol | 0 .../test/contracts/solang/v0/ints256.wasm | Bin .../build-deno/test/contracts/user/index.ts | 0 .../test/contracts/user/v0/assetTransfer.wasm | Bin .../test/contracts/user/v0/enumExample.wasm | Bin .../test/contracts/user/v0/index.ts | 0 .../test/contracts/user/v3/index.ts | 0 .../test/contracts/user/v4/index.ts | 0 .../build-deno/test/contracts/util.ts | 0 .../build-deno/types.ts | 0 .../build-deno/util.ts | 0 .../build-tsc-cjs/Abi/index.js | 0 .../build-tsc-cjs/Abi/toLatestCompatible.js | 0 .../build-tsc-cjs/Abi/toV1.js | 0 .../build-tsc-cjs/Abi/toV2.js | 0 .../build-tsc-cjs/Abi/toV3.js | 0 .../build-tsc-cjs/Abi/toV4.js | 0 .../build-tsc-cjs/augment.js | 0 .api-contract/build-tsc-cjs/base/Base.js | 41 ++ .../build-tsc-cjs/base/BaseRevive.js | 6 +- .api-contract/build-tsc-cjs/base/Blueprint.js | 84 ++++ .../build-tsc-cjs/base/BlueprintRevive.js | 22 +- .api-contract/build-tsc-cjs/base/Code.js | 108 +++++ .../build-tsc-cjs/base/CodeRevive.js | 24 +- .../build-tsc-cjs}/base/Contract.js | 4 +- .../build-tsc-cjs/base/ContractRevive.js | 164 ++++++++ .../build-tsc-cjs}/base/index.js | 26 +- .../build-tsc-cjs/base/mock.js | 0 .../build-tsc-cjs/base/types.js | 0 .../build-tsc-cjs/base/util.js | 0 .../build-tsc-cjs/bundle.js | 0 .../build-tsc-cjs/index.js | 0 .../build-tsc-cjs/packageDetect.js | 0 .../build-tsc-cjs/packageInfo.js | 2 +- .api-contract/build-tsc-cjs/promise/index.js | 47 +++ .../build-tsc-cjs/promise/types.js | 0 .../build-tsc-cjs/rx/index.js | 0 .../build-tsc-cjs/rx/types.js | 0 .../build-tsc-cjs/types.js | 0 .../build-tsc-cjs/util.js | 0 .../build-tsc-esm/Abi/index.js | 0 .../build-tsc-esm/Abi/toLatestCompatible.js | 0 .../build-tsc-esm/Abi/toV1.js | 0 .../build-tsc-esm/Abi/toV2.js | 0 .../build-tsc-esm/Abi/toV3.js | 0 .../build-tsc-esm/Abi/toV4.js | 0 .../build-tsc-esm/augment.js | 0 .api-contract/build-tsc-esm/base/Base.js | 34 ++ .../build-tsc-esm/base/BaseRevive.js | 2 +- .api-contract/build-tsc-esm/base/Blueprint.js | 71 ++++ .../build-tsc-esm/base/BlueprintRevive.js | 15 +- .api-contract/build-tsc-esm/base/Code.js | 88 ++++ .../build-tsc-esm/base/CodeRevive.js | 25 +- .../build-tsc-esm/base/Contract.js | 4 +- .../build-tsc-esm/base/ContractRevive.js | 154 +++++++ .../build-tsc-esm}/base/index.js | 3 + .../build-tsc-esm/base/mock.js | 0 .../build-tsc-esm/base/types.js | 0 .../build-tsc-esm/base/util.js | 0 .../build-tsc-esm/bundle.js | 0 .../build-tsc-esm/index.js | 0 .../build-tsc-esm/packageDetect.js | 0 .../build-tsc-esm/packageInfo.js | 2 +- .api-contract/build-tsc-esm/promise/index.js | 39 ++ .../build-tsc-esm/promise/types.js | 0 .../build-tsc-esm/rx/index.js | 0 .../build-tsc-esm/rx/types.js | 0 .../build-tsc-esm/types.js | 0 .../build-tsc-esm/util.js | 0 .../build-tsc/Abi/index.d.ts | 0 .../build-tsc/Abi/toLatestCompatible.d.ts | 0 .../build-tsc/Abi/toV1.d.ts | 0 .../build-tsc/Abi/toV2.d.ts | 0 .../build-tsc/Abi/toV3.d.ts | 0 .../build-tsc/Abi/toV4.d.ts | 0 .../build-tsc/augment.d.ts | 0 .../build-tsc/base/Base.d.ts | 0 .api-contract/build-tsc/base/BaseRevive.d.ts | 16 + .../build-tsc/base/Blueprint.d.ts | 0 .../build-tsc/base/BlueprintRevive.d.ts | 29 ++ .../build-tsc/base/Code.d.ts | 0 .api-contract/build-tsc/base/CodeRevive.d.ts | 40 ++ .../build-tsc/base/Contract.d.ts | 6 +- .../build-tsc/base/ContractRevive.d.ts | 37 ++ .../build-tsc}/base/index.d.ts | 3 + .../build-tsc/base/mock.d.ts | 0 .../build-tsc/base/types.d.ts | 0 .../build-tsc/base/util.d.ts | 0 .../build-tsc/bundle.d.ts | 0 .../build-tsc/index.d.ts | 0 .../build-tsc/packageDetect.d.ts | 0 .../build-tsc/packageInfo.d.ts | 0 .api-contract/build-tsc/promise/index.d.ts | 53 +++ .../build-tsc/promise/types.d.ts | 0 .../build-tsc/rx/index.d.ts | 0 .../build-tsc/rx/types.d.ts | 0 .../build-tsc/types.d.ts | 0 .../build-tsc/util.d.ts | 0 .../build/Abi/index.d.ts | 0 .../build/Abi/index.js | 0 .../build/Abi/toLatestCompatible.d.ts | 0 .../build/Abi/toLatestCompatible.js | 0 .../build/Abi/toV1.d.ts | 0 .../build/Abi/toV1.js | 0 .../build/Abi/toV2.d.ts | 0 .../build/Abi/toV2.js | 0 .../build/Abi/toV3.d.ts | 0 .../build/Abi/toV3.js | 0 .../build/Abi/toV4.d.ts | 0 .../build/Abi/toV4.js | 0 {.api-revive => .api-contract}/build/LICENSE | 0 .../build/README.md | 2 +- .../build/augment.d.ts | 0 .../build/augment.js | 0 .../build/base/Base.d.ts | 0 .api-contract/build/base/Base.js | 34 ++ .api-contract/build/base/BaseRevive.d.ts | 16 + .../build/base/BaseRevive.js | 2 +- .../build/base/Blueprint.d.ts | 0 .api-contract/build/base/Blueprint.js | 71 ++++ .api-contract/build/base/BlueprintRevive.d.ts | 29 ++ .../build/base/BlueprintRevive.js | 15 +- .../build/base/Code.d.ts | 0 .api-contract/build/base/Code.js | 88 ++++ .api-contract/build/base/CodeRevive.d.ts | 40 ++ .../build/base/CodeRevive.js | 25 +- .../build/base/Contract.d.ts | 6 +- .../build/base/Contract.js | 4 +- .api-contract/build/base/ContractRevive.d.ts | 37 ++ .api-contract/build/base/ContractRevive.js | 154 +++++++ .../build}/base/index.d.ts | 3 + .../build}/base/index.js | 3 + .../build/base/mock.d.ts | 0 .../build/base/mock.js | 0 .../build/base/types.d.ts | 0 .../build/base/types.js | 0 .../build/base/util.d.ts | 0 .../build/base/util.js | 0 .../build/bundle-polkadot-api-contract.js | 383 ++++++++++++++++-- .../build/bundle.d.ts | 0 .../build/bundle.js | 0 .../build/cjs/Abi/index.d.ts | 0 .../build/cjs/Abi/index.js | 0 .../build/cjs/Abi/toLatestCompatible.d.ts | 0 .../build/cjs/Abi/toLatestCompatible.js | 0 .../build/cjs/Abi/toV1.d.ts | 0 .../build/cjs/Abi/toV1.js | 0 .../build/cjs/Abi/toV2.d.ts | 0 .../build/cjs/Abi/toV2.js | 0 .../build/cjs/Abi/toV3.d.ts | 0 .../build/cjs/Abi/toV3.js | 0 .../build/cjs/Abi/toV4.d.ts | 0 .../build/cjs/Abi/toV4.js | 0 .../build/cjs/augment.d.ts | 0 .../build/cjs/augment.js | 0 .../build/cjs/base/Base.d.ts | 0 .api-contract/build/cjs/base/Base.js | 41 ++ .api-contract/build/cjs/base/BaseRevive.d.ts | 16 + .../build/cjs/base/BaseRevive.js | 6 +- .../build/cjs/base/Blueprint.d.ts | 0 .api-contract/build/cjs/base/Blueprint.js | 84 ++++ .../build/cjs/base/BlueprintRevive.d.ts | 29 ++ .../build/cjs/base/BlueprintRevive.js | 22 +- .../build/cjs/base/Code.d.ts | 0 .api-contract/build/cjs/base/Code.js | 108 +++++ .api-contract/build/cjs/base/CodeRevive.d.ts | 40 ++ .../build/cjs/base/CodeRevive.js | 24 +- .../build/cjs/base/Contract.d.ts | 6 +- .../build/cjs}/base/Contract.js | 4 +- .../build/cjs/base/ContractRevive.d.ts | 37 ++ .../build/cjs/base/ContractRevive.js | 164 ++++++++ .../build/cjs}/base/index.d.ts | 3 + .../build/cjs}/base/index.js | 26 +- .../build/cjs/base/mock.d.ts | 0 .../build/cjs/base/mock.js | 0 .../build/cjs/base/types.d.ts | 0 .../build/cjs/base/types.js | 0 .../build/cjs/base/util.d.ts | 0 .../build/cjs/base/util.js | 0 .../build/cjs/bundle.d.ts | 0 .../build/cjs/bundle.js | 0 .../build/cjs/index.d.ts | 0 .../build/cjs/index.js | 0 .../build/cjs/package.json | 0 .../build/cjs/packageDetect.d.ts | 0 .../build/cjs/packageDetect.js | 0 .../build/cjs/packageInfo.d.ts | 0 .../build/cjs/packageInfo.js | 2 +- .api-contract/build/cjs/promise/index.d.ts | 53 +++ .api-contract/build/cjs/promise/index.js | 47 +++ .../build/cjs/promise/types.d.ts | 0 .../build/cjs/promise/types.js | 0 .../build/cjs/rx/index.d.ts | 0 .../build/cjs/rx/index.js | 0 .../build/cjs/rx/types.d.ts | 0 .../build/cjs/rx/types.js | 0 .../build/cjs/types.d.ts | 0 .../build/cjs/types.js | 0 .../build/cjs/util.d.ts | 0 .../build/cjs/util.js | 0 .../build/index.d.ts | 0 {.api-revive => .api-contract}/build/index.js | 0 .../build/package.json | 62 ++- .../build/packageDetect.d.ts | 0 .../build/packageDetect.js | 0 .../build/packageInfo.d.ts | 0 .../build/packageInfo.js | 2 +- .api-contract/build/promise/index.d.ts | 53 +++ .api-contract/build/promise/index.js | 39 ++ .../build/promise/types.d.ts | 0 .../build/promise/types.js | 0 .../build/rx/index.d.ts | 0 .../build/rx/index.js | 0 .../build/rx/types.d.ts | 0 .../build/rx/types.js | 0 .../build/types.d.ts | 0 {.api-revive => .api-contract}/build/types.js | 0 .../build/util.d.ts | 0 {.api-revive => .api-contract}/build/util.js | 0 {.api-revive => .api-contract}/package.json | 6 +- .../src/Abi/Abi.spec.ts | 2 +- .../src/Abi/index.ts | 2 +- .../src/Abi/toLatestCompatible.spec.ts | 2 +- .../src/Abi/toLatestCompatible.ts | 2 +- .../src/Abi/toV1.ts | 2 +- .../src/Abi/toV2.ts | 2 +- .../src/Abi/toV3.ts | 2 +- .../src/Abi/toV4.ts | 2 +- {.api-revive => .api-contract}/src/augment.ts | 2 +- .api-contract/src/base/Base.ts | 52 +++ .../src/base/BaseRevive.ts | 2 +- .../src/base/Blueprint.ts | 24 +- .api-contract/src/base/BlueprintRevive.ts | 106 +++++ .../src/base/Code.spec.ts | 2 +- .../src/base/Code.ts | 61 +-- .api-contract/src/base/CodeRevive.ts | 132 ++++++ .../src/base/Contract.ts | 11 +- .api-contract/src/base/ContractRevive.ts | 261 ++++++++++++ .../src/base/index.ts | 3 + .../src/base/mock.ts | 2 +- .../src/base/types.ts | 2 +- .../src/base/util.ts | 2 +- {.api-revive => .api-contract}/src/bundle.ts | 2 +- .../src/checkTypes.manual.ts | 4 +- {.api-revive => .api-contract}/src/index.ts | 2 +- .api-contract/src/mod.ts | 4 + .../src/packageDetect.ts | 2 +- .../src/packageInfo.ts | 4 +- .api-contract/src/promise/index.ts | 77 ++++ .../rx => .api-contract/src/promise}/types.ts | 2 +- .../src/rx/index.ts | 2 +- .../promise => .api-contract/src/rx}/types.ts | 2 +- .../test/compare/ink_v0_delegator.test.json | 0 .../src/test/compare/ink_v0_dns.test.json | 0 .../src/test/compare/ink_v0_erc20.test.json | 0 .../src/test/compare/ink_v0_erc721.test.json | 0 .../src/test/compare/ink_v0_flipper.test.json | 0 .../compare/ink_v0_flipperBundle.test.json | 0 .../test/compare/ink_v0_incrementer.test.json | 0 .../compare/ink_v0_multisigPlain.test.json | 0 .../src/test/compare/ink_v1_flipper.test.json | 0 .../src/test/compare/ink_v1_psp22.test.json | 0 .../src/test/compare/ink_v2_erc20.test.json | 0 .../src/test/compare/ink_v2_flipper.test.json | 0 .../src/test/compare/ink_v3_flipper.test.json | 0 .../test/compare/ink_v3_traitErc20.test.json | 0 .../compare/ink_v4_erc20Contract.test.json | 0 .../compare/ink_v4_erc20Metadata.test.json | 0 .../compare/ink_v4_flipperContract.test.json | 0 .../compare/ink_v4_flipperMetadata.test.json | 0 .../src/test/compare/ink_v5_erc20.test.json | 0 ...5_erc20AnonymousTransferMetadata.test.json | 0 .../compare/ink_v5_erc20Contract.test.json | 0 .../compare/ink_v5_erc20Metadata.test.json | 0 .../compare/ink_v5_flipperContract.test.json | 0 .../compare/ink_v5_flipperMetadata.test.json | 0 .../test/compare/solang_v0_ints256.test.json | 0 .../compare/user_v0_assetTransfer.test.json | 0 .../compare/user_v0_enumExample.test.json | 0 .../test/compare/user_v0_recursive.test.json | 0 .../test/compare/user_v0_withString.test.json | 0 .../src/test/compare/user_v3_ask.test.json | 0 .../src/test/compare/user_v4_events.test.json | 0 .../src/test/contracts/index.ts | 2 +- .../src/test/contracts/ink/index.ts | 2 +- .../test/contracts/ink/v0/accumulator.wasm | Bin .../src/test/contracts/ink/v0/adder.wasm | Bin .../src/test/contracts/ink/v0/delegator.json | 0 .../src/test/contracts/ink/v0/delegator.wasm | Bin .../src/test/contracts/ink/v0/dns.json | 0 .../src/test/contracts/ink/v0/dns.wasm | Bin .../src/test/contracts/ink/v0/erc20.json | 0 .../src/test/contracts/ink/v0/erc20.wasm | Bin .../src/test/contracts/ink/v0/erc721.json | 0 .../src/test/contracts/ink/v0/erc721.wasm | Bin .../contracts/ink/v0/flipper.contract.json | 0 .../src/test/contracts/ink/v0/flipper.json | 0 .../src/test/contracts/ink/v0/flipper.wasm | Bin .../test/contracts/ink/v0/incrementer.json | 0 .../test/contracts/ink/v0/incrementer.wasm | Bin .../src/test/contracts/ink/v0/index.ts | 2 +- .../test/contracts/ink/v0/multisig_plain.json | 0 .../test/contracts/ink/v0/multisig_plain.wasm | Bin .../src/test/contracts/ink/v0/subber.wasm | Bin .../test/contracts/ink/v0/trait-flipper.json | 0 .../test/contracts/ink/v0/trait-flipper.wasm | Bin .../contracts/ink/v1/flipper.contract.json | 0 .../src/test/contracts/ink/v1/index.ts | 2 +- .../ink/v1/psp22_minter_pauser.contract.json | 0 .../test/contracts/ink/v2/erc20.contract.json | 0 .../contracts/ink/v2/flipper.contract.json | 0 .../src/test/contracts/ink/v2/index.ts | 2 +- .../contracts/ink/v3/flipper.contract.json | 0 .../src/test/contracts/ink/v3/index.ts | 2 +- .../ink/v3/trait_erc20.contract.json | 0 .../test/contracts/ink/v4/erc20.contract.json | 0 .../src/test/contracts/ink/v4/erc20.json | 0 .../src/test/contracts/ink/v4/erc20.wasm | Bin .../contracts/ink/v4/flipper.contract.json | 0 .../src/test/contracts/ink/v4/flipper.json | 0 .../src/test/contracts/ink/v4/flipper.wasm | Bin .../src/test/contracts/ink/v4/index.ts | 2 +- .../test/contracts/ink/v5/erc20.contract.json | 0 .../src/test/contracts/ink/v5/erc20.json | 0 .../src/test/contracts/ink/v5/erc20.wasm | Bin .../ink/v5/erc20_anonymous_transfer.json | 0 .../contracts/ink/v5/flipper.contract.json | 0 .../src/test/contracts/ink/v5/flipper.json | 0 .../src/test/contracts/ink/v5/flipper.wasm | Bin .../src/test/contracts/ink/v5/index.ts | 2 +- .../src/test/contracts/solang/index.ts | 2 +- .../src/test/contracts/solang/v0/index.ts | 2 +- .../src/test/contracts/solang/v0/ints256.json | 0 .../src/test/contracts/solang/v0/ints256.sol | 0 .../src/test/contracts/solang/v0/ints256.wasm | Bin .../src/test/contracts/user/index.ts | 2 +- .../test/contracts/user/v0/assetTransfer.json | 0 .../test/contracts/user/v0/assetTransfer.wasm | Bin .../test/contracts/user/v0/enumExample.json | 0 .../test/contracts/user/v0/enumExample.wasm | Bin .../src/test/contracts/user/v0/index.ts | 2 +- .../contracts/user/v0/recursive.contract.json | 0 .../test/contracts/user/v0/withString.json | 0 .../src/test/contracts/user/v3/ask.json | 0 .../src/test/contracts/user/v3/index.ts | 2 +- .../contracts/user/v4/events.contract.json | 0 .../src/test/contracts/user/v4/index.ts | 2 +- .../src/test/contracts/util.ts | 2 +- {.api-revive => .api-contract}/src/types.ts | 2 +- {.api-revive => .api-contract}/src/util.ts | 2 +- .../tsconfig.build.json | 0 .../tsconfig.spec.json | 2 +- .api-revive/build-deno/promise/index.ts | 39 -- .api-revive/build-tsc-cjs/promise/index.js | 23 -- .api-revive/build-tsc-esm/promise/index.js | 17 - .api-revive/build-tsc/promise/index.d.ts | 25 -- .api-revive/build/cjs/promise/index.d.ts | 25 -- .api-revive/build/cjs/promise/index.js | 23 -- .api-revive/build/promise/index.d.ts | 25 -- .api-revive/build/promise/index.js | 17 - .api-revive/src/mod.ts | 4 - .api-revive/src/promise/index.ts | 40 -- package.json | 3 +- src/ui/layout/sidebar/index.tsx | 1 - yarn.lock | 26 +- 421 files changed, 4181 insertions(+), 569 deletions(-) rename {.api-revive => .api-contract}/README.md (75%) rename {.api-revive => .api-contract}/build-deno/Abi/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/Abi/toLatestCompatible.ts (100%) rename {.api-revive => .api-contract}/build-deno/Abi/toV1.ts (100%) rename {.api-revive => .api-contract}/build-deno/Abi/toV2.ts (100%) rename {.api-revive => .api-contract}/build-deno/Abi/toV3.ts (100%) rename {.api-revive => .api-contract}/build-deno/Abi/toV4.ts (100%) rename {.api-revive => .api-contract}/build-deno/README.md (75%) rename {.api-revive => .api-contract}/build-deno/augment.ts (100%) create mode 100644 .api-contract/build-deno/base/Base.ts rename .api-revive/build-deno/base/Base.ts => .api-contract/build-deno/base/BaseRevive.ts (96%) rename {.api-revive => .api-contract}/build-deno/base/Blueprint.ts (88%) create mode 100644 .api-contract/build-deno/base/BlueprintRevive.ts create mode 100644 .api-contract/build-deno/base/Code.ts rename .api-revive/build-deno/base/Code.ts => .api-contract/build-deno/base/CodeRevive.ts (82%) rename {.api-revive => .api-contract}/build-deno/base/Contract.ts (97%) create mode 100644 .api-contract/build-deno/base/ContractRevive.ts rename {.api-revive => .api-contract}/build-deno/base/index.ts (58%) rename {.api-revive => .api-contract}/build-deno/base/mock.ts (100%) rename {.api-revive => .api-contract}/build-deno/base/types.ts (100%) rename {.api-revive => .api-contract}/build-deno/base/util.ts (100%) rename {.api-revive => .api-contract}/build-deno/bundle.ts (100%) rename {.api-revive => .api-contract}/build-deno/checkTypes.manual.ts (93%) rename {.api-revive => .api-contract}/build-deno/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/mod.ts (100%) rename {.api-revive => .api-contract}/build-deno/packageDetect.ts (100%) rename {.api-revive => .api-contract}/build-deno/packageInfo.ts (76%) create mode 100644 .api-contract/build-deno/promise/index.ts rename {.api-revive => .api-contract}/build-deno/promise/types.ts (100%) rename {.api-revive => .api-contract}/build-deno/rx/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/rx/types.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/accumulator.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/adder.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/delegator.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/dns.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/erc20.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/erc721.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/flipper.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/incrementer.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/multisig_plain.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/subber.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v0/trait-flipper.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v1/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v2/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v3/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v4/erc20.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v4/flipper.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v4/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v5/erc20.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v5/flipper.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/ink/v5/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/solang/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/solang/v0/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/solang/v0/ints256.sol (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/solang/v0/ints256.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/user/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/user/v0/assetTransfer.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/user/v0/enumExample.wasm (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/user/v0/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/user/v3/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/user/v4/index.ts (100%) rename {.api-revive => .api-contract}/build-deno/test/contracts/util.ts (100%) rename {.api-revive => .api-contract}/build-deno/types.ts (100%) rename {.api-revive => .api-contract}/build-deno/util.ts (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/Abi/index.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/Abi/toLatestCompatible.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/Abi/toV1.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/Abi/toV2.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/Abi/toV3.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/Abi/toV4.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/augment.js (100%) create mode 100644 .api-contract/build-tsc-cjs/base/Base.js rename .api-revive/build/cjs/base/Base.js => .api-contract/build-tsc-cjs/base/BaseRevive.js (94%) create mode 100644 .api-contract/build-tsc-cjs/base/Blueprint.js rename .api-revive/build/cjs/base/Blueprint.js => .api-contract/build-tsc-cjs/base/BlueprintRevive.js (80%) create mode 100644 .api-contract/build-tsc-cjs/base/Code.js rename .api-revive/build-tsc-cjs/base/Code.js => .api-contract/build-tsc-cjs/base/CodeRevive.js (80%) rename {.api-revive/build/cjs => .api-contract/build-tsc-cjs}/base/Contract.js (98%) create mode 100644 .api-contract/build-tsc-cjs/base/ContractRevive.js rename {.api-revive/build/cjs => .api-contract/build-tsc-cjs}/base/index.js (68%) rename {.api-revive => .api-contract}/build-tsc-cjs/base/mock.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/base/types.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/base/util.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/bundle.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/index.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/packageDetect.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/packageInfo.js (87%) create mode 100644 .api-contract/build-tsc-cjs/promise/index.js rename {.api-revive => .api-contract}/build-tsc-cjs/promise/types.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/rx/index.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/rx/types.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/types.js (100%) rename {.api-revive => .api-contract}/build-tsc-cjs/util.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/Abi/index.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/Abi/toLatestCompatible.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/Abi/toV1.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/Abi/toV2.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/Abi/toV3.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/Abi/toV4.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/augment.js (100%) create mode 100644 .api-contract/build-tsc-esm/base/Base.js rename .api-revive/build-tsc-esm/base/Base.js => .api-contract/build-tsc-esm/base/BaseRevive.js (97%) create mode 100644 .api-contract/build-tsc-esm/base/Blueprint.js rename .api-revive/build-tsc-esm/base/Blueprint.js => .api-contract/build-tsc-esm/base/BlueprintRevive.js (86%) create mode 100644 .api-contract/build-tsc-esm/base/Code.js rename .api-revive/build/base/Code.js => .api-contract/build-tsc-esm/base/CodeRevive.js (77%) rename {.api-revive => .api-contract}/build-tsc-esm/base/Contract.js (98%) create mode 100644 .api-contract/build-tsc-esm/base/ContractRevive.js rename {.api-revive/build => .api-contract/build-tsc-esm}/base/index.js (58%) rename {.api-revive => .api-contract}/build-tsc-esm/base/mock.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/base/types.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/base/util.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/bundle.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/index.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/packageDetect.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/packageInfo.js (88%) create mode 100644 .api-contract/build-tsc-esm/promise/index.js rename {.api-revive => .api-contract}/build-tsc-esm/promise/types.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/rx/index.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/rx/types.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/types.js (100%) rename {.api-revive => .api-contract}/build-tsc-esm/util.js (100%) rename {.api-revive => .api-contract}/build-tsc/Abi/index.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/Abi/toLatestCompatible.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/Abi/toV1.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/Abi/toV2.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/Abi/toV3.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/Abi/toV4.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/augment.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/base/Base.d.ts (100%) create mode 100644 .api-contract/build-tsc/base/BaseRevive.d.ts rename {.api-revive => .api-contract}/build-tsc/base/Blueprint.d.ts (100%) create mode 100644 .api-contract/build-tsc/base/BlueprintRevive.d.ts rename {.api-revive => .api-contract}/build-tsc/base/Code.d.ts (100%) create mode 100644 .api-contract/build-tsc/base/CodeRevive.d.ts rename {.api-revive => .api-contract}/build-tsc/base/Contract.d.ts (90%) create mode 100644 .api-contract/build-tsc/base/ContractRevive.d.ts rename {.api-revive/build/cjs => .api-contract/build-tsc}/base/index.d.ts (58%) rename {.api-revive => .api-contract}/build-tsc/base/mock.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/base/types.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/base/util.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/bundle.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/index.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/packageDetect.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/packageInfo.d.ts (100%) create mode 100644 .api-contract/build-tsc/promise/index.d.ts rename {.api-revive => .api-contract}/build-tsc/promise/types.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/rx/index.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/rx/types.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/types.d.ts (100%) rename {.api-revive => .api-contract}/build-tsc/util.d.ts (100%) rename {.api-revive => .api-contract}/build/Abi/index.d.ts (100%) rename {.api-revive => .api-contract}/build/Abi/index.js (100%) rename {.api-revive => .api-contract}/build/Abi/toLatestCompatible.d.ts (100%) rename {.api-revive => .api-contract}/build/Abi/toLatestCompatible.js (100%) rename {.api-revive => .api-contract}/build/Abi/toV1.d.ts (100%) rename {.api-revive => .api-contract}/build/Abi/toV1.js (100%) rename {.api-revive => .api-contract}/build/Abi/toV2.d.ts (100%) rename {.api-revive => .api-contract}/build/Abi/toV2.js (100%) rename {.api-revive => .api-contract}/build/Abi/toV3.d.ts (100%) rename {.api-revive => .api-contract}/build/Abi/toV3.js (100%) rename {.api-revive => .api-contract}/build/Abi/toV4.d.ts (100%) rename {.api-revive => .api-contract}/build/Abi/toV4.js (100%) rename {.api-revive => .api-contract}/build/LICENSE (100%) rename {.api-revive => .api-contract}/build/README.md (75%) rename {.api-revive => .api-contract}/build/augment.d.ts (100%) rename {.api-revive => .api-contract}/build/augment.js (100%) rename {.api-revive => .api-contract}/build/base/Base.d.ts (100%) create mode 100644 .api-contract/build/base/Base.js create mode 100644 .api-contract/build/base/BaseRevive.d.ts rename .api-revive/build/base/Base.js => .api-contract/build/base/BaseRevive.js (97%) rename {.api-revive => .api-contract}/build/base/Blueprint.d.ts (100%) create mode 100644 .api-contract/build/base/Blueprint.js create mode 100644 .api-contract/build/base/BlueprintRevive.d.ts rename .api-revive/build/base/Blueprint.js => .api-contract/build/base/BlueprintRevive.js (86%) rename {.api-revive => .api-contract}/build/base/Code.d.ts (100%) create mode 100644 .api-contract/build/base/Code.js create mode 100644 .api-contract/build/base/CodeRevive.d.ts rename .api-revive/build-tsc-esm/base/Code.js => .api-contract/build/base/CodeRevive.js (77%) rename {.api-revive => .api-contract}/build/base/Contract.d.ts (90%) rename {.api-revive => .api-contract}/build/base/Contract.js (98%) create mode 100644 .api-contract/build/base/ContractRevive.d.ts create mode 100644 .api-contract/build/base/ContractRevive.js rename {.api-revive/build-tsc => .api-contract/build}/base/index.d.ts (58%) rename {.api-revive/build-tsc-esm => .api-contract/build}/base/index.js (58%) rename {.api-revive => .api-contract}/build/base/mock.d.ts (100%) rename {.api-revive => .api-contract}/build/base/mock.js (100%) rename {.api-revive => .api-contract}/build/base/types.d.ts (100%) rename {.api-revive => .api-contract}/build/base/types.js (100%) rename {.api-revive => .api-contract}/build/base/util.d.ts (100%) rename {.api-revive => .api-contract}/build/base/util.js (100%) rename {.api-revive => .api-contract}/build/bundle-polkadot-api-contract.js (81%) rename {.api-revive => .api-contract}/build/bundle.d.ts (100%) rename {.api-revive => .api-contract}/build/bundle.js (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/index.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/index.js (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/toLatestCompatible.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/toLatestCompatible.js (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/toV1.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/toV1.js (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/toV2.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/toV2.js (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/toV3.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/toV3.js (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/toV4.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/Abi/toV4.js (100%) rename {.api-revive => .api-contract}/build/cjs/augment.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/augment.js (100%) rename {.api-revive => .api-contract}/build/cjs/base/Base.d.ts (100%) create mode 100644 .api-contract/build/cjs/base/Base.js create mode 100644 .api-contract/build/cjs/base/BaseRevive.d.ts rename .api-revive/build-tsc-cjs/base/Base.js => .api-contract/build/cjs/base/BaseRevive.js (94%) rename {.api-revive => .api-contract}/build/cjs/base/Blueprint.d.ts (100%) create mode 100644 .api-contract/build/cjs/base/Blueprint.js create mode 100644 .api-contract/build/cjs/base/BlueprintRevive.d.ts rename .api-revive/build-tsc-cjs/base/Blueprint.js => .api-contract/build/cjs/base/BlueprintRevive.js (80%) rename {.api-revive => .api-contract}/build/cjs/base/Code.d.ts (100%) create mode 100644 .api-contract/build/cjs/base/Code.js create mode 100644 .api-contract/build/cjs/base/CodeRevive.d.ts rename .api-revive/build/cjs/base/Code.js => .api-contract/build/cjs/base/CodeRevive.js (80%) rename {.api-revive => .api-contract}/build/cjs/base/Contract.d.ts (90%) rename {.api-revive/build-tsc-cjs => .api-contract/build/cjs}/base/Contract.js (98%) create mode 100644 .api-contract/build/cjs/base/ContractRevive.d.ts create mode 100644 .api-contract/build/cjs/base/ContractRevive.js rename {.api-revive/build => .api-contract/build/cjs}/base/index.d.ts (58%) rename {.api-revive/build-tsc-cjs => .api-contract/build/cjs}/base/index.js (68%) rename {.api-revive => .api-contract}/build/cjs/base/mock.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/base/mock.js (100%) rename {.api-revive => .api-contract}/build/cjs/base/types.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/base/types.js (100%) rename {.api-revive => .api-contract}/build/cjs/base/util.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/base/util.js (100%) rename {.api-revive => .api-contract}/build/cjs/bundle.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/bundle.js (100%) rename {.api-revive => .api-contract}/build/cjs/index.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/index.js (100%) rename {.api-revive => .api-contract}/build/cjs/package.json (100%) rename {.api-revive => .api-contract}/build/cjs/packageDetect.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/packageDetect.js (100%) rename {.api-revive => .api-contract}/build/cjs/packageInfo.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/packageInfo.js (87%) create mode 100644 .api-contract/build/cjs/promise/index.d.ts create mode 100644 .api-contract/build/cjs/promise/index.js rename {.api-revive => .api-contract}/build/cjs/promise/types.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/promise/types.js (100%) rename {.api-revive => .api-contract}/build/cjs/rx/index.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/rx/index.js (100%) rename {.api-revive => .api-contract}/build/cjs/rx/types.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/rx/types.js (100%) rename {.api-revive => .api-contract}/build/cjs/types.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/types.js (100%) rename {.api-revive => .api-contract}/build/cjs/util.d.ts (100%) rename {.api-revive => .api-contract}/build/cjs/util.js (100%) rename {.api-revive => .api-contract}/build/index.d.ts (100%) rename {.api-revive => .api-contract}/build/index.js (100%) rename {.api-revive => .api-contract}/build/package.json (85%) rename {.api-revive => .api-contract}/build/packageDetect.d.ts (100%) rename {.api-revive => .api-contract}/build/packageDetect.js (100%) rename {.api-revive => .api-contract}/build/packageInfo.d.ts (100%) rename {.api-revive => .api-contract}/build/packageInfo.js (88%) create mode 100644 .api-contract/build/promise/index.d.ts create mode 100644 .api-contract/build/promise/index.js rename {.api-revive => .api-contract}/build/promise/types.d.ts (100%) rename {.api-revive => .api-contract}/build/promise/types.js (100%) rename {.api-revive => .api-contract}/build/rx/index.d.ts (100%) rename {.api-revive => .api-contract}/build/rx/index.js (100%) rename {.api-revive => .api-contract}/build/rx/types.d.ts (100%) rename {.api-revive => .api-contract}/build/rx/types.js (100%) rename {.api-revive => .api-contract}/build/types.d.ts (100%) rename {.api-revive => .api-contract}/build/types.js (100%) rename {.api-revive => .api-contract}/build/util.d.ts (100%) rename {.api-revive => .api-contract}/build/util.js (100%) rename {.api-revive => .api-contract}/package.json (90%) rename {.api-revive => .api-contract}/src/Abi/Abi.spec.ts (99%) rename {.api-revive => .api-contract}/src/Abi/index.ts (99%) rename {.api-revive => .api-contract}/src/Abi/toLatestCompatible.spec.ts (98%) rename {.api-revive => .api-contract}/src/Abi/toLatestCompatible.ts (96%) rename {.api-revive => .api-contract}/src/Abi/toV1.ts (93%) rename {.api-revive => .api-contract}/src/Abi/toV2.ts (96%) rename {.api-revive => .api-contract}/src/Abi/toV3.ts (91%) rename {.api-revive => .api-contract}/src/Abi/toV4.ts (92%) rename {.api-revive => .api-contract}/src/augment.ts (51%) create mode 100644 .api-contract/src/base/Base.ts rename .api-revive/src/base/Base.ts => .api-contract/src/base/BaseRevive.ts (96%) rename {.api-revive => .api-contract}/src/base/Blueprint.ts (87%) create mode 100644 .api-contract/src/base/BlueprintRevive.ts rename {.api-revive => .api-contract}/src/base/Code.spec.ts (95%) rename {.api-revive => .api-contract}/src/base/Code.ts (72%) create mode 100644 .api-contract/src/base/CodeRevive.ts rename {.api-revive => .api-contract}/src/base/Contract.ts (96%) create mode 100644 .api-contract/src/base/ContractRevive.ts rename {.api-revive => .api-contract}/src/base/index.ts (66%) rename {.api-revive => .api-contract}/src/base/mock.ts (89%) rename {.api-revive => .api-contract}/src/base/types.ts (96%) rename {.api-revive => .api-contract}/src/base/util.ts (97%) rename {.api-revive => .api-contract}/src/bundle.ts (76%) rename {.api-revive => .api-contract}/src/checkTypes.manual.ts (95%) rename {.api-revive => .api-contract}/src/index.ts (58%) create mode 100644 .api-contract/src/mod.ts rename {.api-revive => .api-contract}/src/packageDetect.ts (86%) rename {.api-revive => .api-contract}/src/packageInfo.ts (62%) create mode 100644 .api-contract/src/promise/index.ts rename {.api-revive/src/rx => .api-contract/src/promise}/types.ts (83%) rename {.api-revive => .api-contract}/src/rx/index.ts (93%) rename {.api-revive/src/promise => .api-contract/src/rx}/types.ts (83%) rename {.api-revive => .api-contract}/src/test/compare/ink_v0_delegator.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v0_dns.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v0_erc20.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v0_erc721.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v0_flipper.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v0_flipperBundle.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v0_incrementer.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v0_multisigPlain.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v1_flipper.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v1_psp22.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v2_erc20.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v2_flipper.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v3_flipper.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v3_traitErc20.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v4_erc20Contract.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v4_erc20Metadata.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v4_flipperContract.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v4_flipperMetadata.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v5_erc20.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v5_erc20Contract.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v5_erc20Metadata.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v5_flipperContract.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/ink_v5_flipperMetadata.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/solang_v0_ints256.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/user_v0_assetTransfer.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/user_v0_enumExample.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/user_v0_recursive.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/user_v0_withString.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/user_v3_ask.test.json (100%) rename {.api-revive => .api-contract}/src/test/compare/user_v4_events.test.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/index.ts (85%) rename {.api-revive => .api-contract}/src/test/contracts/ink/index.ts (84%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/accumulator.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/adder.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/delegator.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/delegator.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/dns.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/dns.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/erc20.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/erc20.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/erc721.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/erc721.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/flipper.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/flipper.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/flipper.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/incrementer.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/incrementer.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/index.ts (90%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/multisig_plain.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/multisig_plain.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/subber.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/trait-flipper.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v0/trait-flipper.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v1/flipper.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v1/index.ts (79%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v2/erc20.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v2/flipper.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v2/index.ts (75%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v3/flipper.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v3/index.ts (79%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v3/trait_erc20.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v4/erc20.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v4/erc20.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v4/erc20.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v4/flipper.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v4/flipper.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v4/flipper.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v4/index.ts (84%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v5/erc20.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v5/erc20.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v5/erc20.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v5/erc20_anonymous_transfer.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v5/flipper.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v5/flipper.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v5/flipper.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/ink/v5/index.ts (88%) rename {.api-revive => .api-contract}/src/test/contracts/solang/index.ts (71%) rename {.api-revive => .api-contract}/src/test/contracts/solang/v0/index.ts (62%) rename {.api-revive => .api-contract}/src/test/contracts/solang/v0/ints256.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/solang/v0/ints256.sol (100%) rename {.api-revive => .api-contract}/src/test/contracts/solang/v0/ints256.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/user/index.ts (78%) rename {.api-revive => .api-contract}/src/test/contracts/user/v0/assetTransfer.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/user/v0/assetTransfer.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/user/v0/enumExample.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/user/v0/enumExample.wasm (100%) rename {.api-revive => .api-contract}/src/test/contracts/user/v0/index.ts (84%) rename {.api-revive => .api-contract}/src/test/contracts/user/v0/recursive.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/user/v0/withString.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/user/v3/ask.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/user/v3/index.ts (61%) rename {.api-revive => .api-contract}/src/test/contracts/user/v4/events.contract.json (100%) rename {.api-revive => .api-contract}/src/test/contracts/user/v4/index.ts (64%) rename {.api-revive => .api-contract}/src/test/contracts/util.ts (87%) rename {.api-revive => .api-contract}/src/types.ts (97%) rename {.api-revive => .api-contract}/src/util.ts (89%) rename {.api-revive => .api-contract}/tsconfig.build.json (100%) rename {.api-revive => .api-contract}/tsconfig.spec.json (91%) delete mode 100644 .api-revive/build-deno/promise/index.ts delete mode 100644 .api-revive/build-tsc-cjs/promise/index.js delete mode 100644 .api-revive/build-tsc-esm/promise/index.js delete mode 100644 .api-revive/build-tsc/promise/index.d.ts delete mode 100644 .api-revive/build/cjs/promise/index.d.ts delete mode 100644 .api-revive/build/cjs/promise/index.js delete mode 100644 .api-revive/build/promise/index.d.ts delete mode 100644 .api-revive/build/promise/index.js delete mode 100644 .api-revive/src/mod.ts delete mode 100644 .api-revive/src/promise/index.ts diff --git a/.api-revive/README.md b/.api-contract/README.md similarity index 75% rename from .api-revive/README.md rename to .api-contract/README.md index 48d2ef2c..f50beb5f 100644 --- a/.api-revive/README.md +++ b/.api-contract/README.md @@ -1,3 +1,3 @@ -# @polkadot/api-revive +# @polkadot/api-contract Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-revive/build-deno/Abi/index.ts b/.api-contract/build-deno/Abi/index.ts similarity index 100% rename from .api-revive/build-deno/Abi/index.ts rename to .api-contract/build-deno/Abi/index.ts diff --git a/.api-revive/build-deno/Abi/toLatestCompatible.ts b/.api-contract/build-deno/Abi/toLatestCompatible.ts similarity index 100% rename from .api-revive/build-deno/Abi/toLatestCompatible.ts rename to .api-contract/build-deno/Abi/toLatestCompatible.ts diff --git a/.api-revive/build-deno/Abi/toV1.ts b/.api-contract/build-deno/Abi/toV1.ts similarity index 100% rename from .api-revive/build-deno/Abi/toV1.ts rename to .api-contract/build-deno/Abi/toV1.ts diff --git a/.api-revive/build-deno/Abi/toV2.ts b/.api-contract/build-deno/Abi/toV2.ts similarity index 100% rename from .api-revive/build-deno/Abi/toV2.ts rename to .api-contract/build-deno/Abi/toV2.ts diff --git a/.api-revive/build-deno/Abi/toV3.ts b/.api-contract/build-deno/Abi/toV3.ts similarity index 100% rename from .api-revive/build-deno/Abi/toV3.ts rename to .api-contract/build-deno/Abi/toV3.ts diff --git a/.api-revive/build-deno/Abi/toV4.ts b/.api-contract/build-deno/Abi/toV4.ts similarity index 100% rename from .api-revive/build-deno/Abi/toV4.ts rename to .api-contract/build-deno/Abi/toV4.ts diff --git a/.api-revive/build-deno/README.md b/.api-contract/build-deno/README.md similarity index 75% rename from .api-revive/build-deno/README.md rename to .api-contract/build-deno/README.md index 48d2ef2c..f50beb5f 100644 --- a/.api-revive/build-deno/README.md +++ b/.api-contract/build-deno/README.md @@ -1,3 +1,3 @@ -# @polkadot/api-revive +# @polkadot/api-contract Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-revive/build-deno/augment.ts b/.api-contract/build-deno/augment.ts similarity index 100% rename from .api-revive/build-deno/augment.ts rename to .api-contract/build-deno/augment.ts diff --git a/.api-contract/build-deno/base/Base.ts b/.api-contract/build-deno/base/Base.ts new file mode 100644 index 00000000..777cadfb --- /dev/null +++ b/.api-contract/build-deno/base/Base.ts @@ -0,0 +1,49 @@ +import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; +import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; +import type { WeightV2 } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; + +import { isFunction } from 'https://deno.land/x/polkadot/util/mod.ts'; + +import { Abi } from '../Abi/index.ts'; + +export abstract class Base { + readonly abi: Abi; + readonly api: ApiBase; + + protected readonly _decorateMethod: DecorateMethod; + protected readonly _isWeightV1: boolean; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + decorateMethod: DecorateMethod, + ) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.contracts || + !isFunction(api.tx.contracts.instantiateWithCode) || + api.tx.contracts.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', + ); + } + + this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + + public get registry(): Registry { + return this.api.registry; + } +} diff --git a/.api-revive/build-deno/base/Base.ts b/.api-contract/build-deno/base/BaseRevive.ts similarity index 96% rename from .api-revive/build-deno/base/Base.ts rename to .api-contract/build-deno/base/BaseRevive.ts index 29e11941..1433ae06 100644 --- a/.api-revive/build-deno/base/Base.ts +++ b/.api-contract/build-deno/base/BaseRevive.ts @@ -7,7 +7,7 @@ import { isFunction } from 'https://deno.land/x/polkadot/util/mod.ts'; import { Abi } from '../Abi/index.ts'; -export abstract class Base { +export abstract class BaseRevive { readonly abi: Abi; readonly api: ApiBase; diff --git a/.api-revive/build-deno/base/Blueprint.ts b/.api-contract/build-deno/base/Blueprint.ts similarity index 88% rename from .api-revive/build-deno/base/Blueprint.ts rename to .api-contract/build-deno/base/Blueprint.ts index 86824dc9..05e74c16 100644 --- a/.api-revive/build-deno/base/Blueprint.ts +++ b/.api-contract/build-deno/base/Blueprint.ts @@ -1,7 +1,11 @@ import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { Hash } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { + AccountId, + EventRecord, + Hash, +} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; import type { Abi } from '../Abi/index.ts'; import type { AbiConstructor, BlueprintOptions } from '../types.ts'; @@ -10,6 +14,7 @@ import type { MapConstructorExec } from './types.ts'; import { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; import { BN_ZERO, isUndefined } from 'https://deno.land/x/polkadot/util/mod.ts'; +import { applyOnEvent } from '../util.ts'; import { Base } from './Base.ts'; import { Contract } from './Contract.ts'; import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts'; @@ -64,7 +69,7 @@ export class Blueprint extends Base { { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, params: unknown[], ): SubmittableExtrinsic> => { - return this.api.tx.revive + return this.api.tx.contracts .instantiate( value, // eslint-disable-next-line @typescript-eslint/ban-ts-comment @@ -79,17 +84,17 @@ export class Blueprint extends Base { (result: ISubmittableResult) => new BlueprintSubmittableResult( result, - (() => { - if (result.status.isInBlock || result.status.isFinalized) { - return new Contract( + applyOnEvent( + result, + ['Instantiated'], + ([record]: EventRecord[]) => + new Contract( this.api, this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + record.event.data[1] as AccountId, this._decorateMethod, - ); - } - return undefined; - })(), + ), + ), ), ); }; diff --git a/.api-contract/build-deno/base/BlueprintRevive.ts b/.api-contract/build-deno/base/BlueprintRevive.ts new file mode 100644 index 00000000..99068029 --- /dev/null +++ b/.api-contract/build-deno/base/BlueprintRevive.ts @@ -0,0 +1,103 @@ +import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; +import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; +import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; +import type { Hash } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; +import type { Abi } from '../Abi/index.ts'; +import type { AbiConstructor, BlueprintOptions } from '../types.ts'; +import type { MapConstructorExec } from './types.ts'; + +import { BN_ZERO, isUndefined } from 'https://deno.land/x/polkadot/util/mod.ts'; + +import { BaseRevive } from './BaseRevive.ts'; +import { BlueprintSubmittableResult } from './Blueprint.ts'; +import { Contract } from './Contract.ts'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts'; + +export type BlueprintReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, +) => BlueprintRevive; + +export class BlueprintRevive extends BaseRevive { + /** + * @description The on-chain code hash for this blueprint + */ + readonly codeHash: Hash; + + readonly #tx: MapConstructorExec = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.codeHash = this.registry.createType('Hash', codeHash); + + this.abi.constructors.forEach((c): void => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p)); + } + }); + } + + public get tx(): MapConstructorExec { + return this.#tx; + } + + #deploy = ( + constructorOrId: AbiConstructor | string | number, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, + params: unknown[], + ): SubmittableExtrinsic> => { + return this.api.tx.revive + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + (result: ISubmittableResult) => + new BlueprintSubmittableResult( + result, + (() => { + if (result.status.isInBlock || result.status.isFinalized) { + return new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ); + } + return undefined; + })(), + ), + ); + }; +} + +export function extendBlueprint( + type: ApiType, + decorateMethod: DecorateMethod, +): BlueprintReviveConstructor { + return class extends BlueprintRevive { + static __BlueprintType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + ) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-contract/build-deno/base/Code.ts b/.api-contract/build-deno/base/Code.ts new file mode 100644 index 00000000..4be1468f --- /dev/null +++ b/.api-contract/build-deno/base/Code.ts @@ -0,0 +1,155 @@ +import { Buffer } from 'node:buffer'; + +import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; +import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; +import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; +import type { + AccountId, + EventRecord, +} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; +import type { Codec } from 'https://deno.land/x/polkadot/types-codec/types/index.ts'; +import type { Abi } from '../Abi/index.ts'; +import type { AbiConstructor, BlueprintOptions } from '../types.ts'; +import type { MapConstructorExec } from './types.ts'; + +import { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; +import { + BN_ZERO, + compactAddLength, + isRiscV, + isUndefined, + isWasm, + u8aToU8a, +} from 'https://deno.land/x/polkadot/util/mod.ts'; + +import { applyOnEvent } from '../util.ts'; +import { Base } from './Base.ts'; +import { Blueprint } from './Blueprint.ts'; +import { Contract } from './Contract.ts'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts'; + +export type CodeConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, +) => Code; + +export class CodeSubmittableResult extends SubmittableResult { + readonly blueprint?: Blueprint | undefined; + readonly contract?: Contract | undefined; + + constructor( + result: ISubmittableResult, + blueprint?: Blueprint | undefined, + contract?: Contract | undefined, + ) { + super(result); + + this.blueprint = blueprint; + this.contract = contract; + } +} + +function isValidCode(code: Uint8Array): boolean { + return isWasm(code) || isRiscV(code); +} + +export class Code extends Base { + readonly code: Uint8Array; + + readonly #tx: MapConstructorExec = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); + + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + + this.abi.constructors.forEach((c): void => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p)); + } + }); + } + + public get tx(): MapConstructorExec { + return this.#tx; + } + + #instantiate = ( + constructorOrId: AbiConstructor | string | number, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, + params: unknown[], + ): SubmittableExtrinsic> => { + return this.api.tx.contracts + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + (result: ISubmittableResult) => + new CodeSubmittableResult( + result, + ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], (records: EventRecord[]) => + records.reduce<[Blueprint | undefined, Contract | undefined]>( + ([blueprint, contract], { event }) => + this.api.events.contracts.Instantiated.is(event) + ? [ + blueprint, + new Contract( + this.api, + this.abi, + (event as unknown as { data: [Codec, AccountId] }).data[1], + this._decorateMethod, + ), + ] + : this.api.events.contracts.CodeStored.is(event) + ? [ + new Blueprint( + this.api, + this.abi, + (event as unknown as { data: [AccountId] }).data[0], + this._decorateMethod, + ), + contract, + ] + : [blueprint, contract], + [undefined, undefined], + ), + ) || [undefined, undefined]), + ), + ); + }; +} + +export function extendCode( + type: ApiType, + decorateMethod: DecorateMethod, +): CodeConstructor { + return class extends Code { + static __CodeType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-revive/build-deno/base/Code.ts b/.api-contract/build-deno/base/CodeRevive.ts similarity index 82% rename from .api-revive/build-deno/base/Code.ts rename to .api-contract/build-deno/base/CodeRevive.ts index 7889a33c..a56f3b90 100644 --- a/.api-revive/build-deno/base/Code.ts +++ b/.api-contract/build-deno/base/CodeRevive.ts @@ -15,28 +15,27 @@ import { compactAddLength, isRiscV, isUndefined, - isWasm, u8aToU8a, } from 'https://deno.land/x/polkadot/util/mod.ts'; -import { Base } from './Base.ts'; -import { Blueprint } from './Blueprint.ts'; +import { BaseRevive } from './BaseRevive.ts'; +import { BlueprintRevive } from './BlueprintRevive.ts'; import { Contract } from './Contract.ts'; import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts'; -export type CodeConstructor = new ( +export type CodeReviveConstructor = new ( api: ApiBase, abi: string | Record | Abi, wasm: Uint8Array | string | Buffer | null | undefined, -) => Code; +) => CodeRevive; -export class CodeSubmittableResult extends SubmittableResult { - readonly blueprint?: Blueprint | undefined; +export class CodeReviveSubmittableResult extends SubmittableResult { + readonly blueprint?: BlueprintRevive | undefined; readonly contract?: Contract | undefined; constructor( result: ISubmittableResult, - blueprint?: Blueprint | undefined, + blueprint?: BlueprintRevive | undefined, contract?: Contract | undefined, ) { super(result); @@ -47,10 +46,10 @@ export class CodeSubmittableResult extends Submittable } function isValidCode(code: Uint8Array): boolean { - return isWasm(code) || isRiscV(code); + return isRiscV(code); } -export class Code extends Base { +export class CodeRevive extends BaseRevive { readonly code: Uint8Array; readonly #tx: MapConstructorExec = {}; @@ -84,9 +83,7 @@ export class Code extends Base { constructorOrId: AbiConstructor | string | number, { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, params: unknown[], - ): SubmittableExtrinsic> => { - console.log('in instantiate'); - console.log(this.abi.info.source.wasmHash); + ): SubmittableExtrinsic> => { return this.api.tx.revive .instantiateWithCode( value, @@ -100,9 +97,9 @@ export class Code extends Base { ) .withResultTransform( (result: ISubmittableResult) => - new CodeSubmittableResult( + new CodeReviveSubmittableResult( result, - new Blueprint( + new BlueprintRevive( this.api, this.abi, this.abi.info.source.wasmHash, @@ -122,8 +119,8 @@ export class Code extends Base { export function extendCode( type: ApiType, decorateMethod: DecorateMethod, -): CodeConstructor { - return class extends Code { +): CodeReviveConstructor { + return class extends CodeRevive { static __CodeType = type; constructor( diff --git a/.api-revive/build-deno/base/Contract.ts b/.api-contract/build-deno/base/Contract.ts similarity index 97% rename from .api-revive/build-deno/base/Contract.ts rename to .api-contract/build-deno/base/Contract.ts index 9f68caa5..c2182848 100644 --- a/.api-revive/build-deno/base/Contract.ts +++ b/.api-contract/build-deno/base/Contract.ts @@ -3,7 +3,6 @@ import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/subm import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; import type { AccountId, - AccountId20, ContractExecResult, EventRecord, Weight, @@ -96,7 +95,7 @@ export class Contract extends Base { /** * @description The on-chain address for this contract */ - readonly address: AccountId20; + readonly address: AccountId; readonly #query: MapMessageQuery = {}; readonly #tx: MapMessageTx = {}; @@ -104,12 +103,12 @@ export class Contract extends Base { constructor( api: ApiBase, abi: string | Record | Abi, - address: string | AccountId20, + address: string | AccountId, decorateMethod: DecorateMethod, ) { super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); + this.address = this.registry.createType('AccountId', address); this.abi.messages.forEach((m): void => { if (isUndefined(this.#tx[m.method])) { @@ -155,7 +154,7 @@ export class Contract extends Base { { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, params: unknown[], ): SubmittableExtrinsic => { - return this.api.tx.revive + return this.api.tx.contracts .call( this.address, value, diff --git a/.api-contract/build-deno/base/ContractRevive.ts b/.api-contract/build-deno/base/ContractRevive.ts new file mode 100644 index 00000000..77b591d3 --- /dev/null +++ b/.api-contract/build-deno/base/ContractRevive.ts @@ -0,0 +1,264 @@ +import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; +import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; +import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; +import type { + AccountId, + AccountId20, + ContractExecResult, + EventRecord, + Weight, + WeightV2, +} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; +import type { Abi } from '../Abi/index.ts'; +import type { + AbiMessage, + ContractCallOutcome, + ContractOptions, + DecodedEvent, + WeightAll, +} from '../types.ts'; +import type { + ContractCallResult, + ContractCallSend, + ContractQuery, + ContractTx, + MapMessageQuery, + MapMessageTx, +} from './types.ts'; + +import { map } from 'https://esm.sh/rxjs@7.8.1'; + +import { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; +import { + BN, + BN_HUNDRED, + BN_ONE, + BN_ZERO, + isUndefined, + logger, +} from 'https://deno.land/x/polkadot/util/mod.ts'; + +import { applyOnEvent } from '../util.ts'; +import { BaseRevive } from './BaseRevive.ts'; +import { convertWeight, withMeta } from './util.ts'; + +export type ContractReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, +) => ContractRevive; + +const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); + +const l = logger('Contract'); + +function createQuery( + meta: AbiMessage, + fn: ( + origin: string | AccountId | Uint8Array, + options: ContractOptions, + params: unknown[], + ) => ContractCallResult, +): ContractQuery { + return withMeta( + meta, + ( + origin: string | AccountId | Uint8Array, + options: ContractOptions, + ...params: unknown[] + ): ContractCallResult => fn(origin, options, params), + ); +} + +function createTx( + meta: AbiMessage, + fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic, +): ContractTx { + return withMeta( + meta, + (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic => + fn(options, params), + ); +} + +export class ContractSubmittableResult extends SubmittableResult { + readonly contractEvents?: DecodedEvent[] | undefined; + + constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]) { + super(result); + + this.contractEvents = contractEvents; + } +} + +export class ContractRevive extends BaseRevive { + /** + * @description The on-chain address for this contract + */ + readonly address: AccountId20; + + readonly #query: MapMessageQuery = {}; + readonly #tx: MapMessageTx = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId20, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.address = this.registry.createType('AccountId20', address); + + this.abi.messages.forEach((m): void => { + if (isUndefined(this.#tx[m.method])) { + this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p)); + } + + if (isUndefined(this.#query[m.method])) { + this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f)); + } + }); + } + + public get query(): MapMessageQuery { + return this.#query; + } + + public get tx(): MapMessageTx { + return this.#tx; + } + + #getGas = (_gasLimit: bigint | BN | string | number | WeightV2, isCall = false): WeightAll => { + const weight = convertWeight(_gasLimit); + + if (weight.v1Weight.gt(BN_ZERO)) { + return weight; + } + + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? (this.api.consts.system.blockWeights as unknown as { maxBlock: WeightV2 }).maxBlock + : (this.api.consts.system['maximumBlockWeight'] as Weight), + ) + .v1Weight.muln(64) + .div(BN_HUNDRED), + ); + }; + + #exec = ( + messageOrId: AbiMessage | string | number, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, + params: unknown[], + ): SubmittableExtrinsic => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + (result: ISubmittableResult) => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + applyOnEvent( + result, + ['ContractEmitted', 'ContractExecution'], + (records: EventRecord[]) => + records + .map((record): DecodedEvent | null => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${(error as Error).message}`); + + return null; + } + }) + .filter((decoded): decoded is DecodedEvent => !!decoded), + ), + ), + ); + }; + + #read = ( + messageOrId: AbiMessage | string | number, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, + params: unknown[], + ): ContractCallSend => { + const message = this.abi.findMessage(messageOrId); + + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod((origin: string | AccountId | Uint8Array) => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.#getGas(gasLimit, true).v1Weight + : this.#getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + map( + ({ + debugMessage, + gasConsumed, + gasRequired, + result, + storageDeposit, + }): ContractCallOutcome => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + }), + ), + ), + ), + }; + }; +} + +export function extendContract( + type: ApiType, + decorateMethod: DecorateMethod, +): ContractReviveConstructor { + return class extends ContractRevive { + static __ContractType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, + ) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-revive/build-deno/base/index.ts b/.api-contract/build-deno/base/index.ts similarity index 58% rename from .api-revive/build-deno/base/index.ts rename to .api-contract/build-deno/base/index.ts index b4134289..98dd1a62 100644 --- a/.api-revive/build-deno/base/index.ts +++ b/.api-contract/build-deno/base/index.ts @@ -1,3 +1,6 @@ export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.ts'; +export { BlueprintRevive } from './BlueprintRevive.ts'; export { Code, CodeSubmittableResult, extendCode } from './Code.ts'; +export { CodeRevive } from './CodeRevive.ts'; export { Contract, extendContract } from './Contract.ts'; +export { ContractRevive } from './ContractRevive.ts'; diff --git a/.api-revive/build-deno/base/mock.ts b/.api-contract/build-deno/base/mock.ts similarity index 100% rename from .api-revive/build-deno/base/mock.ts rename to .api-contract/build-deno/base/mock.ts diff --git a/.api-revive/build-deno/base/types.ts b/.api-contract/build-deno/base/types.ts similarity index 100% rename from .api-revive/build-deno/base/types.ts rename to .api-contract/build-deno/base/types.ts diff --git a/.api-revive/build-deno/base/util.ts b/.api-contract/build-deno/base/util.ts similarity index 100% rename from .api-revive/build-deno/base/util.ts rename to .api-contract/build-deno/base/util.ts diff --git a/.api-revive/build-deno/bundle.ts b/.api-contract/build-deno/bundle.ts similarity index 100% rename from .api-revive/build-deno/bundle.ts rename to .api-contract/build-deno/bundle.ts diff --git a/.api-revive/build-deno/checkTypes.manual.ts b/.api-contract/build-deno/checkTypes.manual.ts similarity index 93% rename from .api-revive/build-deno/checkTypes.manual.ts rename to .api-contract/build-deno/checkTypes.manual.ts index e08380dc..4f0b0c8e 100644 --- a/.api-revive/build-deno/checkTypes.manual.ts +++ b/.api-contract/build-deno/checkTypes.manual.ts @@ -3,7 +3,10 @@ import 'https://deno.land/x/polkadot/api-augment/mod.ts'; import type { TestKeyringMapSubstrate } from 'https://deno.land/x/polkadot/keyring/testingPairs.ts'; import { ApiPromise } from 'https://deno.land/x/polkadot/api/mod.ts'; -import { BlueprintPromise, ContractPromise } from 'https://deno.land/x/polkadot/api-revive/mod.ts'; +import { + BlueprintPromise, + ContractPromise, +} from 'https://deno.land/x/polkadot/api-contract/mod.ts'; import { createTestPairs } from 'https://deno.land/x/polkadot/keyring/testingPairs.ts'; import abiIncrementer from './test/contracts/ink/v0/incrementer.json' assert { type: 'json' }; diff --git a/.api-revive/build-deno/index.ts b/.api-contract/build-deno/index.ts similarity index 100% rename from .api-revive/build-deno/index.ts rename to .api-contract/build-deno/index.ts diff --git a/.api-revive/build-deno/mod.ts b/.api-contract/build-deno/mod.ts similarity index 100% rename from .api-revive/build-deno/mod.ts rename to .api-contract/build-deno/mod.ts diff --git a/.api-revive/build-deno/packageDetect.ts b/.api-contract/build-deno/packageDetect.ts similarity index 100% rename from .api-revive/build-deno/packageDetect.ts rename to .api-contract/build-deno/packageDetect.ts diff --git a/.api-revive/build-deno/packageInfo.ts b/.api-contract/build-deno/packageInfo.ts similarity index 76% rename from .api-revive/build-deno/packageInfo.ts rename to .api-contract/build-deno/packageInfo.ts index 017b69ca..0ca48fa7 100644 --- a/.api-revive/build-deno/packageInfo.ts +++ b/.api-contract/build-deno/packageInfo.ts @@ -1,5 +1,5 @@ export const packageInfo = { - name: '@polkadot/api-revive', + name: '@polkadot/api-contract', path: new URL(import.meta.url).pathname, type: 'deno', version: '15.8.1', diff --git a/.api-contract/build-deno/promise/index.ts b/.api-contract/build-deno/promise/index.ts new file mode 100644 index 00000000..0d939222 --- /dev/null +++ b/.api-contract/build-deno/promise/index.ts @@ -0,0 +1,80 @@ +import { Buffer } from 'node:buffer'; + +import type { ApiPromise } from 'https://deno.land/x/polkadot/api/mod.ts'; +import type { + AccountId, + AccountId20, + Hash, +} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; +import type { Abi } from '../Abi/index.ts'; + +import { toPromiseMethod } from 'https://deno.land/x/polkadot/api/mod.ts'; + +import { + Blueprint, + BlueprintRevive, + Code, + CodeRevive, + Contract, + ContractRevive, +} from '../base/index.ts'; + +export class BlueprintPromise extends Blueprint<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ) { + super(api, abi, codeHash, toPromiseMethod); + } +} + +export class CodePromise extends Code<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, toPromiseMethod); + } +} + +export class ContractPromise extends Contract<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId, + ) { + super(api, abi, address, toPromiseMethod); + } +} + +export class BlueprintRevivePromise extends BlueprintRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ) { + super(api, abi, codeHash, toPromiseMethod); + } +} + +export class CodeRevivePromise extends CodeRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, toPromiseMethod); + } +} + +export class ContractRevivePromise extends ContractRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId20, + ) { + super(api, abi, address, toPromiseMethod); + } +} diff --git a/.api-revive/build-deno/promise/types.ts b/.api-contract/build-deno/promise/types.ts similarity index 100% rename from .api-revive/build-deno/promise/types.ts rename to .api-contract/build-deno/promise/types.ts diff --git a/.api-revive/build-deno/rx/index.ts b/.api-contract/build-deno/rx/index.ts similarity index 100% rename from .api-revive/build-deno/rx/index.ts rename to .api-contract/build-deno/rx/index.ts diff --git a/.api-revive/build-deno/rx/types.ts b/.api-contract/build-deno/rx/types.ts similarity index 100% rename from .api-revive/build-deno/rx/types.ts rename to .api-contract/build-deno/rx/types.ts diff --git a/.api-revive/build-deno/test/contracts/index.ts b/.api-contract/build-deno/test/contracts/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/index.ts rename to .api-contract/build-deno/test/contracts/index.ts diff --git a/.api-revive/build-deno/test/contracts/ink/index.ts b/.api-contract/build-deno/test/contracts/ink/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/index.ts rename to .api-contract/build-deno/test/contracts/ink/index.ts diff --git a/.api-revive/build-deno/test/contracts/ink/v0/accumulator.wasm b/.api-contract/build-deno/test/contracts/ink/v0/accumulator.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/accumulator.wasm rename to .api-contract/build-deno/test/contracts/ink/v0/accumulator.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v0/adder.wasm b/.api-contract/build-deno/test/contracts/ink/v0/adder.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/adder.wasm rename to .api-contract/build-deno/test/contracts/ink/v0/adder.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v0/delegator.wasm b/.api-contract/build-deno/test/contracts/ink/v0/delegator.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/delegator.wasm rename to .api-contract/build-deno/test/contracts/ink/v0/delegator.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v0/dns.wasm b/.api-contract/build-deno/test/contracts/ink/v0/dns.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/dns.wasm rename to .api-contract/build-deno/test/contracts/ink/v0/dns.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v0/erc20.wasm b/.api-contract/build-deno/test/contracts/ink/v0/erc20.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/erc20.wasm rename to .api-contract/build-deno/test/contracts/ink/v0/erc20.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v0/erc721.wasm b/.api-contract/build-deno/test/contracts/ink/v0/erc721.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/erc721.wasm rename to .api-contract/build-deno/test/contracts/ink/v0/erc721.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v0/flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v0/flipper.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/flipper.wasm rename to .api-contract/build-deno/test/contracts/ink/v0/flipper.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v0/incrementer.wasm b/.api-contract/build-deno/test/contracts/ink/v0/incrementer.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/incrementer.wasm rename to .api-contract/build-deno/test/contracts/ink/v0/incrementer.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v0/index.ts b/.api-contract/build-deno/test/contracts/ink/v0/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/index.ts rename to .api-contract/build-deno/test/contracts/ink/v0/index.ts diff --git a/.api-revive/build-deno/test/contracts/ink/v0/multisig_plain.wasm b/.api-contract/build-deno/test/contracts/ink/v0/multisig_plain.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/multisig_plain.wasm rename to .api-contract/build-deno/test/contracts/ink/v0/multisig_plain.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v0/subber.wasm b/.api-contract/build-deno/test/contracts/ink/v0/subber.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/subber.wasm rename to .api-contract/build-deno/test/contracts/ink/v0/subber.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v0/trait-flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v0/trait-flipper.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v0/trait-flipper.wasm rename to .api-contract/build-deno/test/contracts/ink/v0/trait-flipper.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v1/index.ts b/.api-contract/build-deno/test/contracts/ink/v1/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v1/index.ts rename to .api-contract/build-deno/test/contracts/ink/v1/index.ts diff --git a/.api-revive/build-deno/test/contracts/ink/v2/index.ts b/.api-contract/build-deno/test/contracts/ink/v2/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v2/index.ts rename to .api-contract/build-deno/test/contracts/ink/v2/index.ts diff --git a/.api-revive/build-deno/test/contracts/ink/v3/index.ts b/.api-contract/build-deno/test/contracts/ink/v3/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v3/index.ts rename to .api-contract/build-deno/test/contracts/ink/v3/index.ts diff --git a/.api-revive/build-deno/test/contracts/ink/v4/erc20.wasm b/.api-contract/build-deno/test/contracts/ink/v4/erc20.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v4/erc20.wasm rename to .api-contract/build-deno/test/contracts/ink/v4/erc20.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v4/flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v4/flipper.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v4/flipper.wasm rename to .api-contract/build-deno/test/contracts/ink/v4/flipper.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v4/index.ts b/.api-contract/build-deno/test/contracts/ink/v4/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v4/index.ts rename to .api-contract/build-deno/test/contracts/ink/v4/index.ts diff --git a/.api-revive/build-deno/test/contracts/ink/v5/erc20.wasm b/.api-contract/build-deno/test/contracts/ink/v5/erc20.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v5/erc20.wasm rename to .api-contract/build-deno/test/contracts/ink/v5/erc20.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v5/flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v5/flipper.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v5/flipper.wasm rename to .api-contract/build-deno/test/contracts/ink/v5/flipper.wasm diff --git a/.api-revive/build-deno/test/contracts/ink/v5/index.ts b/.api-contract/build-deno/test/contracts/ink/v5/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/ink/v5/index.ts rename to .api-contract/build-deno/test/contracts/ink/v5/index.ts diff --git a/.api-revive/build-deno/test/contracts/solang/index.ts b/.api-contract/build-deno/test/contracts/solang/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/solang/index.ts rename to .api-contract/build-deno/test/contracts/solang/index.ts diff --git a/.api-revive/build-deno/test/contracts/solang/v0/index.ts b/.api-contract/build-deno/test/contracts/solang/v0/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/solang/v0/index.ts rename to .api-contract/build-deno/test/contracts/solang/v0/index.ts diff --git a/.api-revive/build-deno/test/contracts/solang/v0/ints256.sol b/.api-contract/build-deno/test/contracts/solang/v0/ints256.sol similarity index 100% rename from .api-revive/build-deno/test/contracts/solang/v0/ints256.sol rename to .api-contract/build-deno/test/contracts/solang/v0/ints256.sol diff --git a/.api-revive/build-deno/test/contracts/solang/v0/ints256.wasm b/.api-contract/build-deno/test/contracts/solang/v0/ints256.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/solang/v0/ints256.wasm rename to .api-contract/build-deno/test/contracts/solang/v0/ints256.wasm diff --git a/.api-revive/build-deno/test/contracts/user/index.ts b/.api-contract/build-deno/test/contracts/user/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/user/index.ts rename to .api-contract/build-deno/test/contracts/user/index.ts diff --git a/.api-revive/build-deno/test/contracts/user/v0/assetTransfer.wasm b/.api-contract/build-deno/test/contracts/user/v0/assetTransfer.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/user/v0/assetTransfer.wasm rename to .api-contract/build-deno/test/contracts/user/v0/assetTransfer.wasm diff --git a/.api-revive/build-deno/test/contracts/user/v0/enumExample.wasm b/.api-contract/build-deno/test/contracts/user/v0/enumExample.wasm similarity index 100% rename from .api-revive/build-deno/test/contracts/user/v0/enumExample.wasm rename to .api-contract/build-deno/test/contracts/user/v0/enumExample.wasm diff --git a/.api-revive/build-deno/test/contracts/user/v0/index.ts b/.api-contract/build-deno/test/contracts/user/v0/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/user/v0/index.ts rename to .api-contract/build-deno/test/contracts/user/v0/index.ts diff --git a/.api-revive/build-deno/test/contracts/user/v3/index.ts b/.api-contract/build-deno/test/contracts/user/v3/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/user/v3/index.ts rename to .api-contract/build-deno/test/contracts/user/v3/index.ts diff --git a/.api-revive/build-deno/test/contracts/user/v4/index.ts b/.api-contract/build-deno/test/contracts/user/v4/index.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/user/v4/index.ts rename to .api-contract/build-deno/test/contracts/user/v4/index.ts diff --git a/.api-revive/build-deno/test/contracts/util.ts b/.api-contract/build-deno/test/contracts/util.ts similarity index 100% rename from .api-revive/build-deno/test/contracts/util.ts rename to .api-contract/build-deno/test/contracts/util.ts diff --git a/.api-revive/build-deno/types.ts b/.api-contract/build-deno/types.ts similarity index 100% rename from .api-revive/build-deno/types.ts rename to .api-contract/build-deno/types.ts diff --git a/.api-revive/build-deno/util.ts b/.api-contract/build-deno/util.ts similarity index 100% rename from .api-revive/build-deno/util.ts rename to .api-contract/build-deno/util.ts diff --git a/.api-revive/build-tsc-cjs/Abi/index.js b/.api-contract/build-tsc-cjs/Abi/index.js similarity index 100% rename from .api-revive/build-tsc-cjs/Abi/index.js rename to .api-contract/build-tsc-cjs/Abi/index.js diff --git a/.api-revive/build-tsc-cjs/Abi/toLatestCompatible.js b/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js similarity index 100% rename from .api-revive/build-tsc-cjs/Abi/toLatestCompatible.js rename to .api-contract/build-tsc-cjs/Abi/toLatestCompatible.js diff --git a/.api-revive/build-tsc-cjs/Abi/toV1.js b/.api-contract/build-tsc-cjs/Abi/toV1.js similarity index 100% rename from .api-revive/build-tsc-cjs/Abi/toV1.js rename to .api-contract/build-tsc-cjs/Abi/toV1.js diff --git a/.api-revive/build-tsc-cjs/Abi/toV2.js b/.api-contract/build-tsc-cjs/Abi/toV2.js similarity index 100% rename from .api-revive/build-tsc-cjs/Abi/toV2.js rename to .api-contract/build-tsc-cjs/Abi/toV2.js diff --git a/.api-revive/build-tsc-cjs/Abi/toV3.js b/.api-contract/build-tsc-cjs/Abi/toV3.js similarity index 100% rename from .api-revive/build-tsc-cjs/Abi/toV3.js rename to .api-contract/build-tsc-cjs/Abi/toV3.js diff --git a/.api-revive/build-tsc-cjs/Abi/toV4.js b/.api-contract/build-tsc-cjs/Abi/toV4.js similarity index 100% rename from .api-revive/build-tsc-cjs/Abi/toV4.js rename to .api-contract/build-tsc-cjs/Abi/toV4.js diff --git a/.api-revive/build-tsc-cjs/augment.js b/.api-contract/build-tsc-cjs/augment.js similarity index 100% rename from .api-revive/build-tsc-cjs/augment.js rename to .api-contract/build-tsc-cjs/augment.js diff --git a/.api-contract/build-tsc-cjs/base/Base.js b/.api-contract/build-tsc-cjs/base/Base.js new file mode 100644 index 00000000..a0ab4683 --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/Base.js @@ -0,0 +1,41 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Base = void 0; +const util_1 = require('@polkadot/util'); +const index_js_1 = require('../Abi/index.js'); +class Base { + abi; + api; + _decorateMethod; + _isWeightV1; + constructor(api, abi, decorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.contracts || + !(0, util_1.isFunction)(api.tx.contracts.instantiateWithCode) || + api.tx.contracts.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.contractsApi || !(0, util_1.isFunction)(api.call.contractsApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', + ); + } + this.abi = + abi instanceof index_js_1.Abi + ? abi + : new index_js_1.Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + get registry() { + return this.api.registry; + } +} +exports.Base = Base; diff --git a/.api-revive/build/cjs/base/Base.js b/.api-contract/build-tsc-cjs/base/BaseRevive.js similarity index 94% rename from .api-revive/build/cjs/base/Base.js rename to .api-contract/build-tsc-cjs/base/BaseRevive.js index c077097f..a968a0ba 100644 --- a/.api-revive/build/cjs/base/Base.js +++ b/.api-contract/build-tsc-cjs/base/BaseRevive.js @@ -1,9 +1,9 @@ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); -exports.Base = void 0; +exports.BaseRevive = void 0; const util_1 = require('@polkadot/util'); const index_js_1 = require('../Abi/index.js'); -class Base { +class BaseRevive { abi; api; _decorateMethod; @@ -38,4 +38,4 @@ class Base { return this.api.registry; } } -exports.Base = Base; +exports.BaseRevive = BaseRevive; diff --git a/.api-contract/build-tsc-cjs/base/Blueprint.js b/.api-contract/build-tsc-cjs/base/Blueprint.js new file mode 100644 index 00000000..68226399 --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/Blueprint.js @@ -0,0 +1,84 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Blueprint = exports.BlueprintSubmittableResult = void 0; +exports.extendBlueprint = extendBlueprint; +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const util_js_1 = require('../util.js'); +const Base_js_1 = require('./Base.js'); +const Contract_js_1 = require('./Contract.js'); +const util_js_2 = require('./util.js'); +class BlueprintSubmittableResult extends api_1.SubmittableResult { + contract; + constructor(result, contract) { + super(result); + this.contract = contract; + } +} +exports.BlueprintSubmittableResult = BlueprintSubmittableResult; +class Blueprint extends Base_js_1.Base { + /** + * @description The on-chain code hash for this blueprint + */ + codeHash; + __internal__tx = {}; + constructor(api, abi, codeHash, decorateMethod) { + super(api, abi, decorateMethod); + this.codeHash = this.registry.createType('Hash', codeHash); + this.abi.constructors.forEach(c => { + if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = (0, util_js_2.createBluePrintTx)(c, (o, p) => + this.__internal__deploy(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__deploy = ( + constructorOrId, + { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_2.convertWeight)(gasLimit).v1Weight + : (0, util_js_2.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + (0, util_js_2.encodeSalt)(salt), + ) + .withResultTransform( + result => + new BlueprintSubmittableResult( + result, + (0, util_js_1.applyOnEvent)( + result, + ['Instantiated'], + ([record]) => + new Contract_js_1.Contract( + this.api, + this.abi, + record.event.data[1], + this._decorateMethod, + ), + ), + ), + ); + }; +} +exports.Blueprint = Blueprint; +function extendBlueprint(type, decorateMethod) { + return class extends Blueprint { + static __BlueprintType = type; + constructor(api, abi, codeHash) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-revive/build/cjs/base/Blueprint.js b/.api-contract/build-tsc-cjs/base/BlueprintRevive.js similarity index 80% rename from .api-revive/build/cjs/base/Blueprint.js rename to .api-contract/build-tsc-cjs/base/BlueprintRevive.js index 55bdffaa..f30dae62 100644 --- a/.api-revive/build/cjs/base/Blueprint.js +++ b/.api-contract/build-tsc-cjs/base/BlueprintRevive.js @@ -1,21 +1,13 @@ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); -exports.Blueprint = exports.BlueprintSubmittableResult = void 0; +exports.BlueprintRevive = void 0; exports.extendBlueprint = extendBlueprint; -const api_1 = require('@polkadot/api'); const util_1 = require('@polkadot/util'); -const Base_js_1 = require('./Base.js'); +const BaseRevive_js_1 = require('./BaseRevive.js'); +const Blueprint_js_1 = require('./Blueprint.js'); const Contract_js_1 = require('./Contract.js'); const util_js_1 = require('./util.js'); -class BlueprintSubmittableResult extends api_1.SubmittableResult { - contract; - constructor(result, contract) { - super(result); - this.contract = contract; - } -} -exports.BlueprintSubmittableResult = BlueprintSubmittableResult; -class Blueprint extends Base_js_1.Base { +class BlueprintRevive extends BaseRevive_js_1.BaseRevive { /** * @description The on-chain code hash for this blueprint */ @@ -55,7 +47,7 @@ class Blueprint extends Base_js_1.Base { ) .withResultTransform( result => - new BlueprintSubmittableResult( + new Blueprint_js_1.BlueprintSubmittableResult( result, (() => { if (result.status.isInBlock || result.status.isFinalized) { @@ -72,9 +64,9 @@ class Blueprint extends Base_js_1.Base { ); }; } -exports.Blueprint = Blueprint; +exports.BlueprintRevive = BlueprintRevive; function extendBlueprint(type, decorateMethod) { - return class extends Blueprint { + return class extends BlueprintRevive { static __BlueprintType = type; constructor(api, abi, codeHash) { super(api, abi, codeHash, decorateMethod); diff --git a/.api-contract/build-tsc-cjs/base/Code.js b/.api-contract/build-tsc-cjs/base/Code.js new file mode 100644 index 00000000..eeeff6d2 --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/Code.js @@ -0,0 +1,108 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Code = exports.CodeSubmittableResult = void 0; +exports.extendCode = extendCode; +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const util_js_1 = require('../util.js'); +const Base_js_1 = require('./Base.js'); +const Blueprint_js_1 = require('./Blueprint.js'); +const Contract_js_1 = require('./Contract.js'); +const util_js_2 = require('./util.js'); +class CodeSubmittableResult extends api_1.SubmittableResult { + blueprint; + contract; + constructor(result, blueprint, contract) { + super(result); + this.blueprint = blueprint; + this.contract = contract; + } +} +exports.CodeSubmittableResult = CodeSubmittableResult; +function isValidCode(code) { + return (0, util_1.isWasm)(code) || (0, util_1.isRiscV)(code); +} +class Code extends Base_js_1.Base { + code; + __internal__tx = {}; + constructor(api, abi, wasm, decorateMethod) { + super(api, abi, decorateMethod); + this.code = isValidCode(this.abi.info.source.wasm) + ? this.abi.info.source.wasm + : (0, util_1.u8aToU8a)(wasm); + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + this.abi.constructors.forEach(c => { + if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = (0, util_js_2.createBluePrintTx)(c, (o, p) => + this.__internal__instantiate(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__instantiate = ( + constructorOrId, + { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_2.convertWeight)(gasLimit).v1Weight + : (0, util_js_2.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + (0, util_1.compactAddLength)(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + (0, util_js_2.encodeSalt)(salt), + ) + .withResultTransform( + result => + new CodeSubmittableResult( + result, + ...((0, util_js_1.applyOnEvent)(result, ['CodeStored', 'Instantiated'], records => + records.reduce( + ([blueprint, contract], { event }) => + this.api.events.contracts.Instantiated.is(event) + ? [ + blueprint, + new Contract_js_1.Contract( + this.api, + this.abi, + event.data[1], + this._decorateMethod, + ), + ] + : this.api.events.contracts.CodeStored.is(event) + ? [ + new Blueprint_js_1.Blueprint( + this.api, + this.abi, + event.data[0], + this._decorateMethod, + ), + contract, + ] + : [blueprint, contract], + [undefined, undefined], + ), + ) || [undefined, undefined]), + ), + ); + }; +} +exports.Code = Code; +function extendCode(type, decorateMethod) { + return class extends Code { + static __CodeType = type; + constructor(api, abi, wasm) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-revive/build-tsc-cjs/base/Code.js b/.api-contract/build-tsc-cjs/base/CodeRevive.js similarity index 80% rename from .api-revive/build-tsc-cjs/base/Code.js rename to .api-contract/build-tsc-cjs/base/CodeRevive.js index 3a6f60a6..cd74edbb 100644 --- a/.api-revive/build-tsc-cjs/base/Code.js +++ b/.api-contract/build-tsc-cjs/base/CodeRevive.js @@ -1,14 +1,14 @@ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); -exports.Code = exports.CodeSubmittableResult = void 0; +exports.CodeRevive = exports.CodeReviveSubmittableResult = void 0; exports.extendCode = extendCode; const api_1 = require('@polkadot/api'); const util_1 = require('@polkadot/util'); -const Base_js_1 = require('./Base.js'); -const Blueprint_js_1 = require('./Blueprint.js'); +const BaseRevive_js_1 = require('./BaseRevive.js'); +const BlueprintRevive_js_1 = require('./BlueprintRevive.js'); const Contract_js_1 = require('./Contract.js'); const util_js_1 = require('./util.js'); -class CodeSubmittableResult extends api_1.SubmittableResult { +class CodeReviveSubmittableResult extends api_1.SubmittableResult { blueprint; contract; constructor(result, blueprint, contract) { @@ -17,11 +17,11 @@ class CodeSubmittableResult extends api_1.SubmittableResult { this.contract = contract; } } -exports.CodeSubmittableResult = CodeSubmittableResult; +exports.CodeReviveSubmittableResult = CodeReviveSubmittableResult; function isValidCode(code) { - return (0, util_1.isWasm)(code) || (0, util_1.isRiscV)(code); + return (0, util_1.isRiscV)(code); } -class Code extends Base_js_1.Base { +class CodeRevive extends BaseRevive_js_1.BaseRevive { code; __internal__tx = {}; constructor(api, abi, wasm, decorateMethod) { @@ -48,8 +48,6 @@ class Code extends Base_js_1.Base { { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, params, ) => { - console.log('in instantiate'); - console.log(this.abi.info.source.wasmHash); return this.api.tx.revive .instantiateWithCode( value, @@ -65,9 +63,9 @@ class Code extends Base_js_1.Base { ) .withResultTransform( result => - new CodeSubmittableResult( + new CodeReviveSubmittableResult( result, - new Blueprint_js_1.Blueprint( + new BlueprintRevive_js_1.BlueprintRevive( this.api, this.abi, this.abi.info.source.wasmHash, @@ -83,9 +81,9 @@ class Code extends Base_js_1.Base { ); }; } -exports.Code = Code; +exports.CodeRevive = CodeRevive; function extendCode(type, decorateMethod) { - return class extends Code { + return class extends CodeRevive { static __CodeType = type; constructor(api, abi, wasm) { super(api, abi, wasm, decorateMethod); diff --git a/.api-revive/build/cjs/base/Contract.js b/.api-contract/build-tsc-cjs/base/Contract.js similarity index 98% rename from .api-revive/build/cjs/base/Contract.js rename to .api-contract/build-tsc-cjs/base/Contract.js index b3f5b9f5..2845941a 100644 --- a/.api-revive/build/cjs/base/Contract.js +++ b/.api-contract/build-tsc-cjs/base/Contract.js @@ -33,7 +33,7 @@ class Contract extends Base_js_1.Base { __internal__tx = {}; constructor(api, abi, address, decorateMethod) { super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); + this.address = this.registry.createType('AccountId', address); this.abi.messages.forEach(m => { if ((0, util_1.isUndefined)(this.__internal__tx[m.method])) { this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); @@ -73,7 +73,7 @@ class Contract extends Base_js_1.Base { { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, params, ) => { - return this.api.tx.revive + return this.api.tx.contracts .call( this.address, value, diff --git a/.api-contract/build-tsc-cjs/base/ContractRevive.js b/.api-contract/build-tsc-cjs/base/ContractRevive.js new file mode 100644 index 00000000..1523692a --- /dev/null +++ b/.api-contract/build-tsc-cjs/base/ContractRevive.js @@ -0,0 +1,164 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.ContractRevive = exports.ContractSubmittableResult = void 0; +exports.extendContract = extendContract; +const rxjs_1 = require('rxjs'); +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const util_js_1 = require('../util.js'); +const BaseRevive_js_1 = require('./BaseRevive.js'); +const util_js_2 = require('./util.js'); +const MAX_CALL_GAS = new util_1.BN(5_000_000_000_000).isub(util_1.BN_ONE); +const l = (0, util_1.logger)('Contract'); +function createQuery(meta, fn) { + return (0, util_js_2.withMeta)(meta, (origin, options, ...params) => fn(origin, options, params)); +} +function createTx(meta, fn) { + return (0, util_js_2.withMeta)(meta, (options, ...params) => fn(options, params)); +} +class ContractSubmittableResult extends api_1.SubmittableResult { + contractEvents; + constructor(result, contractEvents) { + super(result); + this.contractEvents = contractEvents; + } +} +exports.ContractSubmittableResult = ContractSubmittableResult; +class ContractRevive extends BaseRevive_js_1.BaseRevive { + /** + * @description The on-chain address for this contract + */ + address; + __internal__query = {}; + __internal__tx = {}; + constructor(api, abi, address, decorateMethod) { + super(api, abi, decorateMethod); + this.address = this.registry.createType('AccountId20', address); + this.abi.messages.forEach(m => { + if ((0, util_1.isUndefined)(this.__internal__tx[m.method])) { + this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); + } + if ((0, util_1.isUndefined)(this.__internal__query[m.method])) { + this.__internal__query[m.method] = createQuery(m, (f, o, p) => + this.__internal__read(m, o, p).send(f), + ); + } + }); + } + get query() { + return this.__internal__query; + } + get tx() { + return this.__internal__tx; + } + __internal__getGas = (_gasLimit, isCall = false) => { + const weight = (0, util_js_2.convertWeight)(_gasLimit); + if (weight.v1Weight.gt(util_1.BN_ZERO)) { + return weight; + } + return (0, util_js_2.convertWeight)( + isCall + ? MAX_CALL_GAS + : (0, util_js_2.convertWeight)( + this.api.consts.system.blockWeights + ? this.api.consts.system.blockWeights.maxBlock + : this.api.consts.system['maximumBlockWeight'], + ) + .v1Weight.muln(64) + .div(util_1.BN_HUNDRED), + ); + }; + __internal__exec = ( + messageOrId, + { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_2.convertWeight)(gasLimit).v1Weight + : (0, util_js_2.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + result => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + (0, util_js_1.applyOnEvent)(result, ['ContractEmitted', 'ContractExecution'], records => + records + .map(record => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${error.message}`); + return null; + } + }) + .filter(decoded => !!decoded), + ), + ), + ); + }; + __internal__read = ( + messageOrId, + { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + const message = this.abi.findMessage(messageOrId); + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod(origin => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.__internal__getGas(gasLimit, true).v1Weight + : this.__internal__getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + (0, rxjs_1.map)( + ({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !(0, util_js_2.convertWeight)(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + }), + ), + ), + ), + }; + }; +} +exports.ContractRevive = ContractRevive; +function extendContract(type, decorateMethod) { + return class extends ContractRevive { + static __ContractType = type; + constructor(api, abi, address) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-revive/build/cjs/base/index.js b/.api-contract/build-tsc-cjs/base/index.js similarity index 68% rename from .api-revive/build/cjs/base/index.js rename to .api-contract/build-tsc-cjs/base/index.js index 742b6bbc..98972576 100644 --- a/.api-revive/build/cjs/base/index.js +++ b/.api-contract/build-tsc-cjs/base/index.js @@ -1,10 +1,13 @@ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); -exports.extendContract = +exports.ContractRevive = + exports.extendContract = exports.Contract = + exports.CodeRevive = exports.extendCode = exports.CodeSubmittableResult = exports.Code = + exports.BlueprintRevive = exports.extendBlueprint = exports.BlueprintSubmittableResult = exports.Blueprint = @@ -28,6 +31,13 @@ Object.defineProperty(exports, 'extendBlueprint', { return Blueprint_js_1.extendBlueprint; }, }); +var BlueprintRevive_js_1 = require('./BlueprintRevive.js'); +Object.defineProperty(exports, 'BlueprintRevive', { + enumerable: true, + get: function () { + return BlueprintRevive_js_1.BlueprintRevive; + }, +}); var Code_js_1 = require('./Code.js'); Object.defineProperty(exports, 'Code', { enumerable: true, @@ -47,6 +57,13 @@ Object.defineProperty(exports, 'extendCode', { return Code_js_1.extendCode; }, }); +var CodeRevive_js_1 = require('./CodeRevive.js'); +Object.defineProperty(exports, 'CodeRevive', { + enumerable: true, + get: function () { + return CodeRevive_js_1.CodeRevive; + }, +}); var Contract_js_1 = require('./Contract.js'); Object.defineProperty(exports, 'Contract', { enumerable: true, @@ -60,3 +77,10 @@ Object.defineProperty(exports, 'extendContract', { return Contract_js_1.extendContract; }, }); +var ContractRevive_js_1 = require('./ContractRevive.js'); +Object.defineProperty(exports, 'ContractRevive', { + enumerable: true, + get: function () { + return ContractRevive_js_1.ContractRevive; + }, +}); diff --git a/.api-revive/build-tsc-cjs/base/mock.js b/.api-contract/build-tsc-cjs/base/mock.js similarity index 100% rename from .api-revive/build-tsc-cjs/base/mock.js rename to .api-contract/build-tsc-cjs/base/mock.js diff --git a/.api-revive/build-tsc-cjs/base/types.js b/.api-contract/build-tsc-cjs/base/types.js similarity index 100% rename from .api-revive/build-tsc-cjs/base/types.js rename to .api-contract/build-tsc-cjs/base/types.js diff --git a/.api-revive/build-tsc-cjs/base/util.js b/.api-contract/build-tsc-cjs/base/util.js similarity index 100% rename from .api-revive/build-tsc-cjs/base/util.js rename to .api-contract/build-tsc-cjs/base/util.js diff --git a/.api-revive/build-tsc-cjs/bundle.js b/.api-contract/build-tsc-cjs/bundle.js similarity index 100% rename from .api-revive/build-tsc-cjs/bundle.js rename to .api-contract/build-tsc-cjs/bundle.js diff --git a/.api-revive/build-tsc-cjs/index.js b/.api-contract/build-tsc-cjs/index.js similarity index 100% rename from .api-revive/build-tsc-cjs/index.js rename to .api-contract/build-tsc-cjs/index.js diff --git a/.api-revive/build-tsc-cjs/packageDetect.js b/.api-contract/build-tsc-cjs/packageDetect.js similarity index 100% rename from .api-revive/build-tsc-cjs/packageDetect.js rename to .api-contract/build-tsc-cjs/packageDetect.js diff --git a/.api-revive/build-tsc-cjs/packageInfo.js b/.api-contract/build-tsc-cjs/packageInfo.js similarity index 87% rename from .api-revive/build-tsc-cjs/packageInfo.js rename to .api-contract/build-tsc-cjs/packageInfo.js index 86e0744f..39a18613 100644 --- a/.api-revive/build-tsc-cjs/packageInfo.js +++ b/.api-contract/build-tsc-cjs/packageInfo.js @@ -2,7 +2,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); exports.packageInfo = void 0; exports.packageInfo = { - name: '@polkadot/api-revive', + name: '@polkadot/api-contract', path: typeof __dirname === 'string' ? __dirname : 'auto', type: 'cjs', version: '15.8.1', diff --git a/.api-contract/build-tsc-cjs/promise/index.js b/.api-contract/build-tsc-cjs/promise/index.js new file mode 100644 index 00000000..050deffe --- /dev/null +++ b/.api-contract/build-tsc-cjs/promise/index.js @@ -0,0 +1,47 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.ContractRevivePromise = + exports.CodeRevivePromise = + exports.BlueprintRevivePromise = + exports.ContractPromise = + exports.CodePromise = + exports.BlueprintPromise = + void 0; +const api_1 = require('@polkadot/api'); +const index_js_1 = require('../base/index.js'); +class BlueprintPromise extends index_js_1.Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, api_1.toPromiseMethod); + } +} +exports.BlueprintPromise = BlueprintPromise; +class CodePromise extends index_js_1.Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, api_1.toPromiseMethod); + } +} +exports.CodePromise = CodePromise; +class ContractPromise extends index_js_1.Contract { + constructor(api, abi, address) { + super(api, abi, address, api_1.toPromiseMethod); + } +} +exports.ContractPromise = ContractPromise; +class BlueprintRevivePromise extends index_js_1.BlueprintRevive { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, api_1.toPromiseMethod); + } +} +exports.BlueprintRevivePromise = BlueprintRevivePromise; +class CodeRevivePromise extends index_js_1.CodeRevive { + constructor(api, abi, wasm) { + super(api, abi, wasm, api_1.toPromiseMethod); + } +} +exports.CodeRevivePromise = CodeRevivePromise; +class ContractRevivePromise extends index_js_1.ContractRevive { + constructor(api, abi, address) { + super(api, abi, address, api_1.toPromiseMethod); + } +} +exports.ContractRevivePromise = ContractRevivePromise; diff --git a/.api-revive/build-tsc-cjs/promise/types.js b/.api-contract/build-tsc-cjs/promise/types.js similarity index 100% rename from .api-revive/build-tsc-cjs/promise/types.js rename to .api-contract/build-tsc-cjs/promise/types.js diff --git a/.api-revive/build-tsc-cjs/rx/index.js b/.api-contract/build-tsc-cjs/rx/index.js similarity index 100% rename from .api-revive/build-tsc-cjs/rx/index.js rename to .api-contract/build-tsc-cjs/rx/index.js diff --git a/.api-revive/build-tsc-cjs/rx/types.js b/.api-contract/build-tsc-cjs/rx/types.js similarity index 100% rename from .api-revive/build-tsc-cjs/rx/types.js rename to .api-contract/build-tsc-cjs/rx/types.js diff --git a/.api-revive/build-tsc-cjs/types.js b/.api-contract/build-tsc-cjs/types.js similarity index 100% rename from .api-revive/build-tsc-cjs/types.js rename to .api-contract/build-tsc-cjs/types.js diff --git a/.api-revive/build-tsc-cjs/util.js b/.api-contract/build-tsc-cjs/util.js similarity index 100% rename from .api-revive/build-tsc-cjs/util.js rename to .api-contract/build-tsc-cjs/util.js diff --git a/.api-revive/build-tsc-esm/Abi/index.js b/.api-contract/build-tsc-esm/Abi/index.js similarity index 100% rename from .api-revive/build-tsc-esm/Abi/index.js rename to .api-contract/build-tsc-esm/Abi/index.js diff --git a/.api-revive/build-tsc-esm/Abi/toLatestCompatible.js b/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js similarity index 100% rename from .api-revive/build-tsc-esm/Abi/toLatestCompatible.js rename to .api-contract/build-tsc-esm/Abi/toLatestCompatible.js diff --git a/.api-revive/build-tsc-esm/Abi/toV1.js b/.api-contract/build-tsc-esm/Abi/toV1.js similarity index 100% rename from .api-revive/build-tsc-esm/Abi/toV1.js rename to .api-contract/build-tsc-esm/Abi/toV1.js diff --git a/.api-revive/build-tsc-esm/Abi/toV2.js b/.api-contract/build-tsc-esm/Abi/toV2.js similarity index 100% rename from .api-revive/build-tsc-esm/Abi/toV2.js rename to .api-contract/build-tsc-esm/Abi/toV2.js diff --git a/.api-revive/build-tsc-esm/Abi/toV3.js b/.api-contract/build-tsc-esm/Abi/toV3.js similarity index 100% rename from .api-revive/build-tsc-esm/Abi/toV3.js rename to .api-contract/build-tsc-esm/Abi/toV3.js diff --git a/.api-revive/build-tsc-esm/Abi/toV4.js b/.api-contract/build-tsc-esm/Abi/toV4.js similarity index 100% rename from .api-revive/build-tsc-esm/Abi/toV4.js rename to .api-contract/build-tsc-esm/Abi/toV4.js diff --git a/.api-revive/build-tsc-esm/augment.js b/.api-contract/build-tsc-esm/augment.js similarity index 100% rename from .api-revive/build-tsc-esm/augment.js rename to .api-contract/build-tsc-esm/augment.js diff --git a/.api-contract/build-tsc-esm/base/Base.js b/.api-contract/build-tsc-esm/base/Base.js new file mode 100644 index 00000000..42b006ed --- /dev/null +++ b/.api-contract/build-tsc-esm/base/Base.js @@ -0,0 +1,34 @@ +import { isFunction } from '@polkadot/util'; +import { Abi } from '../Abi/index.js'; +export class Base { + abi; + api; + _decorateMethod; + _isWeightV1; + constructor(api, abi, decorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.contracts || + !isFunction(api.tx.contracts.instantiateWithCode) || + api.tx.contracts.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', + ); + } + this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + get registry() { + return this.api.registry; + } +} diff --git a/.api-revive/build-tsc-esm/base/Base.js b/.api-contract/build-tsc-esm/base/BaseRevive.js similarity index 97% rename from .api-revive/build-tsc-esm/base/Base.js rename to .api-contract/build-tsc-esm/base/BaseRevive.js index 48f9863b..b8fe0161 100644 --- a/.api-revive/build-tsc-esm/base/Base.js +++ b/.api-contract/build-tsc-esm/base/BaseRevive.js @@ -1,6 +1,6 @@ import { isFunction } from '@polkadot/util'; import { Abi } from '../Abi/index.js'; -export class Base { +export class BaseRevive { abi; api; _decorateMethod; diff --git a/.api-contract/build-tsc-esm/base/Blueprint.js b/.api-contract/build-tsc-esm/base/Blueprint.js new file mode 100644 index 00000000..9edb5332 --- /dev/null +++ b/.api-contract/build-tsc-esm/base/Blueprint.js @@ -0,0 +1,71 @@ +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, isUndefined } from '@polkadot/util'; +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; +export class BlueprintSubmittableResult extends SubmittableResult { + contract; + constructor(result, contract) { + super(result); + this.contract = contract; + } +} +export class Blueprint extends Base { + /** + * @description The on-chain code hash for this blueprint + */ + codeHash; + __internal__tx = {}; + constructor(api, abi, codeHash, decorateMethod) { + super(api, abi, decorateMethod); + this.codeHash = this.registry.createType('Hash', codeHash); + this.abi.constructors.forEach(c => { + if (isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__deploy(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__deploy = ( + constructorOrId, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new BlueprintSubmittableResult( + result, + applyOnEvent( + result, + ['Instantiated'], + ([record]) => + new Contract(this.api, this.abi, record.event.data[1], this._decorateMethod), + ), + ), + ); + }; +} +export function extendBlueprint(type, decorateMethod) { + return class extends Blueprint { + static __BlueprintType = type; + constructor(api, abi, codeHash) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-revive/build-tsc-esm/base/Blueprint.js b/.api-contract/build-tsc-esm/base/BlueprintRevive.js similarity index 86% rename from .api-revive/build-tsc-esm/base/Blueprint.js rename to .api-contract/build-tsc-esm/base/BlueprintRevive.js index f0f4f8c3..65a8344d 100644 --- a/.api-revive/build-tsc-esm/base/Blueprint.js +++ b/.api-contract/build-tsc-esm/base/BlueprintRevive.js @@ -1,16 +1,9 @@ -import { SubmittableResult } from '@polkadot/api'; import { BN_ZERO, isUndefined } from '@polkadot/util'; -import { Base } from './Base.js'; +import { BaseRevive } from './BaseRevive.js'; +import { BlueprintSubmittableResult } from './Blueprint.js'; import { Contract } from './Contract.js'; import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class BlueprintSubmittableResult extends SubmittableResult { - contract; - constructor(result, contract) { - super(result); - this.contract = contract; - } -} -export class Blueprint extends Base { +export class BlueprintRevive extends BaseRevive { /** * @description The on-chain code hash for this blueprint */ @@ -66,7 +59,7 @@ export class Blueprint extends Base { }; } export function extendBlueprint(type, decorateMethod) { - return class extends Blueprint { + return class extends BlueprintRevive { static __BlueprintType = type; constructor(api, abi, codeHash) { super(api, abi, codeHash, decorateMethod); diff --git a/.api-contract/build-tsc-esm/base/Code.js b/.api-contract/build-tsc-esm/base/Code.js new file mode 100644 index 00000000..74cf92b1 --- /dev/null +++ b/.api-contract/build-tsc-esm/base/Code.js @@ -0,0 +1,88 @@ +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { Blueprint } from './Blueprint.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; +export class CodeSubmittableResult extends SubmittableResult { + blueprint; + contract; + constructor(result, blueprint, contract) { + super(result); + this.blueprint = blueprint; + this.contract = contract; + } +} +function isValidCode(code) { + return isWasm(code) || isRiscV(code); +} +export class Code extends Base { + code; + __internal__tx = {}; + constructor(api, abi, wasm, decorateMethod) { + super(api, abi, decorateMethod); + this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + this.abi.constructors.forEach(c => { + if (isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__instantiate(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__instantiate = ( + constructorOrId, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new CodeSubmittableResult( + result, + ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], records => + records.reduce( + ([blueprint, contract], { event }) => + this.api.events.contracts.Instantiated.is(event) + ? [ + blueprint, + new Contract(this.api, this.abi, event.data[1], this._decorateMethod), + ] + : this.api.events.contracts.CodeStored.is(event) + ? [ + new Blueprint(this.api, this.abi, event.data[0], this._decorateMethod), + contract, + ] + : [blueprint, contract], + [undefined, undefined], + ), + ) || [undefined, undefined]), + ), + ); + }; +} +export function extendCode(type, decorateMethod) { + return class extends Code { + static __CodeType = type; + constructor(api, abi, wasm) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-revive/build/base/Code.js b/.api-contract/build-tsc-esm/base/CodeRevive.js similarity index 77% rename from .api-revive/build/base/Code.js rename to .api-contract/build-tsc-esm/base/CodeRevive.js index c4e069e5..4c0740a1 100644 --- a/.api-revive/build/base/Code.js +++ b/.api-contract/build-tsc-esm/base/CodeRevive.js @@ -1,10 +1,10 @@ import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; -import { Base } from './Base.js'; -import { Blueprint } from './Blueprint.js'; +import { BN_ZERO, compactAddLength, isRiscV, isUndefined, u8aToU8a } from '@polkadot/util'; +import { BaseRevive } from './BaseRevive.js'; +import { BlueprintRevive } from './BlueprintRevive.js'; import { Contract } from './Contract.js'; import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class CodeSubmittableResult extends SubmittableResult { +export class CodeReviveSubmittableResult extends SubmittableResult { blueprint; contract; constructor(result, blueprint, contract) { @@ -14,9 +14,9 @@ export class CodeSubmittableResult extends SubmittableResult { } } function isValidCode(code) { - return isWasm(code) || isRiscV(code); + return isRiscV(code); } -export class Code extends Base { +export class CodeRevive extends BaseRevive { code; __internal__tx = {}; constructor(api, abi, wasm, decorateMethod) { @@ -41,8 +41,6 @@ export class Code extends Base { { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, params, ) => { - console.log('in instantiate'); - console.log(this.abi.info.source.wasmHash); return this.api.tx.revive .instantiateWithCode( value, @@ -56,9 +54,14 @@ export class Code extends Base { ) .withResultTransform( result => - new CodeSubmittableResult( + new CodeReviveSubmittableResult( result, - new Blueprint(this.api, this.abi, this.abi.info.source.wasmHash, this._decorateMethod), + new BlueprintRevive( + this.api, + this.abi, + this.abi.info.source.wasmHash, + this._decorateMethod, + ), new Contract( this.api, this.abi, @@ -70,7 +73,7 @@ export class Code extends Base { }; } export function extendCode(type, decorateMethod) { - return class extends Code { + return class extends CodeRevive { static __CodeType = type; constructor(api, abi, wasm) { super(api, abi, wasm, decorateMethod); diff --git a/.api-revive/build-tsc-esm/base/Contract.js b/.api-contract/build-tsc-esm/base/Contract.js similarity index 98% rename from .api-revive/build-tsc-esm/base/Contract.js rename to .api-contract/build-tsc-esm/base/Contract.js index 81ec5787..673f05a2 100644 --- a/.api-revive/build-tsc-esm/base/Contract.js +++ b/.api-contract/build-tsc-esm/base/Contract.js @@ -28,7 +28,7 @@ export class Contract extends Base { __internal__tx = {}; constructor(api, abi, address, decorateMethod) { super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); + this.address = this.registry.createType('AccountId', address); this.abi.messages.forEach(m => { if (isUndefined(this.__internal__tx[m.method])) { this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); @@ -68,7 +68,7 @@ export class Contract extends Base { { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, params, ) => { - return this.api.tx.revive + return this.api.tx.contracts .call( this.address, value, diff --git a/.api-contract/build-tsc-esm/base/ContractRevive.js b/.api-contract/build-tsc-esm/base/ContractRevive.js new file mode 100644 index 00000000..ab5ac9eb --- /dev/null +++ b/.api-contract/build-tsc-esm/base/ContractRevive.js @@ -0,0 +1,154 @@ +import { map } from 'rxjs'; +import { SubmittableResult } from '@polkadot/api'; +import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; +import { applyOnEvent } from '../util.js'; +import { BaseRevive } from './BaseRevive.js'; +import { convertWeight, withMeta } from './util.js'; +const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); +const l = logger('Contract'); +function createQuery(meta, fn) { + return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); +} +function createTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); +} +export class ContractSubmittableResult extends SubmittableResult { + contractEvents; + constructor(result, contractEvents) { + super(result); + this.contractEvents = contractEvents; + } +} +export class ContractRevive extends BaseRevive { + /** + * @description The on-chain address for this contract + */ + address; + __internal__query = {}; + __internal__tx = {}; + constructor(api, abi, address, decorateMethod) { + super(api, abi, decorateMethod); + this.address = this.registry.createType('AccountId20', address); + this.abi.messages.forEach(m => { + if (isUndefined(this.__internal__tx[m.method])) { + this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); + } + if (isUndefined(this.__internal__query[m.method])) { + this.__internal__query[m.method] = createQuery(m, (f, o, p) => + this.__internal__read(m, o, p).send(f), + ); + } + }); + } + get query() { + return this.__internal__query; + } + get tx() { + return this.__internal__tx; + } + __internal__getGas = (_gasLimit, isCall = false) => { + const weight = convertWeight(_gasLimit); + if (weight.v1Weight.gt(BN_ZERO)) { + return weight; + } + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? this.api.consts.system.blockWeights.maxBlock + : this.api.consts.system['maximumBlockWeight'], + ) + .v1Weight.muln(64) + .div(BN_HUNDRED), + ); + }; + __internal__exec = ( + messageOrId, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + result => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => + records + .map(record => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${error.message}`); + return null; + } + }) + .filter(decoded => !!decoded), + ), + ), + ); + }; + __internal__read = ( + messageOrId, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + const message = this.abi.findMessage(messageOrId); + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod(origin => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.__internal__getGas(gasLimit, true).v1Weight + : this.__internal__getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + })), + ), + ), + }; + }; +} +export function extendContract(type, decorateMethod) { + return class extends ContractRevive { + static __ContractType = type; + constructor(api, abi, address) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-revive/build/base/index.js b/.api-contract/build-tsc-esm/base/index.js similarity index 58% rename from .api-revive/build/base/index.js rename to .api-contract/build-tsc-esm/base/index.js index 905b4515..30a149b4 100644 --- a/.api-revive/build/base/index.js +++ b/.api-contract/build-tsc-esm/base/index.js @@ -1,3 +1,6 @@ export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { BlueprintRevive } from './BlueprintRevive.js'; export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { CodeRevive } from './CodeRevive.js'; export { Contract, extendContract } from './Contract.js'; +export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-revive/build-tsc-esm/base/mock.js b/.api-contract/build-tsc-esm/base/mock.js similarity index 100% rename from .api-revive/build-tsc-esm/base/mock.js rename to .api-contract/build-tsc-esm/base/mock.js diff --git a/.api-revive/build-tsc-esm/base/types.js b/.api-contract/build-tsc-esm/base/types.js similarity index 100% rename from .api-revive/build-tsc-esm/base/types.js rename to .api-contract/build-tsc-esm/base/types.js diff --git a/.api-revive/build-tsc-esm/base/util.js b/.api-contract/build-tsc-esm/base/util.js similarity index 100% rename from .api-revive/build-tsc-esm/base/util.js rename to .api-contract/build-tsc-esm/base/util.js diff --git a/.api-revive/build-tsc-esm/bundle.js b/.api-contract/build-tsc-esm/bundle.js similarity index 100% rename from .api-revive/build-tsc-esm/bundle.js rename to .api-contract/build-tsc-esm/bundle.js diff --git a/.api-revive/build-tsc-esm/index.js b/.api-contract/build-tsc-esm/index.js similarity index 100% rename from .api-revive/build-tsc-esm/index.js rename to .api-contract/build-tsc-esm/index.js diff --git a/.api-revive/build-tsc-esm/packageDetect.js b/.api-contract/build-tsc-esm/packageDetect.js similarity index 100% rename from .api-revive/build-tsc-esm/packageDetect.js rename to .api-contract/build-tsc-esm/packageDetect.js diff --git a/.api-revive/build-tsc-esm/packageInfo.js b/.api-contract/build-tsc-esm/packageInfo.js similarity index 88% rename from .api-revive/build-tsc-esm/packageInfo.js rename to .api-contract/build-tsc-esm/packageInfo.js index b9cf3215..0d90c7dc 100644 --- a/.api-revive/build-tsc-esm/packageInfo.js +++ b/.api-contract/build-tsc-esm/packageInfo.js @@ -1,5 +1,5 @@ export const packageInfo = { - name: '@polkadot/api-revive', + name: '@polkadot/api-contract', path: import.meta && import.meta.url ? new URL(import.meta.url).pathname.substring( diff --git a/.api-contract/build-tsc-esm/promise/index.js b/.api-contract/build-tsc-esm/promise/index.js new file mode 100644 index 00000000..76deb8a7 --- /dev/null +++ b/.api-contract/build-tsc-esm/promise/index.js @@ -0,0 +1,39 @@ +import { toPromiseMethod } from '@polkadot/api'; +import { + Blueprint, + BlueprintRevive, + Code, + CodeRevive, + Contract, + ContractRevive, +} from '../base/index.js'; +export class BlueprintPromise extends Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, toPromiseMethod); + } +} +export class CodePromise extends Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, toPromiseMethod); + } +} +export class ContractPromise extends Contract { + constructor(api, abi, address) { + super(api, abi, address, toPromiseMethod); + } +} +export class BlueprintRevivePromise extends BlueprintRevive { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, toPromiseMethod); + } +} +export class CodeRevivePromise extends CodeRevive { + constructor(api, abi, wasm) { + super(api, abi, wasm, toPromiseMethod); + } +} +export class ContractRevivePromise extends ContractRevive { + constructor(api, abi, address) { + super(api, abi, address, toPromiseMethod); + } +} diff --git a/.api-revive/build-tsc-esm/promise/types.js b/.api-contract/build-tsc-esm/promise/types.js similarity index 100% rename from .api-revive/build-tsc-esm/promise/types.js rename to .api-contract/build-tsc-esm/promise/types.js diff --git a/.api-revive/build-tsc-esm/rx/index.js b/.api-contract/build-tsc-esm/rx/index.js similarity index 100% rename from .api-revive/build-tsc-esm/rx/index.js rename to .api-contract/build-tsc-esm/rx/index.js diff --git a/.api-revive/build-tsc-esm/rx/types.js b/.api-contract/build-tsc-esm/rx/types.js similarity index 100% rename from .api-revive/build-tsc-esm/rx/types.js rename to .api-contract/build-tsc-esm/rx/types.js diff --git a/.api-revive/build-tsc-esm/types.js b/.api-contract/build-tsc-esm/types.js similarity index 100% rename from .api-revive/build-tsc-esm/types.js rename to .api-contract/build-tsc-esm/types.js diff --git a/.api-revive/build-tsc-esm/util.js b/.api-contract/build-tsc-esm/util.js similarity index 100% rename from .api-revive/build-tsc-esm/util.js rename to .api-contract/build-tsc-esm/util.js diff --git a/.api-revive/build-tsc/Abi/index.d.ts b/.api-contract/build-tsc/Abi/index.d.ts similarity index 100% rename from .api-revive/build-tsc/Abi/index.d.ts rename to .api-contract/build-tsc/Abi/index.d.ts diff --git a/.api-revive/build-tsc/Abi/toLatestCompatible.d.ts b/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts similarity index 100% rename from .api-revive/build-tsc/Abi/toLatestCompatible.d.ts rename to .api-contract/build-tsc/Abi/toLatestCompatible.d.ts diff --git a/.api-revive/build-tsc/Abi/toV1.d.ts b/.api-contract/build-tsc/Abi/toV1.d.ts similarity index 100% rename from .api-revive/build-tsc/Abi/toV1.d.ts rename to .api-contract/build-tsc/Abi/toV1.d.ts diff --git a/.api-revive/build-tsc/Abi/toV2.d.ts b/.api-contract/build-tsc/Abi/toV2.d.ts similarity index 100% rename from .api-revive/build-tsc/Abi/toV2.d.ts rename to .api-contract/build-tsc/Abi/toV2.d.ts diff --git a/.api-revive/build-tsc/Abi/toV3.d.ts b/.api-contract/build-tsc/Abi/toV3.d.ts similarity index 100% rename from .api-revive/build-tsc/Abi/toV3.d.ts rename to .api-contract/build-tsc/Abi/toV3.d.ts diff --git a/.api-revive/build-tsc/Abi/toV4.d.ts b/.api-contract/build-tsc/Abi/toV4.d.ts similarity index 100% rename from .api-revive/build-tsc/Abi/toV4.d.ts rename to .api-contract/build-tsc/Abi/toV4.d.ts diff --git a/.api-revive/build-tsc/augment.d.ts b/.api-contract/build-tsc/augment.d.ts similarity index 100% rename from .api-revive/build-tsc/augment.d.ts rename to .api-contract/build-tsc/augment.d.ts diff --git a/.api-revive/build-tsc/base/Base.d.ts b/.api-contract/build-tsc/base/Base.d.ts similarity index 100% rename from .api-revive/build-tsc/base/Base.d.ts rename to .api-contract/build-tsc/base/Base.d.ts diff --git a/.api-contract/build-tsc/base/BaseRevive.d.ts b/.api-contract/build-tsc/base/BaseRevive.d.ts new file mode 100644 index 00000000..51285215 --- /dev/null +++ b/.api-contract/build-tsc/base/BaseRevive.d.ts @@ -0,0 +1,16 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Registry } from '@polkadot/types/types'; +import { Abi } from '../Abi/index.js'; +export declare abstract class BaseRevive { + readonly abi: Abi; + readonly api: ApiBase; + protected readonly _decorateMethod: DecorateMethod; + protected readonly _isWeightV1: boolean; + constructor( + api: ApiBase, + abi: string | Record | Abi, + decorateMethod: DecorateMethod, + ); + get registry(): Registry; +} diff --git a/.api-revive/build-tsc/base/Blueprint.d.ts b/.api-contract/build-tsc/base/Blueprint.d.ts similarity index 100% rename from .api-revive/build-tsc/base/Blueprint.d.ts rename to .api-contract/build-tsc/base/Blueprint.d.ts diff --git a/.api-contract/build-tsc/base/BlueprintRevive.d.ts b/.api-contract/build-tsc/base/BlueprintRevive.d.ts new file mode 100644 index 00000000..56f6f57f --- /dev/null +++ b/.api-contract/build-tsc/base/BlueprintRevive.d.ts @@ -0,0 +1,29 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { BaseRevive } from './BaseRevive.js'; +export type BlueprintReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, +) => BlueprintRevive; +export declare class BlueprintRevive extends BaseRevive { + #private; + /** + * @description The on-chain code hash for this blueprint + */ + readonly codeHash: Hash; + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendBlueprint( + type: ApiType, + decorateMethod: DecorateMethod, +): BlueprintReviveConstructor; diff --git a/.api-revive/build-tsc/base/Code.d.ts b/.api-contract/build-tsc/base/Code.d.ts similarity index 100% rename from .api-revive/build-tsc/base/Code.d.ts rename to .api-contract/build-tsc/base/Code.d.ts diff --git a/.api-contract/build-tsc/base/CodeRevive.d.ts b/.api-contract/build-tsc/base/CodeRevive.d.ts new file mode 100644 index 00000000..72a11c78 --- /dev/null +++ b/.api-contract/build-tsc/base/CodeRevive.d.ts @@ -0,0 +1,40 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { BaseRevive } from './BaseRevive.js'; +import { BlueprintRevive } from './BlueprintRevive.js'; +import { Contract } from './Contract.js'; +export type CodeReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, +) => CodeRevive; +export declare class CodeReviveSubmittableResult< + ApiType extends ApiTypes, +> extends SubmittableResult { + readonly blueprint?: BlueprintRevive | undefined; + readonly contract?: Contract | undefined; + constructor( + result: ISubmittableResult, + blueprint?: BlueprintRevive | undefined, + contract?: Contract | undefined, + ); +} +export declare class CodeRevive extends BaseRevive { + #private; + readonly code: Uint8Array; + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendCode( + type: ApiType, + decorateMethod: DecorateMethod, +): CodeReviveConstructor; diff --git a/.api-revive/build-tsc/base/Contract.d.ts b/.api-contract/build-tsc/base/Contract.d.ts similarity index 90% rename from .api-revive/build-tsc/base/Contract.d.ts rename to .api-contract/build-tsc/base/Contract.d.ts index e60d7540..3add8756 100644 --- a/.api-revive/build-tsc/base/Contract.d.ts +++ b/.api-contract/build-tsc/base/Contract.d.ts @@ -1,6 +1,6 @@ import type { ApiBase } from '@polkadot/api/base'; import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; +import type { AccountId } from '@polkadot/types/interfaces'; import type { ISubmittableResult } from '@polkadot/types/types'; import type { Abi } from '../Abi/index.js'; import type { DecodedEvent } from '../types.js'; @@ -21,11 +21,11 @@ export declare class Contract extends Base { /** * @description The on-chain address for this contract */ - readonly address: AccountId20; + readonly address: AccountId; constructor( api: ApiBase, abi: string | Record | Abi, - address: string | AccountId20, + address: string | AccountId, decorateMethod: DecorateMethod, ); get query(): MapMessageQuery; diff --git a/.api-contract/build-tsc/base/ContractRevive.d.ts b/.api-contract/build-tsc/base/ContractRevive.d.ts new file mode 100644 index 00000000..241b4d37 --- /dev/null +++ b/.api-contract/build-tsc/base/ContractRevive.d.ts @@ -0,0 +1,37 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { DecodedEvent } from '../types.js'; +import type { MapMessageQuery, MapMessageTx } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { BaseRevive } from './BaseRevive.js'; +export type ContractReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, +) => ContractRevive; +export declare class ContractSubmittableResult extends SubmittableResult { + readonly contractEvents?: DecodedEvent[] | undefined; + constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); +} +export declare class ContractRevive extends BaseRevive { + #private; + /** + * @description The on-chain address for this contract + */ + readonly address: AccountId20; + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId20, + decorateMethod: DecorateMethod, + ); + get query(): MapMessageQuery; + get tx(): MapMessageTx; +} +export declare function extendContract( + type: ApiType, + decorateMethod: DecorateMethod, +): ContractReviveConstructor; diff --git a/.api-revive/build/cjs/base/index.d.ts b/.api-contract/build-tsc/base/index.d.ts similarity index 58% rename from .api-revive/build/cjs/base/index.d.ts rename to .api-contract/build-tsc/base/index.d.ts index 905b4515..30a149b4 100644 --- a/.api-revive/build/cjs/base/index.d.ts +++ b/.api-contract/build-tsc/base/index.d.ts @@ -1,3 +1,6 @@ export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { BlueprintRevive } from './BlueprintRevive.js'; export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { CodeRevive } from './CodeRevive.js'; export { Contract, extendContract } from './Contract.js'; +export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-revive/build-tsc/base/mock.d.ts b/.api-contract/build-tsc/base/mock.d.ts similarity index 100% rename from .api-revive/build-tsc/base/mock.d.ts rename to .api-contract/build-tsc/base/mock.d.ts diff --git a/.api-revive/build-tsc/base/types.d.ts b/.api-contract/build-tsc/base/types.d.ts similarity index 100% rename from .api-revive/build-tsc/base/types.d.ts rename to .api-contract/build-tsc/base/types.d.ts diff --git a/.api-revive/build-tsc/base/util.d.ts b/.api-contract/build-tsc/base/util.d.ts similarity index 100% rename from .api-revive/build-tsc/base/util.d.ts rename to .api-contract/build-tsc/base/util.d.ts diff --git a/.api-revive/build-tsc/bundle.d.ts b/.api-contract/build-tsc/bundle.d.ts similarity index 100% rename from .api-revive/build-tsc/bundle.d.ts rename to .api-contract/build-tsc/bundle.d.ts diff --git a/.api-revive/build-tsc/index.d.ts b/.api-contract/build-tsc/index.d.ts similarity index 100% rename from .api-revive/build-tsc/index.d.ts rename to .api-contract/build-tsc/index.d.ts diff --git a/.api-revive/build-tsc/packageDetect.d.ts b/.api-contract/build-tsc/packageDetect.d.ts similarity index 100% rename from .api-revive/build-tsc/packageDetect.d.ts rename to .api-contract/build-tsc/packageDetect.d.ts diff --git a/.api-revive/build-tsc/packageInfo.d.ts b/.api-contract/build-tsc/packageInfo.d.ts similarity index 100% rename from .api-revive/build-tsc/packageInfo.d.ts rename to .api-contract/build-tsc/packageInfo.d.ts diff --git a/.api-contract/build-tsc/promise/index.d.ts b/.api-contract/build-tsc/promise/index.d.ts new file mode 100644 index 00000000..3c1f5a23 --- /dev/null +++ b/.api-contract/build-tsc/promise/index.d.ts @@ -0,0 +1,53 @@ +import type { ApiPromise } from '@polkadot/api'; +import type { AccountId, AccountId20, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import { + Blueprint, + BlueprintRevive, + Code, + CodeRevive, + Contract, + ContractRevive, +} from '../base/index.js'; +export declare class BlueprintPromise extends Blueprint<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ); +} +export declare class CodePromise extends Code<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractPromise extends Contract<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId, + ); +} +export declare class BlueprintRevivePromise extends BlueprintRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ); +} +export declare class CodeRevivePromise extends CodeRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractRevivePromise extends ContractRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId20, + ); +} diff --git a/.api-revive/build-tsc/promise/types.d.ts b/.api-contract/build-tsc/promise/types.d.ts similarity index 100% rename from .api-revive/build-tsc/promise/types.d.ts rename to .api-contract/build-tsc/promise/types.d.ts diff --git a/.api-revive/build-tsc/rx/index.d.ts b/.api-contract/build-tsc/rx/index.d.ts similarity index 100% rename from .api-revive/build-tsc/rx/index.d.ts rename to .api-contract/build-tsc/rx/index.d.ts diff --git a/.api-revive/build-tsc/rx/types.d.ts b/.api-contract/build-tsc/rx/types.d.ts similarity index 100% rename from .api-revive/build-tsc/rx/types.d.ts rename to .api-contract/build-tsc/rx/types.d.ts diff --git a/.api-revive/build-tsc/types.d.ts b/.api-contract/build-tsc/types.d.ts similarity index 100% rename from .api-revive/build-tsc/types.d.ts rename to .api-contract/build-tsc/types.d.ts diff --git a/.api-revive/build-tsc/util.d.ts b/.api-contract/build-tsc/util.d.ts similarity index 100% rename from .api-revive/build-tsc/util.d.ts rename to .api-contract/build-tsc/util.d.ts diff --git a/.api-revive/build/Abi/index.d.ts b/.api-contract/build/Abi/index.d.ts similarity index 100% rename from .api-revive/build/Abi/index.d.ts rename to .api-contract/build/Abi/index.d.ts diff --git a/.api-revive/build/Abi/index.js b/.api-contract/build/Abi/index.js similarity index 100% rename from .api-revive/build/Abi/index.js rename to .api-contract/build/Abi/index.js diff --git a/.api-revive/build/Abi/toLatestCompatible.d.ts b/.api-contract/build/Abi/toLatestCompatible.d.ts similarity index 100% rename from .api-revive/build/Abi/toLatestCompatible.d.ts rename to .api-contract/build/Abi/toLatestCompatible.d.ts diff --git a/.api-revive/build/Abi/toLatestCompatible.js b/.api-contract/build/Abi/toLatestCompatible.js similarity index 100% rename from .api-revive/build/Abi/toLatestCompatible.js rename to .api-contract/build/Abi/toLatestCompatible.js diff --git a/.api-revive/build/Abi/toV1.d.ts b/.api-contract/build/Abi/toV1.d.ts similarity index 100% rename from .api-revive/build/Abi/toV1.d.ts rename to .api-contract/build/Abi/toV1.d.ts diff --git a/.api-revive/build/Abi/toV1.js b/.api-contract/build/Abi/toV1.js similarity index 100% rename from .api-revive/build/Abi/toV1.js rename to .api-contract/build/Abi/toV1.js diff --git a/.api-revive/build/Abi/toV2.d.ts b/.api-contract/build/Abi/toV2.d.ts similarity index 100% rename from .api-revive/build/Abi/toV2.d.ts rename to .api-contract/build/Abi/toV2.d.ts diff --git a/.api-revive/build/Abi/toV2.js b/.api-contract/build/Abi/toV2.js similarity index 100% rename from .api-revive/build/Abi/toV2.js rename to .api-contract/build/Abi/toV2.js diff --git a/.api-revive/build/Abi/toV3.d.ts b/.api-contract/build/Abi/toV3.d.ts similarity index 100% rename from .api-revive/build/Abi/toV3.d.ts rename to .api-contract/build/Abi/toV3.d.ts diff --git a/.api-revive/build/Abi/toV3.js b/.api-contract/build/Abi/toV3.js similarity index 100% rename from .api-revive/build/Abi/toV3.js rename to .api-contract/build/Abi/toV3.js diff --git a/.api-revive/build/Abi/toV4.d.ts b/.api-contract/build/Abi/toV4.d.ts similarity index 100% rename from .api-revive/build/Abi/toV4.d.ts rename to .api-contract/build/Abi/toV4.d.ts diff --git a/.api-revive/build/Abi/toV4.js b/.api-contract/build/Abi/toV4.js similarity index 100% rename from .api-revive/build/Abi/toV4.js rename to .api-contract/build/Abi/toV4.js diff --git a/.api-revive/build/LICENSE b/.api-contract/build/LICENSE similarity index 100% rename from .api-revive/build/LICENSE rename to .api-contract/build/LICENSE diff --git a/.api-revive/build/README.md b/.api-contract/build/README.md similarity index 75% rename from .api-revive/build/README.md rename to .api-contract/build/README.md index 48d2ef2c..f50beb5f 100644 --- a/.api-revive/build/README.md +++ b/.api-contract/build/README.md @@ -1,3 +1,3 @@ -# @polkadot/api-revive +# @polkadot/api-contract Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-revive/build/augment.d.ts b/.api-contract/build/augment.d.ts similarity index 100% rename from .api-revive/build/augment.d.ts rename to .api-contract/build/augment.d.ts diff --git a/.api-revive/build/augment.js b/.api-contract/build/augment.js similarity index 100% rename from .api-revive/build/augment.js rename to .api-contract/build/augment.js diff --git a/.api-revive/build/base/Base.d.ts b/.api-contract/build/base/Base.d.ts similarity index 100% rename from .api-revive/build/base/Base.d.ts rename to .api-contract/build/base/Base.d.ts diff --git a/.api-contract/build/base/Base.js b/.api-contract/build/base/Base.js new file mode 100644 index 00000000..42b006ed --- /dev/null +++ b/.api-contract/build/base/Base.js @@ -0,0 +1,34 @@ +import { isFunction } from '@polkadot/util'; +import { Abi } from '../Abi/index.js'; +export class Base { + abi; + api; + _decorateMethod; + _isWeightV1; + constructor(api, abi, decorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.contracts || + !isFunction(api.tx.contracts.instantiateWithCode) || + api.tx.contracts.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', + ); + } + this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + get registry() { + return this.api.registry; + } +} diff --git a/.api-contract/build/base/BaseRevive.d.ts b/.api-contract/build/base/BaseRevive.d.ts new file mode 100644 index 00000000..51285215 --- /dev/null +++ b/.api-contract/build/base/BaseRevive.d.ts @@ -0,0 +1,16 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Registry } from '@polkadot/types/types'; +import { Abi } from '../Abi/index.js'; +export declare abstract class BaseRevive { + readonly abi: Abi; + readonly api: ApiBase; + protected readonly _decorateMethod: DecorateMethod; + protected readonly _isWeightV1: boolean; + constructor( + api: ApiBase, + abi: string | Record | Abi, + decorateMethod: DecorateMethod, + ); + get registry(): Registry; +} diff --git a/.api-revive/build/base/Base.js b/.api-contract/build/base/BaseRevive.js similarity index 97% rename from .api-revive/build/base/Base.js rename to .api-contract/build/base/BaseRevive.js index 48f9863b..b8fe0161 100644 --- a/.api-revive/build/base/Base.js +++ b/.api-contract/build/base/BaseRevive.js @@ -1,6 +1,6 @@ import { isFunction } from '@polkadot/util'; import { Abi } from '../Abi/index.js'; -export class Base { +export class BaseRevive { abi; api; _decorateMethod; diff --git a/.api-revive/build/base/Blueprint.d.ts b/.api-contract/build/base/Blueprint.d.ts similarity index 100% rename from .api-revive/build/base/Blueprint.d.ts rename to .api-contract/build/base/Blueprint.d.ts diff --git a/.api-contract/build/base/Blueprint.js b/.api-contract/build/base/Blueprint.js new file mode 100644 index 00000000..9edb5332 --- /dev/null +++ b/.api-contract/build/base/Blueprint.js @@ -0,0 +1,71 @@ +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, isUndefined } from '@polkadot/util'; +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; +export class BlueprintSubmittableResult extends SubmittableResult { + contract; + constructor(result, contract) { + super(result); + this.contract = contract; + } +} +export class Blueprint extends Base { + /** + * @description The on-chain code hash for this blueprint + */ + codeHash; + __internal__tx = {}; + constructor(api, abi, codeHash, decorateMethod) { + super(api, abi, decorateMethod); + this.codeHash = this.registry.createType('Hash', codeHash); + this.abi.constructors.forEach(c => { + if (isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__deploy(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__deploy = ( + constructorOrId, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new BlueprintSubmittableResult( + result, + applyOnEvent( + result, + ['Instantiated'], + ([record]) => + new Contract(this.api, this.abi, record.event.data[1], this._decorateMethod), + ), + ), + ); + }; +} +export function extendBlueprint(type, decorateMethod) { + return class extends Blueprint { + static __BlueprintType = type; + constructor(api, abi, codeHash) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-contract/build/base/BlueprintRevive.d.ts b/.api-contract/build/base/BlueprintRevive.d.ts new file mode 100644 index 00000000..56f6f57f --- /dev/null +++ b/.api-contract/build/base/BlueprintRevive.d.ts @@ -0,0 +1,29 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { BaseRevive } from './BaseRevive.js'; +export type BlueprintReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, +) => BlueprintRevive; +export declare class BlueprintRevive extends BaseRevive { + #private; + /** + * @description The on-chain code hash for this blueprint + */ + readonly codeHash: Hash; + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendBlueprint( + type: ApiType, + decorateMethod: DecorateMethod, +): BlueprintReviveConstructor; diff --git a/.api-revive/build/base/Blueprint.js b/.api-contract/build/base/BlueprintRevive.js similarity index 86% rename from .api-revive/build/base/Blueprint.js rename to .api-contract/build/base/BlueprintRevive.js index f0f4f8c3..65a8344d 100644 --- a/.api-revive/build/base/Blueprint.js +++ b/.api-contract/build/base/BlueprintRevive.js @@ -1,16 +1,9 @@ -import { SubmittableResult } from '@polkadot/api'; import { BN_ZERO, isUndefined } from '@polkadot/util'; -import { Base } from './Base.js'; +import { BaseRevive } from './BaseRevive.js'; +import { BlueprintSubmittableResult } from './Blueprint.js'; import { Contract } from './Contract.js'; import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class BlueprintSubmittableResult extends SubmittableResult { - contract; - constructor(result, contract) { - super(result); - this.contract = contract; - } -} -export class Blueprint extends Base { +export class BlueprintRevive extends BaseRevive { /** * @description The on-chain code hash for this blueprint */ @@ -66,7 +59,7 @@ export class Blueprint extends Base { }; } export function extendBlueprint(type, decorateMethod) { - return class extends Blueprint { + return class extends BlueprintRevive { static __BlueprintType = type; constructor(api, abi, codeHash) { super(api, abi, codeHash, decorateMethod); diff --git a/.api-revive/build/base/Code.d.ts b/.api-contract/build/base/Code.d.ts similarity index 100% rename from .api-revive/build/base/Code.d.ts rename to .api-contract/build/base/Code.d.ts diff --git a/.api-contract/build/base/Code.js b/.api-contract/build/base/Code.js new file mode 100644 index 00000000..74cf92b1 --- /dev/null +++ b/.api-contract/build/base/Code.js @@ -0,0 +1,88 @@ +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { Blueprint } from './Blueprint.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; +export class CodeSubmittableResult extends SubmittableResult { + blueprint; + contract; + constructor(result, blueprint, contract) { + super(result); + this.blueprint = blueprint; + this.contract = contract; + } +} +function isValidCode(code) { + return isWasm(code) || isRiscV(code); +} +export class Code extends Base { + code; + __internal__tx = {}; + constructor(api, abi, wasm, decorateMethod) { + super(api, abi, decorateMethod); + this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + this.abi.constructors.forEach(c => { + if (isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__instantiate(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__instantiate = ( + constructorOrId, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new CodeSubmittableResult( + result, + ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], records => + records.reduce( + ([blueprint, contract], { event }) => + this.api.events.contracts.Instantiated.is(event) + ? [ + blueprint, + new Contract(this.api, this.abi, event.data[1], this._decorateMethod), + ] + : this.api.events.contracts.CodeStored.is(event) + ? [ + new Blueprint(this.api, this.abi, event.data[0], this._decorateMethod), + contract, + ] + : [blueprint, contract], + [undefined, undefined], + ), + ) || [undefined, undefined]), + ), + ); + }; +} +export function extendCode(type, decorateMethod) { + return class extends Code { + static __CodeType = type; + constructor(api, abi, wasm) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-contract/build/base/CodeRevive.d.ts b/.api-contract/build/base/CodeRevive.d.ts new file mode 100644 index 00000000..72a11c78 --- /dev/null +++ b/.api-contract/build/base/CodeRevive.d.ts @@ -0,0 +1,40 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { BaseRevive } from './BaseRevive.js'; +import { BlueprintRevive } from './BlueprintRevive.js'; +import { Contract } from './Contract.js'; +export type CodeReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, +) => CodeRevive; +export declare class CodeReviveSubmittableResult< + ApiType extends ApiTypes, +> extends SubmittableResult { + readonly blueprint?: BlueprintRevive | undefined; + readonly contract?: Contract | undefined; + constructor( + result: ISubmittableResult, + blueprint?: BlueprintRevive | undefined, + contract?: Contract | undefined, + ); +} +export declare class CodeRevive extends BaseRevive { + #private; + readonly code: Uint8Array; + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendCode( + type: ApiType, + decorateMethod: DecorateMethod, +): CodeReviveConstructor; diff --git a/.api-revive/build-tsc-esm/base/Code.js b/.api-contract/build/base/CodeRevive.js similarity index 77% rename from .api-revive/build-tsc-esm/base/Code.js rename to .api-contract/build/base/CodeRevive.js index c4e069e5..4c0740a1 100644 --- a/.api-revive/build-tsc-esm/base/Code.js +++ b/.api-contract/build/base/CodeRevive.js @@ -1,10 +1,10 @@ import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; -import { Base } from './Base.js'; -import { Blueprint } from './Blueprint.js'; +import { BN_ZERO, compactAddLength, isRiscV, isUndefined, u8aToU8a } from '@polkadot/util'; +import { BaseRevive } from './BaseRevive.js'; +import { BlueprintRevive } from './BlueprintRevive.js'; import { Contract } from './Contract.js'; import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class CodeSubmittableResult extends SubmittableResult { +export class CodeReviveSubmittableResult extends SubmittableResult { blueprint; contract; constructor(result, blueprint, contract) { @@ -14,9 +14,9 @@ export class CodeSubmittableResult extends SubmittableResult { } } function isValidCode(code) { - return isWasm(code) || isRiscV(code); + return isRiscV(code); } -export class Code extends Base { +export class CodeRevive extends BaseRevive { code; __internal__tx = {}; constructor(api, abi, wasm, decorateMethod) { @@ -41,8 +41,6 @@ export class Code extends Base { { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, params, ) => { - console.log('in instantiate'); - console.log(this.abi.info.source.wasmHash); return this.api.tx.revive .instantiateWithCode( value, @@ -56,9 +54,14 @@ export class Code extends Base { ) .withResultTransform( result => - new CodeSubmittableResult( + new CodeReviveSubmittableResult( result, - new Blueprint(this.api, this.abi, this.abi.info.source.wasmHash, this._decorateMethod), + new BlueprintRevive( + this.api, + this.abi, + this.abi.info.source.wasmHash, + this._decorateMethod, + ), new Contract( this.api, this.abi, @@ -70,7 +73,7 @@ export class Code extends Base { }; } export function extendCode(type, decorateMethod) { - return class extends Code { + return class extends CodeRevive { static __CodeType = type; constructor(api, abi, wasm) { super(api, abi, wasm, decorateMethod); diff --git a/.api-revive/build/base/Contract.d.ts b/.api-contract/build/base/Contract.d.ts similarity index 90% rename from .api-revive/build/base/Contract.d.ts rename to .api-contract/build/base/Contract.d.ts index e60d7540..3add8756 100644 --- a/.api-revive/build/base/Contract.d.ts +++ b/.api-contract/build/base/Contract.d.ts @@ -1,6 +1,6 @@ import type { ApiBase } from '@polkadot/api/base'; import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; +import type { AccountId } from '@polkadot/types/interfaces'; import type { ISubmittableResult } from '@polkadot/types/types'; import type { Abi } from '../Abi/index.js'; import type { DecodedEvent } from '../types.js'; @@ -21,11 +21,11 @@ export declare class Contract extends Base { /** * @description The on-chain address for this contract */ - readonly address: AccountId20; + readonly address: AccountId; constructor( api: ApiBase, abi: string | Record | Abi, - address: string | AccountId20, + address: string | AccountId, decorateMethod: DecorateMethod, ); get query(): MapMessageQuery; diff --git a/.api-revive/build/base/Contract.js b/.api-contract/build/base/Contract.js similarity index 98% rename from .api-revive/build/base/Contract.js rename to .api-contract/build/base/Contract.js index 81ec5787..673f05a2 100644 --- a/.api-revive/build/base/Contract.js +++ b/.api-contract/build/base/Contract.js @@ -28,7 +28,7 @@ export class Contract extends Base { __internal__tx = {}; constructor(api, abi, address, decorateMethod) { super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); + this.address = this.registry.createType('AccountId', address); this.abi.messages.forEach(m => { if (isUndefined(this.__internal__tx[m.method])) { this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); @@ -68,7 +68,7 @@ export class Contract extends Base { { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, params, ) => { - return this.api.tx.revive + return this.api.tx.contracts .call( this.address, value, diff --git a/.api-contract/build/base/ContractRevive.d.ts b/.api-contract/build/base/ContractRevive.d.ts new file mode 100644 index 00000000..241b4d37 --- /dev/null +++ b/.api-contract/build/base/ContractRevive.d.ts @@ -0,0 +1,37 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { DecodedEvent } from '../types.js'; +import type { MapMessageQuery, MapMessageTx } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { BaseRevive } from './BaseRevive.js'; +export type ContractReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, +) => ContractRevive; +export declare class ContractSubmittableResult extends SubmittableResult { + readonly contractEvents?: DecodedEvent[] | undefined; + constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); +} +export declare class ContractRevive extends BaseRevive { + #private; + /** + * @description The on-chain address for this contract + */ + readonly address: AccountId20; + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId20, + decorateMethod: DecorateMethod, + ); + get query(): MapMessageQuery; + get tx(): MapMessageTx; +} +export declare function extendContract( + type: ApiType, + decorateMethod: DecorateMethod, +): ContractReviveConstructor; diff --git a/.api-contract/build/base/ContractRevive.js b/.api-contract/build/base/ContractRevive.js new file mode 100644 index 00000000..ab5ac9eb --- /dev/null +++ b/.api-contract/build/base/ContractRevive.js @@ -0,0 +1,154 @@ +import { map } from 'rxjs'; +import { SubmittableResult } from '@polkadot/api'; +import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; +import { applyOnEvent } from '../util.js'; +import { BaseRevive } from './BaseRevive.js'; +import { convertWeight, withMeta } from './util.js'; +const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); +const l = logger('Contract'); +function createQuery(meta, fn) { + return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); +} +function createTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); +} +export class ContractSubmittableResult extends SubmittableResult { + contractEvents; + constructor(result, contractEvents) { + super(result); + this.contractEvents = contractEvents; + } +} +export class ContractRevive extends BaseRevive { + /** + * @description The on-chain address for this contract + */ + address; + __internal__query = {}; + __internal__tx = {}; + constructor(api, abi, address, decorateMethod) { + super(api, abi, decorateMethod); + this.address = this.registry.createType('AccountId20', address); + this.abi.messages.forEach(m => { + if (isUndefined(this.__internal__tx[m.method])) { + this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); + } + if (isUndefined(this.__internal__query[m.method])) { + this.__internal__query[m.method] = createQuery(m, (f, o, p) => + this.__internal__read(m, o, p).send(f), + ); + } + }); + } + get query() { + return this.__internal__query; + } + get tx() { + return this.__internal__tx; + } + __internal__getGas = (_gasLimit, isCall = false) => { + const weight = convertWeight(_gasLimit); + if (weight.v1Weight.gt(BN_ZERO)) { + return weight; + } + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? this.api.consts.system.blockWeights.maxBlock + : this.api.consts.system['maximumBlockWeight'], + ) + .v1Weight.muln(64) + .div(BN_HUNDRED), + ); + }; + __internal__exec = ( + messageOrId, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + result => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => + records + .map(record => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${error.message}`); + return null; + } + }) + .filter(decoded => !!decoded), + ), + ), + ); + }; + __internal__read = ( + messageOrId, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + const message = this.abi.findMessage(messageOrId); + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod(origin => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.__internal__getGas(gasLimit, true).v1Weight + : this.__internal__getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + })), + ), + ), + }; + }; +} +export function extendContract(type, decorateMethod) { + return class extends ContractRevive { + static __ContractType = type; + constructor(api, abi, address) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-revive/build-tsc/base/index.d.ts b/.api-contract/build/base/index.d.ts similarity index 58% rename from .api-revive/build-tsc/base/index.d.ts rename to .api-contract/build/base/index.d.ts index 905b4515..30a149b4 100644 --- a/.api-revive/build-tsc/base/index.d.ts +++ b/.api-contract/build/base/index.d.ts @@ -1,3 +1,6 @@ export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { BlueprintRevive } from './BlueprintRevive.js'; export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { CodeRevive } from './CodeRevive.js'; export { Contract, extendContract } from './Contract.js'; +export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-revive/build-tsc-esm/base/index.js b/.api-contract/build/base/index.js similarity index 58% rename from .api-revive/build-tsc-esm/base/index.js rename to .api-contract/build/base/index.js index 905b4515..30a149b4 100644 --- a/.api-revive/build-tsc-esm/base/index.js +++ b/.api-contract/build/base/index.js @@ -1,3 +1,6 @@ export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { BlueprintRevive } from './BlueprintRevive.js'; export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { CodeRevive } from './CodeRevive.js'; export { Contract, extendContract } from './Contract.js'; +export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-revive/build/base/mock.d.ts b/.api-contract/build/base/mock.d.ts similarity index 100% rename from .api-revive/build/base/mock.d.ts rename to .api-contract/build/base/mock.d.ts diff --git a/.api-revive/build/base/mock.js b/.api-contract/build/base/mock.js similarity index 100% rename from .api-revive/build/base/mock.js rename to .api-contract/build/base/mock.js diff --git a/.api-revive/build/base/types.d.ts b/.api-contract/build/base/types.d.ts similarity index 100% rename from .api-revive/build/base/types.d.ts rename to .api-contract/build/base/types.d.ts diff --git a/.api-revive/build/base/types.js b/.api-contract/build/base/types.js similarity index 100% rename from .api-revive/build/base/types.js rename to .api-contract/build/base/types.js diff --git a/.api-revive/build/base/util.d.ts b/.api-contract/build/base/util.d.ts similarity index 100% rename from .api-revive/build/base/util.d.ts rename to .api-contract/build/base/util.d.ts diff --git a/.api-revive/build/base/util.js b/.api-contract/build/base/util.js similarity index 100% rename from .api-revive/build/base/util.js rename to .api-contract/build/base/util.js diff --git a/.api-revive/build/bundle-polkadot-api-contract.js b/.api-contract/build/bundle-polkadot-api-contract.js similarity index 81% rename from .api-revive/build/bundle-polkadot-api-contract.js rename to .api-contract/build/bundle-polkadot-api-contract.js index cb628937..4ccd6aaa 100644 --- a/.api-revive/build/bundle-polkadot-api-contract.js +++ b/.api-contract/build/bundle-polkadot-api-contract.js @@ -172,7 +172,7 @@ ['V0', v0ToLatestCompatible], ]; - const l$1 = util.logger('Abi'); + const l$2 = util.logger('Abi'); const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; function findMessage(list, messageOrId) { const message = util.isNumber(messageOrId) @@ -370,7 +370,7 @@ : typeDef, }; } catch (error) { - l$1.error(`Error expanding argument ${index} in ${util.stringify(spec)}`); + l$2.error(`Error expanding argument ${index} in ${util.stringify(spec)}`); throw error; } }); @@ -475,7 +475,7 @@ } const packageInfo = { - name: '@polkadot/api-revive', + name: '@polkadot/api-contract', path: { url: @@ -484,21 +484,21 @@ : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-revive.js', document.baseURI).href, + new URL('bundle-polkadot-api-contract.js', document.baseURI).href, } && (typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-revive.js', document.baseURI).href) + new URL('bundle-polkadot-api-contract.js', document.baseURI).href) ? new URL( typeof document === 'undefined' && typeof location === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-revive.js', document.baseURI).href, + new URL('bundle-polkadot-api-contract.js', document.baseURI).href, ).pathname.substring( 0, new URL( @@ -507,7 +507,7 @@ : typeof document === 'undefined' ? location.href : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-revive.js', document.baseURI).href, + new URL('bundle-polkadot-api-contract.js', document.baseURI).href, ).pathname.lastIndexOf('/') + 1, ) : 'auto', @@ -515,6 +515,16 @@ version: '15.8.1', }; + function applyOnEvent(result, types, fn) { + if (result.isInBlock || result.isFinalized) { + const records = result.filterRecords('contracts', types); + if (records.length) { + return fn(records); + } + } + return undefined; + } + class Base { abi; api; @@ -526,16 +536,16 @@ 'Your API has not been initialized correctly and is not connected to a chain', ); } else if ( - !api.tx.revive || - !util.isFunction(api.tx.revive.instantiateWithCode) || - api.tx.revive.instantiateWithCode.meta.args.length !== 6 + !api.tx.contracts || + !util.isFunction(api.tx.contracts.instantiateWithCode) || + api.tx.contracts.instantiateWithCode.meta.args.length !== 6 ) { throw new Error( - 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', + 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', ); - } else if (!api.call.reviveApi || !util.isFunction(api.call.reviveApi.call)) { + } else if (!api.call.contractsApi || !util.isFunction(api.call.contractsApi.call)) { throw new Error( - 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', + 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', ); } this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); @@ -1091,16 +1101,6 @@ }); } - function applyOnEvent(result, types, fn) { - if (result.isInBlock || result.isFinalized) { - const records = result.filterRecords('contracts', types); - if (records.length) { - return fn(records); - } - } - return undefined; - } - const EMPTY_SALT = new Uint8Array(); function withMeta(meta, creator) { creator.meta = meta; @@ -1129,34 +1129,34 @@ return !!weight.proofSize; } - const MAX_CALL_GAS = new util.BN(5_000_000_000_000).isub(util.BN_ONE); - const l = util.logger('Contract'); - function createQuery(meta, fn) { + const MAX_CALL_GAS$1 = new util.BN(5_000_000_000_000).isub(util.BN_ONE); + const l$1 = util.logger('Contract'); + function createQuery$1(meta, fn) { return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); } - function createTx(meta, fn) { + function createTx$1(meta, fn) { return withMeta(meta, (options, ...params) => fn(options, params)); } - class ContractSubmittableResult extends api.SubmittableResult { + let ContractSubmittableResult$1 = class ContractSubmittableResult extends api.SubmittableResult { contractEvents; constructor(result, contractEvents) { super(result); this.contractEvents = contractEvents; } - } + }; class Contract extends Base { address; __internal__query = {}; __internal__tx = {}; constructor(api, abi, address, decorateMethod) { super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); + this.address = this.registry.createType('AccountId', address); this.abi.messages.forEach(m => { if (util.isUndefined(this.__internal__tx[m.method])) { - this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); + this.__internal__tx[m.method] = createTx$1(m, (o, p) => this.__internal__exec(m, o, p)); } if (util.isUndefined(this.__internal__query[m.method])) { - this.__internal__query[m.method] = createQuery(m, (f, o, p) => + this.__internal__query[m.method] = createQuery$1(m, (f, o, p) => this.__internal__read(m, o, p).send(f), ); } @@ -1175,7 +1175,7 @@ } return convertWeight( isCall - ? MAX_CALL_GAS + ? MAX_CALL_GAS$1 : convertWeight( this.api.consts.system.blockWeights ? this.api.consts.system.blockWeights.maxBlock @@ -1190,7 +1190,7 @@ { gasLimit = util.BN_ZERO, storageDepositLimit = null, value = util.BN_ZERO }, params, ) => { - return this.api.tx.revive + return this.api.tx.contracts .call( this.address, value, @@ -1200,7 +1200,7 @@ ) .withResultTransform( result => - new ContractSubmittableResult( + new ContractSubmittableResult$1( result, applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => records @@ -1208,7 +1208,7 @@ try { return this.abi.decodeEvent(record); } catch (error) { - l.error(`Unable to decode contract event: ${error.message}`); + l$1.error(`Unable to decode contract event: ${error.message}`); return null; } }) @@ -1269,6 +1269,85 @@ } } class Blueprint extends Base { + codeHash; + __internal__tx = {}; + constructor(api, abi, codeHash, decorateMethod) { + super(api, abi, decorateMethod); + this.codeHash = this.registry.createType('Hash', codeHash); + this.abi.constructors.forEach(c => { + if (util.isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__deploy(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__deploy = ( + constructorOrId, + { gasLimit = util.BN_ZERO, salt, storageDepositLimit = null, value = util.BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiate( + value, + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new BlueprintSubmittableResult( + result, + applyOnEvent( + result, + ['Instantiated'], + ([record]) => + new Contract(this.api, this.abi, record.event.data[1], this._decorateMethod), + ), + ), + ); + }; + } + + class BaseRevive { + abi; + api; + _decorateMethod; + _isWeightV1; + constructor(api, abi, decorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.revive || + !util.isFunction(api.tx.revive.instantiateWithCode) || + api.tx.revive.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.reviveApi || !util.isFunction(api.call.reviveApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', + ); + } + this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + get registry() { + return this.api.registry; + } + } + + class BlueprintRevive extends BaseRevive { codeHash; __internal__tx = {}; constructor(api, abi, codeHash, decorateMethod) { @@ -1328,10 +1407,84 @@ this.contract = contract; } } - function isValidCode(code) { + function isValidCode$1(code) { return util.isWasm(code) || util.isRiscV(code); } class Code extends Base { + code; + __internal__tx = {}; + constructor(api, abi, wasm, decorateMethod) { + super(api, abi, decorateMethod); + this.code = isValidCode$1(this.abi.info.source.wasm) + ? this.abi.info.source.wasm + : util.u8aToU8a(wasm); + if (!isValidCode$1(this.code)) { + throw new Error('Invalid code provided'); + } + this.abi.constructors.forEach(c => { + if (util.isUndefined(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => + this.__internal__instantiate(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__instantiate = ( + constructorOrId, + { gasLimit = util.BN_ZERO, salt, storageDepositLimit = null, value = util.BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiateWithCode( + value, + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + util.compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new CodeSubmittableResult( + result, + ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], records => + records.reduce( + ([blueprint, contract], { event }) => + this.api.events.contracts.Instantiated.is(event) + ? [ + blueprint, + new Contract(this.api, this.abi, event.data[1], this._decorateMethod), + ] + : this.api.events.contracts.CodeStored.is(event) + ? [ + new Blueprint(this.api, this.abi, event.data[0], this._decorateMethod), + contract, + ] + : [blueprint, contract], + [undefined, undefined], + ), + ) || [undefined, undefined]), + ), + ); + }; + } + + class CodeReviveSubmittableResult extends api.SubmittableResult { + blueprint; + contract; + constructor(result, blueprint, contract) { + super(result); + this.blueprint = blueprint; + this.contract = contract; + } + } + function isValidCode(code) { + return util.isRiscV(code); + } + class CodeRevive extends BaseRevive { code; __internal__tx = {}; constructor(api, abi, wasm, decorateMethod) { @@ -1358,8 +1511,6 @@ { gasLimit = util.BN_ZERO, salt, storageDepositLimit = null, value = util.BN_ZERO }, params, ) => { - console.log('in instantiate'); - console.log(this.abi.info.source.wasmHash); return this.api.tx.revive .instantiateWithCode( value, @@ -1371,9 +1522,9 @@ ) .withResultTransform( result => - new CodeSubmittableResult( + new CodeReviveSubmittableResult( result, - new Blueprint( + new BlueprintRevive( this.api, this.abi, this.abi.info.source.wasmHash, @@ -1390,6 +1541,138 @@ }; } + const MAX_CALL_GAS = new util.BN(5_000_000_000_000).isub(util.BN_ONE); + const l = util.logger('Contract'); + function createQuery(meta, fn) { + return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); + } + function createTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); + } + class ContractSubmittableResult extends api.SubmittableResult { + contractEvents; + constructor(result, contractEvents) { + super(result); + this.contractEvents = contractEvents; + } + } + class ContractRevive extends BaseRevive { + address; + __internal__query = {}; + __internal__tx = {}; + constructor(api, abi, address, decorateMethod) { + super(api, abi, decorateMethod); + this.address = this.registry.createType('AccountId20', address); + this.abi.messages.forEach(m => { + if (util.isUndefined(this.__internal__tx[m.method])) { + this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); + } + if (util.isUndefined(this.__internal__query[m.method])) { + this.__internal__query[m.method] = createQuery(m, (f, o, p) => + this.__internal__read(m, o, p).send(f), + ); + } + }); + } + get query() { + return this.__internal__query; + } + get tx() { + return this.__internal__tx; + } + __internal__getGas = (_gasLimit, isCall = false) => { + const weight = convertWeight(_gasLimit); + if (weight.v1Weight.gt(util.BN_ZERO)) { + return weight; + } + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? this.api.consts.system.blockWeights.maxBlock + : this.api.consts.system['maximumBlockWeight'], + ) + .v1Weight.muln(64) + .div(util.BN_HUNDRED), + ); + }; + __internal__exec = ( + messageOrId, + { gasLimit = util.BN_ZERO, storageDepositLimit = null, value = util.BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .call( + this.address, + value, + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + result => + new ContractSubmittableResult( + result, + applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => + records + .map(record => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${error.message}`); + return null; + } + }) + .filter(decoded => !!decoded), + ), + ), + ); + }; + __internal__read = ( + messageOrId, + { gasLimit = util.BN_ZERO, storageDepositLimit = null, value = util.BN_ZERO }, + params, + ) => { + const message = this.abi.findMessage(messageOrId); + return { + send: this._decorateMethod(origin => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + this._isWeightV1 + ? this.__internal__getGas(gasLimit, true).v1Weight + : this.__internal__getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + })), + ), + ), + }; + }; + } + class BlueprintPromise extends Blueprint { constructor(api$1, abi, codeHash) { super(api$1, abi, codeHash, api.toPromiseMethod); @@ -1405,6 +1688,21 @@ super(api$1, abi, address, api.toPromiseMethod); } } + class BlueprintRevivePromise extends BlueprintRevive { + constructor(api$1, abi, codeHash) { + super(api$1, abi, codeHash, api.toPromiseMethod); + } + } + class CodeRevivePromise extends CodeRevive { + constructor(api$1, abi, wasm) { + super(api$1, abi, wasm, api.toPromiseMethod); + } + } + class ContractRevivePromise extends ContractRevive { + constructor(api$1, abi, address) { + super(api$1, abi, address, api.toPromiseMethod); + } + } class BlueprintRx extends Blueprint { constructor(api$1, abi, codeHash) { @@ -1424,10 +1722,13 @@ exports.Abi = Abi; exports.BlueprintPromise = BlueprintPromise; + exports.BlueprintRevivePromise = BlueprintRevivePromise; exports.BlueprintRx = BlueprintRx; exports.CodePromise = CodePromise; + exports.CodeRevivePromise = CodeRevivePromise; exports.CodeRx = CodeRx; exports.ContractPromise = ContractPromise; + exports.ContractRevivePromise = ContractRevivePromise; exports.ContractRx = ContractRx; exports.packageInfo = packageInfo; }); diff --git a/.api-revive/build/bundle.d.ts b/.api-contract/build/bundle.d.ts similarity index 100% rename from .api-revive/build/bundle.d.ts rename to .api-contract/build/bundle.d.ts diff --git a/.api-revive/build/bundle.js b/.api-contract/build/bundle.js similarity index 100% rename from .api-revive/build/bundle.js rename to .api-contract/build/bundle.js diff --git a/.api-revive/build/cjs/Abi/index.d.ts b/.api-contract/build/cjs/Abi/index.d.ts similarity index 100% rename from .api-revive/build/cjs/Abi/index.d.ts rename to .api-contract/build/cjs/Abi/index.d.ts diff --git a/.api-revive/build/cjs/Abi/index.js b/.api-contract/build/cjs/Abi/index.js similarity index 100% rename from .api-revive/build/cjs/Abi/index.js rename to .api-contract/build/cjs/Abi/index.js diff --git a/.api-revive/build/cjs/Abi/toLatestCompatible.d.ts b/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts similarity index 100% rename from .api-revive/build/cjs/Abi/toLatestCompatible.d.ts rename to .api-contract/build/cjs/Abi/toLatestCompatible.d.ts diff --git a/.api-revive/build/cjs/Abi/toLatestCompatible.js b/.api-contract/build/cjs/Abi/toLatestCompatible.js similarity index 100% rename from .api-revive/build/cjs/Abi/toLatestCompatible.js rename to .api-contract/build/cjs/Abi/toLatestCompatible.js diff --git a/.api-revive/build/cjs/Abi/toV1.d.ts b/.api-contract/build/cjs/Abi/toV1.d.ts similarity index 100% rename from .api-revive/build/cjs/Abi/toV1.d.ts rename to .api-contract/build/cjs/Abi/toV1.d.ts diff --git a/.api-revive/build/cjs/Abi/toV1.js b/.api-contract/build/cjs/Abi/toV1.js similarity index 100% rename from .api-revive/build/cjs/Abi/toV1.js rename to .api-contract/build/cjs/Abi/toV1.js diff --git a/.api-revive/build/cjs/Abi/toV2.d.ts b/.api-contract/build/cjs/Abi/toV2.d.ts similarity index 100% rename from .api-revive/build/cjs/Abi/toV2.d.ts rename to .api-contract/build/cjs/Abi/toV2.d.ts diff --git a/.api-revive/build/cjs/Abi/toV2.js b/.api-contract/build/cjs/Abi/toV2.js similarity index 100% rename from .api-revive/build/cjs/Abi/toV2.js rename to .api-contract/build/cjs/Abi/toV2.js diff --git a/.api-revive/build/cjs/Abi/toV3.d.ts b/.api-contract/build/cjs/Abi/toV3.d.ts similarity index 100% rename from .api-revive/build/cjs/Abi/toV3.d.ts rename to .api-contract/build/cjs/Abi/toV3.d.ts diff --git a/.api-revive/build/cjs/Abi/toV3.js b/.api-contract/build/cjs/Abi/toV3.js similarity index 100% rename from .api-revive/build/cjs/Abi/toV3.js rename to .api-contract/build/cjs/Abi/toV3.js diff --git a/.api-revive/build/cjs/Abi/toV4.d.ts b/.api-contract/build/cjs/Abi/toV4.d.ts similarity index 100% rename from .api-revive/build/cjs/Abi/toV4.d.ts rename to .api-contract/build/cjs/Abi/toV4.d.ts diff --git a/.api-revive/build/cjs/Abi/toV4.js b/.api-contract/build/cjs/Abi/toV4.js similarity index 100% rename from .api-revive/build/cjs/Abi/toV4.js rename to .api-contract/build/cjs/Abi/toV4.js diff --git a/.api-revive/build/cjs/augment.d.ts b/.api-contract/build/cjs/augment.d.ts similarity index 100% rename from .api-revive/build/cjs/augment.d.ts rename to .api-contract/build/cjs/augment.d.ts diff --git a/.api-revive/build/cjs/augment.js b/.api-contract/build/cjs/augment.js similarity index 100% rename from .api-revive/build/cjs/augment.js rename to .api-contract/build/cjs/augment.js diff --git a/.api-revive/build/cjs/base/Base.d.ts b/.api-contract/build/cjs/base/Base.d.ts similarity index 100% rename from .api-revive/build/cjs/base/Base.d.ts rename to .api-contract/build/cjs/base/Base.d.ts diff --git a/.api-contract/build/cjs/base/Base.js b/.api-contract/build/cjs/base/Base.js new file mode 100644 index 00000000..a0ab4683 --- /dev/null +++ b/.api-contract/build/cjs/base/Base.js @@ -0,0 +1,41 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Base = void 0; +const util_1 = require('@polkadot/util'); +const index_js_1 = require('../Abi/index.js'); +class Base { + abi; + api; + _decorateMethod; + _isWeightV1; + constructor(api, abi, decorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.contracts || + !(0, util_1.isFunction)(api.tx.contracts.instantiateWithCode) || + api.tx.contracts.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.contractsApi || !(0, util_1.isFunction)(api.call.contractsApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', + ); + } + this.abi = + abi instanceof index_js_1.Abi + ? abi + : new index_js_1.Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + get registry() { + return this.api.registry; + } +} +exports.Base = Base; diff --git a/.api-contract/build/cjs/base/BaseRevive.d.ts b/.api-contract/build/cjs/base/BaseRevive.d.ts new file mode 100644 index 00000000..51285215 --- /dev/null +++ b/.api-contract/build/cjs/base/BaseRevive.d.ts @@ -0,0 +1,16 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Registry } from '@polkadot/types/types'; +import { Abi } from '../Abi/index.js'; +export declare abstract class BaseRevive { + readonly abi: Abi; + readonly api: ApiBase; + protected readonly _decorateMethod: DecorateMethod; + protected readonly _isWeightV1: boolean; + constructor( + api: ApiBase, + abi: string | Record | Abi, + decorateMethod: DecorateMethod, + ); + get registry(): Registry; +} diff --git a/.api-revive/build-tsc-cjs/base/Base.js b/.api-contract/build/cjs/base/BaseRevive.js similarity index 94% rename from .api-revive/build-tsc-cjs/base/Base.js rename to .api-contract/build/cjs/base/BaseRevive.js index c077097f..a968a0ba 100644 --- a/.api-revive/build-tsc-cjs/base/Base.js +++ b/.api-contract/build/cjs/base/BaseRevive.js @@ -1,9 +1,9 @@ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); -exports.Base = void 0; +exports.BaseRevive = void 0; const util_1 = require('@polkadot/util'); const index_js_1 = require('../Abi/index.js'); -class Base { +class BaseRevive { abi; api; _decorateMethod; @@ -38,4 +38,4 @@ class Base { return this.api.registry; } } -exports.Base = Base; +exports.BaseRevive = BaseRevive; diff --git a/.api-revive/build/cjs/base/Blueprint.d.ts b/.api-contract/build/cjs/base/Blueprint.d.ts similarity index 100% rename from .api-revive/build/cjs/base/Blueprint.d.ts rename to .api-contract/build/cjs/base/Blueprint.d.ts diff --git a/.api-contract/build/cjs/base/Blueprint.js b/.api-contract/build/cjs/base/Blueprint.js new file mode 100644 index 00000000..68226399 --- /dev/null +++ b/.api-contract/build/cjs/base/Blueprint.js @@ -0,0 +1,84 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Blueprint = exports.BlueprintSubmittableResult = void 0; +exports.extendBlueprint = extendBlueprint; +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const util_js_1 = require('../util.js'); +const Base_js_1 = require('./Base.js'); +const Contract_js_1 = require('./Contract.js'); +const util_js_2 = require('./util.js'); +class BlueprintSubmittableResult extends api_1.SubmittableResult { + contract; + constructor(result, contract) { + super(result); + this.contract = contract; + } +} +exports.BlueprintSubmittableResult = BlueprintSubmittableResult; +class Blueprint extends Base_js_1.Base { + /** + * @description The on-chain code hash for this blueprint + */ + codeHash; + __internal__tx = {}; + constructor(api, abi, codeHash, decorateMethod) { + super(api, abi, decorateMethod); + this.codeHash = this.registry.createType('Hash', codeHash); + this.abi.constructors.forEach(c => { + if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = (0, util_js_2.createBluePrintTx)(c, (o, p) => + this.__internal__deploy(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__deploy = ( + constructorOrId, + { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_2.convertWeight)(gasLimit).v1Weight + : (0, util_js_2.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + (0, util_js_2.encodeSalt)(salt), + ) + .withResultTransform( + result => + new BlueprintSubmittableResult( + result, + (0, util_js_1.applyOnEvent)( + result, + ['Instantiated'], + ([record]) => + new Contract_js_1.Contract( + this.api, + this.abi, + record.event.data[1], + this._decorateMethod, + ), + ), + ), + ); + }; +} +exports.Blueprint = Blueprint; +function extendBlueprint(type, decorateMethod) { + return class extends Blueprint { + static __BlueprintType = type; + constructor(api, abi, codeHash) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-contract/build/cjs/base/BlueprintRevive.d.ts b/.api-contract/build/cjs/base/BlueprintRevive.d.ts new file mode 100644 index 00000000..56f6f57f --- /dev/null +++ b/.api-contract/build/cjs/base/BlueprintRevive.d.ts @@ -0,0 +1,29 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { BaseRevive } from './BaseRevive.js'; +export type BlueprintReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, +) => BlueprintRevive; +export declare class BlueprintRevive extends BaseRevive { + #private; + /** + * @description The on-chain code hash for this blueprint + */ + readonly codeHash: Hash; + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendBlueprint( + type: ApiType, + decorateMethod: DecorateMethod, +): BlueprintReviveConstructor; diff --git a/.api-revive/build-tsc-cjs/base/Blueprint.js b/.api-contract/build/cjs/base/BlueprintRevive.js similarity index 80% rename from .api-revive/build-tsc-cjs/base/Blueprint.js rename to .api-contract/build/cjs/base/BlueprintRevive.js index 55bdffaa..f30dae62 100644 --- a/.api-revive/build-tsc-cjs/base/Blueprint.js +++ b/.api-contract/build/cjs/base/BlueprintRevive.js @@ -1,21 +1,13 @@ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); -exports.Blueprint = exports.BlueprintSubmittableResult = void 0; +exports.BlueprintRevive = void 0; exports.extendBlueprint = extendBlueprint; -const api_1 = require('@polkadot/api'); const util_1 = require('@polkadot/util'); -const Base_js_1 = require('./Base.js'); +const BaseRevive_js_1 = require('./BaseRevive.js'); +const Blueprint_js_1 = require('./Blueprint.js'); const Contract_js_1 = require('./Contract.js'); const util_js_1 = require('./util.js'); -class BlueprintSubmittableResult extends api_1.SubmittableResult { - contract; - constructor(result, contract) { - super(result); - this.contract = contract; - } -} -exports.BlueprintSubmittableResult = BlueprintSubmittableResult; -class Blueprint extends Base_js_1.Base { +class BlueprintRevive extends BaseRevive_js_1.BaseRevive { /** * @description The on-chain code hash for this blueprint */ @@ -55,7 +47,7 @@ class Blueprint extends Base_js_1.Base { ) .withResultTransform( result => - new BlueprintSubmittableResult( + new Blueprint_js_1.BlueprintSubmittableResult( result, (() => { if (result.status.isInBlock || result.status.isFinalized) { @@ -72,9 +64,9 @@ class Blueprint extends Base_js_1.Base { ); }; } -exports.Blueprint = Blueprint; +exports.BlueprintRevive = BlueprintRevive; function extendBlueprint(type, decorateMethod) { - return class extends Blueprint { + return class extends BlueprintRevive { static __BlueprintType = type; constructor(api, abi, codeHash) { super(api, abi, codeHash, decorateMethod); diff --git a/.api-revive/build/cjs/base/Code.d.ts b/.api-contract/build/cjs/base/Code.d.ts similarity index 100% rename from .api-revive/build/cjs/base/Code.d.ts rename to .api-contract/build/cjs/base/Code.d.ts diff --git a/.api-contract/build/cjs/base/Code.js b/.api-contract/build/cjs/base/Code.js new file mode 100644 index 00000000..eeeff6d2 --- /dev/null +++ b/.api-contract/build/cjs/base/Code.js @@ -0,0 +1,108 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.Code = exports.CodeSubmittableResult = void 0; +exports.extendCode = extendCode; +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const util_js_1 = require('../util.js'); +const Base_js_1 = require('./Base.js'); +const Blueprint_js_1 = require('./Blueprint.js'); +const Contract_js_1 = require('./Contract.js'); +const util_js_2 = require('./util.js'); +class CodeSubmittableResult extends api_1.SubmittableResult { + blueprint; + contract; + constructor(result, blueprint, contract) { + super(result); + this.blueprint = blueprint; + this.contract = contract; + } +} +exports.CodeSubmittableResult = CodeSubmittableResult; +function isValidCode(code) { + return (0, util_1.isWasm)(code) || (0, util_1.isRiscV)(code); +} +class Code extends Base_js_1.Base { + code; + __internal__tx = {}; + constructor(api, abi, wasm, decorateMethod) { + super(api, abi, decorateMethod); + this.code = isValidCode(this.abi.info.source.wasm) + ? this.abi.info.source.wasm + : (0, util_1.u8aToU8a)(wasm); + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + this.abi.constructors.forEach(c => { + if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { + this.__internal__tx[c.method] = (0, util_js_2.createBluePrintTx)(c, (o, p) => + this.__internal__instantiate(c, o, p), + ); + } + }); + } + get tx() { + return this.__internal__tx; + } + __internal__instantiate = ( + constructorOrId, + { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_2.convertWeight)(gasLimit).v1Weight + : (0, util_js_2.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + (0, util_1.compactAddLength)(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + (0, util_js_2.encodeSalt)(salt), + ) + .withResultTransform( + result => + new CodeSubmittableResult( + result, + ...((0, util_js_1.applyOnEvent)(result, ['CodeStored', 'Instantiated'], records => + records.reduce( + ([blueprint, contract], { event }) => + this.api.events.contracts.Instantiated.is(event) + ? [ + blueprint, + new Contract_js_1.Contract( + this.api, + this.abi, + event.data[1], + this._decorateMethod, + ), + ] + : this.api.events.contracts.CodeStored.is(event) + ? [ + new Blueprint_js_1.Blueprint( + this.api, + this.abi, + event.data[0], + this._decorateMethod, + ), + contract, + ] + : [blueprint, contract], + [undefined, undefined], + ), + ) || [undefined, undefined]), + ), + ); + }; +} +exports.Code = Code; +function extendCode(type, decorateMethod) { + return class extends Code { + static __CodeType = type; + constructor(api, abi, wasm) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-contract/build/cjs/base/CodeRevive.d.ts b/.api-contract/build/cjs/base/CodeRevive.d.ts new file mode 100644 index 00000000..72a11c78 --- /dev/null +++ b/.api-contract/build/cjs/base/CodeRevive.d.ts @@ -0,0 +1,40 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { MapConstructorExec } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { BaseRevive } from './BaseRevive.js'; +import { BlueprintRevive } from './BlueprintRevive.js'; +import { Contract } from './Contract.js'; +export type CodeReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, +) => CodeRevive; +export declare class CodeReviveSubmittableResult< + ApiType extends ApiTypes, +> extends SubmittableResult { + readonly blueprint?: BlueprintRevive | undefined; + readonly contract?: Contract | undefined; + constructor( + result: ISubmittableResult, + blueprint?: BlueprintRevive | undefined, + contract?: Contract | undefined, + ); +} +export declare class CodeRevive extends BaseRevive { + #private; + readonly code: Uint8Array; + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + decorateMethod: DecorateMethod, + ); + get tx(): MapConstructorExec; +} +export declare function extendCode( + type: ApiType, + decorateMethod: DecorateMethod, +): CodeReviveConstructor; diff --git a/.api-revive/build/cjs/base/Code.js b/.api-contract/build/cjs/base/CodeRevive.js similarity index 80% rename from .api-revive/build/cjs/base/Code.js rename to .api-contract/build/cjs/base/CodeRevive.js index 3a6f60a6..cd74edbb 100644 --- a/.api-revive/build/cjs/base/Code.js +++ b/.api-contract/build/cjs/base/CodeRevive.js @@ -1,14 +1,14 @@ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); -exports.Code = exports.CodeSubmittableResult = void 0; +exports.CodeRevive = exports.CodeReviveSubmittableResult = void 0; exports.extendCode = extendCode; const api_1 = require('@polkadot/api'); const util_1 = require('@polkadot/util'); -const Base_js_1 = require('./Base.js'); -const Blueprint_js_1 = require('./Blueprint.js'); +const BaseRevive_js_1 = require('./BaseRevive.js'); +const BlueprintRevive_js_1 = require('./BlueprintRevive.js'); const Contract_js_1 = require('./Contract.js'); const util_js_1 = require('./util.js'); -class CodeSubmittableResult extends api_1.SubmittableResult { +class CodeReviveSubmittableResult extends api_1.SubmittableResult { blueprint; contract; constructor(result, blueprint, contract) { @@ -17,11 +17,11 @@ class CodeSubmittableResult extends api_1.SubmittableResult { this.contract = contract; } } -exports.CodeSubmittableResult = CodeSubmittableResult; +exports.CodeReviveSubmittableResult = CodeReviveSubmittableResult; function isValidCode(code) { - return (0, util_1.isWasm)(code) || (0, util_1.isRiscV)(code); + return (0, util_1.isRiscV)(code); } -class Code extends Base_js_1.Base { +class CodeRevive extends BaseRevive_js_1.BaseRevive { code; __internal__tx = {}; constructor(api, abi, wasm, decorateMethod) { @@ -48,8 +48,6 @@ class Code extends Base_js_1.Base { { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, params, ) => { - console.log('in instantiate'); - console.log(this.abi.info.source.wasmHash); return this.api.tx.revive .instantiateWithCode( value, @@ -65,9 +63,9 @@ class Code extends Base_js_1.Base { ) .withResultTransform( result => - new CodeSubmittableResult( + new CodeReviveSubmittableResult( result, - new Blueprint_js_1.Blueprint( + new BlueprintRevive_js_1.BlueprintRevive( this.api, this.abi, this.abi.info.source.wasmHash, @@ -83,9 +81,9 @@ class Code extends Base_js_1.Base { ); }; } -exports.Code = Code; +exports.CodeRevive = CodeRevive; function extendCode(type, decorateMethod) { - return class extends Code { + return class extends CodeRevive { static __CodeType = type; constructor(api, abi, wasm) { super(api, abi, wasm, decorateMethod); diff --git a/.api-revive/build/cjs/base/Contract.d.ts b/.api-contract/build/cjs/base/Contract.d.ts similarity index 90% rename from .api-revive/build/cjs/base/Contract.d.ts rename to .api-contract/build/cjs/base/Contract.d.ts index e60d7540..3add8756 100644 --- a/.api-revive/build/cjs/base/Contract.d.ts +++ b/.api-contract/build/cjs/base/Contract.d.ts @@ -1,6 +1,6 @@ import type { ApiBase } from '@polkadot/api/base'; import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; +import type { AccountId } from '@polkadot/types/interfaces'; import type { ISubmittableResult } from '@polkadot/types/types'; import type { Abi } from '../Abi/index.js'; import type { DecodedEvent } from '../types.js'; @@ -21,11 +21,11 @@ export declare class Contract extends Base { /** * @description The on-chain address for this contract */ - readonly address: AccountId20; + readonly address: AccountId; constructor( api: ApiBase, abi: string | Record | Abi, - address: string | AccountId20, + address: string | AccountId, decorateMethod: DecorateMethod, ); get query(): MapMessageQuery; diff --git a/.api-revive/build-tsc-cjs/base/Contract.js b/.api-contract/build/cjs/base/Contract.js similarity index 98% rename from .api-revive/build-tsc-cjs/base/Contract.js rename to .api-contract/build/cjs/base/Contract.js index b3f5b9f5..2845941a 100644 --- a/.api-revive/build-tsc-cjs/base/Contract.js +++ b/.api-contract/build/cjs/base/Contract.js @@ -33,7 +33,7 @@ class Contract extends Base_js_1.Base { __internal__tx = {}; constructor(api, abi, address, decorateMethod) { super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); + this.address = this.registry.createType('AccountId', address); this.abi.messages.forEach(m => { if ((0, util_1.isUndefined)(this.__internal__tx[m.method])) { this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); @@ -73,7 +73,7 @@ class Contract extends Base_js_1.Base { { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, params, ) => { - return this.api.tx.revive + return this.api.tx.contracts .call( this.address, value, diff --git a/.api-contract/build/cjs/base/ContractRevive.d.ts b/.api-contract/build/cjs/base/ContractRevive.d.ts new file mode 100644 index 00000000..241b4d37 --- /dev/null +++ b/.api-contract/build/cjs/base/ContractRevive.d.ts @@ -0,0 +1,37 @@ +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { DecodedEvent } from '../types.js'; +import type { MapMessageQuery, MapMessageTx } from './types.js'; +import { SubmittableResult } from '@polkadot/api'; +import { BaseRevive } from './BaseRevive.js'; +export type ContractReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, +) => ContractRevive; +export declare class ContractSubmittableResult extends SubmittableResult { + readonly contractEvents?: DecodedEvent[] | undefined; + constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); +} +export declare class ContractRevive extends BaseRevive { + #private; + /** + * @description The on-chain address for this contract + */ + readonly address: AccountId20; + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId20, + decorateMethod: DecorateMethod, + ); + get query(): MapMessageQuery; + get tx(): MapMessageTx; +} +export declare function extendContract( + type: ApiType, + decorateMethod: DecorateMethod, +): ContractReviveConstructor; diff --git a/.api-contract/build/cjs/base/ContractRevive.js b/.api-contract/build/cjs/base/ContractRevive.js new file mode 100644 index 00000000..1523692a --- /dev/null +++ b/.api-contract/build/cjs/base/ContractRevive.js @@ -0,0 +1,164 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.ContractRevive = exports.ContractSubmittableResult = void 0; +exports.extendContract = extendContract; +const rxjs_1 = require('rxjs'); +const api_1 = require('@polkadot/api'); +const util_1 = require('@polkadot/util'); +const util_js_1 = require('../util.js'); +const BaseRevive_js_1 = require('./BaseRevive.js'); +const util_js_2 = require('./util.js'); +const MAX_CALL_GAS = new util_1.BN(5_000_000_000_000).isub(util_1.BN_ONE); +const l = (0, util_1.logger)('Contract'); +function createQuery(meta, fn) { + return (0, util_js_2.withMeta)(meta, (origin, options, ...params) => fn(origin, options, params)); +} +function createTx(meta, fn) { + return (0, util_js_2.withMeta)(meta, (options, ...params) => fn(options, params)); +} +class ContractSubmittableResult extends api_1.SubmittableResult { + contractEvents; + constructor(result, contractEvents) { + super(result); + this.contractEvents = contractEvents; + } +} +exports.ContractSubmittableResult = ContractSubmittableResult; +class ContractRevive extends BaseRevive_js_1.BaseRevive { + /** + * @description The on-chain address for this contract + */ + address; + __internal__query = {}; + __internal__tx = {}; + constructor(api, abi, address, decorateMethod) { + super(api, abi, decorateMethod); + this.address = this.registry.createType('AccountId20', address); + this.abi.messages.forEach(m => { + if ((0, util_1.isUndefined)(this.__internal__tx[m.method])) { + this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); + } + if ((0, util_1.isUndefined)(this.__internal__query[m.method])) { + this.__internal__query[m.method] = createQuery(m, (f, o, p) => + this.__internal__read(m, o, p).send(f), + ); + } + }); + } + get query() { + return this.__internal__query; + } + get tx() { + return this.__internal__tx; + } + __internal__getGas = (_gasLimit, isCall = false) => { + const weight = (0, util_js_2.convertWeight)(_gasLimit); + if (weight.v1Weight.gt(util_1.BN_ZERO)) { + return weight; + } + return (0, util_js_2.convertWeight)( + isCall + ? MAX_CALL_GAS + : (0, util_js_2.convertWeight)( + this.api.consts.system.blockWeights + ? this.api.consts.system.blockWeights.maxBlock + : this.api.consts.system['maximumBlockWeight'], + ) + .v1Weight.muln(64) + .div(util_1.BN_HUNDRED), + ); + }; + __internal__exec = ( + messageOrId, + { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? (0, util_js_2.convertWeight)(gasLimit).v1Weight + : (0, util_js_2.convertWeight)(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + result => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + (0, util_js_1.applyOnEvent)(result, ['ContractEmitted', 'ContractExecution'], records => + records + .map(record => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${error.message}`); + return null; + } + }) + .filter(decoded => !!decoded), + ), + ), + ); + }; + __internal__read = ( + messageOrId, + { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, + params, + ) => { + const message = this.abi.findMessage(messageOrId); + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod(origin => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.__internal__getGas(gasLimit, true).v1Weight + : this.__internal__getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + (0, rxjs_1.map)( + ({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !(0, util_js_2.convertWeight)(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + }), + ), + ), + ), + }; + }; +} +exports.ContractRevive = ContractRevive; +function extendContract(type, decorateMethod) { + return class extends ContractRevive { + static __ContractType = type; + constructor(api, abi, address) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-revive/build/base/index.d.ts b/.api-contract/build/cjs/base/index.d.ts similarity index 58% rename from .api-revive/build/base/index.d.ts rename to .api-contract/build/cjs/base/index.d.ts index 905b4515..30a149b4 100644 --- a/.api-revive/build/base/index.d.ts +++ b/.api-contract/build/cjs/base/index.d.ts @@ -1,3 +1,6 @@ export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { BlueprintRevive } from './BlueprintRevive.js'; export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { CodeRevive } from './CodeRevive.js'; export { Contract, extendContract } from './Contract.js'; +export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-revive/build-tsc-cjs/base/index.js b/.api-contract/build/cjs/base/index.js similarity index 68% rename from .api-revive/build-tsc-cjs/base/index.js rename to .api-contract/build/cjs/base/index.js index 742b6bbc..98972576 100644 --- a/.api-revive/build-tsc-cjs/base/index.js +++ b/.api-contract/build/cjs/base/index.js @@ -1,10 +1,13 @@ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); -exports.extendContract = +exports.ContractRevive = + exports.extendContract = exports.Contract = + exports.CodeRevive = exports.extendCode = exports.CodeSubmittableResult = exports.Code = + exports.BlueprintRevive = exports.extendBlueprint = exports.BlueprintSubmittableResult = exports.Blueprint = @@ -28,6 +31,13 @@ Object.defineProperty(exports, 'extendBlueprint', { return Blueprint_js_1.extendBlueprint; }, }); +var BlueprintRevive_js_1 = require('./BlueprintRevive.js'); +Object.defineProperty(exports, 'BlueprintRevive', { + enumerable: true, + get: function () { + return BlueprintRevive_js_1.BlueprintRevive; + }, +}); var Code_js_1 = require('./Code.js'); Object.defineProperty(exports, 'Code', { enumerable: true, @@ -47,6 +57,13 @@ Object.defineProperty(exports, 'extendCode', { return Code_js_1.extendCode; }, }); +var CodeRevive_js_1 = require('./CodeRevive.js'); +Object.defineProperty(exports, 'CodeRevive', { + enumerable: true, + get: function () { + return CodeRevive_js_1.CodeRevive; + }, +}); var Contract_js_1 = require('./Contract.js'); Object.defineProperty(exports, 'Contract', { enumerable: true, @@ -60,3 +77,10 @@ Object.defineProperty(exports, 'extendContract', { return Contract_js_1.extendContract; }, }); +var ContractRevive_js_1 = require('./ContractRevive.js'); +Object.defineProperty(exports, 'ContractRevive', { + enumerable: true, + get: function () { + return ContractRevive_js_1.ContractRevive; + }, +}); diff --git a/.api-revive/build/cjs/base/mock.d.ts b/.api-contract/build/cjs/base/mock.d.ts similarity index 100% rename from .api-revive/build/cjs/base/mock.d.ts rename to .api-contract/build/cjs/base/mock.d.ts diff --git a/.api-revive/build/cjs/base/mock.js b/.api-contract/build/cjs/base/mock.js similarity index 100% rename from .api-revive/build/cjs/base/mock.js rename to .api-contract/build/cjs/base/mock.js diff --git a/.api-revive/build/cjs/base/types.d.ts b/.api-contract/build/cjs/base/types.d.ts similarity index 100% rename from .api-revive/build/cjs/base/types.d.ts rename to .api-contract/build/cjs/base/types.d.ts diff --git a/.api-revive/build/cjs/base/types.js b/.api-contract/build/cjs/base/types.js similarity index 100% rename from .api-revive/build/cjs/base/types.js rename to .api-contract/build/cjs/base/types.js diff --git a/.api-revive/build/cjs/base/util.d.ts b/.api-contract/build/cjs/base/util.d.ts similarity index 100% rename from .api-revive/build/cjs/base/util.d.ts rename to .api-contract/build/cjs/base/util.d.ts diff --git a/.api-revive/build/cjs/base/util.js b/.api-contract/build/cjs/base/util.js similarity index 100% rename from .api-revive/build/cjs/base/util.js rename to .api-contract/build/cjs/base/util.js diff --git a/.api-revive/build/cjs/bundle.d.ts b/.api-contract/build/cjs/bundle.d.ts similarity index 100% rename from .api-revive/build/cjs/bundle.d.ts rename to .api-contract/build/cjs/bundle.d.ts diff --git a/.api-revive/build/cjs/bundle.js b/.api-contract/build/cjs/bundle.js similarity index 100% rename from .api-revive/build/cjs/bundle.js rename to .api-contract/build/cjs/bundle.js diff --git a/.api-revive/build/cjs/index.d.ts b/.api-contract/build/cjs/index.d.ts similarity index 100% rename from .api-revive/build/cjs/index.d.ts rename to .api-contract/build/cjs/index.d.ts diff --git a/.api-revive/build/cjs/index.js b/.api-contract/build/cjs/index.js similarity index 100% rename from .api-revive/build/cjs/index.js rename to .api-contract/build/cjs/index.js diff --git a/.api-revive/build/cjs/package.json b/.api-contract/build/cjs/package.json similarity index 100% rename from .api-revive/build/cjs/package.json rename to .api-contract/build/cjs/package.json diff --git a/.api-revive/build/cjs/packageDetect.d.ts b/.api-contract/build/cjs/packageDetect.d.ts similarity index 100% rename from .api-revive/build/cjs/packageDetect.d.ts rename to .api-contract/build/cjs/packageDetect.d.ts diff --git a/.api-revive/build/cjs/packageDetect.js b/.api-contract/build/cjs/packageDetect.js similarity index 100% rename from .api-revive/build/cjs/packageDetect.js rename to .api-contract/build/cjs/packageDetect.js diff --git a/.api-revive/build/cjs/packageInfo.d.ts b/.api-contract/build/cjs/packageInfo.d.ts similarity index 100% rename from .api-revive/build/cjs/packageInfo.d.ts rename to .api-contract/build/cjs/packageInfo.d.ts diff --git a/.api-revive/build/cjs/packageInfo.js b/.api-contract/build/cjs/packageInfo.js similarity index 87% rename from .api-revive/build/cjs/packageInfo.js rename to .api-contract/build/cjs/packageInfo.js index 86e0744f..39a18613 100644 --- a/.api-revive/build/cjs/packageInfo.js +++ b/.api-contract/build/cjs/packageInfo.js @@ -2,7 +2,7 @@ Object.defineProperty(exports, '__esModule', { value: true }); exports.packageInfo = void 0; exports.packageInfo = { - name: '@polkadot/api-revive', + name: '@polkadot/api-contract', path: typeof __dirname === 'string' ? __dirname : 'auto', type: 'cjs', version: '15.8.1', diff --git a/.api-contract/build/cjs/promise/index.d.ts b/.api-contract/build/cjs/promise/index.d.ts new file mode 100644 index 00000000..3c1f5a23 --- /dev/null +++ b/.api-contract/build/cjs/promise/index.d.ts @@ -0,0 +1,53 @@ +import type { ApiPromise } from '@polkadot/api'; +import type { AccountId, AccountId20, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import { + Blueprint, + BlueprintRevive, + Code, + CodeRevive, + Contract, + ContractRevive, +} from '../base/index.js'; +export declare class BlueprintPromise extends Blueprint<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ); +} +export declare class CodePromise extends Code<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractPromise extends Contract<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId, + ); +} +export declare class BlueprintRevivePromise extends BlueprintRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ); +} +export declare class CodeRevivePromise extends CodeRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractRevivePromise extends ContractRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId20, + ); +} diff --git a/.api-contract/build/cjs/promise/index.js b/.api-contract/build/cjs/promise/index.js new file mode 100644 index 00000000..050deffe --- /dev/null +++ b/.api-contract/build/cjs/promise/index.js @@ -0,0 +1,47 @@ +'use strict'; +Object.defineProperty(exports, '__esModule', { value: true }); +exports.ContractRevivePromise = + exports.CodeRevivePromise = + exports.BlueprintRevivePromise = + exports.ContractPromise = + exports.CodePromise = + exports.BlueprintPromise = + void 0; +const api_1 = require('@polkadot/api'); +const index_js_1 = require('../base/index.js'); +class BlueprintPromise extends index_js_1.Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, api_1.toPromiseMethod); + } +} +exports.BlueprintPromise = BlueprintPromise; +class CodePromise extends index_js_1.Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, api_1.toPromiseMethod); + } +} +exports.CodePromise = CodePromise; +class ContractPromise extends index_js_1.Contract { + constructor(api, abi, address) { + super(api, abi, address, api_1.toPromiseMethod); + } +} +exports.ContractPromise = ContractPromise; +class BlueprintRevivePromise extends index_js_1.BlueprintRevive { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, api_1.toPromiseMethod); + } +} +exports.BlueprintRevivePromise = BlueprintRevivePromise; +class CodeRevivePromise extends index_js_1.CodeRevive { + constructor(api, abi, wasm) { + super(api, abi, wasm, api_1.toPromiseMethod); + } +} +exports.CodeRevivePromise = CodeRevivePromise; +class ContractRevivePromise extends index_js_1.ContractRevive { + constructor(api, abi, address) { + super(api, abi, address, api_1.toPromiseMethod); + } +} +exports.ContractRevivePromise = ContractRevivePromise; diff --git a/.api-revive/build/cjs/promise/types.d.ts b/.api-contract/build/cjs/promise/types.d.ts similarity index 100% rename from .api-revive/build/cjs/promise/types.d.ts rename to .api-contract/build/cjs/promise/types.d.ts diff --git a/.api-revive/build/cjs/promise/types.js b/.api-contract/build/cjs/promise/types.js similarity index 100% rename from .api-revive/build/cjs/promise/types.js rename to .api-contract/build/cjs/promise/types.js diff --git a/.api-revive/build/cjs/rx/index.d.ts b/.api-contract/build/cjs/rx/index.d.ts similarity index 100% rename from .api-revive/build/cjs/rx/index.d.ts rename to .api-contract/build/cjs/rx/index.d.ts diff --git a/.api-revive/build/cjs/rx/index.js b/.api-contract/build/cjs/rx/index.js similarity index 100% rename from .api-revive/build/cjs/rx/index.js rename to .api-contract/build/cjs/rx/index.js diff --git a/.api-revive/build/cjs/rx/types.d.ts b/.api-contract/build/cjs/rx/types.d.ts similarity index 100% rename from .api-revive/build/cjs/rx/types.d.ts rename to .api-contract/build/cjs/rx/types.d.ts diff --git a/.api-revive/build/cjs/rx/types.js b/.api-contract/build/cjs/rx/types.js similarity index 100% rename from .api-revive/build/cjs/rx/types.js rename to .api-contract/build/cjs/rx/types.js diff --git a/.api-revive/build/cjs/types.d.ts b/.api-contract/build/cjs/types.d.ts similarity index 100% rename from .api-revive/build/cjs/types.d.ts rename to .api-contract/build/cjs/types.d.ts diff --git a/.api-revive/build/cjs/types.js b/.api-contract/build/cjs/types.js similarity index 100% rename from .api-revive/build/cjs/types.js rename to .api-contract/build/cjs/types.js diff --git a/.api-revive/build/cjs/util.d.ts b/.api-contract/build/cjs/util.d.ts similarity index 100% rename from .api-revive/build/cjs/util.d.ts rename to .api-contract/build/cjs/util.d.ts diff --git a/.api-revive/build/cjs/util.js b/.api-contract/build/cjs/util.js similarity index 100% rename from .api-revive/build/cjs/util.js rename to .api-contract/build/cjs/util.js diff --git a/.api-revive/build/index.d.ts b/.api-contract/build/index.d.ts similarity index 100% rename from .api-revive/build/index.d.ts rename to .api-contract/build/index.d.ts diff --git a/.api-revive/build/index.js b/.api-contract/build/index.js similarity index 100% rename from .api-revive/build/index.js rename to .api-contract/build/index.js diff --git a/.api-revive/build/package.json b/.api-contract/build/package.json similarity index 85% rename from .api-revive/build/package.json rename to .api-contract/build/package.json index 7122732a..e80b9a7f 100644 --- a/.api-revive/build/package.json +++ b/.api-contract/build/package.json @@ -5,11 +5,11 @@ "engines": { "node": ">=18" }, - "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-revive#readme", + "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme", "license": "Apache-2.0", - "name": "@polkadot/api-revive", + "name": "@polkadot/api-contract", "repository": { - "directory": "packages/api-revive", + "directory": "packages/api-contract", "type": "git", "url": "https://github.com/polkadot-js/api.git" }, @@ -165,6 +165,20 @@ "default": "./base/Base.js" } }, + "./base/BaseRevive": { + "module": { + "types": "./base/BaseRevive.d.ts", + "default": "./base/BaseRevive.js" + }, + "require": { + "types": "./cjs/base/BaseRevive.d.ts", + "default": "./cjs/base/BaseRevive.js" + }, + "default": { + "types": "./base/BaseRevive.d.ts", + "default": "./base/BaseRevive.js" + } + }, "./base/Blueprint": { "module": { "types": "./base/Blueprint.d.ts", @@ -179,6 +193,20 @@ "default": "./base/Blueprint.js" } }, + "./base/BlueprintRevive": { + "module": { + "types": "./base/BlueprintRevive.d.ts", + "default": "./base/BlueprintRevive.js" + }, + "require": { + "types": "./cjs/base/BlueprintRevive.d.ts", + "default": "./cjs/base/BlueprintRevive.js" + }, + "default": { + "types": "./base/BlueprintRevive.d.ts", + "default": "./base/BlueprintRevive.js" + } + }, "./base/Code": { "module": { "types": "./base/Code.d.ts", @@ -193,6 +221,20 @@ "default": "./base/Code.js" } }, + "./base/CodeRevive": { + "module": { + "types": "./base/CodeRevive.d.ts", + "default": "./base/CodeRevive.js" + }, + "require": { + "types": "./cjs/base/CodeRevive.d.ts", + "default": "./cjs/base/CodeRevive.js" + }, + "default": { + "types": "./base/CodeRevive.d.ts", + "default": "./base/CodeRevive.js" + } + }, "./base/Contract": { "module": { "types": "./base/Contract.d.ts", @@ -207,6 +249,20 @@ "default": "./base/Contract.js" } }, + "./base/ContractRevive": { + "module": { + "types": "./base/ContractRevive.d.ts", + "default": "./base/ContractRevive.js" + }, + "require": { + "types": "./cjs/base/ContractRevive.d.ts", + "default": "./cjs/base/ContractRevive.js" + }, + "default": { + "types": "./base/ContractRevive.d.ts", + "default": "./base/ContractRevive.js" + } + }, "./base/mock": { "module": { "types": "./base/mock.d.ts", diff --git a/.api-revive/build/packageDetect.d.ts b/.api-contract/build/packageDetect.d.ts similarity index 100% rename from .api-revive/build/packageDetect.d.ts rename to .api-contract/build/packageDetect.d.ts diff --git a/.api-revive/build/packageDetect.js b/.api-contract/build/packageDetect.js similarity index 100% rename from .api-revive/build/packageDetect.js rename to .api-contract/build/packageDetect.js diff --git a/.api-revive/build/packageInfo.d.ts b/.api-contract/build/packageInfo.d.ts similarity index 100% rename from .api-revive/build/packageInfo.d.ts rename to .api-contract/build/packageInfo.d.ts diff --git a/.api-revive/build/packageInfo.js b/.api-contract/build/packageInfo.js similarity index 88% rename from .api-revive/build/packageInfo.js rename to .api-contract/build/packageInfo.js index b9cf3215..0d90c7dc 100644 --- a/.api-revive/build/packageInfo.js +++ b/.api-contract/build/packageInfo.js @@ -1,5 +1,5 @@ export const packageInfo = { - name: '@polkadot/api-revive', + name: '@polkadot/api-contract', path: import.meta && import.meta.url ? new URL(import.meta.url).pathname.substring( diff --git a/.api-contract/build/promise/index.d.ts b/.api-contract/build/promise/index.d.ts new file mode 100644 index 00000000..3c1f5a23 --- /dev/null +++ b/.api-contract/build/promise/index.d.ts @@ -0,0 +1,53 @@ +import type { ApiPromise } from '@polkadot/api'; +import type { AccountId, AccountId20, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; +import { + Blueprint, + BlueprintRevive, + Code, + CodeRevive, + Contract, + ContractRevive, +} from '../base/index.js'; +export declare class BlueprintPromise extends Blueprint<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ); +} +export declare class CodePromise extends Code<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractPromise extends Contract<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId, + ); +} +export declare class BlueprintRevivePromise extends BlueprintRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ); +} +export declare class CodeRevivePromise extends CodeRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ); +} +export declare class ContractRevivePromise extends ContractRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId20, + ); +} diff --git a/.api-contract/build/promise/index.js b/.api-contract/build/promise/index.js new file mode 100644 index 00000000..76deb8a7 --- /dev/null +++ b/.api-contract/build/promise/index.js @@ -0,0 +1,39 @@ +import { toPromiseMethod } from '@polkadot/api'; +import { + Blueprint, + BlueprintRevive, + Code, + CodeRevive, + Contract, + ContractRevive, +} from '../base/index.js'; +export class BlueprintPromise extends Blueprint { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, toPromiseMethod); + } +} +export class CodePromise extends Code { + constructor(api, abi, wasm) { + super(api, abi, wasm, toPromiseMethod); + } +} +export class ContractPromise extends Contract { + constructor(api, abi, address) { + super(api, abi, address, toPromiseMethod); + } +} +export class BlueprintRevivePromise extends BlueprintRevive { + constructor(api, abi, codeHash) { + super(api, abi, codeHash, toPromiseMethod); + } +} +export class CodeRevivePromise extends CodeRevive { + constructor(api, abi, wasm) { + super(api, abi, wasm, toPromiseMethod); + } +} +export class ContractRevivePromise extends ContractRevive { + constructor(api, abi, address) { + super(api, abi, address, toPromiseMethod); + } +} diff --git a/.api-revive/build/promise/types.d.ts b/.api-contract/build/promise/types.d.ts similarity index 100% rename from .api-revive/build/promise/types.d.ts rename to .api-contract/build/promise/types.d.ts diff --git a/.api-revive/build/promise/types.js b/.api-contract/build/promise/types.js similarity index 100% rename from .api-revive/build/promise/types.js rename to .api-contract/build/promise/types.js diff --git a/.api-revive/build/rx/index.d.ts b/.api-contract/build/rx/index.d.ts similarity index 100% rename from .api-revive/build/rx/index.d.ts rename to .api-contract/build/rx/index.d.ts diff --git a/.api-revive/build/rx/index.js b/.api-contract/build/rx/index.js similarity index 100% rename from .api-revive/build/rx/index.js rename to .api-contract/build/rx/index.js diff --git a/.api-revive/build/rx/types.d.ts b/.api-contract/build/rx/types.d.ts similarity index 100% rename from .api-revive/build/rx/types.d.ts rename to .api-contract/build/rx/types.d.ts diff --git a/.api-revive/build/rx/types.js b/.api-contract/build/rx/types.js similarity index 100% rename from .api-revive/build/rx/types.js rename to .api-contract/build/rx/types.js diff --git a/.api-revive/build/types.d.ts b/.api-contract/build/types.d.ts similarity index 100% rename from .api-revive/build/types.d.ts rename to .api-contract/build/types.d.ts diff --git a/.api-revive/build/types.js b/.api-contract/build/types.js similarity index 100% rename from .api-revive/build/types.js rename to .api-contract/build/types.js diff --git a/.api-revive/build/util.d.ts b/.api-contract/build/util.d.ts similarity index 100% rename from .api-revive/build/util.d.ts rename to .api-contract/build/util.d.ts diff --git a/.api-revive/build/util.js b/.api-contract/build/util.js similarity index 100% rename from .api-revive/build/util.js rename to .api-contract/build/util.js diff --git a/.api-revive/package.json b/.api-contract/package.json similarity index 90% rename from .api-revive/package.json rename to .api-contract/package.json index c8e61129..f685482a 100644 --- a/.api-revive/package.json +++ b/.api-contract/package.json @@ -5,11 +5,11 @@ "engines": { "node": ">=18" }, - "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-revive#readme", + "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme", "license": "Apache-2.0", - "name": "@polkadot/api-revive", + "name": "@polkadot/api-contract", "repository": { - "directory": "packages/api-revive", + "directory": "packages/api-contract", "type": "git", "url": "https://github.com/polkadot-js/api.git" }, diff --git a/.api-revive/src/Abi/Abi.spec.ts b/.api-contract/src/Abi/Abi.spec.ts similarity index 99% rename from .api-revive/src/Abi/Abi.spec.ts rename to .api-contract/src/Abi/Abi.spec.ts index 89422d7a..1e58a3e7 100644 --- a/.api-revive/src/Abi/Abi.spec.ts +++ b/.api-contract/src/Abi/Abi.spec.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 /// diff --git a/.api-revive/src/Abi/index.ts b/.api-contract/src/Abi/index.ts similarity index 99% rename from .api-revive/src/Abi/index.ts rename to .api-contract/src/Abi/index.ts index a3babb83..538875c4 100644 --- a/.api-revive/src/Abi/index.ts +++ b/.api-contract/src/Abi/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { Bytes, Vec } from '@polkadot/types'; diff --git a/.api-revive/src/Abi/toLatestCompatible.spec.ts b/.api-contract/src/Abi/toLatestCompatible.spec.ts similarity index 98% rename from .api-revive/src/Abi/toLatestCompatible.spec.ts rename to .api-contract/src/Abi/toLatestCompatible.spec.ts index 832436b5..aab966fc 100644 --- a/.api-revive/src/Abi/toLatestCompatible.spec.ts +++ b/.api-contract/src/Abi/toLatestCompatible.spec.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 /// diff --git a/.api-revive/src/Abi/toLatestCompatible.ts b/.api-contract/src/Abi/toLatestCompatible.ts similarity index 96% rename from .api-revive/src/Abi/toLatestCompatible.ts rename to .api-contract/src/Abi/toLatestCompatible.ts index 7800f666..181fc96a 100644 --- a/.api-revive/src/Abi/toLatestCompatible.ts +++ b/.api-contract/src/Abi/toLatestCompatible.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ContractMetadataV4, ContractMetadataV5 } from '@polkadot/types/interfaces'; diff --git a/.api-revive/src/Abi/toV1.ts b/.api-contract/src/Abi/toV1.ts similarity index 93% rename from .api-revive/src/Abi/toV1.ts rename to .api-contract/src/Abi/toV1.ts index 904a4c00..5d0663be 100644 --- a/.api-revive/src/Abi/toV1.ts +++ b/.api-contract/src/Abi/toV1.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ContractMetadataV0, ContractMetadataV1 } from '@polkadot/types/interfaces'; diff --git a/.api-revive/src/Abi/toV2.ts b/.api-contract/src/Abi/toV2.ts similarity index 96% rename from .api-revive/src/Abi/toV2.ts rename to .api-contract/src/Abi/toV2.ts index 901cd810..9619a1c0 100644 --- a/.api-revive/src/Abi/toV2.ts +++ b/.api-contract/src/Abi/toV2.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { Text } from '@polkadot/types'; diff --git a/.api-revive/src/Abi/toV3.ts b/.api-contract/src/Abi/toV3.ts similarity index 91% rename from .api-revive/src/Abi/toV3.ts rename to .api-contract/src/Abi/toV3.ts index 852db696..fccd5a2b 100644 --- a/.api-revive/src/Abi/toV3.ts +++ b/.api-contract/src/Abi/toV3.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ContractMetadataV2, ContractMetadataV3 } from '@polkadot/types/interfaces'; diff --git a/.api-revive/src/Abi/toV4.ts b/.api-contract/src/Abi/toV4.ts similarity index 92% rename from .api-revive/src/Abi/toV4.ts rename to .api-contract/src/Abi/toV4.ts index bd78e8ad..15a7f9c9 100644 --- a/.api-revive/src/Abi/toV4.ts +++ b/.api-contract/src/Abi/toV4.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ContractMetadataV3, ContractMetadataV4 } from '@polkadot/types/interfaces'; diff --git a/.api-revive/src/augment.ts b/.api-contract/src/augment.ts similarity index 51% rename from .api-revive/src/augment.ts rename to .api-contract/src/augment.ts index 21b62204..56f6e04c 100644 --- a/.api-revive/src/augment.ts +++ b/.api-contract/src/augment.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import '@polkadot/api-augment'; diff --git a/.api-contract/src/base/Base.ts b/.api-contract/src/base/Base.ts new file mode 100644 index 00000000..61638d27 --- /dev/null +++ b/.api-contract/src/base/Base.ts @@ -0,0 +1,52 @@ +// Copyright 2017-2025 @polkadot/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@polkadot/api/base'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { WeightV2 } from '@polkadot/types/interfaces'; +import type { Registry } from '@polkadot/types/types'; + +import { isFunction } from '@polkadot/util'; + +import { Abi } from '../Abi/index.js'; + +export abstract class Base { + readonly abi: Abi; + readonly api: ApiBase; + + protected readonly _decorateMethod: DecorateMethod; + protected readonly _isWeightV1: boolean; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + decorateMethod: DecorateMethod, + ) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.contracts || + !isFunction(api.tx.contracts.instantiateWithCode) || + api.tx.contracts.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', + ); + } + + this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + + public get registry(): Registry { + return this.api.registry; + } +} diff --git a/.api-revive/src/base/Base.ts b/.api-contract/src/base/BaseRevive.ts similarity index 96% rename from .api-revive/src/base/Base.ts rename to .api-contract/src/base/BaseRevive.ts index 68b17772..b2d51257 100644 --- a/.api-revive/src/base/Base.ts +++ b/.api-contract/src/base/BaseRevive.ts @@ -10,7 +10,7 @@ import { isFunction } from '@polkadot/util'; import { Abi } from '../Abi/index.js'; -export abstract class Base { +export abstract class BaseRevive { readonly abi: Abi; readonly api: ApiBase; diff --git a/.api-revive/src/base/Blueprint.ts b/.api-contract/src/base/Blueprint.ts similarity index 87% rename from .api-revive/src/base/Blueprint.ts rename to .api-contract/src/base/Blueprint.ts index d7f22416..a79c13dc 100644 --- a/.api-revive/src/base/Blueprint.ts +++ b/.api-contract/src/base/Blueprint.ts @@ -1,10 +1,10 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiBase } from '@polkadot/api/base'; import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Hash } from '@polkadot/types/interfaces'; +import type { AccountId, EventRecord, Hash } from '@polkadot/types/interfaces'; import type { ISubmittableResult } from '@polkadot/types/types'; import type { Abi } from '../Abi/index.js'; import type { AbiConstructor, BlueprintOptions } from '../types.js'; @@ -13,7 +13,7 @@ import type { MapConstructorExec } from './types.js'; import { SubmittableResult } from '@polkadot/api'; import { BN_ZERO, isUndefined } from '@polkadot/util'; -// import { applyOnEvent } from '../util.js'; +import { applyOnEvent } from '../util.js'; import { Base } from './Base.js'; import { Contract } from './Contract.js'; import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; @@ -68,7 +68,7 @@ export class Blueprint extends Base { { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, params: unknown[], ): SubmittableExtrinsic> => { - return this.api.tx.revive + return this.api.tx.contracts .instantiate( value, // eslint-disable-next-line @typescript-eslint/ban-ts-comment @@ -83,17 +83,17 @@ export class Blueprint extends Base { (result: ISubmittableResult) => new BlueprintSubmittableResult( result, - (() => { - if (result.status.isInBlock || result.status.isFinalized) { - return new Contract( + applyOnEvent( + result, + ['Instantiated'], + ([record]: EventRecord[]) => + new Contract( this.api, this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + record.event.data[1] as AccountId, this._decorateMethod, - ); - } - return undefined; - })(), + ), + ), ), ); }; diff --git a/.api-contract/src/base/BlueprintRevive.ts b/.api-contract/src/base/BlueprintRevive.ts new file mode 100644 index 00000000..0d2d9d25 --- /dev/null +++ b/.api-contract/src/base/BlueprintRevive.ts @@ -0,0 +1,106 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@polkadot/api/base'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { Hash } from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { AbiConstructor, BlueprintOptions } from '../types.js'; +import type { MapConstructorExec } from './types.js'; + +import { BN_ZERO, isUndefined } from '@polkadot/util'; + +import { BaseRevive } from './BaseRevive.js'; +import { BlueprintSubmittableResult } from './Blueprint.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; + +export type BlueprintReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, +) => BlueprintRevive; + +export class BlueprintRevive extends BaseRevive { + /** + * @description The on-chain code hash for this blueprint + */ + readonly codeHash: Hash; + + readonly #tx: MapConstructorExec = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.codeHash = this.registry.createType('Hash', codeHash); + + this.abi.constructors.forEach((c): void => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p)); + } + }); + } + + public get tx(): MapConstructorExec { + return this.#tx; + } + + #deploy = ( + constructorOrId: AbiConstructor | string | number, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, + params: unknown[], + ): SubmittableExtrinsic> => { + return this.api.tx.revive + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + (result: ISubmittableResult) => + new BlueprintSubmittableResult( + result, + (() => { + if (result.status.isInBlock || result.status.isFinalized) { + return new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ); + } + return undefined; + })(), + ), + ); + }; +} + +export function extendBlueprint( + type: ApiType, + decorateMethod: DecorateMethod, +): BlueprintReviveConstructor { + return class extends BlueprintRevive { + static __BlueprintType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + codeHash: string | Hash | Uint8Array, + ) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/.api-revive/src/base/Code.spec.ts b/.api-contract/src/base/Code.spec.ts similarity index 95% rename from .api-revive/src/base/Code.spec.ts rename to .api-contract/src/base/Code.spec.ts index c17c91e4..0fd4cc99 100644 --- a/.api-revive/src/base/Code.spec.ts +++ b/.api-contract/src/base/Code.spec.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 /// diff --git a/.api-revive/src/base/Code.ts b/.api-contract/src/base/Code.ts similarity index 72% rename from .api-revive/src/base/Code.ts rename to .api-contract/src/base/Code.ts index f0864dee..ea712c10 100644 --- a/.api-revive/src/base/Code.ts +++ b/.api-contract/src/base/Code.ts @@ -1,12 +1,11 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiBase } from '@polkadot/api/base'; import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -// import type { AccountId, EventRecord } from '@polkadot/types/interfaces'; +import type { AccountId, EventRecord } from '@polkadot/types/interfaces'; import type { ISubmittableResult } from '@polkadot/types/types'; -// @ts-ignore import type { Codec } from '@polkadot/types-codec/types'; import type { Abi } from '../Abi/index.js'; import type { AbiConstructor, BlueprintOptions } from '../types.js'; @@ -15,7 +14,7 @@ import type { MapConstructorExec } from './types.js'; import { SubmittableResult } from '@polkadot/api'; import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; -// import { applyOnEvent } from '../util.js'; +import { applyOnEvent } from '../util.js'; import { Base } from './Base.js'; import { Blueprint } from './Blueprint.js'; import { Contract } from './Contract.js'; @@ -84,9 +83,7 @@ export class Code extends Base { { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, params: unknown[], ): SubmittableExtrinsic> => { - console.log('in instantiate'); - console.log(this.abi.info.source.wasmHash); - return this.api.tx.revive + return this.api.tx.contracts .instantiateWithCode( value, // eslint-disable-next-line @typescript-eslint/ban-ts-comment @@ -101,34 +98,38 @@ export class Code extends Base { (result: ISubmittableResult) => new CodeSubmittableResult( result, - new Blueprint( - this.api, - this.abi, - this.abi.info.source.wasmHash, - this._decorateMethod, - ), - new Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ), + ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], (records: EventRecord[]) => + records.reduce<[Blueprint | undefined, Contract | undefined]>( + ([blueprint, contract], { event }) => + this.api.events.contracts.Instantiated.is(event) + ? [ + blueprint, + new Contract( + this.api, + this.abi, + (event as unknown as { data: [Codec, AccountId] }).data[1], + this._decorateMethod, + ), + ] + : this.api.events.contracts.CodeStored.is(event) + ? [ + new Blueprint( + this.api, + this.abi, + (event as unknown as { data: [AccountId] }).data[0], + this._decorateMethod, + ), + contract, + ] + : [blueprint, contract], + [undefined, undefined], + ), + ) || [undefined, undefined]), ), ); }; } -// new CodeSubmittableResult(result, ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], (records: EventRecord[]) => -// records.reduce<[Blueprint | undefined, Contract | undefined]>(([blueprint, contract], { event }) => -// this.api.events.contracts.Instantiated.is(event) -// ? [blueprint, new Contract(this.api, this.abi, (event as unknown as { data: [Codec, AccountId] }).data[1], this._decorateMethod)] -// : this.api.events.contracts.CodeStored.is(event) -// ? [new Blueprint(this.api, this.abi, (event as unknown as { data: [AccountId] }).data[0], this._decorateMethod), contract] -// : [blueprint, contract], -// [undefined, undefined]) -// ) || [undefined, undefined])) -// ); - export function extendCode( type: ApiType, decorateMethod: DecorateMethod, diff --git a/.api-contract/src/base/CodeRevive.ts b/.api-contract/src/base/CodeRevive.ts new file mode 100644 index 00000000..03d25bf7 --- /dev/null +++ b/.api-contract/src/base/CodeRevive.ts @@ -0,0 +1,132 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@polkadot/api/base'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { ISubmittableResult } from '@polkadot/types/types'; +// @ts-ignore +import type { Codec } from '@polkadot/types-codec/types'; +import type { Abi } from '../Abi/index.js'; +import type { AbiConstructor, BlueprintOptions } from '../types.js'; +import type { MapConstructorExec } from './types.js'; + +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, compactAddLength, isRiscV, isUndefined, u8aToU8a } from '@polkadot/util'; + +import { BaseRevive } from './BaseRevive.js'; +import { BlueprintRevive } from './BlueprintRevive.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; + +export type CodeReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, +) => CodeRevive; + +export class CodeReviveSubmittableResult extends SubmittableResult { + readonly blueprint?: BlueprintRevive | undefined; + readonly contract?: Contract | undefined; + + constructor( + result: ISubmittableResult, + blueprint?: BlueprintRevive | undefined, + contract?: Contract | undefined, + ) { + super(result); + + this.blueprint = blueprint; + this.contract = contract; + } +} + +// checks to see if the code (or at least the header) +// is a valid/supported format +function isValidCode(code: Uint8Array): boolean { + return isRiscV(code); +} + +export class CodeRevive extends BaseRevive { + readonly code: Uint8Array; + + readonly #tx: MapConstructorExec = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); + + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + + this.abi.constructors.forEach((c): void => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p)); + } + }); + } + + public get tx(): MapConstructorExec { + return this.#tx; + } + + #instantiate = ( + constructorOrId: AbiConstructor | string | number, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, + params: unknown[], + ): SubmittableExtrinsic> => { + return this.api.tx.revive + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + (result: ISubmittableResult) => + new CodeReviveSubmittableResult( + result, + new BlueprintRevive( + this.api, + this.abi, + this.abi.info.source.wasmHash, + this._decorateMethod, + ), + new Contract( + this.api, + this.abi, + '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', + this._decorateMethod, + ), + ), + ); + }; +} + +export function extendCode( + type: ApiType, + decorateMethod: DecorateMethod, +): CodeReviveConstructor { + return class extends CodeRevive { + static __CodeType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/.api-revive/src/base/Contract.ts b/.api-contract/src/base/Contract.ts similarity index 96% rename from .api-revive/src/base/Contract.ts rename to .api-contract/src/base/Contract.ts index 10f8bb66..6caded8d 100644 --- a/.api-revive/src/base/Contract.ts +++ b/.api-contract/src/base/Contract.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiBase } from '@polkadot/api/base'; @@ -6,7 +6,6 @@ import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; import type { AccountId, - AccountId20, ContractExecResult, EventRecord, Weight, @@ -93,7 +92,7 @@ export class Contract extends Base { /** * @description The on-chain address for this contract */ - readonly address: AccountId20; + readonly address: AccountId; readonly #query: MapMessageQuery = {}; readonly #tx: MapMessageTx = {}; @@ -101,12 +100,12 @@ export class Contract extends Base { constructor( api: ApiBase, abi: string | Record | Abi, - address: string | AccountId20, + address: string | AccountId, decorateMethod: DecorateMethod, ) { super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); + this.address = this.registry.createType('AccountId', address); this.abi.messages.forEach((m): void => { if (isUndefined(this.#tx[m.method])) { @@ -152,7 +151,7 @@ export class Contract extends Base { { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, params: unknown[], ): SubmittableExtrinsic => { - return this.api.tx.revive + return this.api.tx.contracts .call( this.address, value, diff --git a/.api-contract/src/base/ContractRevive.ts b/.api-contract/src/base/ContractRevive.ts new file mode 100644 index 00000000..c42083ce --- /dev/null +++ b/.api-contract/src/base/ContractRevive.ts @@ -0,0 +1,261 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@polkadot/api/base'; +import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; +import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; +import type { + AccountId, + AccountId20, + ContractExecResult, + EventRecord, + Weight, + WeightV2, +} from '@polkadot/types/interfaces'; +import type { ISubmittableResult } from '@polkadot/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { + AbiMessage, + ContractCallOutcome, + ContractOptions, + DecodedEvent, + WeightAll, +} from '../types.js'; +import type { + ContractCallResult, + ContractCallSend, + ContractQuery, + ContractTx, + MapMessageQuery, + MapMessageTx, +} from './types.js'; + +import { map } from 'rxjs'; + +import { SubmittableResult } from '@polkadot/api'; +import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; + +import { applyOnEvent } from '../util.js'; +import { BaseRevive } from './BaseRevive.js'; +import { convertWeight, withMeta } from './util.js'; + +export type ContractReviveConstructor = new ( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, +) => ContractRevive; + +// As per Rust, 5 * GAS_PER_SEC +const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); + +const l = logger('Contract'); + +function createQuery( + meta: AbiMessage, + fn: ( + origin: string | AccountId | Uint8Array, + options: ContractOptions, + params: unknown[], + ) => ContractCallResult, +): ContractQuery { + return withMeta( + meta, + ( + origin: string | AccountId | Uint8Array, + options: ContractOptions, + ...params: unknown[] + ): ContractCallResult => fn(origin, options, params), + ); +} + +function createTx( + meta: AbiMessage, + fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic, +): ContractTx { + return withMeta( + meta, + (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic => + fn(options, params), + ); +} + +export class ContractSubmittableResult extends SubmittableResult { + readonly contractEvents?: DecodedEvent[] | undefined; + + constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]) { + super(result); + + this.contractEvents = contractEvents; + } +} + +export class ContractRevive extends BaseRevive { + /** + * @description The on-chain address for this contract + */ + readonly address: AccountId20; + + readonly #query: MapMessageQuery = {}; + readonly #tx: MapMessageTx = {}; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId20, + decorateMethod: DecorateMethod, + ) { + super(api, abi, decorateMethod); + + this.address = this.registry.createType('AccountId20', address); + + this.abi.messages.forEach((m): void => { + if (isUndefined(this.#tx[m.method])) { + this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p)); + } + + if (isUndefined(this.#query[m.method])) { + this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f)); + } + }); + } + + public get query(): MapMessageQuery { + return this.#query; + } + + public get tx(): MapMessageTx { + return this.#tx; + } + + #getGas = (_gasLimit: bigint | BN | string | number | WeightV2, isCall = false): WeightAll => { + const weight = convertWeight(_gasLimit); + + if (weight.v1Weight.gt(BN_ZERO)) { + return weight; + } + + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? (this.api.consts.system.blockWeights as unknown as { maxBlock: WeightV2 }).maxBlock + : (this.api.consts.system['maximumBlockWeight'] as Weight), + ) + .v1Weight.muln(64) + .div(BN_HUNDRED), + ); + }; + + #exec = ( + messageOrId: AbiMessage | string | number, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, + params: unknown[], + ): SubmittableExtrinsic => { + return this.api.tx.revive + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + (result: ISubmittableResult) => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + applyOnEvent( + result, + ['ContractEmitted', 'ContractExecution'], + (records: EventRecord[]) => + records + .map((record): DecodedEvent | null => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${(error as Error).message}`); + + return null; + } + }) + .filter((decoded): decoded is DecodedEvent => !!decoded), + ), + ), + ); + }; + + #read = ( + messageOrId: AbiMessage | string | number, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, + params: unknown[], + ): ContractCallSend => { + const message = this.abi.findMessage(messageOrId); + + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod((origin: string | AccountId | Uint8Array) => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.#getGas(gasLimit, true).v1Weight + : this.#getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + map( + ({ + debugMessage, + gasConsumed, + gasRequired, + result, + storageDeposit, + }): ContractCallOutcome => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + }), + ), + ), + ), + }; + }; +} + +export function extendContract( + type: ApiType, + decorateMethod: DecorateMethod, +): ContractReviveConstructor { + return class extends ContractRevive { + static __ContractType = type; + + constructor( + api: ApiBase, + abi: string | Record | Abi, + address: string | AccountId, + ) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/.api-revive/src/base/index.ts b/.api-contract/src/base/index.ts similarity index 66% rename from .api-revive/src/base/index.ts rename to .api-contract/src/base/index.ts index e85848a3..4295c6cb 100644 --- a/.api-revive/src/base/index.ts +++ b/.api-contract/src/base/index.ts @@ -2,5 +2,8 @@ // SPDX-License-Identifier: Apache-2.0 export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { BlueprintRevive } from './BlueprintRevive.js'; export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { CodeRevive } from './CodeRevive.js'; export { Contract, extendContract } from './Contract.js'; +export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-revive/src/base/mock.ts b/.api-contract/src/base/mock.ts similarity index 89% rename from .api-revive/src/base/mock.ts rename to .api-contract/src/base/mock.ts index 3ec5387b..bb997998 100644 --- a/.api-revive/src/base/mock.ts +++ b/.api-contract/src/base/mock.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiBase } from '@polkadot/api/base'; diff --git a/.api-revive/src/base/types.ts b/.api-contract/src/base/types.ts similarity index 96% rename from .api-revive/src/base/types.ts rename to .api-contract/src/base/types.ts index 32ff90f7..6f9cbc9d 100644 --- a/.api-revive/src/base/types.ts +++ b/.api-contract/src/base/types.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { Observable } from 'rxjs'; diff --git a/.api-revive/src/base/util.ts b/.api-contract/src/base/util.ts similarity index 97% rename from .api-revive/src/base/util.ts rename to .api-contract/src/base/util.ts index 9157a291..33c28016 100644 --- a/.api-revive/src/base/util.ts +++ b/.api-contract/src/base/util.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { SubmittableResult } from '@polkadot/api'; diff --git a/.api-revive/src/bundle.ts b/.api-contract/src/bundle.ts similarity index 76% rename from .api-revive/src/bundle.ts rename to .api-contract/src/bundle.ts index 5c74aaa5..1be0423b 100644 --- a/.api-revive/src/bundle.ts +++ b/.api-contract/src/bundle.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 // all named diff --git a/.api-revive/src/checkTypes.manual.ts b/.api-contract/src/checkTypes.manual.ts similarity index 95% rename from .api-revive/src/checkTypes.manual.ts rename to .api-contract/src/checkTypes.manual.ts index ff776315..236f68e5 100644 --- a/.api-revive/src/checkTypes.manual.ts +++ b/.api-contract/src/checkTypes.manual.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 // Simple non-runnable checks to test type definitions in the editor itself @@ -8,7 +8,7 @@ import '@polkadot/api-augment'; import type { TestKeyringMapSubstrate } from '@polkadot/keyring/testingPairs'; import { ApiPromise } from '@polkadot/api'; -import { BlueprintPromise, ContractPromise } from '@polkadot/api-revive'; +import { BlueprintPromise, ContractPromise } from '@polkadot/api-contract'; import { createTestPairs } from '@polkadot/keyring/testingPairs'; import abiIncrementer from './test/contracts/ink/v0/incrementer.json' assert { type: 'json' }; diff --git a/.api-revive/src/index.ts b/.api-contract/src/index.ts similarity index 58% rename from .api-revive/src/index.ts rename to .api-contract/src/index.ts index 12d70fe0..5e015c3f 100644 --- a/.api-revive/src/index.ts +++ b/.api-contract/src/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import './packageDetect.js'; diff --git a/.api-contract/src/mod.ts b/.api-contract/src/mod.ts new file mode 100644 index 00000000..57e1fea8 --- /dev/null +++ b/.api-contract/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/.api-revive/src/packageDetect.ts b/.api-contract/src/packageDetect.ts similarity index 86% rename from .api-revive/src/packageDetect.ts rename to .api-contract/src/packageDetect.ts index 7f541faf..ee014dfe 100644 --- a/.api-revive/src/packageDetect.ts +++ b/.api-contract/src/packageDetect.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 // Do not edit, auto-generated by @polkadot/dev diff --git a/.api-revive/src/packageInfo.ts b/.api-contract/src/packageInfo.ts similarity index 62% rename from .api-revive/src/packageInfo.ts rename to .api-contract/src/packageInfo.ts index 63e1465a..2f695e88 100644 --- a/.api-revive/src/packageInfo.ts +++ b/.api-contract/src/packageInfo.ts @@ -1,10 +1,10 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 // Do not edit, auto-generated by @polkadot/dev export const packageInfo = { - name: '@polkadot/api-revive', + name: '@polkadot/api-contract', path: 'auto', type: 'auto', version: '15.8.1', diff --git a/.api-contract/src/promise/index.ts b/.api-contract/src/promise/index.ts new file mode 100644 index 00000000..3cf3301d --- /dev/null +++ b/.api-contract/src/promise/index.ts @@ -0,0 +1,77 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiPromise } from '@polkadot/api'; +import type { AccountId, AccountId20, Hash } from '@polkadot/types/interfaces'; +import type { Abi } from '../Abi/index.js'; + +import { toPromiseMethod } from '@polkadot/api'; + +import { + Blueprint, + BlueprintRevive, + Code, + CodeRevive, + Contract, + ContractRevive, +} from '../base/index.js'; + +export class BlueprintPromise extends Blueprint<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ) { + super(api, abi, codeHash, toPromiseMethod); + } +} + +export class CodePromise extends Code<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, toPromiseMethod); + } +} + +export class ContractPromise extends Contract<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId, + ) { + super(api, abi, address, toPromiseMethod); + } +} + +export class BlueprintRevivePromise extends BlueprintRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + codeHash: string | Hash, + ) { + super(api, abi, codeHash, toPromiseMethod); + } +} + +export class CodeRevivePromise extends CodeRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + wasm: Uint8Array | string | Buffer | null | undefined, + ) { + super(api, abi, wasm, toPromiseMethod); + } +} + +export class ContractRevivePromise extends ContractRevive<'promise'> { + constructor( + api: ApiPromise, + abi: string | Record | Abi, + address: string | AccountId20, + ) { + super(api, abi, address, toPromiseMethod); + } +} diff --git a/.api-revive/src/rx/types.ts b/.api-contract/src/promise/types.ts similarity index 83% rename from .api-revive/src/rx/types.ts rename to .api-contract/src/promise/types.ts index deb451f0..7057fec2 100644 --- a/.api-revive/src/rx/types.ts +++ b/.api-contract/src/promise/types.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { diff --git a/.api-revive/src/rx/index.ts b/.api-contract/src/rx/index.ts similarity index 93% rename from .api-revive/src/rx/index.ts rename to .api-contract/src/rx/index.ts index fc31b107..72bc95d7 100644 --- a/.api-revive/src/rx/index.ts +++ b/.api-contract/src/rx/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiRx } from '@polkadot/api'; diff --git a/.api-revive/src/promise/types.ts b/.api-contract/src/rx/types.ts similarity index 83% rename from .api-revive/src/promise/types.ts rename to .api-contract/src/rx/types.ts index deb451f0..7057fec2 100644 --- a/.api-revive/src/promise/types.ts +++ b/.api-contract/src/rx/types.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { diff --git a/.api-revive/src/test/compare/ink_v0_delegator.test.json b/.api-contract/src/test/compare/ink_v0_delegator.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v0_delegator.test.json rename to .api-contract/src/test/compare/ink_v0_delegator.test.json diff --git a/.api-revive/src/test/compare/ink_v0_dns.test.json b/.api-contract/src/test/compare/ink_v0_dns.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v0_dns.test.json rename to .api-contract/src/test/compare/ink_v0_dns.test.json diff --git a/.api-revive/src/test/compare/ink_v0_erc20.test.json b/.api-contract/src/test/compare/ink_v0_erc20.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v0_erc20.test.json rename to .api-contract/src/test/compare/ink_v0_erc20.test.json diff --git a/.api-revive/src/test/compare/ink_v0_erc721.test.json b/.api-contract/src/test/compare/ink_v0_erc721.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v0_erc721.test.json rename to .api-contract/src/test/compare/ink_v0_erc721.test.json diff --git a/.api-revive/src/test/compare/ink_v0_flipper.test.json b/.api-contract/src/test/compare/ink_v0_flipper.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v0_flipper.test.json rename to .api-contract/src/test/compare/ink_v0_flipper.test.json diff --git a/.api-revive/src/test/compare/ink_v0_flipperBundle.test.json b/.api-contract/src/test/compare/ink_v0_flipperBundle.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v0_flipperBundle.test.json rename to .api-contract/src/test/compare/ink_v0_flipperBundle.test.json diff --git a/.api-revive/src/test/compare/ink_v0_incrementer.test.json b/.api-contract/src/test/compare/ink_v0_incrementer.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v0_incrementer.test.json rename to .api-contract/src/test/compare/ink_v0_incrementer.test.json diff --git a/.api-revive/src/test/compare/ink_v0_multisigPlain.test.json b/.api-contract/src/test/compare/ink_v0_multisigPlain.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v0_multisigPlain.test.json rename to .api-contract/src/test/compare/ink_v0_multisigPlain.test.json diff --git a/.api-revive/src/test/compare/ink_v1_flipper.test.json b/.api-contract/src/test/compare/ink_v1_flipper.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v1_flipper.test.json rename to .api-contract/src/test/compare/ink_v1_flipper.test.json diff --git a/.api-revive/src/test/compare/ink_v1_psp22.test.json b/.api-contract/src/test/compare/ink_v1_psp22.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v1_psp22.test.json rename to .api-contract/src/test/compare/ink_v1_psp22.test.json diff --git a/.api-revive/src/test/compare/ink_v2_erc20.test.json b/.api-contract/src/test/compare/ink_v2_erc20.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v2_erc20.test.json rename to .api-contract/src/test/compare/ink_v2_erc20.test.json diff --git a/.api-revive/src/test/compare/ink_v2_flipper.test.json b/.api-contract/src/test/compare/ink_v2_flipper.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v2_flipper.test.json rename to .api-contract/src/test/compare/ink_v2_flipper.test.json diff --git a/.api-revive/src/test/compare/ink_v3_flipper.test.json b/.api-contract/src/test/compare/ink_v3_flipper.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v3_flipper.test.json rename to .api-contract/src/test/compare/ink_v3_flipper.test.json diff --git a/.api-revive/src/test/compare/ink_v3_traitErc20.test.json b/.api-contract/src/test/compare/ink_v3_traitErc20.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v3_traitErc20.test.json rename to .api-contract/src/test/compare/ink_v3_traitErc20.test.json diff --git a/.api-revive/src/test/compare/ink_v4_erc20Contract.test.json b/.api-contract/src/test/compare/ink_v4_erc20Contract.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v4_erc20Contract.test.json rename to .api-contract/src/test/compare/ink_v4_erc20Contract.test.json diff --git a/.api-revive/src/test/compare/ink_v4_erc20Metadata.test.json b/.api-contract/src/test/compare/ink_v4_erc20Metadata.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v4_erc20Metadata.test.json rename to .api-contract/src/test/compare/ink_v4_erc20Metadata.test.json diff --git a/.api-revive/src/test/compare/ink_v4_flipperContract.test.json b/.api-contract/src/test/compare/ink_v4_flipperContract.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v4_flipperContract.test.json rename to .api-contract/src/test/compare/ink_v4_flipperContract.test.json diff --git a/.api-revive/src/test/compare/ink_v4_flipperMetadata.test.json b/.api-contract/src/test/compare/ink_v4_flipperMetadata.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v4_flipperMetadata.test.json rename to .api-contract/src/test/compare/ink_v4_flipperMetadata.test.json diff --git a/.api-revive/src/test/compare/ink_v5_erc20.test.json b/.api-contract/src/test/compare/ink_v5_erc20.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v5_erc20.test.json rename to .api-contract/src/test/compare/ink_v5_erc20.test.json diff --git a/.api-revive/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json b/.api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json rename to .api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json diff --git a/.api-revive/src/test/compare/ink_v5_erc20Contract.test.json b/.api-contract/src/test/compare/ink_v5_erc20Contract.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v5_erc20Contract.test.json rename to .api-contract/src/test/compare/ink_v5_erc20Contract.test.json diff --git a/.api-revive/src/test/compare/ink_v5_erc20Metadata.test.json b/.api-contract/src/test/compare/ink_v5_erc20Metadata.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v5_erc20Metadata.test.json rename to .api-contract/src/test/compare/ink_v5_erc20Metadata.test.json diff --git a/.api-revive/src/test/compare/ink_v5_flipperContract.test.json b/.api-contract/src/test/compare/ink_v5_flipperContract.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v5_flipperContract.test.json rename to .api-contract/src/test/compare/ink_v5_flipperContract.test.json diff --git a/.api-revive/src/test/compare/ink_v5_flipperMetadata.test.json b/.api-contract/src/test/compare/ink_v5_flipperMetadata.test.json similarity index 100% rename from .api-revive/src/test/compare/ink_v5_flipperMetadata.test.json rename to .api-contract/src/test/compare/ink_v5_flipperMetadata.test.json diff --git a/.api-revive/src/test/compare/solang_v0_ints256.test.json b/.api-contract/src/test/compare/solang_v0_ints256.test.json similarity index 100% rename from .api-revive/src/test/compare/solang_v0_ints256.test.json rename to .api-contract/src/test/compare/solang_v0_ints256.test.json diff --git a/.api-revive/src/test/compare/user_v0_assetTransfer.test.json b/.api-contract/src/test/compare/user_v0_assetTransfer.test.json similarity index 100% rename from .api-revive/src/test/compare/user_v0_assetTransfer.test.json rename to .api-contract/src/test/compare/user_v0_assetTransfer.test.json diff --git a/.api-revive/src/test/compare/user_v0_enumExample.test.json b/.api-contract/src/test/compare/user_v0_enumExample.test.json similarity index 100% rename from .api-revive/src/test/compare/user_v0_enumExample.test.json rename to .api-contract/src/test/compare/user_v0_enumExample.test.json diff --git a/.api-revive/src/test/compare/user_v0_recursive.test.json b/.api-contract/src/test/compare/user_v0_recursive.test.json similarity index 100% rename from .api-revive/src/test/compare/user_v0_recursive.test.json rename to .api-contract/src/test/compare/user_v0_recursive.test.json diff --git a/.api-revive/src/test/compare/user_v0_withString.test.json b/.api-contract/src/test/compare/user_v0_withString.test.json similarity index 100% rename from .api-revive/src/test/compare/user_v0_withString.test.json rename to .api-contract/src/test/compare/user_v0_withString.test.json diff --git a/.api-revive/src/test/compare/user_v3_ask.test.json b/.api-contract/src/test/compare/user_v3_ask.test.json similarity index 100% rename from .api-revive/src/test/compare/user_v3_ask.test.json rename to .api-contract/src/test/compare/user_v3_ask.test.json diff --git a/.api-revive/src/test/compare/user_v4_events.test.json b/.api-contract/src/test/compare/user_v4_events.test.json similarity index 100% rename from .api-revive/src/test/compare/user_v4_events.test.json rename to .api-contract/src/test/compare/user_v4_events.test.json diff --git a/.api-revive/src/test/contracts/index.ts b/.api-contract/src/test/contracts/index.ts similarity index 85% rename from .api-revive/src/test/contracts/index.ts rename to .api-contract/src/test/contracts/index.ts index 8099b022..3ffc7321 100644 --- a/.api-revive/src/test/contracts/index.ts +++ b/.api-contract/src/test/contracts/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import ink from './ink/index.js'; diff --git a/.api-revive/src/test/contracts/ink/index.ts b/.api-contract/src/test/contracts/ink/index.ts similarity index 84% rename from .api-revive/src/test/contracts/ink/index.ts rename to .api-contract/src/test/contracts/ink/index.ts index 7783e64e..3ae97f89 100644 --- a/.api-revive/src/test/contracts/ink/index.ts +++ b/.api-contract/src/test/contracts/ink/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import { createVersionedExport } from '../util.js'; diff --git a/.api-revive/src/test/contracts/ink/v0/accumulator.wasm b/.api-contract/src/test/contracts/ink/v0/accumulator.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/accumulator.wasm rename to .api-contract/src/test/contracts/ink/v0/accumulator.wasm diff --git a/.api-revive/src/test/contracts/ink/v0/adder.wasm b/.api-contract/src/test/contracts/ink/v0/adder.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/adder.wasm rename to .api-contract/src/test/contracts/ink/v0/adder.wasm diff --git a/.api-revive/src/test/contracts/ink/v0/delegator.json b/.api-contract/src/test/contracts/ink/v0/delegator.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/delegator.json rename to .api-contract/src/test/contracts/ink/v0/delegator.json diff --git a/.api-revive/src/test/contracts/ink/v0/delegator.wasm b/.api-contract/src/test/contracts/ink/v0/delegator.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/delegator.wasm rename to .api-contract/src/test/contracts/ink/v0/delegator.wasm diff --git a/.api-revive/src/test/contracts/ink/v0/dns.json b/.api-contract/src/test/contracts/ink/v0/dns.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/dns.json rename to .api-contract/src/test/contracts/ink/v0/dns.json diff --git a/.api-revive/src/test/contracts/ink/v0/dns.wasm b/.api-contract/src/test/contracts/ink/v0/dns.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/dns.wasm rename to .api-contract/src/test/contracts/ink/v0/dns.wasm diff --git a/.api-revive/src/test/contracts/ink/v0/erc20.json b/.api-contract/src/test/contracts/ink/v0/erc20.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/erc20.json rename to .api-contract/src/test/contracts/ink/v0/erc20.json diff --git a/.api-revive/src/test/contracts/ink/v0/erc20.wasm b/.api-contract/src/test/contracts/ink/v0/erc20.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/erc20.wasm rename to .api-contract/src/test/contracts/ink/v0/erc20.wasm diff --git a/.api-revive/src/test/contracts/ink/v0/erc721.json b/.api-contract/src/test/contracts/ink/v0/erc721.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/erc721.json rename to .api-contract/src/test/contracts/ink/v0/erc721.json diff --git a/.api-revive/src/test/contracts/ink/v0/erc721.wasm b/.api-contract/src/test/contracts/ink/v0/erc721.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/erc721.wasm rename to .api-contract/src/test/contracts/ink/v0/erc721.wasm diff --git a/.api-revive/src/test/contracts/ink/v0/flipper.contract.json b/.api-contract/src/test/contracts/ink/v0/flipper.contract.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/flipper.contract.json rename to .api-contract/src/test/contracts/ink/v0/flipper.contract.json diff --git a/.api-revive/src/test/contracts/ink/v0/flipper.json b/.api-contract/src/test/contracts/ink/v0/flipper.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/flipper.json rename to .api-contract/src/test/contracts/ink/v0/flipper.json diff --git a/.api-revive/src/test/contracts/ink/v0/flipper.wasm b/.api-contract/src/test/contracts/ink/v0/flipper.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/flipper.wasm rename to .api-contract/src/test/contracts/ink/v0/flipper.wasm diff --git a/.api-revive/src/test/contracts/ink/v0/incrementer.json b/.api-contract/src/test/contracts/ink/v0/incrementer.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/incrementer.json rename to .api-contract/src/test/contracts/ink/v0/incrementer.json diff --git a/.api-revive/src/test/contracts/ink/v0/incrementer.wasm b/.api-contract/src/test/contracts/ink/v0/incrementer.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/incrementer.wasm rename to .api-contract/src/test/contracts/ink/v0/incrementer.wasm diff --git a/.api-revive/src/test/contracts/ink/v0/index.ts b/.api-contract/src/test/contracts/ink/v0/index.ts similarity index 90% rename from .api-revive/src/test/contracts/ink/v0/index.ts rename to .api-contract/src/test/contracts/ink/v0/index.ts index 53e15062..923a6fa6 100644 --- a/.api-revive/src/test/contracts/ink/v0/index.ts +++ b/.api-contract/src/test/contracts/ink/v0/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as delegator } from './delegator.json' assert { type: 'json' }; diff --git a/.api-revive/src/test/contracts/ink/v0/multisig_plain.json b/.api-contract/src/test/contracts/ink/v0/multisig_plain.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/multisig_plain.json rename to .api-contract/src/test/contracts/ink/v0/multisig_plain.json diff --git a/.api-revive/src/test/contracts/ink/v0/multisig_plain.wasm b/.api-contract/src/test/contracts/ink/v0/multisig_plain.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/multisig_plain.wasm rename to .api-contract/src/test/contracts/ink/v0/multisig_plain.wasm diff --git a/.api-revive/src/test/contracts/ink/v0/subber.wasm b/.api-contract/src/test/contracts/ink/v0/subber.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/subber.wasm rename to .api-contract/src/test/contracts/ink/v0/subber.wasm diff --git a/.api-revive/src/test/contracts/ink/v0/trait-flipper.json b/.api-contract/src/test/contracts/ink/v0/trait-flipper.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/trait-flipper.json rename to .api-contract/src/test/contracts/ink/v0/trait-flipper.json diff --git a/.api-revive/src/test/contracts/ink/v0/trait-flipper.wasm b/.api-contract/src/test/contracts/ink/v0/trait-flipper.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v0/trait-flipper.wasm rename to .api-contract/src/test/contracts/ink/v0/trait-flipper.wasm diff --git a/.api-revive/src/test/contracts/ink/v1/flipper.contract.json b/.api-contract/src/test/contracts/ink/v1/flipper.contract.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v1/flipper.contract.json rename to .api-contract/src/test/contracts/ink/v1/flipper.contract.json diff --git a/.api-revive/src/test/contracts/ink/v1/index.ts b/.api-contract/src/test/contracts/ink/v1/index.ts similarity index 79% rename from .api-revive/src/test/contracts/ink/v1/index.ts rename to .api-contract/src/test/contracts/ink/v1/index.ts index 22d37f30..b20c8916 100644 --- a/.api-revive/src/test/contracts/ink/v1/index.ts +++ b/.api-contract/src/test/contracts/ink/v1/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; diff --git a/.api-revive/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json b/.api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json rename to .api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json diff --git a/.api-revive/src/test/contracts/ink/v2/erc20.contract.json b/.api-contract/src/test/contracts/ink/v2/erc20.contract.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v2/erc20.contract.json rename to .api-contract/src/test/contracts/ink/v2/erc20.contract.json diff --git a/.api-revive/src/test/contracts/ink/v2/flipper.contract.json b/.api-contract/src/test/contracts/ink/v2/flipper.contract.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v2/flipper.contract.json rename to .api-contract/src/test/contracts/ink/v2/flipper.contract.json diff --git a/.api-revive/src/test/contracts/ink/v2/index.ts b/.api-contract/src/test/contracts/ink/v2/index.ts similarity index 75% rename from .api-revive/src/test/contracts/ink/v2/index.ts rename to .api-contract/src/test/contracts/ink/v2/index.ts index 5f91257e..45359d54 100644 --- a/.api-revive/src/test/contracts/ink/v2/index.ts +++ b/.api-contract/src/test/contracts/ink/v2/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as erc20 } from './erc20.contract.json' assert { type: 'json' }; diff --git a/.api-revive/src/test/contracts/ink/v3/flipper.contract.json b/.api-contract/src/test/contracts/ink/v3/flipper.contract.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v3/flipper.contract.json rename to .api-contract/src/test/contracts/ink/v3/flipper.contract.json diff --git a/.api-revive/src/test/contracts/ink/v3/index.ts b/.api-contract/src/test/contracts/ink/v3/index.ts similarity index 79% rename from .api-revive/src/test/contracts/ink/v3/index.ts rename to .api-contract/src/test/contracts/ink/v3/index.ts index 5260393d..c0c494cb 100644 --- a/.api-revive/src/test/contracts/ink/v3/index.ts +++ b/.api-contract/src/test/contracts/ink/v3/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; diff --git a/.api-revive/src/test/contracts/ink/v3/trait_erc20.contract.json b/.api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v3/trait_erc20.contract.json rename to .api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json diff --git a/.api-revive/src/test/contracts/ink/v4/erc20.contract.json b/.api-contract/src/test/contracts/ink/v4/erc20.contract.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v4/erc20.contract.json rename to .api-contract/src/test/contracts/ink/v4/erc20.contract.json diff --git a/.api-revive/src/test/contracts/ink/v4/erc20.json b/.api-contract/src/test/contracts/ink/v4/erc20.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v4/erc20.json rename to .api-contract/src/test/contracts/ink/v4/erc20.json diff --git a/.api-revive/src/test/contracts/ink/v4/erc20.wasm b/.api-contract/src/test/contracts/ink/v4/erc20.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v4/erc20.wasm rename to .api-contract/src/test/contracts/ink/v4/erc20.wasm diff --git a/.api-revive/src/test/contracts/ink/v4/flipper.contract.json b/.api-contract/src/test/contracts/ink/v4/flipper.contract.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v4/flipper.contract.json rename to .api-contract/src/test/contracts/ink/v4/flipper.contract.json diff --git a/.api-revive/src/test/contracts/ink/v4/flipper.json b/.api-contract/src/test/contracts/ink/v4/flipper.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v4/flipper.json rename to .api-contract/src/test/contracts/ink/v4/flipper.json diff --git a/.api-revive/src/test/contracts/ink/v4/flipper.wasm b/.api-contract/src/test/contracts/ink/v4/flipper.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v4/flipper.wasm rename to .api-contract/src/test/contracts/ink/v4/flipper.wasm diff --git a/.api-revive/src/test/contracts/ink/v4/index.ts b/.api-contract/src/test/contracts/ink/v4/index.ts similarity index 84% rename from .api-revive/src/test/contracts/ink/v4/index.ts rename to .api-contract/src/test/contracts/ink/v4/index.ts index 00716b85..808eba8c 100644 --- a/.api-revive/src/test/contracts/ink/v4/index.ts +++ b/.api-contract/src/test/contracts/ink/v4/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; diff --git a/.api-revive/src/test/contracts/ink/v5/erc20.contract.json b/.api-contract/src/test/contracts/ink/v5/erc20.contract.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v5/erc20.contract.json rename to .api-contract/src/test/contracts/ink/v5/erc20.contract.json diff --git a/.api-revive/src/test/contracts/ink/v5/erc20.json b/.api-contract/src/test/contracts/ink/v5/erc20.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v5/erc20.json rename to .api-contract/src/test/contracts/ink/v5/erc20.json diff --git a/.api-revive/src/test/contracts/ink/v5/erc20.wasm b/.api-contract/src/test/contracts/ink/v5/erc20.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v5/erc20.wasm rename to .api-contract/src/test/contracts/ink/v5/erc20.wasm diff --git a/.api-revive/src/test/contracts/ink/v5/erc20_anonymous_transfer.json b/.api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v5/erc20_anonymous_transfer.json rename to .api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json diff --git a/.api-revive/src/test/contracts/ink/v5/flipper.contract.json b/.api-contract/src/test/contracts/ink/v5/flipper.contract.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v5/flipper.contract.json rename to .api-contract/src/test/contracts/ink/v5/flipper.contract.json diff --git a/.api-revive/src/test/contracts/ink/v5/flipper.json b/.api-contract/src/test/contracts/ink/v5/flipper.json similarity index 100% rename from .api-revive/src/test/contracts/ink/v5/flipper.json rename to .api-contract/src/test/contracts/ink/v5/flipper.json diff --git a/.api-revive/src/test/contracts/ink/v5/flipper.wasm b/.api-contract/src/test/contracts/ink/v5/flipper.wasm similarity index 100% rename from .api-revive/src/test/contracts/ink/v5/flipper.wasm rename to .api-contract/src/test/contracts/ink/v5/flipper.wasm diff --git a/.api-revive/src/test/contracts/ink/v5/index.ts b/.api-contract/src/test/contracts/ink/v5/index.ts similarity index 88% rename from .api-revive/src/test/contracts/ink/v5/index.ts rename to .api-contract/src/test/contracts/ink/v5/index.ts index d61899a2..8e9497fa 100644 --- a/.api-revive/src/test/contracts/ink/v5/index.ts +++ b/.api-contract/src/test/contracts/ink/v5/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; diff --git a/.api-revive/src/test/contracts/solang/index.ts b/.api-contract/src/test/contracts/solang/index.ts similarity index 71% rename from .api-revive/src/test/contracts/solang/index.ts rename to .api-contract/src/test/contracts/solang/index.ts index 6576121f..e5ef0340 100644 --- a/.api-revive/src/test/contracts/solang/index.ts +++ b/.api-contract/src/test/contracts/solang/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import { createVersionedExport } from '../util.js'; diff --git a/.api-revive/src/test/contracts/solang/v0/index.ts b/.api-contract/src/test/contracts/solang/v0/index.ts similarity index 62% rename from .api-revive/src/test/contracts/solang/v0/index.ts rename to .api-contract/src/test/contracts/solang/v0/index.ts index 333b4941..6c73b8f6 100644 --- a/.api-revive/src/test/contracts/solang/v0/index.ts +++ b/.api-contract/src/test/contracts/solang/v0/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as ints256 } from './ints256.json' assert { type: 'json' }; diff --git a/.api-revive/src/test/contracts/solang/v0/ints256.json b/.api-contract/src/test/contracts/solang/v0/ints256.json similarity index 100% rename from .api-revive/src/test/contracts/solang/v0/ints256.json rename to .api-contract/src/test/contracts/solang/v0/ints256.json diff --git a/.api-revive/src/test/contracts/solang/v0/ints256.sol b/.api-contract/src/test/contracts/solang/v0/ints256.sol similarity index 100% rename from .api-revive/src/test/contracts/solang/v0/ints256.sol rename to .api-contract/src/test/contracts/solang/v0/ints256.sol diff --git a/.api-revive/src/test/contracts/solang/v0/ints256.wasm b/.api-contract/src/test/contracts/solang/v0/ints256.wasm similarity index 100% rename from .api-revive/src/test/contracts/solang/v0/ints256.wasm rename to .api-contract/src/test/contracts/solang/v0/ints256.wasm diff --git a/.api-revive/src/test/contracts/user/index.ts b/.api-contract/src/test/contracts/user/index.ts similarity index 78% rename from .api-revive/src/test/contracts/user/index.ts rename to .api-contract/src/test/contracts/user/index.ts index 90f855cf..69e91c72 100644 --- a/.api-revive/src/test/contracts/user/index.ts +++ b/.api-contract/src/test/contracts/user/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import { createVersionedExport } from '../util.js'; diff --git a/.api-revive/src/test/contracts/user/v0/assetTransfer.json b/.api-contract/src/test/contracts/user/v0/assetTransfer.json similarity index 100% rename from .api-revive/src/test/contracts/user/v0/assetTransfer.json rename to .api-contract/src/test/contracts/user/v0/assetTransfer.json diff --git a/.api-revive/src/test/contracts/user/v0/assetTransfer.wasm b/.api-contract/src/test/contracts/user/v0/assetTransfer.wasm similarity index 100% rename from .api-revive/src/test/contracts/user/v0/assetTransfer.wasm rename to .api-contract/src/test/contracts/user/v0/assetTransfer.wasm diff --git a/.api-revive/src/test/contracts/user/v0/enumExample.json b/.api-contract/src/test/contracts/user/v0/enumExample.json similarity index 100% rename from .api-revive/src/test/contracts/user/v0/enumExample.json rename to .api-contract/src/test/contracts/user/v0/enumExample.json diff --git a/.api-revive/src/test/contracts/user/v0/enumExample.wasm b/.api-contract/src/test/contracts/user/v0/enumExample.wasm similarity index 100% rename from .api-revive/src/test/contracts/user/v0/enumExample.wasm rename to .api-contract/src/test/contracts/user/v0/enumExample.wasm diff --git a/.api-revive/src/test/contracts/user/v0/index.ts b/.api-contract/src/test/contracts/user/v0/index.ts similarity index 84% rename from .api-revive/src/test/contracts/user/v0/index.ts rename to .api-contract/src/test/contracts/user/v0/index.ts index 7fed6c30..0837c3e2 100644 --- a/.api-revive/src/test/contracts/user/v0/index.ts +++ b/.api-contract/src/test/contracts/user/v0/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as assetTransfer } from './assetTransfer.json' assert { type: 'json' }; diff --git a/.api-revive/src/test/contracts/user/v0/recursive.contract.json b/.api-contract/src/test/contracts/user/v0/recursive.contract.json similarity index 100% rename from .api-revive/src/test/contracts/user/v0/recursive.contract.json rename to .api-contract/src/test/contracts/user/v0/recursive.contract.json diff --git a/.api-revive/src/test/contracts/user/v0/withString.json b/.api-contract/src/test/contracts/user/v0/withString.json similarity index 100% rename from .api-revive/src/test/contracts/user/v0/withString.json rename to .api-contract/src/test/contracts/user/v0/withString.json diff --git a/.api-revive/src/test/contracts/user/v3/ask.json b/.api-contract/src/test/contracts/user/v3/ask.json similarity index 100% rename from .api-revive/src/test/contracts/user/v3/ask.json rename to .api-contract/src/test/contracts/user/v3/ask.json diff --git a/.api-revive/src/test/contracts/user/v3/index.ts b/.api-contract/src/test/contracts/user/v3/index.ts similarity index 61% rename from .api-revive/src/test/contracts/user/v3/index.ts rename to .api-contract/src/test/contracts/user/v3/index.ts index e36a0412..388ac3d8 100644 --- a/.api-revive/src/test/contracts/user/v3/index.ts +++ b/.api-contract/src/test/contracts/user/v3/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as ask } from './ask.json' assert { type: 'json' }; diff --git a/.api-revive/src/test/contracts/user/v4/events.contract.json b/.api-contract/src/test/contracts/user/v4/events.contract.json similarity index 100% rename from .api-revive/src/test/contracts/user/v4/events.contract.json rename to .api-contract/src/test/contracts/user/v4/events.contract.json diff --git a/.api-revive/src/test/contracts/user/v4/index.ts b/.api-contract/src/test/contracts/user/v4/index.ts similarity index 64% rename from .api-revive/src/test/contracts/user/v4/index.ts rename to .api-contract/src/test/contracts/user/v4/index.ts index 91514c4a..46af49a4 100644 --- a/.api-revive/src/test/contracts/user/v4/index.ts +++ b/.api-contract/src/test/contracts/user/v4/index.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 export { default as events } from './events.contract.json' assert { type: 'json' }; diff --git a/.api-revive/src/test/contracts/util.ts b/.api-contract/src/test/contracts/util.ts similarity index 87% rename from .api-revive/src/test/contracts/util.ts rename to .api-contract/src/test/contracts/util.ts index 65601e8f..d305fb5b 100644 --- a/.api-revive/src/test/contracts/util.ts +++ b/.api-contract/src/test/contracts/util.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 export function createVersionedExport( diff --git a/.api-revive/src/types.ts b/.api-contract/src/types.ts similarity index 97% rename from .api-revive/src/types.ts rename to .api-contract/src/types.ts index 5146e3b6..3f92f537 100644 --- a/.api-revive/src/types.ts +++ b/.api-contract/src/types.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { ApiBase } from '@polkadot/api/base'; diff --git a/.api-revive/src/util.ts b/.api-contract/src/util.ts similarity index 89% rename from .api-revive/src/util.ts rename to .api-contract/src/util.ts index 008afb57..21e5018a 100644 --- a/.api-revive/src/util.ts +++ b/.api-contract/src/util.ts @@ -1,4 +1,4 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors +// Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 import type { SubmittableResult } from '@polkadot/api'; diff --git a/.api-revive/tsconfig.build.json b/.api-contract/tsconfig.build.json similarity index 100% rename from .api-revive/tsconfig.build.json rename to .api-contract/tsconfig.build.json diff --git a/.api-revive/tsconfig.spec.json b/.api-contract/tsconfig.spec.json similarity index 91% rename from .api-revive/tsconfig.spec.json rename to .api-contract/tsconfig.spec.json index 8990ae5f..38b05b54 100644 --- a/.api-revive/tsconfig.spec.json +++ b/.api-contract/tsconfig.spec.json @@ -18,7 +18,7 @@ ], "references": [ { "path": "../api-augment/tsconfig.build.json" }, - { "path": "../api-revive/tsconfig.build.json" }, + { "path": "../api-contract/tsconfig.build.json" }, { "path": "../api/tsconfig.build.json" }, { "path": "../types-support/tsconfig.build.json" }, { "path": "../types/tsconfig.build.json" } diff --git a/.api-revive/build-deno/promise/index.ts b/.api-revive/build-deno/promise/index.ts deleted file mode 100644 index aeaa6289..00000000 --- a/.api-revive/build-deno/promise/index.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Buffer } from 'node:buffer'; - -import type { ApiPromise } from 'https://deno.land/x/polkadot/api/mod.ts'; -import type { AccountId20, Hash } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { Abi } from '../Abi/index.ts'; - -import { toPromiseMethod } from 'https://deno.land/x/polkadot/api/mod.ts'; - -import { Blueprint, Code, Contract } from '../base/index.ts'; - -export class BlueprintPromise extends Blueprint<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ) { - super(api, abi, codeHash, toPromiseMethod); - } -} - -export class CodePromise extends Code<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, toPromiseMethod); - } -} - -export class ContractPromise extends Contract<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId20, - ) { - super(api, abi, address, toPromiseMethod); - } -} diff --git a/.api-revive/build-tsc-cjs/promise/index.js b/.api-revive/build-tsc-cjs/promise/index.js deleted file mode 100644 index d77ad7db..00000000 --- a/.api-revive/build-tsc-cjs/promise/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.ContractPromise = exports.CodePromise = exports.BlueprintPromise = void 0; -const api_1 = require('@polkadot/api'); -const index_js_1 = require('../base/index.js'); -class BlueprintPromise extends index_js_1.Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, api_1.toPromiseMethod); - } -} -exports.BlueprintPromise = BlueprintPromise; -class CodePromise extends index_js_1.Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, api_1.toPromiseMethod); - } -} -exports.CodePromise = CodePromise; -class ContractPromise extends index_js_1.Contract { - constructor(api, abi, address) { - super(api, abi, address, api_1.toPromiseMethod); - } -} -exports.ContractPromise = ContractPromise; diff --git a/.api-revive/build-tsc-esm/promise/index.js b/.api-revive/build-tsc-esm/promise/index.js deleted file mode 100644 index f938509e..00000000 --- a/.api-revive/build-tsc-esm/promise/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import { toPromiseMethod } from '@polkadot/api'; -import { Blueprint, Code, Contract } from '../base/index.js'; -export class BlueprintPromise extends Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, toPromiseMethod); - } -} -export class CodePromise extends Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, toPromiseMethod); - } -} -export class ContractPromise extends Contract { - constructor(api, abi, address) { - super(api, abi, address, toPromiseMethod); - } -} diff --git a/.api-revive/build-tsc/promise/index.d.ts b/.api-revive/build-tsc/promise/index.d.ts deleted file mode 100644 index 43b9620a..00000000 --- a/.api-revive/build-tsc/promise/index.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { ApiPromise } from '@polkadot/api'; -import type { AccountId20, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import { Blueprint, Code, Contract } from '../base/index.js'; -export declare class BlueprintPromise extends Blueprint<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ); -} -export declare class CodePromise extends Code<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractPromise extends Contract<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId20, - ); -} diff --git a/.api-revive/build/cjs/promise/index.d.ts b/.api-revive/build/cjs/promise/index.d.ts deleted file mode 100644 index 43b9620a..00000000 --- a/.api-revive/build/cjs/promise/index.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { ApiPromise } from '@polkadot/api'; -import type { AccountId20, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import { Blueprint, Code, Contract } from '../base/index.js'; -export declare class BlueprintPromise extends Blueprint<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ); -} -export declare class CodePromise extends Code<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractPromise extends Contract<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId20, - ); -} diff --git a/.api-revive/build/cjs/promise/index.js b/.api-revive/build/cjs/promise/index.js deleted file mode 100644 index d77ad7db..00000000 --- a/.api-revive/build/cjs/promise/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.ContractPromise = exports.CodePromise = exports.BlueprintPromise = void 0; -const api_1 = require('@polkadot/api'); -const index_js_1 = require('../base/index.js'); -class BlueprintPromise extends index_js_1.Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, api_1.toPromiseMethod); - } -} -exports.BlueprintPromise = BlueprintPromise; -class CodePromise extends index_js_1.Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, api_1.toPromiseMethod); - } -} -exports.CodePromise = CodePromise; -class ContractPromise extends index_js_1.Contract { - constructor(api, abi, address) { - super(api, abi, address, api_1.toPromiseMethod); - } -} -exports.ContractPromise = ContractPromise; diff --git a/.api-revive/build/promise/index.d.ts b/.api-revive/build/promise/index.d.ts deleted file mode 100644 index 43b9620a..00000000 --- a/.api-revive/build/promise/index.d.ts +++ /dev/null @@ -1,25 +0,0 @@ -import type { ApiPromise } from '@polkadot/api'; -import type { AccountId20, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import { Blueprint, Code, Contract } from '../base/index.js'; -export declare class BlueprintPromise extends Blueprint<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ); -} -export declare class CodePromise extends Code<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractPromise extends Contract<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId20, - ); -} diff --git a/.api-revive/build/promise/index.js b/.api-revive/build/promise/index.js deleted file mode 100644 index f938509e..00000000 --- a/.api-revive/build/promise/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import { toPromiseMethod } from '@polkadot/api'; -import { Blueprint, Code, Contract } from '../base/index.js'; -export class BlueprintPromise extends Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, toPromiseMethod); - } -} -export class CodePromise extends Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, toPromiseMethod); - } -} -export class ContractPromise extends Contract { - constructor(api, abi, address) { - super(api, abi, address, toPromiseMethod); - } -} diff --git a/.api-revive/src/mod.ts b/.api-revive/src/mod.ts deleted file mode 100644 index 3407c30e..00000000 --- a/.api-revive/src/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export * from './index.js'; diff --git a/.api-revive/src/promise/index.ts b/.api-revive/src/promise/index.ts deleted file mode 100644 index f802fb7b..00000000 --- a/.api-revive/src/promise/index.ts +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-revive authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiPromise } from '@polkadot/api'; -import type { AccountId20, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; - -import { toPromiseMethod } from '@polkadot/api'; - -import { Blueprint, Code, Contract } from '../base/index.js'; - -export class BlueprintPromise extends Blueprint<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ) { - super(api, abi, codeHash, toPromiseMethod); - } -} - -export class CodePromise extends Code<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, toPromiseMethod); - } -} - -export class ContractPromise extends Contract<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId20, - ) { - super(api, abi, address, toPromiseMethod); - } -} diff --git a/package.json b/package.json index 2a216d20..d14dfd6d 100644 --- a/package.json +++ b/package.json @@ -34,8 +34,7 @@ "@headlessui/react": "^1.7.18", "@heroicons/react": "^1.0.6", "@polkadot/api": "15.8.1", - "@polkadot/api-contract": "15.8.1", - "@polkadot/api-revive": "file:./.api-revive/build", + "@polkadot/api-contract": "file:./.api-contract/build", "@polkadot/extension-dapp": "^0.58.6", "@polkadot/types": "15.8.1", "@polkadot/ui-keyring": "^3.12.2", diff --git a/src/ui/layout/sidebar/index.tsx b/src/ui/layout/sidebar/index.tsx index edc49dd0..0bc2e918 100644 --- a/src/ui/layout/sidebar/index.tsx +++ b/src/ui/layout/sidebar/index.tsx @@ -1,7 +1,6 @@ // Copyright 2022-2024 use-ink/contracts-ui authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { V } from 'vitest/dist/chunks/reporters.nr4dxCkA.js'; import { Footer } from './Footer'; import { MobileMenu } from './MobileMenu'; import { Navigation } from './Navigation'; diff --git a/yarn.lock b/yarn.lock index 124196e2..7421a797 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1174,9 +1174,9 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-contract@npm:15.8.1": +"@polkadot/api-contract@file:./.api-contract/build::locator=contracts-ui%40workspace%3A.": version: 15.8.1 - resolution: "@polkadot/api-contract@npm:15.8.1" + resolution: "@polkadot/api-contract@file:./.api-contract/build#./.api-contract/build::hash=8c6dc7&locator=contracts-ui%40workspace%3A." dependencies: "@polkadot/api": "npm:15.8.1" "@polkadot/api-augment": "npm:15.8.1" @@ -1187,7 +1187,7 @@ __metadata: "@polkadot/util-crypto": "npm:^13.4.3" rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/39faecc46621714b85efdaabe60a414decb82002ef928b42175cc652313a57682ce1cbcca50e54aff5cc910134b17ca524e9d5a18e063c8cd0950a9197176f01 + checksum: 10/4e70ca2c1de8f82ead5d2846ae0d86008de85a8d02df9d6106ce2a4b74e57020083893fe10160400f6e5841a85fd9df7bd73afe7b45604300c006398d4cd5af5 languageName: node linkType: hard @@ -1227,23 +1227,6 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-revive@file:./.api-revive/build::locator=contracts-ui%40workspace%3A.": - version: 15.8.1 - resolution: "@polkadot/api-revive@file:./.api-revive/build#./.api-revive/build::hash=16e0e4&locator=contracts-ui%40workspace%3A." - dependencies: - "@polkadot/api": "npm:15.8.1" - "@polkadot/api-augment": "npm:15.8.1" - "@polkadot/types": "npm:15.8.1" - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/types-create": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" - "@polkadot/util-crypto": "npm:^13.4.3" - rxjs: "npm:^7.8.1" - tslib: "npm:^2.8.1" - checksum: 10/019eb69f965ef04b522a9825faa03c4e64985f209e7765fbdf787d51b2755c7dcecac2b739d5a55156d30490f6f68958102192fb2ab94536c2df9a6662930a3c - languageName: node - linkType: hard - "@polkadot/api@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/api@npm:15.8.1" @@ -3859,8 +3842,7 @@ __metadata: "@heroicons/react": "npm:^1.0.6" "@istanbuljs/nyc-config-typescript": "npm:^1.0.2" "@polkadot/api": "npm:15.8.1" - "@polkadot/api-contract": "npm:15.8.1" - "@polkadot/api-revive": "file:./.api-revive/build" + "@polkadot/api-contract": "file:./.api-contract/build" "@polkadot/extension-dapp": "npm:^0.58.6" "@polkadot/types": "npm:15.8.1" "@polkadot/ui-keyring": "npm:^3.12.2" From 1224753c5948783600f8e645ebccc8532f112a82 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Mon, 26 May 2025 11:17:57 +0200 Subject: [PATCH 16/32] chore: display endpoints depending on the version --- src/constants/index.ts | 86 +++++++++++++++++++- src/ui/components/common/ConnectionError.tsx | 17 +--- src/ui/contexts/ApiContext.tsx | 4 +- src/ui/layout/sidebar/NetworkAndUser.tsx | 39 ++++----- 4 files changed, 99 insertions(+), 47 deletions(-) diff --git a/src/constants/index.ts b/src/constants/index.ts index 72473490..d49bd3ce 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -26,18 +26,96 @@ export const POP_NETWORK_TESTNET = { rpc: 'wss://rpc2.paseo.popnetwork.xyz', }; -export const ROCOCO_CONTRACTS = { +export const ASSET_HUB_WESTEND = { relay: 'Westend', name: 'Westend Asset Hub', rpc: 'wss://westend-asset-hub-rpc.polkadot.io', }; -export const TESTNETS = [ - ...[ROCOCO_CONTRACTS, POP_NETWORK_TESTNET].sort((a, b) => a.name.localeCompare(b.name)), +const PHALA_TESTNET = { + relay: undefined, + name: 'Phala PoC-6', + rpc: 'wss://poc6.phala.network/ws', +}; + +// https://docs.astar.network/docs/build/environment/endpoints +const SHIDEN = { + relay: 'Kusama', + name: 'Astar Shiden', + rpc: 'wss://rpc.shiden.astar.network', +}; + +// https://docs.astar.network/docs/build/environment/endpoints +const ASTAR_SHIBUYA = { + relay: 'Tokyo', + name: 'Astar Shibuya', + rpc: 'wss://rpc.shibuya.astar.network', +}; + +// https://docs.astar.network/docs/build/environment/endpoints +const ASTAR = { + relay: 'Polkadot', + name: 'Astar', + rpc: 'wss://rpc.astar.network', +}; + +const ALEPH_ZERO_TESTNET = { + relay: undefined, + name: 'Aleph Zero Testnet', + rpc: 'wss://ws.test.azero.dev', +}; + +const ALEPH_ZERO = { + relay: undefined, + name: 'Aleph Zero', + rpc: 'wss://ws.azero.dev', +}; + +// https://docs.t3rn.io/collator/testnet/testnet-collator +const T3RN_T0RN = { + relay: undefined, + name: 'T3RN T0RN', + rpc: 'wss://ws.t0rn.io', +}; + +const TERNOA_ALPHANET = { + relay: undefined, + name: 'Ternoa Alphanet', + rpc: 'wss://alphanet.ternoa.com', +}; +// https://pendulum.gitbook.io/pendulum-docs/build/build-environment/foucoco-testnet +const PENDULUM_TESTNET = { + relay: 'Rococo', + name: 'Pendulum Testnet', + rpc: 'wss://rpc-foucoco.pendulumchain.tech', +}; + +const ZEITGEIST_BATTERY_STATION = { + relay: 'Rococo', + name: 'Zeitgeist Battery Station', + rpc: 'wss://bsr.zeitgeist.pm', +}; + +export const TESTNETS_V6 = [ + ...[ASSET_HUB_WESTEND, POP_NETWORK_TESTNET].sort((a, b) => a.name.localeCompare(b.name)), + LOCAL, +]; + +export const TESTNETS_V5 = [ + ...[ + PHALA_TESTNET, + ASTAR_SHIBUYA, + ALEPH_ZERO_TESTNET, + T3RN_T0RN, + TERNOA_ALPHANET, + PENDULUM_TESTNET, + POP_NETWORK_TESTNET, + ZEITGEIST_BATTERY_STATION, + ].sort((a, b) => a.name.localeCompare(b.name)), LOCAL, ]; -// export const MAINNETS = [].sort((a, b) => a.name.localeCompare(b.name)); +export const MAINNETS_V5 = [ASTAR, SHIDEN, ALEPH_ZERO].sort((a, b) => a.name.localeCompare(b.name)); export const DEFAULT_DECIMALS = 12; diff --git a/src/ui/components/common/ConnectionError.tsx b/src/ui/components/common/ConnectionError.tsx index aaa4e51b..1345b51c 100644 --- a/src/ui/components/common/ConnectionError.tsx +++ b/src/ui/components/common/ConnectionError.tsx @@ -1,21 +1,18 @@ // Copyright 2022-2024 use-ink/contracts-ui authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { useNavigate } from 'react-router-dom'; import { Error } from './Error'; import { useApi } from 'ui/contexts'; import { useVersion } from 'ui/contexts'; -import { ROCOCO_CONTRACTS, LOCAL } from 'src/constants'; +import { LOCAL } from 'src/constants'; function ContractsNodeHelp() { - const navigate = useNavigate(); const { version } = useVersion(); const nodeName = version === 'v6' ? 'ink-node' : 'substrate-contracts-node'; const repoUrl = version === 'v6' ? 'https://github.com/use-ink/ink-node' : 'https://github.com/use-ink/substrate-contracts-node'; - // TODO: Change default chain depending on the version return ( <>
@@ -30,18 +27,6 @@ function ContractsNodeHelp() { {nodeName} --dev
- ); } diff --git a/src/ui/contexts/ApiContext.tsx b/src/ui/contexts/ApiContext.tsx index c5229407..91fce6a3 100644 --- a/src/ui/contexts/ApiContext.tsx +++ b/src/ui/contexts/ApiContext.tsx @@ -6,7 +6,7 @@ import { useSearchParams } from 'react-router-dom'; import { web3Accounts, web3Enable, web3EnablePromise } from '@polkadot/extension-dapp'; import { WsProvider } from '@polkadot/api'; import { keyring } from '@polkadot/ui-keyring'; -import { LOCAL_STORAGE_KEY, ROCOCO_CONTRACTS } from '../../constants'; +import { LOCAL_STORAGE_KEY, POP_NETWORK_TESTNET } from '../../constants'; import { ApiPromise, ApiState, ChainProperties, Account, Status, WeightV2 } from 'types'; import { isValidWsUrl, isKeyringLoaded } from 'lib/util'; import { useLocalStorage } from 'ui/hooks/useLocalStorage'; @@ -30,7 +30,7 @@ export const ApiContextProvider = ({ children }: React.PropsWithChildren( LOCAL_STORAGE_KEY.PREFERRED_ENDPOINT, - ROCOCO_CONTRACTS.rpc, + POP_NETWORK_TESTNET.rpc, ); const [api, setApi] = useState({} as ApiPromise); const [endpoint, setEndpoint] = useState(preferredEndpoint); diff --git a/src/ui/layout/sidebar/NetworkAndUser.tsx b/src/ui/layout/sidebar/NetworkAndUser.tsx index b7ab39ac..2b1ee94f 100644 --- a/src/ui/layout/sidebar/NetworkAndUser.tsx +++ b/src/ui/layout/sidebar/NetworkAndUser.tsx @@ -3,38 +3,27 @@ import { useNavigate } from 'react-router'; -import { TESTNETS } from '../../../constants'; -import { useApi } from 'ui/contexts'; +import { TESTNETS_V5, TESTNETS_V6, MAINNETS_V5 } from '../../../constants'; +import { useApi, useVersion } from 'ui/contexts'; import { classes } from 'lib/util'; import { Dropdown } from 'ui/components'; -const testnetOptions = TESTNETS.map(network => ({ - label: network.name, - value: network.rpc, -})); - -// const mainnetOptions = MAINNETS.map(network => ({ -// label: network.name, -// value: network.rpc, -// })); - -const allOptions = [...testnetOptions]; - -const dropdownOptions = [ - // { - // label: 'Live Networks', - // options: mainnetOptions, - // }, - { - label: 'Test Networks', - options: testnetOptions, - }, -]; - export function NetworkAndUser() { const { endpoint, status } = useApi(); + const { version } = useVersion(); const navigate = useNavigate(); + const testnets = version === 'v6' ? TESTNETS_V6 : TESTNETS_V5; + const testnetOptions = testnets.map(network => ({ label: network.name, value: network.rpc })); + const mainnets = version === 'v5' ? MAINNETS_V5 : []; + const mainnetOptions = mainnets.map(network => ({ label: network.name, value: network.rpc })); + const allOptions = [...testnetOptions, ...mainnetOptions]; + + const dropdownOptions = [ + ...(mainnetOptions.length ? [{ label: 'Live Networks', options: mainnetOptions }] : []), + { label: 'Test Networks', options: testnetOptions }, + ]; + return (
Date: Tue, 27 May 2025 14:23:42 +0200 Subject: [PATCH 17/32] chore: update api-contract --- .api-contract/build-deno/Abi/index.ts | 28 +- .../build-deno/Abi/toLatestCompatible.ts | 11 +- .../build-deno/test/contracts/ink/index.ts | 3 +- .../test/contracts/ink/v6/erc20.polkavm | Bin 0 -> 9445 bytes .../build-deno/test/contracts/ink/v6/index.ts | 2 + .api-contract/build-loader/Abi/Abi.spec.js | 147 ++ .api-contract/build-loader/Abi/index.js | 355 ++++ .../build-loader/Abi/toLatestCompatible.js | 37 + .../Abi/toLatestCompatible.spec.js | 199 ++ .api-contract/build-loader/Abi/toV1.js | 28 + .api-contract/build-loader/Abi/toV2.js | 37 + .api-contract/build-loader/Abi/toV3.js | 18 + .api-contract/build-loader/Abi/toV4.js | 21 + .api-contract/build-loader/base/Base.js | 38 + .api-contract/build-loader/base/Blueprint.js | 73 + .api-contract/build-loader/base/Code.js | 92 + .api-contract/build-loader/base/Code.spec.js | 27 + .api-contract/build-loader/base/Contract.js | 157 ++ .api-contract/build-loader/base/mock.js | 26 + .api-contract/build-loader/base/util.js | 37 + .../build-loader/test/contracts/index.js | 14 + .../build-loader/test/contracts/ink/index.js | 13 + .../test/contracts/ink/v0/index.js | 12 + .../test/contracts/ink/v1/index.js | 7 + .../test/contracts/ink/v2/index.js | 6 + .../test/contracts/ink/v3/index.js | 7 + .../test/contracts/ink/v4/index.js | 8 + .../test/contracts/ink/v5/index.js | 9 + .../test/contracts/ink/v6/index.js | 6 + .../test/contracts/solang/index.js | 7 + .../test/contracts/solang/v0/index.js | 5 + .../build-loader/test/contracts/user/index.js | 9 + .../test/contracts/user/v0/index.js | 8 + .../test/contracts/user/v3/index.js | 5 + .../test/contracts/user/v4/index.js | 5 + .../build-loader/test/contracts/util.js | 13 + .api-contract/build-loader/util.js | 13 + .api-contract/build-tsc-cjs/Abi/index.js | 18 +- .../build-tsc-cjs/Abi/toLatestCompatible.js | 7 +- .api-contract/build-tsc-esm/Abi/index.js | 18 +- .../build-tsc-esm/Abi/toLatestCompatible.js | 6 +- .api-contract/build-tsc/Abi/index.d.ts | 6 +- .../build-tsc/Abi/toLatestCompatible.d.ts | 12 +- .api-contract/build/Abi/index.d.ts | 6 +- .api-contract/build/Abi/index.js | 18 +- .../build/Abi/toLatestCompatible.d.ts | 12 +- .api-contract/build/Abi/toLatestCompatible.js | 6 +- .../build/bundle-polkadot-api-contract.js | 24 +- .api-contract/build/cjs/Abi/index.d.ts | 6 +- .api-contract/build/cjs/Abi/index.js | 18 +- .../build/cjs/Abi/toLatestCompatible.d.ts | 12 +- .../build/cjs/Abi/toLatestCompatible.js | 7 +- .api-contract/src/Abi/index.ts | 9 +- .../src/Abi/toLatestCompatible.spec.ts | 30 + .api-contract/src/Abi/toLatestCompatible.ts | 16 +- .../compare/ink_v6_erc20Contract.test.json | 418 +++++ .../compare/ink_v6_erc20Metadata.test.json | 418 +++++ .api-contract/src/test/contracts/ink/index.ts | 3 +- .../test/contracts/ink/v6/erc20.contract.json | 491 +++++ .../src/test/contracts/ink/v6/erc20.json | 931 ++++++++++ .../src/test/contracts/ink/v6/erc20.polkavm | Bin 0 -> 9445 bytes .../src/test/contracts/ink/v6/index.ts | 5 + src/ui/hooks/useMetadata.ts | 9 +- yarn.lock | 1620 +++++++++-------- 64 files changed, 4779 insertions(+), 830 deletions(-) create mode 100644 .api-contract/build-deno/test/contracts/ink/v6/erc20.polkavm create mode 100644 .api-contract/build-deno/test/contracts/ink/v6/index.ts create mode 100644 .api-contract/build-loader/Abi/Abi.spec.js create mode 100644 .api-contract/build-loader/Abi/index.js create mode 100644 .api-contract/build-loader/Abi/toLatestCompatible.js create mode 100644 .api-contract/build-loader/Abi/toLatestCompatible.spec.js create mode 100644 .api-contract/build-loader/Abi/toV1.js create mode 100644 .api-contract/build-loader/Abi/toV2.js create mode 100644 .api-contract/build-loader/Abi/toV3.js create mode 100644 .api-contract/build-loader/Abi/toV4.js create mode 100644 .api-contract/build-loader/base/Base.js create mode 100644 .api-contract/build-loader/base/Blueprint.js create mode 100644 .api-contract/build-loader/base/Code.js create mode 100644 .api-contract/build-loader/base/Code.spec.js create mode 100644 .api-contract/build-loader/base/Contract.js create mode 100644 .api-contract/build-loader/base/mock.js create mode 100644 .api-contract/build-loader/base/util.js create mode 100644 .api-contract/build-loader/test/contracts/index.js create mode 100644 .api-contract/build-loader/test/contracts/ink/index.js create mode 100644 .api-contract/build-loader/test/contracts/ink/v0/index.js create mode 100644 .api-contract/build-loader/test/contracts/ink/v1/index.js create mode 100644 .api-contract/build-loader/test/contracts/ink/v2/index.js create mode 100644 .api-contract/build-loader/test/contracts/ink/v3/index.js create mode 100644 .api-contract/build-loader/test/contracts/ink/v4/index.js create mode 100644 .api-contract/build-loader/test/contracts/ink/v5/index.js create mode 100644 .api-contract/build-loader/test/contracts/ink/v6/index.js create mode 100644 .api-contract/build-loader/test/contracts/solang/index.js create mode 100644 .api-contract/build-loader/test/contracts/solang/v0/index.js create mode 100644 .api-contract/build-loader/test/contracts/user/index.js create mode 100644 .api-contract/build-loader/test/contracts/user/v0/index.js create mode 100644 .api-contract/build-loader/test/contracts/user/v3/index.js create mode 100644 .api-contract/build-loader/test/contracts/user/v4/index.js create mode 100644 .api-contract/build-loader/test/contracts/util.js create mode 100644 .api-contract/build-loader/util.js create mode 100644 .api-contract/src/test/compare/ink_v6_erc20Contract.test.json create mode 100644 .api-contract/src/test/compare/ink_v6_erc20Metadata.test.json create mode 100644 .api-contract/src/test/contracts/ink/v6/erc20.contract.json create mode 100644 .api-contract/src/test/contracts/ink/v6/erc20.json create mode 100644 .api-contract/src/test/contracts/ink/v6/erc20.polkavm create mode 100644 .api-contract/src/test/contracts/ink/v6/index.ts diff --git a/.api-contract/build-deno/Abi/index.ts b/.api-contract/build-deno/Abi/index.ts index 06975e05..a37261de 100644 --- a/.api-contract/build-deno/Abi/index.ts +++ b/.api-contract/build-deno/Abi/index.ts @@ -8,6 +8,7 @@ import type { ContractMetadata, ContractMetadataV4, ContractMetadataV5, + ContractMetadataV6, ContractProjectInfo, ContractTypeSpec, EventRecord, @@ -51,12 +52,15 @@ interface AbiJson { } type EventOf = M extends { spec: { events: Vec } } ? E : never; -export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5; +export type ContractMetadataSupported = + | ContractMetadataV4 + | ContractMetadataV5 + | ContractMetadataV6; type ContractEventSupported = EventOf; const l = logger('Abi'); -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; function findMessage(list: T[], messageOrId: T | string | number): T { const message = isNumber(messageOrId) @@ -79,24 +83,29 @@ function getMetadata(registry: Registry, json: AbiJson): ContractMetadataSupport // this was added in V4 const jsonVersion = json.version; + console.log('parsing metadata'); + console.log(jsonVersion); + console.log(enumVersions); if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { throw new Error(`Unable to handle version ${jsonVersion}`); } + console.log('parsed'); + console.log(vx); const metadata = registry.createType( 'ContractMetadata', vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, ); - + console.log('m'); const converter = convertVersions.find(([v]) => metadata[`is${v}`]); if (!converter) { throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); } - + console.log('converter'); const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); - + console.log('up'); return upgradedMetadata; } @@ -104,6 +113,7 @@ function parseJson( json: Record, chainProperties?: ChainProperties, ): [Record, Registry, ContractMetadataSupported, ContractProjectInfo] { + console.log('parsing json'); const registry = new TypeRegistry(); const info = registry.createType('ContractProjectInfo', json) as unknown as ContractProjectInfo; const metadata = getMetadata(registry, json as unknown as AbiJson); @@ -118,7 +128,7 @@ function parseJson( // warm-up the actual type, pre-use lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); - + console.log('warmed up'); return [json, registry, metadata, info]; } @@ -154,10 +164,12 @@ export class Abi { readonly environment = new Map(); constructor(abiJson: Record | string, chainProperties?: ChainProperties) { + console.log('constructor'); [this.json, this.registry, this.metadata, this.info] = parseJson( isString(abiJson) ? (JSON.parse(abiJson) as Record) : abiJson, chainProperties, ); + console.log('parsed json'); this.constructors = this.metadata.spec.constructors.map( (spec: ContractConstructorSpecLatest, index) => this.#createMessage(spec, index, { @@ -169,9 +181,11 @@ export class Abi { : null, }), ); + console.log('created constructors'); this.events = this.metadata.spec.events.map((_: ContractEventSupported, index: number) => this.#createEvent(index), ); + console.log('created events'); this.messages = this.metadata.spec.messages.map( (spec: ContractMessageSpecLatest, index): AbiMessage => this.#createMessage(spec, index, { @@ -183,6 +197,7 @@ export class Abi { : null, }), ); + console.log('created messages'); // NOTE See the rationale for having Option<...> values in the actual // ContractEnvironmentV4 structure definition in interfaces/contractsAbi @@ -206,6 +221,7 @@ export class Abi { throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); } } + console.log('created environment'); } /** diff --git a/.api-contract/build-deno/Abi/toLatestCompatible.ts b/.api-contract/build-deno/Abi/toLatestCompatible.ts index 71096fcb..4ddddb2b 100644 --- a/.api-contract/build-deno/Abi/toLatestCompatible.ts +++ b/.api-contract/build-deno/Abi/toLatestCompatible.ts @@ -1,6 +1,7 @@ import type { ContractMetadataV4, ContractMetadataV5, + ContractMetadataV6, } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; import type { ContractMetadataSupported } from './index.ts'; @@ -10,7 +11,7 @@ import { v1ToV2 } from './toV2.ts'; import { v2ToV3 } from './toV3.ts'; import { v3ToV4 } from './toV4.ts'; -export const enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1'] as const; +export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1'] as const; type Versions = (typeof enumVersions)[number] | 'V0'; @@ -24,6 +25,13 @@ function createConverter( next(registry, step(registry, input)); } +export function v6ToLatestCompatible( + _registry: Registry, + v6: ContractMetadataV6, +): ContractMetadataV6 { + return v6; +} + export function v5ToLatestCompatible( _registry: Registry, v5: ContractMetadataV5, @@ -44,6 +52,7 @@ export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestComp export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); export const convertVersions: [Versions, Converter][] = [ + ['V6', v6ToLatestCompatible], ['V5', v5ToLatestCompatible], ['V4', v4ToLatestCompatible], ['V3', v3ToLatestCompatible], diff --git a/.api-contract/build-deno/test/contracts/ink/index.ts b/.api-contract/build-deno/test/contracts/ink/index.ts index 4f790318..56821271 100644 --- a/.api-contract/build-deno/test/contracts/ink/index.ts +++ b/.api-contract/build-deno/test/contracts/ink/index.ts @@ -5,5 +5,6 @@ import * as v2 from './v2/index.ts'; import * as v3 from './v3/index.ts'; import * as v4 from './v4/index.ts'; import * as v5 from './v5/index.ts'; +import * as v6 from './v6/index.ts'; -export default createVersionedExport({ v0, v1, v2, v3, v4, v5 }); +export default createVersionedExport({ v0, v1, v2, v3, v4, v5, v6 }); diff --git a/.api-contract/build-deno/test/contracts/ink/v6/erc20.polkavm b/.api-contract/build-deno/test/contracts/ink/v6/erc20.polkavm new file mode 100644 index 0000000000000000000000000000000000000000..64886b65146198d57f144142ffad192cda8f7509 GIT binary patch literal 9445 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 AxBvhE literal 0 HcmV?d00001 diff --git a/.api-contract/build-deno/test/contracts/ink/v6/index.ts b/.api-contract/build-deno/test/contracts/ink/v6/index.ts new file mode 100644 index 00000000..df963ed0 --- /dev/null +++ b/.api-contract/build-deno/test/contracts/ink/v6/index.ts @@ -0,0 +1,2 @@ +export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; diff --git a/.api-contract/build-loader/Abi/Abi.spec.js b/.api-contract/build-loader/Abi/Abi.spec.js new file mode 100644 index 00000000..59c8a0a8 --- /dev/null +++ b/.api-contract/build-loader/Abi/Abi.spec.js @@ -0,0 +1,147 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import fs from 'node:fs'; +import process from 'node:process'; +import { TypeDefInfo } from '@polkadot/types/types'; +import rpcMetadata from '@polkadot/types-support/metadata/static-substrate-contracts-node'; +import { blake2AsHex } from '@polkadot/util-crypto'; +import { Metadata, TypeRegistry } from '../../../types/src/bundle.js'; +import abis from '../test/contracts/index.js'; +import { Abi } from './index.js'; +function stringifyInfo(key, value) { + return key === 'info' && typeof value === 'number' ? TypeDefInfo[value] : value; +} +function stringifyJson(registry) { + const defs = registry.lookup.types.map(({ id }) => registry.lookup.getTypeDef(id)); + return JSON.stringify(defs, stringifyInfo, 2); +} +describe('Abi', () => { + describe('ABI', () => { + Object.entries(abis).forEach(([abiName, _abi]) => { + const abi = _abi; + it(`initializes from a contract ABI (${abiName})`, () => { + try { + const messageIds = (abi.V4 || abi.V3 || abi.V2 || abi.V1 || abi).spec.messages.map( + ({ label, name }) => label || (Array.isArray(name) ? name.join('::') : name), + ); + const inkAbi = new Abi(abis[abiName]); + expect(inkAbi.messages.map(({ identifier }) => identifier)).toEqual(messageIds); + } catch (error) { + console.error(error); + throw error; + } + }); + }); + }); + describe('TypeDef', () => { + for (const [abiName, abiJson] of Object.entries(abis)) { + it(`initializes from a contract ABI: ${abiName}`, () => { + const abi = new Abi(abiJson); + const registryJson = stringifyJson(abi.registry); + const cmpFile = new URL(`../test/compare/${abiName}.test.json`, import.meta.url); + try { + expect(JSON.parse(registryJson)).toEqual(JSON.parse(fs.readFileSync(cmpFile, 'utf-8'))); + } catch (error) { + if (process.env['GITHUB_REPOSITORY']) { + console.error(registryJson); + throw error; + } + fs.writeFileSync(cmpFile, registryJson, { flag: 'w' }); + } + }); + } + }); + it('has the correct hash for the source', () => { + const abi = new Abi(abis['ink_v0_flipperBundle']); + const bundle = abis['ink_v0_flipperBundle']; + // manual + expect(bundle.source.hash).toEqual(blake2AsHex(bundle.source.wasm)); + // the Codec hash + expect(bundle.source.hash).toEqual(abi.info.source.wasm.hash.toHex()); + // the hash as per the actual Abi + expect(bundle.source.hash).toEqual(abi.info.source.wasmHash.toHex()); + }); + describe('Events', () => { + const registry = new TypeRegistry(); + beforeAll(() => { + const metadata = new Metadata(registry, rpcMetadata); + registry.setMetadata(metadata); + }); + it('decoding <=ink!v4 event', () => { + const abiJson = abis['ink_v4_erc20Metadata']; + expect(abiJson).toBeDefined(); + const abi = new Abi(abiJson); + const eventRecordHex = + '0x0001000000080360951b8baf569bca905a279c12d6ce17db7cdce23a42563870ef585129ce5dc64d010001d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000c0045726332303a3a5472616e7366657200000000000000000000000000000000da2d695d3b5a304e0039e7fc4419c34fa0c1f239189c99bb72a6484f1634782b2b00c7d40fe6d84d660f3e6bed90f218e022a0909f7e1a7ea35ada8b6e003564'; + const record = registry.createType('EventRecord', eventRecordHex); + const decodedEvent = abi.decodeEvent(record); + expect(decodedEvent.event.args.length).toEqual(3); + expect(decodedEvent.args.length).toEqual(3); + expect(decodedEvent.event.identifier).toEqual('Transfer'); + const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { + return { + ...prev, + [cur.name]: decodedEvent.args[index].toHuman(), + }; + }, {}); + const expectedEvent = { + from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + value: '123.4567 MUnit', + }; + expect(decodedEventHuman).toEqual(expectedEvent); + }); + it('decoding >=ink!v5 event', () => { + const abiJson = abis['ink_v5_erc20Metadata']; + expect(abiJson).toBeDefined(); + const abi = new Abi(abiJson); + const eventRecordHex = + '0x00010000000803da17150e96b3955a4db6ad35ddeb495f722f9c1d84683113bfb096bf3faa30f2490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000cb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cbd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'; + const record = registry.createType('EventRecord', eventRecordHex); + const decodedEvent = abi.decodeEvent(record); + expect(decodedEvent.event.args.length).toEqual(3); + expect(decodedEvent.args.length).toEqual(3); + expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer'); + const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { + return { + ...prev, + [cur.name]: decodedEvent.args[index].toHuman(), + }; + }, {}); + const expectedEvent = { + from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + value: '123.4567 MUnit', + }; + expect(decodedEventHuman).toEqual(expectedEvent); + }); + it('decoding >=ink!v5 anonymous event', () => { + const abiJson = abis['ink_v5_erc20AnonymousTransferMetadata']; + expect(abiJson).toBeDefined(); + const abi = new Abi(abiJson); + expect(abi.events[0].identifier).toEqual('erc20::erc20::Transfer'); + expect(abi.events[0].signatureTopic).toEqual(null); + const eventRecordWithAnonymousEventHex = + '0x00010000000803538e726248a9c155911e7d99f4f474c3408630a2f6275dd501d4471c7067ad2c490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb1060000000000000008d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'; + const record = registry.createType('EventRecord', eventRecordWithAnonymousEventHex); + const decodedEvent = abi.decodeEvent(record); + expect(decodedEvent.event.args.length).toEqual(3); + expect(decodedEvent.args.length).toEqual(3); + expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer'); + const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { + return { + ...prev, + [cur.name]: decodedEvent.args[index].toHuman(), + }; + }, {}); + const expectedEvent = { + from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + value: '123.4567 MUnit', + }; + expect(decodedEventHuman).toEqual(expectedEvent); + }); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJpLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJBYmkuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBTXRDLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFFbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sV0FBVyxNQUFNLGtFQUFrRSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sSUFBSSxNQUFNLDRCQUE0QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxZQUFZLENBQUM7QUErQmpDLFNBQVMsYUFBYSxDQUFFLEdBQVcsRUFBRSxLQUFjO0lBQ2pELE9BQU8sR0FBRyxLQUFLLE1BQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ2hELENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUUsUUFBa0I7SUFDeEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQ2hELFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUMvQixDQUFDO0lBRUYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBUyxFQUFFO0lBQ3pCLFFBQVEsQ0FBQyxLQUFLLEVB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 +//# sourceHash=ea229cc94f36316dbb8638e2704cd9298e801fa181100aaf355195542244aead diff --git a/.api-contract/build-loader/Abi/index.js b/.api-contract/build-loader/Abi/index.js new file mode 100644 index 00000000..2375b801 --- /dev/null +++ b/.api-contract/build-loader/Abi/index.js @@ -0,0 +1,355 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { Option, TypeRegistry } from '@polkadot/types'; +import { TypeDefInfo } from '@polkadot/types-create'; +import { + assertReturn, + compactAddLength, + compactStripLength, + isBn, + isNumber, + isObject, + isString, + isUndefined, + logger, + stringCamelCase, + stringify, + u8aConcat, + u8aToHex, +} from '@polkadot/util'; +import { convertVersions, enumVersions } from './toLatestCompatible.js'; +const l = logger('Abi'); +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; +function findMessage(list, messageOrId) { + const message = isNumber(messageOrId) + ? list[messageOrId] + : isString(messageOrId) + ? list.find(({ identifier }) => + [identifier, stringCamelCase(identifier)].includes(messageOrId.toString()), + ) + : messageOrId; + return assertReturn( + message, + () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`, + ); +} +function getMetadata(registry, json) { + // this is for V1, V2, V3 + const vx = enumVersions.find(v => isObject(json[v])); + // this was added in V4 + const jsonVersion = json.version; + if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { + throw new Error(`Unable to handle version ${jsonVersion}`); + } + const metadata = registry.createType( + 'ContractMetadata', + vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, + ); + const converter = convertVersions.find(([v]) => metadata[`is${v}`]); + if (!converter) { + throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); + } + const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + return upgradedMetadata; +} +function parseJson(json, chainProperties) { + const registry = new TypeRegistry(); + const info = registry.createType('ContractProjectInfo', json); + const metadata = getMetadata(registry, json); + const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); + // attach the lookup to the registry - now the types are known + registry.setLookup(lookup); + if (chainProperties) { + registry.setChainProperties(chainProperties); + } + // warm-up the actual type, pre-use + lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + return [json, registry, metadata, info]; +} +/** + * @internal + * Determines if the given input value is a ContractTypeSpec + */ +function isTypeSpec(value) { + return ( + !!value && value instanceof Map && !isUndefined(value.type) && !isUndefined(value.displayName) + ); +} +/** + * @internal + * Determines if the given input value is an Option + */ +function isOption(value) { + return !!value && value instanceof Option; +} +export class Abi { + events; + constructors; + info; + json; + messages; + metadata; + registry; + environment = new Map(); + constructor(abiJson, chainProperties) { + [this.json, this.registry, this.metadata, this.info] = parseJson( + isString(abiJson) ? JSON.parse(abiJson) : abiJson, + chainProperties, + ); + this.constructors = this.metadata.spec.constructors.map((spec, index) => + this.#createMessage(spec, index, { + isConstructor: true, + isDefault: spec.default.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + this.events = this.metadata.spec.events.map((_, index) => this.#createEvent(index)); + this.messages = this.metadata.spec.messages.map((spec, index) => + this.#createMessage(spec, index, { + isDefault: spec.default.isTrue, + isMutating: spec.mutates.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null, + }), + ); + // NOTE See the rationale for having Option<...> values in the actual + // ContractEnvironmentV4 structure definition in interfaces/contractsAbi + // (Due to conversions, the fields may not exist) + for (const [key, opt] of this.metadata.spec.environment.entries()) { + if (isOption(opt)) { + if (opt.isSome) { + const value = opt.unwrap(); + if (isBn(value)) { + this.environment.set(key, value); + } else if (isTypeSpec(value)) { + this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); + } else { + throw new Error( + `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, + ); + } + } + } else { + throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); + } + } + } + /** + * Warning: Unstable API, bound to change + */ + decodeEvent(record) { + switch (this.metadata.version.toString()) { + // earlier version are hoisted to v4 + case '4': + return this.#decodeEventV4(record); + // Latest + default: + return this.#decodeEventV5(record); + } + } + #decodeEventV5 = record => { + // Find event by first topic, which potentially is the signature_topic + const signatureTopic = record.topics[0]; + const data = record.event.data[1]; + if (signatureTopic) { + const event = this.events.find( + e => + e.signatureTopic !== undefined && + e.signatureTopic !== null && + e.signatureTopic === signatureTopic.toHex(), + ); + // Early return if event found by signature topic + if (event) { + return event.fromU8a(data); + } + } + // If no event returned yet, it might be anonymous + const amountOfTopics = record.topics.length; + const potentialEvents = this.events.filter(e => { + // event can't have a signature topic + if (e.signatureTopic !== null && e.signatureTopic !== undefined) { + return false; + } + // event should have same amount of indexed fields as emitted topics + const amountIndexed = e.args.filter(a => a.indexed).length; + if (amountIndexed !== amountOfTopics) { + return false; + } + // If all conditions met, it's a potential event + return true; + }); + if (potentialEvents.length === 1) { + return potentialEvents[0].fromU8a(data); + } + throw new Error('Unable to determine event'); + }; + #decodeEventV4 = record => { + const data = record.event.data[1]; + const index = data[0]; + const event = this.events[index]; + if (!event) { + throw new Error(`Unable to find event with index ${index}`); + } + return event.fromU8a(data.subarray(1)); + }; + /** + * Warning: Unstable API, bound to change + */ + decodeConstructor(data) { + return this.#decodeMessage('message', this.constructors, data); + } + /** + * Warning: Unstable API, bound to change + */ + decodeMessage(data) { + return this.#decodeMessage('message', this.messages, data); + } + findConstructor(constructorOrId) { + return findMessage(this.constructors, constructorOrId); + } + findMessage(messageOrId) { + return findMessage(this.messages, messageOrId); + } + #createArgs = (args, spec) => { + return args.map(({ label, type }, index) => { + try { + if (!isObject(type)) { + throw new Error('Invalid type definition found'); + } + const displayName = type.displayName.length + ? type.displayName[type.displayName.length - 1].toString() + : undefined; + const camelName = stringCamelCase(label); + if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { + return { + name: camelName, + type: { + info: TypeDefInfo.Plain, + type: displayName, + }, + }; + } + const typeDef = this.registry.lookup.getTypeDef(type.type); + return { + name: camelName, + type: + displayName && !typeDef.type.startsWith(displayName) + ? { displayName, ...typeDef } + : typeDef, + }; + } catch (error) { + l.error(`Error expanding argument ${index} in ${stringify(spec)}`); + throw error; + } + }); + }; + #createMessageParams = (args, spec) => { + return this.#createArgs(args, spec); + }; + #createEventParams = (args, spec) => { + const params = this.#createArgs(args, spec); + return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); + }; + #createEvent = index => { + // TODO TypeScript would narrow this type to the correct version, + // but version is `Text` so I need to call `toString()` here, + // which breaks the type inference. + switch (this.metadata.version.toString()) { + case '4': + return this.#createEventV4(this.metadata.spec.events[index], index); + default: + return this.#createEventV5(this.metadata.spec.events[index], index); + } + }; + #createEventV5 = (spec, index) => { + const args = this.#createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.#decodeArgs(args, data), + event, + }), + identifier: [spec.module_path, spec.label].join('::'), + index, + signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, + }; + return event; + }; + #createEventV4 = (spec, index) => { + const args = this.#createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.#decodeArgs(args, data), + event, + }), + identifier: spec.label.toString(), + index, + }; + return event; + }; + #createMessage = (spec, index, add = {}) => { + const args = this.#createMessageParams(spec.args, spec); + const identifier = spec.label.toString(); + const message = { + ...add, + args, + docs: spec.docs.map(d => d.toString()), + fromU8a: data => ({ + args: this.#decodeArgs(args, data), + message, + }), + identifier, + index, + isDefault: spec.default.isTrue, + method: stringCamelCase(identifier), + path: identifier.split('::').map(s => stringCamelCase(s)), + selector: spec.selector, + toU8a: params => this.#encodeMessageArgs(spec, args, params), + }; + return message; + }; + #decodeArgs = (args, data) => { + // for decoding we expect the input to be just the arg data, no selectors + // no length added (this allows use with events as well) + let offset = 0; + return args.map(({ type: { lookupName, type } }) => { + const value = this.registry.createType(lookupName || type, data.subarray(offset)); + offset += value.encodedLength; + return value; + }); + }; + #decodeMessage = (type, list, data) => { + const [, trimmed] = compactStripLength(data); + const selector = trimmed.subarray(0, 4); + const message = list.find(m => m.selector.eq(selector)); + if (!message) { + throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`); + } + return message.fromU8a(trimmed.subarray(4)); + }; + #encodeMessageArgs = ({ label, selector }, args, data) => { + if (data.length !== args.length) { + throw new Error( + `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, + ); + } + return compactAddLength( + u8aConcat( + this.registry.createType('ContractSelector', selector).toU8a(), + ...args.map(({ type: { lookupName, type } }, index) => + this.registry.createType(lookupName || type, data[index]).toU8a(), + ), + ), + ); + }; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBT3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUwsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVl4RSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFeEIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUU1RixTQUFTLFdBQVcsQ0FBeUIsSUFBUyxFQUFFLFdBQWdDO0lBQ3RGLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDbkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDbkIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDM0csQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUVs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 +//# sourceHash=4ab60a32998dace807d57241dfe7c506089ce789675e90ad11bafe763ae95d23 diff --git a/.api-contract/build-loader/Abi/toLatestCompatible.js b/.api-contract/build-loader/Abi/toLatestCompatible.js new file mode 100644 index 00000000..bcd86309 --- /dev/null +++ b/.api-contract/build-loader/Abi/toLatestCompatible.js @@ -0,0 +1,37 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { v0ToV1 } from './toV1.js'; +import { v1ToV2 } from './toV2.js'; +import { v2ToV3 } from './toV3.js'; +import { v3ToV4 } from './toV4.js'; +// The versions where an enum is used, aka V0 is missing +// (Order from newest, i.e. we expect more on newest vs oldest) +export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; +// Helper to convert metadata from one step to the next +function createConverter(next, step) { + return (registry, input) => next(registry, step(registry, input)); +} +export function v6ToLatestCompatible(_registry, v6) { + return v6; +} +export function v5ToLatestCompatible(_registry, v5) { + return v5; +} +export function v4ToLatestCompatible(_registry, v4) { + return v4; +} +export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4); +export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3); +export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); +export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); +export const convertVersions = [ + ['V6', v6ToLatestCompatible], + ['V5', v5ToLatestCompatible], + ['V4', v4ToLatestCompatible], + ['V3', v3ToLatestCompatible], + ['V2', v2ToLatestCompatible], + ['V1', v1ToLatestCompatible], + ['V0', v0ToLatestCompatible], +]; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9MYXRlc3RDb21wYXRpYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidG9MYXRlc3RDb21wYXRpYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFNdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyx3REFBd0Q7QUFDeEQsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFVLENBQUM7QUFNMUUsdURBQXVEO0FBQ3ZELFNBQVMsZUFBZSxDQUFTLElBQWlFLEVBQUUsSUFBeUM7SUFDM0ksT0FBTyxDQUFDLFFBQWtCLEVBQUUsS0FBUSxFQUE2QixFQUFFLENBQ2pFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUUsU0FBbUIsRUFBRSxFQUFzQjtJQUMvRSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUUsU0FBbUIsRUFBRSxFQUFzQjtJQUMvRSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUUsU0FBbUIsRUFBRSxFQUFzQjtJQUMvRSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hHLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEcsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoRyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRWhHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBNEI7SUFDdEQsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7Q0FDN0IsQ0FBQyJ9 +//# sourceHash=eb15cb4d1b33111cbf09e91146958205f159da996d51fadd53259bea9cc5478c diff --git a/.api-contract/build-loader/Abi/toLatestCompatible.spec.js b/.api-contract/build-loader/Abi/toLatestCompatible.spec.js new file mode 100644 index 00000000..bde61de3 --- /dev/null +++ b/.api-contract/build-loader/Abi/toLatestCompatible.spec.js @@ -0,0 +1,199 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +/// +import { TypeRegistry } from '@polkadot/types'; +import abis from '../test/contracts/index.js'; +import { + v0ToLatestCompatible, + v1ToLatestCompatible, + v2ToLatestCompatible, + v3ToLatestCompatible, + v4ToLatestCompatible, + v5ToLatestCompatible, + v6ToLatestCompatible, +} from './toLatestCompatible.js'; +describe('v0ToLatestCompatible', () => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V0: abis['ink_v0_erc20'] }); + const latest = v0ToLatestCompatible(registry, contract.asV0); + it('has the correct constructors', () => { + expect(latest.spec.constructors.map(({ label }) => label.toString())).toEqual(['new']); + }); + it('has the correct messages', () => { + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ + 'total_supply', + 'balance_of', + 'allowance', + 'transfer', + 'approve', + 'transfer_from', + ]); + }); + it('has the correct events', () => { + expect(latest.spec.events.map(({ label }) => label.toString())).toEqual([ + 'Transfer', + 'Approval', + ]); + }); + it('has the correct constructor arguments', () => { + expect(latest.spec.constructors[0].args.map(({ label }) => label.toString())).toEqual([ + 'initial_supply', + ]); + }); + it('has the correct message arguments', () => { + expect(latest.spec.messages[1].args.map(({ label }) => label.toString())).toEqual(['owner']); + }); + it('has the correct event arguments', () => { + expect(latest.spec.events[0].args.map(({ label }) => label.toString())).toEqual([ + 'from', + 'to', + 'value', + ]); + }); + it('has the latest compatible version number', () => { + expect(latest.version.toString()).toEqual('4'); + }); +}); +describe('v1ToLatestCompatible', () => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_flipper']['V1'] }); + const latest = v1ToLatestCompatible(registry, contract.asV1); + it('has the correct constructors', () => { + expect(latest.spec.constructors.map(({ label }) => label.toString())).toEqual([ + 'new', + 'default', + ]); + }); + it('has the correct messages', () => { + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual(['flip', 'get']); + }); + it('has the correct messages with namespaced method name', () => { + const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_psp22']['V1'] }); + const latest = v1ToLatestCompatible(registry, contract.asV1); + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ + 'PSP22Metadata::token_name', + 'PSP22Metadata::token_symbol', + 'PSP22Metadata::token_decimals', + 'PSP22Mintable::mint', + 'PSP22::decrease_allowance', + 'PSP22::transfer', + 'PSP22::approve', + 'PSP22::allowance', + 'PSP22::transfer_from', + 'PSP22::balance_of', + 'PSP22::increase_allowance', + 'PSP22::total_supply', + 'pause', + 'unpause', + ]); + }); + it('has the correct constructor arguments', () => { + expect(latest.spec.constructors[0].args.map(({ label }) => label.toString())).toEqual([ + 'init_value', + ]); + }); + it('has the latest compatible version number', () => { + expect(latest.version.toString()).toEqual('4'); + }); +}); +describe('v2ToLatestCompatible', () => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V2: abis['ink_v2_flipper']['V2'] }); + const latest = v2ToLatestCompatible(registry, contract.asV2); + it('has the correct constructor flag', () => { + expect(latest.spec.constructors[0].payable.isTrue).toEqual(true); + }); + it('has the latest compatible version number', () => { + expect(latest.version.toString()).toEqual('4'); + }); +}); +describe('v3ToLatestCompatible', () => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V3: abis['ink_v3_flipper']['V3'] }); + const latest = v3ToLatestCompatible(registry, contract.asV3); + it('has the correct constructor flags', () => { + expect(latest.spec.constructors[0].payable.isTrue).toEqual(false); + expect(latest.spec.constructors[1].payable.isTrue).toEqual(true); + }); + it('has the correct messages', () => { + const contract = registry.createType('ContractMetadata', { + V3: abis['ink_v3_traitErc20']['V3'], + }); + const latest = v3ToLatestCompatible(registry, contract.asV3); + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ + 'BaseErc20::total_supply', + 'BaseErc20::balance_of', + 'BaseErc20::allowance', + 'BaseErc20::transfer', + 'BaseErc20::approve', + 'BaseErc20::transfer_from', + ]); + }); + it('has the latest compatible version number', () => { + expect(latest.version.toString()).toEqual('4'); + }); +}); +describe('v4ToLatestCompatible', () => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V4: abis['ink_v4_flipperContract'] }); + const latest = v4ToLatestCompatible(registry, contract.asV4); + it('has the correct constructor flags', () => { + expect(latest.spec.constructors[0].payable.isTrue).toEqual(false); + expect(latest.spec.constructors[1].payable.isTrue).toEqual(false); + }); + it('has the latest compatible version number', () => { + expect(latest.version.toString()).toEqual('4'); + }); +}); +describe('v5ToLatestCompatible', () => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V5: abis['ink_v5_erc20Metadata'] }); + const latest = v5ToLatestCompatible(registry, contract.asV5); + it('has the correct messages', () => { + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ + 'total_supply', + 'balance_of', + 'allowance', + 'transfer', + 'approve', + 'transfer_from', + ]); + }); + it('has new event fields', () => { + expect(latest.spec.events.length).toEqual(2); + expect(latest.spec.events.every(e => e.has('module_path'))).toEqual(true); + expect(latest.spec.events[0].module_path.toString()).toEqual('erc20::erc20'); + expect(latest.spec.events.every(e => e.has('signature_topic'))).toEqual(true); + expect(latest.spec.events[0].signature_topic.toHex()).toEqual( + '0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb', + ); + }); + it('has the latest compatible version number', () => { + expect(latest.version.toString()).toEqual('5'); + }); +}); +describe('v6ToLatestCompatible', () => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V6: abis['ink_v6_erc20Metadata'] }); + const latest = v6ToLatestCompatible(registry, contract.asV6); + it('has the correct messages', () => { + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ + 'total_supply', + 'balance_of', + 'allowance', + 'transfer', + 'approve', + 'transfer_from', + ]); + }); + it('has H160 as the type of balance_of argument', () => { + const arg = latest.spec.messages.find(m => m.label.toString() === 'balance_of')?.args[0]; + const name = arg?.type.displayName?.[0]?.toString(); + expect(name).toBe('H160'); + }); + it('has the latest compatible version number', () => { + expect(latest.version.toString()).toEqual('6'); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9MYXRlc3RDb21wYXRpYmxlLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b0xhdGVzdENvbXBhdGlibGUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLHlEQUF5RDtBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxJQUFJLE1BQU0sNEJBQTRCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbk0sUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQVMsRUFBRTtJQUMxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3BDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RixNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdELEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxHQUFTLEVBQUU7UUFDNUMsTUFBTSxDQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUM5RCxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMEJBQTBCLEVBQUUsR0FBUyxFQUFFO1FBQ3hDLE1BQU0sQ0FDSixNQUFNLENBQUMsSUFBSSxD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 +//# sourceHash=132afa0e7d1f1b28490f58000108dcae380389497d814be05bd34342614267f4 diff --git a/.api-contract/build-loader/Abi/toV1.js b/.api-contract/build-loader/Abi/toV1.js new file mode 100644 index 00000000..043f2b9d --- /dev/null +++ b/.api-contract/build-loader/Abi/toV1.js @@ -0,0 +1,28 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { convertSiV0toV1 } from '@polkadot/types'; +import { objectSpread } from '@polkadot/util'; +function v0ToV1Names(all) { + return all.map(e => + objectSpread({}, e, { + name: Array.isArray(e.name) ? e.name : [e.name], + }), + ); +} +export function v0ToV1(registry, v0) { + if (!v0.metadataVersion.length) { + throw new Error('Invalid format for V0 (detected) contract metadata'); + } + return registry.createType( + 'ContractMetadataV1', + objectSpread({}, v0, { + spec: objectSpread({}, v0.spec, { + constructors: v0ToV1Names(v0.spec.constructors), + messages: v0ToV1Names(v0.spec.messages), + }), + types: convertSiV0toV1(registry, v0.types), + }), + ); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9WMS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvVjEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUt0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTlDLFNBQVMsV0FBVyxDQUFFLEdBQVk7SUFDaEMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDbkIsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDbEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDUixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0tBQ2IsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBRSxRQUFrQixFQUFFLEVBQXNCO0lBQ2hFLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ3BFLElBQUksRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUU7WUFDOUIsWUFBWSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUMvQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3hDLENBQUM7UUFDRixLQUFLLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO0tBQzNDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyJ9 +//# sourceHash=8ff33b3e5804b8e5e8e2d0e45cf7e4e865829e7d0dfb3d0aa0825d0f3097b223 diff --git a/.api-contract/build-loader/Abi/toV2.js b/.api-contract/build-loader/Abi/toV2.js new file mode 100644 index 00000000..24a7df67 --- /dev/null +++ b/.api-contract/build-loader/Abi/toV2.js @@ -0,0 +1,37 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { objectSpread } from '@polkadot/util'; +const ARG_TYPES = { + ContractConstructorSpec: 'ContractMessageParamSpecV2', + ContractEventSpec: 'ContractEventParamSpecV2', + ContractMessageSpec: 'ContractMessageParamSpecV2', +}; +function v1ToV2Label(entry) { + return objectSpread({}, entry, { + label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, + }); +} +function v1ToV2Labels(registry, outType, all) { + return all.map(e => + registry.createType( + `${outType}V2`, + objectSpread(v1ToV2Label(e), { + args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), + }), + ), + ); +} +export function v1ToV2(registry, v1) { + return registry.createType( + 'ContractMetadataV2', + objectSpread({}, v1, { + spec: objectSpread({}, v1.spec, { + constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), + events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), + messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), + }), + }), + ); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9WMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvVjIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQU10QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQjlDLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLHVCQUF1QixFQUFFLDRCQUE0QjtJQUNyRCxpQkFBaUIsRUFBRSwwQkFBMEI7SUFDN0MsbUJBQW1CLEVBQUUsNEJBQTRCO0NBQ3pDLENBQUM7QUFFWCxTQUFTLFdBQVcsQ0FBRSxLQUFpQjtJQUNyQyxPQUFPLFlBQVksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQzdCLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDOUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2QixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUk7S0FDZixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQXVCLFFBQWtCLEVBQUUsT0FBVSxFQUFFLEdBQW1CO0lBQzdGLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ25CLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxPQUFPLElBQUksRUFBRSxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQy9ELElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3JCLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN4RDtLQUNGLENBQUMsQ0FBQyxDQUNKLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBRSxRQUFrQixFQUFFLEVBQXNCO0lBQ2hFLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUNwRSxJQUFJLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO1lBQzlCLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLHlCQUF5QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3JGLE1BQU0sRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ25FLFFBQVEsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQzFFLENBQUM7S0FDSCxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMifQ== +//# sourceHash=ea82fda229c2ef5293604e32a25290d4dfe476eb8d5e35ce746827a5b14dad67 diff --git a/.api-contract/build-loader/Abi/toV3.js b/.api-contract/build-loader/Abi/toV3.js new file mode 100644 index 00000000..316b007d --- /dev/null +++ b/.api-contract/build-loader/Abi/toV3.js @@ -0,0 +1,18 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { objectSpread } from '@polkadot/util'; +export function v2ToV3(registry, v2) { + return registry.createType( + 'ContractMetadataV3', + objectSpread({}, v2, { + spec: objectSpread({}, v2.spec, { + constructors: v2.spec.constructors.map(c => + // V3 introduces the payable flag on constructors, for + registry.createType('ContractConstructorSpecV4', objectSpread({}, c)), + ), + messages: v3.spec.messages.map(m => + registry.createType('ContractMessageSpecV3', objectSpread({}, m)), + ), + }), + version: registry.createType('Text', '4'), + }), + ); +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9WNC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUt0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsTUFBTSxVQUFVLE1BQU0sQ0FBRSxRQUFrQixFQUFFLEVBQXNCO0lBQ2hFLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUNwRSxJQUFJLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO1lBQzlCLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQyxRQUFRLENBQUMsVUFBVSxDQUFDLDJCQUEyQixFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDdEU7WUFDRCxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDbkMsUUFBUSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ2xFO1NBQ0YsQ0FBQztRQUNGLE9BQU8sRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7S0FDMUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDIn0= +//# sourceHash=af8f5dc933a3c04340b666309665ad6cbedd8e223ef2aca4abddf9e22a1709e4 diff --git a/.api-contract/build-loader/base/Base.js b/.api-contract/build-loader/base/Base.js new file mode 100644 index 00000000..5e6799c3 --- /dev/null +++ b/.api-contract/build-loader/base/Base.js @@ -0,0 +1,38 @@ +// Copyright 2017-2025 @polkadot/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { isFunction } from '@polkadot/util'; +import { Abi } from '../Abi/index.js'; +export class Base { + abi; + api; + _decorateMethod; + _isWeightV1; + constructor(api, abi, decorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error( + 'Your API has not been initialized correctly and is not connected to a chain', + ); + } else if ( + !api.tx.contracts || + !isFunction(api.tx.contracts.instantiateWithCode) || + api.tx.contracts.instantiateWithCode.meta.args.length !== 6 + ) { + throw new Error( + 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', + ); + } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) { + throw new Error( + 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', + ); + } + this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + } + get registry() { + return this.api.registry; + } +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkRBQTJEO0FBQzNELHNDQUFzQztBQU90QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRDLE1BQU0sT0FBZ0IsSUFBSTtJQUNmLEdBQUcsQ0FBTTtJQUNULEdBQUcsQ0FBbUI7SUFFWixlQUFlLENBQTBCO0lBQ3pDLFdBQVcsQ0FBVTtJQUV4QyxZQUFhLEdBQXFCLEVBQUUsR0FBMkMsRUFBRSxjQUF1QztRQUN0SCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLDZFQUE2RSxDQUFDLENBQUM7UUFDakcsQ0FBQzthQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pKLE1BQU0sSUFBSSxLQUFLLENBQUMsMkZBQTJGLENBQUMsQ0FBQztRQUMvRyxDQUFDO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsWUFBWSxHQUFHO1lBQzNCLENBQUMsQ0FBQyxHQUFHO1lBQ0wsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBVyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDNUUsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7Q0FDRiJ9 +//# sourceHash=82b8fb99d1bbd63ea720a81307c010465428175edb4039eb7c8cd00eb7398eee diff --git a/.api-contract/build-loader/base/Blueprint.js b/.api-contract/build-loader/base/Blueprint.js new file mode 100644 index 00000000..6fa3acc5 --- /dev/null +++ b/.api-contract/build-loader/base/Blueprint.js @@ -0,0 +1,73 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, isUndefined } from '@polkadot/util'; +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; +export class BlueprintSubmittableResult extends SubmittableResult { + contract; + constructor(result, contract) { + super(result); + this.contract = contract; + } +} +export class Blueprint extends Base { + /** + * @description The on-chain code hash for this blueprint + */ + codeHash; + #tx = {}; + constructor(api, abi, codeHash, decorateMethod) { + super(api, abi, decorateMethod); + this.codeHash = this.registry.createType('Hash', codeHash); + this.abi.constructors.forEach(c => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p)); + } + }); + } + get tx() { + return this.#tx; + } + #deploy = ( + constructorOrId, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new BlueprintSubmittableResult( + result, + applyOnEvent( + result, + ['Instantiated'], + ([record]) => + new Contract(this.api, this.abi, record.event.data[1], this._decorateMethod), + ), + ), + ); + }; +} +export function extendBlueprint(type, decorateMethod) { + return class extends Blueprint { + static __BlueprintType = type; + constructor(api, abi, codeHash) { + super(api, abi, codeHash, decorateMethod); + } + }; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmx1ZXByaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQmx1ZXByaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFXdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJekUsTUFBTSxPQUFPLDBCQUFxRCxTQUFRLGlCQUFpQjtJQUNoRixRQUFRLENBQWlDO0lBRWxELFlBQWEsTUFBMEIsRUFBRSxRQUE0QjtRQUNuRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFZCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sU0FBb0MsU0FBUSxJQUFhO0lBQ3BFOztPQUVHO0lBQ00sUUFBUSxDQUFPO0lBRWYsR0FBRyxHQUFnQyxFQUFFLENBQUM7SUFFL0MsWUFBYSxHQUFxQixFQUFFLEdBQTJDLEVBQUUsUUFBb0MsRUFBRSxjQUF1QztRQUM1SixLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQVEsRUFBRTtZQUN4QyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFXLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDLGVBQWlELEVBQUUsRUFBRSxRQUFRLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBRSxtQkFBbUIsR0FBRyxJQUFJLEVBQUUsS0FBSyxHQUFHLE9BQU8sRUFBb0IsRUFBRSxNQUFpQixFQUFzRSxFQUFFO1FBQ2xQLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FDdEMsS0FBSztRQUNMLDZEQUE2RDtRQUM3RCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLFdBQVc7WUFDZCxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVE7WUFDbEMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQ3BDLG1CQUFtQixFQUNuQixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFDdkQsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUNqQixDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBMEIsRUFBRSxFQUFFLENBQ25ELElBQUksMEJBQTBCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFnQixFQUFFLEVBQUUsQ0FDeEcsSUFBSSxRQUFRLENBQVUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FDbkcsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDLENBQUM7Q0FDSDtBQUVELE1BQU0sVUFBVSxlQUFlLENBQTZCLElBQWEsRUFBRSxjQUF1QztJQUNoSCxPQUFPLEtBQU0sU0FBUSxTQUFrQjtRQUNyQyxNQUFNLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUU5QixZQUFhLEdBQXFCLEVBQUUsR0FBMkMsRUFBRSxRQUFvQztZQUNuSCxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDNUMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIn0= +//# sourceHash=95d66631261e83981b8a14bbfca55e6d6541bf3fcebe6a13472322b3d1b5e7ed diff --git a/.api-contract/build-loader/base/Code.js b/.api-contract/build-loader/base/Code.js new file mode 100644 index 00000000..8f32497d --- /dev/null +++ b/.api-contract/build-loader/base/Code.js @@ -0,0 +1,92 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { SubmittableResult } from '@polkadot/api'; +import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { Blueprint } from './Blueprint.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; +export class CodeSubmittableResult extends SubmittableResult { + blueprint; + contract; + constructor(result, blueprint, contract) { + super(result); + this.blueprint = blueprint; + this.contract = contract; + } +} +// checks to see if the code (or at least the header) +// is a valid/supported format +function isValidCode(code) { + return isWasm(code) || isRiscV(code); +} +export class Code extends Base { + code; + #tx = {}; + constructor(api, abi, wasm, decorateMethod) { + super(api, abi, decorateMethod); + this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + this.abi.constructors.forEach(c => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p)); + } + }); + } + get tx() { + return this.#tx; + } + #instantiate = ( + constructorOrId, + { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt), + ) + .withResultTransform( + result => + new CodeSubmittableResult( + result, + ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], records => + records.reduce( + ([blueprint, contract], { event }) => + this.api.events.contracts.Instantiated.is(event) + ? [ + blueprint, + new Contract(this.api, this.abi, event.data[1], this._decorateMethod), + ] + : this.api.events.contracts.CodeStored.is(event) + ? [ + new Blueprint(this.api, this.abi, event.data[0], this._decorateMethod), + contract, + ] + : [blueprint, contract], + [undefined, undefined], + ), + ) || [undefined, undefined]), + ), + ); + }; +} +export function extendCode(type, decorateMethod) { + return class extends Code { + static __CodeType = type; + constructor(api, abi, wasm) { + super(api, abi, wasm, decorateMethod); + } + }; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQVl0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJekUsTUFBTSxPQUFPLHFCQUFnRCxTQUFRLGlCQUFpQjtJQUMzRSxTQUFTLENBQWtDO0lBQzNDLFFBQVEsQ0FBaUM7SUFFbEQsWUFBYSxNQUEwQixFQUFFLFNBQTBDLEVBQUUsUUFBd0M7UUFDM0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBRUQscURBQXFEO0FBQ3JELDhCQUE4QjtBQUM5QixTQUFTLFdBQVcsQ0FBRSxJQUFnQjtJQUNwQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sT0FBTyxJQUErQixTQUFRLElBQWE7SUFDdEQsSUFBSSxDQUFhO0lBRWpCLEdBQUcsR0FBZ0MsRUFB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 +//# sourceHash=cc94d1b7f0f20c5baf3f2936d3bfe76e2c8114d5240941cb42032fcd39578155 diff --git a/.api-contract/build-loader/base/Code.spec.js b/.api-contract/build-loader/base/Code.spec.js new file mode 100644 index 00000000..e8cb63c9 --- /dev/null +++ b/.api-contract/build-loader/base/Code.spec.js @@ -0,0 +1,27 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +/// +import fs from 'node:fs'; +import { toPromiseMethod } from '@polkadot/api'; +import v0contractFlipper from '../test/contracts/ink/v0/flipper.contract.json' with { type: 'json' }; +import v0abiFlipper from '../test/contracts/ink/v0/flipper.json' with { type: 'json' }; +import v1contractFlipper from '../test/contracts/ink/v1/flipper.contract.json' with { type: 'json' }; +import { Code } from './Code.js'; +import { mockApi } from './mock.js'; +const v0wasmFlipper = fs.readFileSync( + new URL('../test/contracts/ink/v0/flipper.wasm', import.meta.url), + 'utf-8', +); +describe('Code', () => { + it('can construct with an individual ABI/WASM combo', () => { + expect(() => new Code(mockApi, v0abiFlipper, v0wasmFlipper, toPromiseMethod)).not.toThrow(); + }); + it('can construct with an .contract ABI (v0)', () => { + expect(() => new Code(mockApi, v0contractFlipper, null, toPromiseMethod)).not.toThrow(); + }); + it('can construct with an .contract ABI (v1)', () => { + expect(() => new Code(mockApi, v1contractFlipper, null, toPromiseMethod)).not.toThrow(); + }); +}); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ29kZS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFFdEMseURBQXlEO0FBRXpELE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhELE9BQU8saUJBQWlCLE1BQU0sZ0RBQWdELENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDckcsT0FBTyxZQUFZLE1BQU0sdUNBQXVDLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdkYsT0FBTyxpQkFBaUIsTUFBTSxnREFBZ0QsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQyx1Q0FBdUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRWxILFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBUyxFQUFFO0lBQzFCLEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxHQUFTLEVBQUU7UUFDL0QsTUFBTSxDQUNKLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUF1QyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FDakcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMENBQTBDLEVBQUUsR0FBUyxFQUFFO1FBQ3hELE1BQU0sQ0FDSixHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQTRDLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUM3RixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxHQUFTLEVBQUU7UUFDeEQsTUFBTSxDQUNKLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBNEMsRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQzdGLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ== +//# sourceHash=acc22862406c09d74038e177bdfd23410b59476ef183cafd9e800c80ff6cda3d diff --git a/.api-contract/build-loader/base/Contract.js b/.api-contract/build-loader/base/Contract.js new file mode 100644 index 00000000..74ffa24e --- /dev/null +++ b/.api-contract/build-loader/base/Contract.js @@ -0,0 +1,157 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { map } from 'rxjs'; +import { SubmittableResult } from '@polkadot/api'; +import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { convertWeight, withMeta } from './util.js'; +// As per Rust, 5 * GAS_PER_SEC +const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); +const l = logger('Contract'); +function createQuery(meta, fn) { + return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); +} +function createTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); +} +export class ContractSubmittableResult extends SubmittableResult { + contractEvents; + constructor(result, contractEvents) { + super(result); + this.contractEvents = contractEvents; + } +} +export class Contract extends Base { + /** + * @description The on-chain address for this contract + */ + address; + #query = {}; + #tx = {}; + constructor(api, abi, address, decorateMethod) { + super(api, abi, decorateMethod); + this.address = this.registry.createType('AccountId', address); + this.abi.messages.forEach(m => { + if (isUndefined(this.#tx[m.method])) { + this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p)); + } + if (isUndefined(this.#query[m.method])) { + this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f)); + } + }); + } + get query() { + return this.#query; + } + get tx() { + return this.#tx; + } + #getGas = (_gasLimit, isCall = false) => { + const weight = convertWeight(_gasLimit); + if (weight.v1Weight.gt(BN_ZERO)) { + return weight; + } + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? this.api.consts.system.blockWeights.maxBlock + : this.api.consts.system['maximumBlockWeight'], + ) + .v1Weight.muln(64) + .div(BN_HUNDRED), + ); + }; + #exec = ( + messageOrId, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + return this.api.tx.contracts + .call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params), + ) + .withResultTransform( + result => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult( + result, + applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => + records + .map(record => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${error.message}`); + return null; + } + }) + .filter(decoded => !!decoded), + ), + ), + ); + }; + #read = ( + messageOrId, + { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, + params, + ) => { + const message = this.abi.findMessage(messageOrId); + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod(origin => + this.api.rx.call.contractsApi + .call( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.#getGas(gasLimit, true).v1Weight + : this.#getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params), + ) + .pipe( + map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ + debugMessage, + gasConsumed, + gasRequired: + gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: + result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe( + message.returnType.lookupName || message.returnType.type, + [result.asOk.data.toU8a(true)], + { isPedantic: true }, + ) + : null, + result, + storageDeposit, + })), + ), + ), + }; + }; +} +export function extendContract(type, decorateMethod) { + return class extends Contract { + static __ContractType = type; + constructor(api, abi, address) { + super(api, abi, address, decorateMethod); + } + }; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJDb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBV3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlwRCwrQkFBK0I7QUFDL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFNUQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRTdCLFNBQVMsV0FBVyxDQUE2QixJQUFnQixFQUFFLEVBQThJO0lBQy9NLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQXVDLEVBQUUsT0FBd0IsRUFBRSxHQUFHLE1BQWlCLEVBQW9ELEVBQUUsQ0FDbEssRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQzVCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxRQUFRLENBQTZCLElBQWdCLEVBQUUsRUFBa0Y7SUFDaEosT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBd0IsRUFBRSxHQUFHLE1BQWlCLEVBQWlDLEVBQUUsQ0FDdEcsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMs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 +//# sourceHash=9294d9c9eb2ea879e15dc3dba1efa731c4b0f0f7889190e1bb0bd64425ea6132 diff --git a/.api-contract/build-loader/base/mock.js b/.api-contract/build-loader/base/mock.js new file mode 100644 index 00000000..6e240385 --- /dev/null +++ b/.api-contract/build-loader/base/mock.js @@ -0,0 +1,26 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { TypeRegistry } from '@polkadot/types'; +const registry = new TypeRegistry(); +const instantiateWithCode = () => { + throw new Error('mock'); +}; +instantiateWithCode.meta = { args: new Array(6) }; +export const mockApi = { + call: { + contractsApi: { + call: () => { + throw new Error('mock'); + }, + }, + }, + isConnected: true, + registry, + tx: { + contracts: { + instantiateWithCode, + }, + }, +}; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUl0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztBQUVwQyxNQUFNLG1CQUFtQixHQUFHLEdBQVUsRUFBRTtJQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQUVGLG1CQUFtQixDQUFDLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNyQixJQUFJLEVBQUU7UUFDSixZQUFZLEVBQUU7WUFDWixJQUFJLEVBQUUsR0FBVSxFQUFFO2dCQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFCLENBQUM7U0FDRjtLQUNGO0lBQ0QsV0FBVyxFQUFFLElBQUk7SUFDakIsUUFBUTtJQUNSLEVBQUUsRUFBRTtRQUNGLFNBQVMsRUFBRTtZQUNULG1CQUFtQjtTQUNwQjtLQUNGO0NBQytCLENBQUMifQ== +//# sourceHash=bd3465151b8164580ec2dd6e002983d8e01136aa60ec3ad49c9235e1510d9a6f diff --git a/.api-contract/build-loader/base/util.js b/.api-contract/build-loader/base/util.js new file mode 100644 index 00000000..5b62f39f --- /dev/null +++ b/.api-contract/build-loader/base/util.js @@ -0,0 +1,37 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { Bytes } from '@polkadot/types'; +import { bnToBn, compactAddLength, u8aToU8a } from '@polkadot/util'; +import { randomAsU8a } from '@polkadot/util-crypto'; +export const EMPTY_SALT = new Uint8Array(); +export function withMeta(meta, creator) { + creator.meta = meta; + return creator; +} +export function createBluePrintTx(meta, fn) { + return withMeta(meta, (options, ...params) => fn(options, params)); +} +export function createBluePrintWithId(fn) { + return (constructorOrId, options, ...params) => fn(constructorOrId, options, params); +} +export function encodeSalt(salt = randomAsU8a()) { + return salt instanceof Bytes + ? salt + : salt?.length + ? compactAddLength(u8aToU8a(salt)) + : EMPTY_SALT; +} +export function convertWeight(weight) { + const [refTime, proofSize] = isWeightV2(weight) + ? [weight.refTime.toBn(), weight.proofSize.toBn()] + : [bnToBn(weight), undefined]; + return { + v1Weight: refTime, + v2Weight: { proofSize, refTime }, + }; +} +export function isWeightV2(weight) { + return !!weight.proofSize; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQVV0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7QUFFM0MsTUFBTSxVQUFVLFFBQVEsQ0FBbUMsSUFBZ0IsRUFBRSxPQUF3QjtJQUNsRyxPQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUUzQixPQUFPLE9BQVksQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUEwRCxJQUFnQixFQUFFLEVBQXNGO0lBQ2pNLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQXlCLEVBQUUsR0FBRyxNQUFpQixFQUFvQyxFQUFFLENBQzFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFNLEVBQTBHO0lBQ25KLE9BQU8sQ0FBQyxlQUFpRCxFQUFFLE9BQXlCLEVBQUUsR0FBRyxNQUFpQixFQUFLLEVBQUUsQ0FDL0csRUFBRSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUUsT0FBbUMsV0FBVyxFQUFFO0lBQzFFLE9BQU8sSUFBSSxZQUFZLEtBQUs7UUFDMUIsQ0FBQyxDQUFDLElBQUk7UUFDTixDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU07WUFDWixDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUUsTUFBMkQ7SUFDeEYsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFaEMsT0FBTztRQUNMLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUU7S0FDakMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFFLE1BQTJEO0lBQ3JGLE9BQU8sQ0FBQyxDQUFFLE1BQW1CLENBQUMsU0FBUyxDQUFDO0FBQzFDLENBQUMifQ== +//# sourceHash=b46e6ac654b6c51737323f48eefdb1b0fd5824f854e4689878374803534a7cf8 diff --git a/.api-contract/build-loader/test/contracts/index.js b/.api-contract/build-loader/test/contracts/index.js new file mode 100644 index 00000000..92c7115e --- /dev/null +++ b/.api-contract/build-loader/test/contracts/index.js @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import ink from './ink/index.js'; +import solang from './solang/index.js'; +import user from './user/index.js'; +const all = {}; +Object.entries({ ink, solang, user }).forEach(([type, abis]) => + Object.entries(abis).forEach(([name, abi]) => { + all[`${type}_${name}`] = abi; + }), +); +export default all; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sR0FBRyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pDLE9BQU8sTUFBTSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZDLE9BQU8sSUFBSSxNQUFNLGlCQUFpQixDQUFDO0FBRW5DLE1BQU0sR0FBRyxHQUE0QyxFQUFFLENBQUM7QUFFeEQsTUFBTTtLQUNILE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDOUIsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUN4QixNQUFNO0tBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQztLQUNiLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFRLEVBQUU7SUFDN0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUNMLENBQUM7QUFFSixlQUFlLEdBQUcsQ0FBQyJ9 +//# sourceHash=d313ea549c70be6a588a9797a6c5a2f4f56ff9ec2a08de519f1d598cb2669d0d diff --git a/.api-contract/build-loader/test/contracts/ink/index.js b/.api-contract/build-loader/test/contracts/ink/index.js new file mode 100644 index 00000000..407adb73 --- /dev/null +++ b/.api-contract/build-loader/test/contracts/ink/index.js @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { createVersionedExport } from '../util.js'; +import * as v0 from './v0/index.js'; +import * as v1 from './v1/index.js'; +import * as v2 from './v2/index.js'; +import * as v3 from './v3/index.js'; +import * as v4 from './v4/index.js'; +import * as v5 from './v5/index.js'; +import * as v6 from './v6/index.js'; +export default createVersionedExport({ v0, v1, v2, v3, v4, v5, v6 }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwQyxlQUFlLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyJ9 +//# sourceHash=801619196e687082fa4f6aa87b2766f56b83eec6ade0a4ae57fb75729071d6e3 diff --git a/.api-contract/build-loader/test/contracts/ink/v0/index.js b/.api-contract/build-loader/test/contracts/ink/v0/index.js new file mode 100644 index 00000000..7a7fa6e7 --- /dev/null +++ b/.api-contract/build-loader/test/contracts/ink/v0/index.js @@ -0,0 +1,12 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export { default as delegator } from './delegator.json' with { type: 'json' }; +export { default as dns } from './dns.json' with { type: 'json' }; +export { default as erc20 } from './erc20.json' with { type: 'json' }; +export { default as erc721 } from './erc721.json' with { type: 'json' }; +export { default as flipperBundle } from './flipper.contract.json' with { type: 'json' }; +export { default as flipper } from './flipper.json' with { type: 'json' }; +export { default as incrementer } from './incrementer.json' with { type: 'json' }; +export { default as multisigPlain } from './multisig_plain.json' with { type: 'json' }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxHQUFHLEVBQUUsTUFBTSxZQUFZLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sSUFBSSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUN6RixPQUFPLEVBQUUsT0FBTyxJQUFJLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxPQUFPLElBQUksV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDbEYsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyJ9 +//# sourceHash=ed2370a1830530ad9b86c39c2a3eab94c093440c1958687d9a592516e8ef8ef3 diff --git a/.api-contract/build-loader/test/contracts/ink/v1/index.js b/.api-contract/build-loader/test/contracts/ink/v1/index.js new file mode 100644 index 00000000..2dd2fd20 --- /dev/null +++ b/.api-contract/build-loader/test/contracts/ink/v1/index.js @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export { default as flipper } from './flipper.contract.json' with { type: 'json' }; +// A complex contract example with traits. +export { default as psp22 } from './psp22_minter_pauser.contract.json' with { type: 'json' }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDbkYsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLE1BQU0scUNBQXFDLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== +//# sourceHash=832612b166bf42e8720b457b922475976201d2aaa1e007b1151a5eada9c94df3 diff --git a/.api-contract/build-loader/test/contracts/ink/v2/index.js b/.api-contract/build-loader/test/contracts/ink/v2/index.js new file mode 100644 index 00000000..2cc2e206 --- /dev/null +++ b/.api-contract/build-loader/test/contracts/ink/v2/index.js @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export { default as erc20 } from './erc20.contract.json' with { type: 'json' }; +export { default as flipper } from './flipper.contract.json' with { type: 'json' }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sSUFBSSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyJ9 +//# sourceHash=95872d0c9204be24120285ab3f774afadd39d0be7d968cfd7b6e75b62cfb7c9a diff --git a/.api-contract/build-loader/test/contracts/ink/v3/index.js b/.api-contract/build-loader/test/contracts/ink/v3/index.js new file mode 100644 index 00000000..25645d19 --- /dev/null +++ b/.api-contract/build-loader/test/contracts/ink/v3/index.js @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export { default as flipper } from './flipper.contract.json' with { type: 'json' }; +// A complex contract example with traits. +export { default as traitErc20 } from './trait_erc20.contract.json' with { type: 'json' }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDbkYsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLElBQUksVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== +//# sourceHash=e404db926075d9546fdaef0d1e960eda0adc753349b79a5810702e5e0dc1a92a diff --git a/.api-contract/build-loader/test/contracts/ink/v4/index.js b/.api-contract/build-loader/test/contracts/ink/v4/index.js new file mode 100644 index 00000000..cd0db39e --- /dev/null +++ b/.api-contract/build-loader/test/contracts/ink/v4/index.js @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export { default as erc20Contract } from './erc20.contract.json' with { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' with { type: 'json' }; +export { default as flipperContract } from './flipper.contract.json' with { type: 'json' }; +export { default as flipperMetadata } from './flipper.json' with { type: 'json' }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUMzRixPQUFPLEVBQUUsT0FBTyxJQUFJLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDIn0= +//# sourceHash=dc9946fb23a9a452353da50a42e35fb0003fe8e52580df3145e8448c02316637 diff --git a/.api-contract/build-loader/test/contracts/ink/v5/index.js b/.api-contract/build-loader/test/contracts/ink/v5/index.js new file mode 100644 index 00000000..4b20002f --- /dev/null +++ b/.api-contract/build-loader/test/contracts/ink/v5/index.js @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export { default as erc20Contract } from './erc20.contract.json' with { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' with { type: 'json' }; +export { default as erc20AnonymousTransferMetadata } from './erc20_anonymous_transfer.json' with { type: 'json' }; +export { default as flipperContract } from './flipper.contract.json' with { type: 'json' }; +export { default as flipperMetadata } from './flipper.json' with { type: 'json' }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sSUFBSSw4QkFBOEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxPQUFPLElBQUksZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDM0YsT0FBTyxFQUFFLE9BQU8sSUFBSSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyJ9 +//# sourceHash=140bbad2d323ee094c9b0135049fd7e50f1715baa4bea2d0c526b6924578993c diff --git a/.api-contract/build-loader/test/contracts/ink/v6/index.js b/.api-contract/build-loader/test/contracts/ink/v6/index.js new file mode 100644 index 00000000..3dc308a1 --- /dev/null +++ b/.api-contract/build-loader/test/contracts/ink/v6/index.js @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export { default as erc20Contract } from './erc20.contract.json' with { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' with { type: 'json' }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== +//# sourceHash=d2ca5bed9bbecdc6a2d3900f5234769d637cbf5bdec5f48fd3ad4f14241badb2 diff --git a/.api-contract/build-loader/test/contracts/solang/index.js b/.api-contract/build-loader/test/contracts/solang/index.js new file mode 100644 index 00000000..a7a306cf --- /dev/null +++ b/.api-contract/build-loader/test/contracts/solang/index.js @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { createVersionedExport } from '../util.js'; +import * as v0 from './v0/index.js'; +export default createVersionedExport({ v0 }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwQyxlQUFlLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyJ9 +//# sourceHash=1534d49aff08c27ba4ece70c668716131838795cd5b62ed65ffd965d6b0bbd9d diff --git a/.api-contract/build-loader/test/contracts/solang/v0/index.js b/.api-contract/build-loader/test/contracts/solang/v0/index.js new file mode 100644 index 00000000..ac079f02 --- /dev/null +++ b/.api-contract/build-loader/test/contracts/solang/v0/index.js @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export { default as ints256 } from './ints256.json' with { type: 'json' }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== +//# sourceHash=b7e035ed7432293db7720f6c5ddf2b252ec786a424e99846f4bdb1e4f248dc95 diff --git a/.api-contract/build-loader/test/contracts/user/index.js b/.api-contract/build-loader/test/contracts/user/index.js new file mode 100644 index 00000000..122f8f12 --- /dev/null +++ b/.api-contract/build-loader/test/contracts/user/index.js @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +import { createVersionedExport } from '../util.js'; +import * as v0 from './v0/index.js'; +import * as v3 from './v3/index.js'; +import * as v4 from './v4/index.js'; +export default createVersionedExport({ v0, v3, v4 }); +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwQyxlQUFlLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDIn0= +//# sourceHash=1e9fe3a8dbac5820c63a1ad11d871de7f1d7bb4a4007cbe1c0989069323bf729 diff --git a/.api-contract/build-loader/test/contracts/user/v0/index.js b/.api-contract/build-loader/test/contracts/user/v0/index.js new file mode 100644 index 00000000..204d6cc3 --- /dev/null +++ b/.api-contract/build-loader/test/contracts/user/v0/index.js @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export { default as assetTransfer } from './assetTransfer.json' with { type: 'json' }; +export { default as enumExample } from './enumExample.json' with { type: 'json' }; +export { default as recursive } from './recursive.contract.json' with { type: 'json' }; +export { default as withString } from './withString.json' with { type: 'json' }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUNsRixPQUFPLEVBQUUsT0FBTyxJQUFJLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxPQUFPLElBQUksVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== +//# sourceHash=5cafe10a01c6059417f099b5adfb95c279653efcca6ac9fc2e0a48b8ad31695d diff --git a/.api-contract/build-loader/test/contracts/user/v3/index.js b/.api-contract/build-loader/test/contracts/user/v3/index.js new file mode 100644 index 00000000..6d6d0cb5 --- /dev/null +++ b/.api-contract/build-loader/test/contracts/user/v3/index.js @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export { default as ask } from './ask.json' with { type: 'json' }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksR0FBRyxFQUFFLE1BQU0sWUFBWSxDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDIn0= +//# sourceHash=c86b5623423bc537361ad40f390f6258f643a7f298e5a2e7a60868c4d5d862a3 diff --git a/.api-contract/build-loader/test/contracts/user/v4/index.js b/.api-contract/build-loader/test/contracts/user/v4/index.js new file mode 100644 index 00000000..da2da5ba --- /dev/null +++ b/.api-contract/build-loader/test/contracts/user/v4/index.js @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export { default as events } from './events.contract.json' with { type: 'json' }; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== +//# sourceHash=08e5cf7de311055af5fd2db0ef5552ad9260027c7fee1ad219861ab49c74afd9 diff --git a/.api-contract/build-loader/test/contracts/util.js b/.api-contract/build-loader/test/contracts/util.js new file mode 100644 index 00000000..97264dd3 --- /dev/null +++ b/.api-contract/build-loader/test/contracts/util.js @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export function createVersionedExport(versioned) { + const result = {}; + Object.entries(versioned).forEach(([version, contracts]) => + Object.entries(contracts).forEach(([name, contract]) => { + result[`${version}_${name}`] = contract; + }), + ); + return result; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUV0QyxNQUFNLFVBQVUscUJBQXFCLENBQUUsU0FBa0Q7SUFDdkYsTUFBTSxNQUFNLEdBQTRDLEVBQUUsQ0FBQztJQUUzRCxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FDekQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsRUFBUSxFQUFFO1FBQzNELE1BQU0sQ0FBQyxHQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLFFBQW1DLENBQUM7SUFDckUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMifQ== +//# sourceHash=2d56165bfc8508292e9a640db45adaab8186b0721a7e02aa5a47b14ecb5f7509 diff --git a/.api-contract/build-loader/util.js b/.api-contract/build-loader/util.js new file mode 100644 index 00000000..49a4d706 --- /dev/null +++ b/.api-contract/build-loader/util.js @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 +export function applyOnEvent(result, types, fn) { + if (result.isInBlock || result.isFinalized) { + const records = result.filterRecords('contracts', types); + if (records.length) { + return fn(records); + } + } + return undefined; +} +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQU90QyxNQUFNLFVBQVUsWUFBWSxDQUFNLE1BQXlCLEVBQUUsS0FBdUIsRUFBRSxFQUFpQztJQUNySCxJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXpELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyJ9 +//# sourceHash=fa4556eb3a36d5b39685b8719237f4aaa0d5300ca9d0fc0a2a0b9f7e56d46efc diff --git a/.api-contract/build-tsc-cjs/Abi/index.js b/.api-contract/build-tsc-cjs/Abi/index.js index fa496ef2..a00e952b 100644 --- a/.api-contract/build-tsc-cjs/Abi/index.js +++ b/.api-contract/build-tsc-cjs/Abi/index.js @@ -6,7 +6,7 @@ const types_create_1 = require('@polkadot/types-create'); const util_1 = require('@polkadot/util'); const toLatestCompatible_js_1 = require('./toLatestCompatible.js'); const l = (0, util_1.logger)('Abi'); -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; function findMessage(list, messageOrId) { const message = (0, util_1.isNumber)(messageOrId) ? list[messageOrId] @@ -25,6 +25,9 @@ function getMetadata(registry, json) { const vx = toLatestCompatible_js_1.enumVersions.find(v => (0, util_1.isObject)(json[v])); // this was added in V4 const jsonVersion = json.version; + console.log('parsing metadata'); + console.log(jsonVersion); + console.log(toLatestCompatible_js_1.enumVersions); if ( !vx && jsonVersion && @@ -32,18 +35,24 @@ function getMetadata(registry, json) { ) { throw new Error(`Unable to handle version ${jsonVersion}`); } + console.log('parsed'); + console.log(vx); const metadata = registry.createType( 'ContractMetadata', vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, ); + console.log('m'); const converter = toLatestCompatible_js_1.convertVersions.find(([v]) => metadata[`is${v}`]); if (!converter) { throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); } + console.log('converter'); const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + console.log('up'); return upgradedMetadata; } function parseJson(json, chainProperties) { + console.log('parsing json'); const registry = new types_1.TypeRegistry(); const info = registry.createType('ContractProjectInfo', json); const metadata = getMetadata(registry, json); @@ -55,6 +64,7 @@ function parseJson(json, chainProperties) { } // warm-up the actual type, pre-use lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + console.log('warmed up'); return [json, registry, metadata, info]; } /** @@ -86,10 +96,12 @@ class Abi { registry; environment = new Map(); constructor(abiJson, chainProperties) { + console.log('constructor'); [this.json, this.registry, this.metadata, this.info] = parseJson( (0, util_1.isString)(abiJson) ? JSON.parse(abiJson) : abiJson, chainProperties, ); + console.log('parsed json'); this.constructors = this.metadata.spec.constructors.map((spec, index) => this.__internal__createMessage(spec, index, { isConstructor: true, @@ -100,7 +112,9 @@ class Abi { : null, }), ); + console.log('created constructors'); this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); + console.log('created events'); this.messages = this.metadata.spec.messages.map((spec, index) => this.__internal__createMessage(spec, index, { isDefault: spec.default.isTrue, @@ -111,6 +125,7 @@ class Abi { : null, }), ); + console.log('created messages'); // NOTE See the rationale for having Option<...> values in the actual // ContractEnvironmentV4 structure definition in interfaces/contractsAbi // (Due to conversions, the fields may not exist) @@ -132,6 +147,7 @@ class Abi { throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); } } + console.log('created environment'); } /** * Warning: Unstable API, bound to change diff --git a/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js b/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js index 4c9ce0d7..3f6e72ac 100644 --- a/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js +++ b/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js @@ -7,16 +7,20 @@ exports.convertVersions = exports.v3ToLatestCompatible = exports.enumVersions = void 0; +exports.v6ToLatestCompatible = v6ToLatestCompatible; exports.v5ToLatestCompatible = v5ToLatestCompatible; exports.v4ToLatestCompatible = v4ToLatestCompatible; const toV1_js_1 = require('./toV1.js'); const toV2_js_1 = require('./toV2.js'); const toV3_js_1 = require('./toV3.js'); const toV4_js_1 = require('./toV4.js'); -exports.enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1']; +exports.enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; function createConverter(next, step) { return (registry, input) => next(registry, step(registry, input)); } +function v6ToLatestCompatible(_registry, v6) { + return v6; +} function v5ToLatestCompatible(_registry, v5) { return v5; } @@ -28,6 +32,7 @@ exports.v2ToLatestCompatible = createConverter(exports.v3ToLatestCompatible, toV exports.v1ToLatestCompatible = createConverter(exports.v2ToLatestCompatible, toV2_js_1.v1ToV2); exports.v0ToLatestCompatible = createConverter(exports.v1ToLatestCompatible, toV1_js_1.v0ToV1); exports.convertVersions = [ + ['V6', v6ToLatestCompatible], ['V5', v5ToLatestCompatible], ['V4', v4ToLatestCompatible], ['V3', exports.v3ToLatestCompatible], diff --git a/.api-contract/build-tsc-esm/Abi/index.js b/.api-contract/build-tsc-esm/Abi/index.js index b7b819be..f64654bc 100644 --- a/.api-contract/build-tsc-esm/Abi/index.js +++ b/.api-contract/build-tsc-esm/Abi/index.js @@ -17,7 +17,7 @@ import { } from '@polkadot/util'; import { convertVersions, enumVersions } from './toLatestCompatible.js'; const l = logger('Abi'); -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; function findMessage(list, messageOrId) { const message = isNumber(messageOrId) ? list[messageOrId] @@ -36,21 +36,30 @@ function getMetadata(registry, json) { const vx = enumVersions.find(v => isObject(json[v])); // this was added in V4 const jsonVersion = json.version; + console.log('parsing metadata'); + console.log(jsonVersion); + console.log(enumVersions); if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { throw new Error(`Unable to handle version ${jsonVersion}`); } + console.log('parsed'); + console.log(vx); const metadata = registry.createType( 'ContractMetadata', vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, ); + console.log('m'); const converter = convertVersions.find(([v]) => metadata[`is${v}`]); if (!converter) { throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); } + console.log('converter'); const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + console.log('up'); return upgradedMetadata; } function parseJson(json, chainProperties) { + console.log('parsing json'); const registry = new TypeRegistry(); const info = registry.createType('ContractProjectInfo', json); const metadata = getMetadata(registry, json); @@ -62,6 +71,7 @@ function parseJson(json, chainProperties) { } // warm-up the actual type, pre-use lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + console.log('warmed up'); return [json, registry, metadata, info]; } /** @@ -90,10 +100,12 @@ export class Abi { registry; environment = new Map(); constructor(abiJson, chainProperties) { + console.log('constructor'); [this.json, this.registry, this.metadata, this.info] = parseJson( isString(abiJson) ? JSON.parse(abiJson) : abiJson, chainProperties, ); + console.log('parsed json'); this.constructors = this.metadata.spec.constructors.map((spec, index) => this.__internal__createMessage(spec, index, { isConstructor: true, @@ -104,7 +116,9 @@ export class Abi { : null, }), ); + console.log('created constructors'); this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); + console.log('created events'); this.messages = this.metadata.spec.messages.map((spec, index) => this.__internal__createMessage(spec, index, { isDefault: spec.default.isTrue, @@ -115,6 +129,7 @@ export class Abi { : null, }), ); + console.log('created messages'); // NOTE See the rationale for having Option<...> values in the actual // ContractEnvironmentV4 structure definition in interfaces/contractsAbi // (Due to conversions, the fields may not exist) @@ -136,6 +151,7 @@ export class Abi { throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); } } + console.log('created environment'); } /** * Warning: Unstable API, bound to change diff --git a/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js b/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js index 4cec9dab..009dd5e6 100644 --- a/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js +++ b/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js @@ -2,10 +2,13 @@ import { v0ToV1 } from './toV1.js'; import { v1ToV2 } from './toV2.js'; import { v2ToV3 } from './toV3.js'; import { v3ToV4 } from './toV4.js'; -export const enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1']; +export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; function createConverter(next, step) { return (registry, input) => next(registry, step(registry, input)); } +export function v6ToLatestCompatible(_registry, v6) { + return v6; +} export function v5ToLatestCompatible(_registry, v5) { return v5; } @@ -17,6 +20,7 @@ export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestComp export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); export const convertVersions = [ + ['V6', v6ToLatestCompatible], ['V5', v5ToLatestCompatible], ['V4', v4ToLatestCompatible], ['V3', v3ToLatestCompatible], diff --git a/.api-contract/build-tsc/Abi/index.d.ts b/.api-contract/build-tsc/Abi/index.d.ts index 814995b0..2ce16624 100644 --- a/.api-contract/build-tsc/Abi/index.d.ts +++ b/.api-contract/build-tsc/Abi/index.d.ts @@ -2,6 +2,7 @@ import type { ChainProperties, ContractMetadataV4, ContractMetadataV5, + ContractMetadataV6, ContractProjectInfo, EventRecord, } from '@polkadot/types/interfaces'; @@ -13,7 +14,10 @@ import type { DecodedEvent, DecodedMessage, } from '../types.js'; -export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5; +export type ContractMetadataSupported = + | ContractMetadataV4 + | ContractMetadataV5 + | ContractMetadataV6; export declare class Abi { #private; readonly events: AbiEvent[]; diff --git a/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts b/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts index c3c505b2..e5db5e1e 100644 --- a/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts +++ b/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts @@ -1,9 +1,17 @@ -import type { ContractMetadataV4, ContractMetadataV5 } from '@polkadot/types/interfaces'; +import type { + ContractMetadataV4, + ContractMetadataV5, + ContractMetadataV6, +} from '@polkadot/types/interfaces'; import type { Registry } from '@polkadot/types/types'; import type { ContractMetadataSupported } from './index.js'; -export declare const enumVersions: readonly ['V5', 'V4', 'V3', 'V2', 'V1']; +export declare const enumVersions: readonly ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; type Versions = (typeof enumVersions)[number] | 'V0'; type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; +export declare function v6ToLatestCompatible( + _registry: Registry, + v6: ContractMetadataV6, +): ContractMetadataV6; export declare function v5ToLatestCompatible( _registry: Registry, v5: ContractMetadataV5, diff --git a/.api-contract/build/Abi/index.d.ts b/.api-contract/build/Abi/index.d.ts index 814995b0..2ce16624 100644 --- a/.api-contract/build/Abi/index.d.ts +++ b/.api-contract/build/Abi/index.d.ts @@ -2,6 +2,7 @@ import type { ChainProperties, ContractMetadataV4, ContractMetadataV5, + ContractMetadataV6, ContractProjectInfo, EventRecord, } from '@polkadot/types/interfaces'; @@ -13,7 +14,10 @@ import type { DecodedEvent, DecodedMessage, } from '../types.js'; -export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5; +export type ContractMetadataSupported = + | ContractMetadataV4 + | ContractMetadataV5 + | ContractMetadataV6; export declare class Abi { #private; readonly events: AbiEvent[]; diff --git a/.api-contract/build/Abi/index.js b/.api-contract/build/Abi/index.js index b7b819be..f64654bc 100644 --- a/.api-contract/build/Abi/index.js +++ b/.api-contract/build/Abi/index.js @@ -17,7 +17,7 @@ import { } from '@polkadot/util'; import { convertVersions, enumVersions } from './toLatestCompatible.js'; const l = logger('Abi'); -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; function findMessage(list, messageOrId) { const message = isNumber(messageOrId) ? list[messageOrId] @@ -36,21 +36,30 @@ function getMetadata(registry, json) { const vx = enumVersions.find(v => isObject(json[v])); // this was added in V4 const jsonVersion = json.version; + console.log('parsing metadata'); + console.log(jsonVersion); + console.log(enumVersions); if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { throw new Error(`Unable to handle version ${jsonVersion}`); } + console.log('parsed'); + console.log(vx); const metadata = registry.createType( 'ContractMetadata', vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, ); + console.log('m'); const converter = convertVersions.find(([v]) => metadata[`is${v}`]); if (!converter) { throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); } + console.log('converter'); const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + console.log('up'); return upgradedMetadata; } function parseJson(json, chainProperties) { + console.log('parsing json'); const registry = new TypeRegistry(); const info = registry.createType('ContractProjectInfo', json); const metadata = getMetadata(registry, json); @@ -62,6 +71,7 @@ function parseJson(json, chainProperties) { } // warm-up the actual type, pre-use lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + console.log('warmed up'); return [json, registry, metadata, info]; } /** @@ -90,10 +100,12 @@ export class Abi { registry; environment = new Map(); constructor(abiJson, chainProperties) { + console.log('constructor'); [this.json, this.registry, this.metadata, this.info] = parseJson( isString(abiJson) ? JSON.parse(abiJson) : abiJson, chainProperties, ); + console.log('parsed json'); this.constructors = this.metadata.spec.constructors.map((spec, index) => this.__internal__createMessage(spec, index, { isConstructor: true, @@ -104,7 +116,9 @@ export class Abi { : null, }), ); + console.log('created constructors'); this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); + console.log('created events'); this.messages = this.metadata.spec.messages.map((spec, index) => this.__internal__createMessage(spec, index, { isDefault: spec.default.isTrue, @@ -115,6 +129,7 @@ export class Abi { : null, }), ); + console.log('created messages'); // NOTE See the rationale for having Option<...> values in the actual // ContractEnvironmentV4 structure definition in interfaces/contractsAbi // (Due to conversions, the fields may not exist) @@ -136,6 +151,7 @@ export class Abi { throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); } } + console.log('created environment'); } /** * Warning: Unstable API, bound to change diff --git a/.api-contract/build/Abi/toLatestCompatible.d.ts b/.api-contract/build/Abi/toLatestCompatible.d.ts index c3c505b2..e5db5e1e 100644 --- a/.api-contract/build/Abi/toLatestCompatible.d.ts +++ b/.api-contract/build/Abi/toLatestCompatible.d.ts @@ -1,9 +1,17 @@ -import type { ContractMetadataV4, ContractMetadataV5 } from '@polkadot/types/interfaces'; +import type { + ContractMetadataV4, + ContractMetadataV5, + ContractMetadataV6, +} from '@polkadot/types/interfaces'; import type { Registry } from '@polkadot/types/types'; import type { ContractMetadataSupported } from './index.js'; -export declare const enumVersions: readonly ['V5', 'V4', 'V3', 'V2', 'V1']; +export declare const enumVersions: readonly ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; type Versions = (typeof enumVersions)[number] | 'V0'; type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; +export declare function v6ToLatestCompatible( + _registry: Registry, + v6: ContractMetadataV6, +): ContractMetadataV6; export declare function v5ToLatestCompatible( _registry: Registry, v5: ContractMetadataV5, diff --git a/.api-contract/build/Abi/toLatestCompatible.js b/.api-contract/build/Abi/toLatestCompatible.js index 4cec9dab..009dd5e6 100644 --- a/.api-contract/build/Abi/toLatestCompatible.js +++ b/.api-contract/build/Abi/toLatestCompatible.js @@ -2,10 +2,13 @@ import { v0ToV1 } from './toV1.js'; import { v1ToV2 } from './toV2.js'; import { v2ToV3 } from './toV3.js'; import { v3ToV4 } from './toV4.js'; -export const enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1']; +export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; function createConverter(next, step) { return (registry, input) => next(registry, step(registry, input)); } +export function v6ToLatestCompatible(_registry, v6) { + return v6; +} export function v5ToLatestCompatible(_registry, v5) { return v5; } @@ -17,6 +20,7 @@ export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestComp export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); export const convertVersions = [ + ['V6', v6ToLatestCompatible], ['V5', v5ToLatestCompatible], ['V4', v4ToLatestCompatible], ['V3', v3ToLatestCompatible], diff --git a/.api-contract/build/bundle-polkadot-api-contract.js b/.api-contract/build/bundle-polkadot-api-contract.js index 4ccd6aaa..f9325d52 100644 --- a/.api-contract/build/bundle-polkadot-api-contract.js +++ b/.api-contract/build/bundle-polkadot-api-contract.js @@ -149,10 +149,13 @@ ); } - const enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1']; + const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; function createConverter(next, step) { return (registry, input) => next(registry, step(registry, input)); } + function v6ToLatestCompatible(_registry, v6) { + return v6; + } function v5ToLatestCompatible(_registry, v5) { return v5; } @@ -164,6 +167,7 @@ const v1ToLatestCompatible = createConverter(v2ToLatestCompatible, v1ToV2); const v0ToLatestCompatible = createConverter(v1ToLatestCompatible, v0ToV1); const convertVersions = [ + ['V6', v6ToLatestCompatible], ['V5', v5ToLatestCompatible], ['V4', v4ToLatestCompatible], ['V3', v3ToLatestCompatible], @@ -173,7 +177,7 @@ ]; const l$2 = util.logger('Abi'); - const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; + const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; function findMessage(list, messageOrId) { const message = util.isNumber(messageOrId) ? list[messageOrId] @@ -190,21 +194,30 @@ function getMetadata(registry, json) { const vx = enumVersions.find(v => util.isObject(json[v])); const jsonVersion = json.version; + console.log('parsing metadata'); + console.log(jsonVersion); + console.log(enumVersions); if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { throw new Error(`Unable to handle version ${jsonVersion}`); } + console.log('parsed'); + console.log(vx); const metadata = registry.createType( 'ContractMetadata', vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, ); + console.log('m'); const converter = convertVersions.find(([v]) => metadata[`is${v}`]); if (!converter) { throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); } + console.log('converter'); const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + console.log('up'); return upgradedMetadata; } function parseJson(json, chainProperties) { + console.log('parsing json'); const registry = new types.TypeRegistry(); const info = registry.createType('ContractProjectInfo', json); const metadata = getMetadata(registry, json); @@ -214,6 +227,7 @@ registry.setChainProperties(chainProperties); } lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + console.log('warmed up'); return [json, registry, metadata, info]; } function isTypeSpec(value) { @@ -237,10 +251,12 @@ registry; environment = new Map(); constructor(abiJson, chainProperties) { + console.log('constructor'); [this.json, this.registry, this.metadata, this.info] = parseJson( util.isString(abiJson) ? JSON.parse(abiJson) : abiJson, chainProperties, ); + console.log('parsed json'); this.constructors = this.metadata.spec.constructors.map((spec, index) => this.__internal__createMessage(spec, index, { isConstructor: true, @@ -251,9 +267,11 @@ : null, }), ); + console.log('created constructors'); this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index), ); + console.log('created events'); this.messages = this.metadata.spec.messages.map((spec, index) => this.__internal__createMessage(spec, index, { isDefault: spec.default.isTrue, @@ -264,6 +282,7 @@ : null, }), ); + console.log('created messages'); for (const [key, opt] of this.metadata.spec.environment.entries()) { if (isOption(opt)) { if (opt.isSome) { @@ -282,6 +301,7 @@ throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); } } + console.log('created environment'); } decodeEvent(record) { switch (this.metadata.version.toString()) { diff --git a/.api-contract/build/cjs/Abi/index.d.ts b/.api-contract/build/cjs/Abi/index.d.ts index 814995b0..2ce16624 100644 --- a/.api-contract/build/cjs/Abi/index.d.ts +++ b/.api-contract/build/cjs/Abi/index.d.ts @@ -2,6 +2,7 @@ import type { ChainProperties, ContractMetadataV4, ContractMetadataV5, + ContractMetadataV6, ContractProjectInfo, EventRecord, } from '@polkadot/types/interfaces'; @@ -13,7 +14,10 @@ import type { DecodedEvent, DecodedMessage, } from '../types.js'; -export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5; +export type ContractMetadataSupported = + | ContractMetadataV4 + | ContractMetadataV5 + | ContractMetadataV6; export declare class Abi { #private; readonly events: AbiEvent[]; diff --git a/.api-contract/build/cjs/Abi/index.js b/.api-contract/build/cjs/Abi/index.js index fa496ef2..a00e952b 100644 --- a/.api-contract/build/cjs/Abi/index.js +++ b/.api-contract/build/cjs/Abi/index.js @@ -6,7 +6,7 @@ const types_create_1 = require('@polkadot/types-create'); const util_1 = require('@polkadot/util'); const toLatestCompatible_js_1 = require('./toLatestCompatible.js'); const l = (0, util_1.logger)('Abi'); -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; function findMessage(list, messageOrId) { const message = (0, util_1.isNumber)(messageOrId) ? list[messageOrId] @@ -25,6 +25,9 @@ function getMetadata(registry, json) { const vx = toLatestCompatible_js_1.enumVersions.find(v => (0, util_1.isObject)(json[v])); // this was added in V4 const jsonVersion = json.version; + console.log('parsing metadata'); + console.log(jsonVersion); + console.log(toLatestCompatible_js_1.enumVersions); if ( !vx && jsonVersion && @@ -32,18 +35,24 @@ function getMetadata(registry, json) { ) { throw new Error(`Unable to handle version ${jsonVersion}`); } + console.log('parsed'); + console.log(vx); const metadata = registry.createType( 'ContractMetadata', vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, ); + console.log('m'); const converter = toLatestCompatible_js_1.convertVersions.find(([v]) => metadata[`is${v}`]); if (!converter) { throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); } + console.log('converter'); const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + console.log('up'); return upgradedMetadata; } function parseJson(json, chainProperties) { + console.log('parsing json'); const registry = new types_1.TypeRegistry(); const info = registry.createType('ContractProjectInfo', json); const metadata = getMetadata(registry, json); @@ -55,6 +64,7 @@ function parseJson(json, chainProperties) { } // warm-up the actual type, pre-use lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); + console.log('warmed up'); return [json, registry, metadata, info]; } /** @@ -86,10 +96,12 @@ class Abi { registry; environment = new Map(); constructor(abiJson, chainProperties) { + console.log('constructor'); [this.json, this.registry, this.metadata, this.info] = parseJson( (0, util_1.isString)(abiJson) ? JSON.parse(abiJson) : abiJson, chainProperties, ); + console.log('parsed json'); this.constructors = this.metadata.spec.constructors.map((spec, index) => this.__internal__createMessage(spec, index, { isConstructor: true, @@ -100,7 +112,9 @@ class Abi { : null, }), ); + console.log('created constructors'); this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); + console.log('created events'); this.messages = this.metadata.spec.messages.map((spec, index) => this.__internal__createMessage(spec, index, { isDefault: spec.default.isTrue, @@ -111,6 +125,7 @@ class Abi { : null, }), ); + console.log('created messages'); // NOTE See the rationale for having Option<...> values in the actual // ContractEnvironmentV4 structure definition in interfaces/contractsAbi // (Due to conversions, the fields may not exist) @@ -132,6 +147,7 @@ class Abi { throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); } } + console.log('created environment'); } /** * Warning: Unstable API, bound to change diff --git a/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts b/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts index c3c505b2..e5db5e1e 100644 --- a/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts +++ b/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts @@ -1,9 +1,17 @@ -import type { ContractMetadataV4, ContractMetadataV5 } from '@polkadot/types/interfaces'; +import type { + ContractMetadataV4, + ContractMetadataV5, + ContractMetadataV6, +} from '@polkadot/types/interfaces'; import type { Registry } from '@polkadot/types/types'; import type { ContractMetadataSupported } from './index.js'; -export declare const enumVersions: readonly ['V5', 'V4', 'V3', 'V2', 'V1']; +export declare const enumVersions: readonly ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; type Versions = (typeof enumVersions)[number] | 'V0'; type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; +export declare function v6ToLatestCompatible( + _registry: Registry, + v6: ContractMetadataV6, +): ContractMetadataV6; export declare function v5ToLatestCompatible( _registry: Registry, v5: ContractMetadataV5, diff --git a/.api-contract/build/cjs/Abi/toLatestCompatible.js b/.api-contract/build/cjs/Abi/toLatestCompatible.js index 4c9ce0d7..3f6e72ac 100644 --- a/.api-contract/build/cjs/Abi/toLatestCompatible.js +++ b/.api-contract/build/cjs/Abi/toLatestCompatible.js @@ -7,16 +7,20 @@ exports.convertVersions = exports.v3ToLatestCompatible = exports.enumVersions = void 0; +exports.v6ToLatestCompatible = v6ToLatestCompatible; exports.v5ToLatestCompatible = v5ToLatestCompatible; exports.v4ToLatestCompatible = v4ToLatestCompatible; const toV1_js_1 = require('./toV1.js'); const toV2_js_1 = require('./toV2.js'); const toV3_js_1 = require('./toV3.js'); const toV4_js_1 = require('./toV4.js'); -exports.enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1']; +exports.enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; function createConverter(next, step) { return (registry, input) => next(registry, step(registry, input)); } +function v6ToLatestCompatible(_registry, v6) { + return v6; +} function v5ToLatestCompatible(_registry, v5) { return v5; } @@ -28,6 +32,7 @@ exports.v2ToLatestCompatible = createConverter(exports.v3ToLatestCompatible, toV exports.v1ToLatestCompatible = createConverter(exports.v2ToLatestCompatible, toV2_js_1.v1ToV2); exports.v0ToLatestCompatible = createConverter(exports.v1ToLatestCompatible, toV1_js_1.v0ToV1); exports.convertVersions = [ + ['V6', v6ToLatestCompatible], ['V5', v5ToLatestCompatible], ['V4', v4ToLatestCompatible], ['V3', exports.v3ToLatestCompatible], diff --git a/.api-contract/src/Abi/index.ts b/.api-contract/src/Abi/index.ts index 538875c4..ab4a085d 100644 --- a/.api-contract/src/Abi/index.ts +++ b/.api-contract/src/Abi/index.ts @@ -11,6 +11,7 @@ import type { ContractMetadata, ContractMetadataV4, ContractMetadataV5, + ContractMetadataV6, ContractProjectInfo, ContractTypeSpec, EventRecord, @@ -54,12 +55,15 @@ interface AbiJson { } type EventOf = M extends { spec: { events: Vec } } ? E : never; -export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5; +export type ContractMetadataSupported = + | ContractMetadataV4 + | ContractMetadataV5 + | ContractMetadataV6; type ContractEventSupported = EventOf; const l = logger('Abi'); -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountIndex', 'Address', 'Balance']; +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; function findMessage(list: T[], messageOrId: T | string | number): T { const message = isNumber(messageOrId) @@ -99,7 +103,6 @@ function getMetadata(registry: Registry, json: AbiJson): ContractMetadataSupport } const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); - return upgradedMetadata; } diff --git a/.api-contract/src/Abi/toLatestCompatible.spec.ts b/.api-contract/src/Abi/toLatestCompatible.spec.ts index aab966fc..b2eb3ddf 100644 --- a/.api-contract/src/Abi/toLatestCompatible.spec.ts +++ b/.api-contract/src/Abi/toLatestCompatible.spec.ts @@ -13,6 +13,7 @@ import { v3ToLatestCompatible, v4ToLatestCompatible, v5ToLatestCompatible, + v6ToLatestCompatible, } from './toLatestCompatible.js'; describe('v0ToLatestCompatible', (): void => { @@ -208,3 +209,32 @@ describe('v5ToLatestCompatible', (): void => { expect(latest.version.toString()).toEqual('5'); }); }); + +describe('v6ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V6: abis['ink_v6_erc20Metadata'] }); + const latest = v6ToLatestCompatible(registry, contract.asV6); + + it('has the correct messages', (): void => { + expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ + 'total_supply', + 'balance_of', + 'allowance', + 'transfer', + 'approve', + 'transfer_from', + ]); + }); + + it('has H160 as the type of balance_of argument', (): void => { + const arg = latest.spec.messages.find(m => m.label.toString() === 'balance_of')?.args[0]; + + const name = arg?.type.displayName?.[0]?.toString(); + + expect(name).toBe('H160'); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('6'); + }); +}); diff --git a/.api-contract/src/Abi/toLatestCompatible.ts b/.api-contract/src/Abi/toLatestCompatible.ts index 181fc96a..67108d68 100644 --- a/.api-contract/src/Abi/toLatestCompatible.ts +++ b/.api-contract/src/Abi/toLatestCompatible.ts @@ -1,7 +1,11 @@ // Copyright 2017-2025 @polkadot/api-contract authors & contributors // SPDX-License-Identifier: Apache-2.0 -import type { ContractMetadataV4, ContractMetadataV5 } from '@polkadot/types/interfaces'; +import type { + ContractMetadataV4, + ContractMetadataV5, + ContractMetadataV6, +} from '@polkadot/types/interfaces'; import type { Registry } from '@polkadot/types/types'; import type { ContractMetadataSupported } from './index.js'; @@ -12,7 +16,7 @@ import { v3ToV4 } from './toV4.js'; // The versions where an enum is used, aka V0 is missing // (Order from newest, i.e. we expect more on newest vs oldest) -export const enumVersions = ['V5', 'V4', 'V3', 'V2', 'V1'] as const; +export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1'] as const; type Versions = (typeof enumVersions)[number] | 'V0'; @@ -27,6 +31,13 @@ function createConverter( next(registry, step(registry, input)); } +export function v6ToLatestCompatible( + _registry: Registry, + v6: ContractMetadataV6, +): ContractMetadataV6 { + return v6; +} + export function v5ToLatestCompatible( _registry: Registry, v5: ContractMetadataV5, @@ -47,6 +58,7 @@ export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestComp export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); export const convertVersions: [Versions, Converter][] = [ + ['V6', v6ToLatestCompatible], ['V5', v5ToLatestCompatible], ['V4', v4ToLatestCompatible], ['V3', v3ToLatestCompatible], diff --git a/.api-contract/src/test/compare/ink_v6_erc20Contract.test.json b/.api-contract/src/test/compare/ink_v6_erc20Contract.test.json new file mode 100644 index 00000000..0fee54ab --- /dev/null +++ b/.api-contract/src/test/compare/ink_v6_erc20Contract.test.json @@ -0,0 +1,418 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "docs": [], + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256" + }, + { + "info": "VecFixed", + "lookupIndex": 1, + "type": "[u64;4]", + "docs": [], + "namespace": "", + "length": 4, + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "u64", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "type": "[u8;20]", + "docs": [], + "namespace": "", + "length": 20, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 7, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 12, + "type": "(H160,H160)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + } + ] + }, + { + "info": "Null", + "lookupIndex": 13, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 14, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 15, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"U256\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "docs": [], + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Result", + "lookupIndex": 19, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 20, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "Lookup21" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Result", + "lookupIndex": 20, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "Lookup21" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 22, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + } + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 24, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 25, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 26, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 27, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 28, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_primitives::types::NoChainExtension", + "lookupNameRoot": "InkPrimitivesNoChainExtension" + } +] diff --git a/.api-contract/src/test/compare/ink_v6_erc20Metadata.test.json b/.api-contract/src/test/compare/ink_v6_erc20Metadata.test.json new file mode 100644 index 00000000..0fee54ab --- /dev/null +++ b/.api-contract/src/test/compare/ink_v6_erc20Metadata.test.json @@ -0,0 +1,418 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "docs": [], + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256" + }, + { + "info": "VecFixed", + "lookupIndex": 1, + "type": "[u64;4]", + "docs": [], + "namespace": "", + "length": 4, + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "u64", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "type": "[u8;20]", + "docs": [], + "namespace": "", + "length": 20, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 7, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 12, + "type": "(H160,H160)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + } + ] + }, + { + "info": "Null", + "lookupIndex": 13, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 14, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 15, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"U256\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "docs": [], + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Result", + "lookupIndex": 19, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 20, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "Lookup21" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Result", + "lookupIndex": 20, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "Lookup21" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 22, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + } + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 24, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 25, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 26, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 27, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 28, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_primitives::types::NoChainExtension", + "lookupNameRoot": "InkPrimitivesNoChainExtension" + } +] diff --git a/.api-contract/src/test/contracts/ink/index.ts b/.api-contract/src/test/contracts/ink/index.ts index 3ae97f89..5b4bb5f6 100644 --- a/.api-contract/src/test/contracts/ink/index.ts +++ b/.api-contract/src/test/contracts/ink/index.ts @@ -8,5 +8,6 @@ import * as v2 from './v2/index.js'; import * as v3 from './v3/index.js'; import * as v4 from './v4/index.js'; import * as v5 from './v5/index.js'; +import * as v6 from './v6/index.js'; -export default createVersionedExport({ v0, v1, v2, v3, v4, v5 }); +export default createVersionedExport({ v0, v1, v2, v3, v4, v5, v6 }); diff --git a/.api-contract/src/test/contracts/ink/v6/erc20.contract.json b/.api-contract/src/test/contracts/ink/v6/erc20.contract.json new file mode 100644 index 00000000..08d10043 --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v6/erc20.contract.json @@ -0,0 +1,491 @@ +{ + "source": { + "hash": "0x15fa048bd28a4649ced787f88707e271f48ff04a966f525b28877c08c60ea014", + "language": "ink! 6.0.0-alpha", + "compiler": "rustc 1.86.0", + "contract_binary": "0x50564d0000e52400000000000001078098d01440a000028098c8000000f2000000e8000000ec000000ca000000f6000000b721a0ec63616c6ce7dc2326011ecb48b1e08876a3b5a17f9ce1350cbc5e4f264b3162dbc757be9de4b15f1e8301e4c2a1aef088c9f187a0e3f8016deaf4bdeb7954fb410c32bf8a6a033ecc3b5b00000d0000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b00000004808308000000000e00000014000000210000002c0000003b000000460000005100000063616c6c5f646174615f636f707963616c6c65726465706f7369745f6576656e746765745f73746f72616765686173685f626c616b65325f3235367365616c5f72657475726e7365745f73746f7261676576616c75655f7472616e736665727265640511028da40463616c6c975d066465706c6f7906a397809b029e8ad000f50006014e0173018401cb01e20119021e0232024b02800285029802b10221032d0365038b0319042c0464049304d60403050d053b05810592059c05ac05b605e805f205220653065e066906bd066007690777072f085c081b093909620987099809e909fd09160a2e0a880adc0afc0a470b650b9a0bf60b160c4c0c980ca30cb90cc60cd20c470d590d6d0d8d0dbb0dde0d710e890e9b0eaa0ebb0ecc0ef70e0f0f210f300f410f520f840fa611f9110a121c122b123c124c12661276129012b812e61248136f138713f6130714181429144e145a14681493149f14d1140c151a1528153515611564157415d015dc150a1611162916bd16cb16e116fb160b1755177317b717d117e117ef17cc18e418ee18121949196b198d19a819121a221a2c1af31a1c1b3d1b561bd31bec1b8b1cb31c9f1d9511e87b10107b15087b16531910688d7a84a207c8270b648c6475aeb7107cca785a95550195cc01acb5f6c82804c929028423f8844807c83b0a51085c9748038480388446f882658d88848c38956808aeab1b8286d00505cfc609d459097bb995bb089588086465acabebc834088429072805647a01c8a909ae9a107c8b78ab95aa01958801ac9af6821010821508821695111832006448aeabd382897bb995bb08958808acabf628c39511c87b10307b15287b16207b1833081400137b180849111000404911189518085010025504821518821710ac5740821608c85608c957077b18087b171049111895180882175010047e1a821718821810ac781b821a08501206441d0a068210308215288216209511383200009511b07b10487b15407b16387b1933091800017b19087b17107b181833071400137b17204911280040491130951708951820501008a103821530821728ac5740821620c85608c957077b18207b1728491130951820821750100a001a821730821828ac781b821a2050120cc61c0a068210488215408216389511503200009511a07b10587b15507b16486478827708828610ac6755aa67528285c967077b1708c8650546059517103309017b18645850100e06017b15308217087b17384911409517109518305010103207821740c86707ac671682187b87108210588215508216489511603200009511a07b10587b15507b1648827908827610ac6954501212431c5010140b19821920821718ac97418218109517105010169f0082177b17308217087b1738491140951710951830501018c906821740c86707ac67147b57108210588215508216489511603200009511a07b10587b15507b1648827908827610ac695350121adc1b50101ca418821920821718ac974082181095171050101e3882177b17308217087b17384911409517109518305010206306821740c86707ac67147b57108210588215508216489511603200009511b07b10487b15406475491118491110491108490153192138491138491130491128491120979920989a20951920648764a80a04821720821828821930821a387b177b18087b19107b1a1828096417501022e4fc64183309206457501024d8fc82104882154095115032009511f07b10087b15828a086475330920330701ac9a1d828995aae09597207b877b8a0895570864985010265c193307017b57821008821595111032009511a07b10587b15507b164864866475951720501028b1821720510708330701283c8217407b1718821738821830821928826a087b17107b18087b19330701520a1d3307821818821910821a08821b7b58207b59187b5a107b5b08017b578210588215508216489511603200951170ff7b1088007b1580007b1678828908330a146476aca9a20082879599ec957a147b8a7b89087c79117c7a107c7b127c7c1350122a621a7a19487c79017c7a7c7b027c7c0350122c4f1a7c7a057c7b047c7c067c750797aa08d4ba0a97cc10975518d45c0cd4ca0a97aa20d4a9097b19387c79097c7a087c7b0a7c7c0b50122e171a7c7a0d7c7b0c7c7c0e7c770f97aa08d4ba0a97cc10977718d4c707d4a707977720d497077b1740951750501030aafe82175051070a3307017b67283b8217708218688219607b17307b18287b1920821758821838821940811a487b17187b187b19087a1a1095670864183309385010322ffb49060182108800821580008216789511900032009511e87b10107b15087b16647582776486330034817728041682570864685010361c16825710646882101082150882169511182807169511e87b10107b15087b16648564763300383307e7dc232628cc1564676458821010821508821695111828da15951170ff7b1088007b1580007b1678647595763533071400137b17604911680040491170330925000195174895186050103a2d047c572051071095582195174850103cd9fc280a95174850103efefb7c67510710955836951748501040bffc280a951748501042e4fb7b16308217508216587b1728ac67d7008218487b18387b15209557207b1718c868077b170898650595176064585010445a0295176064585010468c028215708218687b16108467e09a767b15409755057b18c88505018218385106249587207b17383309206457501048e3f98217409577017b174095662095552028db821728821810c987078218087b18607b176849117095186082171850104a8f0495186082173050104c840495186082172050104e0a15821770821868ac782a821960821840978820988820977720987a2082170a028210880082158000821678951190003200009511c87b10307b15287b1620330514001333071400130a076417641664585010500416330705019577ff51071082689566085108f53307042806330705018210308215288216209511383200958a20957918330ce00164c3510c1b829b82a7f895a2f89599f8953c08642aaa7bebd87b092805648201d382078e77db390784770132009511d8827848018279087b1808827810827a187b19109517087b18187b1a209511d8827818827910827a0882777b18207b19187b1a107b17084801641733005c28f00264576468501054bc0382103082152882162095113832007c67257c68247c69267c6a27977708d4870797991097aa18d4a909d497077a17407c671d7c681c7c691e7c6a1f977708d4870797991097aa18d4a909d497077c68217c69207c6a227c6b23978808d4980897aa1097bb18d4ba0ad4a808978820d487077b17387c67157c68147c69167c6a17977708d4870797991097aa18d4a909d497077c68197c69187c6a1a7c6b1b978808d4980897aa1097bb18d4ba0ad4a808978820d487077b173095193064579518085010589a0382105882155082164895116032009511e87b10107b15087b166486978805570812647551060e648750105af11152070800330701017b567b570849151082101082150882169511183200827910827ac99a0aac8a053200648b330a20649864b9281a119511f87b158293829b08829a108284828c08ae3417d8bc0585b2ffc8c202d3cb0b88bc01c85c0c2809c9bc02d8bc0c01828510829b18c9a509d8a50a510c0dd8c905c9c909c85a0a01828518c93408c9b50c510a11d8b50bd8ac05c9ac0cd45b0a2806d8b50a017b787b72087b79107b7c18520a0a8215951108320000330920647a648764a828b4110033005e9511f87b101f03140013010133081400133307013309020a0500009511c87b10307b15287b16207b1733071400137b170849111000404911189518083307501060a711821518821710ac5740821608c85608c957077b18087b17104911189518088217501062ec11821718821810ac781b821a08501264b2140a068210308215288216209511383200009511987b10607b15587b16506486647551096e7b1510826708826510ac5787008268c95707c858087b187b18187b17087b172049112895181864975010662bff821928821720ac975d821818951718501068d4f882177b17388217087b174049114895171895183850106afefe821748c85707ac57307b67108215102809646750106c6cf782671082680882697b57107b58087b598210608215588216509511683200009511d87b10207b1518817833091400137b19330500407b150851080f1f031400130101330902281f9577081e0314001349111001641850106eeb10821910835501ac590400330814001333070a0500848bff003309021e03140013ab9b0a330833090128091e031500130101330a140013c89a0a78a89598013300709511f87b1097882098892033081400130a0500009511e87b10107b15087b167c7964855109229576013308016457501072bc0f64676458821010821508821695111828191064573308821010821508821695111828960f9511a87b10507b15486489647533071400137b171049111800404911209518106497501074def9821820821918ac8976821710c8870ac989097b1a7b19086419501076a41097772098772051170d19330803ab875133074915184915104915084905283682178218087b17387b1840951710951838501078dff7821710520726821730821828821920821a187b57187b58107b59087b5a018210508215489511583200009511907b10687b1560647533071800017b177b18087b191033071400137b17284911300040491138641795182850107af9f8821838821930ac8979821728c8870ac989097b1a187b192095191850107cf30f97772098772051170d19330803ab87523307491518491510491508490528378217188218207b17507b185895172895185050107e2df7821728520726821748821840821938821a307b57187b58107b59087b5a01821068821560951170320000951148ff7b10b0007b15a8007b16a00064957b180864769517106468502080008efe95171064585020820049fa510708330728e900951750951810645950208400dffb9518507b16646750208600eaf39517308218085020880054fe8219308257821a38825808c87906c8a808d8a80bae960d958801888901c89b0b01821a40825910c8a909d8a90a821708510b0fc89b0bd89b09c89a0a64b901821c48825b18c8cb0bd8cb0c510a10520c8300c8ba0ad8ba0c64ab01520c767b16507b18587b19607b1b68951850647650208a0069f346117001951771330914821850208c00adf2462185000195178600330914646850208e0099f28257825808825910825a187b17507b18587b19607b1a6895175050209000c6f7330702018210b0008215a8008216a0009511b8003200009511d0fd951700027b70287b75207b761850209200e5f88477ff0052170575073306d43f33051400133308004033071400133309330094000a01646c955504380a1400137b1500029567287b17080297a93098993897a82898883898a71884aaff00330b0b3305140013aaba0a03511a0f1d0295ab98510b3595ab96510b380195ab7cff510baa0095aa25ff520aecfa95999d5209e5fa95888b5208defa957758ff5207d6fa3306280404521912cdfa95889a5208c5fa957760ff5207bdfa95177801951800025020960075f5821778015207a7fa95188001951736330938502098007df195168600330938646795183650209a006bf19517d600330938646850209c005cf1951718019518d00033092750209e004bf19518a700951778013309175020a0003af133060428810395995fff520946fa9588a352083ffa95775fff520737fa95177801951800025020a200eff482177801520721fa951880019517363309385020a400f7f09516860033093864679518365020a600e5f09517d60033093864685020a800d6f0951718019518d0003309275020aa00c5f09518a700951778013309175020ac00b4f033060328fb025209c4f9521816c0f99577a25207b8f9340618001395c7147b17080295172b019558183309145020ae0082f07c57177c58167c591578172a01978808d49808791828017c57067c58057c59077c5a08977708d4870797991097aa18d4a909d497077c580a7c59097c5a0b7c5b0c978808d4980897aa1097bb18d4ba0ad4a808978820d487077b1718017c570e7c580d7c590f7c5a10977708d4870797991097aa18d4a909d497077c58127c59117c5a137c5b14978808d49808646997aa1097bb18d4ba0ad4a808978820d487077b17200133060228240295998b5209eaf89588a65208e3f89577aa5207dcf834072b001334082a0013340929001378172a01978808d498087918280134071a0013340819001334091b0013340a1c0013977708d4870797991097aa18d4a909d4970734081e001334091d0013340a1f0013340b200013978808d4980897aa1097bb18d4ba0ad4a808978820d487077b171801340722001334082100133409230013340a240013977708d4870797991097aa183408260013d4a909d497073409250013978808340a270013340b280013d49808340918001397aa1097bb18d4ba0ad4a808978820d487077b172001330601283b019599c7520901f89588915208faf7521718f6f7390728001338082400137a175001380720001397882038091c0013380a180013d487077b174801979920d4a9097b19400195572c380830001338092c00137b1700027b1c0802978820d49808380738001338093400137b18e00139083c0013977720d497077b17e8017a18f00195171801951800025020b00098f182171801510706286ff78217380182183001821928017b1710017b1808017b190001821720018218400182194801811a50017b17f8007b18d0007b19d8007a1ae0009517e4009518e0013309145020b2000dee95177e019518d0003309485020b400fced951636330948646795187e015020b600eaed9517860033094864685020b800dbed95171801951880003309275020ba00caed951857951778013309275020bc00baed33060501781630781931951732951818013309275020be00a0ed951759951878013309275020c00090ed7b157801492180010040492188019518780133075020c2007a088218880182198001ac899c0282177801c8870ac989097b1ae0017b19e8019519e0015020c4005209977720987720511703760252170d71028217e0018218e8017b17d0007b18d800951778019518d0005020c60058f08217780152074a02821798018218900182198801821a8001821bd8007b1798007b1890007b1988007b1a8000520b2202821798007b17580182179000821888009766023309000001c86909821a8000819b7b1750017b1848019519317b1a4001320b821758018218500182194801821a40017b1790017b1888017b1980017b1a78019517780128b1f3951838951740017b17d0009517d8003309385020cc007fec8217688218608219587b1798007b1890008217507b198800330514001333061400137b17800033071400130a0139072400133808180013951b00027ab71038071400139788203809200013380a1c0013d487077bb7979920d4a9097bb908951950951700029518d8005020ce0027ed9517a000951800023309145020d000ffeb9517b4003309149518d8005020d200eeeb95177801951880003309485020d400ddeb951598017b16e0014921e80100404921f0013309460001951760019518e0015020d60061f59517600164585020d800abed951760019518ac015020da009ded8217680182167001ac67c4007b1718821760017b1720c867077b17089865059517e00164585020dc00b0f39517e00164585020de00e0f38218208215f0018217e8017b15289755057b17c875057b16108467e09a765106299587207b172033092064575020e00035eb8217289577017b17289555209566208218205206dd821718821810c987078218087b18e0017b17e8014921f0019518e001951798015020e2001e069518e0019517ac015020e4001006951778019518e0015020e6004c068217f0018218e801ae78e3010095177801951840013300ea009511a07b10587b15507b1648649664757b18951708330928646833005628a2ea28a900951838951780013309385020ee0092ea95174001330514001333061400137b17780133071400130a01390724001338081800137a17900038071400139788203809200013380a1c0013d487077b178000979920d4a9097b1988009519980195178000951880015020f000acf68478ff00511802570128340195177801951840013300f4009511c87b10307b15287b1620649a64757b18951608330914646764a833005228f9e995177801280ff1951838951740017b177801951780013309485020f800dde981175c8018587a17d801801754978820801950801a4cd487077b17d001979920d4a9098217608218687b19c8018219707b17e0017b18e8018217787b19f00133061400137b17f80133071400130a0139072400133808180013951b00027ab7103807140013951580019788203809200013380a1c0013d487077bb7979920d4a9097bb9089517d0009519000264585020fa000df59517d0009518e0015020fc0021f033080152073f9518c8019519e00164575020fe009bf58478ff0052180228951780009518d0009519e001502000019df1951800029519800064575020020112ea2820330701288cf38219e001821828978820988820977720987a2082170a0201821758018218500182194801821a40017b1790017b1888017b1980017b1a78019517780150200401ebf133080233072842f3951130ff7b10c8007b15c0007b16b800502006012def8477ff00521705a4013306140013330514001333080040330714001333090a0139071400139555047b1550491158fc3f52479bae9d5e79f19517689518505020080187eb821768510706285ff195187095152e330920645750200a0135e89516063309206467645850200c0125e895176e330920646850200e0117e87e1788007e1886007e198a007e1a8c00977710d4870797992097aa30d4a909d497077b17407e1780007e187e7e1982007e1a8400977710d4870797992097aa30d4a909d497077b17387e17787e18767e197a7e1a7c977710d4870797992097aa30d4a909d497077b17307e17707e186e7e19727e1a74977710d4870797992097aa30d4a909d4970733051400137b172833071400130a01390724001338081800137a176038071400139788203809200013380a1c0013d487077b1750979920d4a9097b195833072000017b176895167033091464676458502010013ae77b1549110800404911103307e7dc2326641850201201260264186467502014013c02821610821708ac67278215c86508c967077b187b17084911109517286418502016016202821710821808ae780400821a976920989920977720987b20330764580a064621880046219d000195179e0095185033091450201801bde6821728821830821938821a407b17687b18707b19787b1a800095176850201a01e8eb821740821838821930821a287b1780007b18787b19707b1a6895176850201c01b3ef33001e019511f87b101f03140013330814001333090233070a0500009511c07b10387b15307b1628c88909ac898f006475827897870195abff330c04330608dbbc06e46909e47909d69a0752076fca9a075707697b1910510812caa808825a08491120019519182806951920017b988218205108288218185108227b187b1a0850202001455107356476821808821950202201e4e5821710280f502024012164768217105106167b56087b57821038821530821628951140320000510705280733070132003309000003340a0000036478510a0a3a07080003281f3307120003330a013b0a0000033e0708000333091000033b0a10000301c87808ac78233409100003330a120013939aac8a1b33090800033e08080003d8780894873200d878089487320000827910827a08aea912827ac89a0a78a89599017b79103200009511e87b10107b15087b166475827710c89706ac7624825a08ac6a1e825ac8a7075020260113e57b561082101082150882169511183200009511f07b1008648a7a170495180433090464a750202801b582100895111032009511d07b10287b15207b16186485647633071450202a0111ff5107304901147b17084911103308146419646750202c010f0182180882191064578210288215208216189511302862ff009511b07b10487b15407b163864854911184911104911084901641833090401827a788a98ab38788b0798ab30788b0698ab28788b0598ab20788b0498ab18788b0398ab10788b0298aa08788a019588089577089599ff5209c933072033062050202e017bfe5107307b16207b17284911306417330820c881095020300178821828821930645782104882154082163895115028ccfe009511e07b10187b15107b16086495829608647c829a7a1604978820988920951b04330764c80a0301801904ac962f837a33080c7b5908ae8a1484770f9777023308680001c8870781780164878210188215108216089511203200009511d87b10207b15187b161064958296108299c9690a64896478ac9a297b1908825708c86707502032017be3821708c876067b56108210208215188216109511283200330a0164577b186468649650203401fcfc8218646982561028c29511c07c89197c8a187c8b1a7c8c1b979908d4a90997bb1097cc18d4cb0bd49b027c8a1d7c8b1c7c8c1e7c891f97aa08d4ba0a97cc10979918d4c909d4a909979920d429097b19187c89117c8a107c8b127c8c13979908d4a90997bb1097cc18d4cb0bd49b027c8a157c8b147c8c167c891797aa08d4ba0a97cc10979918d4c909d4a909979920d429097b19107c89097c8a087c8b0a7c8c0b979908d4a90997bb1097cc18d4cb0bd49b027c8a0d7c8b0c7c8c0e7c890f97aa08d4ba0a97cc10979918d4c909d4a909979920d429097b19087c89017c8a7c8b027c8c0350223601dd007c8a057c8b047c8c067c880797aa08d4ba0a97cc10978818d4c808d4a808978820d498087b184911204911284911304911386418951220330304017c8b017c8c7c89027c8a0397bb08d4cb0b97991097aa18d4a909d4b9047c8a057c8b047c8c067c890797aa08d4ba0a97cc10979918d4c909d4a909979920d449097b299588089522089533ff5203b4821838821930821a28821b207b78187b79107b7a087b7b9511403200975920989920977720987b20330764683202647564878258c96909c868087b187b18107b19087b19184911209518103202979908d4a90997bb1097cc18d4cb0bd4b9093202498a924a254992244925294949496a52499252a92425492121094992244921494249d224292409094942922449524892509234494a92929454489224242949d2244912429224942449489224699224092149122549129224499aa424459224a992a424154a21494929494949a1a5942495485292244949494a9225491191a4282949129292902449922449929024499224494852499224494a5242231225a94a4921252549aa04a9a4242252424242129224945092504292449224490a2924494999242924494a9224494842129224495211892649085521939294495292a52429a9292995244992242549251592a4244992244992244992244992244992244992244992a48424294925a5905992945252a9a4929224494a2649924c9224294b92d25499140849274921212924499224852409254993a492244a4a92149224a124494292a4425252923449a1480229210a49861a092905434a52123a4995a45049492525492a24248524494a2189a424559224244992a4499aa45012125242922449421249492a4992902449922669444429052948490a524112a42449924c92244993249134499282480a42a4a02449922023221a91248810214271099148924442842411119148449490888808222209222588144424884890442422228288488248092205110922122411122111499024924892244992244992249224499224494a922492442211428824420821499210424892248910424892908484909024492489440821424248249110229210222411114124111111111111111109221224451029884890489049224122410411051111494404490811111141444444444444444442a288441111111191444482241189102214422424849424114144824804110922820811411444041191489228888244242529490a922449924444441011440411312292a44a4a924810214428840809219144440411121149522595441211099248924492442212214221444224849424a2202248220a2222228828288924498d8888888820252222881042840e4908488224490a920a9282888824491289489224499224499224499290500809092149129254504850504192929214245992541122099224492448924892205208a993245149922449922452962425a414a4509292a4298550422121843009a184904a4d524a9aa492242548529a94a490942495204952415292649294a4b292244992244992244892929094249924a592a49a9424096949d22429a59224489224a52aa89424499224499224499224499224499224499224499224499224494a822449922429494aa62449922449922429499224492949aa2a29495292240100", + "build_info": { + "build_mode": "Release", + "cargo_contract_version": "6.0.0-alpha.1", + "rust_toolchain": "stable-aarch64-apple-darwin" + } + }, + "contract": { "name": "erc20", "version": "6.0.0-alpha", "authors": ["Use Ink "] }, + "image": null, + "spec": { + "constructors": [ + { + "args": [{ "label": "total_supply", "type": { "displayName": ["U256"], "type": 0 } }], + "default": false, + "docs": ["Creates a new ERC-20 contract with the specified initial supply."], + "label": "new", + "payable": false, + "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 16 }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { "displayName": ["AccountId"], "type": 23 }, + "balance": { "displayName": ["Balance"], "type": 25 }, + "blockNumber": { "displayName": ["BlockNumber"], "type": 27 }, + "chainExtension": { "displayName": ["ChainExtension"], "type": 28 }, + "hash": { "displayName": ["Hash"], "type": 26 }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { "displayName": ["Timestamp"], "type": 2 } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { "displayName": ["Option"], "type": 22 } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { "displayName": ["Option"], "type": 22 } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { "displayName": ["U256"], "type": 0 } + } + ], + "docs": ["Event emitted when a token transfer occurs."], + "label": "Transfer", + "module_path": "erc20::erc20", + "signature_topic": "0x1ecb48b1e08876a3b5a17f9ce1350cbc5e4f264b3162dbc757be9de4b15f1e83" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { "displayName": ["H160"], "type": 4 } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { "displayName": ["H160"], "type": 4 } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { "displayName": ["U256"], "type": 0 } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval", + "module_path": "erc20::erc20", + "signature_topic": "0xe4c2a1aef088c9f187a0e3f8016deaf4bdeb7954fb410c32bf8a6a033ecc3b5b" + } + ], + "lang_error": { "displayName": ["ink", "LangError"], "type": 17 }, + "messages": [ + { + "args": [], + "default": false, + "docs": [" Returns the total token supply."], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 18 }, + "selector": "0xdb6375a8" + }, + { + "args": [{ "label": "owner", "type": { "displayName": ["H160"], "type": 4 } }], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 18 }, + "selector": "0x0f755a56" + }, + { + "args": [ + { "label": "owner", "type": { "displayName": ["H160"], "type": 4 } }, + { "label": "spender", "type": { "displayName": ["H160"], "type": 4 } } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 18 }, + "selector": "0x6a00165e" + }, + { + "args": [ + { "label": "to", "type": { "displayName": ["H160"], "type": 4 } }, + { "label": "value", "type": { "displayName": ["U256"], "type": 0 } } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 19 }, + "selector": "0x84a15da1" + }, + { + "args": [ + { "label": "spender", "type": { "displayName": ["H160"], "type": 4 } }, + { "label": "value", "type": { "displayName": ["U256"], "type": 0 } } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 19 }, + "selector": "0x681266a0" + }, + { + "args": [ + { "label": "from", "type": { "displayName": ["H160"], "type": 4 } }, + { "label": "to", "type": { "displayName": ["H160"], "type": 4 } }, + { "label": "value", "type": { "displayName": ["U256"], "type": 0 } } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { "displayName": ["ink", "MessageResult"], "type": 19 }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { "layout": { "leaf": { "key": "0x00000000", "ty": 0 } }, "name": "total_supply" }, + { + "layout": { + "root": { + "layout": { "leaf": { "key": "0xe7dc2326", "ty": 0 } }, + "root_key": "0xe7dc2326", + "ty": 3 + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { "leaf": { "key": "0xb721a0ec", "ty": 0 } }, + "root_key": "0xb721a0ec", + "ty": 11 + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000", + "ty": 15 + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { "composite": { "fields": [{ "type": 1, "typeName": "[u64; 4]" }] } }, + "path": ["primitive_types", "U256"] + } + }, + { "id": 1, "type": { "def": { "array": { "len": 4, "type": 2 } } } }, + { "id": 2, "type": { "def": { "primitive": "u64" } } }, + { + "id": 3, + "type": { + "def": { "composite": {} }, + "params": [ + { "name": "K", "type": 4 }, + { "name": "V", "type": 0 }, + { "name": "KeyType", "type": 7 } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 4, + "type": { + "def": { "composite": { "fields": [{ "type": 5, "typeName": "[u8; 20]" }] } }, + "path": ["primitive_types", "H160"] + } + }, + { "id": 5, "type": { "def": { "array": { "len": 20, "type": 6 } } } }, + { "id": 6, "type": { "def": { "primitive": "u8" } } }, + { + "id": 7, + "type": { + "def": { "composite": {} }, + "params": [ + { "name": "L", "type": 8 }, + { "name": "R", "type": 9 } + ], + "path": ["ink_storage_traits", "impls", "ResolverKey"] + } + }, + { + "id": 8, + "type": { "def": { "composite": {} }, "path": ["ink_storage_traits", "impls", "AutoKey"] } + }, + { + "id": 9, + "type": { + "def": { "composite": {} }, + "params": [{ "name": "ParentKey", "type": 10 }], + "path": ["ink_storage_traits", "impls", "ManualKey"] + } + }, + { "id": 10, "type": { "def": { "tuple": [] } } }, + { + "id": 11, + "type": { + "def": { "composite": {} }, + "params": [ + { "name": "K", "type": 12 }, + { "name": "V", "type": 0 }, + { "name": "KeyType", "type": 13 } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { "id": 12, "type": { "def": { "tuple": [4, 4] } } }, + { + "id": 13, + "type": { + "def": { "composite": {} }, + "params": [ + { "name": "L", "type": 8 }, + { "name": "R", "type": 14 } + ], + "path": ["ink_storage_traits", "impls", "ResolverKey"] + } + }, + { + "id": 14, + "type": { + "def": { "composite": {} }, + "params": [{ "name": "ParentKey", "type": 10 }], + "path": ["ink_storage_traits", "impls", "ManualKey"] + } + }, + { + "id": 15, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "total_supply", + "type": 0, + "typeName": ",>>::Type" + }, + { + "name": "balances", + "type": 3, + "typeName": " as::ink::storage::traits::AutoStorableHint<\n::ink::storage::traits::ManualKey<639884519u32, ()>,>>::Type" + }, + { + "name": "allowances", + "type": 11, + "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<3969917367u32,\n()>,>>::Type" + } + ] + } + }, + "path": ["erc20", "erc20", "Erc20"] + } + }, + { + "id": 16, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 10 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 17 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 10 }, + { "name": "E", "type": 17 } + ], + "path": ["Result"] + } + }, + { + "id": 17, + "type": { + "def": { "variant": { "variants": [{ "index": 1, "name": "CouldNotReadInput" }] } }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 18, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 0 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 17 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 0 }, + { "name": "E", "type": 17 } + ], + "path": ["Result"] + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 20 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 17 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 20 }, + { "name": "E", "type": 17 } + ], + "path": ["Result"] + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { "fields": [{ "type": 10 }], "index": 0, "name": "Ok" }, + { "fields": [{ "type": 21 }], "index": 1, "name": "Err" } + ] + } + }, + "params": [ + { "name": "T", "type": 10 }, + { "name": "E", "type": 21 } + ], + "path": ["Result"] + } + }, + { + "id": 21, + "type": { + "def": { + "variant": { + "variants": [ + { "index": 0, "name": "InsufficientBalance" }, + { "index": 1, "name": "InsufficientAllowance" } + ] + } + }, + "path": ["erc20", "erc20", "Error"] + } + }, + { + "id": 22, + "type": { + "def": { + "variant": { + "variants": [ + { "index": 0, "name": "None" }, + { "fields": [{ "type": 4 }], "index": 1, "name": "Some" } + ] + } + }, + "params": [{ "name": "T", "type": 4 }], + "path": ["Option"] + } + }, + { + "id": 23, + "type": { + "def": { "composite": { "fields": [{ "type": 24, "typeName": "[u8; 32]" }] } }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { "id": 24, "type": { "def": { "array": { "len": 32, "type": 6 } } } }, + { "id": 25, "type": { "def": { "primitive": "u128" } } }, + { + "id": 26, + "type": { + "def": { "composite": { "fields": [{ "type": 24, "typeName": "[u8; 32]" }] } }, + "path": ["ink_primitives", "types", "Hash"] + } + }, + { "id": 27, "type": { "def": { "primitive": "u32" } } }, + { + "id": 28, + "type": { "def": { "variant": {} }, "path": ["ink_primitives", "types", "NoChainExtension"] } + } + ], + "version": 6 +} diff --git a/.api-contract/src/test/contracts/ink/v6/erc20.json b/.api-contract/src/test/contracts/ink/v6/erc20.json new file mode 100644 index 00000000..3b07ad0a --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v6/erc20.json @@ -0,0 +1,931 @@ +{ + "source": { + "hash": "0x15fa048bd28a4649ced787f88707e271f48ff04a966f525b28877c08c60ea014", + "language": "ink! 6.0.0-alpha", + "compiler": "rustc 1.86.0", + "build_info": { + "build_mode": "Release", + "cargo_contract_version": "6.0.0-alpha.1", + "rust_toolchain": "stable-aarch64-apple-darwin" + } + }, + "contract": { + "name": "erc20", + "version": "6.0.0-alpha", + "authors": ["Use Ink "] + }, + "image": null, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "total_supply", + "type": { + "displayName": ["U256"], + "type": 0 + } + } + ], + "default": false, + "docs": ["Creates a new ERC-20 contract with the specified initial supply."], + "label": "new", + "payable": false, + "returnType": { + "displayName": ["ink_primitives", "ConstructorResult"], + "type": 16 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": ["AccountId"], + "type": 23 + }, + "balance": { + "displayName": ["Balance"], + "type": 25 + }, + "blockNumber": { + "displayName": ["BlockNumber"], + "type": 27 + }, + "chainExtension": { + "displayName": ["ChainExtension"], + "type": 28 + }, + "hash": { + "displayName": ["Hash"], + "type": 26 + }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { + "displayName": ["Timestamp"], + "type": 2 + } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": ["Option"], + "type": 22 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": ["Option"], + "type": 22 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": ["U256"], + "type": 0 + } + } + ], + "docs": ["Event emitted when a token transfer occurs."], + "label": "Transfer", + "module_path": "erc20::erc20", + "signature_topic": "0x1ecb48b1e08876a3b5a17f9ce1350cbc5e4f264b3162dbc757be9de4b15f1e83" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": ["H160"], + "type": 4 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": ["H160"], + "type": 4 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": ["U256"], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval", + "module_path": "erc20::erc20", + "signature_topic": "0xe4c2a1aef088c9f187a0e3f8016deaf4bdeb7954fb410c32bf8a6a033ecc3b5b" + } + ], + "lang_error": { + "displayName": ["ink", "LangError"], + "type": 17 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [" Returns the total token supply."], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 18 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["H160"], + "type": 4 + } + } + ], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 18 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": ["H160"], + "type": 4 + } + }, + { + "label": "spender", + "type": { + "displayName": ["H160"], + "type": 4 + } + } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 18 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": ["H160"], + "type": 4 + } + }, + { + "label": "value", + "type": { + "displayName": ["U256"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 19 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": ["H160"], + "type": 4 + } + }, + { + "label": "value", + "type": { + "displayName": ["U256"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 19 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": ["H160"], + "type": 4 + } + }, + { + "label": "to", + "type": { + "displayName": ["H160"], + "type": 4 + } + }, + { + "label": "value", + "type": { + "displayName": ["U256"], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": ["ink", "MessageResult"], + "type": 19 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xe7dc2326", + "ty": 0 + } + }, + "root_key": "0xe7dc2326", + "ty": 3 + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xb721a0ec", + "ty": 0 + } + }, + "root_key": "0xb721a0ec", + "ty": 11 + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000", + "ty": 15 + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u64; 4]" + } + ] + } + }, + "path": ["primitive_types", "U256"] + } + }, + { + "id": 1, + "type": { + "def": { + "array": { + "len": 4, + "type": 2 + } + } + } + }, + { + "id": 2, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 3, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 7 + } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 4, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 5, + "typeName": "[u8; 20]" + } + ] + } + }, + "path": ["primitive_types", "H160"] + } + }, + { + "id": 5, + "type": { + "def": { + "array": { + "len": 20, + "type": 6 + } + } + } + }, + { + "id": 6, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 7, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 8 + }, + { + "name": "R", + "type": 9 + } + ], + "path": ["ink_storage_traits", "impls", "ResolverKey"] + } + }, + { + "id": 8, + "type": { + "def": { + "composite": {} + }, + "path": ["ink_storage_traits", "impls", "AutoKey"] + } + }, + { + "id": 9, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 10 + } + ], + "path": ["ink_storage_traits", "impls", "ManualKey"] + } + }, + { + "id": 10, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 11, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 12 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 13 + } + ], + "path": ["ink_storage", "lazy", "mapping", "Mapping"] + } + }, + { + "id": 12, + "type": { + "def": { + "tuple": [4, 4] + } + } + }, + { + "id": 13, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 8 + }, + { + "name": "R", + "type": 14 + } + ], + "path": ["ink_storage_traits", "impls", "ResolverKey"] + } + }, + { + "id": 14, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 10 + } + ], + "path": ["ink_storage_traits", "impls", "ManualKey"] + } + }, + { + "id": 15, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "total_supply", + "type": 0, + "typeName": ",>>::Type" + }, + { + "name": "balances", + "type": 3, + "typeName": " as::ink::storage::traits::AutoStorableHint<\n::ink::storage::traits::ManualKey<639884519u32, ()>,>>::Type" + }, + { + "name": "allowances", + "type": 11, + "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<3969917367u32,\n()>,>>::Type" + } + ] + } + }, + "path": ["erc20", "erc20", "Erc20"] + } + }, + { + "id": 16, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 10 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 17 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 10 + }, + { + "name": "E", + "type": 17 + } + ], + "path": ["Result"] + } + }, + { + "id": 17, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": ["ink_primitives", "LangError"] + } + }, + { + "id": 18, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 17 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 17 + } + ], + "path": ["Result"] + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 20 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 17 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 20 + }, + { + "name": "E", + "type": 17 + } + ], + "path": ["Result"] + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 10 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 21 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 10 + }, + { + "name": "E", + "type": 21 + } + ], + "path": ["Result"] + } + }, + { + "id": 21, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": ["erc20", "erc20", "Error"] + } + }, + { + "id": 22, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 4 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 4 + } + ], + "path": ["Option"] + } + }, + { + "id": 23, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 24, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "AccountId"] + } + }, + { + "id": 24, + "type": { + "def": { + "array": { + "len": 32, + "type": 6 + } + } + } + }, + { + "id": 25, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 26, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 24, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": ["ink_primitives", "types", "Hash"] + } + }, + { + "id": 27, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 28, + "type": { + "def": { + "variant": {} + }, + "path": ["ink_primitives", "types", "NoChainExtension"] + } + } + ], + "version": 6 +} diff --git a/.api-contract/src/test/contracts/ink/v6/erc20.polkavm b/.api-contract/src/test/contracts/ink/v6/erc20.polkavm new file mode 100644 index 0000000000000000000000000000000000000000..64886b65146198d57f144142ffad192cda8f7509 GIT binary patch literal 9445 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 AxBvhE literal 0 HcmV?d00001 diff --git a/.api-contract/src/test/contracts/ink/v6/index.ts b/.api-contract/src/test/contracts/ink/v6/index.ts new file mode 100644 index 00000000..75063f5c --- /dev/null +++ b/.api-contract/src/test/contracts/ink/v6/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @polkadot/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; diff --git a/src/ui/hooks/useMetadata.ts b/src/ui/hooks/useMetadata.ts index 07ccdbb9..d00b120d 100644 --- a/src/ui/hooks/useMetadata.ts +++ b/src/ui/hooks/useMetadata.ts @@ -34,8 +34,9 @@ function deriveFromJson( let value: Abi | undefined = undefined; try { + console.log('to validate'); value = new Abi(source, api?.registry.getChainProperties()); - + console.log(value); const name = options.name || value.info.contract.name.toString(); return { @@ -67,6 +68,7 @@ const EMPTY: MetadataState = { }; function validate(metadata: Abi | undefined, { isWasmRequired }: Options): Validation { + console.log('Validating metadata', metadata); if (!metadata) { return { isValid: false, @@ -75,6 +77,7 @@ function validate(metadata: Abi | undefined, { isWasmRequired }: Options): Valid 'Invalid contract file format. Please upload the generated .contract bundle for your smart contract.', }; } + console.log('Metadata value'); return { isValid: true, @@ -91,7 +94,7 @@ export function useMetadata( options: Options & Callbacks = {}, ): UseMetadata { const { api } = useApi(); - + console.log(' use metadaata aqui'); const { isWasmRequired = false, revertOnFileRemove = false, ...callbacks } = options; const [state, setState] = useState(() => deriveFromJson({ isWasmRequired }, initialValue, api), @@ -99,6 +102,7 @@ export function useMetadata( function onChange(file: FileState): void { try { + console.log(' on change'); const json = JSON.parse(utf8decoder.decode(file.data)) as Record; const name = file.name.replace('.contract', '').replace('.json', '').replace('_', ' '); @@ -108,6 +112,7 @@ export function useMetadata( callbacks.onChange && callbacks.onChange(file, json); } catch (error) { + console.log('aqui'); console.error(error); setState({ diff --git a/yarn.lock b/yarn.lock index 7421a797..86dc1e1f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -29,209 +29,207 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.26.2": - version: 7.26.2 - resolution: "@babel/code-frame@npm:7.26.2" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/code-frame@npm:7.27.1" dependencies: - "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.27.1" js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10/db2c2122af79d31ca916755331bb4bac96feb2b334cdaca5097a6b467fdd41963b89b14b6836a14f083de7ff887fc78fa1b3c10b14e743d33e12dbfe5ee3d223 + picocolors: "npm:^1.1.1" + checksum: 10/721b8a6e360a1fa0f1c9fe7351ae6c874828e119183688b533c477aa378f1010f37cc9afbfc4722c686d1f5cdd00da02eab4ba7278a0c504fa0d7a321dcd4fdf languageName: node linkType: hard -"@babel/compat-data@npm:^7.26.8": - version: 7.26.8 - resolution: "@babel/compat-data@npm:7.26.8" - checksum: 10/bdddf577f670e0e12996ef37e134856c8061032edb71a13418c3d4dae8135da28910b7cd6dec6e668ab3a41e42089ef7ee9c54ef52fe0860b54cb420b0d14948 +"@babel/compat-data@npm:^7.27.2": + version: 7.27.3 + resolution: "@babel/compat-data@npm:7.27.3" + checksum: 10/3bc4f53f2c076468c1df405e3fb3aac60a8118f46ff4ea8d093e00dcf919e915adc68d9c0a46fffe9cdc5b0d41fefe3b44370d43da09bbd7c9e5474d2cd4c656 languageName: node linkType: hard "@babel/core@npm:^7.23.9, @babel/core@npm:^7.26.10, @babel/core@npm:^7.7.5": - version: 7.26.10 - resolution: "@babel/core@npm:7.26.10" + version: 7.27.3 + resolution: "@babel/core@npm:7.27.3" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.26.2" - "@babel/generator": "npm:^7.26.10" - "@babel/helper-compilation-targets": "npm:^7.26.5" - "@babel/helper-module-transforms": "npm:^7.26.0" - "@babel/helpers": "npm:^7.26.10" - "@babel/parser": "npm:^7.26.10" - "@babel/template": "npm:^7.26.9" - "@babel/traverse": "npm:^7.26.10" - "@babel/types": "npm:^7.26.10" + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.27.3" + "@babel/helper-compilation-targets": "npm:^7.27.2" + "@babel/helper-module-transforms": "npm:^7.27.3" + "@babel/helpers": "npm:^7.27.3" + "@babel/parser": "npm:^7.27.3" + "@babel/template": "npm:^7.27.2" + "@babel/traverse": "npm:^7.27.3" + "@babel/types": "npm:^7.27.3" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10/68f6707eebd6bb8beed7ceccf5153e35b86c323e40d11d796d75c626ac8f1cc4e1f795584c5ab5f886bc64150c22d5088123d68c069c63f29984c4fc054d1dab + checksum: 10/c0cf72f01c9913b10e974e548e46359563cae849e914211df951bbfc90ceac75c609156f20faa2db784308dc413ba64e2c0b94f9173e7e1e92a75053aab1e1bb languageName: node linkType: hard -"@babel/generator@npm:^7.26.10, @babel/generator@npm:^7.27.0": - version: 7.27.0 - resolution: "@babel/generator@npm:7.27.0" +"@babel/generator@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/generator@npm:7.27.3" dependencies: - "@babel/parser": "npm:^7.27.0" - "@babel/types": "npm:^7.27.0" + "@babel/parser": "npm:^7.27.3" + "@babel/types": "npm:^7.27.3" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^3.0.2" - checksum: 10/5447c402b1d841132534a0a9715e89f4f28b6f2886a23e70aaa442150dba4a1e29e4e2351814f439ee1775294dccdef9ab0a4192b6e6a5ad44e24233b3611da2 + checksum: 10/3b8477ae0c305639f86aeb553115535b103626008945462d32171fa4ebd77f2a0345600dc5baee7ced98d54cc7da9c806808a04b555c75136f42e0e9d7794bdf languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.26.5": - version: 7.27.0 - resolution: "@babel/helper-compilation-targets@npm:7.27.0" +"@babel/helper-compilation-targets@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/helper-compilation-targets@npm:7.27.2" dependencies: - "@babel/compat-data": "npm:^7.26.8" - "@babel/helper-validator-option": "npm:^7.25.9" + "@babel/compat-data": "npm:^7.27.2" + "@babel/helper-validator-option": "npm:^7.27.1" browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10/32224b512e813fc808539b4ca7fca8c224849487c365abcef8cb8b0eea635c65375b81429f82d076e9ec1f3f3b3db1d0d56aac4d482a413f58d5ad608f912155 + checksum: 10/bd53c30a7477049db04b655d11f4c3500aea3bcbc2497cf02161de2ecf994fec7c098aabbcebe210ffabc2ecbdb1e3ffad23fb4d3f18723b814f423ea1749fe8 languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-module-imports@npm:7.25.9" +"@babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-imports@npm:7.27.1" dependencies: - "@babel/traverse": "npm:^7.25.9" - "@babel/types": "npm:^7.25.9" - checksum: 10/e090be5dee94dda6cd769972231b21ddfae988acd76b703a480ac0c96f3334557d70a965bf41245d6ee43891e7571a8b400ccf2b2be5803351375d0f4e5bcf08 + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10/58e792ea5d4ae71676e0d03d9fef33e886a09602addc3bd01388a98d87df9fcfd192968feb40ac4aedb7e287ec3d0c17b33e3ecefe002592041a91d8a1998a8d languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.26.0": - version: 7.26.0 - resolution: "@babel/helper-module-transforms@npm:7.26.0" +"@babel/helper-module-transforms@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/helper-module-transforms@npm:7.27.3" dependencies: - "@babel/helper-module-imports": "npm:^7.25.9" - "@babel/helper-validator-identifier": "npm:^7.25.9" - "@babel/traverse": "npm:^7.25.9" + "@babel/helper-module-imports": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.3" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10/9841d2a62f61ad52b66a72d08264f23052d533afc4ce07aec2a6202adac0bfe43014c312f94feacb3291f4c5aafe681955610041ece2c276271adce3f570f2f5 + checksum: 10/47abc90ceb181b4bdea9bf1717adf536d1b5e5acb6f6d8a7a4524080318b5ca8a99e6d58677268c596bad71077d1d98834d2c3815f2443e6d3f287962300f15d languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.25.9": - version: 7.26.5 - resolution: "@babel/helper-plugin-utils@npm:7.26.5" - checksum: 10/1cc0fd8514da3bb249bed6c27227696ab5e84289749d7258098701cffc0c599b7f61ec40dd332f8613030564b79899d9826813c96f966330bcfc7145a8377857 +"@babel/helper-plugin-utils@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-plugin-utils@npm:7.27.1" + checksum: 10/96136c2428888e620e2ec493c25888f9ceb4a21099dcf3dd4508ea64b58cdedbd5a9fb6c7b352546de84d6c24edafe482318646932a22c449ebd16d16c22d864 languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-string-parser@npm:7.25.9" - checksum: 10/c28656c52bd48e8c1d9f3e8e68ecafd09d949c57755b0d353739eb4eae7ba4f7e67e92e4036f1cd43378cc1397a2c943ed7bcaf5949b04ab48607def0258b775 +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 10/0ae29cc2005084abdae2966afdb86ed14d41c9c37db02c3693d5022fba9f5d59b011d039380b8e537c34daf117c549f52b452398f576e908fb9db3c7abbb3a00 languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-validator-identifier@npm:7.25.9" - checksum: 10/3f9b649be0c2fd457fa1957b694b4e69532a668866b8a0d81eabfa34ba16dbf3107b39e0e7144c55c3c652bf773ec816af8df4a61273a2bb4eb3145ca9cf478e +"@babel/helper-validator-identifier@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-identifier@npm:7.27.1" + checksum: 10/75041904d21bdc0cd3b07a8ac90b11d64cd3c881e89cb936fa80edd734bf23c35e6bd1312611e8574c4eab1f3af0f63e8a5894f4699e9cfdf70c06fcf4252320 languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/helper-validator-option@npm:7.25.9" - checksum: 10/9491b2755948ebbdd68f87da907283698e663b5af2d2b1b02a2765761974b1120d5d8d49e9175b167f16f72748ffceec8c9cf62acfbee73f4904507b246e2b3d +"@babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: 10/db73e6a308092531c629ee5de7f0d04390835b21a263be2644276cb27da2384b64676cab9f22cd8d8dbd854c92b1d7d56fc8517cf0070c35d1c14a8c828b0903 languageName: node linkType: hard -"@babel/helpers@npm:^7.26.10": - version: 7.27.0 - resolution: "@babel/helpers@npm:7.27.0" +"@babel/helpers@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/helpers@npm:7.27.3" dependencies: - "@babel/template": "npm:^7.27.0" - "@babel/types": "npm:^7.27.0" - checksum: 10/0dd40ba1e5ba4b72d1763bb381384585a56f21a61a19dc1b9a03381fe8e840207fdaa4da645d14dc028ad768087d41aad46347cc6573bd69d82f597f5a12dc6f + "@babel/template": "npm:^7.27.2" + "@babel/types": "npm:^7.27.3" + checksum: 10/534e6bd68d96a7e548aeab7a4cf8003d7cffc0202448e47242095692e243d08fcf89b6f4b9ea369b4fc29a4247b443da9fa29f43de4b71639b3687c1c8f534d2 languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.26.10, @babel/parser@npm:^7.27.0": - version: 7.27.0 - resolution: "@babel/parser@npm:7.27.0" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.27.2, @babel/parser@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/parser@npm:7.27.3" dependencies: - "@babel/types": "npm:^7.27.0" + "@babel/types": "npm:^7.27.3" bin: parser: ./bin/babel-parser.js - checksum: 10/0fee9f05c6db753882ca9d10958301493443da9f6986d7020ebd7a696b35886240016899bc0b47d871aea2abcafd64632343719742e87432c8145e0ec2af2a03 + checksum: 10/ea5a0cd55e18f905d4c732b009ca0f66b0e5580f0d2af82643c26ef0909a16704778f59b7a2959096e9cf881b6291da747bfd29e400422e04d9074eb1f80983e languageName: node linkType: hard "@babel/plugin-transform-react-jsx-self@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.25.9" + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/41c833cd7f91b1432710f91b1325706e57979b2e8da44e83d86312c78bbe96cd9ef778b4e79e4e17ab25fa32c72b909f2be7f28e876779ede28e27506c41f4ae + checksum: 10/72cbae66a58c6c36f7e12e8ed79f292192d858dd4bb00e9e89d8b695e4c5cb6ef48eec84bffff421a5db93fd10412c581f1cccdb00264065df76f121995bdb68 languageName: node linkType: hard "@babel/plugin-transform-react-jsx-source@npm:^7.25.9": - version: 7.25.9 - resolution: "@babel/plugin-transform-react-jsx-source@npm:7.25.9" + version: 7.27.1 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.27.1" dependencies: - "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.27.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10/a3e0e5672e344e9d01fb20b504fe29a84918eaa70cec512c4d4b1b035f72803261257343d8e93673365b72c371f35cf34bb0d129720bf178a4c87812c8b9c662 + checksum: 10/e2843362adb53692be5ee9fa07a386d2d8883daad2063a3575b3c373fc14cdf4ea7978c67a183cb631b4c9c8d77b2f48c24c088f8e65cc3600cb8e97d72a7161 languageName: node linkType: hard "@babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.7": - version: 7.27.0 - resolution: "@babel/runtime@npm:7.27.0" - dependencies: - regenerator-runtime: "npm:^0.14.0" - checksum: 10/e6966e03b695feb4c0ac0856a4355231c2580bf9ebd0298f47739f85c0ea658679dd84409daf26378d42c86c1cbe7e33feab709b14e784254b6c441d91606465 + version: 7.27.3 + resolution: "@babel/runtime@npm:7.27.3" + checksum: 10/c1975b37bfc3f24a32c0beb4999d4302a33a70d0599fb3d42a9baf836fcd615de7ae36eff2fbbc7451c892d3dcc9314a90c3f1f3b337f5617f6c5b826d2dbd54 languageName: node linkType: hard -"@babel/template@npm:^7.26.9, @babel/template@npm:^7.27.0": - version: 7.27.0 - resolution: "@babel/template@npm:7.27.0" +"@babel/template@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/template@npm:7.27.2" dependencies: - "@babel/code-frame": "npm:^7.26.2" - "@babel/parser": "npm:^7.27.0" - "@babel/types": "npm:^7.27.0" - checksum: 10/7159ca1daea287ad34676d45a7146675444d42c7664aca3e617abc9b1d9548c8f377f35a36bb34cf956e1d3610dcb7acfcfe890aebf81880d35f91a7bd273ee5 + "@babel/code-frame": "npm:^7.27.1" + "@babel/parser": "npm:^7.27.2" + "@babel/types": "npm:^7.27.1" + checksum: 10/fed15a84beb0b9340e5f81566600dbee5eccd92e4b9cc42a944359b1aa1082373391d9d5fc3656981dff27233ec935d0bc96453cf507f60a4b079463999244d8 languageName: node linkType: hard -"@babel/traverse@npm:^7.25.9, @babel/traverse@npm:^7.26.10": - version: 7.27.0 - resolution: "@babel/traverse@npm:7.27.0" +"@babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/traverse@npm:7.27.3" dependencies: - "@babel/code-frame": "npm:^7.26.2" - "@babel/generator": "npm:^7.27.0" - "@babel/parser": "npm:^7.27.0" - "@babel/template": "npm:^7.27.0" - "@babel/types": "npm:^7.27.0" + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.27.3" + "@babel/parser": "npm:^7.27.3" + "@babel/template": "npm:^7.27.2" + "@babel/types": "npm:^7.27.3" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10/b0675bc16bd87187e8b090557b0650135de56a621692ad8614b20f32621350ae0fc2e1129b73b780d64a9ed4beab46849a17f90d5267b6ae6ce09ec8412a12c7 + checksum: 10/caccdb8335705847d34123ee76d70c3fb575f8c8b3de83ff1560c5d3229269fd4721510b7b63564a122995eb844f651313cad57b85d45023a0f50f848bf23c55 languageName: node linkType: hard -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.0": - version: 7.27.0 - resolution: "@babel/types@npm:7.27.0" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/types@npm:7.27.3" dependencies: - "@babel/helper-string-parser": "npm:^7.25.9" - "@babel/helper-validator-identifier": "npm:^7.25.9" - checksum: 10/2c322bce107c8a534dc4a23be60d570e6a4cc7ca2e44d4f0eee08c0b626104eb7e60ab8de03463bc5da1773a2f69f1e6edec1648d648d65461d6520a7f3b0770 + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + checksum: 10/a24e6accd85c4747b974b3d68a3210d0aa1180c1a77b287ffcb7401cd2edad7bdecadaeb40fe5191be3990c3a5252943f7de7c09da13ed269adbb054b97056ee languageName: node linkType: hard @@ -252,8 +250,8 @@ __metadata: linkType: hard "@cypress/code-coverage@npm:^3.12.20": - version: 3.14.0 - resolution: "@cypress/code-coverage@npm:3.14.0" + version: 3.14.3 + resolution: "@cypress/code-coverage@npm:3.14.3" dependencies: "@cypress/webpack-preprocessor": "npm:^6.0.0" chalk: "npm:4.1.2" @@ -267,10 +265,10 @@ __metadata: peerDependencies: "@babel/core": ^7.0.1 "@babel/preset-env": ^7.0.0 - babel-loader: ^8.3 || ^9 + babel-loader: ^8.3 || ^9 || ^10 cypress: "*" webpack: ^4 || ^5 - checksum: 10/03caa53eb460c6507130d4d794b8cfe2c4112398e1893a27cdfef97bdd04808efa7ac6573053e97ee12384e8c3a654f01739c89d500d2d1ed09e6f65c7dc7087 + checksum: 10/8dc34febf93f32ad314a8b58eeaaead28c146a4948135c34cd3cb0dc5f5e702feff1b94e006be26d759430731a878e420ad8b776397d6ec8b83b5512a528bd97 languageName: node linkType: hard @@ -343,7 +341,7 @@ __metadata: languageName: node linkType: hard -"@emnapi/core@npm:^1.4.0": +"@emnapi/core@npm:^1.4.3": version: 1.4.3 resolution: "@emnapi/core@npm:1.4.3" dependencies: @@ -353,7 +351,7 @@ __metadata: languageName: node linkType: hard -"@emnapi/runtime@npm:^1.4.0": +"@emnapi/runtime@npm:^1.4.3": version: 1.4.3 resolution: "@emnapi/runtime@npm:1.4.3" dependencies: @@ -658,14 +656,14 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.6.1 - resolution: "@eslint-community/eslint-utils@npm:4.6.1" +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.7.0": + version: 4.7.0 + resolution: "@eslint-community/eslint-utils@npm:4.7.0" dependencies: eslint-visitor-keys: "npm:^3.4.3" peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10/9f1a91bddf0a68b2b8bb71b3390d0e665e842770ff4a0188d38199e8a66ac050608da14eb614d211535ed312633d9dc237bd297857bf0e78abac927029909e50 + checksum: 10/43ed5d391526d9f5bbe452aef336389a473026fca92057cf97c576db11401ce9bcf8ef0bf72625bbaf6207ed8ba6bf0dcf4d7e809c24f08faa68a28533c491a7 languageName: node linkType: hard @@ -687,28 +685,19 @@ __metadata: languageName: node linkType: hard -"@eslint/config-helpers@npm:^0.2.0": - version: 0.2.1 - resolution: "@eslint/config-helpers@npm:0.2.1" - checksum: 10/7627d01a654c61a71387edd235e663fea50a23f0f521a174b77d94e3d1f6834a5da9205a101ffbe4ee5cf6fab1f384693c7b47080f059debdf338dd9b590aadf - languageName: node - linkType: hard - -"@eslint/core@npm:^0.12.0": - version: 0.12.0 - resolution: "@eslint/core@npm:0.12.0" - dependencies: - "@types/json-schema": "npm:^7.0.15" - checksum: 10/ee8a2c65ee49af727e167b180a8672739e468ad0b1b9ac52558e61bb120f1a93af23f9e723e0e58f273adfe30ccd98167b59598c7be07440489fa38f669b59ae +"@eslint/config-helpers@npm:^0.2.1": + version: 0.2.2 + resolution: "@eslint/config-helpers@npm:0.2.2" + checksum: 10/55dbb0b8d63c4cb28fa2a5fd5f16c785f6bd87eb0f50d2f42ec3f7d06b5c6201e2e170846a4360ca00105578b034fba132ed54e4ee3215be240c4a43e7839189 languageName: node linkType: hard -"@eslint/core@npm:^0.13.0": - version: 0.13.0 - resolution: "@eslint/core@npm:0.13.0" +"@eslint/core@npm:^0.14.0": + version: 0.14.0 + resolution: "@eslint/core@npm:0.14.0" dependencies: "@types/json-schema": "npm:^7.0.15" - checksum: 10/737fd1c237405b62592e8daa4b7e25b45ab22108bfec65258cabd091d5717b7c9573acea1f27c4ee7198cefc5a0874f5caefe3d9636851227b1f12d28ef52cf2 + checksum: 10/d9b060cf97468150675ddf4fb3db55edaa32467e0adf9f80919a5bfd15d0835ad7765456f4397ec2d16b0a1bb702af63f6d4712f94194d34fea118231ae1e2db languageName: node linkType: hard @@ -729,10 +718,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:9.24.0": - version: 9.24.0 - resolution: "@eslint/js@npm:9.24.0" - checksum: 10/d210114c147a1c1ebfaed5f32734e7c1f8ef551a5ea48ea67f9469668aa4079565ccd038412437bca87515d51dc9e8b8c788473dcf3d08e35dfb27e92cb3ce1b +"@eslint/js@npm:9.27.0": + version: 9.27.0 + resolution: "@eslint/js@npm:9.27.0" + checksum: 10/cdbe380fd31bb325b9ec65ae310fb92a57efb796d3cc5d8bc9dafef447d634c64e497bedade6a49e0cf44a5b14560ab6ac9ed9da5a38e2415b31ae01ae5b758e languageName: node linkType: hard @@ -743,32 +732,32 @@ __metadata: languageName: node linkType: hard -"@eslint/plugin-kit@npm:^0.2.7": - version: 0.2.8 - resolution: "@eslint/plugin-kit@npm:0.2.8" +"@eslint/plugin-kit@npm:^0.3.1": + version: 0.3.1 + resolution: "@eslint/plugin-kit@npm:0.3.1" dependencies: - "@eslint/core": "npm:^0.13.0" + "@eslint/core": "npm:^0.14.0" levn: "npm:^0.4.1" - checksum: 10/2e7fe7a88ebdbbf805e9e7265347b7dcfb6bf50beec314def997572b2e8ae4a7b9504fb67b1698a70c348a0dd87251d1e9028292a96fd49b58cb5277d88bdea7 + checksum: 10/ab0c4cecadc6c38c7ae5f71b9831d3521d08237444d8f327751d1133a4369ccd42093a1c06b26fd6c311015807a27d95a0184a761d1cdd264b090896dcf0addb languageName: node linkType: hard -"@floating-ui/core@npm:^1.6.0": - version: 1.6.9 - resolution: "@floating-ui/core@npm:1.6.9" +"@floating-ui/core@npm:^1.7.0": + version: 1.7.0 + resolution: "@floating-ui/core@npm:1.7.0" dependencies: "@floating-ui/utils": "npm:^0.2.9" - checksum: 10/656fcd383da17fffca2efa0635cbe3c0b835c3312949e30bd19d05bf42479f2ac22aaf336a6a31cb160621fc6f35cfc9e115e76c5cf48ba96e33474d123ced22 + checksum: 10/b047b9b5e18d9c2b737aa1cd0aadd138da15e6ca4ba35cc8b41eff280a66f84c749739234d782e8f250de0d6d5afed4b1d06ed9bf2635e0743aa9868d32fe94a languageName: node linkType: hard "@floating-ui/dom@npm:^1.0.1, @floating-ui/dom@npm:^1.6.1": - version: 1.6.13 - resolution: "@floating-ui/dom@npm:1.6.13" + version: 1.7.0 + resolution: "@floating-ui/dom@npm:1.7.0" dependencies: - "@floating-ui/core": "npm:^1.6.0" + "@floating-ui/core": "npm:^1.7.0" "@floating-ui/utils": "npm:^0.2.9" - checksum: 10/4bb732baf3270007741bcdc91be1de767b2bb5d8b891eb838e5f1e7c4cccad998643dbdd4e8b8cec4c5d12c9898f80febc68e9793dd6e26a445283c4fb1b6a78 + checksum: 10/9c3561981ea389fe39b7095d7a3771fd906580eedc43fda0eb554faa5f2f9756169fef1824d66198314a41c7f8d63e56bc7f5b24fc528471c9e6bc43cafa6a00 languageName: node linkType: hard @@ -833,9 +822,9 @@ __metadata: linkType: hard "@humanwhocodes/retry@npm:^0.4.2": - version: 0.4.2 - resolution: "@humanwhocodes/retry@npm:0.4.2" - checksum: 10/8910c4cdf8d46ce406e6f0cb4407ff6cfef70b15039bd5713cc059f32e02fe5119d833cfe2ebc5f522eae42fdd453b6d88f3fa7a1d8c4275aaad6eb3d3e9b117 + version: 0.4.3 + resolution: "@humanwhocodes/retry@npm:0.4.3" + checksum: 10/0b32cfd362bea7a30fbf80bb38dcaf77fee9c2cae477ee80b460871d03590110ac9c77d654f04ec5beaf71b6f6a89851bdf6c1e34ccdf2f686bd86fcd97d9e61 languageName: node linkType: hard @@ -945,14 +934,14 @@ __metadata: languageName: node linkType: hard -"@napi-rs/wasm-runtime@npm:^0.2.8": - version: 0.2.9 - resolution: "@napi-rs/wasm-runtime@npm:0.2.9" +"@napi-rs/wasm-runtime@npm:^0.2.9": + version: 0.2.10 + resolution: "@napi-rs/wasm-runtime@npm:0.2.10" dependencies: - "@emnapi/core": "npm:^1.4.0" - "@emnapi/runtime": "npm:^1.4.0" + "@emnapi/core": "npm:^1.4.3" + "@emnapi/runtime": "npm:^1.4.3" "@tybys/wasm-util": "npm:^0.9.0" - checksum: 10/8ebc7d85e11e1b8d71908d5615ff24b27ef7af8287d087fb5cff5a3e545915c7545998d976a9cd6a4315dab4ba0f609439fbe6408fec3afebd288efb0dbdc135 + checksum: 10/1e4cf77891390825b1756eb5e302035b80c9dd21959417c4e4ed063eacfb6df9f42dfc001bf0fa9c9dbd0a7374342502feaa0a59103e7ea9aa5b318732280a49 languageName: node linkType: hard @@ -966,11 +955,11 @@ __metadata: linkType: hard "@noble/curves@npm:^1.3.0": - version: 1.8.2 - resolution: "@noble/curves@npm:1.8.2" + version: 1.9.1 + resolution: "@noble/curves@npm:1.9.1" dependencies: - "@noble/hashes": "npm:1.7.2" - checksum: 10/540e7b7a8fe92ecd5cef846f84d07180662eb7fd7d8e9172b8960c31827e74f148fe4630da962138a6be093ae9f8992d14ab23d3682a2cc32be839aa57c03a46 + "@noble/hashes": "npm:1.8.0" + checksum: 10/5c82ec828ca4a4218b1666ba0ddffde17afd224d0bd5e07b64c2a0c83a3362483387f55c11cfd8db0fc046605394fe4e2c67fe024628a713e864acb541a7d2bb languageName: node linkType: hard @@ -981,10 +970,10 @@ __metadata: languageName: node linkType: hard -"@noble/hashes@npm:1.7.2, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.3": - version: 1.7.2 - resolution: "@noble/hashes@npm:1.7.2" - checksum: 10/b5af9e4b91543dcc46a811b5b2c57bfdeb41728361979a19d6110a743e2cb0459872553f68d3a46326d21959964db2776b8c8b4db85ac1d9f63ebcaddf7d59b6 +"@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.3.1, @noble/hashes@npm:^1.3.3": + version: 1.8.0 + resolution: "@noble/hashes@npm:1.8.0" + checksum: 10/474b7f56bc6fb2d5b3a42132561e221b0ea4f91e590f4655312ca13667840896b34195e2b53b7f097ec080a1fdd3b58d902c2a8d0fbdf51d2e238b53808a177e languageName: node linkType: hard @@ -1118,6 +1107,21 @@ __metadata: languageName: node linkType: hard +"@polkadot/api-augment@npm:15.10.2": + version: 15.10.2 + resolution: "@polkadot/api-augment@npm:15.10.2" + dependencies: + "@polkadot/api-base": "npm:15.10.2" + "@polkadot/rpc-augment": "npm:15.10.2" + "@polkadot/types": "npm:15.10.2" + "@polkadot/types-augment": "npm:15.10.2" + "@polkadot/types-codec": "npm:15.10.2" + "@polkadot/util": "npm:^13.4.4" + tslib: "npm:^2.8.1" + checksum: 10/ad8e90f29e911a3c1b444586459c63bf3e1422a34f00e6bb426d94931f5a1ca4cdbb1e3962b891a5e5ea4d5172d744223736ad6fcc629163dd24b823bebb1eb2 + languageName: node + linkType: hard + "@polkadot/api-augment@npm:15.8.1": version: 15.8.1 resolution: "@polkadot/api-augment@npm:15.8.1" @@ -1133,18 +1137,16 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-augment@npm:15.9.2": - version: 15.9.2 - resolution: "@polkadot/api-augment@npm:15.9.2" +"@polkadot/api-base@npm:15.10.2": + version: 15.10.2 + resolution: "@polkadot/api-base@npm:15.10.2" dependencies: - "@polkadot/api-base": "npm:15.9.2" - "@polkadot/rpc-augment": "npm:15.9.2" - "@polkadot/types": "npm:15.9.2" - "@polkadot/types-augment": "npm:15.9.2" - "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/rpc-core": "npm:15.10.2" + "@polkadot/types": "npm:15.10.2" "@polkadot/util": "npm:^13.4.4" + rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/3cb17e531c95e4be1ef4271389ad2ccc1287b497bc11ed3d900f226fde8a6f811d73e9fc222a1e2a53de79d43f9ade4a42002ec28662f8ab7e7409b49757d6ec + checksum: 10/193b8144cf1c85201d5f259cf830263051c6bc345af19948e3450d3ab695fe9537d368360e3302daa7fcf5de13d46e6fa07a6b8a27964aeb172d994b42a83bab languageName: node linkType: hard @@ -1161,22 +1163,9 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-base@npm:15.9.2": - version: 15.9.2 - resolution: "@polkadot/api-base@npm:15.9.2" - dependencies: - "@polkadot/rpc-core": "npm:15.9.2" - "@polkadot/types": "npm:15.9.2" - "@polkadot/util": "npm:^13.4.4" - rxjs: "npm:^7.8.1" - tslib: "npm:^2.8.1" - checksum: 10/4a3aa7e58f98a5d96ed7d9ac22113cd362f6a4b35054083750328f1d966bb047fd13afa6cbb5747021451e0e2615a0ace8567b0c00d4e852daf14513281ca823 - languageName: node - linkType: hard - "@polkadot/api-contract@file:./.api-contract/build::locator=contracts-ui%40workspace%3A.": version: 15.8.1 - resolution: "@polkadot/api-contract@file:./.api-contract/build#./.api-contract/build::hash=8c6dc7&locator=contracts-ui%40workspace%3A." + resolution: "@polkadot/api-contract@file:./.api-contract/build#./.api-contract/build::hash=6ef915&locator=contracts-ui%40workspace%3A." dependencies: "@polkadot/api": "npm:15.8.1" "@polkadot/api-augment": "npm:15.8.1" @@ -1187,7 +1176,25 @@ __metadata: "@polkadot/util-crypto": "npm:^13.4.3" rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/4e70ca2c1de8f82ead5d2846ae0d86008de85a8d02df9d6106ce2a4b74e57020083893fe10160400f6e5841a85fd9df7bd73afe7b45604300c006398d4cd5af5 + checksum: 10/66676ea96baabe7c50e95ea107d16016ae472be791c1d4a01cf3e369a91764eba70ecfbe4380bb4acdfde51c2723f927143eed12079c0bb34e4a7abd4577f5ec + languageName: node + linkType: hard + +"@polkadot/api-derive@npm:15.10.2": + version: 15.10.2 + resolution: "@polkadot/api-derive@npm:15.10.2" + dependencies: + "@polkadot/api": "npm:15.10.2" + "@polkadot/api-augment": "npm:15.10.2" + "@polkadot/api-base": "npm:15.10.2" + "@polkadot/rpc-core": "npm:15.10.2" + "@polkadot/types": "npm:15.10.2" + "@polkadot/types-codec": "npm:15.10.2" + "@polkadot/util": "npm:^13.4.4" + "@polkadot/util-crypto": "npm:^13.4.4" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/50baf795bdd1f1f7281118eb80edcdf888040780555eefc1cd2841ac3f7e919459771e5ba6a2cc4bfa798a95391f722e6c44a66c828a917244284662e0e4f541 languageName: node linkType: hard @@ -1209,21 +1216,28 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-derive@npm:15.9.2": - version: 15.9.2 - resolution: "@polkadot/api-derive@npm:15.9.2" +"@polkadot/api@npm:15.10.2, @polkadot/api@npm:^15.10.2": + version: 15.10.2 + resolution: "@polkadot/api@npm:15.10.2" dependencies: - "@polkadot/api": "npm:15.9.2" - "@polkadot/api-augment": "npm:15.9.2" - "@polkadot/api-base": "npm:15.9.2" - "@polkadot/rpc-core": "npm:15.9.2" - "@polkadot/types": "npm:15.9.2" - "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/api-augment": "npm:15.10.2" + "@polkadot/api-base": "npm:15.10.2" + "@polkadot/api-derive": "npm:15.10.2" + "@polkadot/keyring": "npm:^13.4.4" + "@polkadot/rpc-augment": "npm:15.10.2" + "@polkadot/rpc-core": "npm:15.10.2" + "@polkadot/rpc-provider": "npm:15.10.2" + "@polkadot/types": "npm:15.10.2" + "@polkadot/types-augment": "npm:15.10.2" + "@polkadot/types-codec": "npm:15.10.2" + "@polkadot/types-create": "npm:15.10.2" + "@polkadot/types-known": "npm:15.10.2" "@polkadot/util": "npm:^13.4.4" "@polkadot/util-crypto": "npm:^13.4.4" + eventemitter3: "npm:^5.0.1" rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/2c86b4c4a00967d6071ff9705e6805e1d65c851fd3b82a7e27416ac5547f07cece7da36c955ecfce3f599484aef13309870398d1596c5d9e720c5160843af8f8 + checksum: 10/aba113aa85bf69b8f67a178dd8d86b54f408364582069f0eb23803ce7f12e6da3c134f787991e63e87ca1dac996fc1b53a55ff29b4a28b2038857cd7e654e020 languageName: node linkType: hard @@ -1252,87 +1266,75 @@ __metadata: languageName: node linkType: hard -"@polkadot/api@npm:15.9.2, @polkadot/api@npm:^15.9.1": - version: 15.9.2 - resolution: "@polkadot/api@npm:15.9.2" +"@polkadot/extension-dapp@npm:^0.58.6": + version: 0.58.10 + resolution: "@polkadot/extension-dapp@npm:0.58.10" dependencies: - "@polkadot/api-augment": "npm:15.9.2" - "@polkadot/api-base": "npm:15.9.2" - "@polkadot/api-derive": "npm:15.9.2" - "@polkadot/keyring": "npm:^13.4.4" - "@polkadot/rpc-augment": "npm:15.9.2" - "@polkadot/rpc-core": "npm:15.9.2" - "@polkadot/rpc-provider": "npm:15.9.2" - "@polkadot/types": "npm:15.9.2" - "@polkadot/types-augment": "npm:15.9.2" - "@polkadot/types-codec": "npm:15.9.2" - "@polkadot/types-create": "npm:15.9.2" - "@polkadot/types-known": "npm:15.9.2" + "@polkadot/extension-inject": "npm:0.58.10" "@polkadot/util": "npm:^13.4.4" "@polkadot/util-crypto": "npm:^13.4.4" - eventemitter3: "npm:^5.0.1" - rxjs: "npm:^7.8.1" - tslib: "npm:^2.8.1" - checksum: 10/8cc864bb86fc68712992eedc0034504d74dee5c9d24c6422d9939bf0a9d5aec23a2ce1a7e7b57da446f5b72acadab3e1427925813cb9cf7aa8685048a5966121 - languageName: node - linkType: hard - -"@polkadot/extension-dapp@npm:^0.58.6": - version: 0.58.7 - resolution: "@polkadot/extension-dapp@npm:0.58.7" - dependencies: - "@polkadot/extension-inject": "npm:0.58.7" - "@polkadot/util": "npm:^13.4.3" - "@polkadot/util-crypto": "npm:^13.4.3" tslib: "npm:^2.8.1" peerDependencies: "@polkadot/api": "*" "@polkadot/util": "*" "@polkadot/util-crypto": "*" - checksum: 10/a7bf3b8f1cd4791ca97f592e0a3acf43e5f08599bd58cdff6a0dcc39b8e584e33d16f1ef7faf3ade958716b17c0478b21f92fd0b2c796121faa6a1e5ecfaa660 + checksum: 10/d7e9844155f5eb9aa0bb88549aec754aa2d02d4ab459e8730426f9d314e74225eeb659805193318ec9a5f7d2f2a91c9f514c85ab4b2cd7bce603af672cb6aa39 languageName: node linkType: hard -"@polkadot/extension-inject@npm:0.58.7": - version: 0.58.7 - resolution: "@polkadot/extension-inject@npm:0.58.7" +"@polkadot/extension-inject@npm:0.58.10": + version: 0.58.10 + resolution: "@polkadot/extension-inject@npm:0.58.10" dependencies: - "@polkadot/api": "npm:^15.9.1" - "@polkadot/rpc-provider": "npm:^15.9.1" - "@polkadot/types": "npm:^15.9.1" - "@polkadot/util": "npm:^13.4.3" - "@polkadot/util-crypto": "npm:^13.4.3" - "@polkadot/x-global": "npm:^13.4.3" + "@polkadot/api": "npm:^15.10.2" + "@polkadot/rpc-provider": "npm:^15.10.2" + "@polkadot/types": "npm:^15.10.2" + "@polkadot/util": "npm:^13.4.4" + "@polkadot/util-crypto": "npm:^13.4.4" + "@polkadot/x-global": "npm:^13.4.4" tslib: "npm:^2.8.1" peerDependencies: "@polkadot/api": "*" "@polkadot/util": "*" - checksum: 10/4bad79802ff221e2a8d6a9f04c9cb8710f40b1aaa42c4fb446ade0c0bb27737396bc543794c3b927b7c718da5517e3cf1c724522cb1b3f2dcc0c9295358e5394 + checksum: 10/86f903ae471899ccd628ccd258c4c8ff039a76fa1d17422ac19f9b2b72efce2cecb4de417eab5ac51c10af64c05bb9661fc4e4eb05d58a6de9341f3c13d2a180 languageName: node linkType: hard -"@polkadot/keyring@npm:^13.4.3, @polkadot/keyring@npm:^13.4.4": - version: 13.4.4 - resolution: "@polkadot/keyring@npm:13.4.4" +"@polkadot/keyring@npm:^13.4.3, @polkadot/keyring@npm:^13.4.4, @polkadot/keyring@npm:^13.5.1": + version: 13.5.1 + resolution: "@polkadot/keyring@npm:13.5.1" dependencies: - "@polkadot/util": "npm:13.4.4" - "@polkadot/util-crypto": "npm:13.4.4" + "@polkadot/util": "npm:13.5.1" + "@polkadot/util-crypto": "npm:13.5.1" tslib: "npm:^2.8.0" peerDependencies: - "@polkadot/util": 13.4.4 - "@polkadot/util-crypto": 13.4.4 - checksum: 10/0c9637cf54640898c503721c568831b75a92229d1395d6f228325a4888b8c3fc862ed24a54c0c49b4eaffe9cb23d2734f487deee25a0b78f7382a82e60ac1955 + "@polkadot/util": 13.5.1 + "@polkadot/util-crypto": 13.5.1 + checksum: 10/e040c077ff1227ec7d4b911e60fc2588144dc31a775c301c56fa6b0b9e7e74cfd9fec4b51f1340bb3c3e0b322e217d4759176a35f7fda500a5776dde279fab86 languageName: node linkType: hard -"@polkadot/networks@npm:13.4.4, @polkadot/networks@npm:^13.4.3, @polkadot/networks@npm:^13.4.4": - version: 13.4.4 - resolution: "@polkadot/networks@npm:13.4.4" +"@polkadot/networks@npm:13.5.1, @polkadot/networks@npm:^13.4.3, @polkadot/networks@npm:^13.4.4, @polkadot/networks@npm:^13.5.1": + version: 13.5.1 + resolution: "@polkadot/networks@npm:13.5.1" dependencies: - "@polkadot/util": "npm:13.4.4" + "@polkadot/util": "npm:13.5.1" "@substrate/ss58-registry": "npm:^1.51.0" tslib: "npm:^2.8.0" - checksum: 10/8125a55b6ff75a32fdde7fba3584d49c9e096b5fe88c26cb8438af61233d233ef346f3086eb52be2fecf4f2c516fe7cabadf982510732c1beac65e430216f4a5 + checksum: 10/836835ffcf58027cb450f17400c733eb84272cb7de0b1a86f72a0c1b1bb35ea3c628f8dd418e185f163ff0963ec931f41618b9405088a1d6fe2fbf5e5ab09709 + languageName: node + linkType: hard + +"@polkadot/rpc-augment@npm:15.10.2": + version: 15.10.2 + resolution: "@polkadot/rpc-augment@npm:15.10.2" + dependencies: + "@polkadot/rpc-core": "npm:15.10.2" + "@polkadot/types": "npm:15.10.2" + "@polkadot/types-codec": "npm:15.10.2" + "@polkadot/util": "npm:^13.4.4" + tslib: "npm:^2.8.1" + checksum: 10/9bb6e96e971d12626046bef6aee1d4742d37071abbb1c2fe1318b1d2a6f9a8fdcb6b03aee1763996e20bd09d67de93e0450bd32587e1eda18444f1bd7e6020de languageName: node linkType: hard @@ -1349,16 +1351,17 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-augment@npm:15.9.2": - version: 15.9.2 - resolution: "@polkadot/rpc-augment@npm:15.9.2" +"@polkadot/rpc-core@npm:15.10.2": + version: 15.10.2 + resolution: "@polkadot/rpc-core@npm:15.10.2" dependencies: - "@polkadot/rpc-core": "npm:15.9.2" - "@polkadot/types": "npm:15.9.2" - "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/rpc-augment": "npm:15.10.2" + "@polkadot/rpc-provider": "npm:15.10.2" + "@polkadot/types": "npm:15.10.2" "@polkadot/util": "npm:^13.4.4" + rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/0e3ed85c006344071e654aa20027817ee397b304d32919af80518a3c62dffe65f288509ded0322add410c88263b4f728139b7230a5433eaec6d3810c2f75fd36 + checksum: 10/62e0ff2f65fd5db26f982b855e82f8d0d1385046c90eb94364b105d34baa5972b01b113fe2292443354f7accff92faac998356946f9b4a80d8a86ea9d6d885a5 languageName: node linkType: hard @@ -1376,17 +1379,27 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-core@npm:15.9.2": - version: 15.9.2 - resolution: "@polkadot/rpc-core@npm:15.9.2" +"@polkadot/rpc-provider@npm:15.10.2, @polkadot/rpc-provider@npm:^15.10.2": + version: 15.10.2 + resolution: "@polkadot/rpc-provider@npm:15.10.2" dependencies: - "@polkadot/rpc-augment": "npm:15.9.2" - "@polkadot/rpc-provider": "npm:15.9.2" - "@polkadot/types": "npm:15.9.2" + "@polkadot/keyring": "npm:^13.4.4" + "@polkadot/types": "npm:15.10.2" + "@polkadot/types-support": "npm:15.10.2" "@polkadot/util": "npm:^13.4.4" - rxjs: "npm:^7.8.1" + "@polkadot/util-crypto": "npm:^13.4.4" + "@polkadot/x-fetch": "npm:^13.4.4" + "@polkadot/x-global": "npm:^13.4.4" + "@polkadot/x-ws": "npm:^13.4.4" + "@substrate/connect": "npm:0.8.11" + eventemitter3: "npm:^5.0.1" + mock-socket: "npm:^9.3.1" + nock: "npm:^13.5.5" tslib: "npm:^2.8.1" - checksum: 10/af5ecdb162f7b94b70e0187eecc026b503379e071a40d91a1d0987b652b7bf62d7b32fa9eafd9e0fe65a317febe20c4a805707117b1f1d6ee3f82f7b37c5ae15 + dependenciesMeta: + "@substrate/connect": + optional: true + checksum: 10/e8d0acb0981e965942e4e309dab5d7ec8051b11a3e6ab32fdcf33da25f0900bcf9c689bc502ce6fcd80b7e6d4fc9799015eb41f65a69b0780b2f1adf4caf3562 languageName: node linkType: hard @@ -1414,27 +1427,15 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-provider@npm:15.9.2, @polkadot/rpc-provider@npm:^15.9.1": - version: 15.9.2 - resolution: "@polkadot/rpc-provider@npm:15.9.2" +"@polkadot/types-augment@npm:15.10.2": + version: 15.10.2 + resolution: "@polkadot/types-augment@npm:15.10.2" dependencies: - "@polkadot/keyring": "npm:^13.4.4" - "@polkadot/types": "npm:15.9.2" - "@polkadot/types-support": "npm:15.9.2" + "@polkadot/types": "npm:15.10.2" + "@polkadot/types-codec": "npm:15.10.2" "@polkadot/util": "npm:^13.4.4" - "@polkadot/util-crypto": "npm:^13.4.4" - "@polkadot/x-fetch": "npm:^13.4.4" - "@polkadot/x-global": "npm:^13.4.4" - "@polkadot/x-ws": "npm:^13.4.4" - "@substrate/connect": "npm:0.8.11" - eventemitter3: "npm:^5.0.1" - mock-socket: "npm:^9.3.1" - nock: "npm:^13.5.5" tslib: "npm:^2.8.1" - dependenciesMeta: - "@substrate/connect": - optional: true - checksum: 10/78a8c45560b72b0f75bb16adf1538b13a6c4ea96da9458b78b160b5d6671ca8647d3fa486200502ea946d0d111e003b13465ee3d9a97ddb08e4ec5356ff83411 + checksum: 10/c6853bbef55e0319e12d052e9649c49f186a016234a4b647a9645e65f7205db174af2ebdf81b118c23a36e04d5d2d864c9852332fe8256f630fdc42c5b24fb92 languageName: node linkType: hard @@ -1450,15 +1451,14 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-augment@npm:15.9.2": - version: 15.9.2 - resolution: "@polkadot/types-augment@npm:15.9.2" +"@polkadot/types-codec@npm:15.10.2": + version: 15.10.2 + resolution: "@polkadot/types-codec@npm:15.10.2" dependencies: - "@polkadot/types": "npm:15.9.2" - "@polkadot/types-codec": "npm:15.9.2" "@polkadot/util": "npm:^13.4.4" + "@polkadot/x-bigint": "npm:^13.4.4" tslib: "npm:^2.8.1" - checksum: 10/7c1bba6ae56da6107ff8353b97973e1dd3e7d18d4106092e7ec7caf86e4915cc75cb7ff7a8ce330c2f9d9f3018544791936f042d855afa30f91f847b5444ee44 + checksum: 10/b046ce657755622c3e5bd68e9e18122d25045fc0c656b91d1887c03055db8a6f85635b3d146fa692bc4c10a575a3dbca7845a8071e702739f5a71f0d54c1b695 languageName: node linkType: hard @@ -1473,14 +1473,14 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-codec@npm:15.9.2": - version: 15.9.2 - resolution: "@polkadot/types-codec@npm:15.9.2" +"@polkadot/types-create@npm:15.10.2": + version: 15.10.2 + resolution: "@polkadot/types-create@npm:15.10.2" dependencies: + "@polkadot/types-codec": "npm:15.10.2" "@polkadot/util": "npm:^13.4.4" - "@polkadot/x-bigint": "npm:^13.4.4" tslib: "npm:^2.8.1" - checksum: 10/ad528c305914d4864e474da0dfb2ede8339474bb2070511f991e065bc87174e1bbb66086edaed36af80746ececd6ef941957a58ca2dd0190bbd8089e7b97a9e3 + checksum: 10/669a5ca2c3a7b9f2cbaf5926c990471bf530d038992117e43251a1898448629aed654648f408e5c5675c6ad87f8ce8e29868731b4d552d8e67d6f3f133aa2c01 languageName: node linkType: hard @@ -1495,14 +1495,17 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-create@npm:15.9.2": - version: 15.9.2 - resolution: "@polkadot/types-create@npm:15.9.2" +"@polkadot/types-known@npm:15.10.2": + version: 15.10.2 + resolution: "@polkadot/types-known@npm:15.10.2" dependencies: - "@polkadot/types-codec": "npm:15.9.2" + "@polkadot/networks": "npm:^13.4.4" + "@polkadot/types": "npm:15.10.2" + "@polkadot/types-codec": "npm:15.10.2" + "@polkadot/types-create": "npm:15.10.2" "@polkadot/util": "npm:^13.4.4" tslib: "npm:^2.8.1" - checksum: 10/c002defab8080922907f047bb637152029661526748c3cfcbf914a9335a3b4a2c9c5cb3cfc41a315b3e636b5261e313bc2f5ad819705c4287001947e52153e4b + checksum: 10/ee4c42436b408bc80d83c6b13c38ec7e35e3de1432fbbee6f4bb7418089261d115671a0de4521f3a8ce4047b68a770e3cfaa79cf19d435f7e3c43575abd97ac1 languageName: node linkType: hard @@ -1520,17 +1523,13 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-known@npm:15.9.2": - version: 15.9.2 - resolution: "@polkadot/types-known@npm:15.9.2" +"@polkadot/types-support@npm:15.10.2": + version: 15.10.2 + resolution: "@polkadot/types-support@npm:15.10.2" dependencies: - "@polkadot/networks": "npm:^13.4.4" - "@polkadot/types": "npm:15.9.2" - "@polkadot/types-codec": "npm:15.9.2" - "@polkadot/types-create": "npm:15.9.2" "@polkadot/util": "npm:^13.4.4" tslib: "npm:^2.8.1" - checksum: 10/a14fc66393c434817526f0af53fa52a450640ffb4a7147a3a378fb16dddae9b028be82c16bd38e738eba1e4760d97c354ac4659abf8891a0a3c1a3e1de7d95d0 + checksum: 10/34431ebc08e189502759679ac793d75aafdbf0f6d254063f7bc5a3fb77e5364617f4b806509062c0a5c6a4330b239a0e906465c358d12ae11de4e1bfd155f63a languageName: node linkType: hard @@ -1544,13 +1543,19 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-support@npm:15.9.2": - version: 15.9.2 - resolution: "@polkadot/types-support@npm:15.9.2" +"@polkadot/types@npm:15.10.2, @polkadot/types@npm:^15.10.2": + version: 15.10.2 + resolution: "@polkadot/types@npm:15.10.2" dependencies: + "@polkadot/keyring": "npm:^13.4.4" + "@polkadot/types-augment": "npm:15.10.2" + "@polkadot/types-codec": "npm:15.10.2" + "@polkadot/types-create": "npm:15.10.2" "@polkadot/util": "npm:^13.4.4" + "@polkadot/util-crypto": "npm:^13.4.4" + rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/a52c47cb9f23eee5f5dd6e1bdb65d508a30ec3ac11744520d9600ecd924886a1b192d56b82719f86b375988bbb2646fa01a409ca9e78e0e959a40243241c15e8 + checksum: 10/1f0614f3777d04d91ac396e7c025ed5eeba3e12a72b1d6d4425edfb084860b93bd1d7ee085ee47487efec046f747d26fb69907b41f1f05d91ef81799383c4020 languageName: node linkType: hard @@ -1570,30 +1575,14 @@ __metadata: languageName: node linkType: hard -"@polkadot/types@npm:15.9.2, @polkadot/types@npm:^15.9.1": - version: 15.9.2 - resolution: "@polkadot/types@npm:15.9.2" - dependencies: - "@polkadot/keyring": "npm:^13.4.4" - "@polkadot/types-augment": "npm:15.9.2" - "@polkadot/types-codec": "npm:15.9.2" - "@polkadot/types-create": "npm:15.9.2" - "@polkadot/util": "npm:^13.4.4" - "@polkadot/util-crypto": "npm:^13.4.4" - rxjs: "npm:^7.8.1" - tslib: "npm:^2.8.1" - checksum: 10/378fd63cdcb52531fbead73df9d7a4a8cb4ee3d3c7a0587e1474092b49548aa154a0d77168bc775463dbdf63fcb029efbec76d467e2ad5ebf12b267ab4f43a40 - languageName: node - linkType: hard - "@polkadot/ui-keyring@npm:^3.12.2": - version: 3.13.1 - resolution: "@polkadot/ui-keyring@npm:3.13.1" + version: 3.14.1 + resolution: "@polkadot/ui-keyring@npm:3.14.1" dependencies: - "@polkadot/keyring": "npm:^13.4.4" - "@polkadot/ui-settings": "npm:3.13.1" - "@polkadot/util": "npm:^13.4.4" - "@polkadot/util-crypto": "npm:^13.4.4" + "@polkadot/keyring": "npm:^13.5.1" + "@polkadot/ui-settings": "npm:3.14.1" + "@polkadot/util": "npm:^13.5.1" + "@polkadot/util-crypto": "npm:^13.5.1" mkdirp: "npm:^3.0.1" rxjs: "npm:^7.8.1" store: "npm:^2.0.12" @@ -1602,71 +1591,71 @@ __metadata: "@polkadot/keyring": "*" "@polkadot/ui-settings": "*" "@polkadot/util": "*" - checksum: 10/65dc6b95cafb1f0e35b0e43f8de9765d5a3012462bcff84c5521759a7fbced83ccc388d49d9261157248be1822f78d1cbbf546b287169094c1d0d61a690036f9 + checksum: 10/45c56a5fe3336a451508f44aae51ea0dcefdf491e580a7e96f4fc12897ac2d5ecfa1b634638701d4521ed40828b3a6ab9e070582b33f496b1071f1ea46ce0049 languageName: node linkType: hard -"@polkadot/ui-settings@npm:3.13.1": - version: 3.13.1 - resolution: "@polkadot/ui-settings@npm:3.13.1" +"@polkadot/ui-settings@npm:3.14.1": + version: 3.14.1 + resolution: "@polkadot/ui-settings@npm:3.14.1" dependencies: - "@polkadot/networks": "npm:^13.4.4" - "@polkadot/util": "npm:^13.4.4" + "@polkadot/networks": "npm:^13.5.1" + "@polkadot/util": "npm:^13.5.1" eventemitter3: "npm:^5.0.1" store: "npm:^2.0.12" tslib: "npm:^2.8.1" peerDependencies: "@polkadot/networks": "*" "@polkadot/util": "*" - checksum: 10/a6c1d1e9de0561d24ec1ebae8fe670054930bb480e14de4618113a4fca0457e0a7fa5d7c9809a8661dc417fc4f2334ae21f05d39445aa4fd7e0c0bc59a64ed16 + checksum: 10/08f1bc4af62c6c5e599788a440ccf1332e11dfc5df2e5247c6b7028e003f41803189d2f68a385d8101ca7797bc7ad87ed4920f624de7391b269491df74ec4f72 languageName: node linkType: hard "@polkadot/ui-shared@npm:^3.12.2": - version: 3.13.1 - resolution: "@polkadot/ui-shared@npm:3.13.1" + version: 3.14.1 + resolution: "@polkadot/ui-shared@npm:3.14.1" dependencies: colord: "npm:^2.9.3" tslib: "npm:^2.8.1" peerDependencies: "@polkadot/util": "*" "@polkadot/util-crypto": "*" - checksum: 10/abfaf43e1f95701433d0fa8938eca19ca8aade32977117090a9eeec740300fb938e72cf8b0cbc0f7406b459d7afcd792574b5b65245fb133d044a9c625827b86 + checksum: 10/96a2cd49eecb69c16f1b912d9a354e6c5b67f3cfe94796e7c3fd6e8378eef0962e4a7737f0598f431d4097bed4ed3b5e13ea62aa851d33dbea13a584cc6e6fda languageName: node linkType: hard -"@polkadot/util-crypto@npm:13.4.4, @polkadot/util-crypto@npm:^13.4.3, @polkadot/util-crypto@npm:^13.4.4": - version: 13.4.4 - resolution: "@polkadot/util-crypto@npm:13.4.4" +"@polkadot/util-crypto@npm:13.5.1, @polkadot/util-crypto@npm:^13.4.3, @polkadot/util-crypto@npm:^13.4.4, @polkadot/util-crypto@npm:^13.5.1": + version: 13.5.1 + resolution: "@polkadot/util-crypto@npm:13.5.1" dependencies: "@noble/curves": "npm:^1.3.0" "@noble/hashes": "npm:^1.3.3" - "@polkadot/networks": "npm:13.4.4" - "@polkadot/util": "npm:13.4.4" + "@polkadot/networks": "npm:13.5.1" + "@polkadot/util": "npm:13.5.1" "@polkadot/wasm-crypto": "npm:^7.4.1" "@polkadot/wasm-util": "npm:^7.4.1" - "@polkadot/x-bigint": "npm:13.4.4" - "@polkadot/x-randomvalues": "npm:13.4.4" + "@polkadot/x-bigint": "npm:13.5.1" + "@polkadot/x-randomvalues": "npm:13.5.1" "@scure/base": "npm:^1.1.7" tslib: "npm:^2.8.0" peerDependencies: - "@polkadot/util": 13.4.4 - checksum: 10/085a183b0e8a7490b174849e85f14d2903b105f50e8771db76f7ad23e73c345b4c270246b4ffd1afa2f9b5ef0ef48f4637ab0aa1b4a7a8d0452d28d7c623a427 + "@polkadot/util": 13.5.1 + checksum: 10/280a8fb838e8ee30da92a73c5c578977c2d0d823dd03143ebdd3a0a9dc276649a6476a1cbf0200140ed116146b7202c7cd5c0be58271e12326d4aff4a42788e4 languageName: node linkType: hard -"@polkadot/util@npm:13.4.4, @polkadot/util@npm:^13.4.3, @polkadot/util@npm:^13.4.4": - version: 13.4.4 - resolution: "@polkadot/util@npm:13.4.4" +"@polkadot/util@npm:13.5.1, @polkadot/util@npm:^13.4.3, @polkadot/util@npm:^13.4.4, @polkadot/util@npm:^13.5.1": + version: 13.5.1 + resolution: "@polkadot/util@npm:13.5.1" dependencies: - "@polkadot/x-bigint": "npm:13.4.4" - "@polkadot/x-global": "npm:13.4.4" - "@polkadot/x-textdecoder": "npm:13.4.4" - "@polkadot/x-textencoder": "npm:13.4.4" + "@polkadot/x-bigint": "npm:13.5.1" + "@polkadot/x-global": "npm:13.5.1" + "@polkadot/x-textdecoder": "npm:13.5.1" + "@polkadot/x-textencoder": "npm:13.5.1" "@types/bn.js": "npm:^5.1.6" bn.js: "npm:^5.2.1" tslib: "npm:^2.8.0" - checksum: 10/788d63bc43a6a090eec06b9fd313e5b8290c6aecafa73efb8b20ef96143b1ef06eb417aea4dd237c530b4c38dd6f2be7c04f865f806b287897fdbea8575d5f92 + checksum: 10/26b7c564012afec2c877dbf265021883335a28f369c84d59eeaf6bba72a9fd4e70d259cf24619332e9c44fc55093d9f51ec212a7d48fcae92e962f42f4310d6f languageName: node linkType: hard @@ -1750,77 +1739,77 @@ __metadata: languageName: node linkType: hard -"@polkadot/x-bigint@npm:13.4.4, @polkadot/x-bigint@npm:^13.4.3, @polkadot/x-bigint@npm:^13.4.4": - version: 13.4.4 - resolution: "@polkadot/x-bigint@npm:13.4.4" +"@polkadot/x-bigint@npm:13.5.1, @polkadot/x-bigint@npm:^13.4.3, @polkadot/x-bigint@npm:^13.4.4": + version: 13.5.1 + resolution: "@polkadot/x-bigint@npm:13.5.1" dependencies: - "@polkadot/x-global": "npm:13.4.4" + "@polkadot/x-global": "npm:13.5.1" tslib: "npm:^2.8.0" - checksum: 10/38c398fadd95905052cbb41eb5d96c44d39b891640aed7c3a3beec9a957a32577b4fc084fca59b0e8f2be4f67e3a6a4eb24a5113fc7c1a8e1d430894abe657f3 + checksum: 10/726bc63bc9a51dbfc21de3913ac546c296ca82b05a78014a9de7268a22c4db85552c6143ab058e0bf3e92defaa36a7d7a803a3deb6607e5928f408ee245dc55e languageName: node linkType: hard "@polkadot/x-fetch@npm:^13.4.3, @polkadot/x-fetch@npm:^13.4.4": - version: 13.4.4 - resolution: "@polkadot/x-fetch@npm:13.4.4" + version: 13.5.1 + resolution: "@polkadot/x-fetch@npm:13.5.1" dependencies: - "@polkadot/x-global": "npm:13.4.4" + "@polkadot/x-global": "npm:13.5.1" node-fetch: "npm:^3.3.2" tslib: "npm:^2.8.0" - checksum: 10/7817711a4a8b8c0ff61f913d7cbebd5ee4a90c3a723c2011a5cbfb70a7382db1c630b269e5ce76e7505dada13a1d0b8c9aa27ab2cb4ebff5a77b5d8484611959 + checksum: 10/f6b25c63c7d01b18b814c75bd5af2b614c26b127730902a0c2f385ded9d990037873ad6118e64692d071a5a20a11a2dcee2a80fbe105f5391f128f7153685267 languageName: node linkType: hard -"@polkadot/x-global@npm:13.4.4, @polkadot/x-global@npm:^13.4.3, @polkadot/x-global@npm:^13.4.4": - version: 13.4.4 - resolution: "@polkadot/x-global@npm:13.4.4" +"@polkadot/x-global@npm:13.5.1, @polkadot/x-global@npm:^13.4.3, @polkadot/x-global@npm:^13.4.4": + version: 13.5.1 + resolution: "@polkadot/x-global@npm:13.5.1" dependencies: tslib: "npm:^2.8.0" - checksum: 10/dd0df5886775e0304e4a912a9a16786df910cf91e225fbf671ca604059849896cc002839609bbb82f59eefe19a5bfa634e0eace3d15c93b760326abdaec4ae40 + checksum: 10/6db58bbed5c6506c2f6d542cd836b242750a01d93e30fb6f19543a43ca7573a96813df44344df5d9ec938a913e2ddb8af0258f51770d3aa9f9bcbb896d8e5d1b languageName: node linkType: hard -"@polkadot/x-randomvalues@npm:13.4.4": - version: 13.4.4 - resolution: "@polkadot/x-randomvalues@npm:13.4.4" +"@polkadot/x-randomvalues@npm:13.5.1": + version: 13.5.1 + resolution: "@polkadot/x-randomvalues@npm:13.5.1" dependencies: - "@polkadot/x-global": "npm:13.4.4" + "@polkadot/x-global": "npm:13.5.1" tslib: "npm:^2.8.0" peerDependencies: - "@polkadot/util": 13.4.4 + "@polkadot/util": 13.5.1 "@polkadot/wasm-util": "*" - checksum: 10/958fc03d1214d147d9e113e0f418240faeb53675036aace5f50e57e6913cc51324d0cd6890d9adb18b40d595a71158175e1edf7701b96c3bd57e4e4395b732d5 + checksum: 10/cadd8c7f9e7acf219c7cdc45bd3e7473e2da5577919936eb1721a297bfaeb45498e3f651200b9333aab95666d09671f915c8ac262924a922c23520ae494acf72 languageName: node linkType: hard -"@polkadot/x-textdecoder@npm:13.4.4": - version: 13.4.4 - resolution: "@polkadot/x-textdecoder@npm:13.4.4" +"@polkadot/x-textdecoder@npm:13.5.1": + version: 13.5.1 + resolution: "@polkadot/x-textdecoder@npm:13.5.1" dependencies: - "@polkadot/x-global": "npm:13.4.4" + "@polkadot/x-global": "npm:13.5.1" tslib: "npm:^2.8.0" - checksum: 10/a3778a824f5c232a518bb504d92aca35dbc9b9c777a4539adaac733fed98b340c78aabed8fcbf613683b21052615dcfdf06b58f5ad5165d2d0d3195c313b97b4 + checksum: 10/705b3f3b3c757cf2f7077e71f6c765c088e6636e5580408a8f95bf9b2e17c59bfa0846d89ba423131422a0bbb381fe0eff13cd7ac3d366272ebe269876789a52 languageName: node linkType: hard -"@polkadot/x-textencoder@npm:13.4.4": - version: 13.4.4 - resolution: "@polkadot/x-textencoder@npm:13.4.4" +"@polkadot/x-textencoder@npm:13.5.1": + version: 13.5.1 + resolution: "@polkadot/x-textencoder@npm:13.5.1" dependencies: - "@polkadot/x-global": "npm:13.4.4" + "@polkadot/x-global": "npm:13.5.1" tslib: "npm:^2.8.0" - checksum: 10/222f7954fe1aac7806b3b3c7dd04b47c64ec1af77e59725b0634bdf666344782fff3e08f0ead86fad61ac7e6e2ae6826410366286657ed06633f663ab8ba9c6b + checksum: 10/d5309785674a034e21717236f7f2a438da77d29c514c9cfae8517c8db690e1cff55820cfbac6f2307c9e1d4dc2c4e24ad01f915b585823af5ee73737441d1766 languageName: node linkType: hard "@polkadot/x-ws@npm:^13.4.3, @polkadot/x-ws@npm:^13.4.4": - version: 13.4.4 - resolution: "@polkadot/x-ws@npm:13.4.4" + version: 13.5.1 + resolution: "@polkadot/x-ws@npm:13.5.1" dependencies: - "@polkadot/x-global": "npm:13.4.4" + "@polkadot/x-global": "npm:13.5.1" tslib: "npm:^2.8.0" ws: "npm:^8.18.0" - checksum: 10/33edb249fc18c46cc1e0cbf8574b8d768245649b584eca8fd729f2f64d0ff05c27d2146a951134c3d0d0a1b6987f0a7c59f2452a4fb182c92f157da45e3728fb + checksum: 10/7c4f5d9178efb663b03303053f2e83bec2fc87ad29306116237549eb004d8f64a945570da966ddab99657db6499fc6056c51daf11dff62095a701c9fb231eb2a languageName: node linkType: hard @@ -1831,142 +1820,149 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-android-arm-eabi@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.40.0" +"@rolldown/pluginutils@npm:1.0.0-beta.9": + version: 1.0.0-beta.9 + resolution: "@rolldown/pluginutils@npm:1.0.0-beta.9" + checksum: 10/6d28647e1c186b0e31e07666b850a609efcf5cd5fb0ab57730f932bf57dd2ff9dec15407422e2207503463cbe2fdb4759aaf735f27cb3bbdcca6a083e78a32c0 + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.41.1" conditions: os=android & cpu=arm languageName: node linkType: hard -"@rollup/rollup-android-arm64@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-android-arm64@npm:4.40.0" +"@rollup/rollup-android-arm64@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-android-arm64@npm:4.41.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-arm64@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-darwin-arm64@npm:4.40.0" +"@rollup/rollup-darwin-arm64@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.41.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-darwin-x64@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-darwin-x64@npm:4.40.0" +"@rollup/rollup-darwin-x64@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.41.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-freebsd-arm64@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-freebsd-arm64@npm:4.40.0" +"@rollup/rollup-freebsd-arm64@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.41.1" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-freebsd-x64@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-freebsd-x64@npm:4.40.0" +"@rollup/rollup-freebsd-x64@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.41.1" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.40.0" +"@rollup/rollup-linux-arm-gnueabihf@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.41.1" conditions: os=linux & cpu=arm & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm-musleabihf@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.40.0" +"@rollup/rollup-linux-arm-musleabihf@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.41.1" conditions: os=linux & cpu=arm & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.40.0" +"@rollup/rollup-linux-arm64-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.41.1" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.40.0" +"@rollup/rollup-linux-arm64-musl@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.41.1" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-loongarch64-gnu@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.40.0" +"@rollup/rollup-linux-loongarch64-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.41.1" conditions: os=linux & cpu=loong64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-powerpc64le-gnu@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.40.0" +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.41.1" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-gnu@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.40.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.41.1" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-riscv64-musl@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.40.0" +"@rollup/rollup-linux-riscv64-musl@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.41.1" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.40.0" +"@rollup/rollup-linux-s390x-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.41.1" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.40.0" +"@rollup/rollup-linux-x64-gnu@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.41.1" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.40.0" +"@rollup/rollup-linux-x64-musl@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.41.1" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.40.0" +"@rollup/rollup-win32-arm64-msvc@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.41.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.40.0" +"@rollup/rollup-win32-ia32-msvc@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.41.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.40.0": - version: 4.40.0 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.40.0" +"@rollup/rollup-win32-x64-msvc@npm:4.41.1": + version: 4.41.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.41.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -1979,9 +1975,9 @@ __metadata: linkType: hard "@scure/base@npm:^1.1.1, @scure/base@npm:^1.1.7": - version: 1.2.4 - resolution: "@scure/base@npm:1.2.4" - checksum: 10/4b61679209af40143b49ce7b7570e1d9157c19df311ea6f57cd212d764b0b82222dbe3707334f08bec181caf1f047aca31aa91193c678d6548312cb3f9c82ab1 + version: 1.2.5 + resolution: "@scure/base@npm:1.2.5" + checksum: 10/9a963a27424a373b62760c9ae7099ae496be67eb5b31205639f529f0dbcb2228a827222a36d22842cc2acda78e300a3430d46d84de5d8d4b791208955360853e languageName: node linkType: hard @@ -1993,9 +1989,9 @@ __metadata: linkType: hard "@substrate/connect-known-chains@npm:^1.1.5": - version: 1.10.0 - resolution: "@substrate/connect-known-chains@npm:1.10.0" - checksum: 10/0c00bb6956382c4584e6883f2accb88cdcbe947b2e473c166748d4b9d5477a25ce1b7eb7d5d86f7bdbbb8ff60082378719c8174341cd64720b055b2d3ac4d0a2 + version: 1.10.2 + resolution: "@substrate/connect-known-chains@npm:1.10.2" + checksum: 10/88d8d0984a91c6582409395b84a482eafe8be33742b839ddaac153a2c5962a76679e813c68ed4c0017c6513db1703ebe7ea1e2107f3a5fbe508d4c6cf3ae65c2 languageName: node linkType: hard @@ -2035,90 +2031,90 @@ __metadata: languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.11.21": - version: 1.11.21 - resolution: "@swc/core-darwin-arm64@npm:1.11.21" +"@swc/core-darwin-arm64@npm:1.11.29": + version: 1.11.29 + resolution: "@swc/core-darwin-arm64@npm:1.11.29" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.11.21": - version: 1.11.21 - resolution: "@swc/core-darwin-x64@npm:1.11.21" +"@swc/core-darwin-x64@npm:1.11.29": + version: 1.11.29 + resolution: "@swc/core-darwin-x64@npm:1.11.29" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.11.21": - version: 1.11.21 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.11.21" +"@swc/core-linux-arm-gnueabihf@npm:1.11.29": + version: 1.11.29 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.11.29" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.11.21": - version: 1.11.21 - resolution: "@swc/core-linux-arm64-gnu@npm:1.11.21" +"@swc/core-linux-arm64-gnu@npm:1.11.29": + version: 1.11.29 + resolution: "@swc/core-linux-arm64-gnu@npm:1.11.29" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.11.21": - version: 1.11.21 - resolution: "@swc/core-linux-arm64-musl@npm:1.11.21" +"@swc/core-linux-arm64-musl@npm:1.11.29": + version: 1.11.29 + resolution: "@swc/core-linux-arm64-musl@npm:1.11.29" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.11.21": - version: 1.11.21 - resolution: "@swc/core-linux-x64-gnu@npm:1.11.21" +"@swc/core-linux-x64-gnu@npm:1.11.29": + version: 1.11.29 + resolution: "@swc/core-linux-x64-gnu@npm:1.11.29" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.11.21": - version: 1.11.21 - resolution: "@swc/core-linux-x64-musl@npm:1.11.21" +"@swc/core-linux-x64-musl@npm:1.11.29": + version: 1.11.29 + resolution: "@swc/core-linux-x64-musl@npm:1.11.29" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.11.21": - version: 1.11.21 - resolution: "@swc/core-win32-arm64-msvc@npm:1.11.21" +"@swc/core-win32-arm64-msvc@npm:1.11.29": + version: 1.11.29 + resolution: "@swc/core-win32-arm64-msvc@npm:1.11.29" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.11.21": - version: 1.11.21 - resolution: "@swc/core-win32-ia32-msvc@npm:1.11.21" +"@swc/core-win32-ia32-msvc@npm:1.11.29": + version: 1.11.29 + resolution: "@swc/core-win32-ia32-msvc@npm:1.11.29" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.11.21": - version: 1.11.21 - resolution: "@swc/core-win32-x64-msvc@npm:1.11.21" +"@swc/core-win32-x64-msvc@npm:1.11.29": + version: 1.11.29 + resolution: "@swc/core-win32-x64-msvc@npm:1.11.29" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:^1.11.21": - version: 1.11.21 - resolution: "@swc/core@npm:1.11.21" +"@swc/core@npm:^1.11.22": + version: 1.11.29 + resolution: "@swc/core@npm:1.11.29" dependencies: - "@swc/core-darwin-arm64": "npm:1.11.21" - "@swc/core-darwin-x64": "npm:1.11.21" - "@swc/core-linux-arm-gnueabihf": "npm:1.11.21" - "@swc/core-linux-arm64-gnu": "npm:1.11.21" - "@swc/core-linux-arm64-musl": "npm:1.11.21" - "@swc/core-linux-x64-gnu": "npm:1.11.21" - "@swc/core-linux-x64-musl": "npm:1.11.21" - "@swc/core-win32-arm64-msvc": "npm:1.11.21" - "@swc/core-win32-ia32-msvc": "npm:1.11.21" - "@swc/core-win32-x64-msvc": "npm:1.11.21" + "@swc/core-darwin-arm64": "npm:1.11.29" + "@swc/core-darwin-x64": "npm:1.11.29" + "@swc/core-linux-arm-gnueabihf": "npm:1.11.29" + "@swc/core-linux-arm64-gnu": "npm:1.11.29" + "@swc/core-linux-arm64-musl": "npm:1.11.29" + "@swc/core-linux-x64-gnu": "npm:1.11.29" + "@swc/core-linux-x64-musl": "npm:1.11.29" + "@swc/core-win32-arm64-msvc": "npm:1.11.29" + "@swc/core-win32-ia32-msvc": "npm:1.11.29" + "@swc/core-win32-x64-msvc": "npm:1.11.29" "@swc/counter": "npm:^0.1.3" "@swc/types": "npm:^0.1.21" peerDependencies: @@ -2147,7 +2143,7 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10/98a0f201a0a4aa026b0b07c61c8da49d94d4ac3b059b466416c90b9b2cb4f457d836ae55ccfe90b0a89c7bdde36526ba5b7747c4e616c0d556c733e3728e9dd4 + checksum: 10/6945229bf6da91adff26033910e8e02ccc457a8229724d0539a0b32995d05949c7709cb9cae2cd7ab10cf4d346b235e22dd4d6b207ded765597304e21e6b6101 languageName: node linkType: hard @@ -2179,21 +2175,21 @@ __metadata: linkType: hard "@tanstack/react-virtual@npm:^3.0.0-beta.60": - version: 3.13.6 - resolution: "@tanstack/react-virtual@npm:3.13.6" + version: 3.13.9 + resolution: "@tanstack/react-virtual@npm:3.13.9" dependencies: - "@tanstack/virtual-core": "npm:3.13.6" + "@tanstack/virtual-core": "npm:3.13.9" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - checksum: 10/4500088f7719a5a6241f4fcf24074a2fa8cb54d9c5c50786e909e87aee98af2ac0c1513139984c388e97e8ddb65d108390d39083b0b793fbfd343976f13447c4 + checksum: 10/bb7131a3e0b629939f880f1d36b39ed4d1ba4c0fa47877c2edb6f1884a871a661fb4aefab9795ef3bea8dc031b826cad167ab1729fef4bdba976bc0bcb41caa2 languageName: node linkType: hard -"@tanstack/virtual-core@npm:3.13.6": - version: 3.13.6 - resolution: "@tanstack/virtual-core@npm:3.13.6" - checksum: 10/f6fc9e902077e68fcfc2fe936fcd90c89b128b1fca206d7e1d71bea0cf351994c11685a2aedeb9c9305596a1bc77ac9ef27eb889a2b348fcfbfa80dd608bb73c +"@tanstack/virtual-core@npm:3.13.9": + version: 3.13.9 + resolution: "@tanstack/virtual-core@npm:3.13.9" + checksum: 10/32e0d4089361ccaf6d79217c1f5596cee16403afe66913c1f97a7b571069eda8f0b74ab2b62f41705c2975ae5631c8541b02e08423adc41a1e221bc7fed00a3f languageName: node linkType: hard @@ -2363,11 +2359,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^22.5.0": - version: 22.14.1 - resolution: "@types/node@npm:22.14.1" + version: 22.15.21 + resolution: "@types/node@npm:22.15.21" dependencies: undici-types: "npm:~6.21.0" - checksum: 10/561b1ad98ef5176d6da856ffbbe494f16655149f6a7d561de0423c8784910c81267d7d6459f59d68a97b3cbae9b5996b3b5dfe64f4de3de2239d295dcf4a4dcc + checksum: 10/cb4189587cca445bfb8166c0ed39f9344d743f37f3da892f2999a99bbabda45dc773237e61ecb7d1dc83dd95718cb1b5715b0be5dd7953565b19019e36a7cf39 languageName: node linkType: hard @@ -2388,11 +2384,11 @@ __metadata: linkType: hard "@types/react-dom@npm:^19.1.2": - version: 19.1.2 - resolution: "@types/react-dom@npm:19.1.2" + version: 19.1.5 + resolution: "@types/react-dom@npm:19.1.5" peerDependencies: "@types/react": ^19.0.0 - checksum: 10/bcadf2a1f4d23db8c1aaa0d13e30866d7bcda076801bbc66df14512932e0802ddac526bf15f4cce9777cd6e0bd3803aba47a1d726977f5193b4bc173348508d0 + checksum: 10/1bbfb77aa8b40ae1b3e2d90a3cd29987aa244a34a0e398828266276eb3f83810d10ed6cb1fddaf1469653bbe7243d9b75f6e245c21c8bb6224169c48bedfa536 languageName: node linkType: hard @@ -2406,11 +2402,11 @@ __metadata: linkType: hard "@types/react@npm:^19.1.2": - version: 19.1.2 - resolution: "@types/react@npm:19.1.2" + version: 19.1.6 + resolution: "@types/react@npm:19.1.6" dependencies: csstype: "npm:^3.0.2" - checksum: 10/17803797227d2fc07a2cd6c17d57b1ea9b01eb16eca6318be60852c8d7467b4b58e675742f53d77ff4a37621a5814f16847dede73999181cb7f9449c1784fab6 + checksum: 10/722a8efb36dedaf5cfe226287214df0982d612ff33ebf005dbbb646279647e5987da661f2d9fe6b8a4516d3b29dd6cb3a708641265861251abb682e8e90540cf languageName: node linkType: hard @@ -2452,114 +2448,114 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^8.2.0": - version: 8.30.1 - resolution: "@typescript-eslint/eslint-plugin@npm:8.30.1" + version: 8.32.1 + resolution: "@typescript-eslint/eslint-plugin@npm:8.32.1" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.30.1" - "@typescript-eslint/type-utils": "npm:8.30.1" - "@typescript-eslint/utils": "npm:8.30.1" - "@typescript-eslint/visitor-keys": "npm:8.30.1" + "@typescript-eslint/scope-manager": "npm:8.32.1" + "@typescript-eslint/type-utils": "npm:8.32.1" + "@typescript-eslint/utils": "npm:8.32.1" + "@typescript-eslint/visitor-keys": "npm:8.32.1" graphemer: "npm:^1.4.0" - ignore: "npm:^5.3.1" + ignore: "npm:^7.0.0" natural-compare: "npm:^1.4.0" - ts-api-utils: "npm:^2.0.1" + ts-api-utils: "npm:^2.1.0" peerDependencies: "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10/769b0365c1eda5d15ecb24cd297ca60d264001d46e14f42fae30f6f519610414726885a8d5cf57ef5a01484f92166104a74fb2ca2fd2af28f11cab149b6de591 + checksum: 10/442205dd4e9fe016cf4f3edf292f5dba696c9e7d6c32c785a8bff0833974149513feab6c30d21e2f3c509bd2b2833edfb3175c0ee220661a02da59fd79100bb4 languageName: node linkType: hard "@typescript-eslint/parser@npm:^8.2.0": - version: 8.30.1 - resolution: "@typescript-eslint/parser@npm:8.30.1" + version: 8.32.1 + resolution: "@typescript-eslint/parser@npm:8.32.1" dependencies: - "@typescript-eslint/scope-manager": "npm:8.30.1" - "@typescript-eslint/types": "npm:8.30.1" - "@typescript-eslint/typescript-estree": "npm:8.30.1" - "@typescript-eslint/visitor-keys": "npm:8.30.1" + "@typescript-eslint/scope-manager": "npm:8.32.1" + "@typescript-eslint/types": "npm:8.32.1" + "@typescript-eslint/typescript-estree": "npm:8.32.1" + "@typescript-eslint/visitor-keys": "npm:8.32.1" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10/ffff7bfa7e6b0233feb2d2c9bc27e0fd16faa50a00e9853efcc59de312420ef5a54b94833e80727bc5c966c1b211d70601c2337e33cc5610fa2f28d858642f5b + checksum: 10/3c2ab90fec0aaaa57f883bf3963030e74402de82a73b8e47a19109accf18ee1441878bcba73bb9584890eedb56215000d6652196d9bfde05272c043d1c9c529d languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.30.1": - version: 8.30.1 - resolution: "@typescript-eslint/scope-manager@npm:8.30.1" +"@typescript-eslint/scope-manager@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/scope-manager@npm:8.32.1" dependencies: - "@typescript-eslint/types": "npm:8.30.1" - "@typescript-eslint/visitor-keys": "npm:8.30.1" - checksum: 10/ecae69888a06126d57f3ac2db9935199b708406e8cd84e0918dd8302f31771145d62b52bf3c454be43c5aa4f93685d3f8c15b118d0de1c0323e02113c127aa66 + "@typescript-eslint/types": "npm:8.32.1" + "@typescript-eslint/visitor-keys": "npm:8.32.1" + checksum: 10/f81f71bd88e6bed90c9a42ed3cd26a360f8f7ca53186cea33b872194bf724a4635dd3aead5002b18de6cc5d1df9840445af1f7fc4d117f452705ccebdb6c0b0f languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.30.1": - version: 8.30.1 - resolution: "@typescript-eslint/type-utils@npm:8.30.1" +"@typescript-eslint/type-utils@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/type-utils@npm:8.32.1" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.30.1" - "@typescript-eslint/utils": "npm:8.30.1" + "@typescript-eslint/typescript-estree": "npm:8.32.1" + "@typescript-eslint/utils": "npm:8.32.1" debug: "npm:^4.3.4" - ts-api-utils: "npm:^2.0.1" + ts-api-utils: "npm:^2.1.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10/c7a285bae7806a1e4aa9840feb727fe47f5de4ef3d68ecd1bbebc593a72ec08df17953098d71dc83a6936a42d5a44bcd4a49e6f067ec0947293795b0a389498f + checksum: 10/e50a6f2a16ccd916ed32a4d0b6c1011b8c177d1f789dfa629942efbd6cd3b1f5b9dc42c67b64e8c377338b34906e0191b9165caa4302d92979f13cd06d1b4234 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.30.1": - version: 8.30.1 - resolution: "@typescript-eslint/types@npm:8.30.1" - checksum: 10/342ec75ba2c596ffaa93612c6c6afd2b0a05c346bdfa73ac208b49f1969b48a3f739f306431f9a10cf34e99e8585ca924fdde7f9508dd7869142b25f399d6bd6 +"@typescript-eslint/types@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/types@npm:8.32.1" + checksum: 10/3a310e4bafa8dd6ddc83cd8627048ebe54660982348531bbbeee3d0fb06ffdacce6ac14200159166774bd8797664686f5d0bf19d3dd33216daccbc0e48cd3e51 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.30.1": - version: 8.30.1 - resolution: "@typescript-eslint/typescript-estree@npm:8.30.1" +"@typescript-eslint/typescript-estree@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/typescript-estree@npm:8.32.1" dependencies: - "@typescript-eslint/types": "npm:8.30.1" - "@typescript-eslint/visitor-keys": "npm:8.30.1" + "@typescript-eslint/types": "npm:8.32.1" + "@typescript-eslint/visitor-keys": "npm:8.32.1" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" minimatch: "npm:^9.0.4" semver: "npm:^7.6.0" - ts-api-utils: "npm:^2.0.1" + ts-api-utils: "npm:^2.1.0" peerDependencies: typescript: ">=4.8.4 <5.9.0" - checksum: 10/60c307fbb8ec86d28e4b2237b624427b7aee737bced82e5f94acc84229eae907e7742ccf0c9c0825326b3ccb9f72b14075893d90e06c28f8ce2fd04502c0b410 + checksum: 10/8b956ce05bf64d412e33b7d564db9d5620a7c2600ab04f2c6bb7561bcf46593f14b77ca9c895a4480869a323565a140985a4f4760f9df58f71114c4f502b3c78 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.30.1": - version: 8.30.1 - resolution: "@typescript-eslint/utils@npm:8.30.1" +"@typescript-eslint/utils@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/utils@npm:8.32.1" dependencies: - "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.30.1" - "@typescript-eslint/types": "npm:8.30.1" - "@typescript-eslint/typescript-estree": "npm:8.30.1" + "@eslint-community/eslint-utils": "npm:^4.7.0" + "@typescript-eslint/scope-manager": "npm:8.32.1" + "@typescript-eslint/types": "npm:8.32.1" + "@typescript-eslint/typescript-estree": "npm:8.32.1" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10/97d27d2f0bce6f60a1857d511dba401f076766477a2896405aca52e860f9c5460111299f6e17642e18e578be1dbf850a0b1202ba61aa65d6a52646429ff9c99c + checksum: 10/9383cea185f3b54124a639f806d627f686637460e2eea431ccb9eeb6452dcd5a893856e051eb5925510f8aeb9317f8b7d23d9f39ca8fa80c46f2b797dae77d9c languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.30.1": - version: 8.30.1 - resolution: "@typescript-eslint/visitor-keys@npm:8.30.1" +"@typescript-eslint/visitor-keys@npm:8.32.1": + version: 8.32.1 + resolution: "@typescript-eslint/visitor-keys@npm:8.32.1" dependencies: - "@typescript-eslint/types": "npm:8.30.1" + "@typescript-eslint/types": "npm:8.32.1" eslint-visitor-keys: "npm:^4.2.0" - checksum: 10/0c08169123ebca4ab04464486a7f41093ba77e75fb088e2c8af9f36bb4c0f785d4e82940f6b62e47457d4758fa57a53423db4226250d6eb284e75a3f96f03f2b + checksum: 10/a1cbfbdac89d443dfc2718673e2cc1e884fc942678b3d1c3149cdab8123c71685473e362d794fcee1e975ceb45d16f44025a3f0bebe9b09a6bf8679f060d6817 languageName: node linkType: hard @@ -2570,143 +2566,152 @@ __metadata: languageName: node linkType: hard -"@unrs/resolver-binding-darwin-arm64@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.5.0" +"@unrs/resolver-binding-darwin-arm64@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.7.2" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-darwin-x64@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-darwin-x64@npm:1.5.0" +"@unrs/resolver-binding-darwin-x64@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-darwin-x64@npm:1.7.2" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-freebsd-x64@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.5.0" +"@unrs/resolver-binding-freebsd-x64@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.7.2" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.5.0" +"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.2" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.5.0" +"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.2" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-gnu@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.5.0" +"@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.2" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-musl@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.5.0" +"@unrs/resolver-binding-linux-arm64-musl@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.7.2" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.5.0" +"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.2" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.5.0" +"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.2" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-s390x-gnu@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.5.0" +"@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.2" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.2" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-gnu@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.5.0" +"@unrs/resolver-binding-linux-x64-gnu@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.7.2" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-musl@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.5.0" +"@unrs/resolver-binding-linux-x64-musl@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.7.2" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-wasm32-wasi@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.5.0" +"@unrs/resolver-binding-wasm32-wasi@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.7.2" dependencies: - "@napi-rs/wasm-runtime": "npm:^0.2.8" + "@napi-rs/wasm-runtime": "npm:^0.2.9" conditions: cpu=wasm32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-arm64-msvc@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.5.0" +"@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.2" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-win32-ia32-msvc@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.5.0" +"@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.2" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-x64-msvc@npm:1.5.0": - version: 1.5.0 - resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.5.0" +"@unrs/resolver-binding-win32-x64-msvc@npm:1.7.2": + version: 1.7.2 + resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.7.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard "@vitejs/plugin-react-swc@npm:^3.7.0": - version: 3.9.0 - resolution: "@vitejs/plugin-react-swc@npm:3.9.0" + version: 3.10.0 + resolution: "@vitejs/plugin-react-swc@npm:3.10.0" dependencies: - "@swc/core": "npm:^1.11.21" + "@rolldown/pluginutils": "npm:1.0.0-beta.9" + "@swc/core": "npm:^1.11.22" peerDependencies: vite: ^4 || ^5 || ^6 - checksum: 10/545dddee3c2f7f35f37c680f79bebb98f3968209470ec56c594556410d498b41cf86df60d2ab9a56c69b02bef12ee3198371becc804b85172ec97ee0d2d7633d + checksum: 10/99ecf71de8f5a854bb2fc8813a6cff6bbc94477f76b0805e75515842e6c7c5674fd368ea81428b481812f19ee88a2cde226b4c304974adb54b36e2a41467bd02 languageName: node linkType: hard "@vitejs/plugin-react@npm:^4.3.1": - version: 4.4.0 - resolution: "@vitejs/plugin-react@npm:4.4.0" + version: 4.5.0 + resolution: "@vitejs/plugin-react@npm:4.5.0" dependencies: "@babel/core": "npm:^7.26.10" "@babel/plugin-transform-react-jsx-self": "npm:^7.25.9" "@babel/plugin-transform-react-jsx-source": "npm:^7.25.9" + "@rolldown/pluginutils": "npm:1.0.0-beta.9" "@types/babel__core": "npm:^7.20.5" react-refresh: "npm:^0.17.0" peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 - checksum: 10/ba4de3e93faa523268566441893c71485dcc3a9fce21103b471d31b78ea0be35b0f03022af58e34c2fa3da9a2b328f88a57c52d10aa908d230953dcf99c72af3 + checksum: 10/0a1c4815fb5a404681443f6e3c4b5a82ec4527dc9fb606f9282bbff5d487b9af5e3433eee2386d4582045bcd691d1aca93df3cbf558164b763b7464710544fe8 languageName: node linkType: hard @@ -3323,9 +3328,9 @@ __metadata: linkType: hard "bn.js@npm:^5.2.1": - version: 5.2.1 - resolution: "bn.js@npm:5.2.1" - checksum: 10/7a7e8764d7a6e9708b8b9841b2b3d6019cc154d2fc23716d0efecfe1e16921b7533c6f7361fb05471eab47986c4aa310c270f88e3507172104632ac8df2cfd84 + version: 5.2.2 + resolution: "bn.js@npm:5.2.2" + checksum: 10/51ebb2df83b33e5d8581165206e260d5e9c873752954616e5bf3758952b84d7399a9c6d00852815a0aeefb1150a7f34451b62d4287342d457fa432eee869e83e languageName: node linkType: hard @@ -3358,16 +3363,16 @@ __metadata: linkType: hard "browserslist@npm:^4.24.0, browserslist@npm:^4.24.4": - version: 4.24.4 - resolution: "browserslist@npm:4.24.4" + version: 4.24.5 + resolution: "browserslist@npm:4.24.5" dependencies: - caniuse-lite: "npm:^1.0.30001688" - electron-to-chromium: "npm:^1.5.73" + caniuse-lite: "npm:^1.0.30001716" + electron-to-chromium: "npm:^1.5.149" node-releases: "npm:^2.0.19" - update-browserslist-db: "npm:^1.1.1" + update-browserslist-db: "npm:^1.1.3" bin: browserslist: cli.js - checksum: 10/11fda105e803d891311a21a1f962d83599319165faf471c2d70e045dff82a12128f5b50b1fcba665a2352ad66147aaa248a9d2355a80aadc3f53375eb3de2e48 + checksum: 10/93fde829b77f20e2c4e1e0eaed154681c05e4828420e4afba790d480daa5de742977a44bbac8567881b8fbec3da3dea7ca1cb578ac1fd4385ef4ae91ca691d64 languageName: node linkType: hard @@ -3504,10 +3509,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001688, caniuse-lite@npm:^1.0.30001702": - version: 1.0.30001714 - resolution: "caniuse-lite@npm:1.0.30001714" - checksum: 10/72ab5f5b3619f7ce53d46c08eea0efb977825fa1c895572d9ae20ed56a2b98e8f668b3167def711cde3b4ce8e07cc9e1fb8823783305453f6d2c2fd5341914d8 +"caniuse-lite@npm:^1.0.30001702, caniuse-lite@npm:^1.0.30001716": + version: 1.0.30001718 + resolution: "caniuse-lite@npm:1.0.30001718" + checksum: 10/e172a4c156f743cc947e659f353ad9edb045725cc109a02cc792dcbf98569356ebfa4bb4356e3febf87427aab0951c34c1ee5630629334f25ae6f76de7d86fd0 languageName: node linkType: hard @@ -4130,15 +4135,15 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:4.4.0, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.7, debug@npm:^4.4.0": - version: 4.4.0 - resolution: "debug@npm:4.4.0" +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.7, debug@npm:^4.4.0": + version: 4.4.1 + resolution: "debug@npm:4.4.1" dependencies: ms: "npm:^2.1.3" peerDependenciesMeta: supports-color: optional: true - checksum: 10/1847944c2e3c2c732514b93d11886575625686056cd765336212dc15de2d2b29612b6cd80e1afba767bb8e1803b778caf9973e98169ef1a24a7a7009e1820367 + checksum: 10/8e2709b2144f03c7950f8804d01ccb3786373df01e406a0f66928e47001cf2d336cbed9ee137261d4f90d68d8679468c755e3548ed83ddacdc82b194d2468afe languageName: node linkType: hard @@ -4151,6 +4156,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:4.4.0": + version: 4.4.0 + resolution: "debug@npm:4.4.0" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10/1847944c2e3c2c732514b93d11886575625686056cd765336212dc15de2d2b29612b6cd80e1afba767bb8e1803b778caf9973e98169ef1a24a7a7009e1820367 + languageName: node + linkType: hard + "debug@npm:^3.1.0, debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" @@ -4372,10 +4389,10 @@ __metadata: languageName: node linkType: hard -"electron-to-chromium@npm:^1.5.73": - version: 1.5.137 - resolution: "electron-to-chromium@npm:1.5.137" - checksum: 10/97645a6400b70a04906f83812fd1b3c3992f5b5dff0413298857df096c6aad09299f0d8f491b3b7282fe4360dc2ad2c150363d4e662cd7dd7be32f5fc8778c5d +"electron-to-chromium@npm:^1.5.149": + version: 1.5.158 + resolution: "electron-to-chromium@npm:1.5.158" + checksum: 10/d8de199f8506ee1d51277ccab0557a1bf3f6737d42979365ec71ab5ce7ef10b7e1ecfa6ea2fa509f64afd52c6a57c765b2d2a215e67b5c6a3593f79a87438e2b languageName: node linkType: hard @@ -4459,25 +4476,25 @@ __metadata: linkType: hard "es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9": - version: 1.23.9 - resolution: "es-abstract@npm:1.23.9" + version: 1.23.10 + resolution: "es-abstract@npm:1.23.10" dependencies: array-buffer-byte-length: "npm:^1.0.2" arraybuffer.prototype.slice: "npm:^1.0.4" available-typed-arrays: "npm:^1.0.7" call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.3" + call-bound: "npm:^1.0.4" data-view-buffer: "npm:^1.0.2" data-view-byte-length: "npm:^1.0.2" data-view-byte-offset: "npm:^1.0.1" es-define-property: "npm:^1.0.1" es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" + es-object-atoms: "npm:^1.1.1" es-set-tostringtag: "npm:^2.1.0" es-to-primitive: "npm:^1.3.0" function.prototype.name: "npm:^1.1.8" - get-intrinsic: "npm:^1.2.7" - get-proto: "npm:^1.0.0" + get-intrinsic: "npm:^1.3.0" + get-proto: "npm:^1.0.1" get-symbol-description: "npm:^1.1.0" globalthis: "npm:^1.0.4" gopd: "npm:^1.2.0" @@ -4493,13 +4510,13 @@ __metadata: is-shared-array-buffer: "npm:^1.0.4" is-string: "npm:^1.1.1" is-typed-array: "npm:^1.1.15" - is-weakref: "npm:^1.1.0" + is-weakref: "npm:^1.1.1" math-intrinsics: "npm:^1.1.0" - object-inspect: "npm:^1.13.3" + object-inspect: "npm:^1.13.4" object-keys: "npm:^1.1.1" object.assign: "npm:^4.1.7" own-keys: "npm:^1.0.1" - regexp.prototype.flags: "npm:^1.5.3" + regexp.prototype.flags: "npm:^1.5.4" safe-array-concat: "npm:^1.1.3" safe-push-apply: "npm:^1.0.0" safe-regex-test: "npm:^1.1.0" @@ -4512,8 +4529,8 @@ __metadata: typed-array-byte-offset: "npm:^1.0.4" typed-array-length: "npm:^1.0.7" unbox-primitive: "npm:^1.1.0" - which-typed-array: "npm:^1.1.18" - checksum: 10/31a321966d760d88fc2ed984104841b42f4f24fc322b246002b9be0af162e03803ee41fcc3cf8be89e07a27ba3033168f877dd983703cb81422ffe5322a27582 + which-typed-array: "npm:^1.1.19" + checksum: 10/d3b6d560fa5eb6f3b4da4d4031d0a9455a7ec18f64ae0698831c0ce13d241f074a40e9711be3eb5f50c5844dde6070439ccfd6ce789a12bc9676e76379616d0c languageName: node linkType: hard @@ -4556,9 +4573,9 @@ __metadata: linkType: hard "es-module-lexer@npm:^1.5.4": - version: 1.6.0 - resolution: "es-module-lexer@npm:1.6.0" - checksum: 10/807ee7020cc46a9c970c78cad1f2f3fc139877e5ebad7f66dbfbb124d451189ba1c48c1c632bd5f8ce1b8af2caef3fca340ba044a410fa890d17b080a59024bb + version: 1.7.0 + resolution: "es-module-lexer@npm:1.7.0" + checksum: 10/b6f3e576a3fed4d82b0d0ad4bbf6b3a5ad694d2e7ce8c4a069560da3db6399381eaba703616a182b16dde50ce998af64e07dcf49f2ae48153b9e07be3f107087 languageName: node linkType: hard @@ -4741,16 +4758,16 @@ __metadata: linkType: hard "eslint-import-resolver-typescript@npm:^3.6.1": - version: 3.10.0 - resolution: "eslint-import-resolver-typescript@npm:3.10.0" + version: 3.10.1 + resolution: "eslint-import-resolver-typescript@npm:3.10.1" dependencies: "@nolyfill/is-core-module": "npm:1.0.39" debug: "npm:^4.4.0" get-tsconfig: "npm:^4.10.0" is-bun-module: "npm:^2.0.0" stable-hash: "npm:^0.0.5" - tinyglobby: "npm:^0.2.12" - unrs-resolver: "npm:^1.3.2" + tinyglobby: "npm:^0.2.13" + unrs-resolver: "npm:^1.6.2" peerDependencies: eslint: "*" eslint-plugin-import: "*" @@ -4760,7 +4777,7 @@ __metadata: optional: true eslint-plugin-import-x: optional: true - checksum: 10/f289b9279e7a6c63700d05d0712b335113651c6501f01e00918b3731ad17cae0208c9ae034fb72e73078517bb10b62c4e500539da22728293fa88e11522ba101 + checksum: 10/b8d6a9b2045c70f043f722f78c9e65bc0283126f0ad92c8f07473f7647d77f7b1562f765a472f17e06b81897b407091c0ec9f2e4592b158c9fd92d0b0c33de89 languageName: node linkType: hard @@ -4876,17 +4893,17 @@ __metadata: linkType: hard "eslint@npm:^9.9.1": - version: 9.24.0 - resolution: "eslint@npm:9.24.0" + version: 9.27.0 + resolution: "eslint@npm:9.27.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.12.1" "@eslint/config-array": "npm:^0.20.0" - "@eslint/config-helpers": "npm:^0.2.0" - "@eslint/core": "npm:^0.12.0" + "@eslint/config-helpers": "npm:^0.2.1" + "@eslint/core": "npm:^0.14.0" "@eslint/eslintrc": "npm:^3.3.1" - "@eslint/js": "npm:9.24.0" - "@eslint/plugin-kit": "npm:^0.2.7" + "@eslint/js": "npm:9.27.0" + "@eslint/plugin-kit": "npm:^0.3.1" "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" "@humanwhocodes/retry": "npm:^0.4.2" @@ -4921,7 +4938,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10/05810e135c1f429be451a4be92283c0be204010bb0ea71edfeae1d25ff917cbc5a229144ee55853a085088c7e4092e59a28c0dae87a865ef9600ad4438861d4a + checksum: 10/75f02b851c6f8534d1289de1bd957637a56725754bea03a0a710d6740a036aca81d5e600557633fca7ab774275aa94044ca05772f88c4f464cd42834eff37145 languageName: node linkType: hard @@ -4995,8 +5012,8 @@ __metadata: linkType: hard "ethers@npm:^6.13.5": - version: 6.13.6 - resolution: "ethers@npm:6.13.6" + version: 6.14.3 + resolution: "ethers@npm:6.14.3" dependencies: "@adraffy/ens-normalize": "npm:1.10.1" "@noble/curves": "npm:1.2.0" @@ -5005,7 +5022,7 @@ __metadata: aes-js: "npm:4.0.0-beta.5" tslib: "npm:2.7.0" ws: "npm:8.17.1" - checksum: 10/271ea38276d28b0f8ed0a52c3c5c6f0efc3b2a9e17b29454ec3248d248c0b4793781d91e5fbf784781906afa30ec5b8bd670a9b0e71af271b1d3bcc0177e63df + checksum: 10/ce68b962f117fd651090bd8096fde708428ce23f0d044c365bc8cbf2e8f3cb70e1661ff0194364848ccac06d607d4a977f2a0c9e370b9712809c0ca6c36131f9 languageName: node linkType: hard @@ -5170,15 +5187,15 @@ __metadata: languageName: node linkType: hard -"fdir@npm:^6.4.3": - version: 6.4.3 - resolution: "fdir@npm:6.4.3" +"fdir@npm:^6.4.4": + version: 6.4.4 + resolution: "fdir@npm:6.4.4" peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true - checksum: 10/8e6d20f4590dc168de1374a9cadaa37e20ca6e0b822aa247c230e7ea1d9e9674a68cd816146435e4ecc98f9285091462ab7e5e56eebc9510931a1794e4db68b2 + checksum: 10/d0000d6b790059b35f4ed19acc8847a66452e0bc68b28766c929ffd523e5ec2083811fc8a545e4a1d4945ce70e887b3a610c145c681073b506143ae3076342ed languageName: node linkType: hard @@ -5527,11 +5544,11 @@ __metadata: linkType: hard "get-tsconfig@npm:^4.10.0": - version: 4.10.0 - resolution: "get-tsconfig@npm:4.10.0" + version: 4.10.1 + resolution: "get-tsconfig@npm:4.10.1" dependencies: resolve-pkg-maps: "npm:^1.0.0" - checksum: 10/5259b5c99a1957114337d9d0603b4a305ec9e29fa6cac7d2fbf634ba6754a0cc88bfd281a02416ce64e604b637d3cb239185381a79a5842b17fb55c097b38c4b + checksum: 10/04d63f47fdecaefbd1f73ec02949be4ec4db7d6d9fbc8d4e81f9a4bb1c6f876e48943712f2f9236643d3e4d61d9a7b06da08564d08b034631ebe3f5605bef237 languageName: node linkType: hard @@ -5808,9 +5825,9 @@ __metadata: linkType: hard "http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: 10/362d5ed66b12ceb9c0a328fb31200b590ab1b02f4a254a697dc796850cc4385603e75f53ec59f768b2dad3bfa1464bd229f7de278d2899a0e3beffc634b6683f + version: 4.2.0 + resolution: "http-cache-semantics@npm:4.2.0" + checksum: 10/4efd2dfcfeea9d5e88c84af450b9980be8a43c2c8179508b1c57c7b4421c855f3e8efe92fa53e0b3f4a43c85824ada930eabbc306d1b3beab750b6dcc5187693 languageName: node linkType: hard @@ -5884,13 +5901,20 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.3.1": +"ignore@npm:^5.2.0": version: 5.3.2 resolution: "ignore@npm:5.3.2" checksum: 10/cceb6a457000f8f6a50e1196429750d782afce5680dd878aa4221bd79972d68b3a55b4b1458fc682be978f4d3c6a249046aa0880637367216444ab7b014cfc98 languageName: node linkType: hard +"ignore@npm:^7.0.0": + version: 7.0.4 + resolution: "ignore@npm:7.0.4" + checksum: 10/01ee59df2ffd14b0844efc17f5ab3642c848e45efdb7cc757928da5e076cb74313748f77f5ffe362a6407c5e7cc71f10fad5e8eb9d91c1a17c4e7ef2c1f8e40e + languageName: node + linkType: hard + "import-fresh@npm:^3.2.1": version: 3.3.1 resolution: "import-fresh@npm:3.3.1" @@ -6322,7 +6346,7 @@ __metadata: languageName: node linkType: hard -"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.0": +"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.1": version: 1.1.1 resolution: "is-weakref@npm:1.1.1" dependencies: @@ -6716,8 +6740,8 @@ __metadata: linkType: hard "lint-staged@npm:^15.2.9": - version: 15.5.1 - resolution: "lint-staged@npm:15.5.1" + version: 15.5.2 + resolution: "lint-staged@npm:15.5.2" dependencies: chalk: "npm:^5.4.1" commander: "npm:^13.1.0" @@ -6731,7 +6755,7 @@ __metadata: yaml: "npm:^2.7.0" bin: lint-staged: bin/lint-staged.js - checksum: 10/58662ea6e40c9292a3499ffd01cf6c1e8415f79bee7526fc8d9abbb173ba020d0099d7996a407f67be8e0f23cc6a6f898d86b7e27f41f37ba924ec25597b7914 + checksum: 10/523c332d6cb6e34972a6530a7a2487307555e784df9466c82f2b8d17c8090a3db561a6362065ae6b63048c25fcb85c9e32057cd0bfb756bf7ab185bea1dbb89c languageName: node linkType: hard @@ -6757,8 +6781,8 @@ __metadata: linkType: hard "listr2@npm:^8.2.5": - version: 8.3.2 - resolution: "listr2@npm:8.3.2" + version: 8.3.3 + resolution: "listr2@npm:8.3.3" dependencies: cli-truncate: "npm:^4.0.0" colorette: "npm:^2.0.20" @@ -6766,7 +6790,7 @@ __metadata: log-update: "npm:^6.1.0" rfdc: "npm:^1.4.1" wrap-ansi: "npm:^9.0.0" - checksum: 10/4f07e2e05e322fd6458339ee2460b337477089b87882b29afa3cc5c1eacfaa04006d99b370756bd3cf0c9d64823d5a063646583878b459468c173df8476f03c5 + checksum: 10/92f1bb60e9a0f4fed9bff89fbab49d80fc889d29cf47c0a612f5a62a036dead49d3f697d3a79e36984768529bd3bfacb3343859eafceba179a8e66c034d99300 languageName: node linkType: hard @@ -7747,6 +7771,15 @@ __metadata: languageName: node linkType: hard +"napi-postinstall@npm:^0.2.2": + version: 0.2.4 + resolution: "napi-postinstall@npm:0.2.4" + bin: + napi-postinstall: lib/cli.js + checksum: 10/286785f884b872102fb284847ecc693101f70126b1fc7a97e19293929ce7f08802b41f89398015cce0797070ea3ce6871939a3c1e693c04cf594f7939dbe8cfb + languageName: node + linkType: hard + "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -7969,7 +8002,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.13.3": +"object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": version: 1.13.4 resolution: "object-inspect@npm:1.13.4" checksum: 10/aa13b1190ad3e366f6c83ad8a16ed37a19ed57d267385aa4bfdccda833d7b90465c057ff6c55d035a6b2e52c1a2295582b294217a0a3a1ae7abdd6877ef781fb @@ -8633,9 +8666,9 @@ __metadata: linkType: hard "property-information@npm:^7.0.0": - version: 7.0.0 - resolution: "property-information@npm:7.0.0" - checksum: 10/55f443088456cddc2fe499d6f5895e68cbd465e39dc318ecc63a0d2432d1b918f51fb6d13f8b1adf8a78337bc4e608baa6e46afbe0c6d50d2e38588b2c409f86 + version: 7.1.0 + resolution: "property-information@npm:7.1.0" + checksum: 10/896d38a52ad7170de73f832d277c69e76a9605d941ebb3f0d6e56271414a7fdf95ff6d2819e68036b8a0c7d2d4d88bf1d4a5765c032cb19c2343567ee3a14b15 languageName: node linkType: hard @@ -8762,26 +8795,26 @@ __metadata: linkType: hard "react-router-dom@npm:^6.26.1": - version: 6.30.0 - resolution: "react-router-dom@npm:6.30.0" + version: 6.30.1 + resolution: "react-router-dom@npm:6.30.1" dependencies: "@remix-run/router": "npm:1.23.0" - react-router: "npm:6.30.0" + react-router: "npm:6.30.1" peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: 10/e161e39d56ee799553d0bc6c8f19c901ee8cdbae218094f41cbc18f3262cb4d5e9f8381bd47a7e59d30e55c0cdd0a6803aa98537f2f9122efbce5c66a3041a35 + checksum: 10/d61f04a36ca8a0a61e71bac2616f3f0d4142ced4a473d872738ca363b43d042f4d6dc249e7f7ae1c06f89599277e2fde11583d61cf6b34e999e79caf845acb37 languageName: node linkType: hard -"react-router@npm:6.30.0, react-router@npm:^6.26.1": - version: 6.30.0 - resolution: "react-router@npm:6.30.0" +"react-router@npm:6.30.1, react-router@npm:^6.26.1": + version: 6.30.1 + resolution: "react-router@npm:6.30.1" dependencies: "@remix-run/router": "npm:1.23.0" peerDependencies: react: ">=16.8" - checksum: 10/2a449f2769b7b001f9ea16108b83cd014b50c621a378ef2a99bb823a418833bc1b213f5f1665c97ecbdfa9391f9593693ace09a292969aa7259a45070b5e066a + checksum: 10/880d6cafd6376dd1e624f6f600b7a208c4142d60eaea66241980ef57260c237b3465c3ff96b28f21ae354410345bbbb1817c3bba083012aade6626027d53506f languageName: node linkType: hard @@ -8876,14 +8909,7 @@ __metadata: languageName: node linkType: hard -"regenerator-runtime@npm:^0.14.0": - version: 0.14.1 - resolution: "regenerator-runtime@npm:0.14.1" - checksum: 10/5db3161abb311eef8c45bcf6565f4f378f785900ed3945acf740a9888c792f75b98ecb77f0775f3bf95502ff423529d23e94f41d80c8256e8fa05ed4b07cf471 - languageName: node - linkType: hard - -"regexp.prototype.flags@npm:^1.5.3": +"regexp.prototype.flags@npm:^1.5.3, regexp.prototype.flags@npm:^1.5.4": version: 1.5.4 resolution: "regexp.prototype.flags@npm:1.5.4" dependencies: @@ -9105,29 +9131,29 @@ __metadata: linkType: hard "rollup@npm:^4.20.0": - version: 4.40.0 - resolution: "rollup@npm:4.40.0" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.40.0" - "@rollup/rollup-android-arm64": "npm:4.40.0" - "@rollup/rollup-darwin-arm64": "npm:4.40.0" - "@rollup/rollup-darwin-x64": "npm:4.40.0" - "@rollup/rollup-freebsd-arm64": "npm:4.40.0" - "@rollup/rollup-freebsd-x64": "npm:4.40.0" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.40.0" - "@rollup/rollup-linux-arm-musleabihf": "npm:4.40.0" - "@rollup/rollup-linux-arm64-gnu": "npm:4.40.0" - "@rollup/rollup-linux-arm64-musl": "npm:4.40.0" - "@rollup/rollup-linux-loongarch64-gnu": "npm:4.40.0" - "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.40.0" - "@rollup/rollup-linux-riscv64-gnu": "npm:4.40.0" - "@rollup/rollup-linux-riscv64-musl": "npm:4.40.0" - "@rollup/rollup-linux-s390x-gnu": "npm:4.40.0" - "@rollup/rollup-linux-x64-gnu": "npm:4.40.0" - "@rollup/rollup-linux-x64-musl": "npm:4.40.0" - "@rollup/rollup-win32-arm64-msvc": "npm:4.40.0" - "@rollup/rollup-win32-ia32-msvc": "npm:4.40.0" - "@rollup/rollup-win32-x64-msvc": "npm:4.40.0" + version: 4.41.1 + resolution: "rollup@npm:4.41.1" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.41.1" + "@rollup/rollup-android-arm64": "npm:4.41.1" + "@rollup/rollup-darwin-arm64": "npm:4.41.1" + "@rollup/rollup-darwin-x64": "npm:4.41.1" + "@rollup/rollup-freebsd-arm64": "npm:4.41.1" + "@rollup/rollup-freebsd-x64": "npm:4.41.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.41.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.41.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.41.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.41.1" + "@rollup/rollup-linux-loongarch64-gnu": "npm:4.41.1" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.41.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.41.1" + "@rollup/rollup-linux-riscv64-musl": "npm:4.41.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.41.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.41.1" + "@rollup/rollup-linux-x64-musl": "npm:4.41.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.41.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.41.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.41.1" "@types/estree": "npm:1.0.7" fsevents: "npm:~2.3.2" dependenciesMeta: @@ -9175,7 +9201,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 10/59976247cd855bc48b7192c82a6751bd04213e5a265109c652a6c43bde9056038c6399c0cf50ea3001edd5c11bb878a59e1055bb651b3bd6bbd0373c0345ed0c + checksum: 10/b7b5a5668bc05445766b1b7342475d9dbb173925e806805720bcfad277a591c5452f11fe1f1fd9f8030b4e52f093610a10200599258ad5faad9104944b984c36 languageName: node linkType: hard @@ -9280,11 +9306,11 @@ __metadata: linkType: hard "semver@npm:^7.3.2, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.7.1": - version: 7.7.1 - resolution: "semver@npm:7.7.1" + version: 7.7.2 + resolution: "semver@npm:7.7.2" bin: semver: bin/semver.js - checksum: 10/4cfa1eb91ef3751e20fc52e47a935a0118d56d6f15a837ab814da0c150778ba2ca4f1a4d9068b33070ea4273629e615066664c2cfcd7c272caf7a8a0f6518b2c + checksum: 10/7a24cffcaa13f53c09ce55e05efe25cd41328730b2308678624f8b9f5fc3093fc4d189f47950f0b811ff8f3c3039c24a2c36717ba7961615c682045bf03e1dda languageName: node linkType: hard @@ -10052,13 +10078,13 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.12": - version: 0.2.12 - resolution: "tinyglobby@npm:0.2.12" +"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13": + version: 0.2.14 + resolution: "tinyglobby@npm:0.2.14" dependencies: - fdir: "npm:^6.4.3" + fdir: "npm:^6.4.4" picomatch: "npm:^4.0.2" - checksum: 10/4ad28701fa9118b32ef0e27f409e0a6c5741e8b02286d50425c1f6f71e6d6c6ded9dd5bbbbb714784b08623c4ec4d150151f1d3d996cfabe0495f908ab4f7002 + checksum: 10/3d306d319718b7cc9d79fb3f29d8655237aa6a1f280860a217f93417039d0614891aee6fc47c5db315f4fcc6ac8d55eb8e23e2de73b2c51a431b42456d9e5764 languageName: node linkType: hard @@ -10154,7 +10180,7 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^2.0.1": +"ts-api-utils@npm:^2.1.0": version: 2.1.0 resolution: "ts-api-utils@npm:2.1.0" peerDependencies: @@ -10209,8 +10235,8 @@ __metadata: linkType: hard "tsconfck@npm:^3.0.3": - version: 3.1.5 - resolution: "tsconfck@npm:3.1.5" + version: 3.1.6 + resolution: "tsconfck@npm:3.1.6" peerDependencies: typescript: ^5.0.0 peerDependenciesMeta: @@ -10218,7 +10244,7 @@ __metadata: optional: true bin: tsconfck: bin/tsconfck.js - checksum: 10/46b68f0fcec7da045490e427400c2a7fea67bdb6dae871257e8d2ec48e9dc99674214df86ff51c6d01ceb68ba9d7d806d3b69de432efa3c76b5fba160c252857 + checksum: 10/8574595286850273bf83319b4e67ca760088df3c36f7ca1425aaf797416672e854271bd31e75c9b3e1836ed5b66410c6bc38cbbda9c638a5416c6a682ed94132 languageName: node linkType: hard @@ -10490,26 +10516,28 @@ __metadata: languageName: node linkType: hard -"unrs-resolver@npm:^1.3.2": - version: 1.5.0 - resolution: "unrs-resolver@npm:1.5.0" - dependencies: - "@unrs/resolver-binding-darwin-arm64": "npm:1.5.0" - "@unrs/resolver-binding-darwin-x64": "npm:1.5.0" - "@unrs/resolver-binding-freebsd-x64": "npm:1.5.0" - "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.5.0" - "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.5.0" - "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.5.0" - "@unrs/resolver-binding-linux-arm64-musl": "npm:1.5.0" - "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.5.0" - "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.5.0" - "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.5.0" - "@unrs/resolver-binding-linux-x64-gnu": "npm:1.5.0" - "@unrs/resolver-binding-linux-x64-musl": "npm:1.5.0" - "@unrs/resolver-binding-wasm32-wasi": "npm:1.5.0" - "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.5.0" - "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.5.0" - "@unrs/resolver-binding-win32-x64-msvc": "npm:1.5.0" +"unrs-resolver@npm:^1.6.2": + version: 1.7.2 + resolution: "unrs-resolver@npm:1.7.2" + dependencies: + "@unrs/resolver-binding-darwin-arm64": "npm:1.7.2" + "@unrs/resolver-binding-darwin-x64": "npm:1.7.2" + "@unrs/resolver-binding-freebsd-x64": "npm:1.7.2" + "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.7.2" + "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.7.2" + "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.7.2" + "@unrs/resolver-binding-linux-arm64-musl": "npm:1.7.2" + "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.7.2" + "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.7.2" + "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.7.2" + "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.7.2" + "@unrs/resolver-binding-linux-x64-gnu": "npm:1.7.2" + "@unrs/resolver-binding-linux-x64-musl": "npm:1.7.2" + "@unrs/resolver-binding-wasm32-wasi": "npm:1.7.2" + "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.7.2" + "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.7.2" + "@unrs/resolver-binding-win32-x64-msvc": "npm:1.7.2" + napi-postinstall: "npm:^0.2.2" dependenciesMeta: "@unrs/resolver-binding-darwin-arm64": optional: true @@ -10529,6 +10557,8 @@ __metadata: optional: true "@unrs/resolver-binding-linux-riscv64-gnu": optional: true + "@unrs/resolver-binding-linux-riscv64-musl": + optional: true "@unrs/resolver-binding-linux-s390x-gnu": optional: true "@unrs/resolver-binding-linux-x64-gnu": @@ -10543,7 +10573,7 @@ __metadata: optional: true "@unrs/resolver-binding-win32-x64-msvc": optional: true - checksum: 10/124936f842a0bee90e00ec01ec2f4a840435e92d78e88c1ddd5408da984a2fe3d9e0a34b0e8bba2b778374aa6c4382ef5dbc9cb8e75504478ce61dc69302c965 + checksum: 10/58daa4c659dec7d4ae7b9731d541b9faf1b702dec3d612f260b546dfd78de81c87ad3cd0eb362e364f9e86ccb3a6a42d05dc07936c39e82af58f5536c9b7de1c languageName: node linkType: hard @@ -10554,7 +10584,7 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.1.1": +"update-browserslist-db@npm:^1.1.3": version: 1.1.3 resolution: "update-browserslist-db@npm:1.1.3" dependencies: @@ -10578,14 +10608,14 @@ __metadata: linkType: hard "use-isomorphic-layout-effect@npm:^1.2.0": - version: 1.2.0 - resolution: "use-isomorphic-layout-effect@npm:1.2.0" + version: 1.2.1 + resolution: "use-isomorphic-layout-effect@npm:1.2.1" peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: "@types/react": optional: true - checksum: 10/84fc1074b4e3ee2886fde944baef4ec210453fc78861429fe50ae97be8209e492f18c059c6b2ff1a21df231d72d1638707dabca889bd9d7bee36f21c196a0d19 + checksum: 10/a52155ffa7d67a5107ef2033ae2c63f5290c3e3b198de30d4d4f78cd7921e1ab1ea31eeec387defb67ef61adb672d3b8d25b54b7dcc089bacc4f885abde96e9d languageName: node linkType: hard @@ -10701,8 +10731,8 @@ __metadata: linkType: hard "vite@npm:^5.0.0, vite@npm:^5.4.2": - version: 5.4.18 - resolution: "vite@npm:5.4.18" + version: 5.4.19 + resolution: "vite@npm:5.4.19" dependencies: esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" @@ -10739,7 +10769,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10/491f0d047695a4bb3aafdb30822a3638ac41c23b022c1599bf51beab26a7cffe3ef1617bdf014592da48864079f217da5bf144a6c3238d2d74dea688ba3a549a + checksum: 10/27900c87ec6f84967ba12bd4a24c2b9182c3ddad278a13a1c7736ccc4ac7e325f3fbdc11836e2906857140cc89c55121cb0746d4100046e797e21e1e7570d9c4 languageName: node linkType: hard @@ -10853,7 +10883,7 @@ __metadata: languageName: node linkType: hard -"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.18": +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19": version: 1.1.19 resolution: "which-typed-array@npm:1.1.19" dependencies: @@ -10988,8 +11018,8 @@ __metadata: linkType: hard "ws@npm:^8.18.0, ws@npm:^8.8.1": - version: 8.18.1 - resolution: "ws@npm:8.18.1" + version: 8.18.2 + resolution: "ws@npm:8.18.2" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -10998,7 +11028,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 10/3f38e9594f2af5b6324138e86b74df7d77bbb8e310bf8188679dd80bac0d1f47e51536a1923ac3365f31f3d8b25ea0b03e4ade466aa8292a86cd5defca64b19b + checksum: 10/018e04ec95561d88248d53a2eaf094b4ae131e9b062f2679e6e8a62f04649bc543448f1e038125225ac6bbb25f54c1e65d7a2cc9dbc1e28b43e5e6b7162ad88e languageName: node linkType: hard @@ -11045,11 +11075,11 @@ __metadata: linkType: hard "yaml@npm:^2.3.4, yaml@npm:^2.7.0": - version: 2.7.1 - resolution: "yaml@npm:2.7.1" + version: 2.8.0 + resolution: "yaml@npm:2.8.0" bin: yaml: bin.mjs - checksum: 10/af57658d37c5efae4bac7204589b742ae01878a278554d632f01012868cf7fa66cba09b39140f12e7f6ceecc693ae52bcfb737596c4827e6e233338cb3a9528e + checksum: 10/7d4bd9c10d0e467601f496193f2ac254140f8e36f96f5ff7f852b9ce37974168eb7354f4c36dc8837dde527a2043d004b6aff48818ec24a69ab2dd3c6b6c381c languageName: node linkType: hard From 7a5b5c98191882a27d5952b2753ca1e9ef78ce94 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Tue, 27 May 2025 15:04:03 +0200 Subject: [PATCH 18/32] chore: getVersion --- src/lib/getContractFromPatron.ts | 4 +++- src/ui/contexts/VersionContext.tsx | 3 +++ src/ui/hooks/useMetadata.ts | 7 ------- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/lib/getContractFromPatron.ts b/src/lib/getContractFromPatron.ts index 607ee6fd..468a5ccb 100644 --- a/src/lib/getContractFromPatron.ts +++ b/src/lib/getContractFromPatron.ts @@ -2,6 +2,7 @@ // SPDX-License-Identifier: GPL-3.0-only import { Buffer } from 'buffer'; +import { getVersion } from 'ui/contexts'; function getFromPatron(field: string, hash: string) { const options = { @@ -29,7 +30,8 @@ function getFromPatron(field: string, hash: string) { export function getContractFromPatron(codeHash: string): Promise { const metadataPromise = getFromPatron('metadata', codeHash); - const wasmPromise = getFromPatron('contract_binary', codeHash); + const field = getVersion() === 'v6' ? 'contract_binary' : 'wasm'; + const wasmPromise = getFromPatron(field, codeHash); return Promise.all([metadataPromise, wasmPromise]).then(([metadataResponse, wasmResponse]) => { const result = Buffer.from(wasmResponse as ArrayBuffer).toString('hex'); diff --git a/src/ui/contexts/VersionContext.tsx b/src/ui/contexts/VersionContext.tsx index 339933f6..6ca24e08 100644 --- a/src/ui/contexts/VersionContext.tsx +++ b/src/ui/contexts/VersionContext.tsx @@ -31,3 +31,6 @@ export const useVersion = () => { } return context; }; + +export const getVersion = () => + (localStorage.getItem(LOCAL_STORAGE_KEY.VERSION) as InkVersion | null) || 'v6'; diff --git a/src/ui/hooks/useMetadata.ts b/src/ui/hooks/useMetadata.ts index d00b120d..c91f9686 100644 --- a/src/ui/hooks/useMetadata.ts +++ b/src/ui/hooks/useMetadata.ts @@ -34,9 +34,7 @@ function deriveFromJson( let value: Abi | undefined = undefined; try { - console.log('to validate'); value = new Abi(source, api?.registry.getChainProperties()); - console.log(value); const name = options.name || value.info.contract.name.toString(); return { @@ -68,7 +66,6 @@ const EMPTY: MetadataState = { }; function validate(metadata: Abi | undefined, { isWasmRequired }: Options): Validation { - console.log('Validating metadata', metadata); if (!metadata) { return { isValid: false, @@ -77,7 +74,6 @@ function validate(metadata: Abi | undefined, { isWasmRequired }: Options): Valid 'Invalid contract file format. Please upload the generated .contract bundle for your smart contract.', }; } - console.log('Metadata value'); return { isValid: true, @@ -94,7 +90,6 @@ export function useMetadata( options: Options & Callbacks = {}, ): UseMetadata { const { api } = useApi(); - console.log(' use metadaata aqui'); const { isWasmRequired = false, revertOnFileRemove = false, ...callbacks } = options; const [state, setState] = useState(() => deriveFromJson({ isWasmRequired }, initialValue, api), @@ -102,7 +97,6 @@ export function useMetadata( function onChange(file: FileState): void { try { - console.log(' on change'); const json = JSON.parse(utf8decoder.decode(file.data)) as Record; const name = file.name.replace('.contract', '').replace('.json', '').replace('_', ' '); @@ -112,7 +106,6 @@ export function useMetadata( callbacks.onChange && callbacks.onChange(file, json); } catch (error) { - console.log('aqui'); console.error(error); setState({ From e69736f2e10d06b2b13c08c4926622f26e430752 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Wed, 28 May 2025 09:22:26 +0200 Subject: [PATCH 19/32] feat: isValidAddress for inkv6 --- src/lib/util.ts | 18 +++++++++++++++--- src/services/chain/contract.ts | 18 +++++++++++++----- src/ui/components/common/Dropdown.tsx | 5 +++-- src/ui/pages/AddressLookup.tsx | 11 ++++++++--- 4 files changed, 39 insertions(+), 13 deletions(-) diff --git a/src/lib/util.ts b/src/lib/util.ts index 9452002f..32f1ca97 100644 --- a/src/lib/util.ts +++ b/src/lib/util.ts @@ -1,10 +1,14 @@ // Copyright 2022-2024 use-ink/contracts-ui authors & contributors // SPDX-License-Identifier: GPL-3.0-only +import { decodeAddress, encodeAddress } from '@polkadot/keyring'; +import { hexToU8a, u8aToHex, isHex } from '@polkadot/util'; import { keyring } from '@polkadot/ui-keyring'; import format from 'date-fns/format'; import parseISO from 'date-fns/parseISO'; import { twMerge } from 'tailwind-merge'; +import { isAddress as isEthAddress } from 'ethers'; +import { InkVersion } from 'ui/contexts'; export const classes = twMerge; @@ -70,10 +74,18 @@ export function isUndefined(value: unknown): value is undefined { return value === undefined; } -export function isValidAddress(address: string | Uint8Array | null | undefined) { +export function isValidAddress( + address: string | Uint8Array | null | undefined, + version: InkVersion, +) { + if (!address) return false; + if (version === 'v6') { + const hex = typeof address === 'string' ? address : u8aToHex(address); + return isEthAddress(hex); + } + // Check for v5 address format try { - // TODO: check isValidAddress - console.log(address); + encodeAddress(isHex(address) ? hexToU8a(address) : decodeAddress(address)); return true; } catch (error) { return false; diff --git a/src/services/chain/contract.ts b/src/services/chain/contract.ts index 4673ed93..8874e32e 100644 --- a/src/services/chain/contract.ts +++ b/src/services/chain/contract.ts @@ -11,7 +11,8 @@ import { InstantiateData, SubmittableExtrinsic, } from 'types'; -import { u8aToU8a } from '@polkadot/util'; +//import { u8aToU8a } from '@polkadot/util'; +import { useVersion } from 'ui/contexts'; export function createInstantiateTx( api: ApiPromise, @@ -27,7 +28,10 @@ export function createInstantiateTx( }: Omit, ): SubmittableExtrinsic<'promise'> { //@ts-ignore TODO: need to update type in @polkadot/api-contracts - const wasm = u8aToU8a(metadata?.json.source.contract_binary); + const { version } = useVersion(); + const binaryKey = version === 'v6' ? 'contract_binary' : 'wasm'; + const wasm = metadata?.info.source.wasm; + //const wasm = u8aToU8a(metadata?.json.source.contract_binary); const isValid = codeHash || !!wasm; if (isValid && metadata && isNumber(constructorIndex) && metadata && argValues) { @@ -55,9 +59,13 @@ export function createInstantiateTx( } export async function getContractInfo(api: ApiPromise, address: string) { - // TODO: fix isValidAddress - if (isValidAddress(address) || true) { - return (await api.query.revive.contractInfoOf(address)).unwrapOr(null); + const { version } = useVersion(); + if (isValidAddress(address, version)) { + if (version === 'v6') { + return (await api.query.revive.contractInfoOf(address)).unwrapOr(null); + } else { + return (await api.query.revive.contractInfoOf(address)).unwrapOr(null); + } } } diff --git a/src/ui/components/common/Dropdown.tsx b/src/ui/components/common/Dropdown.tsx index 1704d02c..b945d314 100644 --- a/src/ui/components/common/Dropdown.tsx +++ b/src/ui/components/common/Dropdown.tsx @@ -17,6 +17,7 @@ import CreatableSelect from 'react-select/creatable'; import { CheckIcon, ChevronDownIcon } from '@heroicons/react/solid'; import { classes, isValidAddress } from 'lib/util'; import type { DropdownOption, DropdownProps } from 'types'; +import { useVersion } from 'ui/contexts'; function isGroupedOptions( options: ReactSelectProps, false>['options'], @@ -83,13 +84,13 @@ export function Dropdown({ value: _value, onCreate, }: DropdownProps) { + const { version } = useVersion(); const onChange = useCallback( (option: DropdownOption | null): void => { option && _onChange(option.value); }, [_onChange], ); - const value = useMemo(() => getOption(options, _value), [options, _value]); return ( @@ -102,7 +103,7 @@ export function Dropdown({ isDisabled={isDisabled} isSearchable={isSearchable} isValidNewOption={inputValue => - isValidAddress(inputValue) && !getOption(options, inputValue as T) + isValidAddress(inputValue, version) && !getOption(options, inputValue as T) } onChange={onChange} onCreateOption={onCreate} diff --git a/src/ui/pages/AddressLookup.tsx b/src/ui/pages/AddressLookup.tsx index 58f9fb31..be88d76a 100644 --- a/src/ui/pages/AddressLookup.tsx +++ b/src/ui/pages/AddressLookup.tsx @@ -17,7 +17,7 @@ import { getValidation, useMetadataField, } from 'ui/components'; -import { useApi, useDatabase } from 'ui/contexts'; +import { useApi, useDatabase, useVersion } from 'ui/contexts'; import { useNonEmptyString } from 'ui/hooks/useNonEmptyString'; import { useStoredMetadata } from 'ui/hooks/useStoredMetadata'; import { RootLayout } from 'ui/layout'; @@ -28,6 +28,7 @@ export function AddressLookup() { const [address, setAddress] = useState(''); const { api } = useApi(); const navigate = useNavigate(); + const { version } = useVersion(); const { file, @@ -59,7 +60,7 @@ export function AddressLookup() { useEffect((): void => { async function validate() { if (address !== searchString) { - if (isValidAddress(searchString)) { + if (isValidAddress(searchString, version)) { const isOnChain = await getContractInfo(api, searchString); if (isOnChain) { const contract = await db.contracts.get({ address: searchString }); @@ -98,7 +99,11 @@ export function AddressLookup() { id="address" isError={!!searchString && !address} label="Contract Address" - message={isValidAddress(searchString) ? 'Address is not on-chain ' : 'Address is not valid'} + message={ + isValidAddress(searchString, version) + ? 'Address is not on-chain ' + : 'Address is not valid' + } > Date: Sun, 1 Jun 2025 17:34:11 +0200 Subject: [PATCH 20/32] chore: remove polkadot-js packages --- .api-contract/README.md | 3 - .api-contract/build-deno/Abi/index.ts | 499 --- .../build-deno/Abi/toLatestCompatible.ts | 62 - .api-contract/build-deno/Abi/toV1.ts | 37 - .api-contract/build-deno/Abi/toV2.ts | 67 - .api-contract/build-deno/Abi/toV3.ts | 21 - .api-contract/build-deno/Abi/toV4.ts | 24 - .api-contract/build-deno/README.md | 3 - .api-contract/build-deno/augment.ts | 1 - .api-contract/build-deno/base/Base.ts | 49 - .api-contract/build-deno/base/BaseRevive.ts | 49 - .api-contract/build-deno/base/Blueprint.ts | 118 - .../build-deno/base/BlueprintRevive.ts | 103 - .api-contract/build-deno/base/Code.ts | 155 - .api-contract/build-deno/base/CodeRevive.ts | 134 - .api-contract/build-deno/base/Contract.ts | 263 -- .../build-deno/base/ContractRevive.ts | 264 -- .api-contract/build-deno/base/index.ts | 6 - .api-contract/build-deno/base/mock.ts | 28 - .api-contract/build-deno/base/types.ts | 50 - .api-contract/build-deno/base/util.ts | 74 - .api-contract/build-deno/bundle.ts | 5 - .api-contract/build-deno/checkTypes.manual.ts | 42 - .api-contract/build-deno/index.ts | 3 - .api-contract/build-deno/mod.ts | 1 - .api-contract/build-deno/packageDetect.ts | 7 - .api-contract/build-deno/packageInfo.ts | 6 - .api-contract/build-deno/promise/index.ts | 80 - .api-contract/build-deno/promise/types.ts | 7 - .api-contract/build-deno/rx/index.ts | 35 - .api-contract/build-deno/rx/types.ts | 7 - .../build-deno/test/contracts/index.ts | 13 - .../build-deno/test/contracts/ink/index.ts | 10 - .../test/contracts/ink/v0/accumulator.wasm | Bin 8826 -> 0 bytes .../test/contracts/ink/v0/adder.wasm | Bin 11995 -> 0 bytes .../test/contracts/ink/v0/delegator.wasm | Bin 30472 -> 0 bytes .../build-deno/test/contracts/ink/v0/dns.wasm | Bin 47980 -> 0 bytes .../test/contracts/ink/v0/erc20.wasm | Bin 56449 -> 0 bytes .../test/contracts/ink/v0/erc721.wasm | Bin 74793 -> 0 bytes .../test/contracts/ink/v0/flipper.wasm | Bin 19085 -> 0 bytes .../test/contracts/ink/v0/incrementer.wasm | Bin 19056 -> 0 bytes .../build-deno/test/contracts/ink/v0/index.ts | 8 - .../test/contracts/ink/v0/multisig_plain.wasm | Bin 93026 -> 0 bytes .../test/contracts/ink/v0/subber.wasm | Bin 12005 -> 0 bytes .../test/contracts/ink/v0/trait-flipper.wasm | Bin 19050 -> 0 bytes .../build-deno/test/contracts/ink/v1/index.ts | 2 - .../build-deno/test/contracts/ink/v2/index.ts | 2 - .../build-deno/test/contracts/ink/v3/index.ts | 2 - .../test/contracts/ink/v4/erc20.wasm | Bin 21078 -> 0 bytes .../test/contracts/ink/v4/flipper.wasm | Bin 12526 -> 0 bytes .../build-deno/test/contracts/ink/v4/index.ts | 4 - .../test/contracts/ink/v5/erc20.wasm | Bin 19416 -> 0 bytes .../test/contracts/ink/v5/flipper.wasm | Bin 10450 -> 0 bytes .../build-deno/test/contracts/ink/v5/index.ts | 5 - .../test/contracts/ink/v6/erc20.polkavm | Bin 9445 -> 0 bytes .../build-deno/test/contracts/ink/v6/index.ts | 2 - .../build-deno/test/contracts/solang/index.ts | 4 - .../test/contracts/solang/v0/index.ts | 1 - .../test/contracts/solang/v0/ints256.sol | 13 - .../test/contracts/solang/v0/ints256.wasm | Bin 1782 -> 0 bytes .../build-deno/test/contracts/user/index.ts | 6 - .../test/contracts/user/v0/assetTransfer.wasm | Bin 11151 -> 0 bytes .../test/contracts/user/v0/enumExample.wasm | Bin 5473 -> 0 bytes .../test/contracts/user/v0/index.ts | 4 - .../test/contracts/user/v3/index.ts | 1 - .../test/contracts/user/v4/index.ts | 1 - .../build-deno/test/contracts/util.ts | 13 - .api-contract/build-deno/types.ts | 100 - .api-contract/build-deno/util.ts | 20 - .api-contract/build-loader/Abi/Abi.spec.js | 147 - .api-contract/build-loader/Abi/index.js | 355 --- .../build-loader/Abi/toLatestCompatible.js | 37 - .../Abi/toLatestCompatible.spec.js | 199 -- .api-contract/build-loader/Abi/toV1.js | 28 - .api-contract/build-loader/Abi/toV2.js | 37 - .api-contract/build-loader/Abi/toV3.js | 18 - .api-contract/build-loader/Abi/toV4.js | 21 - .api-contract/build-loader/base/Base.js | 38 - .api-contract/build-loader/base/Blueprint.js | 73 - .api-contract/build-loader/base/Code.js | 92 - .api-contract/build-loader/base/Code.spec.js | 27 - .api-contract/build-loader/base/Contract.js | 157 - .api-contract/build-loader/base/mock.js | 26 - .api-contract/build-loader/base/util.js | 37 - .../build-loader/test/contracts/index.js | 14 - .../build-loader/test/contracts/ink/index.js | 13 - .../test/contracts/ink/v0/index.js | 12 - .../test/contracts/ink/v1/index.js | 7 - .../test/contracts/ink/v2/index.js | 6 - .../test/contracts/ink/v3/index.js | 7 - .../test/contracts/ink/v4/index.js | 8 - .../test/contracts/ink/v5/index.js | 9 - .../test/contracts/ink/v6/index.js | 6 - .../test/contracts/solang/index.js | 7 - .../test/contracts/solang/v0/index.js | 5 - .../build-loader/test/contracts/user/index.js | 9 - .../test/contracts/user/v0/index.js | 8 - .../test/contracts/user/v3/index.js | 5 - .../test/contracts/user/v4/index.js | 5 - .../build-loader/test/contracts/util.js | 13 - .api-contract/build-loader/util.js | 13 - .api-contract/build-tsc-cjs/Abi/index.js | 364 --- .../build-tsc-cjs/Abi/toLatestCompatible.js | 42 - .api-contract/build-tsc-cjs/Abi/toV1.js | 27 - .api-contract/build-tsc-cjs/Abi/toV2.js | 36 - .api-contract/build-tsc-cjs/Abi/toV3.js | 20 - .api-contract/build-tsc-cjs/Abi/toV4.js | 20 - .api-contract/build-tsc-cjs/augment.js | 3 - .api-contract/build-tsc-cjs/base/Base.js | 41 - .../build-tsc-cjs/base/BaseRevive.js | 41 - .api-contract/build-tsc-cjs/base/Blueprint.js | 84 - .../build-tsc-cjs/base/BlueprintRevive.js | 75 - .api-contract/build-tsc-cjs/base/Code.js | 108 - .../build-tsc-cjs/base/CodeRevive.js | 92 - .api-contract/build-tsc-cjs/base/Contract.js | 164 - .../build-tsc-cjs/base/ContractRevive.js | 164 - .api-contract/build-tsc-cjs/base/index.js | 86 - .api-contract/build-tsc-cjs/base/mock.js | 25 - .api-contract/build-tsc-cjs/base/types.js | 2 - .api-contract/build-tsc-cjs/base/util.js | 42 - .api-contract/build-tsc-cjs/bundle.js | 20 - .api-contract/build-tsc-cjs/index.js | 5 - .api-contract/build-tsc-cjs/packageDetect.js | 10 - .api-contract/build-tsc-cjs/packageInfo.js | 9 - .api-contract/build-tsc-cjs/promise/index.js | 47 - .api-contract/build-tsc-cjs/promise/types.js | 2 - .api-contract/build-tsc-cjs/rx/index.js | 23 - .api-contract/build-tsc-cjs/rx/types.js | 2 - .api-contract/build-tsc-cjs/types.js | 2 - .api-contract/build-tsc-cjs/util.js | 12 - .api-contract/build-tsc-esm/Abi/index.js | 367 --- .../build-tsc-esm/Abi/toLatestCompatible.js | 30 - .api-contract/build-tsc-esm/Abi/toV1.js | 24 - .api-contract/build-tsc-esm/Abi/toV2.js | 33 - .api-contract/build-tsc-esm/Abi/toV3.js | 14 - .api-contract/build-tsc-esm/Abi/toV4.js | 17 - .api-contract/build-tsc-esm/augment.js | 1 - .api-contract/build-tsc-esm/base/Base.js | 34 - .../build-tsc-esm/base/BaseRevive.js | 34 - .api-contract/build-tsc-esm/base/Blueprint.js | 71 - .../build-tsc-esm/base/BlueprintRevive.js | 68 - .api-contract/build-tsc-esm/base/Code.js | 88 - .../build-tsc-esm/base/CodeRevive.js | 82 - .api-contract/build-tsc-esm/base/Contract.js | 154 - .../build-tsc-esm/base/ContractRevive.js | 154 - .api-contract/build-tsc-esm/base/index.js | 6 - .api-contract/build-tsc-esm/base/mock.js | 22 - .api-contract/build-tsc-esm/base/types.js | 1 - .api-contract/build-tsc-esm/base/util.js | 33 - .api-contract/build-tsc-esm/bundle.js | 4 - .api-contract/build-tsc-esm/index.js | 2 - .api-contract/build-tsc-esm/packageDetect.js | 5 - .api-contract/build-tsc-esm/packageInfo.js | 12 - .api-contract/build-tsc-esm/promise/index.js | 39 - .api-contract/build-tsc-esm/promise/types.js | 1 - .api-contract/build-tsc-esm/rx/index.js | 17 - .api-contract/build-tsc-esm/rx/types.js | 1 - .api-contract/build-tsc-esm/types.js | 1 - .api-contract/build-tsc-esm/util.js | 9 - .api-contract/build-tsc/Abi/index.d.ts | 46 - .../build-tsc/Abi/toLatestCompatible.d.ts | 40 - .api-contract/build-tsc/Abi/toV1.d.ts | 3 - .api-contract/build-tsc/Abi/toV2.d.ts | 3 - .api-contract/build-tsc/Abi/toV3.d.ts | 3 - .api-contract/build-tsc/Abi/toV4.d.ts | 3 - .api-contract/build-tsc/augment.d.ts | 1 - .api-contract/build-tsc/base/Base.d.ts | 16 - .api-contract/build-tsc/base/BaseRevive.d.ts | 16 - .api-contract/build-tsc/base/Blueprint.d.ts | 38 - .../build-tsc/base/BlueprintRevive.d.ts | 29 - .api-contract/build-tsc/base/Code.d.ts | 38 - .api-contract/build-tsc/base/CodeRevive.d.ts | 40 - .api-contract/build-tsc/base/Contract.d.ts | 37 - .../build-tsc/base/ContractRevive.d.ts | 37 - .api-contract/build-tsc/base/index.d.ts | 6 - .api-contract/build-tsc/base/mock.d.ts | 2 - .api-contract/build-tsc/base/types.d.ts | 40 - .api-contract/build-tsc/base/util.d.ts | 31 - .api-contract/build-tsc/bundle.d.ts | 4 - .api-contract/build-tsc/index.d.ts | 2 - .api-contract/build-tsc/packageDetect.d.ts | 1 - .api-contract/build-tsc/packageInfo.d.ts | 6 - .api-contract/build-tsc/promise/index.d.ts | 53 - .api-contract/build-tsc/promise/types.d.ts | 6 - .api-contract/build-tsc/rx/index.d.ts | 17 - .api-contract/build-tsc/rx/types.d.ts | 6 - .api-contract/build-tsc/types.d.ts | 85 - .api-contract/build-tsc/util.d.ts | 9 - .api-contract/build/Abi/index.d.ts | 46 - .api-contract/build/Abi/index.js | 367 --- .../build/Abi/toLatestCompatible.d.ts | 40 - .api-contract/build/Abi/toLatestCompatible.js | 30 - .api-contract/build/Abi/toV1.d.ts | 3 - .api-contract/build/Abi/toV1.js | 24 - .api-contract/build/Abi/toV2.d.ts | 3 - .api-contract/build/Abi/toV2.js | 33 - .api-contract/build/Abi/toV3.d.ts | 3 - .api-contract/build/Abi/toV3.js | 14 - .api-contract/build/Abi/toV4.d.ts | 3 - .api-contract/build/Abi/toV4.js | 17 - .api-contract/build/LICENSE | 201 -- .api-contract/build/README.md | 3 - .api-contract/build/augment.d.ts | 1 - .api-contract/build/augment.js | 1 - .api-contract/build/base/Base.d.ts | 16 - .api-contract/build/base/Base.js | 34 - .api-contract/build/base/BaseRevive.d.ts | 16 - .api-contract/build/base/BaseRevive.js | 34 - .api-contract/build/base/Blueprint.d.ts | 38 - .api-contract/build/base/Blueprint.js | 71 - .api-contract/build/base/BlueprintRevive.d.ts | 29 - .api-contract/build/base/BlueprintRevive.js | 68 - .api-contract/build/base/Code.d.ts | 38 - .api-contract/build/base/Code.js | 88 - .api-contract/build/base/CodeRevive.d.ts | 40 - .api-contract/build/base/CodeRevive.js | 82 - .api-contract/build/base/Contract.d.ts | 37 - .api-contract/build/base/Contract.js | 154 - .api-contract/build/base/ContractRevive.d.ts | 37 - .api-contract/build/base/ContractRevive.js | 154 - .api-contract/build/base/index.d.ts | 6 - .api-contract/build/base/index.js | 6 - .api-contract/build/base/mock.d.ts | 2 - .api-contract/build/base/mock.js | 22 - .api-contract/build/base/types.d.ts | 40 - .api-contract/build/base/types.js | 1 - .api-contract/build/base/util.d.ts | 31 - .api-contract/build/base/util.js | 33 - .../build/bundle-polkadot-api-contract.js | 1754 ----------- .api-contract/build/bundle.d.ts | 4 - .api-contract/build/bundle.js | 4 - .api-contract/build/cjs/Abi/index.d.ts | 46 - .api-contract/build/cjs/Abi/index.js | 364 --- .../build/cjs/Abi/toLatestCompatible.d.ts | 40 - .../build/cjs/Abi/toLatestCompatible.js | 42 - .api-contract/build/cjs/Abi/toV1.d.ts | 3 - .api-contract/build/cjs/Abi/toV1.js | 27 - .api-contract/build/cjs/Abi/toV2.d.ts | 3 - .api-contract/build/cjs/Abi/toV2.js | 36 - .api-contract/build/cjs/Abi/toV3.d.ts | 3 - .api-contract/build/cjs/Abi/toV3.js | 20 - .api-contract/build/cjs/Abi/toV4.d.ts | 3 - .api-contract/build/cjs/Abi/toV4.js | 20 - .api-contract/build/cjs/augment.d.ts | 1 - .api-contract/build/cjs/augment.js | 3 - .api-contract/build/cjs/base/Base.d.ts | 16 - .api-contract/build/cjs/base/Base.js | 41 - .api-contract/build/cjs/base/BaseRevive.d.ts | 16 - .api-contract/build/cjs/base/BaseRevive.js | 41 - .api-contract/build/cjs/base/Blueprint.d.ts | 38 - .api-contract/build/cjs/base/Blueprint.js | 84 - .../build/cjs/base/BlueprintRevive.d.ts | 29 - .../build/cjs/base/BlueprintRevive.js | 75 - .api-contract/build/cjs/base/Code.d.ts | 38 - .api-contract/build/cjs/base/Code.js | 108 - .api-contract/build/cjs/base/CodeRevive.d.ts | 40 - .api-contract/build/cjs/base/CodeRevive.js | 92 - .api-contract/build/cjs/base/Contract.d.ts | 37 - .api-contract/build/cjs/base/Contract.js | 164 - .../build/cjs/base/ContractRevive.d.ts | 37 - .../build/cjs/base/ContractRevive.js | 164 - .api-contract/build/cjs/base/index.d.ts | 6 - .api-contract/build/cjs/base/index.js | 86 - .api-contract/build/cjs/base/mock.d.ts | 2 - .api-contract/build/cjs/base/mock.js | 25 - .api-contract/build/cjs/base/types.d.ts | 40 - .api-contract/build/cjs/base/types.js | 2 - .api-contract/build/cjs/base/util.d.ts | 31 - .api-contract/build/cjs/base/util.js | 42 - .api-contract/build/cjs/bundle.d.ts | 4 - .api-contract/build/cjs/bundle.js | 20 - .api-contract/build/cjs/index.d.ts | 2 - .api-contract/build/cjs/index.js | 5 - .api-contract/build/cjs/package.json | 3 - .api-contract/build/cjs/packageDetect.d.ts | 1 - .api-contract/build/cjs/packageDetect.js | 10 - .api-contract/build/cjs/packageInfo.d.ts | 6 - .api-contract/build/cjs/packageInfo.js | 9 - .api-contract/build/cjs/promise/index.d.ts | 53 - .api-contract/build/cjs/promise/index.js | 47 - .api-contract/build/cjs/promise/types.d.ts | 6 - .api-contract/build/cjs/promise/types.js | 2 - .api-contract/build/cjs/rx/index.d.ts | 17 - .api-contract/build/cjs/rx/index.js | 23 - .api-contract/build/cjs/rx/types.d.ts | 6 - .api-contract/build/cjs/rx/types.js | 2 - .api-contract/build/cjs/types.d.ts | 85 - .api-contract/build/cjs/types.js | 2 - .api-contract/build/cjs/util.d.ts | 9 - .api-contract/build/cjs/util.js | 12 - .api-contract/build/index.d.ts | 2 - .api-contract/build/index.js | 2 - .api-contract/build/package.json | 464 --- .api-contract/build/packageDetect.d.ts | 1 - .api-contract/build/packageDetect.js | 5 - .api-contract/build/packageInfo.d.ts | 6 - .api-contract/build/packageInfo.js | 12 - .api-contract/build/promise/index.d.ts | 53 - .api-contract/build/promise/index.js | 39 - .api-contract/build/promise/types.d.ts | 6 - .api-contract/build/promise/types.js | 1 - .api-contract/build/rx/index.d.ts | 17 - .api-contract/build/rx/index.js | 17 - .api-contract/build/rx/types.d.ts | 6 - .api-contract/build/rx/types.js | 1 - .api-contract/build/types.d.ts | 85 - .api-contract/build/types.js | 1 - .api-contract/build/util.d.ts | 9 - .api-contract/build/util.js | 9 - .api-contract/package.json | 39 - .api-contract/src/Abi/Abi.spec.ts | 224 -- .api-contract/src/Abi/index.ts | 489 --- .../src/Abi/toLatestCompatible.spec.ts | 240 -- .api-contract/src/Abi/toLatestCompatible.ts | 68 - .api-contract/src/Abi/toV1.ts | 37 - .api-contract/src/Abi/toV2.ts | 70 - .api-contract/src/Abi/toV3.ts | 21 - .api-contract/src/Abi/toV4.ts | 24 - .api-contract/src/augment.ts | 4 - .api-contract/src/base/Base.ts | 52 - .api-contract/src/base/BaseRevive.ts | 52 - .api-contract/src/base/Blueprint.ts | 117 - .api-contract/src/base/BlueprintRevive.ts | 106 - .api-contract/src/base/Code.spec.ts | 40 - .api-contract/src/base/Code.ts | 148 - .api-contract/src/base/CodeRevive.ts | 132 - .api-contract/src/base/Contract.ts | 260 -- .api-contract/src/base/ContractRevive.ts | 261 -- .api-contract/src/base/index.ts | 9 - .api-contract/src/base/mock.ts | 31 - .api-contract/src/base/types.ts | 53 - .api-contract/src/base/util.ts | 77 - .api-contract/src/bundle.ts | 10 - .api-contract/src/checkTypes.manual.ts | 44 - .api-contract/src/index.ts | 6 - .api-contract/src/mod.ts | 4 - .api-contract/src/packageDetect.ts | 13 - .api-contract/src/packageInfo.ts | 11 - .api-contract/src/promise/index.ts | 77 - .api-contract/src/promise/types.ts | 10 - .api-contract/src/rx/index.ts | 36 - .api-contract/src/rx/types.ts | 10 - .../test/compare/ink_v0_delegator.test.json | 47 - .../src/test/compare/ink_v0_dns.test.json | 232 -- .../src/test/compare/ink_v0_erc20.test.json | 253 -- .../src/test/compare/ink_v0_erc721.test.json | 415 --- .../src/test/compare/ink_v0_flipper.test.json | 9 - .../compare/ink_v0_flipperBundle.test.json | 9 - .../test/compare/ink_v0_incrementer.test.json | 9 - .../compare/ink_v0_multisigPlain.test.json | 562 ---- .../src/test/compare/ink_v1_flipper.test.json | 9 - .../src/test/compare/ink_v1_psp22.test.json | 531 ---- .../src/test/compare/ink_v2_erc20.test.json | 205 -- .../src/test/compare/ink_v2_flipper.test.json | 9 - .../src/test/compare/ink_v3_flipper.test.json | 9 - .../test/compare/ink_v3_traitErc20.test.json | 205 -- .../compare/ink_v4_erc20Contract.test.json | 253 -- .../compare/ink_v4_erc20Metadata.test.json | 253 -- .../compare/ink_v4_flipperContract.test.json | 155 - .../compare/ink_v4_flipperMetadata.test.json | 155 - .../src/test/compare/ink_v5_erc20.test.json | 370 --- ...5_erc20AnonymousTransferMetadata.test.json | 370 --- .../compare/ink_v5_erc20Contract.test.json | 370 --- .../compare/ink_v5_erc20Metadata.test.json | 370 --- .../compare/ink_v5_flipperContract.test.json | 174 -- .../compare/ink_v5_flipperMetadata.test.json | 174 -- .../compare/ink_v6_erc20Contract.test.json | 418 --- .../compare/ink_v6_erc20Metadata.test.json | 418 --- .../test/compare/solang_v0_ints256.test.json | 9 - .../compare/user_v0_assetTransfer.test.json | 54 - .../compare/user_v0_enumExample.test.json | 303 -- .../test/compare/user_v0_recursive.test.json | 27 - .../test/compare/user_v0_withString.test.json | 260 -- .../src/test/compare/user_v3_ask.test.json | 71 - .../src/test/compare/user_v4_events.test.json | 1328 -------- .api-contract/src/test/contracts/index.ts | 16 - .api-contract/src/test/contracts/ink/index.ts | 13 - .../test/contracts/ink/v0/accumulator.wasm | Bin 8826 -> 0 bytes .../src/test/contracts/ink/v0/adder.wasm | Bin 11995 -> 0 bytes .../src/test/contracts/ink/v0/delegator.json | 214 -- .../src/test/contracts/ink/v0/delegator.wasm | Bin 30472 -> 0 bytes .../src/test/contracts/ink/v0/dns.json | 600 ---- .../src/test/contracts/ink/v0/dns.wasm | Bin 47980 -> 0 bytes .../src/test/contracts/ink/v0/erc20.json | 600 ---- .../src/test/contracts/ink/v0/erc20.wasm | Bin 56449 -> 0 bytes .../src/test/contracts/ink/v0/erc721.json | 1007 ------ .../src/test/contracts/ink/v0/erc721.wasm | Bin 74793 -> 0 bytes .../contracts/ink/v0/flipper.contract.json | 85 - .../src/test/contracts/ink/v0/flipper.json | 84 - .../src/test/contracts/ink/v0/flipper.wasm | Bin 19085 -> 0 bytes .../test/contracts/ink/v0/incrementer.json | 92 - .../test/contracts/ink/v0/incrementer.wasm | Bin 19056 -> 0 bytes .../src/test/contracts/ink/v0/index.ts | 11 - .../test/contracts/ink/v0/multisig_plain.json | 1259 -------- .../test/contracts/ink/v0/multisig_plain.wasm | Bin 93026 -> 0 bytes .../src/test/contracts/ink/v0/subber.wasm | Bin 12005 -> 0 bytes .../test/contracts/ink/v0/trait-flipper.json | 84 - .../test/contracts/ink/v0/trait-flipper.wasm | Bin 19050 -> 0 bytes .../contracts/ink/v1/flipper.contract.json | 89 - .../src/test/contracts/ink/v1/index.ts | 6 - .../ink/v1/psp22_minter_pauser.contract.json | 1487 --------- .../test/contracts/ink/v2/erc20.contract.json | 548 ---- .../contracts/ink/v2/flipper.contract.json | 89 - .../src/test/contracts/ink/v2/index.ts | 5 - .../contracts/ink/v3/flipper.contract.json | 91 - .../src/test/contracts/ink/v3/index.ts | 6 - .../ink/v3/trait_erc20.contract.json | 549 ---- .../test/contracts/ink/v4/erc20.contract.json | 377 --- .../src/test/contracts/ink/v4/erc20.json | 714 ----- .../src/test/contracts/ink/v4/erc20.wasm | Bin 21078 -> 0 bytes .../contracts/ink/v4/flipper.contract.json | 157 - .../src/test/contracts/ink/v4/flipper.json | 338 --- .../src/test/contracts/ink/v4/flipper.wasm | Bin 12526 -> 0 bytes .../src/test/contracts/ink/v4/index.ts | 7 - .../test/contracts/ink/v5/erc20.contract.json | 480 --- .../src/test/contracts/ink/v5/erc20.json | 881 ------ .../src/test/contracts/ink/v5/erc20.wasm | Bin 19416 -> 0 bytes .../ink/v5/erc20_anonymous_transfer.json | 881 ------ .../contracts/ink/v5/flipper.contract.json | 177 -- .../src/test/contracts/ink/v5/flipper.json | 358 --- .../src/test/contracts/ink/v5/flipper.wasm | Bin 10450 -> 0 bytes .../src/test/contracts/ink/v5/index.ts | 8 - .../test/contracts/ink/v6/erc20.contract.json | 491 --- .../src/test/contracts/ink/v6/erc20.json | 931 ------ .../src/test/contracts/ink/v6/erc20.polkavm | Bin 9445 -> 0 bytes .../src/test/contracts/ink/v6/index.ts | 5 - .../src/test/contracts/solang/index.ts | 7 - .../src/test/contracts/solang/v0/index.ts | 4 - .../src/test/contracts/solang/v0/ints256.json | 93 - .../src/test/contracts/solang/v0/ints256.sol | 13 - .../src/test/contracts/solang/v0/ints256.wasm | Bin 1782 -> 0 bytes .../src/test/contracts/user/index.ts | 9 - .../test/contracts/user/v0/assetTransfer.json | 245 -- .../test/contracts/user/v0/assetTransfer.wasm | Bin 11151 -> 0 bytes .../test/contracts/user/v0/enumExample.json | 496 --- .../test/contracts/user/v0/enumExample.wasm | Bin 5473 -> 0 bytes .../src/test/contracts/user/v0/index.ts | 7 - .../contracts/user/v0/recursive.contract.json | 70 - .../test/contracts/user/v0/withString.json | 661 ---- .../src/test/contracts/user/v3/ask.json | 458 --- .../src/test/contracts/user/v3/index.ts | 4 - .../contracts/user/v4/events.contract.json | 2696 ----------------- .../src/test/contracts/user/v4/index.ts | 4 - .api-contract/src/test/contracts/util.ts | 16 - .api-contract/src/types.ts | 104 - .api-contract/src/util.ts | 23 - .api-contract/tsconfig.build.json | 16 - .api-contract/tsconfig.spec.json | 26 - package.json | 6 +- src/services/chain/contract.ts | 7 +- yarn.lock | 357 ++- 451 files changed, 222 insertions(+), 42567 deletions(-) delete mode 100644 .api-contract/README.md delete mode 100644 .api-contract/build-deno/Abi/index.ts delete mode 100644 .api-contract/build-deno/Abi/toLatestCompatible.ts delete mode 100644 .api-contract/build-deno/Abi/toV1.ts delete mode 100644 .api-contract/build-deno/Abi/toV2.ts delete mode 100644 .api-contract/build-deno/Abi/toV3.ts delete mode 100644 .api-contract/build-deno/Abi/toV4.ts delete mode 100644 .api-contract/build-deno/README.md delete mode 100644 .api-contract/build-deno/augment.ts delete mode 100644 .api-contract/build-deno/base/Base.ts delete mode 100644 .api-contract/build-deno/base/BaseRevive.ts delete mode 100644 .api-contract/build-deno/base/Blueprint.ts delete mode 100644 .api-contract/build-deno/base/BlueprintRevive.ts delete mode 100644 .api-contract/build-deno/base/Code.ts delete mode 100644 .api-contract/build-deno/base/CodeRevive.ts delete mode 100644 .api-contract/build-deno/base/Contract.ts delete mode 100644 .api-contract/build-deno/base/ContractRevive.ts delete mode 100644 .api-contract/build-deno/base/index.ts delete mode 100644 .api-contract/build-deno/base/mock.ts delete mode 100644 .api-contract/build-deno/base/types.ts delete mode 100644 .api-contract/build-deno/base/util.ts delete mode 100644 .api-contract/build-deno/bundle.ts delete mode 100644 .api-contract/build-deno/checkTypes.manual.ts delete mode 100644 .api-contract/build-deno/index.ts delete mode 100644 .api-contract/build-deno/mod.ts delete mode 100644 .api-contract/build-deno/packageDetect.ts delete mode 100644 .api-contract/build-deno/packageInfo.ts delete mode 100644 .api-contract/build-deno/promise/index.ts delete mode 100644 .api-contract/build-deno/promise/types.ts delete mode 100644 .api-contract/build-deno/rx/index.ts delete mode 100644 .api-contract/build-deno/rx/types.ts delete mode 100644 .api-contract/build-deno/test/contracts/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/ink/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/accumulator.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/adder.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/delegator.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/dns.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/erc20.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/erc721.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/flipper.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/incrementer.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/multisig_plain.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/subber.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v0/trait-flipper.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v1/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/ink/v2/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/ink/v3/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/ink/v4/erc20.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v4/flipper.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v4/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/ink/v5/erc20.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v5/flipper.wasm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v5/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/ink/v6/erc20.polkavm delete mode 100644 .api-contract/build-deno/test/contracts/ink/v6/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/solang/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/solang/v0/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/solang/v0/ints256.sol delete mode 100644 .api-contract/build-deno/test/contracts/solang/v0/ints256.wasm delete mode 100644 .api-contract/build-deno/test/contracts/user/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/user/v0/assetTransfer.wasm delete mode 100644 .api-contract/build-deno/test/contracts/user/v0/enumExample.wasm delete mode 100644 .api-contract/build-deno/test/contracts/user/v0/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/user/v3/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/user/v4/index.ts delete mode 100644 .api-contract/build-deno/test/contracts/util.ts delete mode 100644 .api-contract/build-deno/types.ts delete mode 100644 .api-contract/build-deno/util.ts delete mode 100644 .api-contract/build-loader/Abi/Abi.spec.js delete mode 100644 .api-contract/build-loader/Abi/index.js delete mode 100644 .api-contract/build-loader/Abi/toLatestCompatible.js delete mode 100644 .api-contract/build-loader/Abi/toLatestCompatible.spec.js delete mode 100644 .api-contract/build-loader/Abi/toV1.js delete mode 100644 .api-contract/build-loader/Abi/toV2.js delete mode 100644 .api-contract/build-loader/Abi/toV3.js delete mode 100644 .api-contract/build-loader/Abi/toV4.js delete mode 100644 .api-contract/build-loader/base/Base.js delete mode 100644 .api-contract/build-loader/base/Blueprint.js delete mode 100644 .api-contract/build-loader/base/Code.js delete mode 100644 .api-contract/build-loader/base/Code.spec.js delete mode 100644 .api-contract/build-loader/base/Contract.js delete mode 100644 .api-contract/build-loader/base/mock.js delete mode 100644 .api-contract/build-loader/base/util.js delete mode 100644 .api-contract/build-loader/test/contracts/index.js delete mode 100644 .api-contract/build-loader/test/contracts/ink/index.js delete mode 100644 .api-contract/build-loader/test/contracts/ink/v0/index.js delete mode 100644 .api-contract/build-loader/test/contracts/ink/v1/index.js delete mode 100644 .api-contract/build-loader/test/contracts/ink/v2/index.js delete mode 100644 .api-contract/build-loader/test/contracts/ink/v3/index.js delete mode 100644 .api-contract/build-loader/test/contracts/ink/v4/index.js delete mode 100644 .api-contract/build-loader/test/contracts/ink/v5/index.js delete mode 100644 .api-contract/build-loader/test/contracts/ink/v6/index.js delete mode 100644 .api-contract/build-loader/test/contracts/solang/index.js delete mode 100644 .api-contract/build-loader/test/contracts/solang/v0/index.js delete mode 100644 .api-contract/build-loader/test/contracts/user/index.js delete mode 100644 .api-contract/build-loader/test/contracts/user/v0/index.js delete mode 100644 .api-contract/build-loader/test/contracts/user/v3/index.js delete mode 100644 .api-contract/build-loader/test/contracts/user/v4/index.js delete mode 100644 .api-contract/build-loader/test/contracts/util.js delete mode 100644 .api-contract/build-loader/util.js delete mode 100644 .api-contract/build-tsc-cjs/Abi/index.js delete mode 100644 .api-contract/build-tsc-cjs/Abi/toLatestCompatible.js delete mode 100644 .api-contract/build-tsc-cjs/Abi/toV1.js delete mode 100644 .api-contract/build-tsc-cjs/Abi/toV2.js delete mode 100644 .api-contract/build-tsc-cjs/Abi/toV3.js delete mode 100644 .api-contract/build-tsc-cjs/Abi/toV4.js delete mode 100644 .api-contract/build-tsc-cjs/augment.js delete mode 100644 .api-contract/build-tsc-cjs/base/Base.js delete mode 100644 .api-contract/build-tsc-cjs/base/BaseRevive.js delete mode 100644 .api-contract/build-tsc-cjs/base/Blueprint.js delete mode 100644 .api-contract/build-tsc-cjs/base/BlueprintRevive.js delete mode 100644 .api-contract/build-tsc-cjs/base/Code.js delete mode 100644 .api-contract/build-tsc-cjs/base/CodeRevive.js delete mode 100644 .api-contract/build-tsc-cjs/base/Contract.js delete mode 100644 .api-contract/build-tsc-cjs/base/ContractRevive.js delete mode 100644 .api-contract/build-tsc-cjs/base/index.js delete mode 100644 .api-contract/build-tsc-cjs/base/mock.js delete mode 100644 .api-contract/build-tsc-cjs/base/types.js delete mode 100644 .api-contract/build-tsc-cjs/base/util.js delete mode 100644 .api-contract/build-tsc-cjs/bundle.js delete mode 100644 .api-contract/build-tsc-cjs/index.js delete mode 100644 .api-contract/build-tsc-cjs/packageDetect.js delete mode 100644 .api-contract/build-tsc-cjs/packageInfo.js delete mode 100644 .api-contract/build-tsc-cjs/promise/index.js delete mode 100644 .api-contract/build-tsc-cjs/promise/types.js delete mode 100644 .api-contract/build-tsc-cjs/rx/index.js delete mode 100644 .api-contract/build-tsc-cjs/rx/types.js delete mode 100644 .api-contract/build-tsc-cjs/types.js delete mode 100644 .api-contract/build-tsc-cjs/util.js delete mode 100644 .api-contract/build-tsc-esm/Abi/index.js delete mode 100644 .api-contract/build-tsc-esm/Abi/toLatestCompatible.js delete mode 100644 .api-contract/build-tsc-esm/Abi/toV1.js delete mode 100644 .api-contract/build-tsc-esm/Abi/toV2.js delete mode 100644 .api-contract/build-tsc-esm/Abi/toV3.js delete mode 100644 .api-contract/build-tsc-esm/Abi/toV4.js delete mode 100644 .api-contract/build-tsc-esm/augment.js delete mode 100644 .api-contract/build-tsc-esm/base/Base.js delete mode 100644 .api-contract/build-tsc-esm/base/BaseRevive.js delete mode 100644 .api-contract/build-tsc-esm/base/Blueprint.js delete mode 100644 .api-contract/build-tsc-esm/base/BlueprintRevive.js delete mode 100644 .api-contract/build-tsc-esm/base/Code.js delete mode 100644 .api-contract/build-tsc-esm/base/CodeRevive.js delete mode 100644 .api-contract/build-tsc-esm/base/Contract.js delete mode 100644 .api-contract/build-tsc-esm/base/ContractRevive.js delete mode 100644 .api-contract/build-tsc-esm/base/index.js delete mode 100644 .api-contract/build-tsc-esm/base/mock.js delete mode 100644 .api-contract/build-tsc-esm/base/types.js delete mode 100644 .api-contract/build-tsc-esm/base/util.js delete mode 100644 .api-contract/build-tsc-esm/bundle.js delete mode 100644 .api-contract/build-tsc-esm/index.js delete mode 100644 .api-contract/build-tsc-esm/packageDetect.js delete mode 100644 .api-contract/build-tsc-esm/packageInfo.js delete mode 100644 .api-contract/build-tsc-esm/promise/index.js delete mode 100644 .api-contract/build-tsc-esm/promise/types.js delete mode 100644 .api-contract/build-tsc-esm/rx/index.js delete mode 100644 .api-contract/build-tsc-esm/rx/types.js delete mode 100644 .api-contract/build-tsc-esm/types.js delete mode 100644 .api-contract/build-tsc-esm/util.js delete mode 100644 .api-contract/build-tsc/Abi/index.d.ts delete mode 100644 .api-contract/build-tsc/Abi/toLatestCompatible.d.ts delete mode 100644 .api-contract/build-tsc/Abi/toV1.d.ts delete mode 100644 .api-contract/build-tsc/Abi/toV2.d.ts delete mode 100644 .api-contract/build-tsc/Abi/toV3.d.ts delete mode 100644 .api-contract/build-tsc/Abi/toV4.d.ts delete mode 100644 .api-contract/build-tsc/augment.d.ts delete mode 100644 .api-contract/build-tsc/base/Base.d.ts delete mode 100644 .api-contract/build-tsc/base/BaseRevive.d.ts delete mode 100644 .api-contract/build-tsc/base/Blueprint.d.ts delete mode 100644 .api-contract/build-tsc/base/BlueprintRevive.d.ts delete mode 100644 .api-contract/build-tsc/base/Code.d.ts delete mode 100644 .api-contract/build-tsc/base/CodeRevive.d.ts delete mode 100644 .api-contract/build-tsc/base/Contract.d.ts delete mode 100644 .api-contract/build-tsc/base/ContractRevive.d.ts delete mode 100644 .api-contract/build-tsc/base/index.d.ts delete mode 100644 .api-contract/build-tsc/base/mock.d.ts delete mode 100644 .api-contract/build-tsc/base/types.d.ts delete mode 100644 .api-contract/build-tsc/base/util.d.ts delete mode 100644 .api-contract/build-tsc/bundle.d.ts delete mode 100644 .api-contract/build-tsc/index.d.ts delete mode 100644 .api-contract/build-tsc/packageDetect.d.ts delete mode 100644 .api-contract/build-tsc/packageInfo.d.ts delete mode 100644 .api-contract/build-tsc/promise/index.d.ts delete mode 100644 .api-contract/build-tsc/promise/types.d.ts delete mode 100644 .api-contract/build-tsc/rx/index.d.ts delete mode 100644 .api-contract/build-tsc/rx/types.d.ts delete mode 100644 .api-contract/build-tsc/types.d.ts delete mode 100644 .api-contract/build-tsc/util.d.ts delete mode 100644 .api-contract/build/Abi/index.d.ts delete mode 100644 .api-contract/build/Abi/index.js delete mode 100644 .api-contract/build/Abi/toLatestCompatible.d.ts delete mode 100644 .api-contract/build/Abi/toLatestCompatible.js delete mode 100644 .api-contract/build/Abi/toV1.d.ts delete mode 100644 .api-contract/build/Abi/toV1.js delete mode 100644 .api-contract/build/Abi/toV2.d.ts delete mode 100644 .api-contract/build/Abi/toV2.js delete mode 100644 .api-contract/build/Abi/toV3.d.ts delete mode 100644 .api-contract/build/Abi/toV3.js delete mode 100644 .api-contract/build/Abi/toV4.d.ts delete mode 100644 .api-contract/build/Abi/toV4.js delete mode 100644 .api-contract/build/LICENSE delete mode 100644 .api-contract/build/README.md delete mode 100644 .api-contract/build/augment.d.ts delete mode 100644 .api-contract/build/augment.js delete mode 100644 .api-contract/build/base/Base.d.ts delete mode 100644 .api-contract/build/base/Base.js delete mode 100644 .api-contract/build/base/BaseRevive.d.ts delete mode 100644 .api-contract/build/base/BaseRevive.js delete mode 100644 .api-contract/build/base/Blueprint.d.ts delete mode 100644 .api-contract/build/base/Blueprint.js delete mode 100644 .api-contract/build/base/BlueprintRevive.d.ts delete mode 100644 .api-contract/build/base/BlueprintRevive.js delete mode 100644 .api-contract/build/base/Code.d.ts delete mode 100644 .api-contract/build/base/Code.js delete mode 100644 .api-contract/build/base/CodeRevive.d.ts delete mode 100644 .api-contract/build/base/CodeRevive.js delete mode 100644 .api-contract/build/base/Contract.d.ts delete mode 100644 .api-contract/build/base/Contract.js delete mode 100644 .api-contract/build/base/ContractRevive.d.ts delete mode 100644 .api-contract/build/base/ContractRevive.js delete mode 100644 .api-contract/build/base/index.d.ts delete mode 100644 .api-contract/build/base/index.js delete mode 100644 .api-contract/build/base/mock.d.ts delete mode 100644 .api-contract/build/base/mock.js delete mode 100644 .api-contract/build/base/types.d.ts delete mode 100644 .api-contract/build/base/types.js delete mode 100644 .api-contract/build/base/util.d.ts delete mode 100644 .api-contract/build/base/util.js delete mode 100644 .api-contract/build/bundle-polkadot-api-contract.js delete mode 100644 .api-contract/build/bundle.d.ts delete mode 100644 .api-contract/build/bundle.js delete mode 100644 .api-contract/build/cjs/Abi/index.d.ts delete mode 100644 .api-contract/build/cjs/Abi/index.js delete mode 100644 .api-contract/build/cjs/Abi/toLatestCompatible.d.ts delete mode 100644 .api-contract/build/cjs/Abi/toLatestCompatible.js delete mode 100644 .api-contract/build/cjs/Abi/toV1.d.ts delete mode 100644 .api-contract/build/cjs/Abi/toV1.js delete mode 100644 .api-contract/build/cjs/Abi/toV2.d.ts delete mode 100644 .api-contract/build/cjs/Abi/toV2.js delete mode 100644 .api-contract/build/cjs/Abi/toV3.d.ts delete mode 100644 .api-contract/build/cjs/Abi/toV3.js delete mode 100644 .api-contract/build/cjs/Abi/toV4.d.ts delete mode 100644 .api-contract/build/cjs/Abi/toV4.js delete mode 100644 .api-contract/build/cjs/augment.d.ts delete mode 100644 .api-contract/build/cjs/augment.js delete mode 100644 .api-contract/build/cjs/base/Base.d.ts delete mode 100644 .api-contract/build/cjs/base/Base.js delete mode 100644 .api-contract/build/cjs/base/BaseRevive.d.ts delete mode 100644 .api-contract/build/cjs/base/BaseRevive.js delete mode 100644 .api-contract/build/cjs/base/Blueprint.d.ts delete mode 100644 .api-contract/build/cjs/base/Blueprint.js delete mode 100644 .api-contract/build/cjs/base/BlueprintRevive.d.ts delete mode 100644 .api-contract/build/cjs/base/BlueprintRevive.js delete mode 100644 .api-contract/build/cjs/base/Code.d.ts delete mode 100644 .api-contract/build/cjs/base/Code.js delete mode 100644 .api-contract/build/cjs/base/CodeRevive.d.ts delete mode 100644 .api-contract/build/cjs/base/CodeRevive.js delete mode 100644 .api-contract/build/cjs/base/Contract.d.ts delete mode 100644 .api-contract/build/cjs/base/Contract.js delete mode 100644 .api-contract/build/cjs/base/ContractRevive.d.ts delete mode 100644 .api-contract/build/cjs/base/ContractRevive.js delete mode 100644 .api-contract/build/cjs/base/index.d.ts delete mode 100644 .api-contract/build/cjs/base/index.js delete mode 100644 .api-contract/build/cjs/base/mock.d.ts delete mode 100644 .api-contract/build/cjs/base/mock.js delete mode 100644 .api-contract/build/cjs/base/types.d.ts delete mode 100644 .api-contract/build/cjs/base/types.js delete mode 100644 .api-contract/build/cjs/base/util.d.ts delete mode 100644 .api-contract/build/cjs/base/util.js delete mode 100644 .api-contract/build/cjs/bundle.d.ts delete mode 100644 .api-contract/build/cjs/bundle.js delete mode 100644 .api-contract/build/cjs/index.d.ts delete mode 100644 .api-contract/build/cjs/index.js delete mode 100644 .api-contract/build/cjs/package.json delete mode 100644 .api-contract/build/cjs/packageDetect.d.ts delete mode 100644 .api-contract/build/cjs/packageDetect.js delete mode 100644 .api-contract/build/cjs/packageInfo.d.ts delete mode 100644 .api-contract/build/cjs/packageInfo.js delete mode 100644 .api-contract/build/cjs/promise/index.d.ts delete mode 100644 .api-contract/build/cjs/promise/index.js delete mode 100644 .api-contract/build/cjs/promise/types.d.ts delete mode 100644 .api-contract/build/cjs/promise/types.js delete mode 100644 .api-contract/build/cjs/rx/index.d.ts delete mode 100644 .api-contract/build/cjs/rx/index.js delete mode 100644 .api-contract/build/cjs/rx/types.d.ts delete mode 100644 .api-contract/build/cjs/rx/types.js delete mode 100644 .api-contract/build/cjs/types.d.ts delete mode 100644 .api-contract/build/cjs/types.js delete mode 100644 .api-contract/build/cjs/util.d.ts delete mode 100644 .api-contract/build/cjs/util.js delete mode 100644 .api-contract/build/index.d.ts delete mode 100644 .api-contract/build/index.js delete mode 100644 .api-contract/build/package.json delete mode 100644 .api-contract/build/packageDetect.d.ts delete mode 100644 .api-contract/build/packageDetect.js delete mode 100644 .api-contract/build/packageInfo.d.ts delete mode 100644 .api-contract/build/packageInfo.js delete mode 100644 .api-contract/build/promise/index.d.ts delete mode 100644 .api-contract/build/promise/index.js delete mode 100644 .api-contract/build/promise/types.d.ts delete mode 100644 .api-contract/build/promise/types.js delete mode 100644 .api-contract/build/rx/index.d.ts delete mode 100644 .api-contract/build/rx/index.js delete mode 100644 .api-contract/build/rx/types.d.ts delete mode 100644 .api-contract/build/rx/types.js delete mode 100644 .api-contract/build/types.d.ts delete mode 100644 .api-contract/build/types.js delete mode 100644 .api-contract/build/util.d.ts delete mode 100644 .api-contract/build/util.js delete mode 100644 .api-contract/package.json delete mode 100644 .api-contract/src/Abi/Abi.spec.ts delete mode 100644 .api-contract/src/Abi/index.ts delete mode 100644 .api-contract/src/Abi/toLatestCompatible.spec.ts delete mode 100644 .api-contract/src/Abi/toLatestCompatible.ts delete mode 100644 .api-contract/src/Abi/toV1.ts delete mode 100644 .api-contract/src/Abi/toV2.ts delete mode 100644 .api-contract/src/Abi/toV3.ts delete mode 100644 .api-contract/src/Abi/toV4.ts delete mode 100644 .api-contract/src/augment.ts delete mode 100644 .api-contract/src/base/Base.ts delete mode 100644 .api-contract/src/base/BaseRevive.ts delete mode 100644 .api-contract/src/base/Blueprint.ts delete mode 100644 .api-contract/src/base/BlueprintRevive.ts delete mode 100644 .api-contract/src/base/Code.spec.ts delete mode 100644 .api-contract/src/base/Code.ts delete mode 100644 .api-contract/src/base/CodeRevive.ts delete mode 100644 .api-contract/src/base/Contract.ts delete mode 100644 .api-contract/src/base/ContractRevive.ts delete mode 100644 .api-contract/src/base/index.ts delete mode 100644 .api-contract/src/base/mock.ts delete mode 100644 .api-contract/src/base/types.ts delete mode 100644 .api-contract/src/base/util.ts delete mode 100644 .api-contract/src/bundle.ts delete mode 100644 .api-contract/src/checkTypes.manual.ts delete mode 100644 .api-contract/src/index.ts delete mode 100644 .api-contract/src/mod.ts delete mode 100644 .api-contract/src/packageDetect.ts delete mode 100644 .api-contract/src/packageInfo.ts delete mode 100644 .api-contract/src/promise/index.ts delete mode 100644 .api-contract/src/promise/types.ts delete mode 100644 .api-contract/src/rx/index.ts delete mode 100644 .api-contract/src/rx/types.ts delete mode 100644 .api-contract/src/test/compare/ink_v0_delegator.test.json delete mode 100644 .api-contract/src/test/compare/ink_v0_dns.test.json delete mode 100644 .api-contract/src/test/compare/ink_v0_erc20.test.json delete mode 100644 .api-contract/src/test/compare/ink_v0_erc721.test.json delete mode 100644 .api-contract/src/test/compare/ink_v0_flipper.test.json delete mode 100644 .api-contract/src/test/compare/ink_v0_flipperBundle.test.json delete mode 100644 .api-contract/src/test/compare/ink_v0_incrementer.test.json delete mode 100644 .api-contract/src/test/compare/ink_v0_multisigPlain.test.json delete mode 100644 .api-contract/src/test/compare/ink_v1_flipper.test.json delete mode 100644 .api-contract/src/test/compare/ink_v1_psp22.test.json delete mode 100644 .api-contract/src/test/compare/ink_v2_erc20.test.json delete mode 100644 .api-contract/src/test/compare/ink_v2_flipper.test.json delete mode 100644 .api-contract/src/test/compare/ink_v3_flipper.test.json delete mode 100644 .api-contract/src/test/compare/ink_v3_traitErc20.test.json delete mode 100644 .api-contract/src/test/compare/ink_v4_erc20Contract.test.json delete mode 100644 .api-contract/src/test/compare/ink_v4_erc20Metadata.test.json delete mode 100644 .api-contract/src/test/compare/ink_v4_flipperContract.test.json delete mode 100644 .api-contract/src/test/compare/ink_v4_flipperMetadata.test.json delete mode 100644 .api-contract/src/test/compare/ink_v5_erc20.test.json delete mode 100644 .api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json delete mode 100644 .api-contract/src/test/compare/ink_v5_erc20Contract.test.json delete mode 100644 .api-contract/src/test/compare/ink_v5_erc20Metadata.test.json delete mode 100644 .api-contract/src/test/compare/ink_v5_flipperContract.test.json delete mode 100644 .api-contract/src/test/compare/ink_v5_flipperMetadata.test.json delete mode 100644 .api-contract/src/test/compare/ink_v6_erc20Contract.test.json delete mode 100644 .api-contract/src/test/compare/ink_v6_erc20Metadata.test.json delete mode 100644 .api-contract/src/test/compare/solang_v0_ints256.test.json delete mode 100644 .api-contract/src/test/compare/user_v0_assetTransfer.test.json delete mode 100644 .api-contract/src/test/compare/user_v0_enumExample.test.json delete mode 100644 .api-contract/src/test/compare/user_v0_recursive.test.json delete mode 100644 .api-contract/src/test/compare/user_v0_withString.test.json delete mode 100644 .api-contract/src/test/compare/user_v3_ask.test.json delete mode 100644 .api-contract/src/test/compare/user_v4_events.test.json delete mode 100644 .api-contract/src/test/contracts/index.ts delete mode 100644 .api-contract/src/test/contracts/ink/index.ts delete mode 100644 .api-contract/src/test/contracts/ink/v0/accumulator.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v0/adder.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v0/delegator.json delete mode 100644 .api-contract/src/test/contracts/ink/v0/delegator.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v0/dns.json delete mode 100644 .api-contract/src/test/contracts/ink/v0/dns.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v0/erc20.json delete mode 100644 .api-contract/src/test/contracts/ink/v0/erc20.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v0/erc721.json delete mode 100644 .api-contract/src/test/contracts/ink/v0/erc721.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v0/flipper.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v0/flipper.json delete mode 100644 .api-contract/src/test/contracts/ink/v0/flipper.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v0/incrementer.json delete mode 100644 .api-contract/src/test/contracts/ink/v0/incrementer.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v0/index.ts delete mode 100644 .api-contract/src/test/contracts/ink/v0/multisig_plain.json delete mode 100644 .api-contract/src/test/contracts/ink/v0/multisig_plain.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v0/subber.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v0/trait-flipper.json delete mode 100644 .api-contract/src/test/contracts/ink/v0/trait-flipper.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v1/flipper.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v1/index.ts delete mode 100644 .api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v2/erc20.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v2/flipper.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v2/index.ts delete mode 100644 .api-contract/src/test/contracts/ink/v3/flipper.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v3/index.ts delete mode 100644 .api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v4/erc20.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v4/erc20.json delete mode 100644 .api-contract/src/test/contracts/ink/v4/erc20.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v4/flipper.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v4/flipper.json delete mode 100644 .api-contract/src/test/contracts/ink/v4/flipper.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v4/index.ts delete mode 100644 .api-contract/src/test/contracts/ink/v5/erc20.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v5/erc20.json delete mode 100644 .api-contract/src/test/contracts/ink/v5/erc20.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json delete mode 100644 .api-contract/src/test/contracts/ink/v5/flipper.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v5/flipper.json delete mode 100644 .api-contract/src/test/contracts/ink/v5/flipper.wasm delete mode 100644 .api-contract/src/test/contracts/ink/v5/index.ts delete mode 100644 .api-contract/src/test/contracts/ink/v6/erc20.contract.json delete mode 100644 .api-contract/src/test/contracts/ink/v6/erc20.json delete mode 100644 .api-contract/src/test/contracts/ink/v6/erc20.polkavm delete mode 100644 .api-contract/src/test/contracts/ink/v6/index.ts delete mode 100644 .api-contract/src/test/contracts/solang/index.ts delete mode 100644 .api-contract/src/test/contracts/solang/v0/index.ts delete mode 100644 .api-contract/src/test/contracts/solang/v0/ints256.json delete mode 100644 .api-contract/src/test/contracts/solang/v0/ints256.sol delete mode 100644 .api-contract/src/test/contracts/solang/v0/ints256.wasm delete mode 100644 .api-contract/src/test/contracts/user/index.ts delete mode 100644 .api-contract/src/test/contracts/user/v0/assetTransfer.json delete mode 100644 .api-contract/src/test/contracts/user/v0/assetTransfer.wasm delete mode 100644 .api-contract/src/test/contracts/user/v0/enumExample.json delete mode 100644 .api-contract/src/test/contracts/user/v0/enumExample.wasm delete mode 100644 .api-contract/src/test/contracts/user/v0/index.ts delete mode 100644 .api-contract/src/test/contracts/user/v0/recursive.contract.json delete mode 100644 .api-contract/src/test/contracts/user/v0/withString.json delete mode 100644 .api-contract/src/test/contracts/user/v3/ask.json delete mode 100644 .api-contract/src/test/contracts/user/v3/index.ts delete mode 100644 .api-contract/src/test/contracts/user/v4/events.contract.json delete mode 100644 .api-contract/src/test/contracts/user/v4/index.ts delete mode 100644 .api-contract/src/test/contracts/util.ts delete mode 100644 .api-contract/src/types.ts delete mode 100644 .api-contract/src/util.ts delete mode 100644 .api-contract/tsconfig.build.json delete mode 100644 .api-contract/tsconfig.spec.json diff --git a/.api-contract/README.md b/.api-contract/README.md deleted file mode 100644 index f50beb5f..00000000 --- a/.api-contract/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# @polkadot/api-contract - -Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-contract/build-deno/Abi/index.ts b/.api-contract/build-deno/Abi/index.ts deleted file mode 100644 index a37261de..00000000 --- a/.api-contract/build-deno/Abi/index.ts +++ /dev/null @@ -1,499 +0,0 @@ -import type { Bytes, Vec } from 'https://deno.land/x/polkadot/types/mod.ts'; -import type { - ChainProperties, - ContractConstructorSpecLatest, - ContractEventParamSpecLatest, - ContractMessageParamSpecLatest, - ContractMessageSpecLatest, - ContractMetadata, - ContractMetadataV4, - ContractMetadataV5, - ContractMetadataV6, - ContractProjectInfo, - ContractTypeSpec, - EventRecord, -} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { Codec, Registry, TypeDef } from 'https://deno.land/x/polkadot/types/types/index.ts'; -import type { - AbiConstructor, - AbiEvent, - AbiEventParam, - AbiMessage, - AbiMessageParam, - AbiParam, - DecodedEvent, - DecodedMessage, -} from '../types.ts'; - -import { Option, TypeRegistry } from 'https://deno.land/x/polkadot/types/mod.ts'; -import { TypeDefInfo } from 'https://deno.land/x/polkadot/types-create/mod.ts'; -import { - assertReturn, - compactAddLength, - compactStripLength, - isBn, - isNumber, - isObject, - isString, - isUndefined, - logger, - stringCamelCase, - stringify, - u8aConcat, - u8aToHex, -} from 'https://deno.land/x/polkadot/util/mod.ts'; - -import { convertVersions, enumVersions } from './toLatestCompatible.ts'; - -interface AbiJson { - version?: string; - - [key: string]: unknown; -} - -type EventOf = M extends { spec: { events: Vec } } ? E : never; -export type ContractMetadataSupported = - | ContractMetadataV4 - | ContractMetadataV5 - | ContractMetadataV6; -type ContractEventSupported = EventOf; - -const l = logger('Abi'); - -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; - -function findMessage(list: T[], messageOrId: T | string | number): T { - const message = isNumber(messageOrId) - ? list[messageOrId] - : isString(messageOrId) - ? list.find(({ identifier }) => - [identifier, stringCamelCase(identifier)].includes(messageOrId.toString()), - ) - : messageOrId; - - return assertReturn( - message, - () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`, - ); -} - -function getMetadata(registry: Registry, json: AbiJson): ContractMetadataSupported { - // this is for V1, V2, V3 - const vx = enumVersions.find(v => isObject(json[v])); - - // this was added in V4 - const jsonVersion = json.version; - console.log('parsing metadata'); - console.log(jsonVersion); - console.log(enumVersions); - - if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { - throw new Error(`Unable to handle version ${jsonVersion}`); - } - console.log('parsed'); - console.log(vx); - - const metadata = registry.createType( - 'ContractMetadata', - vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, - ); - console.log('m'); - const converter = convertVersions.find(([v]) => metadata[`is${v}`]); - - if (!converter) { - throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); - } - console.log('converter'); - const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); - console.log('up'); - return upgradedMetadata; -} - -function parseJson( - json: Record, - chainProperties?: ChainProperties, -): [Record, Registry, ContractMetadataSupported, ContractProjectInfo] { - console.log('parsing json'); - const registry = new TypeRegistry(); - const info = registry.createType('ContractProjectInfo', json) as unknown as ContractProjectInfo; - const metadata = getMetadata(registry, json as unknown as AbiJson); - const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); - - // attach the lookup to the registry - now the types are known - registry.setLookup(lookup); - - if (chainProperties) { - registry.setChainProperties(chainProperties); - } - - // warm-up the actual type, pre-use - lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); - console.log('warmed up'); - return [json, registry, metadata, info]; -} - -/** - * @internal - * Determines if the given input value is a ContractTypeSpec - */ -function isTypeSpec(value: Codec): value is ContractTypeSpec { - return ( - !!value && - value instanceof Map && - !isUndefined((value as ContractTypeSpec).type) && - !isUndefined((value as ContractTypeSpec).displayName) - ); -} - -/** - * @internal - * Determines if the given input value is an Option - */ -function isOption(value: Codec): value is Option { - return !!value && value instanceof Option; -} - -export class Abi { - readonly events: AbiEvent[]; - readonly constructors: AbiConstructor[]; - readonly info: ContractProjectInfo; - readonly json: Record; - readonly messages: AbiMessage[]; - readonly metadata: ContractMetadataSupported; - readonly registry: Registry; - readonly environment = new Map(); - - constructor(abiJson: Record | string, chainProperties?: ChainProperties) { - console.log('constructor'); - [this.json, this.registry, this.metadata, this.info] = parseJson( - isString(abiJson) ? (JSON.parse(abiJson) as Record) : abiJson, - chainProperties, - ); - console.log('parsed json'); - this.constructors = this.metadata.spec.constructors.map( - (spec: ContractConstructorSpecLatest, index) => - this.#createMessage(spec, index, { - isConstructor: true, - isDefault: spec.default.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created constructors'); - this.events = this.metadata.spec.events.map((_: ContractEventSupported, index: number) => - this.#createEvent(index), - ); - console.log('created events'); - this.messages = this.metadata.spec.messages.map( - (spec: ContractMessageSpecLatest, index): AbiMessage => - this.#createMessage(spec, index, { - isDefault: spec.default.isTrue, - isMutating: spec.mutates.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created messages'); - - // NOTE See the rationale for having Option<...> values in the actual - // ContractEnvironmentV4 structure definition in interfaces/contractsAbi - // (Due to conversions, the fields may not exist) - for (const [key, opt] of this.metadata.spec.environment.entries()) { - if (isOption(opt)) { - if (opt.isSome) { - const value = opt.unwrap(); - - if (isBn(value)) { - this.environment.set(key, value); - } else if (isTypeSpec(value)) { - this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); - } else { - throw new Error( - `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, - ); - } - } - } else { - throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); - } - } - console.log('created environment'); - } - - /** - * Warning: Unstable API, bound to change - */ - public decodeEvent(record: EventRecord): DecodedEvent { - switch (this.metadata.version.toString()) { - // earlier version are hoisted to v4 - case '4': - return this.#decodeEventV4(record); - // Latest - default: - return this.#decodeEventV5(record); - } - } - - #decodeEventV5 = (record: EventRecord): DecodedEvent => { - // Find event by first topic, which potentially is the signature_topic - const signatureTopic = record.topics[0]; - const data = record.event.data[1] as Bytes; - - if (signatureTopic) { - const event = this.events.find( - e => - e.signatureTopic !== undefined && - e.signatureTopic !== null && - e.signatureTopic === signatureTopic.toHex(), - ); - - // Early return if event found by signature topic - if (event) { - return event.fromU8a(data); - } - } - - // If no event returned yet, it might be anonymous - const amountOfTopics = record.topics.length; - const potentialEvents = this.events.filter(e => { - // event can't have a signature topic - if (e.signatureTopic !== null && e.signatureTopic !== undefined) { - return false; - } - - // event should have same amount of indexed fields as emitted topics - const amountIndexed = e.args.filter(a => a.indexed).length; - - if (amountIndexed !== amountOfTopics) { - return false; - } - - // If all conditions met, it's a potential event - return true; - }); - - if (potentialEvents.length === 1) { - return potentialEvents[0].fromU8a(data); - } - - throw new Error('Unable to determine event'); - }; - - #decodeEventV4 = (record: EventRecord): DecodedEvent => { - const data = record.event.data[1] as Bytes; - const index = data[0]; - const event = this.events[index]; - - if (!event) { - throw new Error(`Unable to find event with index ${index}`); - } - - return event.fromU8a(data.subarray(1)); - }; - - /** - * Warning: Unstable API, bound to change - */ - public decodeConstructor(data: Uint8Array): DecodedMessage { - return this.#decodeMessage('message', this.constructors, data); - } - - /** - * Warning: Unstable API, bound to change - */ - public decodeMessage(data: Uint8Array): DecodedMessage { - return this.#decodeMessage('message', this.messages, data); - } - - public findConstructor(constructorOrId: AbiConstructor | string | number): AbiConstructor { - return findMessage(this.constructors, constructorOrId); - } - - public findMessage(messageOrId: AbiMessage | string | number): AbiMessage { - return findMessage(this.messages, messageOrId); - } - - #createArgs = ( - args: ContractMessageParamSpecLatest[] | ContractEventParamSpecLatest[], - spec: unknown, - ): AbiParam[] => { - return args.map(({ label, type }, index): AbiParam => { - try { - if (!isObject(type)) { - throw new Error('Invalid type definition found'); - } - - const displayName = type.displayName.length - ? type.displayName[type.displayName.length - 1].toString() - : undefined; - const camelName = stringCamelCase(label); - - if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { - return { - name: camelName, - type: { - info: TypeDefInfo.Plain, - type: displayName, - }, - }; - } - - const typeDef = this.registry.lookup.getTypeDef(type.type); - - return { - name: camelName, - type: - displayName && !typeDef.type.startsWith(displayName) - ? { displayName, ...typeDef } - : typeDef, - }; - } catch (error) { - l.error(`Error expanding argument ${index} in ${stringify(spec)}`); - - throw error; - } - }); - }; - - #createMessageParams = ( - args: ContractMessageParamSpecLatest[], - spec: unknown, - ): AbiMessageParam[] => { - return this.#createArgs(args, spec); - }; - - #createEventParams = (args: ContractEventParamSpecLatest[], spec: unknown): AbiEventParam[] => { - const params = this.#createArgs(args, spec); - - return params.map( - (p, index): AbiEventParam => ({ ...p, indexed: args[index].indexed.toPrimitive() }), - ); - }; - - #createEvent = (index: number): AbiEvent => { - // TODO TypeScript would narrow this type to the correct version, - // but version is `Text` so I need to call `toString()` here, - // which breaks the type inference. - switch (this.metadata.version.toString()) { - case '4': - return this.#createEventV4((this.metadata as ContractMetadataV4).spec.events[index], index); - default: - return this.#createEventV5((this.metadata as ContractMetadataV5).spec.events[index], index); - } - }; - - #createEventV5 = (spec: EventOf, index: number): AbiEvent => { - const args = this.#createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: (data: Uint8Array): DecodedEvent => ({ - args: this.#decodeArgs(args, data), - event, - }), - identifier: [spec.module_path, spec.label].join('::'), - index, - signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, - }; - - return event; - }; - - #createEventV4 = (spec: EventOf, index: number): AbiEvent => { - const args = this.#createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: (data: Uint8Array): DecodedEvent => ({ - args: this.#decodeArgs(args, data), - event, - }), - identifier: spec.label.toString(), - index, - }; - - return event; - }; - - #createMessage = ( - spec: ContractMessageSpecLatest | ContractConstructorSpecLatest, - index: number, - add: Partial = {}, - ): AbiMessage => { - const args = this.#createMessageParams(spec.args, spec); - const identifier = spec.label.toString(); - const message = { - ...add, - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: (data: Uint8Array): DecodedMessage => ({ - args: this.#decodeArgs(args, data), - message, - }), - identifier, - index, - isDefault: spec.default.isTrue, - method: stringCamelCase(identifier), - path: identifier.split('::').map(s => stringCamelCase(s)), - selector: spec.selector, - toU8a: (params: unknown[]) => this.#encodeMessageArgs(spec, args, params), - }; - - return message; - }; - - #decodeArgs = (args: AbiParam[], data: Uint8Array): Codec[] => { - // for decoding we expect the input to be just the arg data, no selectors - // no length added (this allows use with events as well) - let offset = 0; - - return args.map(({ type: { lookupName, type } }): Codec => { - const value = this.registry.createType(lookupName || type, data.subarray(offset)); - - offset += value.encodedLength; - - return value; - }); - }; - - #decodeMessage = ( - type: 'constructor' | 'message', - list: AbiMessage[], - data: Uint8Array, - ): DecodedMessage => { - const [, trimmed] = compactStripLength(data); - const selector = trimmed.subarray(0, 4); - const message = list.find(m => m.selector.eq(selector)); - - if (!message) { - throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`); - } - - return message.fromU8a(trimmed.subarray(4)); - }; - - #encodeMessageArgs = ( - { label, selector }: ContractMessageSpecLatest | ContractConstructorSpecLatest, - args: AbiMessageParam[], - data: unknown[], - ): Uint8Array => { - if (data.length !== args.length) { - throw new Error( - `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, - ); - } - - return compactAddLength( - u8aConcat( - this.registry.createType('ContractSelector', selector).toU8a(), - ...args.map(({ type: { lookupName, type } }, index) => - this.registry.createType(lookupName || type, data[index]).toU8a(), - ), - ), - ); - }; -} diff --git a/.api-contract/build-deno/Abi/toLatestCompatible.ts b/.api-contract/build-deno/Abi/toLatestCompatible.ts deleted file mode 100644 index 4ddddb2b..00000000 --- a/.api-contract/build-deno/Abi/toLatestCompatible.ts +++ /dev/null @@ -1,62 +0,0 @@ -import type { - ContractMetadataV4, - ContractMetadataV5, - ContractMetadataV6, -} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; -import type { ContractMetadataSupported } from './index.ts'; - -import { v0ToV1 } from './toV1.ts'; -import { v1ToV2 } from './toV2.ts'; -import { v2ToV3 } from './toV3.ts'; -import { v3ToV4 } from './toV4.ts'; - -export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1'] as const; - -type Versions = (typeof enumVersions)[number] | 'V0'; - -type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; - -function createConverter( - next: (registry: Registry, input: O) => ContractMetadataSupported, - step: (registry: Registry, input: I) => O, -): (registry: Registry, input: I) => ContractMetadataSupported { - return (registry: Registry, input: I): ContractMetadataSupported => - next(registry, step(registry, input)); -} - -export function v6ToLatestCompatible( - _registry: Registry, - v6: ContractMetadataV6, -): ContractMetadataV6 { - return v6; -} - -export function v5ToLatestCompatible( - _registry: Registry, - v5: ContractMetadataV5, -): ContractMetadataV5 { - return v5; -} - -export function v4ToLatestCompatible( - _registry: Registry, - v4: ContractMetadataV4, -): ContractMetadataV4 { - return v4; -} - -export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4); -export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3); -export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); -export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); - -export const convertVersions: [Versions, Converter][] = [ - ['V6', v6ToLatestCompatible], - ['V5', v5ToLatestCompatible], - ['V4', v4ToLatestCompatible], - ['V3', v3ToLatestCompatible], - ['V2', v2ToLatestCompatible], - ['V1', v1ToLatestCompatible], - ['V0', v0ToLatestCompatible], -]; diff --git a/.api-contract/build-deno/Abi/toV1.ts b/.api-contract/build-deno/Abi/toV1.ts deleted file mode 100644 index c3e2d595..00000000 --- a/.api-contract/build-deno/Abi/toV1.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { - ContractMetadataV0, - ContractMetadataV1, -} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; - -import { convertSiV0toV1 } from 'https://deno.land/x/polkadot/types/mod.ts'; -import { objectSpread } from 'https://deno.land/x/polkadot/util/mod.ts'; - -interface Named { - name: unknown; -} - -function v0ToV1Names(all: Named[]): unknown[] { - return all.map(e => - objectSpread({}, e, { - name: Array.isArray(e.name) ? e.name : [e.name], - }), - ); -} - -export function v0ToV1(registry: Registry, v0: ContractMetadataV0): ContractMetadataV1 { - if (!v0.metadataVersion.length) { - throw new Error('Invalid format for V0 (detected) contract metadata'); - } - - return registry.createType( - 'ContractMetadataV1', - objectSpread({}, v0, { - spec: objectSpread({}, v0.spec, { - constructors: v0ToV1Names(v0.spec.constructors), - messages: v0ToV1Names(v0.spec.messages), - }), - types: convertSiV0toV1(registry, v0.types), - }), - ); -} diff --git a/.api-contract/build-deno/Abi/toV2.ts b/.api-contract/build-deno/Abi/toV2.ts deleted file mode 100644 index 6f2832fe..00000000 --- a/.api-contract/build-deno/Abi/toV2.ts +++ /dev/null @@ -1,67 +0,0 @@ -import type { Text } from 'https://deno.land/x/polkadot/types/mod.ts'; -import type { - ContractConstructorSpecV0, - ContractEventSpecV0, - ContractMessageSpecV0, - ContractMetadataV1, - ContractMetadataV2, -} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; - -import { objectSpread } from 'https://deno.land/x/polkadot/util/mod.ts'; - -type WithArgs = keyof typeof ARG_TYPES; - -interface NamedEntry { - name: Text | Text[]; -} - -type GetArgsType = T extends 'ContractConstructorSpec' - ? ContractConstructorSpecV0 - : T extends ContractEventSpecV0 - ? ContractEventSpecV0 - : ContractMessageSpecV0; - -interface ArgsEntry extends NamedEntry { - args: GetArgsType['args'][0][]; -} - -const ARG_TYPES = { - ContractConstructorSpec: 'ContractMessageParamSpecV2', - ContractEventSpec: 'ContractEventParamSpecV2', - ContractMessageSpec: 'ContractMessageParamSpecV2', -} as const; - -function v1ToV2Label(entry: NamedEntry): { label: Text } { - return objectSpread({}, entry, { - label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, - }); -} - -function v1ToV2Labels( - registry: Registry, - outType: T, - all: ArgsEntry[], -): unknown[] { - return all.map(e => - registry.createType( - `${outType}V2`, - objectSpread(v1ToV2Label(e), { - args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), - }), - ), - ); -} - -export function v1ToV2(registry: Registry, v1: ContractMetadataV1): ContractMetadataV2 { - return registry.createType( - 'ContractMetadataV2', - objectSpread({}, v1, { - spec: objectSpread({}, v1.spec, { - constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), - events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), - messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), - }), - }), - ); -} diff --git a/.api-contract/build-deno/Abi/toV3.ts b/.api-contract/build-deno/Abi/toV3.ts deleted file mode 100644 index bfb04542..00000000 --- a/.api-contract/build-deno/Abi/toV3.ts +++ /dev/null @@ -1,21 +0,0 @@ -import type { - ContractMetadataV2, - ContractMetadataV3, -} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; - -import { objectSpread } from 'https://deno.land/x/polkadot/util/mod.ts'; - -export function v2ToV3(registry: Registry, v2: ContractMetadataV2): ContractMetadataV3 { - return registry.createType( - 'ContractMetadataV3', - objectSpread({}, v2, { - spec: objectSpread({}, v2.spec, { - constructors: v2.spec.constructors.map(c => - // V3 introduces the payable flag on constructors, for - registry.createType('ContractConstructorSpecV4', objectSpread({}, c)), - ), - messages: v3.spec.messages.map(m => - registry.createType('ContractMessageSpecV3', objectSpread({}, m)), - ), - }), - version: registry.createType('Text', '4'), - }), - ); -} diff --git a/.api-contract/build-deno/README.md b/.api-contract/build-deno/README.md deleted file mode 100644 index f50beb5f..00000000 --- a/.api-contract/build-deno/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# @polkadot/api-contract - -Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-contract/build-deno/augment.ts b/.api-contract/build-deno/augment.ts deleted file mode 100644 index 3db96e01..00000000 --- a/.api-contract/build-deno/augment.ts +++ /dev/null @@ -1 +0,0 @@ -import 'https://deno.land/x/polkadot/api-augment/mod.ts'; diff --git a/.api-contract/build-deno/base/Base.ts b/.api-contract/build-deno/base/Base.ts deleted file mode 100644 index 777cadfb..00000000 --- a/.api-contract/build-deno/base/Base.ts +++ /dev/null @@ -1,49 +0,0 @@ -import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; -import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { WeightV2 } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; - -import { isFunction } from 'https://deno.land/x/polkadot/util/mod.ts'; - -import { Abi } from '../Abi/index.ts'; - -export abstract class Base { - readonly abi: Abi; - readonly api: ApiBase; - - protected readonly _decorateMethod: DecorateMethod; - protected readonly _isWeightV1: boolean; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - decorateMethod: DecorateMethod, - ) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.contracts || - !isFunction(api.tx.contracts.instantiateWithCode) || - api.tx.contracts.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', - ); - } - - this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - - public get registry(): Registry { - return this.api.registry; - } -} diff --git a/.api-contract/build-deno/base/BaseRevive.ts b/.api-contract/build-deno/base/BaseRevive.ts deleted file mode 100644 index 1433ae06..00000000 --- a/.api-contract/build-deno/base/BaseRevive.ts +++ /dev/null @@ -1,49 +0,0 @@ -import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; -import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { WeightV2 } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { Registry } from 'https://deno.land/x/polkadot/types/types/index.ts'; - -import { isFunction } from 'https://deno.land/x/polkadot/util/mod.ts'; - -import { Abi } from '../Abi/index.ts'; - -export abstract class BaseRevive { - readonly abi: Abi; - readonly api: ApiBase; - - protected readonly _decorateMethod: DecorateMethod; - protected readonly _isWeightV1: boolean; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - decorateMethod: DecorateMethod, - ) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.revive || - !isFunction(api.tx.revive.instantiateWithCode) || - api.tx.revive.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.reviveApi || !isFunction(api.call.reviveApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', - ); - } - - this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - - public get registry(): Registry { - return this.api.registry; - } -} diff --git a/.api-contract/build-deno/base/Blueprint.ts b/.api-contract/build-deno/base/Blueprint.ts deleted file mode 100644 index 05e74c16..00000000 --- a/.api-contract/build-deno/base/Blueprint.ts +++ /dev/null @@ -1,118 +0,0 @@ -import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; -import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; -import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { - AccountId, - EventRecord, - Hash, -} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; -import type { Abi } from '../Abi/index.ts'; -import type { AbiConstructor, BlueprintOptions } from '../types.ts'; -import type { MapConstructorExec } from './types.ts'; - -import { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; -import { BN_ZERO, isUndefined } from 'https://deno.land/x/polkadot/util/mod.ts'; - -import { applyOnEvent } from '../util.ts'; -import { Base } from './Base.ts'; -import { Contract } from './Contract.ts'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts'; - -export type BlueprintConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, -) => Blueprint; - -export class BlueprintSubmittableResult extends SubmittableResult { - readonly contract?: Contract | undefined; - - constructor(result: ISubmittableResult, contract?: Contract) { - super(result); - - this.contract = contract; - } -} - -export class Blueprint extends Base { - /** - * @description The on-chain code hash for this blueprint - */ - readonly codeHash: Hash; - - readonly #tx: MapConstructorExec = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.codeHash = this.registry.createType('Hash', codeHash); - - this.abi.constructors.forEach((c): void => { - if (isUndefined(this.#tx[c.method])) { - this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p)); - } - }); - } - - public get tx(): MapConstructorExec { - return this.#tx; - } - - #deploy = ( - constructorOrId: AbiConstructor | string | number, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, - params: unknown[], - ): SubmittableExtrinsic> => { - return this.api.tx.contracts - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - (result: ISubmittableResult) => - new BlueprintSubmittableResult( - result, - applyOnEvent( - result, - ['Instantiated'], - ([record]: EventRecord[]) => - new Contract( - this.api, - this.abi, - record.event.data[1] as AccountId, - this._decorateMethod, - ), - ), - ), - ); - }; -} - -export function extendBlueprint( - type: ApiType, - decorateMethod: DecorateMethod, -): BlueprintConstructor { - return class extends Blueprint { - static __BlueprintType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - ) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/build-deno/base/BlueprintRevive.ts b/.api-contract/build-deno/base/BlueprintRevive.ts deleted file mode 100644 index 99068029..00000000 --- a/.api-contract/build-deno/base/BlueprintRevive.ts +++ /dev/null @@ -1,103 +0,0 @@ -import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; -import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; -import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { Hash } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; -import type { Abi } from '../Abi/index.ts'; -import type { AbiConstructor, BlueprintOptions } from '../types.ts'; -import type { MapConstructorExec } from './types.ts'; - -import { BN_ZERO, isUndefined } from 'https://deno.land/x/polkadot/util/mod.ts'; - -import { BaseRevive } from './BaseRevive.ts'; -import { BlueprintSubmittableResult } from './Blueprint.ts'; -import { Contract } from './Contract.ts'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts'; - -export type BlueprintReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, -) => BlueprintRevive; - -export class BlueprintRevive extends BaseRevive { - /** - * @description The on-chain code hash for this blueprint - */ - readonly codeHash: Hash; - - readonly #tx: MapConstructorExec = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.codeHash = this.registry.createType('Hash', codeHash); - - this.abi.constructors.forEach((c): void => { - if (isUndefined(this.#tx[c.method])) { - this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p)); - } - }); - } - - public get tx(): MapConstructorExec { - return this.#tx; - } - - #deploy = ( - constructorOrId: AbiConstructor | string | number, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, - params: unknown[], - ): SubmittableExtrinsic> => { - return this.api.tx.revive - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - (result: ISubmittableResult) => - new BlueprintSubmittableResult( - result, - (() => { - if (result.status.isInBlock || result.status.isFinalized) { - return new Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ); - } - return undefined; - })(), - ), - ); - }; -} - -export function extendBlueprint( - type: ApiType, - decorateMethod: DecorateMethod, -): BlueprintReviveConstructor { - return class extends BlueprintRevive { - static __BlueprintType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - ) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/build-deno/base/Code.ts b/.api-contract/build-deno/base/Code.ts deleted file mode 100644 index 4be1468f..00000000 --- a/.api-contract/build-deno/base/Code.ts +++ /dev/null @@ -1,155 +0,0 @@ -import { Buffer } from 'node:buffer'; - -import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; -import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; -import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { - AccountId, - EventRecord, -} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; -import type { Codec } from 'https://deno.land/x/polkadot/types-codec/types/index.ts'; -import type { Abi } from '../Abi/index.ts'; -import type { AbiConstructor, BlueprintOptions } from '../types.ts'; -import type { MapConstructorExec } from './types.ts'; - -import { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; -import { - BN_ZERO, - compactAddLength, - isRiscV, - isUndefined, - isWasm, - u8aToU8a, -} from 'https://deno.land/x/polkadot/util/mod.ts'; - -import { applyOnEvent } from '../util.ts'; -import { Base } from './Base.ts'; -import { Blueprint } from './Blueprint.ts'; -import { Contract } from './Contract.ts'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts'; - -export type CodeConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, -) => Code; - -export class CodeSubmittableResult extends SubmittableResult { - readonly blueprint?: Blueprint | undefined; - readonly contract?: Contract | undefined; - - constructor( - result: ISubmittableResult, - blueprint?: Blueprint | undefined, - contract?: Contract | undefined, - ) { - super(result); - - this.blueprint = blueprint; - this.contract = contract; - } -} - -function isValidCode(code: Uint8Array): boolean { - return isWasm(code) || isRiscV(code); -} - -export class Code extends Base { - readonly code: Uint8Array; - - readonly #tx: MapConstructorExec = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); - - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - - this.abi.constructors.forEach((c): void => { - if (isUndefined(this.#tx[c.method])) { - this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p)); - } - }); - } - - public get tx(): MapConstructorExec { - return this.#tx; - } - - #instantiate = ( - constructorOrId: AbiConstructor | string | number, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, - params: unknown[], - ): SubmittableExtrinsic> => { - return this.api.tx.contracts - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - compactAddLength(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - (result: ISubmittableResult) => - new CodeSubmittableResult( - result, - ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], (records: EventRecord[]) => - records.reduce<[Blueprint | undefined, Contract | undefined]>( - ([blueprint, contract], { event }) => - this.api.events.contracts.Instantiated.is(event) - ? [ - blueprint, - new Contract( - this.api, - this.abi, - (event as unknown as { data: [Codec, AccountId] }).data[1], - this._decorateMethod, - ), - ] - : this.api.events.contracts.CodeStored.is(event) - ? [ - new Blueprint( - this.api, - this.abi, - (event as unknown as { data: [AccountId] }).data[0], - this._decorateMethod, - ), - contract, - ] - : [blueprint, contract], - [undefined, undefined], - ), - ) || [undefined, undefined]), - ), - ); - }; -} - -export function extendCode( - type: ApiType, - decorateMethod: DecorateMethod, -): CodeConstructor { - return class extends Code { - static __CodeType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/build-deno/base/CodeRevive.ts b/.api-contract/build-deno/base/CodeRevive.ts deleted file mode 100644 index a56f3b90..00000000 --- a/.api-contract/build-deno/base/CodeRevive.ts +++ /dev/null @@ -1,134 +0,0 @@ -import { Buffer } from 'node:buffer'; - -import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; -import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; -import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; -import type { Codec } from 'https://deno.land/x/polkadot/types-codec/types/index.ts'; -import type { Abi } from '../Abi/index.ts'; -import type { AbiConstructor, BlueprintOptions } from '../types.ts'; -import type { MapConstructorExec } from './types.ts'; - -import { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; -import { - BN_ZERO, - compactAddLength, - isRiscV, - isUndefined, - u8aToU8a, -} from 'https://deno.land/x/polkadot/util/mod.ts'; - -import { BaseRevive } from './BaseRevive.ts'; -import { BlueprintRevive } from './BlueprintRevive.ts'; -import { Contract } from './Contract.ts'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.ts'; - -export type CodeReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, -) => CodeRevive; - -export class CodeReviveSubmittableResult extends SubmittableResult { - readonly blueprint?: BlueprintRevive | undefined; - readonly contract?: Contract | undefined; - - constructor( - result: ISubmittableResult, - blueprint?: BlueprintRevive | undefined, - contract?: Contract | undefined, - ) { - super(result); - - this.blueprint = blueprint; - this.contract = contract; - } -} - -function isValidCode(code: Uint8Array): boolean { - return isRiscV(code); -} - -export class CodeRevive extends BaseRevive { - readonly code: Uint8Array; - - readonly #tx: MapConstructorExec = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); - - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - - this.abi.constructors.forEach((c): void => { - if (isUndefined(this.#tx[c.method])) { - this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p)); - } - }); - } - - public get tx(): MapConstructorExec { - return this.#tx; - } - - #instantiate = ( - constructorOrId: AbiConstructor | string | number, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, - params: unknown[], - ): SubmittableExtrinsic> => { - return this.api.tx.revive - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - compactAddLength(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - (result: ISubmittableResult) => - new CodeReviveSubmittableResult( - result, - new BlueprintRevive( - this.api, - this.abi, - this.abi.info.source.wasmHash, - this._decorateMethod, - ), - new Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ), - ), - ); - }; -} - -export function extendCode( - type: ApiType, - decorateMethod: DecorateMethod, -): CodeReviveConstructor { - return class extends CodeRevive { - static __CodeType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/build-deno/base/Contract.ts b/.api-contract/build-deno/base/Contract.ts deleted file mode 100644 index c2182848..00000000 --- a/.api-contract/build-deno/base/Contract.ts +++ /dev/null @@ -1,263 +0,0 @@ -import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; -import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; -import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { - AccountId, - ContractExecResult, - EventRecord, - Weight, - WeightV2, -} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; -import type { Abi } from '../Abi/index.ts'; -import type { - AbiMessage, - ContractCallOutcome, - ContractOptions, - DecodedEvent, - WeightAll, -} from '../types.ts'; -import type { - ContractCallResult, - ContractCallSend, - ContractQuery, - ContractTx, - MapMessageQuery, - MapMessageTx, -} from './types.ts'; - -import { map } from 'https://esm.sh/rxjs@7.8.1'; - -import { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; -import { - BN, - BN_HUNDRED, - BN_ONE, - BN_ZERO, - isUndefined, - logger, -} from 'https://deno.land/x/polkadot/util/mod.ts'; - -import { applyOnEvent } from '../util.ts'; -import { Base } from './Base.ts'; -import { convertWeight, withMeta } from './util.ts'; - -export type ContractConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, -) => Contract; - -const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); - -const l = logger('Contract'); - -function createQuery( - meta: AbiMessage, - fn: ( - origin: string | AccountId | Uint8Array, - options: ContractOptions, - params: unknown[], - ) => ContractCallResult, -): ContractQuery { - return withMeta( - meta, - ( - origin: string | AccountId | Uint8Array, - options: ContractOptions, - ...params: unknown[] - ): ContractCallResult => fn(origin, options, params), - ); -} - -function createTx( - meta: AbiMessage, - fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic, -): ContractTx { - return withMeta( - meta, - (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic => - fn(options, params), - ); -} - -export class ContractSubmittableResult extends SubmittableResult { - readonly contractEvents?: DecodedEvent[] | undefined; - - constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]) { - super(result); - - this.contractEvents = contractEvents; - } -} - -export class Contract extends Base { - /** - * @description The on-chain address for this contract - */ - readonly address: AccountId; - - readonly #query: MapMessageQuery = {}; - readonly #tx: MapMessageTx = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.address = this.registry.createType('AccountId', address); - - this.abi.messages.forEach((m): void => { - if (isUndefined(this.#tx[m.method])) { - this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p)); - } - - if (isUndefined(this.#query[m.method])) { - this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f)); - } - }); - } - - public get query(): MapMessageQuery { - return this.#query; - } - - public get tx(): MapMessageTx { - return this.#tx; - } - - #getGas = (_gasLimit: bigint | BN | string | number | WeightV2, isCall = false): WeightAll => { - const weight = convertWeight(_gasLimit); - - if (weight.v1Weight.gt(BN_ZERO)) { - return weight; - } - - return convertWeight( - isCall - ? MAX_CALL_GAS - : convertWeight( - this.api.consts.system.blockWeights - ? (this.api.consts.system.blockWeights as unknown as { maxBlock: WeightV2 }).maxBlock - : (this.api.consts.system['maximumBlockWeight'] as Weight), - ) - .v1Weight.muln(64) - .div(BN_HUNDRED), - ); - }; - - #exec = ( - messageOrId: AbiMessage | string | number, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, - params: unknown[], - ): SubmittableExtrinsic => { - return this.api.tx.contracts - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - (result: ISubmittableResult) => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - applyOnEvent( - result, - ['ContractEmitted', 'ContractExecution'], - (records: EventRecord[]) => - records - .map((record): DecodedEvent | null => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${(error as Error).message}`); - - return null; - } - }) - .filter((decoded): decoded is DecodedEvent => !!decoded), - ), - ), - ); - }; - - #read = ( - messageOrId: AbiMessage | string | number, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, - params: unknown[], - ): ContractCallSend => { - const message = this.abi.findMessage(messageOrId); - - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod((origin: string | AccountId | Uint8Array) => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.#getGas(gasLimit, true).v1Weight - : this.#getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - map( - ({ - debugMessage, - gasConsumed, - gasRequired, - result, - storageDeposit, - }): ContractCallOutcome => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !convertWeight(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - }), - ), - ), - ), - }; - }; -} - -export function extendContract( - type: ApiType, - decorateMethod: DecorateMethod, -): ContractConstructor { - return class extends Contract { - static __ContractType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, - ) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/build-deno/base/ContractRevive.ts b/.api-contract/build-deno/base/ContractRevive.ts deleted file mode 100644 index 77b591d3..00000000 --- a/.api-contract/build-deno/base/ContractRevive.ts +++ /dev/null @@ -1,264 +0,0 @@ -import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; -import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; -import type { ApiTypes, DecorateMethod } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { - AccountId, - AccountId20, - ContractExecResult, - EventRecord, - Weight, - WeightV2, -} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { ISubmittableResult } from 'https://deno.land/x/polkadot/types/types/index.ts'; -import type { Abi } from '../Abi/index.ts'; -import type { - AbiMessage, - ContractCallOutcome, - ContractOptions, - DecodedEvent, - WeightAll, -} from '../types.ts'; -import type { - ContractCallResult, - ContractCallSend, - ContractQuery, - ContractTx, - MapMessageQuery, - MapMessageTx, -} from './types.ts'; - -import { map } from 'https://esm.sh/rxjs@7.8.1'; - -import { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; -import { - BN, - BN_HUNDRED, - BN_ONE, - BN_ZERO, - isUndefined, - logger, -} from 'https://deno.land/x/polkadot/util/mod.ts'; - -import { applyOnEvent } from '../util.ts'; -import { BaseRevive } from './BaseRevive.ts'; -import { convertWeight, withMeta } from './util.ts'; - -export type ContractReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, -) => ContractRevive; - -const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); - -const l = logger('Contract'); - -function createQuery( - meta: AbiMessage, - fn: ( - origin: string | AccountId | Uint8Array, - options: ContractOptions, - params: unknown[], - ) => ContractCallResult, -): ContractQuery { - return withMeta( - meta, - ( - origin: string | AccountId | Uint8Array, - options: ContractOptions, - ...params: unknown[] - ): ContractCallResult => fn(origin, options, params), - ); -} - -function createTx( - meta: AbiMessage, - fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic, -): ContractTx { - return withMeta( - meta, - (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic => - fn(options, params), - ); -} - -export class ContractSubmittableResult extends SubmittableResult { - readonly contractEvents?: DecodedEvent[] | undefined; - - constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]) { - super(result); - - this.contractEvents = contractEvents; - } -} - -export class ContractRevive extends BaseRevive { - /** - * @description The on-chain address for this contract - */ - readonly address: AccountId20; - - readonly #query: MapMessageQuery = {}; - readonly #tx: MapMessageTx = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId20, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.address = this.registry.createType('AccountId20', address); - - this.abi.messages.forEach((m): void => { - if (isUndefined(this.#tx[m.method])) { - this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p)); - } - - if (isUndefined(this.#query[m.method])) { - this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f)); - } - }); - } - - public get query(): MapMessageQuery { - return this.#query; - } - - public get tx(): MapMessageTx { - return this.#tx; - } - - #getGas = (_gasLimit: bigint | BN | string | number | WeightV2, isCall = false): WeightAll => { - const weight = convertWeight(_gasLimit); - - if (weight.v1Weight.gt(BN_ZERO)) { - return weight; - } - - return convertWeight( - isCall - ? MAX_CALL_GAS - : convertWeight( - this.api.consts.system.blockWeights - ? (this.api.consts.system.blockWeights as unknown as { maxBlock: WeightV2 }).maxBlock - : (this.api.consts.system['maximumBlockWeight'] as Weight), - ) - .v1Weight.muln(64) - .div(BN_HUNDRED), - ); - }; - - #exec = ( - messageOrId: AbiMessage | string | number, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, - params: unknown[], - ): SubmittableExtrinsic => { - return this.api.tx.revive - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - (result: ISubmittableResult) => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - applyOnEvent( - result, - ['ContractEmitted', 'ContractExecution'], - (records: EventRecord[]) => - records - .map((record): DecodedEvent | null => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${(error as Error).message}`); - - return null; - } - }) - .filter((decoded): decoded is DecodedEvent => !!decoded), - ), - ), - ); - }; - - #read = ( - messageOrId: AbiMessage | string | number, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, - params: unknown[], - ): ContractCallSend => { - const message = this.abi.findMessage(messageOrId); - - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod((origin: string | AccountId | Uint8Array) => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.#getGas(gasLimit, true).v1Weight - : this.#getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - map( - ({ - debugMessage, - gasConsumed, - gasRequired, - result, - storageDeposit, - }): ContractCallOutcome => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !convertWeight(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - }), - ), - ), - ), - }; - }; -} - -export function extendContract( - type: ApiType, - decorateMethod: DecorateMethod, -): ContractReviveConstructor { - return class extends ContractRevive { - static __ContractType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, - ) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/build-deno/base/index.ts b/.api-contract/build-deno/base/index.ts deleted file mode 100644 index 98dd1a62..00000000 --- a/.api-contract/build-deno/base/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.ts'; -export { BlueprintRevive } from './BlueprintRevive.ts'; -export { Code, CodeSubmittableResult, extendCode } from './Code.ts'; -export { CodeRevive } from './CodeRevive.ts'; -export { Contract, extendContract } from './Contract.ts'; -export { ContractRevive } from './ContractRevive.ts'; diff --git a/.api-contract/build-deno/base/mock.ts b/.api-contract/build-deno/base/mock.ts deleted file mode 100644 index dff856bf..00000000 --- a/.api-contract/build-deno/base/mock.ts +++ /dev/null @@ -1,28 +0,0 @@ -import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; - -import { TypeRegistry } from 'https://deno.land/x/polkadot/types/mod.ts'; - -const registry = new TypeRegistry(); - -const instantiateWithCode = (): never => { - throw new Error('mock'); -}; - -instantiateWithCode.meta = { args: new Array(6) }; - -export const mockApi = { - call: { - contractsApi: { - call: (): never => { - throw new Error('mock'); - }, - }, - }, - isConnected: true, - registry, - tx: { - contracts: { - instantiateWithCode, - }, - }, -} as unknown as ApiBase<'promise'>; diff --git a/.api-contract/build-deno/base/types.ts b/.api-contract/build-deno/base/types.ts deleted file mode 100644 index 921d3f01..00000000 --- a/.api-contract/build-deno/base/types.ts +++ /dev/null @@ -1,50 +0,0 @@ -import type { Observable } from 'https://esm.sh/rxjs@7.8.1'; -import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; -import type { ApiTypes, ObsInnerType } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { AccountId } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { - AbiMessage, - BlueprintOptions, - ContractCallOutcome, - ContractOptions, -} from '../types.ts'; - -export interface MessageMeta { - readonly meta: AbiMessage; -} - -export interface BlueprintDeploy extends MessageMeta { - (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; -} - -export interface ContractQuery extends MessageMeta { - ( - origin: AccountId | string | Uint8Array, - options: ContractOptions, - ...params: unknown[] - ): ContractCallResult; -} - -export interface ContractTx extends MessageMeta { - (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; -} - -export type ContractGeneric = ( - messageOrId: AbiMessage | string | number, - options: O, - ...params: unknown[] -) => T; - -export type ContractCallResult = ApiType extends 'rxjs' - ? Observable - : Promise>>; - -export interface ContractCallSend { - send(account: string | AccountId | Uint8Array): ContractCallResult; -} - -export type MapConstructorExec = Record>; - -export type MapMessageTx = Record>; - -export type MapMessageQuery = Record>; diff --git a/.api-contract/build-deno/base/util.ts b/.api-contract/build-deno/base/util.ts deleted file mode 100644 index edea08de..00000000 --- a/.api-contract/build-deno/base/util.ts +++ /dev/null @@ -1,74 +0,0 @@ -import type { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; -import type { SubmittableExtrinsic } from 'https://deno.land/x/polkadot/api/submittable/types.ts'; -import type { ApiTypes } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { WeightV1, WeightV2 } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { BN } from 'https://deno.land/x/polkadot/util/mod.ts'; -import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.ts'; -import type { BlueprintDeploy, ContractGeneric } from './types.ts'; - -import { Bytes } from 'https://deno.land/x/polkadot/types/mod.ts'; -import { bnToBn, compactAddLength, u8aToU8a } from 'https://deno.land/x/polkadot/util/mod.ts'; -import { randomAsU8a } from 'https://deno.land/x/polkadot/util-crypto/mod.ts'; - -export const EMPTY_SALT = new Uint8Array(); - -export function withMeta( - meta: AbiMessage, - creator: Omit, -): T { - (creator as T).meta = meta; - - return creator as T; -} - -export function createBluePrintTx( - meta: AbiMessage, - fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic, -): BlueprintDeploy { - return withMeta( - meta, - (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic => - fn(options, params), - ); -} - -export function createBluePrintWithId( - fn: ( - constructorOrId: AbiConstructor | string | number, - options: BlueprintOptions, - params: unknown[], - ) => T, -): ContractGeneric { - return ( - constructorOrId: AbiConstructor | string | number, - options: BlueprintOptions, - ...params: unknown[] - ): T => fn(constructorOrId, options, params); -} - -export function encodeSalt(salt: Uint8Array | string | null = randomAsU8a()): Uint8Array { - return salt instanceof Bytes - ? salt - : salt?.length - ? compactAddLength(u8aToU8a(salt)) - : EMPTY_SALT; -} - -export function convertWeight( - weight: WeightV1 | WeightV2 | bigint | string | number | BN, -): WeightAll { - const [refTime, proofSize] = isWeightV2(weight) - ? [weight.refTime.toBn(), weight.proofSize.toBn()] - : [bnToBn(weight), undefined]; - - return { - v1Weight: refTime, - v2Weight: { proofSize, refTime }, - }; -} - -export function isWeightV2( - weight: WeightV1 | WeightV2 | bigint | string | number | BN, -): weight is WeightV2 { - return !!(weight as WeightV2).proofSize; -} diff --git a/.api-contract/build-deno/bundle.ts b/.api-contract/build-deno/bundle.ts deleted file mode 100644 index 00f652cf..00000000 --- a/.api-contract/build-deno/bundle.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { Abi } from './Abi/index.ts'; -export { packageInfo } from './packageInfo.ts'; - -export * from './promise/index.ts'; -export * from './rx/index.ts'; diff --git a/.api-contract/build-deno/checkTypes.manual.ts b/.api-contract/build-deno/checkTypes.manual.ts deleted file mode 100644 index 4f0b0c8e..00000000 --- a/.api-contract/build-deno/checkTypes.manual.ts +++ /dev/null @@ -1,42 +0,0 @@ -import 'https://deno.land/x/polkadot/api-augment/mod.ts'; - -import type { TestKeyringMapSubstrate } from 'https://deno.land/x/polkadot/keyring/testingPairs.ts'; - -import { ApiPromise } from 'https://deno.land/x/polkadot/api/mod.ts'; -import { - BlueprintPromise, - ContractPromise, -} from 'https://deno.land/x/polkadot/api-contract/mod.ts'; -import { createTestPairs } from 'https://deno.land/x/polkadot/keyring/testingPairs.ts'; - -import abiIncrementer from './test/contracts/ink/v0/incrementer.json' assert { type: 'json' }; - -async function checkBlueprint(api: ApiPromise, pairs: TestKeyringMapSubstrate): Promise { - const blueprint = new BlueprintPromise(api, abiIncrementer as Record, '0x1234'); - - await blueprint.tx['new']({ gasLimit: 456, salt: '0x1234', value: 123 }, 42).signAndSend( - pairs.bob, - ); - await blueprint.tx['new']({ gasLimit: 456, value: 123 }, 42).signAndSend(pairs.bob); -} - -async function checkContract(api: ApiPromise, pairs: TestKeyringMapSubstrate): Promise { - const contract = new ContractPromise(api, abiIncrementer as Record, '0x1234'); - - // queries - await contract.query['get'](pairs.alice.address, {}); - - // execute - await contract.tx['inc']({ gasLimit: 1234 }, 123).signAndSend(pairs.eve); -} - -async function main(): Promise { - const api = await ApiPromise.create({ - hasher: (data: Uint8Array): Uint8Array => data, - }); - const pairs = createTestPairs(); - - await Promise.all([checkBlueprint(api, pairs), checkContract(api, pairs)]); -} - -main().catch(console.error); diff --git a/.api-contract/build-deno/index.ts b/.api-contract/build-deno/index.ts deleted file mode 100644 index 0171e125..00000000 --- a/.api-contract/build-deno/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import './packageDetect.ts'; - -export * from './bundle.ts'; diff --git a/.api-contract/build-deno/mod.ts b/.api-contract/build-deno/mod.ts deleted file mode 100644 index 85fbe785..00000000 --- a/.api-contract/build-deno/mod.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './index.ts'; diff --git a/.api-contract/build-deno/packageDetect.ts b/.api-contract/build-deno/packageDetect.ts deleted file mode 100644 index 971ca8bd..00000000 --- a/.api-contract/build-deno/packageDetect.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { packageInfo as apiInfo } from 'https://deno.land/x/polkadot/api/packageInfo.ts'; -import { packageInfo as typesInfo } from 'https://deno.land/x/polkadot/types/packageInfo.ts'; -import { detectPackage } from 'https://deno.land/x/polkadot/util/mod.ts'; - -import { packageInfo } from './packageInfo.ts'; - -detectPackage(packageInfo, null, [apiInfo, typesInfo]); diff --git a/.api-contract/build-deno/packageInfo.ts b/.api-contract/build-deno/packageInfo.ts deleted file mode 100644 index 0ca48fa7..00000000 --- a/.api-contract/build-deno/packageInfo.ts +++ /dev/null @@ -1,6 +0,0 @@ -export const packageInfo = { - name: '@polkadot/api-contract', - path: new URL(import.meta.url).pathname, - type: 'deno', - version: '15.8.1', -}; diff --git a/.api-contract/build-deno/promise/index.ts b/.api-contract/build-deno/promise/index.ts deleted file mode 100644 index 0d939222..00000000 --- a/.api-contract/build-deno/promise/index.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Buffer } from 'node:buffer'; - -import type { ApiPromise } from 'https://deno.land/x/polkadot/api/mod.ts'; -import type { - AccountId, - AccountId20, - Hash, -} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { Abi } from '../Abi/index.ts'; - -import { toPromiseMethod } from 'https://deno.land/x/polkadot/api/mod.ts'; - -import { - Blueprint, - BlueprintRevive, - Code, - CodeRevive, - Contract, - ContractRevive, -} from '../base/index.ts'; - -export class BlueprintPromise extends Blueprint<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ) { - super(api, abi, codeHash, toPromiseMethod); - } -} - -export class CodePromise extends Code<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, toPromiseMethod); - } -} - -export class ContractPromise extends Contract<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId, - ) { - super(api, abi, address, toPromiseMethod); - } -} - -export class BlueprintRevivePromise extends BlueprintRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ) { - super(api, abi, codeHash, toPromiseMethod); - } -} - -export class CodeRevivePromise extends CodeRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, toPromiseMethod); - } -} - -export class ContractRevivePromise extends ContractRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId20, - ) { - super(api, abi, address, toPromiseMethod); - } -} diff --git a/.api-contract/build-deno/promise/types.ts b/.api-contract/build-deno/promise/types.ts deleted file mode 100644 index 5ec4c7c7..00000000 --- a/.api-contract/build-deno/promise/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { - BlueprintSubmittableResult as BaseBlueprintSubmittableResult, - CodeSubmittableResult as BaseCodeSubmittableResult, -} from '../base/index.ts'; - -export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; -export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build-deno/rx/index.ts b/.api-contract/build-deno/rx/index.ts deleted file mode 100644 index 77330f69..00000000 --- a/.api-contract/build-deno/rx/index.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Buffer } from 'node:buffer'; - -import type { ApiRx } from 'https://deno.land/x/polkadot/api/mod.ts'; -import type { AccountId, Hash } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { Abi } from '../Abi/index.ts'; - -import { toRxMethod } from 'https://deno.land/x/polkadot/api/mod.ts'; - -import { Blueprint, Code, Contract } from '../base/index.ts'; - -export class BlueprintRx extends Blueprint<'rxjs'> { - constructor(api: ApiRx, abi: string | Record | Abi, codeHash: string | Hash) { - super(api, abi, codeHash, toRxMethod); - } -} - -export class CodeRx extends Code<'rxjs'> { - constructor( - api: ApiRx, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, toRxMethod); - } -} - -export class ContractRx extends Contract<'rxjs'> { - constructor( - api: ApiRx, - abi: string | Record | Abi, - address: string | AccountId, - ) { - super(api, abi, address, toRxMethod); - } -} diff --git a/.api-contract/build-deno/rx/types.ts b/.api-contract/build-deno/rx/types.ts deleted file mode 100644 index 5ec4c7c7..00000000 --- a/.api-contract/build-deno/rx/types.ts +++ /dev/null @@ -1,7 +0,0 @@ -import type { - BlueprintSubmittableResult as BaseBlueprintSubmittableResult, - CodeSubmittableResult as BaseCodeSubmittableResult, -} from '../base/index.ts'; - -export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; -export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build-deno/test/contracts/index.ts b/.api-contract/build-deno/test/contracts/index.ts deleted file mode 100644 index 3010de57..00000000 --- a/.api-contract/build-deno/test/contracts/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -import ink from './ink/index.ts'; -import solang from './solang/index.ts'; -import user from './user/index.ts'; - -const all: Record> = {}; - -Object.entries({ ink, solang, user }).forEach(([type, abis]) => - Object.entries(abis).forEach(([name, abi]): void => { - all[`${type}_${name}`] = abi; - }), -); - -export default all; diff --git a/.api-contract/build-deno/test/contracts/ink/index.ts b/.api-contract/build-deno/test/contracts/ink/index.ts deleted file mode 100644 index 56821271..00000000 --- a/.api-contract/build-deno/test/contracts/ink/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { createVersionedExport } from '../util.ts'; -import * as v0 from './v0/index.ts'; -import * as v1 from './v1/index.ts'; -import * as v2 from './v2/index.ts'; -import * as v3 from './v3/index.ts'; -import * as v4 from './v4/index.ts'; -import * as v5 from './v5/index.ts'; -import * as v6 from './v6/index.ts'; - -export default createVersionedExport({ v0, v1, v2, v3, v4, v5, v6 }); diff --git a/.api-contract/build-deno/test/contracts/ink/v0/accumulator.wasm b/.api-contract/build-deno/test/contracts/ink/v0/accumulator.wasm deleted file mode 100644 index 33197e6b15c310ddd583da65fcd85315b1ae652c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8826 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 diff --git a/.api-contract/build-deno/test/contracts/ink/v0/dns.wasm b/.api-contract/build-deno/test/contracts/ink/v0/dns.wasm deleted file mode 100644 index 5a173a896218c942c811eb86d54d4c76d1b54c09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47980 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 diff --git a/.api-contract/build-deno/test/contracts/ink/v0/flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v0/flipper.wasm deleted file mode 100644 index 5b43da17109189ac854e0b5c48bbe11ee28e8f80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19085 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 diff --git a/.api-contract/build-deno/test/contracts/ink/v0/trait-flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v0/trait-flipper.wasm deleted file mode 100644 index 53720c421777c8584ad57470718630166737078a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19050 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 F|1WbE1VjJ; diff --git a/.api-contract/build-deno/test/contracts/ink/v4/flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v4/flipper.wasm deleted file mode 100644 index 3f77edb2319aa3b738fe331fba6b4273ee519a6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12526 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 diff --git a/.api-contract/build-deno/test/contracts/ink/v4/index.ts b/.api-contract/build-deno/test/contracts/ink/v4/index.ts deleted file mode 100644 index 33a79fff..00000000 --- a/.api-contract/build-deno/test/contracts/ink/v4/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; -export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; -export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; -export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/ink/v5/erc20.wasm b/.api-contract/build-deno/test/contracts/ink/v5/erc20.wasm deleted file mode 100644 index f6800bb8784e46279835e91f4da1d71d2907faca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19416 zcmchf3zS_~dEfVW+{GYX#Z&o^$ru``h3C9{=y#-#K?&W$AF>oC~Jc?TeO|mxJYfVdL9bi`y40 zyL~bD8VC9mbjh{TU5&Z(PV1vXbmyJiiI#QlnteHe#+`Qt%i))THHD>WWp1E&uv*`{ zR9~o74pv=@we=UK=NFIGUFfemr>ct!OVjne)nnE9x+_@gU~%dEarE4O^x)pZ)ukm- z3;cL`R_6BBs`aC_c^CP%mdVQ8T(#DiV%@RI+|laZdaW|Qbf8+RRi_$vE;v+KI<$BH zTxGU8xOZ@5)J0Ks{#eW5>fwdj@h}LJ=*>4HI@cN%!!YXTjKe4@#9?b3hAs@lIO5Z~ zHVDEfZjYiM3@%s`w()-ww?&08Y)9@v5X4~+w6+vlI7F^MLs*Cl!D4Xn#Vr>{%R#oX z5*L?Uw(>g#9e(y;q1d`EjI{=LSqtKsTR85nXx|vPEGWL@<~<`rmu|W0pZ-c;-=%%K z-?;OdzF&RoKUwp?ZoB!?AXtu;(=d&8#mlKHq%MtS(txjC=e9epvS6kZbp*v?ae=I6Af?__Yaa4*@2VsZ(=(Lv{;bLh0qq)ie5voXF+UmZ!bf#Ll#-LCj*gbL@$ zY&nGUFokA^t*v7wi<6hK$VA=NXu&Q^lb05EGJ=jlPZ*b@tC8|U|2)oKnSJ$vI2n{; zVI-WD-~#n=W$6B5@IA33KzUxj!3(aZ|q5+sij< z$Tw=p_XnT<%};AE@{LWtF_MkaD3`40aTm!J(#T7egCxr#DYdAhBpZ3jMqaWq%NWV7 zrh{agBwAP!y4^@XHisvIUS6W!798Y2?5jfGb-Oo9nL zoonFf+GK;*PaB<|a+13IC|9x$P`U~)mvkRT(*tPQiENuzpDUadYI0L|@#{fQ06}1c zb&4tEYaGRNV0rQN<<{)k-;R@8!U-{SJ=8Jbt2;69v;{q-@hmKd*?X97Q`(w+gySum zjY%&kdT(<`)mmg%xENPi*UXM^%+9vVWUamp5ANXBC*MyWI978vBQR)8Q;z7en6n<8 z$#or)%zg@U!>kjo>>SVk%`j+{yGWzn5_?e54zt<_V&y{PT<)8n>yU)VE-Tq0vyt8R|=$R2cyEa!z&t5}Pu9M%7ax2+v-YUz$2(tIw zlUs&nHw+MLL~{S)OPFLQXz?eY#iiLt=m}aBKhwlciPRuSPJ%jdlF&Oz=$$0YorHPh zAKrj-uMkQhp)hx9oh15_SA;L%6#-shWUqnKaC5^eLb)7-0|}`o#4`f#89-JW1H5Pa zhAnCrYu4g}q6&aHX#-Gxj>B)# zGHhvGICa-d){(qItCf>(dcM!6a{1pTsW6wt+0Apyku=LHiIe6y-o4X+nEQfjR-}B9 zHRmq)q4)g)YtBB2&*Oskk^bb%ZkkBs9YvaNc%U@h@W9aDb^hm(^AZU1DJdn z2Hmvwb;!4Q(GI%%i_GCqBuvUNAR-}Mp38{fmxfoBW094c3gQ&&vPT~jUg272Q89e?B zkX<6SF9|209`?FRI%)Ikfbhe*Vx;Ck3VueK0E;oldUDl(Hu#W$d!%HY<4*e z0ZSpbo7adU6inHDft}ky>HtcI*~BcYo(jWOFJV}yW8MY{Ildf=i>YNFvHFMxb5tg=<6w%(Eqqeg0=1V?f)Nq_4c z=q4J<6j)uJUAltCC^lSf_7eN)=a5L#0B7d3BWC!F*hnwTEmx5YmDqQ zxCCx&X$`}202j0<8pcuXV*g6e8nxY%F{N z$&P~5T9!=L7;{Nvan`zp6WeF>h(&xPxkS63*c;q-7iT}YJI=lcGucT_9(!AyY*rRW z-xlvr0TY9LLALg+zX6OvcJbM3^O=`7uQfwK=qS6y{ciVZJ-$}}CP;7<>B#>SJy7px z*u?>5B;-`xd7@UxE}O|LS{5>HZQ|AmMTzyCa6Qb30@Rh4=`7)F+|JrK>!$^tEKFS6 zKq4TPE_>|WSY06X+&lf*xr5GxVZo#5*<1&~^n=qVa4ftG&6onm zGry4$5ZXqDl(>=ZjE|9}%6|9)KM58SvbvtITTt5*rexb3dRQ4wKt5D%@!|pspkjb5 zfpKe`mX_?XyGakjJHrY8UmC5A9VG^UjV|jOWHyb8J*jhCbYUzh$*RG6CXysuX*J02 zAf8wvh4kevQmvNuqqm_`Mr*$~8cuLBPL7QgD#vE*b~na>1Pnl5J?=es<>RoPEjD=% zdS^Vn$2gNXp!6Y9S}5&s#S$Tgt((vd)KeVH6SucVY$Pp=oz34(0r^hyGVmi;fZwS{ z&sRWmKWS=+qy{C;@^qL2BS2HGog6)PM|44fK*4xb?zn2%Bo4i_~CbObuvK zf~3K#L0OE{AQ-gWYf}vdhh7boV5Ekqp@yiT1`%nhfgQ5c;K!L7n&WacM472UlY2Gj z%&WmD{Twwkz%_D#oXcf*tpwT-kqEB@*-0#c9ag%kyz;b_S9Wt7B%>iUj#) zPbwa;!c81dDM5o9>#+{Y!(N6M;^RtE~On&IMFf>^Upwo?c37frVKlz~f zv$sE&J>9s(^yu#QkUEn@QUxe7ZnQ>A+f1?xm{$s;t!nYI=3+b(!Rvxe5P@@gi}Nn} zKKWi4QFyVHiM5WItoHR! zgZeEHV{2PTMms{H4V-4*rFreS_@+o{+)xV2p5?wAl!8!8GFr6NC@W+&9}9h6?%_TQ zO0D=M7}-VX3Rpn12AXA%q@x@FoSn{h*i>%I;v))tE!j8UM~x%3yEp|t8?Or-RYcM8 zHG}mGF9l+%CHqTyBQMdSYLc-N*~npdCVNaFLm|gUmlW7j*iT5_vQEDwR zNJ&!KT712a;LXh3pk7vHNJA#BFdixVvviy|xhTV4Ae{6kuXDv4{{M$7*~0>|a5tq} z{1%EqA#+8ee3s&6O^QxR^sxuXY%ru!NZIEh_Kk8B_B=bkPuaOyi}NOo(WYr0!f*&r zrdx~f`*aMM2;pm+mMm$jLnaGHDq(Tx0xUVG0%u!(g%YR=?5(z$%jFz8q*qN6EvSp} z2vvMi+w|^MWE*0uB9$t*;@uaAZOgGXF%K0iKk)98yw-$Pu>HKxq)z$-%Vj4eiG=lM zD?%M zV=e#Dw>bLH>(BE0r;w9hTNZT0IS0&su}%J6O-=CX>aTRq3k9bmJc~ zS?ss9GN5gm?C<zNDt%}yKt*my&Orz2~B0IB90d?2=#Q%)^qE&tHN*7BUQssM1a zIa(~Wi*uv)-y&fSB@p)YW_wTQNstoCM#E#)z;3nC@U#v5=ql@c##%nHs^yfmeEMt) z^STdHOL>Zgu#Xe1M{G^hr18;A0)N6Gan4t3=+9YOXm`$jomCSyZAM|n^TTka$GK7W zJ&Xp-a6cd*JriVwqCgUH+XPI{;k+#M*VnT3cTZlLgzyR*Qr4+y{C%24- z;!e4a{EGO<7wmcan0VOgb3OFo5h5eAZ^U_`$8OjU%|7x@V*JTi`1XSLpM8hFubEBK zK~1wO{nsw9O^j@g-dIMI4~P|{{7}3ahmHMExl_RfaUqQKoS|9sBGFf^KvqMhp&-*V zQM(@3wYOniGchiqoRoyc2Bi!laD}9dNw42F!4pm8fJRH(wOWz_B{nU265> z=o#01T-ThUK^PWfz|fnRO}3t$gqZunlVA(V12#wNnZ*kJnuT+Zr1xW|PeD+Eq|sJn z`n$hiLX{6c;7`RSu0TMv~5q?mae&B zV<&kXotPy%jkC3>>+k35xqE5wYgF#JY zlYl#xHQ592&1M+cL)Jgpo;gxXU_Kc)i3o#SCW$<6KEn{;r!gPc)R^ydE|A827eL_& z!~T2e)Bv-`tYu|Y%OlqE+^VScl(jrStn<%-a6xN%XjRKI)^g%(ivaI*I2Ot6rGfjY zmY$Sp3K*mZVOIn3P$`*vjy*WZy&!?dl_%8IaK#cGz@G{#nhHE@KAG>2n1V@2hQ^{( zrb%F3SOM4}=5Japl?QvtM)Qv6xLcrNqP*S4ou>TEIE_37d#&`d%&yskyJOL5l`&@g|00pg(V%=V*LuT7gJ)bdyaTaCccd*WsEdB!Spb+ZxQ*W7?dA5gbx)c7)2Fy; zpd})=-wx&0Jq&HTfxYQ2wo=~xL}D8p$P*lUKMIucF^{s=@MUZ8nSeEX%^Ez;TEn+! zFn|q2;BR!56R?IKT7xHG4gcL5JOOJUq>eL^!&|WojIf^rPNP>hsH1j+OoW^`V;2Ba z7A`2}Pcc7^LGu*zjm=Gc!0mvIqpvIk3S3y4uPo>e;Yp9>utk;R6)aS7;7Pw%&*_*g ziap4A0`;&x3n!A-=J>RFgYqW1B2pr*<@*yt6E&)=Q&jD>HaFLU;X6Pg@kw!H~1 z*X#PT-wAeWqtxpLvOj2?4ragGI33DJ-EAkOI=2tj$-|1#-q4hfh(5gJCTlT7!4`Wm z$mRJ6E|Wcr*fDK*4yA25efE88o1nJSZ2Bu}QsuMJBQA71HQ@A}Fn) z7qWYtA?cbihAV2E1&Rhauz}G=rIp7loHHAbE3_ST*@L8XwrI@FWgpIxYld!&&=Zz;mUnwd{v{@PLz1ajnZM<-!}^qbhR1E>OAlqu&`{1pKb)Tj z0w*F~1A#rtcQN+7%IaeLnp?HC z!jvck1udelcT(7-1NAgqgEm~vVH*d89lUm6}6fHv&uD#G@Qjy&%!Js>m zkYrR{U0J!!Bt>WOPvE6rv4jcvjv$hV3G30+*8;}^^KrZ3+3oBM5F-UsGc0xP;Qpo@ z-KdSKQbrc?ZhTUH#=^EhTR~Gg(V1#!Jzo7D8=VTCL3T=Ggn>$IMFtG?RZq}T&j(a_ z^i@xL(E#%?CiFT*4jnl=pS+LWGItv$HmGktdY^x+05E6IJ{b2pw*i;EQVD^Ufr*=p zil0+O6{9?DeNgL<9z;fZ=zoPP1-jA;m69esZa zuGk^r-v2I?o$M<9GzwbeV{BC9#S!IDuUU%qDtbm)D$PW)D?K;hKwVQ;-Ttu2SEFRH zNjdP2&|zNTvZyXZWC>@;lCfs`XeY&ir)Lo!nYLI}D#gnLHQX-C;sJ|(p@d4ZoHt6P zK!zNWt)?8d#47O;oJA44WR|IFYk_L(PF~5BJA~+5M0pBVr++L~uE;rQQ^`;_d8Ywh zWU+L39uuaCbC|H4i;1leOg7o;Hkq8n%zBd%R*BDwspQQvu{zuu?s>DzpjH9{O{~8OjxVy2v$Eq=l>B`ZC`W#G z7?>&GNMSO8U3@+aBAG(|hyalwzmAz)zdR|nCoZ9MFArNuu0moQSK{k2N}1&qN9a`B z?$+8>$Fb}gUGWftdo9PBw>v3GAx2niQ-%+x6j1%d;JoRWx!L#;H&8(S-sui*_-6+) zAB|TRix;+H_E&N;dxW@(m(IrQPZ%%M-XytI9WH2eIFI{AgC}v}v8?q7yB4h|i;KyG z%u5U*x^EZ4V)G>z{3v@(DGU+d2I_L1Ea2AaJ$nqSK(sw(z15X5aO&X$S zzWA4YZ^oq7mO4`&ofM1d+J~9&drs!UV=9UO#>b4>SIy{NoOn?y%GT(y+c^XXJ*$~C z`BDaHPN1X_#jq9TKo*k3EI%Qw4LFy zOHwd)*LZe~eYLGgZj_&;9Y#JSh9}5Oi?MkPR?a2ehLAmJTtwl$-LvI9TMhYOPOIfZ zo?Z}#Ak>W|urmjV&|X~m8%_CzI4p}L$(qxG}cg7Pa_ufv4Nv$rq4&hk`Mema zkJ+yjBK^F97f})H6R6w{JZpXA195V_puB@5%OWG$p9LnvcZ^yTv-f<6ZXuorT9(c1 zoqw!JgCqN8n)*zs70U>s3BFx~1QAY)#Xk~DDWnWnSl^NgwNXmbsfyQh-VexWD zC%u$v0P{*9LO(fx37^whI;*5py?Fmv-l0f|SjiEK+niE0rj}#L*jOMv1qVdrPV%fY z>cpN&u|zXtu=nHQM}k!k>n|0swmNX0G6v1kGA>hD$Qe zvLE*T2v?bc(1;{N_z{E?$U&revD6TQ!l!3XS~A9c*d$9-7OVY1aS##Ok6r>+%THMX z{kp?uQNAmj$`cNwjH0e8{x~3IOtl{~TxN2o+*M(mT^VG=aaoyfh+cY~EAu)>xjXI#)bVV}voL=S$8ggMzMx@E9kVHh*= zmI-#VSRg@`C9{-`T91HBdH{$K2#anxZogROOEtRfP4#1JN3~OvN%+#tS zX-?2Z>2C-3`e#a=a$PG=M7{2E=?jnDRI+LVwPu17*J(Mq8f)OJo7{+B$=LZ8G}j5R z%$C+g69~rkRqOE9Qj5&UhypOP_s zi=l_F*YYw3eamaF?v!0w0GcaZz`UyXl-vETE4^T;d?A4cQzCVjG_<&hGy$|H>K)5%-D%C z?Lc)5EM`yfhEbe0vq*&_bn8;~Z2DOyr2&*q=WNX`z2T!5aMdSh3?X(DS-)P^it?w3 z#b3=sSQ;t+0`JT@6uC;|^R|~)))MQ-ml7N=t7xIPwuBd3O2IHo*H*>b;&sq9mt?JG z-TQtSABN4!Mh@3ROqg{{ zA;=&Ke}mVqw3YR5nzb-R{-&7%r{!a+SVjJcEiW1?3}AG;F_xdP7QJ-$$^4}|1g6B6 z7gafHx32$AVPb& zL5OCw8`qQ`>vqQ%fAT+1ef5K%`C9gN$lELY zJHG$jFTMT#r{4bEJKlcJn@q&?J%a6~kb}>Jq@X}<}+DI^uYI3m}ySY+@QQHWe`QO=bCXBSlN1&FJ-0kJ=z)Q;slmbh`zr$@{rv+6 z`WE#Q^m^~)!aTn_pR6zS9<3}+_s&;utM`s>?cX|JR1PgH)me;q3tWx4aXa@?K5O^{ z`6uFdWp#34s=DLo0e-)}XJO%{!%)A`e)GPwR$Hj;IaE!nw^b*P){#kL%JlHjrFwd( za;%zGQvZwi^w#P6A+C_u^i*1zoLo3MUr(o}wl-vPHQd99``i0ulLEtv68uLBQwT6{q;AT1gdp?)1y8a8!siwG_j!sVUTmCmlP}My( zG*_MS7dP^^0BX>`x_bP&h59a-oZ7piI=67^O-J`Hp#!+7?m1MeE*)B!n_{H>tlwM2 z-ktMP3%4HTPYEEVYZh*O17d5?;3)c){d3i877iZ7kgl9w(v?knBchl-T=isjPEIXV zZbaxXa@;rFR2v)_8QAvbYHj*J-t?Bq!#hpt(+l&y6D>DY=coL|&GWPK3%AanXHRkj znSb@R%HhR1?7Ui=9PIC#o8E7>&=m!4EAnaOQ{a<(LCTtH$J1LYOKJ7+V*R+=LqEwG z&CE@u^9%KKv9_>St<4=zr_5Z^b4I#4{a-`>2K}#dF1-Yw{o@UiZ>3V3JTyAoi+yr6RjJ)NJuhALX@rhKC!MRYRskQd zv4u(BT)B1cvFaphovbWYCa3GiQ(4pjOxd}Y6#|pTi8yda;HeaPegBepGcMuG|FMhI zE-Q5`IbArAru&Zr!07=)S$O*+czp@SlN=?}D>*K3{1^h)btOHpP&-_y*Kw*8z?%kD zWZQB?Pt^Z~4ltuK?_uMYw9EsCg|L^l1nw|=P9fuz<7UgdWG&8pf_pk^99P?t>~*m+ zKRr1s&g<#+H3s}CAxvW0FKAlYp4P$Nx$1m6y@cerrEA}jmcN013Z1YuaI$#?rxa|| zzi!%K$=VxsD*x!>BYCI%+p?yoXH7prrGK!0sDHSBq<^%3tbe?J+d%)oz`)?Z(7^D( z$iV2p*ueO}w!!|vfx*GSp~2z7k-^cyvBB}dZA1M-14DyDLqo$uBSWJ@V?*OZ+lKpx z2ZjfShlYoTM}|j-$A-s;w~h3V42%qp42=wrjEszqjE#(sY#Z$#9T*)P9U2`T9T^=R z9UC1V-8R-gHZV3gHZ(RoHZnFkHa0dswr#wBd|-TVd}w@ld}Mrdd~AGteA_ly+{X0V zAia%Y+h_u;4^{!DN(~E93{4xd^mj0$bZKsSvMTW+(u2e+%fn zXqR6%?t2n`0-J0}+B4lS$S&NyjJcRG|AM1z_#f3ECl_i}g9PKOZ@ONs3G5$dZo+-(FX3q3ug>i{(eC~9W{#Ia??i6fzofO* zYkig{Xld>Nc&Nd{^?U~T{PK8M1c<7&dAQiLCUAA;ehhaTtP9zwO(P&fiLI)U$bC3N%;Jeb+6_SNHjhcTICW^WcdP z<$M|cLvwHb4wBg`E;v13?OT}NYhkf(zvZA(@JgQF-NL-e=T=_}zZ%!S#<^l|x$s3fuPxcON9o@Rk s#A?^(Chkw!kIb?@QUa6H%Qz~Z7B)$ax;}v&f0563`1}t(t;OK~0>#KB#Q*>R diff --git a/.api-contract/build-deno/test/contracts/ink/v5/flipper.wasm b/.api-contract/build-deno/test/contracts/ink/v5/flipper.wasm deleted file mode 100644 index c359b6db59b8732092edc076026daf73f1e3bf77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10450 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 diff --git a/.api-contract/build-deno/test/contracts/ink/v5/index.ts b/.api-contract/build-deno/test/contracts/ink/v5/index.ts deleted file mode 100644 index 7e042a48..00000000 --- a/.api-contract/build-deno/test/contracts/ink/v5/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; -export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; -export { default as erc20AnonymousTransferMetadata } from './erc20_anonymous_transfer.json' assert { type: 'json' }; -export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; -export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/ink/v6/erc20.polkavm b/.api-contract/build-deno/test/contracts/ink/v6/erc20.polkavm deleted file mode 100644 index 64886b65146198d57f144142ffad192cda8f7509..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9445 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 AxBvhE diff --git a/.api-contract/build-deno/test/contracts/ink/v6/index.ts b/.api-contract/build-deno/test/contracts/ink/v6/index.ts deleted file mode 100644 index df963ed0..00000000 --- a/.api-contract/build-deno/test/contracts/ink/v6/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; -export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/solang/index.ts b/.api-contract/build-deno/test/contracts/solang/index.ts deleted file mode 100644 index dbf46e5f..00000000 --- a/.api-contract/build-deno/test/contracts/solang/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { createVersionedExport } from '../util.ts'; -import * as v0 from './v0/index.ts'; - -export default createVersionedExport({ v0 }); diff --git a/.api-contract/build-deno/test/contracts/solang/v0/index.ts b/.api-contract/build-deno/test/contracts/solang/v0/index.ts deleted file mode 100644 index 1853c756..00000000 --- a/.api-contract/build-deno/test/contracts/solang/v0/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ints256 } from './ints256.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/solang/v0/ints256.sol b/.api-contract/build-deno/test/contracts/solang/v0/ints256.sol deleted file mode 100644 index 1225a6b9..00000000 --- a/.api-contract/build-deno/test/contracts/solang/v0/ints256.sol +++ /dev/null @@ -1,13 +0,0 @@ -/// @title Test 256 bits types -/// @author Sean Young -contract ints256 { - /// Multiply two 256 bit values - function multiply(uint256 a, uint256 b) public pure returns (uint256) { - return a * b; - } - - /// Add two 256 bit values - function add(uint256 a, uint256 b) public pure returns (uint256) { - return a + b; - } -} diff --git a/.api-contract/build-deno/test/contracts/solang/v0/ints256.wasm b/.api-contract/build-deno/test/contracts/solang/v0/ints256.wasm deleted file mode 100644 index 1973316be540b38ba3e463b1d11c950650335872..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1782 zcmbtUOK%)S5UzgA!!tW}N3xKmaHwv4u%!s)ka#bMxUGa39Ky@u8n4JAF@D5e+Yu4V zt`C;A2hRKiq)1puoO1Mm13!Qtz>y;-IKo#mcCa8mF{AC8s;>IFzN+e_-u|{CA{EjN zq75}x;|)8;LlC18gqCk37X7JB_WQl9n}w{8zS!A4JfL$^*_a0XgTuiNC9T_QjqPb~ z>#+amV9?vy|GYmK^dFNo{hg=jc7OZH;F(s=nLHzEr(H){|$H z+s}GiTQpVt+{xagh<8cDrTsX*`1nRX?of0G@%O*Js+aTxDBme%$AagTUN*~mnbm^s zR3st~n(2c|m!eQm6_t^^ii9n%OZZ|xW_A2>FPP1s`PGqNV8jW@3E&j!P^^%bdUWth@KZ>l z;QXPl^fKHNy!mR#>M#vn1*Z?|pw=ov)C`y2b(GYh!&MD7LSza7sHG@L<23CvK+dcj z;c-Jo6eqV)9*bo(435k7>%g+nN_Zl9CG3338F++@)q4$RIl_0)szR{Yy$uMr!V{i3 zhVL|Dim2*Pu(>b(OsOhdje_3@6U4@A_!JK#nOf8uD9P>oZ1Low|E5O?c<_%z%G5bo5oxzMB9che9 zbTM}rr)D~X%vsY0ist?5-0Z|mn7NZ5etP~j*hacnVaO!NDGc{NUrmJA{z$YP=c6|$ z{z{tx%$eq8(_I{?<(SKFq($RonLA#gk1M(|M`Ue582L5lE@&5ws;xGQtJ zXx{RLh+F7B#SL84d70`nT&TI4E!qW*8zpZPPP*np^ds$>Rfw#MsZ>1GH8&xOu33O6 zyM|kkCKyZZ62Q+PQ7Ciuq9FkjY}YDIluPEkHRCQ;$)!%5)5X_$uJCEbSn zY|HvV%kyqa{#A74uc#Pu%H0&DN`I>}-%Su|BVe!YMBcCCWv4kP(_E#f(x+z7qWZ GLH-TS;|;|C diff --git a/.api-contract/build-deno/test/contracts/user/index.ts b/.api-contract/build-deno/test/contracts/user/index.ts deleted file mode 100644 index ba05c9ed..00000000 --- a/.api-contract/build-deno/test/contracts/user/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { createVersionedExport } from '../util.ts'; -import * as v0 from './v0/index.ts'; -import * as v3 from './v3/index.ts'; -import * as v4 from './v4/index.ts'; - -export default createVersionedExport({ v0, v3, v4 }); diff --git a/.api-contract/build-deno/test/contracts/user/v0/assetTransfer.wasm b/.api-contract/build-deno/test/contracts/user/v0/assetTransfer.wasm deleted file mode 100644 index 516f769852f09caee63d135d1cb7aec437f9c351..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11151 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 L;hP%mXRZGN@&7$3 diff --git a/.api-contract/build-deno/test/contracts/user/v0/enumExample.wasm b/.api-contract/build-deno/test/contracts/user/v0/enumExample.wasm deleted file mode 100644 index 5cbe4bf9bc714e8f8711ffb62a84ee708f537653..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5473 zcmcIoON?7r8UD|?4`0u?Ar63ltN=9@j_2e~= zL_|VyP)AXaD$xZCgg}ZQA`3K979hcnWp|xc1(jWZ4a+WB5x(y~*B(2K+M$9O+4tOY z{`dP>7S}Er5iv*V7wm8-7m^{r&Cm?-B^LxwZsC#P!83sAp}A@Am^@osTD&;#_! z-SNE`zxM&w@zxtfD1x+%?LGbvGR45<;gMOH%?dF#Ny}=lZMYk1=b8zr9FzHATBcDe z?T}O^F)g&K&}t1+_D!o6k85Si5P7rjZ~NNDf*c7JH1a3Y7_t6D8VP8O80PInrOy-m z87rlfA#FiqRjiec7TIW#L&A`KEW`-ZKq&}+T)u>7ve|!R-tc*tTi^7VzVzMg4WGtk zaeHIqgq;U(U9hxG$*HE1(i?i$EhKa5d3?DXe-uwxq|hW|(-$NA;|Nfb}Uub0Cj!7R_Fh+2VDD__?i2Qmc80F)7` z3WPeWXa}GWoz2%|`Zb+?%_d$O^)ieQ8$}rq=j;z(N+wjn!7_=DF z>7Zlbf>UX4Oc*h#wwNKth%>{ZT9-_}5w{&u0>+alvEShr)T^ohWC)K8lo2VKJ$NC}VFU^$dfQPNR$YijI z-fIk;ZILOA)^Phn{Yf3g_Pos2wUcCdtw5s8pjtCWw0TtZKO|bhSuGjj86F6>91lcI z4G*}yU?q)i@uoaFEgkEraRN#8Cv0Jd2}~4HlmqPtEgJ;>B&*n!P%2hvMvf^EmYqraBzOk{*^fyBj;GTxc_sKl6Z$feU5Ciz3qQSpUk4Yu>O{WbI&5Ku`ur0Z7{9~ zYG!Lyg3OG7>lH9E1y~m7H7*h?axPLVlyWwroMV9)RA5>?mSTAd?D3bdYI zheqeXI9zXA*o)?YPKECqsHKs;#nqM>xaS}~M!+qU{|DgPVz55I{+@Pzzip9j&6>~q zkNEfe8|}RB@7%}aoA>AN%b%oLwd&XxCRrz7ty+J$?Vl0vtK^+3@1B+< zsJ+roXLE}`F{nT$ygf$K`@~CXDSGA%JZNx%sRY#1-uN_7`*3t5o}M0!r+Q5b#k#kv zr1O>F)>m5@CV({R^v`LI-zQc^$k&zQ!|CG-El=8@uWyG z!XXn`egl_03YWF$KA&kArDe;~57DJN%Sg5n&By+a{;fIKzxAu1y!rd=o6Xuj9HG5w zD!*+8ysjg0J%$H=mG6IO^iJ73GG>jNH7$PQC$dlpAQ1^zH!RmhsxjL#7i! z_!L?~57ak#7xnEfR^ao28FWOta^GwhNfa zqemyI{WVWW;4W&oLf{Dq8k5X_jf;eqUd$)hrje$$6K@83r?l`{V1;0FiIvbvI`?-ieDB)yo(8lDaHxE7>JTeS`<+w$>;M`M9L7)Qz zNeo2SN`jPVjQBle5i2vEIn0d3HP`^CvJ!z+ZOIF0?tv_C1ywEo=~A zdrZs;=47zIU1-7L8Qb@f@jXBXSEZ&t0v%Wfmm84Q@(wNIs9ApGQh>XI?SV&idx)2U z!?J7oQV{PUh>J1vu0*t#(OWU%bGkB)6HZ}qn diff --git a/.api-contract/build-deno/test/contracts/user/v0/index.ts b/.api-contract/build-deno/test/contracts/user/v0/index.ts deleted file mode 100644 index 69d14c69..00000000 --- a/.api-contract/build-deno/test/contracts/user/v0/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { default as assetTransfer } from './assetTransfer.json' assert { type: 'json' }; -export { default as enumExample } from './enumExample.json' assert { type: 'json' }; -export { default as recursive } from './recursive.contract.json' assert { type: 'json' }; -export { default as withString } from './withString.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/user/v3/index.ts b/.api-contract/build-deno/test/contracts/user/v3/index.ts deleted file mode 100644 index eb0d3a9e..00000000 --- a/.api-contract/build-deno/test/contracts/user/v3/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as ask } from './ask.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/user/v4/index.ts b/.api-contract/build-deno/test/contracts/user/v4/index.ts deleted file mode 100644 index 42e21964..00000000 --- a/.api-contract/build-deno/test/contracts/user/v4/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default as events } from './events.contract.json' assert { type: 'json' }; diff --git a/.api-contract/build-deno/test/contracts/util.ts b/.api-contract/build-deno/test/contracts/util.ts deleted file mode 100644 index ef411429..00000000 --- a/.api-contract/build-deno/test/contracts/util.ts +++ /dev/null @@ -1,13 +0,0 @@ -export function createVersionedExport( - versioned: Record>, -): Record> { - const result: Record> = {}; - - Object.entries(versioned).forEach(([version, contracts]) => - Object.entries(contracts).forEach(([name, contract]): void => { - result[`${version}_${name}`] = contract as Record; - }), - ); - - return result; -} diff --git a/.api-contract/build-deno/types.ts b/.api-contract/build-deno/types.ts deleted file mode 100644 index 9c1eb729..00000000 --- a/.api-contract/build-deno/types.ts +++ /dev/null @@ -1,100 +0,0 @@ -import type { ApiBase } from 'https://deno.land/x/polkadot/api/base/index.ts'; -import type { ApiTypes } from 'https://deno.land/x/polkadot/api/types/index.ts'; -import type { Text } from 'https://deno.land/x/polkadot/types/mod.ts'; -import type { - ContractExecResultResult, - ContractSelector, - StorageDeposit, - Weight, - WeightV2, -} from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; -import type { Codec, TypeDef } from 'https://deno.land/x/polkadot/types/types/index.ts'; -import type { BN } from 'https://deno.land/x/polkadot/util/mod.ts'; -import type { HexString } from 'https://deno.land/x/polkadot/util/types.ts'; -import type { Abi } from './index.ts'; - -export interface ContractBase { - readonly abi: Abi; - readonly api: ApiBase; - - getMessage: (name: string) => AbiMessage; - messages: AbiMessage[]; -} - -export interface AbiParam { - name: string; - type: TypeDef; -} - -export type AbiMessageParam = AbiParam; - -export interface AbiEventParam extends AbiParam { - indexed: boolean; -} - -export interface AbiEvent { - args: AbiEventParam[]; - docs: string[]; - fromU8a: (data: Uint8Array) => DecodedEvent; - identifier: string; - index: number; - signatureTopic?: HexString | null; -} - -export interface AbiMessage { - args: AbiMessageParam[]; - docs: string[]; - fromU8a: (data: Uint8Array) => DecodedMessage; - identifier: string; - index: number; - isConstructor?: boolean; - isDefault?: boolean; - isMutating?: boolean; - isPayable?: boolean; - method: string; - path: string[]; - returnType?: TypeDef | null; - selector: ContractSelector; - toU8a: (params: unknown[]) => Uint8Array; -} - -export type AbiConstructor = AbiMessage; - -export type InterfaceContractCalls = Record; - -export interface ContractCallOutcome { - debugMessage: Text; - gasConsumed: Weight; - gasRequired: Weight; - output: Codec | null; - result: ContractExecResultResult; - storageDeposit: StorageDeposit; -} - -export interface DecodedEvent { - args: Codec[]; - event: AbiEvent; -} - -export interface DecodedMessage { - args: Codec[]; - message: AbiMessage; -} - -export interface ContractOptions { - gasLimit?: bigint | string | number | BN | WeightV2; - storageDepositLimit?: bigint | string | number | BN | null; - value?: bigint | BN | string | number; -} - -export interface BlueprintOptions extends ContractOptions { - salt?: Uint8Array | string | null; -} - -export interface WeightAll { - v1Weight: BN; - v2Weight: { - refTime: BN; - proofSize?: BN | undefined; - }; -} diff --git a/.api-contract/build-deno/util.ts b/.api-contract/build-deno/util.ts deleted file mode 100644 index 3f104371..00000000 --- a/.api-contract/build-deno/util.ts +++ /dev/null @@ -1,20 +0,0 @@ -import type { SubmittableResult } from 'https://deno.land/x/polkadot/api/mod.ts'; -import type { EventRecord } from 'https://deno.land/x/polkadot/types/interfaces/index.ts'; - -type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; - -export function applyOnEvent( - result: SubmittableResult, - types: ContractEvents[], - fn: (records: EventRecord[]) => T, -): T | undefined { - if (result.isInBlock || result.isFinalized) { - const records = result.filterRecords('contracts', types); - - if (records.length) { - return fn(records); - } - } - - return undefined; -} diff --git a/.api-contract/build-loader/Abi/Abi.spec.js b/.api-contract/build-loader/Abi/Abi.spec.js deleted file mode 100644 index 59c8a0a8..00000000 --- a/.api-contract/build-loader/Abi/Abi.spec.js +++ /dev/null @@ -1,147 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import fs from 'node:fs'; -import process from 'node:process'; -import { TypeDefInfo } from '@polkadot/types/types'; -import rpcMetadata from '@polkadot/types-support/metadata/static-substrate-contracts-node'; -import { blake2AsHex } from '@polkadot/util-crypto'; -import { Metadata, TypeRegistry } from '../../../types/src/bundle.js'; -import abis from '../test/contracts/index.js'; -import { Abi } from './index.js'; -function stringifyInfo(key, value) { - return key === 'info' && typeof value === 'number' ? TypeDefInfo[value] : value; -} -function stringifyJson(registry) { - const defs = registry.lookup.types.map(({ id }) => registry.lookup.getTypeDef(id)); - return JSON.stringify(defs, stringifyInfo, 2); -} -describe('Abi', () => { - describe('ABI', () => { - Object.entries(abis).forEach(([abiName, _abi]) => { - const abi = _abi; - it(`initializes from a contract ABI (${abiName})`, () => { - try { - const messageIds = (abi.V4 || abi.V3 || abi.V2 || abi.V1 || abi).spec.messages.map( - ({ label, name }) => label || (Array.isArray(name) ? name.join('::') : name), - ); - const inkAbi = new Abi(abis[abiName]); - expect(inkAbi.messages.map(({ identifier }) => identifier)).toEqual(messageIds); - } catch (error) { - console.error(error); - throw error; - } - }); - }); - }); - describe('TypeDef', () => { - for (const [abiName, abiJson] of Object.entries(abis)) { - it(`initializes from a contract ABI: ${abiName}`, () => { - const abi = new Abi(abiJson); - const registryJson = stringifyJson(abi.registry); - const cmpFile = new URL(`../test/compare/${abiName}.test.json`, import.meta.url); - try { - expect(JSON.parse(registryJson)).toEqual(JSON.parse(fs.readFileSync(cmpFile, 'utf-8'))); - } catch (error) { - if (process.env['GITHUB_REPOSITORY']) { - console.error(registryJson); - throw error; - } - fs.writeFileSync(cmpFile, registryJson, { flag: 'w' }); - } - }); - } - }); - it('has the correct hash for the source', () => { - const abi = new Abi(abis['ink_v0_flipperBundle']); - const bundle = abis['ink_v0_flipperBundle']; - // manual - expect(bundle.source.hash).toEqual(blake2AsHex(bundle.source.wasm)); - // the Codec hash - expect(bundle.source.hash).toEqual(abi.info.source.wasm.hash.toHex()); - // the hash as per the actual Abi - expect(bundle.source.hash).toEqual(abi.info.source.wasmHash.toHex()); - }); - describe('Events', () => { - const registry = new TypeRegistry(); - beforeAll(() => { - const metadata = new Metadata(registry, rpcMetadata); - registry.setMetadata(metadata); - }); - it('decoding <=ink!v4 event', () => { - const abiJson = abis['ink_v4_erc20Metadata']; - expect(abiJson).toBeDefined(); - const abi = new Abi(abiJson); - const eventRecordHex = - '0x0001000000080360951b8baf569bca905a279c12d6ce17db7cdce23a42563870ef585129ce5dc64d010001d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000c0045726332303a3a5472616e7366657200000000000000000000000000000000da2d695d3b5a304e0039e7fc4419c34fa0c1f239189c99bb72a6484f1634782b2b00c7d40fe6d84d660f3e6bed90f218e022a0909f7e1a7ea35ada8b6e003564'; - const record = registry.createType('EventRecord', eventRecordHex); - const decodedEvent = abi.decodeEvent(record); - expect(decodedEvent.event.args.length).toEqual(3); - expect(decodedEvent.args.length).toEqual(3); - expect(decodedEvent.event.identifier).toEqual('Transfer'); - const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { - return { - ...prev, - [cur.name]: decodedEvent.args[index].toHuman(), - }; - }, {}); - const expectedEvent = { - from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', - to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', - value: '123.4567 MUnit', - }; - expect(decodedEventHuman).toEqual(expectedEvent); - }); - it('decoding >=ink!v5 event', () => { - const abiJson = abis['ink_v5_erc20Metadata']; - expect(abiJson).toBeDefined(); - const abi = new Abi(abiJson); - const eventRecordHex = - '0x00010000000803da17150e96b3955a4db6ad35ddeb495f722f9c1d84683113bfb096bf3faa30f2490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000cb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cbd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'; - const record = registry.createType('EventRecord', eventRecordHex); - const decodedEvent = abi.decodeEvent(record); - expect(decodedEvent.event.args.length).toEqual(3); - expect(decodedEvent.args.length).toEqual(3); - expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer'); - const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { - return { - ...prev, - [cur.name]: decodedEvent.args[index].toHuman(), - }; - }, {}); - const expectedEvent = { - from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', - to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', - value: '123.4567 MUnit', - }; - expect(decodedEventHuman).toEqual(expectedEvent); - }); - it('decoding >=ink!v5 anonymous event', () => { - const abiJson = abis['ink_v5_erc20AnonymousTransferMetadata']; - expect(abiJson).toBeDefined(); - const abi = new Abi(abiJson); - expect(abi.events[0].identifier).toEqual('erc20::erc20::Transfer'); - expect(abi.events[0].signatureTopic).toEqual(null); - const eventRecordWithAnonymousEventHex = - '0x00010000000803538e726248a9c155911e7d99f4f474c3408630a2f6275dd501d4471c7067ad2c490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb1060000000000000008d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'; - const record = registry.createType('EventRecord', eventRecordWithAnonymousEventHex); - const decodedEvent = abi.decodeEvent(record); - expect(decodedEvent.event.args.length).toEqual(3); - expect(decodedEvent.args.length).toEqual(3); - expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer'); - const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { - return { - ...prev, - [cur.name]: decodedEvent.args[index].toHuman(), - }; - }, {}); - const expectedEvent = { - from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', - to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', - value: '123.4567 MUnit', - }; - expect(decodedEventHuman).toEqual(expectedEvent); - }); - }); -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQWJpLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJBYmkuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBTXRDLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN6QixPQUFPLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFFbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sV0FBVyxNQUFNLGtFQUFrRSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sSUFBSSxNQUFNLDRCQUE0QixDQUFDO0FBQzlDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxZQUFZLENBQUM7QUErQmpDLFNBQVMsYUFBYSxDQUFFLEdBQVcsRUFBRSxLQUFjO0lBQ2pELE9BQU8sR0FBRyxLQUFLLE1BQU0sSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO1FBQ2hELENBQUMsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDWixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUUsUUFBa0I7SUFDeEMsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQ2hELFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxDQUMvQixDQUFDO0lBRUYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQUVELFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBUyxFQUFFO0lBQ3pCLFFBQVEsQ0FBQyxLQUFLLEVB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 -//# sourceHash=ea229cc94f36316dbb8638e2704cd9298e801fa181100aaf355195542244aead diff --git a/.api-contract/build-loader/Abi/index.js b/.api-contract/build-loader/Abi/index.js deleted file mode 100644 index 2375b801..00000000 --- a/.api-contract/build-loader/Abi/index.js +++ /dev/null @@ -1,355 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { Option, TypeRegistry } from '@polkadot/types'; -import { TypeDefInfo } from '@polkadot/types-create'; -import { - assertReturn, - compactAddLength, - compactStripLength, - isBn, - isNumber, - isObject, - isString, - isUndefined, - logger, - stringCamelCase, - stringify, - u8aConcat, - u8aToHex, -} from '@polkadot/util'; -import { convertVersions, enumVersions } from './toLatestCompatible.js'; -const l = logger('Abi'); -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; -function findMessage(list, messageOrId) { - const message = isNumber(messageOrId) - ? list[messageOrId] - : isString(messageOrId) - ? list.find(({ identifier }) => - [identifier, stringCamelCase(identifier)].includes(messageOrId.toString()), - ) - : messageOrId; - return assertReturn( - message, - () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`, - ); -} -function getMetadata(registry, json) { - // this is for V1, V2, V3 - const vx = enumVersions.find(v => isObject(json[v])); - // this was added in V4 - const jsonVersion = json.version; - if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { - throw new Error(`Unable to handle version ${jsonVersion}`); - } - const metadata = registry.createType( - 'ContractMetadata', - vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, - ); - const converter = convertVersions.find(([v]) => metadata[`is${v}`]); - if (!converter) { - throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); - } - const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); - return upgradedMetadata; -} -function parseJson(json, chainProperties) { - const registry = new TypeRegistry(); - const info = registry.createType('ContractProjectInfo', json); - const metadata = getMetadata(registry, json); - const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); - // attach the lookup to the registry - now the types are known - registry.setLookup(lookup); - if (chainProperties) { - registry.setChainProperties(chainProperties); - } - // warm-up the actual type, pre-use - lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); - return [json, registry, metadata, info]; -} -/** - * @internal - * Determines if the given input value is a ContractTypeSpec - */ -function isTypeSpec(value) { - return ( - !!value && value instanceof Map && !isUndefined(value.type) && !isUndefined(value.displayName) - ); -} -/** - * @internal - * Determines if the given input value is an Option - */ -function isOption(value) { - return !!value && value instanceof Option; -} -export class Abi { - events; - constructors; - info; - json; - messages; - metadata; - registry; - environment = new Map(); - constructor(abiJson, chainProperties) { - [this.json, this.registry, this.metadata, this.info] = parseJson( - isString(abiJson) ? JSON.parse(abiJson) : abiJson, - chainProperties, - ); - this.constructors = this.metadata.spec.constructors.map((spec, index) => - this.#createMessage(spec, index, { - isConstructor: true, - isDefault: spec.default.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - this.events = this.metadata.spec.events.map((_, index) => this.#createEvent(index)); - this.messages = this.metadata.spec.messages.map((spec, index) => - this.#createMessage(spec, index, { - isDefault: spec.default.isTrue, - isMutating: spec.mutates.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - // NOTE See the rationale for having Option<...> values in the actual - // ContractEnvironmentV4 structure definition in interfaces/contractsAbi - // (Due to conversions, the fields may not exist) - for (const [key, opt] of this.metadata.spec.environment.entries()) { - if (isOption(opt)) { - if (opt.isSome) { - const value = opt.unwrap(); - if (isBn(value)) { - this.environment.set(key, value); - } else if (isTypeSpec(value)) { - this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); - } else { - throw new Error( - `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, - ); - } - } - } else { - throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); - } - } - } - /** - * Warning: Unstable API, bound to change - */ - decodeEvent(record) { - switch (this.metadata.version.toString()) { - // earlier version are hoisted to v4 - case '4': - return this.#decodeEventV4(record); - // Latest - default: - return this.#decodeEventV5(record); - } - } - #decodeEventV5 = record => { - // Find event by first topic, which potentially is the signature_topic - const signatureTopic = record.topics[0]; - const data = record.event.data[1]; - if (signatureTopic) { - const event = this.events.find( - e => - e.signatureTopic !== undefined && - e.signatureTopic !== null && - e.signatureTopic === signatureTopic.toHex(), - ); - // Early return if event found by signature topic - if (event) { - return event.fromU8a(data); - } - } - // If no event returned yet, it might be anonymous - const amountOfTopics = record.topics.length; - const potentialEvents = this.events.filter(e => { - // event can't have a signature topic - if (e.signatureTopic !== null && e.signatureTopic !== undefined) { - return false; - } - // event should have same amount of indexed fields as emitted topics - const amountIndexed = e.args.filter(a => a.indexed).length; - if (amountIndexed !== amountOfTopics) { - return false; - } - // If all conditions met, it's a potential event - return true; - }); - if (potentialEvents.length === 1) { - return potentialEvents[0].fromU8a(data); - } - throw new Error('Unable to determine event'); - }; - #decodeEventV4 = record => { - const data = record.event.data[1]; - const index = data[0]; - const event = this.events[index]; - if (!event) { - throw new Error(`Unable to find event with index ${index}`); - } - return event.fromU8a(data.subarray(1)); - }; - /** - * Warning: Unstable API, bound to change - */ - decodeConstructor(data) { - return this.#decodeMessage('message', this.constructors, data); - } - /** - * Warning: Unstable API, bound to change - */ - decodeMessage(data) { - return this.#decodeMessage('message', this.messages, data); - } - findConstructor(constructorOrId) { - return findMessage(this.constructors, constructorOrId); - } - findMessage(messageOrId) { - return findMessage(this.messages, messageOrId); - } - #createArgs = (args, spec) => { - return args.map(({ label, type }, index) => { - try { - if (!isObject(type)) { - throw new Error('Invalid type definition found'); - } - const displayName = type.displayName.length - ? type.displayName[type.displayName.length - 1].toString() - : undefined; - const camelName = stringCamelCase(label); - if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { - return { - name: camelName, - type: { - info: TypeDefInfo.Plain, - type: displayName, - }, - }; - } - const typeDef = this.registry.lookup.getTypeDef(type.type); - return { - name: camelName, - type: - displayName && !typeDef.type.startsWith(displayName) - ? { displayName, ...typeDef } - : typeDef, - }; - } catch (error) { - l.error(`Error expanding argument ${index} in ${stringify(spec)}`); - throw error; - } - }); - }; - #createMessageParams = (args, spec) => { - return this.#createArgs(args, spec); - }; - #createEventParams = (args, spec) => { - const params = this.#createArgs(args, spec); - return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); - }; - #createEvent = index => { - // TODO TypeScript would narrow this type to the correct version, - // but version is `Text` so I need to call `toString()` here, - // which breaks the type inference. - switch (this.metadata.version.toString()) { - case '4': - return this.#createEventV4(this.metadata.spec.events[index], index); - default: - return this.#createEventV5(this.metadata.spec.events[index], index); - } - }; - #createEventV5 = (spec, index) => { - const args = this.#createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.#decodeArgs(args, data), - event, - }), - identifier: [spec.module_path, spec.label].join('::'), - index, - signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, - }; - return event; - }; - #createEventV4 = (spec, index) => { - const args = this.#createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.#decodeArgs(args, data), - event, - }), - identifier: spec.label.toString(), - index, - }; - return event; - }; - #createMessage = (spec, index, add = {}) => { - const args = this.#createMessageParams(spec.args, spec); - const identifier = spec.label.toString(); - const message = { - ...add, - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.#decodeArgs(args, data), - message, - }), - identifier, - index, - isDefault: spec.default.isTrue, - method: stringCamelCase(identifier), - path: identifier.split('::').map(s => stringCamelCase(s)), - selector: spec.selector, - toU8a: params => this.#encodeMessageArgs(spec, args, params), - }; - return message; - }; - #decodeArgs = (args, data) => { - // for decoding we expect the input to be just the arg data, no selectors - // no length added (this allows use with events as well) - let offset = 0; - return args.map(({ type: { lookupName, type } }) => { - const value = this.registry.createType(lookupName || type, data.subarray(offset)); - offset += value.encodedLength; - return value; - }); - }; - #decodeMessage = (type, list, data) => { - const [, trimmed] = compactStripLength(data); - const selector = trimmed.subarray(0, 4); - const message = list.find(m => m.selector.eq(selector)); - if (!message) { - throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`); - } - return message.fromU8a(trimmed.subarray(4)); - }; - #encodeMessageArgs = ({ label, selector }, args, data) => { - if (data.length !== args.length) { - throw new Error( - `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, - ); - } - return compactAddLength( - u8aConcat( - this.registry.createType('ContractSelector', selector).toU8a(), - ...args.map(({ type: { lookupName, type } }, index) => - this.registry.createType(lookupName || type, data[index]).toU8a(), - ), - ), - ); - }; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBT3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUwsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVl4RSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFFeEIsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUU1RixTQUFTLFdBQVcsQ0FBeUIsSUFBUyxFQUFFLFdBQWdDO0lBQ3RGLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDbkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFDbkIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7WUFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDM0csQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUVs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 -//# sourceHash=4ab60a32998dace807d57241dfe7c506089ce789675e90ad11bafe763ae95d23 diff --git a/.api-contract/build-loader/Abi/toLatestCompatible.js b/.api-contract/build-loader/Abi/toLatestCompatible.js deleted file mode 100644 index bcd86309..00000000 --- a/.api-contract/build-loader/Abi/toLatestCompatible.js +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { v0ToV1 } from './toV1.js'; -import { v1ToV2 } from './toV2.js'; -import { v2ToV3 } from './toV3.js'; -import { v3ToV4 } from './toV4.js'; -// The versions where an enum is used, aka V0 is missing -// (Order from newest, i.e. we expect more on newest vs oldest) -export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; -// Helper to convert metadata from one step to the next -function createConverter(next, step) { - return (registry, input) => next(registry, step(registry, input)); -} -export function v6ToLatestCompatible(_registry, v6) { - return v6; -} -export function v5ToLatestCompatible(_registry, v5) { - return v5; -} -export function v4ToLatestCompatible(_registry, v4) { - return v4; -} -export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4); -export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3); -export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); -export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); -export const convertVersions = [ - ['V6', v6ToLatestCompatible], - ['V5', v5ToLatestCompatible], - ['V4', v4ToLatestCompatible], - ['V3', v3ToLatestCompatible], - ['V2', v2ToLatestCompatible], - ['V1', v1ToLatestCompatible], - ['V0', v0ToLatestCompatible], -]; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9MYXRlc3RDb21wYXRpYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsidG9MYXRlc3RDb21wYXRpYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFNdEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVuQyx3REFBd0Q7QUFDeEQsK0RBQStEO0FBQy9ELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFVLENBQUM7QUFNMUUsdURBQXVEO0FBQ3ZELFNBQVMsZUFBZSxDQUFTLElBQWlFLEVBQUUsSUFBeUM7SUFDM0ksT0FBTyxDQUFDLFFBQWtCLEVBQUUsS0FBUSxFQUE2QixFQUFFLENBQ2pFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUUsU0FBbUIsRUFBRSxFQUFzQjtJQUMvRSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUUsU0FBbUIsRUFBRSxFQUFzQjtJQUMvRSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUUsU0FBbUIsRUFBRSxFQUFzQjtJQUMvRSxPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ2hHLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLGFBQWEsQ0FBQyxlQUFlLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEcsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxvQkFBb0IsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoRyxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLG9CQUFvQixFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRWhHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBNEI7SUFDdEQsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7SUFDNUIsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLENBQUM7Q0FDN0IsQ0FBQyJ9 -//# sourceHash=eb15cb4d1b33111cbf09e91146958205f159da996d51fadd53259bea9cc5478c diff --git a/.api-contract/build-loader/Abi/toLatestCompatible.spec.js b/.api-contract/build-loader/Abi/toLatestCompatible.spec.js deleted file mode 100644 index bde61de3..00000000 --- a/.api-contract/build-loader/Abi/toLatestCompatible.spec.js +++ /dev/null @@ -1,199 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -/// -import { TypeRegistry } from '@polkadot/types'; -import abis from '../test/contracts/index.js'; -import { - v0ToLatestCompatible, - v1ToLatestCompatible, - v2ToLatestCompatible, - v3ToLatestCompatible, - v4ToLatestCompatible, - v5ToLatestCompatible, - v6ToLatestCompatible, -} from './toLatestCompatible.js'; -describe('v0ToLatestCompatible', () => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V0: abis['ink_v0_erc20'] }); - const latest = v0ToLatestCompatible(registry, contract.asV0); - it('has the correct constructors', () => { - expect(latest.spec.constructors.map(({ label }) => label.toString())).toEqual(['new']); - }); - it('has the correct messages', () => { - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ - 'total_supply', - 'balance_of', - 'allowance', - 'transfer', - 'approve', - 'transfer_from', - ]); - }); - it('has the correct events', () => { - expect(latest.spec.events.map(({ label }) => label.toString())).toEqual([ - 'Transfer', - 'Approval', - ]); - }); - it('has the correct constructor arguments', () => { - expect(latest.spec.constructors[0].args.map(({ label }) => label.toString())).toEqual([ - 'initial_supply', - ]); - }); - it('has the correct message arguments', () => { - expect(latest.spec.messages[1].args.map(({ label }) => label.toString())).toEqual(['owner']); - }); - it('has the correct event arguments', () => { - expect(latest.spec.events[0].args.map(({ label }) => label.toString())).toEqual([ - 'from', - 'to', - 'value', - ]); - }); - it('has the latest compatible version number', () => { - expect(latest.version.toString()).toEqual('4'); - }); -}); -describe('v1ToLatestCompatible', () => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_flipper']['V1'] }); - const latest = v1ToLatestCompatible(registry, contract.asV1); - it('has the correct constructors', () => { - expect(latest.spec.constructors.map(({ label }) => label.toString())).toEqual([ - 'new', - 'default', - ]); - }); - it('has the correct messages', () => { - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual(['flip', 'get']); - }); - it('has the correct messages with namespaced method name', () => { - const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_psp22']['V1'] }); - const latest = v1ToLatestCompatible(registry, contract.asV1); - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ - 'PSP22Metadata::token_name', - 'PSP22Metadata::token_symbol', - 'PSP22Metadata::token_decimals', - 'PSP22Mintable::mint', - 'PSP22::decrease_allowance', - 'PSP22::transfer', - 'PSP22::approve', - 'PSP22::allowance', - 'PSP22::transfer_from', - 'PSP22::balance_of', - 'PSP22::increase_allowance', - 'PSP22::total_supply', - 'pause', - 'unpause', - ]); - }); - it('has the correct constructor arguments', () => { - expect(latest.spec.constructors[0].args.map(({ label }) => label.toString())).toEqual([ - 'init_value', - ]); - }); - it('has the latest compatible version number', () => { - expect(latest.version.toString()).toEqual('4'); - }); -}); -describe('v2ToLatestCompatible', () => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V2: abis['ink_v2_flipper']['V2'] }); - const latest = v2ToLatestCompatible(registry, contract.asV2); - it('has the correct constructor flag', () => { - expect(latest.spec.constructors[0].payable.isTrue).toEqual(true); - }); - it('has the latest compatible version number', () => { - expect(latest.version.toString()).toEqual('4'); - }); -}); -describe('v3ToLatestCompatible', () => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V3: abis['ink_v3_flipper']['V3'] }); - const latest = v3ToLatestCompatible(registry, contract.asV3); - it('has the correct constructor flags', () => { - expect(latest.spec.constructors[0].payable.isTrue).toEqual(false); - expect(latest.spec.constructors[1].payable.isTrue).toEqual(true); - }); - it('has the correct messages', () => { - const contract = registry.createType('ContractMetadata', { - V3: abis['ink_v3_traitErc20']['V3'], - }); - const latest = v3ToLatestCompatible(registry, contract.asV3); - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ - 'BaseErc20::total_supply', - 'BaseErc20::balance_of', - 'BaseErc20::allowance', - 'BaseErc20::transfer', - 'BaseErc20::approve', - 'BaseErc20::transfer_from', - ]); - }); - it('has the latest compatible version number', () => { - expect(latest.version.toString()).toEqual('4'); - }); -}); -describe('v4ToLatestCompatible', () => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V4: abis['ink_v4_flipperContract'] }); - const latest = v4ToLatestCompatible(registry, contract.asV4); - it('has the correct constructor flags', () => { - expect(latest.spec.constructors[0].payable.isTrue).toEqual(false); - expect(latest.spec.constructors[1].payable.isTrue).toEqual(false); - }); - it('has the latest compatible version number', () => { - expect(latest.version.toString()).toEqual('4'); - }); -}); -describe('v5ToLatestCompatible', () => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V5: abis['ink_v5_erc20Metadata'] }); - const latest = v5ToLatestCompatible(registry, contract.asV5); - it('has the correct messages', () => { - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ - 'total_supply', - 'balance_of', - 'allowance', - 'transfer', - 'approve', - 'transfer_from', - ]); - }); - it('has new event fields', () => { - expect(latest.spec.events.length).toEqual(2); - expect(latest.spec.events.every(e => e.has('module_path'))).toEqual(true); - expect(latest.spec.events[0].module_path.toString()).toEqual('erc20::erc20'); - expect(latest.spec.events.every(e => e.has('signature_topic'))).toEqual(true); - expect(latest.spec.events[0].signature_topic.toHex()).toEqual( - '0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb', - ); - }); - it('has the latest compatible version number', () => { - expect(latest.version.toString()).toEqual('5'); - }); -}); -describe('v6ToLatestCompatible', () => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V6: abis['ink_v6_erc20Metadata'] }); - const latest = v6ToLatestCompatible(registry, contract.asV6); - it('has the correct messages', () => { - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ - 'total_supply', - 'balance_of', - 'allowance', - 'transfer', - 'approve', - 'transfer_from', - ]); - }); - it('has H160 as the type of balance_of argument', () => { - const arg = latest.spec.messages.find(m => m.label.toString() === 'balance_of')?.args[0]; - const name = arg?.type.displayName?.[0]?.toString(); - expect(name).toBe('H160'); - }); - it('has the latest compatible version number', () => { - expect(latest.version.toString()).toEqual('6'); - }); -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9MYXRlc3RDb21wYXRpYmxlLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b0xhdGVzdENvbXBhdGlibGUuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLHlEQUF5RDtBQUV6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxJQUFJLE1BQU0sNEJBQTRCLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbk0sUUFBUSxDQUFDLHNCQUFzQixFQUFFLEdBQVMsRUFBRTtJQUMxQyxNQUFNLFFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ3BDLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN2RixNQUFNLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdELEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxHQUFTLEVBQUU7UUFDNUMsTUFBTSxDQUNKLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUM5RCxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMEJBQTBCLEVBQUUsR0FBUyxFQUFFO1FBQ3hDLE1BQU0sQ0FDSixNQUFNLENBQUMsSUFBSSxD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 -//# sourceHash=132afa0e7d1f1b28490f58000108dcae380389497d814be05bd34342614267f4 diff --git a/.api-contract/build-loader/Abi/toV1.js b/.api-contract/build-loader/Abi/toV1.js deleted file mode 100644 index 043f2b9d..00000000 --- a/.api-contract/build-loader/Abi/toV1.js +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { convertSiV0toV1 } from '@polkadot/types'; -import { objectSpread } from '@polkadot/util'; -function v0ToV1Names(all) { - return all.map(e => - objectSpread({}, e, { - name: Array.isArray(e.name) ? e.name : [e.name], - }), - ); -} -export function v0ToV1(registry, v0) { - if (!v0.metadataVersion.length) { - throw new Error('Invalid format for V0 (detected) contract metadata'); - } - return registry.createType( - 'ContractMetadataV1', - objectSpread({}, v0, { - spec: objectSpread({}, v0.spec, { - constructors: v0ToV1Names(v0.spec.constructors), - messages: v0ToV1Names(v0.spec.messages), - }), - types: convertSiV0toV1(registry, v0.types), - }), - ); -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9WMS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvVjEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUt0QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTlDLFNBQVMsV0FBVyxDQUFFLEdBQVk7SUFDaEMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDbkIsWUFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUU7UUFDbEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDUixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0tBQ2IsQ0FBQyxDQUFDLENBQUM7QUFDUixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBRSxRQUFrQixFQUFFLEVBQXNCO0lBQ2hFLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQy9CLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsT0FBTyxRQUFRLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFO1FBQ3BFLElBQUksRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUU7WUFDOUIsWUFBWSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUMvQyxRQUFRLEVBQUUsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQ3hDLENBQUM7UUFDRixLQUFLLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO0tBQzNDLENBQUMsQ0FBQyxDQUFDO0FBQ04sQ0FBQyJ9 -//# sourceHash=8ff33b3e5804b8e5e8e2d0e45cf7e4e865829e7d0dfb3d0aa0825d0f3097b223 diff --git a/.api-contract/build-loader/Abi/toV2.js b/.api-contract/build-loader/Abi/toV2.js deleted file mode 100644 index 24a7df67..00000000 --- a/.api-contract/build-loader/Abi/toV2.js +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { objectSpread } from '@polkadot/util'; -const ARG_TYPES = { - ContractConstructorSpec: 'ContractMessageParamSpecV2', - ContractEventSpec: 'ContractEventParamSpecV2', - ContractMessageSpec: 'ContractMessageParamSpecV2', -}; -function v1ToV2Label(entry) { - return objectSpread({}, entry, { - label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, - }); -} -function v1ToV2Labels(registry, outType, all) { - return all.map(e => - registry.createType( - `${outType}V2`, - objectSpread(v1ToV2Label(e), { - args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), - }), - ), - ); -} -export function v1ToV2(registry, v1) { - return registry.createType( - 'ContractMetadataV2', - objectSpread({}, v1, { - spec: objectSpread({}, v1.spec, { - constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), - events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), - messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), - }), - }), - ); -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9WMi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvVjIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQU10QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFrQjlDLE1BQU0sU0FBUyxHQUFHO0lBQ2hCLHVCQUF1QixFQUFFLDRCQUE0QjtJQUNyRCxpQkFBaUIsRUFBRSwwQkFBMEI7SUFDN0MsbUJBQW1CLEVBQUUsNEJBQTRCO0NBQ3pDLENBQUM7QUFFWCxTQUFTLFdBQVcsQ0FBRSxLQUFpQjtJQUNyQyxPQUFPLFlBQVksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFO1FBQzdCLEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7WUFDOUIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUN2QixDQUFDLENBQUMsS0FBSyxDQUFDLElBQUk7S0FDZixDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQXVCLFFBQWtCLEVBQUUsT0FBVSxFQUFFLEdBQW1CO0lBQzdGLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ25CLFFBQVEsQ0FBQyxVQUFVLENBQUMsR0FBRyxPQUFPLElBQUksRUFBRSxZQUFZLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO1FBQy9ELElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQ3JCLFFBQVEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUN4RDtLQUNGLENBQUMsQ0FBQyxDQUNKLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLE1BQU0sQ0FBRSxRQUFrQixFQUFFLEVBQXNCO0lBQ2hFLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUNwRSxJQUFJLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO1lBQzlCLFlBQVksRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLHlCQUF5QixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBQ3JGLE1BQU0sRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLG1CQUFtQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ25FLFFBQVEsRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFFLHFCQUFxQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQzFFLENBQUM7S0FDSCxDQUFDLENBQUMsQ0FBQztBQUNOLENBQUMifQ== -//# sourceHash=ea82fda229c2ef5293604e32a25290d4dfe476eb8d5e35ce746827a5b14dad67 diff --git a/.api-contract/build-loader/Abi/toV3.js b/.api-contract/build-loader/Abi/toV3.js deleted file mode 100644 index 316b007d..00000000 --- a/.api-contract/build-loader/Abi/toV3.js +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { objectSpread } from '@polkadot/util'; -export function v2ToV3(registry, v2) { - return registry.createType( - 'ContractMetadataV3', - objectSpread({}, v2, { - spec: objectSpread({}, v2.spec, { - constructors: v2.spec.constructors.map(c => - // V3 introduces the payable flag on constructors, for - registry.createType('ContractConstructorSpecV4', objectSpread({}, c)), - ), - messages: v3.spec.messages.map(m => - registry.createType('ContractMessageSpecV3', objectSpread({}, m)), - ), - }), - version: registry.createType('Text', '4'), - }), - ); -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9WNC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvVjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUt0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsTUFBTSxVQUFVLE1BQU0sQ0FBRSxRQUFrQixFQUFFLEVBQXNCO0lBQ2hFLE9BQU8sUUFBUSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRTtRQUNwRSxJQUFJLEVBQUUsWUFBWSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO1lBQzlCLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUMzQyxRQUFRLENBQUMsVUFBVSxDQUFDLDJCQUEyQixFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FDdEU7WUFDRCxRQUFRLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDbkMsUUFBUSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRSxZQUFZLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQ2xFO1NBQ0YsQ0FBQztRQUNGLE9BQU8sRUFBRSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7S0FDMUMsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDIn0= -//# sourceHash=af8f5dc933a3c04340b666309665ad6cbedd8e223ef2aca4abddf9e22a1709e4 diff --git a/.api-contract/build-loader/base/Base.js b/.api-contract/build-loader/base/Base.js deleted file mode 100644 index 5e6799c3..00000000 --- a/.api-contract/build-loader/base/Base.js +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright 2017-2025 @polkadot/api authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { isFunction } from '@polkadot/util'; -import { Abi } from '../Abi/index.js'; -export class Base { - abi; - api; - _decorateMethod; - _isWeightV1; - constructor(api, abi, decorateMethod) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.contracts || - !isFunction(api.tx.contracts.instantiateWithCode) || - api.tx.contracts.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', - ); - } - this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - get registry() { - return this.api.registry; - } -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkRBQTJEO0FBQzNELHNDQUFzQztBQU90QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXRDLE1BQU0sT0FBZ0IsSUFBSTtJQUNmLEdBQUcsQ0FBTTtJQUNULEdBQUcsQ0FBbUI7SUFFWixlQUFlLENBQTBCO0lBQ3pDLFdBQVcsQ0FBVTtJQUV4QyxZQUFhLEdBQXFCLEVBQUUsR0FBMkMsRUFBRSxjQUF1QztRQUN0SCxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksS0FBSyxDQUFDLDZFQUE2RSxDQUFDLENBQUM7UUFDakcsQ0FBQzthQUFNLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ2pKLE1BQU0sSUFBSSxLQUFLLENBQUMsMkZBQTJGLENBQUMsQ0FBQztRQUMvRyxDQUFDO2FBQU0sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDN0UsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7UUFFRCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsWUFBWSxHQUFHO1lBQzNCLENBQUMsQ0FBQyxHQUFHO1lBQ0wsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNmLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBVyxRQUFRLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDNUUsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO0lBQzNCLENBQUM7Q0FDRiJ9 -//# sourceHash=82b8fb99d1bbd63ea720a81307c010465428175edb4039eb7c8cd00eb7398eee diff --git a/.api-contract/build-loader/base/Blueprint.js b/.api-contract/build-loader/base/Blueprint.js deleted file mode 100644 index 6fa3acc5..00000000 --- a/.api-contract/build-loader/base/Blueprint.js +++ /dev/null @@ -1,73 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, isUndefined } from '@polkadot/util'; -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class BlueprintSubmittableResult extends SubmittableResult { - contract; - constructor(result, contract) { - super(result); - this.contract = contract; - } -} -export class Blueprint extends Base { - /** - * @description The on-chain code hash for this blueprint - */ - codeHash; - #tx = {}; - constructor(api, abi, codeHash, decorateMethod) { - super(api, abi, decorateMethod); - this.codeHash = this.registry.createType('Hash', codeHash); - this.abi.constructors.forEach(c => { - if (isUndefined(this.#tx[c.method])) { - this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p)); - } - }); - } - get tx() { - return this.#tx; - } - #deploy = ( - constructorOrId, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new BlueprintSubmittableResult( - result, - applyOnEvent( - result, - ['Instantiated'], - ([record]) => - new Contract(this.api, this.abi, record.event.data[1], this._decorateMethod), - ), - ), - ); - }; -} -export function extendBlueprint(type, decorateMethod) { - return class extends Blueprint { - static __BlueprintType = type; - constructor(api, abi, codeHash) { - super(api, abi, codeHash, decorateMethod); - } - }; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmx1ZXByaW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQmx1ZXByaW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFXdEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJekUsTUFBTSxPQUFPLDBCQUFxRCxTQUFRLGlCQUFpQjtJQUNoRixRQUFRLENBQWlDO0lBRWxELFlBQWEsTUFBMEIsRUFBRSxRQUE0QjtRQUNuRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFZCxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUMzQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sU0FBb0MsU0FBUSxJQUFhO0lBQ3BFOztPQUVHO0lBQ00sUUFBUSxDQUFPO0lBRWYsR0FBRyxHQUFnQyxFQUFFLENBQUM7SUFFL0MsWUFBYSxHQUFxQixFQUFFLEdBQTJDLEVBQUUsUUFBb0MsRUFBRSxjQUF1QztRQUM1SixLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUVoQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUUzRCxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQVEsRUFBRTtZQUN4QyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzdFLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFXLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDLGVBQWlELEVBQUUsRUFBRSxRQUFRLEdBQUcsT0FBTyxFQUFFLElBQUksRUFBRSxtQkFBbUIsR0FBRyxJQUFJLEVBQUUsS0FBSyxHQUFHLE9BQU8sRUFBb0IsRUFBRSxNQUFpQixFQUFzRSxFQUFFO1FBQ2xQLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FDdEMsS0FBSztRQUNMLDZEQUE2RDtRQUM3RCwwREFBMEQ7UUFDMUQsSUFBSSxDQUFDLFdBQVc7WUFDZCxDQUFDLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVE7WUFDbEMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQ3BDLG1CQUFtQixFQUNuQixJQUFJLENBQUMsUUFBUSxFQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFDdkQsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUNqQixDQUFDLG1CQUFtQixDQUFDLENBQUMsTUFBMEIsRUFBRSxFQUFFLENBQ25ELElBQUksMEJBQTBCLENBQUMsTUFBTSxFQUFFLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFnQixFQUFFLEVBQUUsQ0FDeEcsSUFBSSxRQUFRLENBQVUsSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FDbkcsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDLENBQUM7Q0FDSDtBQUVELE1BQU0sVUFBVSxlQUFlLENBQTZCLElBQWEsRUFBRSxjQUF1QztJQUNoSCxPQUFPLEtBQU0sU0FBUSxTQUFrQjtRQUNyQyxNQUFNLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUU5QixZQUFhLEdBQXFCLEVBQUUsR0FBMkMsRUFBRSxRQUFvQztZQUNuSCxLQUFLLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDNUMsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDIn0= -//# sourceHash=95d66631261e83981b8a14bbfca55e6d6541bf3fcebe6a13472322b3d1b5e7ed diff --git a/.api-contract/build-loader/base/Code.js b/.api-contract/build-loader/base/Code.js deleted file mode 100644 index 8f32497d..00000000 --- a/.api-contract/build-loader/base/Code.js +++ /dev/null @@ -1,92 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { Blueprint } from './Blueprint.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class CodeSubmittableResult extends SubmittableResult { - blueprint; - contract; - constructor(result, blueprint, contract) { - super(result); - this.blueprint = blueprint; - this.contract = contract; - } -} -// checks to see if the code (or at least the header) -// is a valid/supported format -function isValidCode(code) { - return isWasm(code) || isRiscV(code); -} -export class Code extends Base { - code; - #tx = {}; - constructor(api, abi, wasm, decorateMethod) { - super(api, abi, decorateMethod); - this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - this.abi.constructors.forEach(c => { - if (isUndefined(this.#tx[c.method])) { - this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p)); - } - }); - } - get tx() { - return this.#tx; - } - #instantiate = ( - constructorOrId, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - compactAddLength(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new CodeSubmittableResult( - result, - ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], records => - records.reduce( - ([blueprint, contract], { event }) => - this.api.events.contracts.Instantiated.is(event) - ? [ - blueprint, - new Contract(this.api, this.abi, event.data[1], this._decorateMethod), - ] - : this.api.events.contracts.CodeStored.is(event) - ? [ - new Blueprint(this.api, this.abi, event.data[0], this._decorateMethod), - contract, - ] - : [blueprint, contract], - [undefined, undefined], - ), - ) || [undefined, undefined]), - ), - ); - }; -} -export function extendCode(type, decorateMethod) { - return class extends Code { - static __CodeType = type; - constructor(api, abi, wasm) { - super(api, abi, wasm, decorateMethod); - } - }; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIkNvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQVl0QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJekUsTUFBTSxPQUFPLHFCQUFnRCxTQUFRLGlCQUFpQjtJQUMzRSxTQUFTLENBQWtDO0lBQzNDLFFBQVEsQ0FBaUM7SUFFbEQsWUFBYSxNQUEwQixFQUFFLFNBQTBDLEVBQUUsUUFBd0M7UUFDM0gsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRWQsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztDQUNGO0FBRUQscURBQXFEO0FBQ3JELDhCQUE4QjtBQUM5QixTQUFTLFdBQVcsQ0FBRSxJQUFnQjtJQUNwQyxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sT0FBTyxJQUErQixTQUFRLElBQWE7SUFDdEQsSUFBSSxDQUFhO0lBRWpCLEdBQUcsR0FBZ0MsRUFB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 -//# sourceHash=cc94d1b7f0f20c5baf3f2936d3bfe76e2c8114d5240941cb42032fcd39578155 diff --git a/.api-contract/build-loader/base/Code.spec.js b/.api-contract/build-loader/base/Code.spec.js deleted file mode 100644 index e8cb63c9..00000000 --- a/.api-contract/build-loader/base/Code.spec.js +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -/// -import fs from 'node:fs'; -import { toPromiseMethod } from '@polkadot/api'; -import v0contractFlipper from '../test/contracts/ink/v0/flipper.contract.json' with { type: 'json' }; -import v0abiFlipper from '../test/contracts/ink/v0/flipper.json' with { type: 'json' }; -import v1contractFlipper from '../test/contracts/ink/v1/flipper.contract.json' with { type: 'json' }; -import { Code } from './Code.js'; -import { mockApi } from './mock.js'; -const v0wasmFlipper = fs.readFileSync( - new URL('../test/contracts/ink/v0/flipper.wasm', import.meta.url), - 'utf-8', -); -describe('Code', () => { - it('can construct with an individual ABI/WASM combo', () => { - expect(() => new Code(mockApi, v0abiFlipper, v0wasmFlipper, toPromiseMethod)).not.toThrow(); - }); - it('can construct with an .contract ABI (v0)', () => { - expect(() => new Code(mockApi, v0contractFlipper, null, toPromiseMethod)).not.toThrow(); - }); - it('can construct with an .contract ABI (v1)', () => { - expect(() => new Code(mockApi, v1contractFlipper, null, toPromiseMethod)).not.toThrow(); - }); -}); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZS5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiQ29kZS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLG9FQUFvRTtBQUNwRSxzQ0FBc0M7QUFFdEMseURBQXlEO0FBRXpELE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhELE9BQU8saUJBQWlCLE1BQU0sZ0RBQWdELENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDckcsT0FBTyxZQUFZLE1BQU0sdUNBQXVDLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdkYsT0FBTyxpQkFBaUIsTUFBTSxnREFBZ0QsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEMsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLEdBQUcsQ0FBQyx1Q0FBdUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRWxILFFBQVEsQ0FBQyxNQUFNLEVBQUUsR0FBUyxFQUFFO0lBQzFCLEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxHQUFTLEVBQUU7UUFDL0QsTUFBTSxDQUNKLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxZQUF1QyxFQUFFLGFBQWEsRUFBRSxlQUFlLENBQUMsQ0FDakcsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFFSCxFQUFFLENBQUMsMENBQTBDLEVBQUUsR0FBUyxFQUFFO1FBQ3hELE1BQU0sQ0FDSixHQUFHLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsaUJBQTRDLEVBQUUsSUFBSSxFQUFFLGVBQWUsQ0FBQyxDQUM3RixDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQztJQUVILEVBQUUsQ0FBQywwQ0FBMEMsRUFBRSxHQUFTLEVBQUU7UUFDeEQsTUFBTSxDQUNKLEdBQUcsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxpQkFBNEMsRUFBRSxJQUFJLEVBQUUsZUFBZSxDQUFDLENBQzdGLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ== -//# sourceHash=acc22862406c09d74038e177bdfd23410b59476ef183cafd9e800c80ff6cda3d diff --git a/.api-contract/build-loader/base/Contract.js b/.api-contract/build-loader/base/Contract.js deleted file mode 100644 index 74ffa24e..00000000 --- a/.api-contract/build-loader/base/Contract.js +++ /dev/null @@ -1,157 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { map } from 'rxjs'; -import { SubmittableResult } from '@polkadot/api'; -import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { convertWeight, withMeta } from './util.js'; -// As per Rust, 5 * GAS_PER_SEC -const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); -const l = logger('Contract'); -function createQuery(meta, fn) { - return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); -} -function createTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); -} -export class ContractSubmittableResult extends SubmittableResult { - contractEvents; - constructor(result, contractEvents) { - super(result); - this.contractEvents = contractEvents; - } -} -export class Contract extends Base { - /** - * @description The on-chain address for this contract - */ - address; - #query = {}; - #tx = {}; - constructor(api, abi, address, decorateMethod) { - super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId', address); - this.abi.messages.forEach(m => { - if (isUndefined(this.#tx[m.method])) { - this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p)); - } - if (isUndefined(this.#query[m.method])) { - this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f)); - } - }); - } - get query() { - return this.#query; - } - get tx() { - return this.#tx; - } - #getGas = (_gasLimit, isCall = false) => { - const weight = convertWeight(_gasLimit); - if (weight.v1Weight.gt(BN_ZERO)) { - return weight; - } - return convertWeight( - isCall - ? MAX_CALL_GAS - : convertWeight( - this.api.consts.system.blockWeights - ? this.api.consts.system.blockWeights.maxBlock - : this.api.consts.system['maximumBlockWeight'], - ) - .v1Weight.muln(64) - .div(BN_HUNDRED), - ); - }; - #exec = ( - messageOrId, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - result => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => - records - .map(record => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${error.message}`); - return null; - } - }) - .filter(decoded => !!decoded), - ), - ), - ); - }; - #read = ( - messageOrId, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - const message = this.abi.findMessage(messageOrId); - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod(origin => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.#getGas(gasLimit, true).v1Weight - : this.#getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !convertWeight(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - })), - ), - ), - }; - }; -} -export function extendContract(type, decorateMethod) { - return class extends Contract { - static __ContractType = type; - constructor(api, abi, address) { - super(api, abi, address, decorateMethod); - } - }; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29udHJhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJDb250cmFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBV3RDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFM0IsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUlwRCwrQkFBK0I7QUFDL0IsTUFBTSxZQUFZLEdBQUcsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7QUFFNUQsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRTdCLFNBQVMsV0FBVyxDQUE2QixJQUFnQixFQUFFLEVBQThJO0lBQy9NLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQXVDLEVBQUUsT0FBd0IsRUFBRSxHQUFHLE1BQWlCLEVBQW9ELEVBQUUsQ0FDbEssRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQzVCLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxRQUFRLENBQTZCLElBQWdCLEVBQUUsRUFBa0Y7SUFDaEosT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsT0FBd0IsRUFBRSxHQUFHLE1BQWlCLEVBQWlDLEVBQUUsQ0FDdEcsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMs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 -//# sourceHash=9294d9c9eb2ea879e15dc3dba1efa731c4b0f0f7889190e1bb0bd64425ea6132 diff --git a/.api-contract/build-loader/base/mock.js b/.api-contract/build-loader/base/mock.js deleted file mode 100644 index 6e240385..00000000 --- a/.api-contract/build-loader/base/mock.js +++ /dev/null @@ -1,26 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { TypeRegistry } from '@polkadot/types'; -const registry = new TypeRegistry(); -const instantiateWithCode = () => { - throw new Error('mock'); -}; -instantiateWithCode.meta = { args: new Array(6) }; -export const mockApi = { - call: { - contractsApi: { - call: () => { - throw new Error('mock'); - }, - }, - }, - isConnected: true, - registry, - tx: { - contracts: { - instantiateWithCode, - }, - }, -}; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9jay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIm1vY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUl0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztBQUVwQyxNQUFNLG1CQUFtQixHQUFHLEdBQVUsRUFBRTtJQUN0QyxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzFCLENBQUMsQ0FBQztBQUVGLG1CQUFtQixDQUFDLElBQUksR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0FBRWxELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNyQixJQUFJLEVBQUU7UUFDSixZQUFZLEVBQUU7WUFDWixJQUFJLEVBQUUsR0FBVSxFQUFFO2dCQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzFCLENBQUM7U0FDRjtLQUNGO0lBQ0QsV0FBVyxFQUFFLElBQUk7SUFDakIsUUFBUTtJQUNSLEVBQUUsRUFBRTtRQUNGLFNBQVMsRUFBRTtZQUNULG1CQUFtQjtTQUNwQjtLQUNGO0NBQytCLENBQUMifQ== -//# sourceHash=bd3465151b8164580ec2dd6e002983d8e01136aa60ec3ad49c9235e1510d9a6f diff --git a/.api-contract/build-loader/base/util.js b/.api-contract/build-loader/base/util.js deleted file mode 100644 index 5b62f39f..00000000 --- a/.api-contract/build-loader/base/util.js +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { Bytes } from '@polkadot/types'; -import { bnToBn, compactAddLength, u8aToU8a } from '@polkadot/util'; -import { randomAsU8a } from '@polkadot/util-crypto'; -export const EMPTY_SALT = new Uint8Array(); -export function withMeta(meta, creator) { - creator.meta = meta; - return creator; -} -export function createBluePrintTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); -} -export function createBluePrintWithId(fn) { - return (constructorOrId, options, ...params) => fn(constructorOrId, options, params); -} -export function encodeSalt(salt = randomAsU8a()) { - return salt instanceof Bytes - ? salt - : salt?.length - ? compactAddLength(u8aToU8a(salt)) - : EMPTY_SALT; -} -export function convertWeight(weight) { - const [refTime, proofSize] = isWeightV2(weight) - ? [weight.refTime.toBn(), weight.proofSize.toBn()] - : [bnToBn(weight), undefined]; - return { - v1Weight: refTime, - v2Weight: { proofSize, refTime }, - }; -} -export function isWeightV2(weight) { - return !!weight.proofSize; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQVV0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEMsT0FBTyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7QUFFM0MsTUFBTSxVQUFVLFFBQVEsQ0FBbUMsSUFBZ0IsRUFBRSxPQUF3QjtJQUNsRyxPQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztJQUUzQixPQUFPLE9BQVksQ0FBQztBQUN0QixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUEwRCxJQUFnQixFQUFFLEVBQXNGO0lBQ2pNLE9BQU8sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLE9BQXlCLEVBQUUsR0FBRyxNQUFpQixFQUFvQyxFQUFFLENBQzFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQ3BCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUFNLEVBQTBHO0lBQ25KLE9BQU8sQ0FBQyxlQUFpRCxFQUFFLE9BQXlCLEVBQUUsR0FBRyxNQUFpQixFQUFLLEVBQUUsQ0FDL0csRUFBRSxDQUFDLGVBQWUsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDekMsQ0FBQztBQUVELE1BQU0sVUFBVSxVQUFVLENBQUUsT0FBbUMsV0FBVyxFQUFFO0lBQzFFLE9BQU8sSUFBSSxZQUFZLEtBQUs7UUFDMUIsQ0FBQyxDQUFDLElBQUk7UUFDTixDQUFDLENBQUMsSUFBSSxFQUFFLE1BQU07WUFDWixDQUFDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxVQUFVLENBQUM7QUFDbkIsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUUsTUFBMkQ7SUFDeEYsTUFBTSxDQUFDLE9BQU8sRUFBRSxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFFaEMsT0FBTztRQUNMLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLFFBQVEsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUU7S0FDakMsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFFLE1BQTJEO0lBQ3JGLE9BQU8sQ0FBQyxDQUFFLE1BQW1CLENBQUMsU0FBUyxDQUFDO0FBQzFDLENBQUMifQ== -//# sourceHash=b46e6ac654b6c51737323f48eefdb1b0fd5824f854e4689878374803534a7cf8 diff --git a/.api-contract/build-loader/test/contracts/index.js b/.api-contract/build-loader/test/contracts/index.js deleted file mode 100644 index 92c7115e..00000000 --- a/.api-contract/build-loader/test/contracts/index.js +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import ink from './ink/index.js'; -import solang from './solang/index.js'; -import user from './user/index.js'; -const all = {}; -Object.entries({ ink, solang, user }).forEach(([type, abis]) => - Object.entries(abis).forEach(([name, abi]) => { - all[`${type}_${name}`] = abi; - }), -); -export default all; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sR0FBRyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pDLE9BQU8sTUFBTSxNQUFNLG1CQUFtQixDQUFDO0FBQ3ZDLE9BQU8sSUFBSSxNQUFNLGlCQUFpQixDQUFDO0FBRW5DLE1BQU0sR0FBRyxHQUE0QyxFQUFFLENBQUM7QUFFeEQsTUFBTTtLQUNILE9BQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDOUIsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUN4QixNQUFNO0tBQ0gsT0FBTyxDQUFDLElBQUksQ0FBQztLQUNiLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFRLEVBQUU7SUFDN0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDO0FBQy9CLENBQUMsQ0FBQyxDQUNMLENBQUM7QUFFSixlQUFlLEdBQUcsQ0FBQyJ9 -//# sourceHash=d313ea549c70be6a588a9797a6c5a2f4f56ff9ec2a08de519f1d598cb2669d0d diff --git a/.api-contract/build-loader/test/contracts/ink/index.js b/.api-contract/build-loader/test/contracts/ink/index.js deleted file mode 100644 index 407adb73..00000000 --- a/.api-contract/build-loader/test/contracts/ink/index.js +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { createVersionedExport } from '../util.js'; -import * as v0 from './v0/index.js'; -import * as v1 from './v1/index.js'; -import * as v2 from './v2/index.js'; -import * as v3 from './v3/index.js'; -import * as v4 from './v4/index.js'; -import * as v5 from './v5/index.js'; -import * as v6 from './v6/index.js'; -export default createVersionedExport({ v0, v1, v2, v3, v4, v5, v6 }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwQyxlQUFlLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyJ9 -//# sourceHash=801619196e687082fa4f6aa87b2766f56b83eec6ade0a4ae57fb75729071d6e3 diff --git a/.api-contract/build-loader/test/contracts/ink/v0/index.js b/.api-contract/build-loader/test/contracts/ink/v0/index.js deleted file mode 100644 index 7a7fa6e7..00000000 --- a/.api-contract/build-loader/test/contracts/ink/v0/index.js +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export { default as delegator } from './delegator.json' with { type: 'json' }; -export { default as dns } from './dns.json' with { type: 'json' }; -export { default as erc20 } from './erc20.json' with { type: 'json' }; -export { default as erc721 } from './erc721.json' with { type: 'json' }; -export { default as flipperBundle } from './flipper.contract.json' with { type: 'json' }; -export { default as flipper } from './flipper.json' with { type: 'json' }; -export { default as incrementer } from './incrementer.json' with { type: 'json' }; -export { default as multisigPlain } from './multisig_plain.json' with { type: 'json' }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxHQUFHLEVBQUUsTUFBTSxZQUFZLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDbEUsT0FBTyxFQUFFLE9BQU8sSUFBSSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdEUsT0FBTyxFQUFFLE9BQU8sSUFBSSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDeEUsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUN6RixPQUFPLEVBQUUsT0FBTyxJQUFJLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxPQUFPLElBQUksV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDbEYsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyJ9 -//# sourceHash=ed2370a1830530ad9b86c39c2a3eab94c093440c1958687d9a592516e8ef8ef3 diff --git a/.api-contract/build-loader/test/contracts/ink/v1/index.js b/.api-contract/build-loader/test/contracts/ink/v1/index.js deleted file mode 100644 index 2dd2fd20..00000000 --- a/.api-contract/build-loader/test/contracts/ink/v1/index.js +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export { default as flipper } from './flipper.contract.json' with { type: 'json' }; -// A complex contract example with traits. -export { default as psp22 } from './psp22_minter_pauser.contract.json' with { type: 'json' }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDbkYsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLE1BQU0scUNBQXFDLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== -//# sourceHash=832612b166bf42e8720b457b922475976201d2aaa1e007b1151a5eada9c94df3 diff --git a/.api-contract/build-loader/test/contracts/ink/v2/index.js b/.api-contract/build-loader/test/contracts/ink/v2/index.js deleted file mode 100644 index 2cc2e206..00000000 --- a/.api-contract/build-loader/test/contracts/ink/v2/index.js +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export { default as erc20 } from './erc20.contract.json' with { type: 'json' }; -export { default as flipper } from './flipper.contract.json' with { type: 'json' }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksS0FBSyxFQUFFLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDL0UsT0FBTyxFQUFFLE9BQU8sSUFBSSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyJ9 -//# sourceHash=95872d0c9204be24120285ab3f774afadd39d0be7d968cfd7b6e75b62cfb7c9a diff --git a/.api-contract/build-loader/test/contracts/ink/v3/index.js b/.api-contract/build-loader/test/contracts/ink/v3/index.js deleted file mode 100644 index 25645d19..00000000 --- a/.api-contract/build-loader/test/contracts/ink/v3/index.js +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export { default as flipper } from './flipper.contract.json' with { type: 'json' }; -// A complex contract example with traits. -export { default as traitErc20 } from './trait_erc20.contract.json' with { type: 'json' }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDbkYsMENBQTBDO0FBQzFDLE9BQU8sRUFBRSxPQUFPLElBQUksVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== -//# sourceHash=e404db926075d9546fdaef0d1e960eda0adc753349b79a5810702e5e0dc1a92a diff --git a/.api-contract/build-loader/test/contracts/ink/v4/index.js b/.api-contract/build-loader/test/contracts/ink/v4/index.js deleted file mode 100644 index cd0db39e..00000000 --- a/.api-contract/build-loader/test/contracts/ink/v4/index.js +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export { default as erc20Contract } from './erc20.contract.json' with { type: 'json' }; -export { default as erc20Metadata } from './erc20.json' with { type: 'json' }; -export { default as flipperContract } from './flipper.contract.json' with { type: 'json' }; -export { default as flipperMetadata } from './flipper.json' with { type: 'json' }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sSUFBSSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUMzRixPQUFPLEVBQUUsT0FBTyxJQUFJLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDIn0= -//# sourceHash=dc9946fb23a9a452353da50a42e35fb0003fe8e52580df3145e8448c02316637 diff --git a/.api-contract/build-loader/test/contracts/ink/v5/index.js b/.api-contract/build-loader/test/contracts/ink/v5/index.js deleted file mode 100644 index 4b20002f..00000000 --- a/.api-contract/build-loader/test/contracts/ink/v5/index.js +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export { default as erc20Contract } from './erc20.contract.json' with { type: 'json' }; -export { default as erc20Metadata } from './erc20.json' with { type: 'json' }; -export { default as erc20AnonymousTransferMetadata } from './erc20_anonymous_transfer.json' with { type: 'json' }; -export { default as flipperContract } from './flipper.contract.json' with { type: 'json' }; -export { default as flipperMetadata } from './flipper.json' with { type: 'json' }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDOUUsT0FBTyxFQUFFLE9BQU8sSUFBSSw4QkFBOEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ2xILE9BQU8sRUFBRSxPQUFPLElBQUksZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDM0YsT0FBTyxFQUFFLE9BQU8sSUFBSSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQyJ9 -//# sourceHash=140bbad2d323ee094c9b0135049fd7e50f1715baa4bea2d0c526b6924578993c diff --git a/.api-contract/build-loader/test/contracts/ink/v6/index.js b/.api-contract/build-loader/test/contracts/ink/v6/index.js deleted file mode 100644 index 3dc308a1..00000000 --- a/.api-contract/build-loader/test/contracts/ink/v6/index.js +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export { default as erc20Contract } from './erc20.contract.json' with { type: 'json' }; -export { default as erc20Metadata } from './erc20.json' with { type: 'json' }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdkYsT0FBTyxFQUFFLE9BQU8sSUFBSSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== -//# sourceHash=d2ca5bed9bbecdc6a2d3900f5234769d637cbf5bdec5f48fd3ad4f14241badb2 diff --git a/.api-contract/build-loader/test/contracts/solang/index.js b/.api-contract/build-loader/test/contracts/solang/index.js deleted file mode 100644 index a7a306cf..00000000 --- a/.api-contract/build-loader/test/contracts/solang/index.js +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { createVersionedExport } from '../util.js'; -import * as v0 from './v0/index.js'; -export default createVersionedExport({ v0 }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwQyxlQUFlLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyJ9 -//# sourceHash=1534d49aff08c27ba4ece70c668716131838795cd5b62ed65ffd965d6b0bbd9d diff --git a/.api-contract/build-loader/test/contracts/solang/v0/index.js b/.api-contract/build-loader/test/contracts/solang/v0/index.js deleted file mode 100644 index ac079f02..00000000 --- a/.api-contract/build-loader/test/contracts/solang/v0/index.js +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export { default as ints256 } from './ints256.json' with { type: 'json' }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksT0FBTyxFQUFFLE1BQU0sZ0JBQWdCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== -//# sourceHash=b7e035ed7432293db7720f6c5ddf2b252ec786a424e99846f4bdb1e4f248dc95 diff --git a/.api-contract/build-loader/test/contracts/user/index.js b/.api-contract/build-loader/test/contracts/user/index.js deleted file mode 100644 index 122f8f12..00000000 --- a/.api-contract/build-loader/test/contracts/user/index.js +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -import { createVersionedExport } from '../util.js'; -import * as v0 from './v0/index.js'; -import * as v3 from './v3/index.js'; -import * as v4 from './v4/index.js'; -export default createVersionedExport({ v0, v3, v4 }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNuRCxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVwQyxlQUFlLHFCQUFxQixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDIn0= -//# sourceHash=1e9fe3a8dbac5820c63a1ad11d871de7f1d7bb4a4007cbe1c0989069323bf729 diff --git a/.api-contract/build-loader/test/contracts/user/v0/index.js b/.api-contract/build-loader/test/contracts/user/v0/index.js deleted file mode 100644 index 204d6cc3..00000000 --- a/.api-contract/build-loader/test/contracts/user/v0/index.js +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export { default as assetTransfer } from './assetTransfer.json' with { type: 'json' }; -export { default as enumExample } from './enumExample.json' with { type: 'json' }; -export { default as recursive } from './recursive.contract.json' with { type: 'json' }; -export { default as withString } from './withString.json' with { type: 'json' }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7QUFDdEYsT0FBTyxFQUFFLE9BQU8sSUFBSSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQyxPQUFPLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztBQUNsRixPQUFPLEVBQUUsT0FBTyxJQUFJLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxPQUFPLElBQUksVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== -//# sourceHash=5cafe10a01c6059417f099b5adfb95c279653efcca6ac9fc2e0a48b8ad31695d diff --git a/.api-contract/build-loader/test/contracts/user/v3/index.js b/.api-contract/build-loader/test/contracts/user/v3/index.js deleted file mode 100644 index 6d6d0cb5..00000000 --- a/.api-contract/build-loader/test/contracts/user/v3/index.js +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export { default as ask } from './ask.json' with { type: 'json' }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksR0FBRyxFQUFFLE1BQU0sWUFBWSxDQUFDLE9BQU8sSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDIn0= -//# sourceHash=c86b5623423bc537361ad40f390f6258f643a7f298e5a2e7a60868c4d5d862a3 diff --git a/.api-contract/build-loader/test/contracts/user/v4/index.js b/.api-contract/build-loader/test/contracts/user/v4/index.js deleted file mode 100644 index da2da5ba..00000000 --- a/.api-contract/build-loader/test/contracts/user/v4/index.js +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export { default as events } from './events.contract.json' with { type: 'json' }; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvRUFBb0U7QUFDcEUsc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxPQUFPLElBQUksTUFBTSxFQUFFLE1BQU0sd0JBQXdCLENBQUMsT0FBTyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMifQ== -//# sourceHash=08e5cf7de311055af5fd2db0ef5552ad9260027c7fee1ad219861ab49c74afd9 diff --git a/.api-contract/build-loader/test/contracts/util.js b/.api-contract/build-loader/test/contracts/util.js deleted file mode 100644 index 97264dd3..00000000 --- a/.api-contract/build-loader/test/contracts/util.js +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export function createVersionedExport(versioned) { - const result = {}; - Object.entries(versioned).forEach(([version, contracts]) => - Object.entries(contracts).forEach(([name, contract]) => { - result[`${version}_${name}`] = contract; - }), - ); - return result; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQUV0QyxNQUFNLFVBQVUscUJBQXFCLENBQUUsU0FBa0Q7SUFDdkYsTUFBTSxNQUFNLEdBQTRDLEVBQUUsQ0FBQztJQUUzRCxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxFQUFFLEVBQUUsQ0FDekQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsRUFBUSxFQUFFO1FBQzNELE1BQU0sQ0FBQyxHQUFHLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxHQUFHLFFBQW1DLENBQUM7SUFDckUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUVGLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMifQ== -//# sourceHash=2d56165bfc8508292e9a640db45adaab8186b0721a7e02aa5a47b14ecb5f7509 diff --git a/.api-contract/build-loader/util.js b/.api-contract/build-loader/util.js deleted file mode 100644 index 49a4d706..00000000 --- a/.api-contract/build-loader/util.js +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 -export function applyOnEvent(result, types, fn) { - if (result.isInBlock || result.isFinalized) { - const records = result.filterRecords('contracts', types); - if (records.length) { - return fn(records); - } - } - return undefined; -} -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0VBQW9FO0FBQ3BFLHNDQUFzQztBQU90QyxNQUFNLFVBQVUsWUFBWSxDQUFNLE1BQXlCLEVBQUUsS0FBdUIsRUFBRSxFQUFpQztJQUNySCxJQUFJLE1BQU0sQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzNDLE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXpELElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyJ9 -//# sourceHash=fa4556eb3a36d5b39685b8719237f4aaa0d5300ca9d0fc0a2a0b9f7e56d46efc diff --git a/.api-contract/build-tsc-cjs/Abi/index.js b/.api-contract/build-tsc-cjs/Abi/index.js deleted file mode 100644 index a00e952b..00000000 --- a/.api-contract/build-tsc-cjs/Abi/index.js +++ /dev/null @@ -1,364 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.Abi = void 0; -const types_1 = require('@polkadot/types'); -const types_create_1 = require('@polkadot/types-create'); -const util_1 = require('@polkadot/util'); -const toLatestCompatible_js_1 = require('./toLatestCompatible.js'); -const l = (0, util_1.logger)('Abi'); -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; -function findMessage(list, messageOrId) { - const message = (0, util_1.isNumber)(messageOrId) - ? list[messageOrId] - : (0, util_1.isString)(messageOrId) - ? list.find(({ identifier }) => - [identifier, (0, util_1.stringCamelCase)(identifier)].includes(messageOrId.toString()), - ) - : messageOrId; - return (0, util_1.assertReturn)( - message, - () => `Attempted to call an invalid contract interface, ${(0, util_1.stringify)(messageOrId)}`, - ); -} -function getMetadata(registry, json) { - // this is for V1, V2, V3 - const vx = toLatestCompatible_js_1.enumVersions.find(v => (0, util_1.isObject)(json[v])); - // this was added in V4 - const jsonVersion = json.version; - console.log('parsing metadata'); - console.log(jsonVersion); - console.log(toLatestCompatible_js_1.enumVersions); - if ( - !vx && - jsonVersion && - !toLatestCompatible_js_1.enumVersions.find(v => v === `V${jsonVersion}`) - ) { - throw new Error(`Unable to handle version ${jsonVersion}`); - } - console.log('parsed'); - console.log(vx); - const metadata = registry.createType( - 'ContractMetadata', - vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, - ); - console.log('m'); - const converter = toLatestCompatible_js_1.convertVersions.find(([v]) => metadata[`is${v}`]); - if (!converter) { - throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); - } - console.log('converter'); - const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); - console.log('up'); - return upgradedMetadata; -} -function parseJson(json, chainProperties) { - console.log('parsing json'); - const registry = new types_1.TypeRegistry(); - const info = registry.createType('ContractProjectInfo', json); - const metadata = getMetadata(registry, json); - const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); - // attach the lookup to the registry - now the types are known - registry.setLookup(lookup); - if (chainProperties) { - registry.setChainProperties(chainProperties); - } - // warm-up the actual type, pre-use - lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); - console.log('warmed up'); - return [json, registry, metadata, info]; -} -/** - * @internal - * Determines if the given input value is a ContractTypeSpec - */ -function isTypeSpec(value) { - return ( - !!value && - value instanceof Map && - !(0, util_1.isUndefined)(value.type) && - !(0, util_1.isUndefined)(value.displayName) - ); -} -/** - * @internal - * Determines if the given input value is an Option - */ -function isOption(value) { - return !!value && value instanceof types_1.Option; -} -class Abi { - events; - constructors; - info; - json; - messages; - metadata; - registry; - environment = new Map(); - constructor(abiJson, chainProperties) { - console.log('constructor'); - [this.json, this.registry, this.metadata, this.info] = parseJson( - (0, util_1.isString)(abiJson) ? JSON.parse(abiJson) : abiJson, - chainProperties, - ); - console.log('parsed json'); - this.constructors = this.metadata.spec.constructors.map((spec, index) => - this.__internal__createMessage(spec, index, { - isConstructor: true, - isDefault: spec.default.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created constructors'); - this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); - console.log('created events'); - this.messages = this.metadata.spec.messages.map((spec, index) => - this.__internal__createMessage(spec, index, { - isDefault: spec.default.isTrue, - isMutating: spec.mutates.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created messages'); - // NOTE See the rationale for having Option<...> values in the actual - // ContractEnvironmentV4 structure definition in interfaces/contractsAbi - // (Due to conversions, the fields may not exist) - for (const [key, opt] of this.metadata.spec.environment.entries()) { - if (isOption(opt)) { - if (opt.isSome) { - const value = opt.unwrap(); - if ((0, util_1.isBn)(value)) { - this.environment.set(key, value); - } else if (isTypeSpec(value)) { - this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); - } else { - throw new Error( - `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, - ); - } - } - } else { - throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); - } - } - console.log('created environment'); - } - /** - * Warning: Unstable API, bound to change - */ - decodeEvent(record) { - switch (this.metadata.version.toString()) { - // earlier version are hoisted to v4 - case '4': - return this.__internal__decodeEventV4(record); - // Latest - default: - return this.__internal__decodeEventV5(record); - } - } - __internal__decodeEventV5 = record => { - // Find event by first topic, which potentially is the signature_topic - const signatureTopic = record.topics[0]; - const data = record.event.data[1]; - if (signatureTopic) { - const event = this.events.find( - e => - e.signatureTopic !== undefined && - e.signatureTopic !== null && - e.signatureTopic === signatureTopic.toHex(), - ); - // Early return if event found by signature topic - if (event) { - return event.fromU8a(data); - } - } - // If no event returned yet, it might be anonymous - const amountOfTopics = record.topics.length; - const potentialEvents = this.events.filter(e => { - // event can't have a signature topic - if (e.signatureTopic !== null && e.signatureTopic !== undefined) { - return false; - } - // event should have same amount of indexed fields as emitted topics - const amountIndexed = e.args.filter(a => a.indexed).length; - if (amountIndexed !== amountOfTopics) { - return false; - } - // If all conditions met, it's a potential event - return true; - }); - if (potentialEvents.length === 1) { - return potentialEvents[0].fromU8a(data); - } - throw new Error('Unable to determine event'); - }; - __internal__decodeEventV4 = record => { - const data = record.event.data[1]; - const index = data[0]; - const event = this.events[index]; - if (!event) { - throw new Error(`Unable to find event with index ${index}`); - } - return event.fromU8a(data.subarray(1)); - }; - /** - * Warning: Unstable API, bound to change - */ - decodeConstructor(data) { - return this.__internal__decodeMessage('message', this.constructors, data); - } - /** - * Warning: Unstable API, bound to change - */ - decodeMessage(data) { - return this.__internal__decodeMessage('message', this.messages, data); - } - findConstructor(constructorOrId) { - return findMessage(this.constructors, constructorOrId); - } - findMessage(messageOrId) { - return findMessage(this.messages, messageOrId); - } - __internal__createArgs = (args, spec) => { - return args.map(({ label, type }, index) => { - try { - if (!(0, util_1.isObject)(type)) { - throw new Error('Invalid type definition found'); - } - const displayName = type.displayName.length - ? type.displayName[type.displayName.length - 1].toString() - : undefined; - const camelName = (0, util_1.stringCamelCase)(label); - if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { - return { - name: camelName, - type: { - info: types_create_1.TypeDefInfo.Plain, - type: displayName, - }, - }; - } - const typeDef = this.registry.lookup.getTypeDef(type.type); - return { - name: camelName, - type: - displayName && !typeDef.type.startsWith(displayName) - ? { displayName, ...typeDef } - : typeDef, - }; - } catch (error) { - l.error(`Error expanding argument ${index} in ${(0, util_1.stringify)(spec)}`); - throw error; - } - }); - }; - __internal__createMessageParams = (args, spec) => { - return this.__internal__createArgs(args, spec); - }; - __internal__createEventParams = (args, spec) => { - const params = this.__internal__createArgs(args, spec); - return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); - }; - __internal__createEvent = index => { - // TODO TypeScript would narrow this type to the correct version, - // but version is `Text` so I need to call `toString()` here, - // which breaks the type inference. - switch (this.metadata.version.toString()) { - case '4': - return this.__internal__createEventV4(this.metadata.spec.events[index], index); - default: - return this.__internal__createEventV5(this.metadata.spec.events[index], index); - } - }; - __internal__createEventV5 = (spec, index) => { - const args = this.__internal__createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - event, - }), - identifier: [spec.module_path, spec.label].join('::'), - index, - signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, - }; - return event; - }; - __internal__createEventV4 = (spec, index) => { - const args = this.__internal__createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - event, - }), - identifier: spec.label.toString(), - index, - }; - return event; - }; - __internal__createMessage = (spec, index, add = {}) => { - const args = this.__internal__createMessageParams(spec.args, spec); - const identifier = spec.label.toString(); - const message = { - ...add, - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - message, - }), - identifier, - index, - isDefault: spec.default.isTrue, - method: (0, util_1.stringCamelCase)(identifier), - path: identifier.split('::').map(s => (0, util_1.stringCamelCase)(s)), - selector: spec.selector, - toU8a: params => this.__internal__encodeMessageArgs(spec, args, params), - }; - return message; - }; - __internal__decodeArgs = (args, data) => { - // for decoding we expect the input to be just the arg data, no selectors - // no length added (this allows use with events as well) - let offset = 0; - return args.map(({ type: { lookupName, type } }) => { - const value = this.registry.createType(lookupName || type, data.subarray(offset)); - offset += value.encodedLength; - return value; - }); - }; - __internal__decodeMessage = (type, list, data) => { - const [, trimmed] = (0, util_1.compactStripLength)(data); - const selector = trimmed.subarray(0, 4); - const message = list.find(m => m.selector.eq(selector)); - if (!message) { - throw new Error(`Unable to find ${type} with selector ${(0, util_1.u8aToHex)(selector)}`); - } - return message.fromU8a(trimmed.subarray(4)); - }; - __internal__encodeMessageArgs = ({ label, selector }, args, data) => { - if (data.length !== args.length) { - throw new Error( - `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, - ); - } - return (0, util_1.compactAddLength)( - (0, util_1.u8aConcat)( - this.registry.createType('ContractSelector', selector).toU8a(), - ...args.map(({ type: { lookupName, type } }, index) => - this.registry.createType(lookupName || type, data[index]).toU8a(), - ), - ), - ); - }; -} -exports.Abi = Abi; diff --git a/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js b/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js deleted file mode 100644 index 3f6e72ac..00000000 --- a/.api-contract/build-tsc-cjs/Abi/toLatestCompatible.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.convertVersions = - exports.v0ToLatestCompatible = - exports.v1ToLatestCompatible = - exports.v2ToLatestCompatible = - exports.v3ToLatestCompatible = - exports.enumVersions = - void 0; -exports.v6ToLatestCompatible = v6ToLatestCompatible; -exports.v5ToLatestCompatible = v5ToLatestCompatible; -exports.v4ToLatestCompatible = v4ToLatestCompatible; -const toV1_js_1 = require('./toV1.js'); -const toV2_js_1 = require('./toV2.js'); -const toV3_js_1 = require('./toV3.js'); -const toV4_js_1 = require('./toV4.js'); -exports.enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; -function createConverter(next, step) { - return (registry, input) => next(registry, step(registry, input)); -} -function v6ToLatestCompatible(_registry, v6) { - return v6; -} -function v5ToLatestCompatible(_registry, v5) { - return v5; -} -function v4ToLatestCompatible(_registry, v4) { - return v4; -} -exports.v3ToLatestCompatible = createConverter(v4ToLatestCompatible, toV4_js_1.v3ToV4); -exports.v2ToLatestCompatible = createConverter(exports.v3ToLatestCompatible, toV3_js_1.v2ToV3); -exports.v1ToLatestCompatible = createConverter(exports.v2ToLatestCompatible, toV2_js_1.v1ToV2); -exports.v0ToLatestCompatible = createConverter(exports.v1ToLatestCompatible, toV1_js_1.v0ToV1); -exports.convertVersions = [ - ['V6', v6ToLatestCompatible], - ['V5', v5ToLatestCompatible], - ['V4', v4ToLatestCompatible], - ['V3', exports.v3ToLatestCompatible], - ['V2', exports.v2ToLatestCompatible], - ['V1', exports.v1ToLatestCompatible], - ['V0', exports.v0ToLatestCompatible], -]; diff --git a/.api-contract/build-tsc-cjs/Abi/toV1.js b/.api-contract/build-tsc-cjs/Abi/toV1.js deleted file mode 100644 index 3d0f5ec1..00000000 --- a/.api-contract/build-tsc-cjs/Abi/toV1.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.v0ToV1 = v0ToV1; -const types_1 = require('@polkadot/types'); -const util_1 = require('@polkadot/util'); -function v0ToV1Names(all) { - return all.map(e => - (0, util_1.objectSpread)({}, e, { - name: Array.isArray(e.name) ? e.name : [e.name], - }), - ); -} -function v0ToV1(registry, v0) { - if (!v0.metadataVersion.length) { - throw new Error('Invalid format for V0 (detected) contract metadata'); - } - return registry.createType( - 'ContractMetadataV1', - (0, util_1.objectSpread)({}, v0, { - spec: (0, util_1.objectSpread)({}, v0.spec, { - constructors: v0ToV1Names(v0.spec.constructors), - messages: v0ToV1Names(v0.spec.messages), - }), - types: (0, types_1.convertSiV0toV1)(registry, v0.types), - }), - ); -} diff --git a/.api-contract/build-tsc-cjs/Abi/toV2.js b/.api-contract/build-tsc-cjs/Abi/toV2.js deleted file mode 100644 index f1457e9d..00000000 --- a/.api-contract/build-tsc-cjs/Abi/toV2.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.v1ToV2 = v1ToV2; -const util_1 = require('@polkadot/util'); -const ARG_TYPES = { - ContractConstructorSpec: 'ContractMessageParamSpecV2', - ContractEventSpec: 'ContractEventParamSpecV2', - ContractMessageSpec: 'ContractMessageParamSpecV2', -}; -function v1ToV2Label(entry) { - return (0, util_1.objectSpread)({}, entry, { - label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, - }); -} -function v1ToV2Labels(registry, outType, all) { - return all.map(e => - registry.createType( - `${outType}V2`, - (0, util_1.objectSpread)(v1ToV2Label(e), { - args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), - }), - ), - ); -} -function v1ToV2(registry, v1) { - return registry.createType( - 'ContractMetadataV2', - (0, util_1.objectSpread)({}, v1, { - spec: (0, util_1.objectSpread)({}, v1.spec, { - constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), - events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), - messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), - }), - }), - ); -} diff --git a/.api-contract/build-tsc-cjs/Abi/toV3.js b/.api-contract/build-tsc-cjs/Abi/toV3.js deleted file mode 100644 index dfb56428..00000000 --- a/.api-contract/build-tsc-cjs/Abi/toV3.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.v2ToV3 = v2ToV3; -const util_1 = require('@polkadot/util'); -function v2ToV3(registry, v2) { - return registry.createType( - 'ContractMetadataV3', - (0, util_1.objectSpread)({}, v2, { - spec: (0, util_1.objectSpread)({}, v2.spec, { - constructors: v2.spec.constructors.map(c => - // V3 introduces the payable flag on constructors, for - registry.createType('ContractConstructorSpecV4', (0, util_1.objectSpread)({}, c)), - ), - messages: v3.spec.messages.map(m => - registry.createType('ContractMessageSpecV3', (0, util_1.objectSpread)({}, m)), - ), - }), - version: registry.createType('Text', '4'), - }), - ); -} diff --git a/.api-contract/build-tsc-cjs/augment.js b/.api-contract/build-tsc-cjs/augment.js deleted file mode 100644 index 6464d66c..00000000 --- a/.api-contract/build-tsc-cjs/augment.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -require('@polkadot/api-augment'); diff --git a/.api-contract/build-tsc-cjs/base/Base.js b/.api-contract/build-tsc-cjs/base/Base.js deleted file mode 100644 index a0ab4683..00000000 --- a/.api-contract/build-tsc-cjs/base/Base.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.Base = void 0; -const util_1 = require('@polkadot/util'); -const index_js_1 = require('../Abi/index.js'); -class Base { - abi; - api; - _decorateMethod; - _isWeightV1; - constructor(api, abi, decorateMethod) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.contracts || - !(0, util_1.isFunction)(api.tx.contracts.instantiateWithCode) || - api.tx.contracts.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.contractsApi || !(0, util_1.isFunction)(api.call.contractsApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', - ); - } - this.abi = - abi instanceof index_js_1.Abi - ? abi - : new index_js_1.Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - get registry() { - return this.api.registry; - } -} -exports.Base = Base; diff --git a/.api-contract/build-tsc-cjs/base/BaseRevive.js b/.api-contract/build-tsc-cjs/base/BaseRevive.js deleted file mode 100644 index a968a0ba..00000000 --- a/.api-contract/build-tsc-cjs/base/BaseRevive.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.BaseRevive = void 0; -const util_1 = require('@polkadot/util'); -const index_js_1 = require('../Abi/index.js'); -class BaseRevive { - abi; - api; - _decorateMethod; - _isWeightV1; - constructor(api, abi, decorateMethod) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.revive || - !(0, util_1.isFunction)(api.tx.revive.instantiateWithCode) || - api.tx.revive.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.reviveApi || !(0, util_1.isFunction)(api.call.reviveApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', - ); - } - this.abi = - abi instanceof index_js_1.Abi - ? abi - : new index_js_1.Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - get registry() { - return this.api.registry; - } -} -exports.BaseRevive = BaseRevive; diff --git a/.api-contract/build-tsc-cjs/base/Blueprint.js b/.api-contract/build-tsc-cjs/base/Blueprint.js deleted file mode 100644 index 68226399..00000000 --- a/.api-contract/build-tsc-cjs/base/Blueprint.js +++ /dev/null @@ -1,84 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.Blueprint = exports.BlueprintSubmittableResult = void 0; -exports.extendBlueprint = extendBlueprint; -const api_1 = require('@polkadot/api'); -const util_1 = require('@polkadot/util'); -const util_js_1 = require('../util.js'); -const Base_js_1 = require('./Base.js'); -const Contract_js_1 = require('./Contract.js'); -const util_js_2 = require('./util.js'); -class BlueprintSubmittableResult extends api_1.SubmittableResult { - contract; - constructor(result, contract) { - super(result); - this.contract = contract; - } -} -exports.BlueprintSubmittableResult = BlueprintSubmittableResult; -class Blueprint extends Base_js_1.Base { - /** - * @description The on-chain code hash for this blueprint - */ - codeHash; - __internal__tx = {}; - constructor(api, abi, codeHash, decorateMethod) { - super(api, abi, decorateMethod); - this.codeHash = this.registry.createType('Hash', codeHash); - this.abi.constructors.forEach(c => { - if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = (0, util_js_2.createBluePrintTx)(c, (o, p) => - this.__internal__deploy(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__deploy = ( - constructorOrId, - { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_2.convertWeight)(gasLimit).v1Weight - : (0, util_js_2.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - (0, util_js_2.encodeSalt)(salt), - ) - .withResultTransform( - result => - new BlueprintSubmittableResult( - result, - (0, util_js_1.applyOnEvent)( - result, - ['Instantiated'], - ([record]) => - new Contract_js_1.Contract( - this.api, - this.abi, - record.event.data[1], - this._decorateMethod, - ), - ), - ), - ); - }; -} -exports.Blueprint = Blueprint; -function extendBlueprint(type, decorateMethod) { - return class extends Blueprint { - static __BlueprintType = type; - constructor(api, abi, codeHash) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-cjs/base/BlueprintRevive.js b/.api-contract/build-tsc-cjs/base/BlueprintRevive.js deleted file mode 100644 index f30dae62..00000000 --- a/.api-contract/build-tsc-cjs/base/BlueprintRevive.js +++ /dev/null @@ -1,75 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.BlueprintRevive = void 0; -exports.extendBlueprint = extendBlueprint; -const util_1 = require('@polkadot/util'); -const BaseRevive_js_1 = require('./BaseRevive.js'); -const Blueprint_js_1 = require('./Blueprint.js'); -const Contract_js_1 = require('./Contract.js'); -const util_js_1 = require('./util.js'); -class BlueprintRevive extends BaseRevive_js_1.BaseRevive { - /** - * @description The on-chain code hash for this blueprint - */ - codeHash; - __internal__tx = {}; - constructor(api, abi, codeHash, decorateMethod) { - super(api, abi, decorateMethod); - this.codeHash = this.registry.createType('Hash', codeHash); - this.abi.constructors.forEach(c => { - if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = (0, util_js_1.createBluePrintTx)(c, (o, p) => - this.__internal__deploy(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__deploy = ( - constructorOrId, - { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_1.convertWeight)(gasLimit).v1Weight - : (0, util_js_1.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - (0, util_js_1.encodeSalt)(salt), - ) - .withResultTransform( - result => - new Blueprint_js_1.BlueprintSubmittableResult( - result, - (() => { - if (result.status.isInBlock || result.status.isFinalized) { - return new Contract_js_1.Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ); - } - return undefined; - })(), - ), - ); - }; -} -exports.BlueprintRevive = BlueprintRevive; -function extendBlueprint(type, decorateMethod) { - return class extends BlueprintRevive { - static __BlueprintType = type; - constructor(api, abi, codeHash) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-cjs/base/Code.js b/.api-contract/build-tsc-cjs/base/Code.js deleted file mode 100644 index eeeff6d2..00000000 --- a/.api-contract/build-tsc-cjs/base/Code.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.Code = exports.CodeSubmittableResult = void 0; -exports.extendCode = extendCode; -const api_1 = require('@polkadot/api'); -const util_1 = require('@polkadot/util'); -const util_js_1 = require('../util.js'); -const Base_js_1 = require('./Base.js'); -const Blueprint_js_1 = require('./Blueprint.js'); -const Contract_js_1 = require('./Contract.js'); -const util_js_2 = require('./util.js'); -class CodeSubmittableResult extends api_1.SubmittableResult { - blueprint; - contract; - constructor(result, blueprint, contract) { - super(result); - this.blueprint = blueprint; - this.contract = contract; - } -} -exports.CodeSubmittableResult = CodeSubmittableResult; -function isValidCode(code) { - return (0, util_1.isWasm)(code) || (0, util_1.isRiscV)(code); -} -class Code extends Base_js_1.Base { - code; - __internal__tx = {}; - constructor(api, abi, wasm, decorateMethod) { - super(api, abi, decorateMethod); - this.code = isValidCode(this.abi.info.source.wasm) - ? this.abi.info.source.wasm - : (0, util_1.u8aToU8a)(wasm); - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - this.abi.constructors.forEach(c => { - if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = (0, util_js_2.createBluePrintTx)(c, (o, p) => - this.__internal__instantiate(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__instantiate = ( - constructorOrId, - { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_2.convertWeight)(gasLimit).v1Weight - : (0, util_js_2.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - (0, util_1.compactAddLength)(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - (0, util_js_2.encodeSalt)(salt), - ) - .withResultTransform( - result => - new CodeSubmittableResult( - result, - ...((0, util_js_1.applyOnEvent)(result, ['CodeStored', 'Instantiated'], records => - records.reduce( - ([blueprint, contract], { event }) => - this.api.events.contracts.Instantiated.is(event) - ? [ - blueprint, - new Contract_js_1.Contract( - this.api, - this.abi, - event.data[1], - this._decorateMethod, - ), - ] - : this.api.events.contracts.CodeStored.is(event) - ? [ - new Blueprint_js_1.Blueprint( - this.api, - this.abi, - event.data[0], - this._decorateMethod, - ), - contract, - ] - : [blueprint, contract], - [undefined, undefined], - ), - ) || [undefined, undefined]), - ), - ); - }; -} -exports.Code = Code; -function extendCode(type, decorateMethod) { - return class extends Code { - static __CodeType = type; - constructor(api, abi, wasm) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-cjs/base/CodeRevive.js b/.api-contract/build-tsc-cjs/base/CodeRevive.js deleted file mode 100644 index cd74edbb..00000000 --- a/.api-contract/build-tsc-cjs/base/CodeRevive.js +++ /dev/null @@ -1,92 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.CodeRevive = exports.CodeReviveSubmittableResult = void 0; -exports.extendCode = extendCode; -const api_1 = require('@polkadot/api'); -const util_1 = require('@polkadot/util'); -const BaseRevive_js_1 = require('./BaseRevive.js'); -const BlueprintRevive_js_1 = require('./BlueprintRevive.js'); -const Contract_js_1 = require('./Contract.js'); -const util_js_1 = require('./util.js'); -class CodeReviveSubmittableResult extends api_1.SubmittableResult { - blueprint; - contract; - constructor(result, blueprint, contract) { - super(result); - this.blueprint = blueprint; - this.contract = contract; - } -} -exports.CodeReviveSubmittableResult = CodeReviveSubmittableResult; -function isValidCode(code) { - return (0, util_1.isRiscV)(code); -} -class CodeRevive extends BaseRevive_js_1.BaseRevive { - code; - __internal__tx = {}; - constructor(api, abi, wasm, decorateMethod) { - super(api, abi, decorateMethod); - this.code = isValidCode(this.abi.info.source.wasm) - ? this.abi.info.source.wasm - : (0, util_1.u8aToU8a)(wasm); - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - this.abi.constructors.forEach(c => { - if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = (0, util_js_1.createBluePrintTx)(c, (o, p) => - this.__internal__instantiate(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__instantiate = ( - constructorOrId, - { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_1.convertWeight)(gasLimit).v1Weight - : (0, util_js_1.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - (0, util_1.compactAddLength)(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - (0, util_js_1.encodeSalt)(salt), - ) - .withResultTransform( - result => - new CodeReviveSubmittableResult( - result, - new BlueprintRevive_js_1.BlueprintRevive( - this.api, - this.abi, - this.abi.info.source.wasmHash, - this._decorateMethod, - ), - new Contract_js_1.Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ), - ), - ); - }; -} -exports.CodeRevive = CodeRevive; -function extendCode(type, decorateMethod) { - return class extends CodeRevive { - static __CodeType = type; - constructor(api, abi, wasm) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-cjs/base/Contract.js b/.api-contract/build-tsc-cjs/base/Contract.js deleted file mode 100644 index 2845941a..00000000 --- a/.api-contract/build-tsc-cjs/base/Contract.js +++ /dev/null @@ -1,164 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.Contract = exports.ContractSubmittableResult = void 0; -exports.extendContract = extendContract; -const rxjs_1 = require('rxjs'); -const api_1 = require('@polkadot/api'); -const util_1 = require('@polkadot/util'); -const util_js_1 = require('../util.js'); -const Base_js_1 = require('./Base.js'); -const util_js_2 = require('./util.js'); -const MAX_CALL_GAS = new util_1.BN(5_000_000_000_000).isub(util_1.BN_ONE); -const l = (0, util_1.logger)('Contract'); -function createQuery(meta, fn) { - return (0, util_js_2.withMeta)(meta, (origin, options, ...params) => fn(origin, options, params)); -} -function createTx(meta, fn) { - return (0, util_js_2.withMeta)(meta, (options, ...params) => fn(options, params)); -} -class ContractSubmittableResult extends api_1.SubmittableResult { - contractEvents; - constructor(result, contractEvents) { - super(result); - this.contractEvents = contractEvents; - } -} -exports.ContractSubmittableResult = ContractSubmittableResult; -class Contract extends Base_js_1.Base { - /** - * @description The on-chain address for this contract - */ - address; - __internal__query = {}; - __internal__tx = {}; - constructor(api, abi, address, decorateMethod) { - super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId', address); - this.abi.messages.forEach(m => { - if ((0, util_1.isUndefined)(this.__internal__tx[m.method])) { - this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); - } - if ((0, util_1.isUndefined)(this.__internal__query[m.method])) { - this.__internal__query[m.method] = createQuery(m, (f, o, p) => - this.__internal__read(m, o, p).send(f), - ); - } - }); - } - get query() { - return this.__internal__query; - } - get tx() { - return this.__internal__tx; - } - __internal__getGas = (_gasLimit, isCall = false) => { - const weight = (0, util_js_2.convertWeight)(_gasLimit); - if (weight.v1Weight.gt(util_1.BN_ZERO)) { - return weight; - } - return (0, util_js_2.convertWeight)( - isCall - ? MAX_CALL_GAS - : (0, util_js_2.convertWeight)( - this.api.consts.system.blockWeights - ? this.api.consts.system.blockWeights.maxBlock - : this.api.consts.system['maximumBlockWeight'], - ) - .v1Weight.muln(64) - .div(util_1.BN_HUNDRED), - ); - }; - __internal__exec = ( - messageOrId, - { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_2.convertWeight)(gasLimit).v1Weight - : (0, util_js_2.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - result => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - (0, util_js_1.applyOnEvent)(result, ['ContractEmitted', 'ContractExecution'], records => - records - .map(record => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${error.message}`); - return null; - } - }) - .filter(decoded => !!decoded), - ), - ), - ); - }; - __internal__read = ( - messageOrId, - { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - const message = this.abi.findMessage(messageOrId); - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod(origin => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.__internal__getGas(gasLimit, true).v1Weight - : this.__internal__getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - (0, rxjs_1.map)( - ({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !(0, util_js_2.convertWeight)(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - }), - ), - ), - ), - }; - }; -} -exports.Contract = Contract; -function extendContract(type, decorateMethod) { - return class extends Contract { - static __ContractType = type; - constructor(api, abi, address) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-cjs/base/ContractRevive.js b/.api-contract/build-tsc-cjs/base/ContractRevive.js deleted file mode 100644 index 1523692a..00000000 --- a/.api-contract/build-tsc-cjs/base/ContractRevive.js +++ /dev/null @@ -1,164 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.ContractRevive = exports.ContractSubmittableResult = void 0; -exports.extendContract = extendContract; -const rxjs_1 = require('rxjs'); -const api_1 = require('@polkadot/api'); -const util_1 = require('@polkadot/util'); -const util_js_1 = require('../util.js'); -const BaseRevive_js_1 = require('./BaseRevive.js'); -const util_js_2 = require('./util.js'); -const MAX_CALL_GAS = new util_1.BN(5_000_000_000_000).isub(util_1.BN_ONE); -const l = (0, util_1.logger)('Contract'); -function createQuery(meta, fn) { - return (0, util_js_2.withMeta)(meta, (origin, options, ...params) => fn(origin, options, params)); -} -function createTx(meta, fn) { - return (0, util_js_2.withMeta)(meta, (options, ...params) => fn(options, params)); -} -class ContractSubmittableResult extends api_1.SubmittableResult { - contractEvents; - constructor(result, contractEvents) { - super(result); - this.contractEvents = contractEvents; - } -} -exports.ContractSubmittableResult = ContractSubmittableResult; -class ContractRevive extends BaseRevive_js_1.BaseRevive { - /** - * @description The on-chain address for this contract - */ - address; - __internal__query = {}; - __internal__tx = {}; - constructor(api, abi, address, decorateMethod) { - super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); - this.abi.messages.forEach(m => { - if ((0, util_1.isUndefined)(this.__internal__tx[m.method])) { - this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); - } - if ((0, util_1.isUndefined)(this.__internal__query[m.method])) { - this.__internal__query[m.method] = createQuery(m, (f, o, p) => - this.__internal__read(m, o, p).send(f), - ); - } - }); - } - get query() { - return this.__internal__query; - } - get tx() { - return this.__internal__tx; - } - __internal__getGas = (_gasLimit, isCall = false) => { - const weight = (0, util_js_2.convertWeight)(_gasLimit); - if (weight.v1Weight.gt(util_1.BN_ZERO)) { - return weight; - } - return (0, util_js_2.convertWeight)( - isCall - ? MAX_CALL_GAS - : (0, util_js_2.convertWeight)( - this.api.consts.system.blockWeights - ? this.api.consts.system.blockWeights.maxBlock - : this.api.consts.system['maximumBlockWeight'], - ) - .v1Weight.muln(64) - .div(util_1.BN_HUNDRED), - ); - }; - __internal__exec = ( - messageOrId, - { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_2.convertWeight)(gasLimit).v1Weight - : (0, util_js_2.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - result => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - (0, util_js_1.applyOnEvent)(result, ['ContractEmitted', 'ContractExecution'], records => - records - .map(record => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${error.message}`); - return null; - } - }) - .filter(decoded => !!decoded), - ), - ), - ); - }; - __internal__read = ( - messageOrId, - { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - const message = this.abi.findMessage(messageOrId); - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod(origin => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.__internal__getGas(gasLimit, true).v1Weight - : this.__internal__getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - (0, rxjs_1.map)( - ({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !(0, util_js_2.convertWeight)(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - }), - ), - ), - ), - }; - }; -} -exports.ContractRevive = ContractRevive; -function extendContract(type, decorateMethod) { - return class extends ContractRevive { - static __ContractType = type; - constructor(api, abi, address) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-cjs/base/index.js b/.api-contract/build-tsc-cjs/base/index.js deleted file mode 100644 index 98972576..00000000 --- a/.api-contract/build-tsc-cjs/base/index.js +++ /dev/null @@ -1,86 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.ContractRevive = - exports.extendContract = - exports.Contract = - exports.CodeRevive = - exports.extendCode = - exports.CodeSubmittableResult = - exports.Code = - exports.BlueprintRevive = - exports.extendBlueprint = - exports.BlueprintSubmittableResult = - exports.Blueprint = - void 0; -var Blueprint_js_1 = require('./Blueprint.js'); -Object.defineProperty(exports, 'Blueprint', { - enumerable: true, - get: function () { - return Blueprint_js_1.Blueprint; - }, -}); -Object.defineProperty(exports, 'BlueprintSubmittableResult', { - enumerable: true, - get: function () { - return Blueprint_js_1.BlueprintSubmittableResult; - }, -}); -Object.defineProperty(exports, 'extendBlueprint', { - enumerable: true, - get: function () { - return Blueprint_js_1.extendBlueprint; - }, -}); -var BlueprintRevive_js_1 = require('./BlueprintRevive.js'); -Object.defineProperty(exports, 'BlueprintRevive', { - enumerable: true, - get: function () { - return BlueprintRevive_js_1.BlueprintRevive; - }, -}); -var Code_js_1 = require('./Code.js'); -Object.defineProperty(exports, 'Code', { - enumerable: true, - get: function () { - return Code_js_1.Code; - }, -}); -Object.defineProperty(exports, 'CodeSubmittableResult', { - enumerable: true, - get: function () { - return Code_js_1.CodeSubmittableResult; - }, -}); -Object.defineProperty(exports, 'extendCode', { - enumerable: true, - get: function () { - return Code_js_1.extendCode; - }, -}); -var CodeRevive_js_1 = require('./CodeRevive.js'); -Object.defineProperty(exports, 'CodeRevive', { - enumerable: true, - get: function () { - return CodeRevive_js_1.CodeRevive; - }, -}); -var Contract_js_1 = require('./Contract.js'); -Object.defineProperty(exports, 'Contract', { - enumerable: true, - get: function () { - return Contract_js_1.Contract; - }, -}); -Object.defineProperty(exports, 'extendContract', { - enumerable: true, - get: function () { - return Contract_js_1.extendContract; - }, -}); -var ContractRevive_js_1 = require('./ContractRevive.js'); -Object.defineProperty(exports, 'ContractRevive', { - enumerable: true, - get: function () { - return ContractRevive_js_1.ContractRevive; - }, -}); diff --git a/.api-contract/build-tsc-cjs/base/mock.js b/.api-contract/build-tsc-cjs/base/mock.js deleted file mode 100644 index 59ffb46e..00000000 --- a/.api-contract/build-tsc-cjs/base/mock.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.mockApi = void 0; -const types_1 = require('@polkadot/types'); -const registry = new types_1.TypeRegistry(); -const instantiateWithCode = () => { - throw new Error('mock'); -}; -instantiateWithCode.meta = { args: new Array(6) }; -exports.mockApi = { - call: { - contractsApi: { - call: () => { - throw new Error('mock'); - }, - }, - }, - isConnected: true, - registry, - tx: { - contracts: { - instantiateWithCode, - }, - }, -}; diff --git a/.api-contract/build-tsc-cjs/base/types.js b/.api-contract/build-tsc-cjs/base/types.js deleted file mode 100644 index db8b17d5..00000000 --- a/.api-contract/build-tsc-cjs/base/types.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build-tsc-cjs/base/util.js b/.api-contract/build-tsc-cjs/base/util.js deleted file mode 100644 index 1a1a14f5..00000000 --- a/.api-contract/build-tsc-cjs/base/util.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.EMPTY_SALT = void 0; -exports.withMeta = withMeta; -exports.createBluePrintTx = createBluePrintTx; -exports.createBluePrintWithId = createBluePrintWithId; -exports.encodeSalt = encodeSalt; -exports.convertWeight = convertWeight; -exports.isWeightV2 = isWeightV2; -const types_1 = require('@polkadot/types'); -const util_1 = require('@polkadot/util'); -const util_crypto_1 = require('@polkadot/util-crypto'); -exports.EMPTY_SALT = new Uint8Array(); -function withMeta(meta, creator) { - creator.meta = meta; - return creator; -} -function createBluePrintTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); -} -function createBluePrintWithId(fn) { - return (constructorOrId, options, ...params) => fn(constructorOrId, options, params); -} -function encodeSalt(salt = (0, util_crypto_1.randomAsU8a)()) { - return salt instanceof types_1.Bytes - ? salt - : salt?.length - ? (0, util_1.compactAddLength)((0, util_1.u8aToU8a)(salt)) - : exports.EMPTY_SALT; -} -function convertWeight(weight) { - const [refTime, proofSize] = isWeightV2(weight) - ? [weight.refTime.toBn(), weight.proofSize.toBn()] - : [(0, util_1.bnToBn)(weight), undefined]; - return { - v1Weight: refTime, - v2Weight: { proofSize, refTime }, - }; -} -function isWeightV2(weight) { - return !!weight.proofSize; -} diff --git a/.api-contract/build-tsc-cjs/bundle.js b/.api-contract/build-tsc-cjs/bundle.js deleted file mode 100644 index 0f1f8f06..00000000 --- a/.api-contract/build-tsc-cjs/bundle.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.packageInfo = exports.Abi = void 0; -const tslib_1 = require('tslib'); -var index_js_1 = require('./Abi/index.js'); -Object.defineProperty(exports, 'Abi', { - enumerable: true, - get: function () { - return index_js_1.Abi; - }, -}); -var packageInfo_js_1 = require('./packageInfo.js'); -Object.defineProperty(exports, 'packageInfo', { - enumerable: true, - get: function () { - return packageInfo_js_1.packageInfo; - }, -}); -tslib_1.__exportStar(require('./promise/index.js'), exports); -tslib_1.__exportStar(require('./rx/index.js'), exports); diff --git a/.api-contract/build-tsc-cjs/index.js b/.api-contract/build-tsc-cjs/index.js deleted file mode 100644 index 509038d7..00000000 --- a/.api-contract/build-tsc-cjs/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -const tslib_1 = require('tslib'); -require('./packageDetect.js'); -tslib_1.__exportStar(require('./bundle.js'), exports); diff --git a/.api-contract/build-tsc-cjs/packageDetect.js b/.api-contract/build-tsc-cjs/packageDetect.js deleted file mode 100644 index a9aed994..00000000 --- a/.api-contract/build-tsc-cjs/packageDetect.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -const packageInfo_1 = require('@polkadot/api/packageInfo'); -const packageInfo_2 = require('@polkadot/types/packageInfo'); -const util_1 = require('@polkadot/util'); -const packageInfo_js_1 = require('./packageInfo.js'); -(0, util_1.detectPackage)(packageInfo_js_1.packageInfo, null, [ - packageInfo_1.packageInfo, - packageInfo_2.packageInfo, -]); diff --git a/.api-contract/build-tsc-cjs/packageInfo.js b/.api-contract/build-tsc-cjs/packageInfo.js deleted file mode 100644 index 39a18613..00000000 --- a/.api-contract/build-tsc-cjs/packageInfo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.packageInfo = void 0; -exports.packageInfo = { - name: '@polkadot/api-contract', - path: typeof __dirname === 'string' ? __dirname : 'auto', - type: 'cjs', - version: '15.8.1', -}; diff --git a/.api-contract/build-tsc-cjs/promise/index.js b/.api-contract/build-tsc-cjs/promise/index.js deleted file mode 100644 index 050deffe..00000000 --- a/.api-contract/build-tsc-cjs/promise/index.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.ContractRevivePromise = - exports.CodeRevivePromise = - exports.BlueprintRevivePromise = - exports.ContractPromise = - exports.CodePromise = - exports.BlueprintPromise = - void 0; -const api_1 = require('@polkadot/api'); -const index_js_1 = require('../base/index.js'); -class BlueprintPromise extends index_js_1.Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, api_1.toPromiseMethod); - } -} -exports.BlueprintPromise = BlueprintPromise; -class CodePromise extends index_js_1.Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, api_1.toPromiseMethod); - } -} -exports.CodePromise = CodePromise; -class ContractPromise extends index_js_1.Contract { - constructor(api, abi, address) { - super(api, abi, address, api_1.toPromiseMethod); - } -} -exports.ContractPromise = ContractPromise; -class BlueprintRevivePromise extends index_js_1.BlueprintRevive { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, api_1.toPromiseMethod); - } -} -exports.BlueprintRevivePromise = BlueprintRevivePromise; -class CodeRevivePromise extends index_js_1.CodeRevive { - constructor(api, abi, wasm) { - super(api, abi, wasm, api_1.toPromiseMethod); - } -} -exports.CodeRevivePromise = CodeRevivePromise; -class ContractRevivePromise extends index_js_1.ContractRevive { - constructor(api, abi, address) { - super(api, abi, address, api_1.toPromiseMethod); - } -} -exports.ContractRevivePromise = ContractRevivePromise; diff --git a/.api-contract/build-tsc-cjs/promise/types.js b/.api-contract/build-tsc-cjs/promise/types.js deleted file mode 100644 index db8b17d5..00000000 --- a/.api-contract/build-tsc-cjs/promise/types.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build-tsc-cjs/rx/index.js b/.api-contract/build-tsc-cjs/rx/index.js deleted file mode 100644 index 6846d72a..00000000 --- a/.api-contract/build-tsc-cjs/rx/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.ContractRx = exports.CodeRx = exports.BlueprintRx = void 0; -const api_1 = require('@polkadot/api'); -const index_js_1 = require('../base/index.js'); -class BlueprintRx extends index_js_1.Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, api_1.toRxMethod); - } -} -exports.BlueprintRx = BlueprintRx; -class CodeRx extends index_js_1.Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, api_1.toRxMethod); - } -} -exports.CodeRx = CodeRx; -class ContractRx extends index_js_1.Contract { - constructor(api, abi, address) { - super(api, abi, address, api_1.toRxMethod); - } -} -exports.ContractRx = ContractRx; diff --git a/.api-contract/build-tsc-cjs/rx/types.js b/.api-contract/build-tsc-cjs/rx/types.js deleted file mode 100644 index db8b17d5..00000000 --- a/.api-contract/build-tsc-cjs/rx/types.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build-tsc-cjs/types.js b/.api-contract/build-tsc-cjs/types.js deleted file mode 100644 index db8b17d5..00000000 --- a/.api-contract/build-tsc-cjs/types.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build-tsc-cjs/util.js b/.api-contract/build-tsc-cjs/util.js deleted file mode 100644 index ae77e3ce..00000000 --- a/.api-contract/build-tsc-cjs/util.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.applyOnEvent = applyOnEvent; -function applyOnEvent(result, types, fn) { - if (result.isInBlock || result.isFinalized) { - const records = result.filterRecords('contracts', types); - if (records.length) { - return fn(records); - } - } - return undefined; -} diff --git a/.api-contract/build-tsc-esm/Abi/index.js b/.api-contract/build-tsc-esm/Abi/index.js deleted file mode 100644 index f64654bc..00000000 --- a/.api-contract/build-tsc-esm/Abi/index.js +++ /dev/null @@ -1,367 +0,0 @@ -import { Option, TypeRegistry } from '@polkadot/types'; -import { TypeDefInfo } from '@polkadot/types-create'; -import { - assertReturn, - compactAddLength, - compactStripLength, - isBn, - isNumber, - isObject, - isString, - isUndefined, - logger, - stringCamelCase, - stringify, - u8aConcat, - u8aToHex, -} from '@polkadot/util'; -import { convertVersions, enumVersions } from './toLatestCompatible.js'; -const l = logger('Abi'); -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; -function findMessage(list, messageOrId) { - const message = isNumber(messageOrId) - ? list[messageOrId] - : isString(messageOrId) - ? list.find(({ identifier }) => - [identifier, stringCamelCase(identifier)].includes(messageOrId.toString()), - ) - : messageOrId; - return assertReturn( - message, - () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`, - ); -} -function getMetadata(registry, json) { - // this is for V1, V2, V3 - const vx = enumVersions.find(v => isObject(json[v])); - // this was added in V4 - const jsonVersion = json.version; - console.log('parsing metadata'); - console.log(jsonVersion); - console.log(enumVersions); - if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { - throw new Error(`Unable to handle version ${jsonVersion}`); - } - console.log('parsed'); - console.log(vx); - const metadata = registry.createType( - 'ContractMetadata', - vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, - ); - console.log('m'); - const converter = convertVersions.find(([v]) => metadata[`is${v}`]); - if (!converter) { - throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); - } - console.log('converter'); - const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); - console.log('up'); - return upgradedMetadata; -} -function parseJson(json, chainProperties) { - console.log('parsing json'); - const registry = new TypeRegistry(); - const info = registry.createType('ContractProjectInfo', json); - const metadata = getMetadata(registry, json); - const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); - // attach the lookup to the registry - now the types are known - registry.setLookup(lookup); - if (chainProperties) { - registry.setChainProperties(chainProperties); - } - // warm-up the actual type, pre-use - lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); - console.log('warmed up'); - return [json, registry, metadata, info]; -} -/** - * @internal - * Determines if the given input value is a ContractTypeSpec - */ -function isTypeSpec(value) { - return ( - !!value && value instanceof Map && !isUndefined(value.type) && !isUndefined(value.displayName) - ); -} -/** - * @internal - * Determines if the given input value is an Option - */ -function isOption(value) { - return !!value && value instanceof Option; -} -export class Abi { - events; - constructors; - info; - json; - messages; - metadata; - registry; - environment = new Map(); - constructor(abiJson, chainProperties) { - console.log('constructor'); - [this.json, this.registry, this.metadata, this.info] = parseJson( - isString(abiJson) ? JSON.parse(abiJson) : abiJson, - chainProperties, - ); - console.log('parsed json'); - this.constructors = this.metadata.spec.constructors.map((spec, index) => - this.__internal__createMessage(spec, index, { - isConstructor: true, - isDefault: spec.default.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created constructors'); - this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); - console.log('created events'); - this.messages = this.metadata.spec.messages.map((spec, index) => - this.__internal__createMessage(spec, index, { - isDefault: spec.default.isTrue, - isMutating: spec.mutates.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created messages'); - // NOTE See the rationale for having Option<...> values in the actual - // ContractEnvironmentV4 structure definition in interfaces/contractsAbi - // (Due to conversions, the fields may not exist) - for (const [key, opt] of this.metadata.spec.environment.entries()) { - if (isOption(opt)) { - if (opt.isSome) { - const value = opt.unwrap(); - if (isBn(value)) { - this.environment.set(key, value); - } else if (isTypeSpec(value)) { - this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); - } else { - throw new Error( - `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, - ); - } - } - } else { - throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); - } - } - console.log('created environment'); - } - /** - * Warning: Unstable API, bound to change - */ - decodeEvent(record) { - switch (this.metadata.version.toString()) { - // earlier version are hoisted to v4 - case '4': - return this.__internal__decodeEventV4(record); - // Latest - default: - return this.__internal__decodeEventV5(record); - } - } - __internal__decodeEventV5 = record => { - // Find event by first topic, which potentially is the signature_topic - const signatureTopic = record.topics[0]; - const data = record.event.data[1]; - if (signatureTopic) { - const event = this.events.find( - e => - e.signatureTopic !== undefined && - e.signatureTopic !== null && - e.signatureTopic === signatureTopic.toHex(), - ); - // Early return if event found by signature topic - if (event) { - return event.fromU8a(data); - } - } - // If no event returned yet, it might be anonymous - const amountOfTopics = record.topics.length; - const potentialEvents = this.events.filter(e => { - // event can't have a signature topic - if (e.signatureTopic !== null && e.signatureTopic !== undefined) { - return false; - } - // event should have same amount of indexed fields as emitted topics - const amountIndexed = e.args.filter(a => a.indexed).length; - if (amountIndexed !== amountOfTopics) { - return false; - } - // If all conditions met, it's a potential event - return true; - }); - if (potentialEvents.length === 1) { - return potentialEvents[0].fromU8a(data); - } - throw new Error('Unable to determine event'); - }; - __internal__decodeEventV4 = record => { - const data = record.event.data[1]; - const index = data[0]; - const event = this.events[index]; - if (!event) { - throw new Error(`Unable to find event with index ${index}`); - } - return event.fromU8a(data.subarray(1)); - }; - /** - * Warning: Unstable API, bound to change - */ - decodeConstructor(data) { - return this.__internal__decodeMessage('message', this.constructors, data); - } - /** - * Warning: Unstable API, bound to change - */ - decodeMessage(data) { - return this.__internal__decodeMessage('message', this.messages, data); - } - findConstructor(constructorOrId) { - return findMessage(this.constructors, constructorOrId); - } - findMessage(messageOrId) { - return findMessage(this.messages, messageOrId); - } - __internal__createArgs = (args, spec) => { - return args.map(({ label, type }, index) => { - try { - if (!isObject(type)) { - throw new Error('Invalid type definition found'); - } - const displayName = type.displayName.length - ? type.displayName[type.displayName.length - 1].toString() - : undefined; - const camelName = stringCamelCase(label); - if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { - return { - name: camelName, - type: { - info: TypeDefInfo.Plain, - type: displayName, - }, - }; - } - const typeDef = this.registry.lookup.getTypeDef(type.type); - return { - name: camelName, - type: - displayName && !typeDef.type.startsWith(displayName) - ? { displayName, ...typeDef } - : typeDef, - }; - } catch (error) { - l.error(`Error expanding argument ${index} in ${stringify(spec)}`); - throw error; - } - }); - }; - __internal__createMessageParams = (args, spec) => { - return this.__internal__createArgs(args, spec); - }; - __internal__createEventParams = (args, spec) => { - const params = this.__internal__createArgs(args, spec); - return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); - }; - __internal__createEvent = index => { - // TODO TypeScript would narrow this type to the correct version, - // but version is `Text` so I need to call `toString()` here, - // which breaks the type inference. - switch (this.metadata.version.toString()) { - case '4': - return this.__internal__createEventV4(this.metadata.spec.events[index], index); - default: - return this.__internal__createEventV5(this.metadata.spec.events[index], index); - } - }; - __internal__createEventV5 = (spec, index) => { - const args = this.__internal__createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - event, - }), - identifier: [spec.module_path, spec.label].join('::'), - index, - signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, - }; - return event; - }; - __internal__createEventV4 = (spec, index) => { - const args = this.__internal__createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - event, - }), - identifier: spec.label.toString(), - index, - }; - return event; - }; - __internal__createMessage = (spec, index, add = {}) => { - const args = this.__internal__createMessageParams(spec.args, spec); - const identifier = spec.label.toString(); - const message = { - ...add, - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - message, - }), - identifier, - index, - isDefault: spec.default.isTrue, - method: stringCamelCase(identifier), - path: identifier.split('::').map(s => stringCamelCase(s)), - selector: spec.selector, - toU8a: params => this.__internal__encodeMessageArgs(spec, args, params), - }; - return message; - }; - __internal__decodeArgs = (args, data) => { - // for decoding we expect the input to be just the arg data, no selectors - // no length added (this allows use with events as well) - let offset = 0; - return args.map(({ type: { lookupName, type } }) => { - const value = this.registry.createType(lookupName || type, data.subarray(offset)); - offset += value.encodedLength; - return value; - }); - }; - __internal__decodeMessage = (type, list, data) => { - const [, trimmed] = compactStripLength(data); - const selector = trimmed.subarray(0, 4); - const message = list.find(m => m.selector.eq(selector)); - if (!message) { - throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`); - } - return message.fromU8a(trimmed.subarray(4)); - }; - __internal__encodeMessageArgs = ({ label, selector }, args, data) => { - if (data.length !== args.length) { - throw new Error( - `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, - ); - } - return compactAddLength( - u8aConcat( - this.registry.createType('ContractSelector', selector).toU8a(), - ...args.map(({ type: { lookupName, type } }, index) => - this.registry.createType(lookupName || type, data[index]).toU8a(), - ), - ), - ); - }; -} diff --git a/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js b/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js deleted file mode 100644 index 009dd5e6..00000000 --- a/.api-contract/build-tsc-esm/Abi/toLatestCompatible.js +++ /dev/null @@ -1,30 +0,0 @@ -import { v0ToV1 } from './toV1.js'; -import { v1ToV2 } from './toV2.js'; -import { v2ToV3 } from './toV3.js'; -import { v3ToV4 } from './toV4.js'; -export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; -function createConverter(next, step) { - return (registry, input) => next(registry, step(registry, input)); -} -export function v6ToLatestCompatible(_registry, v6) { - return v6; -} -export function v5ToLatestCompatible(_registry, v5) { - return v5; -} -export function v4ToLatestCompatible(_registry, v4) { - return v4; -} -export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4); -export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3); -export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); -export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); -export const convertVersions = [ - ['V6', v6ToLatestCompatible], - ['V5', v5ToLatestCompatible], - ['V4', v4ToLatestCompatible], - ['V3', v3ToLatestCompatible], - ['V2', v2ToLatestCompatible], - ['V1', v1ToLatestCompatible], - ['V0', v0ToLatestCompatible], -]; diff --git a/.api-contract/build-tsc-esm/Abi/toV1.js b/.api-contract/build-tsc-esm/Abi/toV1.js deleted file mode 100644 index 06c9c5fe..00000000 --- a/.api-contract/build-tsc-esm/Abi/toV1.js +++ /dev/null @@ -1,24 +0,0 @@ -import { convertSiV0toV1 } from '@polkadot/types'; -import { objectSpread } from '@polkadot/util'; -function v0ToV1Names(all) { - return all.map(e => - objectSpread({}, e, { - name: Array.isArray(e.name) ? e.name : [e.name], - }), - ); -} -export function v0ToV1(registry, v0) { - if (!v0.metadataVersion.length) { - throw new Error('Invalid format for V0 (detected) contract metadata'); - } - return registry.createType( - 'ContractMetadataV1', - objectSpread({}, v0, { - spec: objectSpread({}, v0.spec, { - constructors: v0ToV1Names(v0.spec.constructors), - messages: v0ToV1Names(v0.spec.messages), - }), - types: convertSiV0toV1(registry, v0.types), - }), - ); -} diff --git a/.api-contract/build-tsc-esm/Abi/toV2.js b/.api-contract/build-tsc-esm/Abi/toV2.js deleted file mode 100644 index 9214a3bf..00000000 --- a/.api-contract/build-tsc-esm/Abi/toV2.js +++ /dev/null @@ -1,33 +0,0 @@ -import { objectSpread } from '@polkadot/util'; -const ARG_TYPES = { - ContractConstructorSpec: 'ContractMessageParamSpecV2', - ContractEventSpec: 'ContractEventParamSpecV2', - ContractMessageSpec: 'ContractMessageParamSpecV2', -}; -function v1ToV2Label(entry) { - return objectSpread({}, entry, { - label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, - }); -} -function v1ToV2Labels(registry, outType, all) { - return all.map(e => - registry.createType( - `${outType}V2`, - objectSpread(v1ToV2Label(e), { - args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), - }), - ), - ); -} -export function v1ToV2(registry, v1) { - return registry.createType( - 'ContractMetadataV2', - objectSpread({}, v1, { - spec: objectSpread({}, v1.spec, { - constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), - events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), - messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), - }), - }), - ); -} diff --git a/.api-contract/build-tsc-esm/Abi/toV3.js b/.api-contract/build-tsc-esm/Abi/toV3.js deleted file mode 100644 index 212c2297..00000000 --- a/.api-contract/build-tsc-esm/Abi/toV3.js +++ /dev/null @@ -1,14 +0,0 @@ -import { objectSpread } from '@polkadot/util'; -export function v2ToV3(registry, v2) { - return registry.createType( - 'ContractMetadataV3', - objectSpread({}, v2, { - spec: objectSpread({}, v2.spec, { - constructors: v2.spec.constructors.map(c => - // V3 introduces the payable flag on constructors, for - registry.createType('ContractConstructorSpecV4', objectSpread({}, c)), - ), - messages: v3.spec.messages.map(m => - registry.createType('ContractMessageSpecV3', objectSpread({}, m)), - ), - }), - version: registry.createType('Text', '4'), - }), - ); -} diff --git a/.api-contract/build-tsc-esm/augment.js b/.api-contract/build-tsc-esm/augment.js deleted file mode 100644 index 40e6ced0..00000000 --- a/.api-contract/build-tsc-esm/augment.js +++ /dev/null @@ -1 +0,0 @@ -import '@polkadot/api-augment'; diff --git a/.api-contract/build-tsc-esm/base/Base.js b/.api-contract/build-tsc-esm/base/Base.js deleted file mode 100644 index 42b006ed..00000000 --- a/.api-contract/build-tsc-esm/base/Base.js +++ /dev/null @@ -1,34 +0,0 @@ -import { isFunction } from '@polkadot/util'; -import { Abi } from '../Abi/index.js'; -export class Base { - abi; - api; - _decorateMethod; - _isWeightV1; - constructor(api, abi, decorateMethod) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.contracts || - !isFunction(api.tx.contracts.instantiateWithCode) || - api.tx.contracts.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', - ); - } - this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - get registry() { - return this.api.registry; - } -} diff --git a/.api-contract/build-tsc-esm/base/BaseRevive.js b/.api-contract/build-tsc-esm/base/BaseRevive.js deleted file mode 100644 index b8fe0161..00000000 --- a/.api-contract/build-tsc-esm/base/BaseRevive.js +++ /dev/null @@ -1,34 +0,0 @@ -import { isFunction } from '@polkadot/util'; -import { Abi } from '../Abi/index.js'; -export class BaseRevive { - abi; - api; - _decorateMethod; - _isWeightV1; - constructor(api, abi, decorateMethod) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.revive || - !isFunction(api.tx.revive.instantiateWithCode) || - api.tx.revive.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.reviveApi || !isFunction(api.call.reviveApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', - ); - } - this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - get registry() { - return this.api.registry; - } -} diff --git a/.api-contract/build-tsc-esm/base/Blueprint.js b/.api-contract/build-tsc-esm/base/Blueprint.js deleted file mode 100644 index 9edb5332..00000000 --- a/.api-contract/build-tsc-esm/base/Blueprint.js +++ /dev/null @@ -1,71 +0,0 @@ -import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, isUndefined } from '@polkadot/util'; -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class BlueprintSubmittableResult extends SubmittableResult { - contract; - constructor(result, contract) { - super(result); - this.contract = contract; - } -} -export class Blueprint extends Base { - /** - * @description The on-chain code hash for this blueprint - */ - codeHash; - __internal__tx = {}; - constructor(api, abi, codeHash, decorateMethod) { - super(api, abi, decorateMethod); - this.codeHash = this.registry.createType('Hash', codeHash); - this.abi.constructors.forEach(c => { - if (isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__deploy(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__deploy = ( - constructorOrId, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new BlueprintSubmittableResult( - result, - applyOnEvent( - result, - ['Instantiated'], - ([record]) => - new Contract(this.api, this.abi, record.event.data[1], this._decorateMethod), - ), - ), - ); - }; -} -export function extendBlueprint(type, decorateMethod) { - return class extends Blueprint { - static __BlueprintType = type; - constructor(api, abi, codeHash) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-esm/base/BlueprintRevive.js b/.api-contract/build-tsc-esm/base/BlueprintRevive.js deleted file mode 100644 index 65a8344d..00000000 --- a/.api-contract/build-tsc-esm/base/BlueprintRevive.js +++ /dev/null @@ -1,68 +0,0 @@ -import { BN_ZERO, isUndefined } from '@polkadot/util'; -import { BaseRevive } from './BaseRevive.js'; -import { BlueprintSubmittableResult } from './Blueprint.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class BlueprintRevive extends BaseRevive { - /** - * @description The on-chain code hash for this blueprint - */ - codeHash; - __internal__tx = {}; - constructor(api, abi, codeHash, decorateMethod) { - super(api, abi, decorateMethod); - this.codeHash = this.registry.createType('Hash', codeHash); - this.abi.constructors.forEach(c => { - if (isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__deploy(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__deploy = ( - constructorOrId, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new BlueprintSubmittableResult( - result, - (() => { - if (result.status.isInBlock || result.status.isFinalized) { - return new Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ); - } - return undefined; - })(), - ), - ); - }; -} -export function extendBlueprint(type, decorateMethod) { - return class extends BlueprintRevive { - static __BlueprintType = type; - constructor(api, abi, codeHash) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-esm/base/Code.js b/.api-contract/build-tsc-esm/base/Code.js deleted file mode 100644 index 74cf92b1..00000000 --- a/.api-contract/build-tsc-esm/base/Code.js +++ /dev/null @@ -1,88 +0,0 @@ -import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { Blueprint } from './Blueprint.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class CodeSubmittableResult extends SubmittableResult { - blueprint; - contract; - constructor(result, blueprint, contract) { - super(result); - this.blueprint = blueprint; - this.contract = contract; - } -} -function isValidCode(code) { - return isWasm(code) || isRiscV(code); -} -export class Code extends Base { - code; - __internal__tx = {}; - constructor(api, abi, wasm, decorateMethod) { - super(api, abi, decorateMethod); - this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - this.abi.constructors.forEach(c => { - if (isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__instantiate(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__instantiate = ( - constructorOrId, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - compactAddLength(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new CodeSubmittableResult( - result, - ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], records => - records.reduce( - ([blueprint, contract], { event }) => - this.api.events.contracts.Instantiated.is(event) - ? [ - blueprint, - new Contract(this.api, this.abi, event.data[1], this._decorateMethod), - ] - : this.api.events.contracts.CodeStored.is(event) - ? [ - new Blueprint(this.api, this.abi, event.data[0], this._decorateMethod), - contract, - ] - : [blueprint, contract], - [undefined, undefined], - ), - ) || [undefined, undefined]), - ), - ); - }; -} -export function extendCode(type, decorateMethod) { - return class extends Code { - static __CodeType = type; - constructor(api, abi, wasm) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-esm/base/CodeRevive.js b/.api-contract/build-tsc-esm/base/CodeRevive.js deleted file mode 100644 index 4c0740a1..00000000 --- a/.api-contract/build-tsc-esm/base/CodeRevive.js +++ /dev/null @@ -1,82 +0,0 @@ -import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, compactAddLength, isRiscV, isUndefined, u8aToU8a } from '@polkadot/util'; -import { BaseRevive } from './BaseRevive.js'; -import { BlueprintRevive } from './BlueprintRevive.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class CodeReviveSubmittableResult extends SubmittableResult { - blueprint; - contract; - constructor(result, blueprint, contract) { - super(result); - this.blueprint = blueprint; - this.contract = contract; - } -} -function isValidCode(code) { - return isRiscV(code); -} -export class CodeRevive extends BaseRevive { - code; - __internal__tx = {}; - constructor(api, abi, wasm, decorateMethod) { - super(api, abi, decorateMethod); - this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - this.abi.constructors.forEach(c => { - if (isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__instantiate(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__instantiate = ( - constructorOrId, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - compactAddLength(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new CodeReviveSubmittableResult( - result, - new BlueprintRevive( - this.api, - this.abi, - this.abi.info.source.wasmHash, - this._decorateMethod, - ), - new Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ), - ), - ); - }; -} -export function extendCode(type, decorateMethod) { - return class extends CodeRevive { - static __CodeType = type; - constructor(api, abi, wasm) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-esm/base/Contract.js b/.api-contract/build-tsc-esm/base/Contract.js deleted file mode 100644 index 673f05a2..00000000 --- a/.api-contract/build-tsc-esm/base/Contract.js +++ /dev/null @@ -1,154 +0,0 @@ -import { map } from 'rxjs'; -import { SubmittableResult } from '@polkadot/api'; -import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { convertWeight, withMeta } from './util.js'; -const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); -const l = logger('Contract'); -function createQuery(meta, fn) { - return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); -} -function createTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); -} -export class ContractSubmittableResult extends SubmittableResult { - contractEvents; - constructor(result, contractEvents) { - super(result); - this.contractEvents = contractEvents; - } -} -export class Contract extends Base { - /** - * @description The on-chain address for this contract - */ - address; - __internal__query = {}; - __internal__tx = {}; - constructor(api, abi, address, decorateMethod) { - super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId', address); - this.abi.messages.forEach(m => { - if (isUndefined(this.__internal__tx[m.method])) { - this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); - } - if (isUndefined(this.__internal__query[m.method])) { - this.__internal__query[m.method] = createQuery(m, (f, o, p) => - this.__internal__read(m, o, p).send(f), - ); - } - }); - } - get query() { - return this.__internal__query; - } - get tx() { - return this.__internal__tx; - } - __internal__getGas = (_gasLimit, isCall = false) => { - const weight = convertWeight(_gasLimit); - if (weight.v1Weight.gt(BN_ZERO)) { - return weight; - } - return convertWeight( - isCall - ? MAX_CALL_GAS - : convertWeight( - this.api.consts.system.blockWeights - ? this.api.consts.system.blockWeights.maxBlock - : this.api.consts.system['maximumBlockWeight'], - ) - .v1Weight.muln(64) - .div(BN_HUNDRED), - ); - }; - __internal__exec = ( - messageOrId, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - result => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => - records - .map(record => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${error.message}`); - return null; - } - }) - .filter(decoded => !!decoded), - ), - ), - ); - }; - __internal__read = ( - messageOrId, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - const message = this.abi.findMessage(messageOrId); - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod(origin => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.__internal__getGas(gasLimit, true).v1Weight - : this.__internal__getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !convertWeight(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - })), - ), - ), - }; - }; -} -export function extendContract(type, decorateMethod) { - return class extends Contract { - static __ContractType = type; - constructor(api, abi, address) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-esm/base/ContractRevive.js b/.api-contract/build-tsc-esm/base/ContractRevive.js deleted file mode 100644 index ab5ac9eb..00000000 --- a/.api-contract/build-tsc-esm/base/ContractRevive.js +++ /dev/null @@ -1,154 +0,0 @@ -import { map } from 'rxjs'; -import { SubmittableResult } from '@polkadot/api'; -import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; -import { applyOnEvent } from '../util.js'; -import { BaseRevive } from './BaseRevive.js'; -import { convertWeight, withMeta } from './util.js'; -const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); -const l = logger('Contract'); -function createQuery(meta, fn) { - return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); -} -function createTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); -} -export class ContractSubmittableResult extends SubmittableResult { - contractEvents; - constructor(result, contractEvents) { - super(result); - this.contractEvents = contractEvents; - } -} -export class ContractRevive extends BaseRevive { - /** - * @description The on-chain address for this contract - */ - address; - __internal__query = {}; - __internal__tx = {}; - constructor(api, abi, address, decorateMethod) { - super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); - this.abi.messages.forEach(m => { - if (isUndefined(this.__internal__tx[m.method])) { - this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); - } - if (isUndefined(this.__internal__query[m.method])) { - this.__internal__query[m.method] = createQuery(m, (f, o, p) => - this.__internal__read(m, o, p).send(f), - ); - } - }); - } - get query() { - return this.__internal__query; - } - get tx() { - return this.__internal__tx; - } - __internal__getGas = (_gasLimit, isCall = false) => { - const weight = convertWeight(_gasLimit); - if (weight.v1Weight.gt(BN_ZERO)) { - return weight; - } - return convertWeight( - isCall - ? MAX_CALL_GAS - : convertWeight( - this.api.consts.system.blockWeights - ? this.api.consts.system.blockWeights.maxBlock - : this.api.consts.system['maximumBlockWeight'], - ) - .v1Weight.muln(64) - .div(BN_HUNDRED), - ); - }; - __internal__exec = ( - messageOrId, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - result => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => - records - .map(record => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${error.message}`); - return null; - } - }) - .filter(decoded => !!decoded), - ), - ), - ); - }; - __internal__read = ( - messageOrId, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - const message = this.abi.findMessage(messageOrId); - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod(origin => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.__internal__getGas(gasLimit, true).v1Weight - : this.__internal__getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !convertWeight(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - })), - ), - ), - }; - }; -} -export function extendContract(type, decorateMethod) { - return class extends ContractRevive { - static __ContractType = type; - constructor(api, abi, address) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/build-tsc-esm/base/index.js b/.api-contract/build-tsc-esm/base/index.js deleted file mode 100644 index 30a149b4..00000000 --- a/.api-contract/build-tsc-esm/base/index.js +++ /dev/null @@ -1,6 +0,0 @@ -export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; -export { BlueprintRevive } from './BlueprintRevive.js'; -export { Code, CodeSubmittableResult, extendCode } from './Code.js'; -export { CodeRevive } from './CodeRevive.js'; -export { Contract, extendContract } from './Contract.js'; -export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-contract/build-tsc-esm/base/mock.js b/.api-contract/build-tsc-esm/base/mock.js deleted file mode 100644 index 55a4f489..00000000 --- a/.api-contract/build-tsc-esm/base/mock.js +++ /dev/null @@ -1,22 +0,0 @@ -import { TypeRegistry } from '@polkadot/types'; -const registry = new TypeRegistry(); -const instantiateWithCode = () => { - throw new Error('mock'); -}; -instantiateWithCode.meta = { args: new Array(6) }; -export const mockApi = { - call: { - contractsApi: { - call: () => { - throw new Error('mock'); - }, - }, - }, - isConnected: true, - registry, - tx: { - contracts: { - instantiateWithCode, - }, - }, -}; diff --git a/.api-contract/build-tsc-esm/base/types.js b/.api-contract/build-tsc-esm/base/types.js deleted file mode 100644 index cb0ff5c3..00000000 --- a/.api-contract/build-tsc-esm/base/types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/.api-contract/build-tsc-esm/base/util.js b/.api-contract/build-tsc-esm/base/util.js deleted file mode 100644 index 551dad16..00000000 --- a/.api-contract/build-tsc-esm/base/util.js +++ /dev/null @@ -1,33 +0,0 @@ -import { Bytes } from '@polkadot/types'; -import { bnToBn, compactAddLength, u8aToU8a } from '@polkadot/util'; -import { randomAsU8a } from '@polkadot/util-crypto'; -export const EMPTY_SALT = new Uint8Array(); -export function withMeta(meta, creator) { - creator.meta = meta; - return creator; -} -export function createBluePrintTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); -} -export function createBluePrintWithId(fn) { - return (constructorOrId, options, ...params) => fn(constructorOrId, options, params); -} -export function encodeSalt(salt = randomAsU8a()) { - return salt instanceof Bytes - ? salt - : salt?.length - ? compactAddLength(u8aToU8a(salt)) - : EMPTY_SALT; -} -export function convertWeight(weight) { - const [refTime, proofSize] = isWeightV2(weight) - ? [weight.refTime.toBn(), weight.proofSize.toBn()] - : [bnToBn(weight), undefined]; - return { - v1Weight: refTime, - v2Weight: { proofSize, refTime }, - }; -} -export function isWeightV2(weight) { - return !!weight.proofSize; -} diff --git a/.api-contract/build-tsc-esm/bundle.js b/.api-contract/build-tsc-esm/bundle.js deleted file mode 100644 index d087e9db..00000000 --- a/.api-contract/build-tsc-esm/bundle.js +++ /dev/null @@ -1,4 +0,0 @@ -export { Abi } from './Abi/index.js'; -export { packageInfo } from './packageInfo.js'; -export * from './promise/index.js'; -export * from './rx/index.js'; diff --git a/.api-contract/build-tsc-esm/index.js b/.api-contract/build-tsc-esm/index.js deleted file mode 100644 index ca3f403b..00000000 --- a/.api-contract/build-tsc-esm/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import './packageDetect.js'; -export * from './bundle.js'; diff --git a/.api-contract/build-tsc-esm/packageDetect.js b/.api-contract/build-tsc-esm/packageDetect.js deleted file mode 100644 index 71d2439c..00000000 --- a/.api-contract/build-tsc-esm/packageDetect.js +++ /dev/null @@ -1,5 +0,0 @@ -import { packageInfo as apiInfo } from '@polkadot/api/packageInfo'; -import { packageInfo as typesInfo } from '@polkadot/types/packageInfo'; -import { detectPackage } from '@polkadot/util'; -import { packageInfo } from './packageInfo.js'; -detectPackage(packageInfo, null, [apiInfo, typesInfo]); diff --git a/.api-contract/build-tsc-esm/packageInfo.js b/.api-contract/build-tsc-esm/packageInfo.js deleted file mode 100644 index 0d90c7dc..00000000 --- a/.api-contract/build-tsc-esm/packageInfo.js +++ /dev/null @@ -1,12 +0,0 @@ -export const packageInfo = { - name: '@polkadot/api-contract', - path: - import.meta && import.meta.url - ? new URL(import.meta.url).pathname.substring( - 0, - new URL(import.meta.url).pathname.lastIndexOf('/') + 1, - ) - : 'auto', - type: 'esm', - version: '15.8.1', -}; diff --git a/.api-contract/build-tsc-esm/promise/index.js b/.api-contract/build-tsc-esm/promise/index.js deleted file mode 100644 index 76deb8a7..00000000 --- a/.api-contract/build-tsc-esm/promise/index.js +++ /dev/null @@ -1,39 +0,0 @@ -import { toPromiseMethod } from '@polkadot/api'; -import { - Blueprint, - BlueprintRevive, - Code, - CodeRevive, - Contract, - ContractRevive, -} from '../base/index.js'; -export class BlueprintPromise extends Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, toPromiseMethod); - } -} -export class CodePromise extends Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, toPromiseMethod); - } -} -export class ContractPromise extends Contract { - constructor(api, abi, address) { - super(api, abi, address, toPromiseMethod); - } -} -export class BlueprintRevivePromise extends BlueprintRevive { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, toPromiseMethod); - } -} -export class CodeRevivePromise extends CodeRevive { - constructor(api, abi, wasm) { - super(api, abi, wasm, toPromiseMethod); - } -} -export class ContractRevivePromise extends ContractRevive { - constructor(api, abi, address) { - super(api, abi, address, toPromiseMethod); - } -} diff --git a/.api-contract/build-tsc-esm/promise/types.js b/.api-contract/build-tsc-esm/promise/types.js deleted file mode 100644 index cb0ff5c3..00000000 --- a/.api-contract/build-tsc-esm/promise/types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/.api-contract/build-tsc-esm/rx/index.js b/.api-contract/build-tsc-esm/rx/index.js deleted file mode 100644 index 3ff57ea8..00000000 --- a/.api-contract/build-tsc-esm/rx/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import { toRxMethod } from '@polkadot/api'; -import { Blueprint, Code, Contract } from '../base/index.js'; -export class BlueprintRx extends Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, toRxMethod); - } -} -export class CodeRx extends Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, toRxMethod); - } -} -export class ContractRx extends Contract { - constructor(api, abi, address) { - super(api, abi, address, toRxMethod); - } -} diff --git a/.api-contract/build-tsc-esm/rx/types.js b/.api-contract/build-tsc-esm/rx/types.js deleted file mode 100644 index cb0ff5c3..00000000 --- a/.api-contract/build-tsc-esm/rx/types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/.api-contract/build-tsc-esm/types.js b/.api-contract/build-tsc-esm/types.js deleted file mode 100644 index cb0ff5c3..00000000 --- a/.api-contract/build-tsc-esm/types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/.api-contract/build-tsc-esm/util.js b/.api-contract/build-tsc-esm/util.js deleted file mode 100644 index 0faa5cff..00000000 --- a/.api-contract/build-tsc-esm/util.js +++ /dev/null @@ -1,9 +0,0 @@ -export function applyOnEvent(result, types, fn) { - if (result.isInBlock || result.isFinalized) { - const records = result.filterRecords('contracts', types); - if (records.length) { - return fn(records); - } - } - return undefined; -} diff --git a/.api-contract/build-tsc/Abi/index.d.ts b/.api-contract/build-tsc/Abi/index.d.ts deleted file mode 100644 index 2ce16624..00000000 --- a/.api-contract/build-tsc/Abi/index.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { - ChainProperties, - ContractMetadataV4, - ContractMetadataV5, - ContractMetadataV6, - ContractProjectInfo, - EventRecord, -} from '@polkadot/types/interfaces'; -import type { Codec, Registry, TypeDef } from '@polkadot/types/types'; -import type { - AbiConstructor, - AbiEvent, - AbiMessage, - DecodedEvent, - DecodedMessage, -} from '../types.js'; -export type ContractMetadataSupported = - | ContractMetadataV4 - | ContractMetadataV5 - | ContractMetadataV6; -export declare class Abi { - #private; - readonly events: AbiEvent[]; - readonly constructors: AbiConstructor[]; - readonly info: ContractProjectInfo; - readonly json: Record; - readonly messages: AbiMessage[]; - readonly metadata: ContractMetadataSupported; - readonly registry: Registry; - readonly environment: Map; - constructor(abiJson: Record | string, chainProperties?: ChainProperties); - /** - * Warning: Unstable API, bound to change - */ - decodeEvent(record: EventRecord): DecodedEvent; - /** - * Warning: Unstable API, bound to change - */ - decodeConstructor(data: Uint8Array): DecodedMessage; - /** - * Warning: Unstable API, bound to change - */ - decodeMessage(data: Uint8Array): DecodedMessage; - findConstructor(constructorOrId: AbiConstructor | string | number): AbiConstructor; - findMessage(messageOrId: AbiMessage | string | number): AbiMessage; -} diff --git a/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts b/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts deleted file mode 100644 index e5db5e1e..00000000 --- a/.api-contract/build-tsc/Abi/toLatestCompatible.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { - ContractMetadataV4, - ContractMetadataV5, - ContractMetadataV6, -} from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -import type { ContractMetadataSupported } from './index.js'; -export declare const enumVersions: readonly ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; -type Versions = (typeof enumVersions)[number] | 'V0'; -type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; -export declare function v6ToLatestCompatible( - _registry: Registry, - v6: ContractMetadataV6, -): ContractMetadataV6; -export declare function v5ToLatestCompatible( - _registry: Registry, - v5: ContractMetadataV5, -): ContractMetadataV5; -export declare function v4ToLatestCompatible( - _registry: Registry, - v4: ContractMetadataV4, -): ContractMetadataV4; -export declare const v3ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV3, -) => ContractMetadataSupported; -export declare const v2ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV2, -) => ContractMetadataSupported; -export declare const v1ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV1, -) => ContractMetadataSupported; -export declare const v0ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV0, -) => ContractMetadataSupported; -export declare const convertVersions: [Versions, Converter][]; -export {}; diff --git a/.api-contract/build-tsc/Abi/toV1.d.ts b/.api-contract/build-tsc/Abi/toV1.d.ts deleted file mode 100644 index dc41ae43..00000000 --- a/.api-contract/build-tsc/Abi/toV1.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { ContractMetadataV0, ContractMetadataV1 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -export declare function v0ToV1(registry: Registry, v0: ContractMetadataV0): ContractMetadataV1; diff --git a/.api-contract/build-tsc/Abi/toV2.d.ts b/.api-contract/build-tsc/Abi/toV2.d.ts deleted file mode 100644 index 3de0aa9b..00000000 --- a/.api-contract/build-tsc/Abi/toV2.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { ContractMetadataV1, ContractMetadataV2 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -export declare function v1ToV2(registry: Registry, v1: ContractMetadataV1): ContractMetadataV2; diff --git a/.api-contract/build-tsc/Abi/toV3.d.ts b/.api-contract/build-tsc/Abi/toV3.d.ts deleted file mode 100644 index 10cc0d67..00000000 --- a/.api-contract/build-tsc/Abi/toV3.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { ContractMetadataV2, ContractMetadataV3 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -export declare function v2ToV3(registry: Registry, v2: ContractMetadataV2): ContractMetadataV3; diff --git a/.api-contract/build-tsc/Abi/toV4.d.ts b/.api-contract/build-tsc/Abi/toV4.d.ts deleted file mode 100644 index c532e46e..00000000 --- a/.api-contract/build-tsc/Abi/toV4.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { ContractMetadataV3, ContractMetadataV4 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -export declare function v3ToV4(registry: Registry, v3: ContractMetadataV3): ContractMetadataV4; diff --git a/.api-contract/build-tsc/augment.d.ts b/.api-contract/build-tsc/augment.d.ts deleted file mode 100644 index 40e6ced0..00000000 --- a/.api-contract/build-tsc/augment.d.ts +++ /dev/null @@ -1 +0,0 @@ -import '@polkadot/api-augment'; diff --git a/.api-contract/build-tsc/base/Base.d.ts b/.api-contract/build-tsc/base/Base.d.ts deleted file mode 100644 index 0c05a333..00000000 --- a/.api-contract/build-tsc/base/Base.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Registry } from '@polkadot/types/types'; -import { Abi } from '../Abi/index.js'; -export declare abstract class Base { - readonly abi: Abi; - readonly api: ApiBase; - protected readonly _decorateMethod: DecorateMethod; - protected readonly _isWeightV1: boolean; - constructor( - api: ApiBase, - abi: string | Record | Abi, - decorateMethod: DecorateMethod, - ); - get registry(): Registry; -} diff --git a/.api-contract/build-tsc/base/BaseRevive.d.ts b/.api-contract/build-tsc/base/BaseRevive.d.ts deleted file mode 100644 index 51285215..00000000 --- a/.api-contract/build-tsc/base/BaseRevive.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Registry } from '@polkadot/types/types'; -import { Abi } from '../Abi/index.js'; -export declare abstract class BaseRevive { - readonly abi: Abi; - readonly api: ApiBase; - protected readonly _decorateMethod: DecorateMethod; - protected readonly _isWeightV1: boolean; - constructor( - api: ApiBase, - abi: string | Record | Abi, - decorateMethod: DecorateMethod, - ); - get registry(): Registry; -} diff --git a/.api-contract/build-tsc/base/Blueprint.d.ts b/.api-contract/build-tsc/base/Blueprint.d.ts deleted file mode 100644 index ce3a70cd..00000000 --- a/.api-contract/build-tsc/base/Blueprint.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Hash } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { Base } from './Base.js'; -import { Contract } from './Contract.js'; -export type BlueprintConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, -) => Blueprint; -export declare class BlueprintSubmittableResult< - ApiType extends ApiTypes, -> extends SubmittableResult { - readonly contract?: Contract | undefined; - constructor(result: ISubmittableResult, contract?: Contract); -} -export declare class Blueprint extends Base { - #private; - /** - * @description The on-chain code hash for this blueprint - */ - readonly codeHash: Hash; - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendBlueprint( - type: ApiType, - decorateMethod: DecorateMethod, -): BlueprintConstructor; diff --git a/.api-contract/build-tsc/base/BlueprintRevive.d.ts b/.api-contract/build-tsc/base/BlueprintRevive.d.ts deleted file mode 100644 index 56f6f57f..00000000 --- a/.api-contract/build-tsc/base/BlueprintRevive.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { BaseRevive } from './BaseRevive.js'; -export type BlueprintReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, -) => BlueprintRevive; -export declare class BlueprintRevive extends BaseRevive { - #private; - /** - * @description The on-chain code hash for this blueprint - */ - readonly codeHash: Hash; - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendBlueprint( - type: ApiType, - decorateMethod: DecorateMethod, -): BlueprintReviveConstructor; diff --git a/.api-contract/build-tsc/base/Code.d.ts b/.api-contract/build-tsc/base/Code.d.ts deleted file mode 100644 index ab612cef..00000000 --- a/.api-contract/build-tsc/base/Code.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { Base } from './Base.js'; -import { Blueprint } from './Blueprint.js'; -import { Contract } from './Contract.js'; -export type CodeConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, -) => Code; -export declare class CodeSubmittableResult extends SubmittableResult { - readonly blueprint?: Blueprint | undefined; - readonly contract?: Contract | undefined; - constructor( - result: ISubmittableResult, - blueprint?: Blueprint | undefined, - contract?: Contract | undefined, - ); -} -export declare class Code extends Base { - #private; - readonly code: Uint8Array; - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendCode( - type: ApiType, - decorateMethod: DecorateMethod, -): CodeConstructor; diff --git a/.api-contract/build-tsc/base/CodeRevive.d.ts b/.api-contract/build-tsc/base/CodeRevive.d.ts deleted file mode 100644 index 72a11c78..00000000 --- a/.api-contract/build-tsc/base/CodeRevive.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { BaseRevive } from './BaseRevive.js'; -import { BlueprintRevive } from './BlueprintRevive.js'; -import { Contract } from './Contract.js'; -export type CodeReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, -) => CodeRevive; -export declare class CodeReviveSubmittableResult< - ApiType extends ApiTypes, -> extends SubmittableResult { - readonly blueprint?: BlueprintRevive | undefined; - readonly contract?: Contract | undefined; - constructor( - result: ISubmittableResult, - blueprint?: BlueprintRevive | undefined, - contract?: Contract | undefined, - ); -} -export declare class CodeRevive extends BaseRevive { - #private; - readonly code: Uint8Array; - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendCode( - type: ApiType, - decorateMethod: DecorateMethod, -): CodeReviveConstructor; diff --git a/.api-contract/build-tsc/base/Contract.d.ts b/.api-contract/build-tsc/base/Contract.d.ts deleted file mode 100644 index 3add8756..00000000 --- a/.api-contract/build-tsc/base/Contract.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { AccountId } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { DecodedEvent } from '../types.js'; -import type { MapMessageQuery, MapMessageTx } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { Base } from './Base.js'; -export type ContractConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, -) => Contract; -export declare class ContractSubmittableResult extends SubmittableResult { - readonly contractEvents?: DecodedEvent[] | undefined; - constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); -} -export declare class Contract extends Base { - #private; - /** - * @description The on-chain address for this contract - */ - readonly address: AccountId; - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, - decorateMethod: DecorateMethod, - ); - get query(): MapMessageQuery; - get tx(): MapMessageTx; -} -export declare function extendContract( - type: ApiType, - decorateMethod: DecorateMethod, -): ContractConstructor; diff --git a/.api-contract/build-tsc/base/ContractRevive.d.ts b/.api-contract/build-tsc/base/ContractRevive.d.ts deleted file mode 100644 index 241b4d37..00000000 --- a/.api-contract/build-tsc/base/ContractRevive.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { DecodedEvent } from '../types.js'; -import type { MapMessageQuery, MapMessageTx } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { BaseRevive } from './BaseRevive.js'; -export type ContractReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, -) => ContractRevive; -export declare class ContractSubmittableResult extends SubmittableResult { - readonly contractEvents?: DecodedEvent[] | undefined; - constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); -} -export declare class ContractRevive extends BaseRevive { - #private; - /** - * @description The on-chain address for this contract - */ - readonly address: AccountId20; - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId20, - decorateMethod: DecorateMethod, - ); - get query(): MapMessageQuery; - get tx(): MapMessageTx; -} -export declare function extendContract( - type: ApiType, - decorateMethod: DecorateMethod, -): ContractReviveConstructor; diff --git a/.api-contract/build-tsc/base/index.d.ts b/.api-contract/build-tsc/base/index.d.ts deleted file mode 100644 index 30a149b4..00000000 --- a/.api-contract/build-tsc/base/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; -export { BlueprintRevive } from './BlueprintRevive.js'; -export { Code, CodeSubmittableResult, extendCode } from './Code.js'; -export { CodeRevive } from './CodeRevive.js'; -export { Contract, extendContract } from './Contract.js'; -export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-contract/build-tsc/base/mock.d.ts b/.api-contract/build-tsc/base/mock.d.ts deleted file mode 100644 index 51f21099..00000000 --- a/.api-contract/build-tsc/base/mock.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -export declare const mockApi: ApiBase<'promise'>; diff --git a/.api-contract/build-tsc/base/types.d.ts b/.api-contract/build-tsc/base/types.d.ts deleted file mode 100644 index 1841c9b7..00000000 --- a/.api-contract/build-tsc/base/types.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { Observable } from 'rxjs'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes, ObsInnerType } from '@polkadot/api/types'; -import type { AccountId } from '@polkadot/types/interfaces'; -import type { - AbiMessage, - BlueprintOptions, - ContractCallOutcome, - ContractOptions, -} from '../types.js'; -export interface MessageMeta { - readonly meta: AbiMessage; -} -export interface BlueprintDeploy extends MessageMeta { - (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; -} -export interface ContractQuery extends MessageMeta { - ( - origin: AccountId | string | Uint8Array, - options: ContractOptions, - ...params: unknown[] - ): ContractCallResult; -} -export interface ContractTx extends MessageMeta { - (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; -} -export type ContractGeneric = ( - messageOrId: AbiMessage | string | number, - options: O, - ...params: unknown[] -) => T; -export type ContractCallResult = ApiType extends 'rxjs' - ? Observable - : Promise>>; -export interface ContractCallSend { - send(account: string | AccountId | Uint8Array): ContractCallResult; -} -export type MapConstructorExec = Record>; -export type MapMessageTx = Record>; -export type MapMessageQuery = Record>; diff --git a/.api-contract/build-tsc/base/util.d.ts b/.api-contract/build-tsc/base/util.d.ts deleted file mode 100644 index 27d26904..00000000 --- a/.api-contract/build-tsc/base/util.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { SubmittableResult } from '@polkadot/api'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes } from '@polkadot/api/types'; -import type { WeightV1, WeightV2 } from '@polkadot/types/interfaces'; -import type { BN } from '@polkadot/util'; -import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.js'; -import type { BlueprintDeploy, ContractGeneric } from './types.js'; -export declare const EMPTY_SALT: Uint8Array; -export declare function withMeta< - T extends { - meta: AbiMessage; - }, ->(meta: AbiMessage, creator: Omit): T; -export declare function createBluePrintTx( - meta: AbiMessage, - fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic, -): BlueprintDeploy; -export declare function createBluePrintWithId( - fn: ( - constructorOrId: AbiConstructor | string | number, - options: BlueprintOptions, - params: unknown[], - ) => T, -): ContractGeneric; -export declare function encodeSalt(salt?: Uint8Array | string | null): Uint8Array; -export declare function convertWeight( - weight: WeightV1 | WeightV2 | bigint | string | number | BN, -): WeightAll; -export declare function isWeightV2( - weight: WeightV1 | WeightV2 | bigint | string | number | BN, -): weight is WeightV2; diff --git a/.api-contract/build-tsc/bundle.d.ts b/.api-contract/build-tsc/bundle.d.ts deleted file mode 100644 index d087e9db..00000000 --- a/.api-contract/build-tsc/bundle.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { Abi } from './Abi/index.js'; -export { packageInfo } from './packageInfo.js'; -export * from './promise/index.js'; -export * from './rx/index.js'; diff --git a/.api-contract/build-tsc/index.d.ts b/.api-contract/build-tsc/index.d.ts deleted file mode 100644 index ca3f403b..00000000 --- a/.api-contract/build-tsc/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import './packageDetect.js'; -export * from './bundle.js'; diff --git a/.api-contract/build-tsc/packageDetect.d.ts b/.api-contract/build-tsc/packageDetect.d.ts deleted file mode 100644 index cb0ff5c3..00000000 --- a/.api-contract/build-tsc/packageDetect.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/.api-contract/build-tsc/packageInfo.d.ts b/.api-contract/build-tsc/packageInfo.d.ts deleted file mode 100644 index 1b6c408b..00000000 --- a/.api-contract/build-tsc/packageInfo.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export declare const packageInfo: { - name: string; - path: string; - type: string; - version: string; -}; diff --git a/.api-contract/build-tsc/promise/index.d.ts b/.api-contract/build-tsc/promise/index.d.ts deleted file mode 100644 index 3c1f5a23..00000000 --- a/.api-contract/build-tsc/promise/index.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import type { ApiPromise } from '@polkadot/api'; -import type { AccountId, AccountId20, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import { - Blueprint, - BlueprintRevive, - Code, - CodeRevive, - Contract, - ContractRevive, -} from '../base/index.js'; -export declare class BlueprintPromise extends Blueprint<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ); -} -export declare class CodePromise extends Code<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractPromise extends Contract<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId, - ); -} -export declare class BlueprintRevivePromise extends BlueprintRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ); -} -export declare class CodeRevivePromise extends CodeRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractRevivePromise extends ContractRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId20, - ); -} diff --git a/.api-contract/build-tsc/promise/types.d.ts b/.api-contract/build-tsc/promise/types.d.ts deleted file mode 100644 index 7784ef2c..00000000 --- a/.api-contract/build-tsc/promise/types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { - BlueprintSubmittableResult as BaseBlueprintSubmittableResult, - CodeSubmittableResult as BaseCodeSubmittableResult, -} from '../base/index.js'; -export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; -export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build-tsc/rx/index.d.ts b/.api-contract/build-tsc/rx/index.d.ts deleted file mode 100644 index 1357b476..00000000 --- a/.api-contract/build-tsc/rx/index.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { ApiRx } from '@polkadot/api'; -import type { AccountId, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import { Blueprint, Code, Contract } from '../base/index.js'; -export declare class BlueprintRx extends Blueprint<'rxjs'> { - constructor(api: ApiRx, abi: string | Record | Abi, codeHash: string | Hash); -} -export declare class CodeRx extends Code<'rxjs'> { - constructor( - api: ApiRx, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractRx extends Contract<'rxjs'> { - constructor(api: ApiRx, abi: string | Record | Abi, address: string | AccountId); -} diff --git a/.api-contract/build-tsc/rx/types.d.ts b/.api-contract/build-tsc/rx/types.d.ts deleted file mode 100644 index 7784ef2c..00000000 --- a/.api-contract/build-tsc/rx/types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { - BlueprintSubmittableResult as BaseBlueprintSubmittableResult, - CodeSubmittableResult as BaseCodeSubmittableResult, -} from '../base/index.js'; -export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; -export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build-tsc/types.d.ts b/.api-contract/build-tsc/types.d.ts deleted file mode 100644 index b535e85a..00000000 --- a/.api-contract/build-tsc/types.d.ts +++ /dev/null @@ -1,85 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes } from '@polkadot/api/types'; -import type { Text } from '@polkadot/types'; -import type { - ContractExecResultResult, - ContractSelector, - StorageDeposit, - Weight, - WeightV2, -} from '@polkadot/types/interfaces'; -import type { Codec, TypeDef } from '@polkadot/types/types'; -import type { BN } from '@polkadot/util'; -import type { HexString } from '@polkadot/util/types'; -import type { Abi } from './index.js'; -export interface ContractBase { - readonly abi: Abi; - readonly api: ApiBase; - getMessage: (name: string) => AbiMessage; - messages: AbiMessage[]; -} -export interface AbiParam { - name: string; - type: TypeDef; -} -export type AbiMessageParam = AbiParam; -export interface AbiEventParam extends AbiParam { - indexed: boolean; -} -export interface AbiEvent { - args: AbiEventParam[]; - docs: string[]; - fromU8a: (data: Uint8Array) => DecodedEvent; - identifier: string; - index: number; - signatureTopic?: HexString | null; -} -export interface AbiMessage { - args: AbiMessageParam[]; - docs: string[]; - fromU8a: (data: Uint8Array) => DecodedMessage; - identifier: string; - index: number; - isConstructor?: boolean; - isDefault?: boolean; - isMutating?: boolean; - isPayable?: boolean; - method: string; - path: string[]; - returnType?: TypeDef | null; - selector: ContractSelector; - toU8a: (params: unknown[]) => Uint8Array; -} -export type AbiConstructor = AbiMessage; -export type InterfaceContractCalls = Record; -export interface ContractCallOutcome { - debugMessage: Text; - gasConsumed: Weight; - gasRequired: Weight; - output: Codec | null; - result: ContractExecResultResult; - storageDeposit: StorageDeposit; -} -export interface DecodedEvent { - args: Codec[]; - event: AbiEvent; -} -export interface DecodedMessage { - args: Codec[]; - message: AbiMessage; -} -export interface ContractOptions { - gasLimit?: bigint | string | number | BN | WeightV2; - storageDepositLimit?: bigint | string | number | BN | null; - value?: bigint | BN | string | number; -} -export interface BlueprintOptions extends ContractOptions { - salt?: Uint8Array | string | null; -} -export interface WeightAll { - v1Weight: BN; - v2Weight: { - refTime: BN; - proofSize?: BN | undefined; - }; -} diff --git a/.api-contract/build-tsc/util.d.ts b/.api-contract/build-tsc/util.d.ts deleted file mode 100644 index 60682eff..00000000 --- a/.api-contract/build-tsc/util.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { SubmittableResult } from '@polkadot/api'; -import type { EventRecord } from '@polkadot/types/interfaces'; -type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; -export declare function applyOnEvent( - result: SubmittableResult, - types: ContractEvents[], - fn: (records: EventRecord[]) => T, -): T | undefined; -export {}; diff --git a/.api-contract/build/Abi/index.d.ts b/.api-contract/build/Abi/index.d.ts deleted file mode 100644 index 2ce16624..00000000 --- a/.api-contract/build/Abi/index.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { - ChainProperties, - ContractMetadataV4, - ContractMetadataV5, - ContractMetadataV6, - ContractProjectInfo, - EventRecord, -} from '@polkadot/types/interfaces'; -import type { Codec, Registry, TypeDef } from '@polkadot/types/types'; -import type { - AbiConstructor, - AbiEvent, - AbiMessage, - DecodedEvent, - DecodedMessage, -} from '../types.js'; -export type ContractMetadataSupported = - | ContractMetadataV4 - | ContractMetadataV5 - | ContractMetadataV6; -export declare class Abi { - #private; - readonly events: AbiEvent[]; - readonly constructors: AbiConstructor[]; - readonly info: ContractProjectInfo; - readonly json: Record; - readonly messages: AbiMessage[]; - readonly metadata: ContractMetadataSupported; - readonly registry: Registry; - readonly environment: Map; - constructor(abiJson: Record | string, chainProperties?: ChainProperties); - /** - * Warning: Unstable API, bound to change - */ - decodeEvent(record: EventRecord): DecodedEvent; - /** - * Warning: Unstable API, bound to change - */ - decodeConstructor(data: Uint8Array): DecodedMessage; - /** - * Warning: Unstable API, bound to change - */ - decodeMessage(data: Uint8Array): DecodedMessage; - findConstructor(constructorOrId: AbiConstructor | string | number): AbiConstructor; - findMessage(messageOrId: AbiMessage | string | number): AbiMessage; -} diff --git a/.api-contract/build/Abi/index.js b/.api-contract/build/Abi/index.js deleted file mode 100644 index f64654bc..00000000 --- a/.api-contract/build/Abi/index.js +++ /dev/null @@ -1,367 +0,0 @@ -import { Option, TypeRegistry } from '@polkadot/types'; -import { TypeDefInfo } from '@polkadot/types-create'; -import { - assertReturn, - compactAddLength, - compactStripLength, - isBn, - isNumber, - isObject, - isString, - isUndefined, - logger, - stringCamelCase, - stringify, - u8aConcat, - u8aToHex, -} from '@polkadot/util'; -import { convertVersions, enumVersions } from './toLatestCompatible.js'; -const l = logger('Abi'); -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; -function findMessage(list, messageOrId) { - const message = isNumber(messageOrId) - ? list[messageOrId] - : isString(messageOrId) - ? list.find(({ identifier }) => - [identifier, stringCamelCase(identifier)].includes(messageOrId.toString()), - ) - : messageOrId; - return assertReturn( - message, - () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`, - ); -} -function getMetadata(registry, json) { - // this is for V1, V2, V3 - const vx = enumVersions.find(v => isObject(json[v])); - // this was added in V4 - const jsonVersion = json.version; - console.log('parsing metadata'); - console.log(jsonVersion); - console.log(enumVersions); - if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { - throw new Error(`Unable to handle version ${jsonVersion}`); - } - console.log('parsed'); - console.log(vx); - const metadata = registry.createType( - 'ContractMetadata', - vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, - ); - console.log('m'); - const converter = convertVersions.find(([v]) => metadata[`is${v}`]); - if (!converter) { - throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); - } - console.log('converter'); - const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); - console.log('up'); - return upgradedMetadata; -} -function parseJson(json, chainProperties) { - console.log('parsing json'); - const registry = new TypeRegistry(); - const info = registry.createType('ContractProjectInfo', json); - const metadata = getMetadata(registry, json); - const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); - // attach the lookup to the registry - now the types are known - registry.setLookup(lookup); - if (chainProperties) { - registry.setChainProperties(chainProperties); - } - // warm-up the actual type, pre-use - lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); - console.log('warmed up'); - return [json, registry, metadata, info]; -} -/** - * @internal - * Determines if the given input value is a ContractTypeSpec - */ -function isTypeSpec(value) { - return ( - !!value && value instanceof Map && !isUndefined(value.type) && !isUndefined(value.displayName) - ); -} -/** - * @internal - * Determines if the given input value is an Option - */ -function isOption(value) { - return !!value && value instanceof Option; -} -export class Abi { - events; - constructors; - info; - json; - messages; - metadata; - registry; - environment = new Map(); - constructor(abiJson, chainProperties) { - console.log('constructor'); - [this.json, this.registry, this.metadata, this.info] = parseJson( - isString(abiJson) ? JSON.parse(abiJson) : abiJson, - chainProperties, - ); - console.log('parsed json'); - this.constructors = this.metadata.spec.constructors.map((spec, index) => - this.__internal__createMessage(spec, index, { - isConstructor: true, - isDefault: spec.default.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created constructors'); - this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); - console.log('created events'); - this.messages = this.metadata.spec.messages.map((spec, index) => - this.__internal__createMessage(spec, index, { - isDefault: spec.default.isTrue, - isMutating: spec.mutates.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created messages'); - // NOTE See the rationale for having Option<...> values in the actual - // ContractEnvironmentV4 structure definition in interfaces/contractsAbi - // (Due to conversions, the fields may not exist) - for (const [key, opt] of this.metadata.spec.environment.entries()) { - if (isOption(opt)) { - if (opt.isSome) { - const value = opt.unwrap(); - if (isBn(value)) { - this.environment.set(key, value); - } else if (isTypeSpec(value)) { - this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); - } else { - throw new Error( - `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, - ); - } - } - } else { - throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); - } - } - console.log('created environment'); - } - /** - * Warning: Unstable API, bound to change - */ - decodeEvent(record) { - switch (this.metadata.version.toString()) { - // earlier version are hoisted to v4 - case '4': - return this.__internal__decodeEventV4(record); - // Latest - default: - return this.__internal__decodeEventV5(record); - } - } - __internal__decodeEventV5 = record => { - // Find event by first topic, which potentially is the signature_topic - const signatureTopic = record.topics[0]; - const data = record.event.data[1]; - if (signatureTopic) { - const event = this.events.find( - e => - e.signatureTopic !== undefined && - e.signatureTopic !== null && - e.signatureTopic === signatureTopic.toHex(), - ); - // Early return if event found by signature topic - if (event) { - return event.fromU8a(data); - } - } - // If no event returned yet, it might be anonymous - const amountOfTopics = record.topics.length; - const potentialEvents = this.events.filter(e => { - // event can't have a signature topic - if (e.signatureTopic !== null && e.signatureTopic !== undefined) { - return false; - } - // event should have same amount of indexed fields as emitted topics - const amountIndexed = e.args.filter(a => a.indexed).length; - if (amountIndexed !== amountOfTopics) { - return false; - } - // If all conditions met, it's a potential event - return true; - }); - if (potentialEvents.length === 1) { - return potentialEvents[0].fromU8a(data); - } - throw new Error('Unable to determine event'); - }; - __internal__decodeEventV4 = record => { - const data = record.event.data[1]; - const index = data[0]; - const event = this.events[index]; - if (!event) { - throw new Error(`Unable to find event with index ${index}`); - } - return event.fromU8a(data.subarray(1)); - }; - /** - * Warning: Unstable API, bound to change - */ - decodeConstructor(data) { - return this.__internal__decodeMessage('message', this.constructors, data); - } - /** - * Warning: Unstable API, bound to change - */ - decodeMessage(data) { - return this.__internal__decodeMessage('message', this.messages, data); - } - findConstructor(constructorOrId) { - return findMessage(this.constructors, constructorOrId); - } - findMessage(messageOrId) { - return findMessage(this.messages, messageOrId); - } - __internal__createArgs = (args, spec) => { - return args.map(({ label, type }, index) => { - try { - if (!isObject(type)) { - throw new Error('Invalid type definition found'); - } - const displayName = type.displayName.length - ? type.displayName[type.displayName.length - 1].toString() - : undefined; - const camelName = stringCamelCase(label); - if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { - return { - name: camelName, - type: { - info: TypeDefInfo.Plain, - type: displayName, - }, - }; - } - const typeDef = this.registry.lookup.getTypeDef(type.type); - return { - name: camelName, - type: - displayName && !typeDef.type.startsWith(displayName) - ? { displayName, ...typeDef } - : typeDef, - }; - } catch (error) { - l.error(`Error expanding argument ${index} in ${stringify(spec)}`); - throw error; - } - }); - }; - __internal__createMessageParams = (args, spec) => { - return this.__internal__createArgs(args, spec); - }; - __internal__createEventParams = (args, spec) => { - const params = this.__internal__createArgs(args, spec); - return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); - }; - __internal__createEvent = index => { - // TODO TypeScript would narrow this type to the correct version, - // but version is `Text` so I need to call `toString()` here, - // which breaks the type inference. - switch (this.metadata.version.toString()) { - case '4': - return this.__internal__createEventV4(this.metadata.spec.events[index], index); - default: - return this.__internal__createEventV5(this.metadata.spec.events[index], index); - } - }; - __internal__createEventV5 = (spec, index) => { - const args = this.__internal__createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - event, - }), - identifier: [spec.module_path, spec.label].join('::'), - index, - signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, - }; - return event; - }; - __internal__createEventV4 = (spec, index) => { - const args = this.__internal__createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - event, - }), - identifier: spec.label.toString(), - index, - }; - return event; - }; - __internal__createMessage = (spec, index, add = {}) => { - const args = this.__internal__createMessageParams(spec.args, spec); - const identifier = spec.label.toString(); - const message = { - ...add, - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - message, - }), - identifier, - index, - isDefault: spec.default.isTrue, - method: stringCamelCase(identifier), - path: identifier.split('::').map(s => stringCamelCase(s)), - selector: spec.selector, - toU8a: params => this.__internal__encodeMessageArgs(spec, args, params), - }; - return message; - }; - __internal__decodeArgs = (args, data) => { - // for decoding we expect the input to be just the arg data, no selectors - // no length added (this allows use with events as well) - let offset = 0; - return args.map(({ type: { lookupName, type } }) => { - const value = this.registry.createType(lookupName || type, data.subarray(offset)); - offset += value.encodedLength; - return value; - }); - }; - __internal__decodeMessage = (type, list, data) => { - const [, trimmed] = compactStripLength(data); - const selector = trimmed.subarray(0, 4); - const message = list.find(m => m.selector.eq(selector)); - if (!message) { - throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`); - } - return message.fromU8a(trimmed.subarray(4)); - }; - __internal__encodeMessageArgs = ({ label, selector }, args, data) => { - if (data.length !== args.length) { - throw new Error( - `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, - ); - } - return compactAddLength( - u8aConcat( - this.registry.createType('ContractSelector', selector).toU8a(), - ...args.map(({ type: { lookupName, type } }, index) => - this.registry.createType(lookupName || type, data[index]).toU8a(), - ), - ), - ); - }; -} diff --git a/.api-contract/build/Abi/toLatestCompatible.d.ts b/.api-contract/build/Abi/toLatestCompatible.d.ts deleted file mode 100644 index e5db5e1e..00000000 --- a/.api-contract/build/Abi/toLatestCompatible.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { - ContractMetadataV4, - ContractMetadataV5, - ContractMetadataV6, -} from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -import type { ContractMetadataSupported } from './index.js'; -export declare const enumVersions: readonly ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; -type Versions = (typeof enumVersions)[number] | 'V0'; -type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; -export declare function v6ToLatestCompatible( - _registry: Registry, - v6: ContractMetadataV6, -): ContractMetadataV6; -export declare function v5ToLatestCompatible( - _registry: Registry, - v5: ContractMetadataV5, -): ContractMetadataV5; -export declare function v4ToLatestCompatible( - _registry: Registry, - v4: ContractMetadataV4, -): ContractMetadataV4; -export declare const v3ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV3, -) => ContractMetadataSupported; -export declare const v2ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV2, -) => ContractMetadataSupported; -export declare const v1ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV1, -) => ContractMetadataSupported; -export declare const v0ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV0, -) => ContractMetadataSupported; -export declare const convertVersions: [Versions, Converter][]; -export {}; diff --git a/.api-contract/build/Abi/toLatestCompatible.js b/.api-contract/build/Abi/toLatestCompatible.js deleted file mode 100644 index 009dd5e6..00000000 --- a/.api-contract/build/Abi/toLatestCompatible.js +++ /dev/null @@ -1,30 +0,0 @@ -import { v0ToV1 } from './toV1.js'; -import { v1ToV2 } from './toV2.js'; -import { v2ToV3 } from './toV3.js'; -import { v3ToV4 } from './toV4.js'; -export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; -function createConverter(next, step) { - return (registry, input) => next(registry, step(registry, input)); -} -export function v6ToLatestCompatible(_registry, v6) { - return v6; -} -export function v5ToLatestCompatible(_registry, v5) { - return v5; -} -export function v4ToLatestCompatible(_registry, v4) { - return v4; -} -export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4); -export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3); -export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); -export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); -export const convertVersions = [ - ['V6', v6ToLatestCompatible], - ['V5', v5ToLatestCompatible], - ['V4', v4ToLatestCompatible], - ['V3', v3ToLatestCompatible], - ['V2', v2ToLatestCompatible], - ['V1', v1ToLatestCompatible], - ['V0', v0ToLatestCompatible], -]; diff --git a/.api-contract/build/Abi/toV1.d.ts b/.api-contract/build/Abi/toV1.d.ts deleted file mode 100644 index dc41ae43..00000000 --- a/.api-contract/build/Abi/toV1.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { ContractMetadataV0, ContractMetadataV1 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -export declare function v0ToV1(registry: Registry, v0: ContractMetadataV0): ContractMetadataV1; diff --git a/.api-contract/build/Abi/toV1.js b/.api-contract/build/Abi/toV1.js deleted file mode 100644 index 06c9c5fe..00000000 --- a/.api-contract/build/Abi/toV1.js +++ /dev/null @@ -1,24 +0,0 @@ -import { convertSiV0toV1 } from '@polkadot/types'; -import { objectSpread } from '@polkadot/util'; -function v0ToV1Names(all) { - return all.map(e => - objectSpread({}, e, { - name: Array.isArray(e.name) ? e.name : [e.name], - }), - ); -} -export function v0ToV1(registry, v0) { - if (!v0.metadataVersion.length) { - throw new Error('Invalid format for V0 (detected) contract metadata'); - } - return registry.createType( - 'ContractMetadataV1', - objectSpread({}, v0, { - spec: objectSpread({}, v0.spec, { - constructors: v0ToV1Names(v0.spec.constructors), - messages: v0ToV1Names(v0.spec.messages), - }), - types: convertSiV0toV1(registry, v0.types), - }), - ); -} diff --git a/.api-contract/build/Abi/toV2.d.ts b/.api-contract/build/Abi/toV2.d.ts deleted file mode 100644 index 3de0aa9b..00000000 --- a/.api-contract/build/Abi/toV2.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { ContractMetadataV1, ContractMetadataV2 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -export declare function v1ToV2(registry: Registry, v1: ContractMetadataV1): ContractMetadataV2; diff --git a/.api-contract/build/Abi/toV2.js b/.api-contract/build/Abi/toV2.js deleted file mode 100644 index 9214a3bf..00000000 --- a/.api-contract/build/Abi/toV2.js +++ /dev/null @@ -1,33 +0,0 @@ -import { objectSpread } from '@polkadot/util'; -const ARG_TYPES = { - ContractConstructorSpec: 'ContractMessageParamSpecV2', - ContractEventSpec: 'ContractEventParamSpecV2', - ContractMessageSpec: 'ContractMessageParamSpecV2', -}; -function v1ToV2Label(entry) { - return objectSpread({}, entry, { - label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, - }); -} -function v1ToV2Labels(registry, outType, all) { - return all.map(e => - registry.createType( - `${outType}V2`, - objectSpread(v1ToV2Label(e), { - args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), - }), - ), - ); -} -export function v1ToV2(registry, v1) { - return registry.createType( - 'ContractMetadataV2', - objectSpread({}, v1, { - spec: objectSpread({}, v1.spec, { - constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), - events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), - messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), - }), - }), - ); -} diff --git a/.api-contract/build/Abi/toV3.d.ts b/.api-contract/build/Abi/toV3.d.ts deleted file mode 100644 index 10cc0d67..00000000 --- a/.api-contract/build/Abi/toV3.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { ContractMetadataV2, ContractMetadataV3 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -export declare function v2ToV3(registry: Registry, v2: ContractMetadataV2): ContractMetadataV3; diff --git a/.api-contract/build/Abi/toV3.js b/.api-contract/build/Abi/toV3.js deleted file mode 100644 index 212c2297..00000000 --- a/.api-contract/build/Abi/toV3.js +++ /dev/null @@ -1,14 +0,0 @@ -import { objectSpread } from '@polkadot/util'; -export function v2ToV3(registry, v2) { - return registry.createType( - 'ContractMetadataV3', - objectSpread({}, v2, { - spec: objectSpread({}, v2.spec, { - constructors: v2.spec.constructors.map(c => - // V3 introduces the payable flag on constructors, for - registry.createType('ContractConstructorSpecV4', objectSpread({}, c)), - ), - messages: v3.spec.messages.map(m => - registry.createType('ContractMessageSpecV3', objectSpread({}, m)), - ), - }), - version: registry.createType('Text', '4'), - }), - ); -} diff --git a/.api-contract/build/LICENSE b/.api-contract/build/LICENSE deleted file mode 100644 index 0d381b2e..00000000 --- a/.api-contract/build/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - -3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - -9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - -END OF TERMS AND CONDITIONS - -APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - -Copyright [yyyy] [name of copyright owner] - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. diff --git a/.api-contract/build/README.md b/.api-contract/build/README.md deleted file mode 100644 index f50beb5f..00000000 --- a/.api-contract/build/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# @polkadot/api-contract - -Interfaces to allow for the encoding and decoding of Substrate contract ABIs. diff --git a/.api-contract/build/augment.d.ts b/.api-contract/build/augment.d.ts deleted file mode 100644 index 40e6ced0..00000000 --- a/.api-contract/build/augment.d.ts +++ /dev/null @@ -1 +0,0 @@ -import '@polkadot/api-augment'; diff --git a/.api-contract/build/augment.js b/.api-contract/build/augment.js deleted file mode 100644 index 40e6ced0..00000000 --- a/.api-contract/build/augment.js +++ /dev/null @@ -1 +0,0 @@ -import '@polkadot/api-augment'; diff --git a/.api-contract/build/base/Base.d.ts b/.api-contract/build/base/Base.d.ts deleted file mode 100644 index 0c05a333..00000000 --- a/.api-contract/build/base/Base.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Registry } from '@polkadot/types/types'; -import { Abi } from '../Abi/index.js'; -export declare abstract class Base { - readonly abi: Abi; - readonly api: ApiBase; - protected readonly _decorateMethod: DecorateMethod; - protected readonly _isWeightV1: boolean; - constructor( - api: ApiBase, - abi: string | Record | Abi, - decorateMethod: DecorateMethod, - ); - get registry(): Registry; -} diff --git a/.api-contract/build/base/Base.js b/.api-contract/build/base/Base.js deleted file mode 100644 index 42b006ed..00000000 --- a/.api-contract/build/base/Base.js +++ /dev/null @@ -1,34 +0,0 @@ -import { isFunction } from '@polkadot/util'; -import { Abi } from '../Abi/index.js'; -export class Base { - abi; - api; - _decorateMethod; - _isWeightV1; - constructor(api, abi, decorateMethod) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.contracts || - !isFunction(api.tx.contracts.instantiateWithCode) || - api.tx.contracts.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', - ); - } - this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - get registry() { - return this.api.registry; - } -} diff --git a/.api-contract/build/base/BaseRevive.d.ts b/.api-contract/build/base/BaseRevive.d.ts deleted file mode 100644 index 51285215..00000000 --- a/.api-contract/build/base/BaseRevive.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Registry } from '@polkadot/types/types'; -import { Abi } from '../Abi/index.js'; -export declare abstract class BaseRevive { - readonly abi: Abi; - readonly api: ApiBase; - protected readonly _decorateMethod: DecorateMethod; - protected readonly _isWeightV1: boolean; - constructor( - api: ApiBase, - abi: string | Record | Abi, - decorateMethod: DecorateMethod, - ); - get registry(): Registry; -} diff --git a/.api-contract/build/base/BaseRevive.js b/.api-contract/build/base/BaseRevive.js deleted file mode 100644 index b8fe0161..00000000 --- a/.api-contract/build/base/BaseRevive.js +++ /dev/null @@ -1,34 +0,0 @@ -import { isFunction } from '@polkadot/util'; -import { Abi } from '../Abi/index.js'; -export class BaseRevive { - abi; - api; - _decorateMethod; - _isWeightV1; - constructor(api, abi, decorateMethod) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.revive || - !isFunction(api.tx.revive.instantiateWithCode) || - api.tx.revive.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.reviveApi || !isFunction(api.call.reviveApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', - ); - } - this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - get registry() { - return this.api.registry; - } -} diff --git a/.api-contract/build/base/Blueprint.d.ts b/.api-contract/build/base/Blueprint.d.ts deleted file mode 100644 index ce3a70cd..00000000 --- a/.api-contract/build/base/Blueprint.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Hash } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { Base } from './Base.js'; -import { Contract } from './Contract.js'; -export type BlueprintConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, -) => Blueprint; -export declare class BlueprintSubmittableResult< - ApiType extends ApiTypes, -> extends SubmittableResult { - readonly contract?: Contract | undefined; - constructor(result: ISubmittableResult, contract?: Contract); -} -export declare class Blueprint extends Base { - #private; - /** - * @description The on-chain code hash for this blueprint - */ - readonly codeHash: Hash; - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendBlueprint( - type: ApiType, - decorateMethod: DecorateMethod, -): BlueprintConstructor; diff --git a/.api-contract/build/base/Blueprint.js b/.api-contract/build/base/Blueprint.js deleted file mode 100644 index 9edb5332..00000000 --- a/.api-contract/build/base/Blueprint.js +++ /dev/null @@ -1,71 +0,0 @@ -import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, isUndefined } from '@polkadot/util'; -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class BlueprintSubmittableResult extends SubmittableResult { - contract; - constructor(result, contract) { - super(result); - this.contract = contract; - } -} -export class Blueprint extends Base { - /** - * @description The on-chain code hash for this blueprint - */ - codeHash; - __internal__tx = {}; - constructor(api, abi, codeHash, decorateMethod) { - super(api, abi, decorateMethod); - this.codeHash = this.registry.createType('Hash', codeHash); - this.abi.constructors.forEach(c => { - if (isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__deploy(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__deploy = ( - constructorOrId, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new BlueprintSubmittableResult( - result, - applyOnEvent( - result, - ['Instantiated'], - ([record]) => - new Contract(this.api, this.abi, record.event.data[1], this._decorateMethod), - ), - ), - ); - }; -} -export function extendBlueprint(type, decorateMethod) { - return class extends Blueprint { - static __BlueprintType = type; - constructor(api, abi, codeHash) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/build/base/BlueprintRevive.d.ts b/.api-contract/build/base/BlueprintRevive.d.ts deleted file mode 100644 index 56f6f57f..00000000 --- a/.api-contract/build/base/BlueprintRevive.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { BaseRevive } from './BaseRevive.js'; -export type BlueprintReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, -) => BlueprintRevive; -export declare class BlueprintRevive extends BaseRevive { - #private; - /** - * @description The on-chain code hash for this blueprint - */ - readonly codeHash: Hash; - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendBlueprint( - type: ApiType, - decorateMethod: DecorateMethod, -): BlueprintReviveConstructor; diff --git a/.api-contract/build/base/BlueprintRevive.js b/.api-contract/build/base/BlueprintRevive.js deleted file mode 100644 index 65a8344d..00000000 --- a/.api-contract/build/base/BlueprintRevive.js +++ /dev/null @@ -1,68 +0,0 @@ -import { BN_ZERO, isUndefined } from '@polkadot/util'; -import { BaseRevive } from './BaseRevive.js'; -import { BlueprintSubmittableResult } from './Blueprint.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class BlueprintRevive extends BaseRevive { - /** - * @description The on-chain code hash for this blueprint - */ - codeHash; - __internal__tx = {}; - constructor(api, abi, codeHash, decorateMethod) { - super(api, abi, decorateMethod); - this.codeHash = this.registry.createType('Hash', codeHash); - this.abi.constructors.forEach(c => { - if (isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__deploy(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__deploy = ( - constructorOrId, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new BlueprintSubmittableResult( - result, - (() => { - if (result.status.isInBlock || result.status.isFinalized) { - return new Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ); - } - return undefined; - })(), - ), - ); - }; -} -export function extendBlueprint(type, decorateMethod) { - return class extends BlueprintRevive { - static __BlueprintType = type; - constructor(api, abi, codeHash) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/build/base/Code.d.ts b/.api-contract/build/base/Code.d.ts deleted file mode 100644 index ab612cef..00000000 --- a/.api-contract/build/base/Code.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { Base } from './Base.js'; -import { Blueprint } from './Blueprint.js'; -import { Contract } from './Contract.js'; -export type CodeConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, -) => Code; -export declare class CodeSubmittableResult extends SubmittableResult { - readonly blueprint?: Blueprint | undefined; - readonly contract?: Contract | undefined; - constructor( - result: ISubmittableResult, - blueprint?: Blueprint | undefined, - contract?: Contract | undefined, - ); -} -export declare class Code extends Base { - #private; - readonly code: Uint8Array; - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendCode( - type: ApiType, - decorateMethod: DecorateMethod, -): CodeConstructor; diff --git a/.api-contract/build/base/Code.js b/.api-contract/build/base/Code.js deleted file mode 100644 index 74cf92b1..00000000 --- a/.api-contract/build/base/Code.js +++ /dev/null @@ -1,88 +0,0 @@ -import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { Blueprint } from './Blueprint.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class CodeSubmittableResult extends SubmittableResult { - blueprint; - contract; - constructor(result, blueprint, contract) { - super(result); - this.blueprint = blueprint; - this.contract = contract; - } -} -function isValidCode(code) { - return isWasm(code) || isRiscV(code); -} -export class Code extends Base { - code; - __internal__tx = {}; - constructor(api, abi, wasm, decorateMethod) { - super(api, abi, decorateMethod); - this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - this.abi.constructors.forEach(c => { - if (isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__instantiate(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__instantiate = ( - constructorOrId, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - compactAddLength(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new CodeSubmittableResult( - result, - ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], records => - records.reduce( - ([blueprint, contract], { event }) => - this.api.events.contracts.Instantiated.is(event) - ? [ - blueprint, - new Contract(this.api, this.abi, event.data[1], this._decorateMethod), - ] - : this.api.events.contracts.CodeStored.is(event) - ? [ - new Blueprint(this.api, this.abi, event.data[0], this._decorateMethod), - contract, - ] - : [blueprint, contract], - [undefined, undefined], - ), - ) || [undefined, undefined]), - ), - ); - }; -} -export function extendCode(type, decorateMethod) { - return class extends Code { - static __CodeType = type; - constructor(api, abi, wasm) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/build/base/CodeRevive.d.ts b/.api-contract/build/base/CodeRevive.d.ts deleted file mode 100644 index 72a11c78..00000000 --- a/.api-contract/build/base/CodeRevive.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { BaseRevive } from './BaseRevive.js'; -import { BlueprintRevive } from './BlueprintRevive.js'; -import { Contract } from './Contract.js'; -export type CodeReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, -) => CodeRevive; -export declare class CodeReviveSubmittableResult< - ApiType extends ApiTypes, -> extends SubmittableResult { - readonly blueprint?: BlueprintRevive | undefined; - readonly contract?: Contract | undefined; - constructor( - result: ISubmittableResult, - blueprint?: BlueprintRevive | undefined, - contract?: Contract | undefined, - ); -} -export declare class CodeRevive extends BaseRevive { - #private; - readonly code: Uint8Array; - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendCode( - type: ApiType, - decorateMethod: DecorateMethod, -): CodeReviveConstructor; diff --git a/.api-contract/build/base/CodeRevive.js b/.api-contract/build/base/CodeRevive.js deleted file mode 100644 index 4c0740a1..00000000 --- a/.api-contract/build/base/CodeRevive.js +++ /dev/null @@ -1,82 +0,0 @@ -import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, compactAddLength, isRiscV, isUndefined, u8aToU8a } from '@polkadot/util'; -import { BaseRevive } from './BaseRevive.js'; -import { BlueprintRevive } from './BlueprintRevive.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; -export class CodeReviveSubmittableResult extends SubmittableResult { - blueprint; - contract; - constructor(result, blueprint, contract) { - super(result); - this.blueprint = blueprint; - this.contract = contract; - } -} -function isValidCode(code) { - return isRiscV(code); -} -export class CodeRevive extends BaseRevive { - code; - __internal__tx = {}; - constructor(api, abi, wasm, decorateMethod) { - super(api, abi, decorateMethod); - this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - this.abi.constructors.forEach(c => { - if (isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__instantiate(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__instantiate = ( - constructorOrId, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - compactAddLength(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new CodeReviveSubmittableResult( - result, - new BlueprintRevive( - this.api, - this.abi, - this.abi.info.source.wasmHash, - this._decorateMethod, - ), - new Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ), - ), - ); - }; -} -export function extendCode(type, decorateMethod) { - return class extends CodeRevive { - static __CodeType = type; - constructor(api, abi, wasm) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/build/base/Contract.d.ts b/.api-contract/build/base/Contract.d.ts deleted file mode 100644 index 3add8756..00000000 --- a/.api-contract/build/base/Contract.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { AccountId } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { DecodedEvent } from '../types.js'; -import type { MapMessageQuery, MapMessageTx } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { Base } from './Base.js'; -export type ContractConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, -) => Contract; -export declare class ContractSubmittableResult extends SubmittableResult { - readonly contractEvents?: DecodedEvent[] | undefined; - constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); -} -export declare class Contract extends Base { - #private; - /** - * @description The on-chain address for this contract - */ - readonly address: AccountId; - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, - decorateMethod: DecorateMethod, - ); - get query(): MapMessageQuery; - get tx(): MapMessageTx; -} -export declare function extendContract( - type: ApiType, - decorateMethod: DecorateMethod, -): ContractConstructor; diff --git a/.api-contract/build/base/Contract.js b/.api-contract/build/base/Contract.js deleted file mode 100644 index 673f05a2..00000000 --- a/.api-contract/build/base/Contract.js +++ /dev/null @@ -1,154 +0,0 @@ -import { map } from 'rxjs'; -import { SubmittableResult } from '@polkadot/api'; -import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { convertWeight, withMeta } from './util.js'; -const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); -const l = logger('Contract'); -function createQuery(meta, fn) { - return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); -} -function createTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); -} -export class ContractSubmittableResult extends SubmittableResult { - contractEvents; - constructor(result, contractEvents) { - super(result); - this.contractEvents = contractEvents; - } -} -export class Contract extends Base { - /** - * @description The on-chain address for this contract - */ - address; - __internal__query = {}; - __internal__tx = {}; - constructor(api, abi, address, decorateMethod) { - super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId', address); - this.abi.messages.forEach(m => { - if (isUndefined(this.__internal__tx[m.method])) { - this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); - } - if (isUndefined(this.__internal__query[m.method])) { - this.__internal__query[m.method] = createQuery(m, (f, o, p) => - this.__internal__read(m, o, p).send(f), - ); - } - }); - } - get query() { - return this.__internal__query; - } - get tx() { - return this.__internal__tx; - } - __internal__getGas = (_gasLimit, isCall = false) => { - const weight = convertWeight(_gasLimit); - if (weight.v1Weight.gt(BN_ZERO)) { - return weight; - } - return convertWeight( - isCall - ? MAX_CALL_GAS - : convertWeight( - this.api.consts.system.blockWeights - ? this.api.consts.system.blockWeights.maxBlock - : this.api.consts.system['maximumBlockWeight'], - ) - .v1Weight.muln(64) - .div(BN_HUNDRED), - ); - }; - __internal__exec = ( - messageOrId, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - result => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => - records - .map(record => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${error.message}`); - return null; - } - }) - .filter(decoded => !!decoded), - ), - ), - ); - }; - __internal__read = ( - messageOrId, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - const message = this.abi.findMessage(messageOrId); - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod(origin => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.__internal__getGas(gasLimit, true).v1Weight - : this.__internal__getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !convertWeight(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - })), - ), - ), - }; - }; -} -export function extendContract(type, decorateMethod) { - return class extends Contract { - static __ContractType = type; - constructor(api, abi, address) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/build/base/ContractRevive.d.ts b/.api-contract/build/base/ContractRevive.d.ts deleted file mode 100644 index 241b4d37..00000000 --- a/.api-contract/build/base/ContractRevive.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { DecodedEvent } from '../types.js'; -import type { MapMessageQuery, MapMessageTx } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { BaseRevive } from './BaseRevive.js'; -export type ContractReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, -) => ContractRevive; -export declare class ContractSubmittableResult extends SubmittableResult { - readonly contractEvents?: DecodedEvent[] | undefined; - constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); -} -export declare class ContractRevive extends BaseRevive { - #private; - /** - * @description The on-chain address for this contract - */ - readonly address: AccountId20; - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId20, - decorateMethod: DecorateMethod, - ); - get query(): MapMessageQuery; - get tx(): MapMessageTx; -} -export declare function extendContract( - type: ApiType, - decorateMethod: DecorateMethod, -): ContractReviveConstructor; diff --git a/.api-contract/build/base/ContractRevive.js b/.api-contract/build/base/ContractRevive.js deleted file mode 100644 index ab5ac9eb..00000000 --- a/.api-contract/build/base/ContractRevive.js +++ /dev/null @@ -1,154 +0,0 @@ -import { map } from 'rxjs'; -import { SubmittableResult } from '@polkadot/api'; -import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; -import { applyOnEvent } from '../util.js'; -import { BaseRevive } from './BaseRevive.js'; -import { convertWeight, withMeta } from './util.js'; -const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); -const l = logger('Contract'); -function createQuery(meta, fn) { - return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); -} -function createTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); -} -export class ContractSubmittableResult extends SubmittableResult { - contractEvents; - constructor(result, contractEvents) { - super(result); - this.contractEvents = contractEvents; - } -} -export class ContractRevive extends BaseRevive { - /** - * @description The on-chain address for this contract - */ - address; - __internal__query = {}; - __internal__tx = {}; - constructor(api, abi, address, decorateMethod) { - super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); - this.abi.messages.forEach(m => { - if (isUndefined(this.__internal__tx[m.method])) { - this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); - } - if (isUndefined(this.__internal__query[m.method])) { - this.__internal__query[m.method] = createQuery(m, (f, o, p) => - this.__internal__read(m, o, p).send(f), - ); - } - }); - } - get query() { - return this.__internal__query; - } - get tx() { - return this.__internal__tx; - } - __internal__getGas = (_gasLimit, isCall = false) => { - const weight = convertWeight(_gasLimit); - if (weight.v1Weight.gt(BN_ZERO)) { - return weight; - } - return convertWeight( - isCall - ? MAX_CALL_GAS - : convertWeight( - this.api.consts.system.blockWeights - ? this.api.consts.system.blockWeights.maxBlock - : this.api.consts.system['maximumBlockWeight'], - ) - .v1Weight.muln(64) - .div(BN_HUNDRED), - ); - }; - __internal__exec = ( - messageOrId, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - result => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => - records - .map(record => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${error.message}`); - return null; - } - }) - .filter(decoded => !!decoded), - ), - ), - ); - }; - __internal__read = ( - messageOrId, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }, - params, - ) => { - const message = this.abi.findMessage(messageOrId); - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod(origin => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.__internal__getGas(gasLimit, true).v1Weight - : this.__internal__getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !convertWeight(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - })), - ), - ), - }; - }; -} -export function extendContract(type, decorateMethod) { - return class extends ContractRevive { - static __ContractType = type; - constructor(api, abi, address) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/build/base/index.d.ts b/.api-contract/build/base/index.d.ts deleted file mode 100644 index 30a149b4..00000000 --- a/.api-contract/build/base/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; -export { BlueprintRevive } from './BlueprintRevive.js'; -export { Code, CodeSubmittableResult, extendCode } from './Code.js'; -export { CodeRevive } from './CodeRevive.js'; -export { Contract, extendContract } from './Contract.js'; -export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-contract/build/base/index.js b/.api-contract/build/base/index.js deleted file mode 100644 index 30a149b4..00000000 --- a/.api-contract/build/base/index.js +++ /dev/null @@ -1,6 +0,0 @@ -export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; -export { BlueprintRevive } from './BlueprintRevive.js'; -export { Code, CodeSubmittableResult, extendCode } from './Code.js'; -export { CodeRevive } from './CodeRevive.js'; -export { Contract, extendContract } from './Contract.js'; -export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-contract/build/base/mock.d.ts b/.api-contract/build/base/mock.d.ts deleted file mode 100644 index 51f21099..00000000 --- a/.api-contract/build/base/mock.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -export declare const mockApi: ApiBase<'promise'>; diff --git a/.api-contract/build/base/mock.js b/.api-contract/build/base/mock.js deleted file mode 100644 index 55a4f489..00000000 --- a/.api-contract/build/base/mock.js +++ /dev/null @@ -1,22 +0,0 @@ -import { TypeRegistry } from '@polkadot/types'; -const registry = new TypeRegistry(); -const instantiateWithCode = () => { - throw new Error('mock'); -}; -instantiateWithCode.meta = { args: new Array(6) }; -export const mockApi = { - call: { - contractsApi: { - call: () => { - throw new Error('mock'); - }, - }, - }, - isConnected: true, - registry, - tx: { - contracts: { - instantiateWithCode, - }, - }, -}; diff --git a/.api-contract/build/base/types.d.ts b/.api-contract/build/base/types.d.ts deleted file mode 100644 index 1841c9b7..00000000 --- a/.api-contract/build/base/types.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { Observable } from 'rxjs'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes, ObsInnerType } from '@polkadot/api/types'; -import type { AccountId } from '@polkadot/types/interfaces'; -import type { - AbiMessage, - BlueprintOptions, - ContractCallOutcome, - ContractOptions, -} from '../types.js'; -export interface MessageMeta { - readonly meta: AbiMessage; -} -export interface BlueprintDeploy extends MessageMeta { - (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; -} -export interface ContractQuery extends MessageMeta { - ( - origin: AccountId | string | Uint8Array, - options: ContractOptions, - ...params: unknown[] - ): ContractCallResult; -} -export interface ContractTx extends MessageMeta { - (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; -} -export type ContractGeneric = ( - messageOrId: AbiMessage | string | number, - options: O, - ...params: unknown[] -) => T; -export type ContractCallResult = ApiType extends 'rxjs' - ? Observable - : Promise>>; -export interface ContractCallSend { - send(account: string | AccountId | Uint8Array): ContractCallResult; -} -export type MapConstructorExec = Record>; -export type MapMessageTx = Record>; -export type MapMessageQuery = Record>; diff --git a/.api-contract/build/base/types.js b/.api-contract/build/base/types.js deleted file mode 100644 index cb0ff5c3..00000000 --- a/.api-contract/build/base/types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/.api-contract/build/base/util.d.ts b/.api-contract/build/base/util.d.ts deleted file mode 100644 index 27d26904..00000000 --- a/.api-contract/build/base/util.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { SubmittableResult } from '@polkadot/api'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes } from '@polkadot/api/types'; -import type { WeightV1, WeightV2 } from '@polkadot/types/interfaces'; -import type { BN } from '@polkadot/util'; -import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.js'; -import type { BlueprintDeploy, ContractGeneric } from './types.js'; -export declare const EMPTY_SALT: Uint8Array; -export declare function withMeta< - T extends { - meta: AbiMessage; - }, ->(meta: AbiMessage, creator: Omit): T; -export declare function createBluePrintTx( - meta: AbiMessage, - fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic, -): BlueprintDeploy; -export declare function createBluePrintWithId( - fn: ( - constructorOrId: AbiConstructor | string | number, - options: BlueprintOptions, - params: unknown[], - ) => T, -): ContractGeneric; -export declare function encodeSalt(salt?: Uint8Array | string | null): Uint8Array; -export declare function convertWeight( - weight: WeightV1 | WeightV2 | bigint | string | number | BN, -): WeightAll; -export declare function isWeightV2( - weight: WeightV1 | WeightV2 | bigint | string | number | BN, -): weight is WeightV2; diff --git a/.api-contract/build/base/util.js b/.api-contract/build/base/util.js deleted file mode 100644 index 551dad16..00000000 --- a/.api-contract/build/base/util.js +++ /dev/null @@ -1,33 +0,0 @@ -import { Bytes } from '@polkadot/types'; -import { bnToBn, compactAddLength, u8aToU8a } from '@polkadot/util'; -import { randomAsU8a } from '@polkadot/util-crypto'; -export const EMPTY_SALT = new Uint8Array(); -export function withMeta(meta, creator) { - creator.meta = meta; - return creator; -} -export function createBluePrintTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); -} -export function createBluePrintWithId(fn) { - return (constructorOrId, options, ...params) => fn(constructorOrId, options, params); -} -export function encodeSalt(salt = randomAsU8a()) { - return salt instanceof Bytes - ? salt - : salt?.length - ? compactAddLength(u8aToU8a(salt)) - : EMPTY_SALT; -} -export function convertWeight(weight) { - const [refTime, proofSize] = isWeightV2(weight) - ? [weight.refTime.toBn(), weight.proofSize.toBn()] - : [bnToBn(weight), undefined]; - return { - v1Weight: refTime, - v2Weight: { proofSize, refTime }, - }; -} -export function isWeightV2(weight) { - return !!weight.proofSize; -} diff --git a/.api-contract/build/bundle-polkadot-api-contract.js b/.api-contract/build/bundle-polkadot-api-contract.js deleted file mode 100644 index f9325d52..00000000 --- a/.api-contract/build/bundle-polkadot-api-contract.js +++ /dev/null @@ -1,1754 +0,0 @@ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' - ? factory( - exports, - require('@polkadot/types'), - require('@polkadot/util'), - require('@polkadot/api'), - require('@polkadot/util-crypto'), - ) - : typeof define === 'function' && define.amd - ? define( - [ - 'exports', - '@polkadot/types', - '@polkadot/util', - '@polkadot/api', - '@polkadot/util-crypto', - ], - factory, - ) - : ((global = typeof globalThis !== 'undefined' ? globalThis : global || self), - factory( - (global.polkadotApiContract = {}), - global.polkadotTypes, - global.polkadotUtil, - global.polkadotApi, - global.polkadotUtilCrypto, - )); -})(this, function (exports, types, util, api, utilCrypto) { - 'use strict'; - - const global = - typeof globalThis !== 'undefined' ? globalThis : typeof self !== 'undefined' ? self : window; - - var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null; - var TypeDefInfo; - (function (TypeDefInfo) { - TypeDefInfo[(TypeDefInfo['BTreeMap'] = 0)] = 'BTreeMap'; - TypeDefInfo[(TypeDefInfo['BTreeSet'] = 1)] = 'BTreeSet'; - TypeDefInfo[(TypeDefInfo['Compact'] = 2)] = 'Compact'; - TypeDefInfo[(TypeDefInfo['DoNotConstruct'] = 3)] = 'DoNotConstruct'; - TypeDefInfo[(TypeDefInfo['Enum'] = 4)] = 'Enum'; - TypeDefInfo[(TypeDefInfo['HashMap'] = 5)] = 'HashMap'; - TypeDefInfo[(TypeDefInfo['Int'] = 6)] = 'Int'; - TypeDefInfo[(TypeDefInfo['Linkage'] = 7)] = 'Linkage'; - TypeDefInfo[(TypeDefInfo['Null'] = 8)] = 'Null'; - TypeDefInfo[(TypeDefInfo['Option'] = 9)] = 'Option'; - TypeDefInfo[(TypeDefInfo['Plain'] = 10)] = 'Plain'; - TypeDefInfo[(TypeDefInfo['Range'] = 11)] = 'Range'; - TypeDefInfo[(TypeDefInfo['RangeInclusive'] = 12)] = 'RangeInclusive'; - TypeDefInfo[(TypeDefInfo['Result'] = 13)] = 'Result'; - TypeDefInfo[(TypeDefInfo['Set'] = 14)] = 'Set'; - TypeDefInfo[(TypeDefInfo['Si'] = 15)] = 'Si'; - TypeDefInfo[(TypeDefInfo['Struct'] = 16)] = 'Struct'; - TypeDefInfo[(TypeDefInfo['Tuple'] = 17)] = 'Tuple'; - TypeDefInfo[(TypeDefInfo['UInt'] = 18)] = 'UInt'; - TypeDefInfo[(TypeDefInfo['Vec'] = 19)] = 'Vec'; - TypeDefInfo[(TypeDefInfo['VecFixed'] = 20)] = 'VecFixed'; - TypeDefInfo[(TypeDefInfo['WrapperKeepOpaque'] = 21)] = 'WrapperKeepOpaque'; - TypeDefInfo[(TypeDefInfo['WrapperOpaque'] = 22)] = 'WrapperOpaque'; - })(TypeDefInfo || (TypeDefInfo = {})); - - function v0ToV1Names(all) { - return all.map(e => - util.objectSpread({}, e, { - name: Array.isArray(e.name) ? e.name : [e.name], - }), - ); - } - function v0ToV1(registry, v0) { - if (!v0.metadataVersion.length) { - throw new Error('Invalid format for V0 (detected) contract metadata'); - } - return registry.createType( - 'ContractMetadataV1', - util.objectSpread({}, v0, { - spec: util.objectSpread({}, v0.spec, { - constructors: v0ToV1Names(v0.spec.constructors), - messages: v0ToV1Names(v0.spec.messages), - }), - types: types.convertSiV0toV1(registry, v0.types), - }), - ); - } - - const ARG_TYPES = { - ContractConstructorSpec: 'ContractMessageParamSpecV2', - ContractEventSpec: 'ContractEventParamSpecV2', - ContractMessageSpec: 'ContractMessageParamSpecV2', - }; - function v1ToV2Label(entry) { - return util.objectSpread({}, entry, { - label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, - }); - } - function v1ToV2Labels(registry, outType, all) { - return all.map(e => - registry.createType( - `${outType}V2`, - util.objectSpread(v1ToV2Label(e), { - args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), - }), - ), - ); - } - function v1ToV2(registry, v1) { - return registry.createType( - 'ContractMetadataV2', - util.objectSpread({}, v1, { - spec: util.objectSpread({}, v1.spec, { - constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), - events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), - messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), - }), - }), - ); - } - - function v2ToV3(registry, v2) { - return registry.createType( - 'ContractMetadataV3', - util.objectSpread({}, v2, { - spec: util.objectSpread({}, v2.spec, { - constructors: v2.spec.constructors.map(c => - registry.createType( - 'ContractConstructorSpecV3', - util.objectSpread({}, c, { payable: true }), - ), - ), - }), - }), - ); - } - - function v3ToV4(registry, v3) { - return registry.createType( - 'ContractMetadataV4', - util.objectSpread({}, v3, { - spec: util.objectSpread({}, v3.spec, { - constructors: v3.spec.constructors.map(c => - registry.createType('ContractConstructorSpecV4', util.objectSpread({}, c)), - ), - messages: v3.spec.messages.map(m => - registry.createType('ContractMessageSpecV3', util.objectSpread({}, m)), - ), - }), - version: registry.createType('Text', '4'), - }), - ); - } - - const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; - function createConverter(next, step) { - return (registry, input) => next(registry, step(registry, input)); - } - function v6ToLatestCompatible(_registry, v6) { - return v6; - } - function v5ToLatestCompatible(_registry, v5) { - return v5; - } - function v4ToLatestCompatible(_registry, v4) { - return v4; - } - const v3ToLatestCompatible = createConverter(v4ToLatestCompatible, v3ToV4); - const v2ToLatestCompatible = createConverter(v3ToLatestCompatible, v2ToV3); - const v1ToLatestCompatible = createConverter(v2ToLatestCompatible, v1ToV2); - const v0ToLatestCompatible = createConverter(v1ToLatestCompatible, v0ToV1); - const convertVersions = [ - ['V6', v6ToLatestCompatible], - ['V5', v5ToLatestCompatible], - ['V4', v4ToLatestCompatible], - ['V3', v3ToLatestCompatible], - ['V2', v2ToLatestCompatible], - ['V1', v1ToLatestCompatible], - ['V0', v0ToLatestCompatible], - ]; - - const l$2 = util.logger('Abi'); - const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; - function findMessage(list, messageOrId) { - const message = util.isNumber(messageOrId) - ? list[messageOrId] - : util.isString(messageOrId) - ? list.find(({ identifier }) => - [identifier, util.stringCamelCase(identifier)].includes(messageOrId.toString()), - ) - : messageOrId; - return util.assertReturn( - message, - () => `Attempted to call an invalid contract interface, ${util.stringify(messageOrId)}`, - ); - } - function getMetadata(registry, json) { - const vx = enumVersions.find(v => util.isObject(json[v])); - const jsonVersion = json.version; - console.log('parsing metadata'); - console.log(jsonVersion); - console.log(enumVersions); - if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { - throw new Error(`Unable to handle version ${jsonVersion}`); - } - console.log('parsed'); - console.log(vx); - const metadata = registry.createType( - 'ContractMetadata', - vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, - ); - console.log('m'); - const converter = convertVersions.find(([v]) => metadata[`is${v}`]); - if (!converter) { - throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); - } - console.log('converter'); - const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); - console.log('up'); - return upgradedMetadata; - } - function parseJson(json, chainProperties) { - console.log('parsing json'); - const registry = new types.TypeRegistry(); - const info = registry.createType('ContractProjectInfo', json); - const metadata = getMetadata(registry, json); - const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); - registry.setLookup(lookup); - if (chainProperties) { - registry.setChainProperties(chainProperties); - } - lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); - console.log('warmed up'); - return [json, registry, metadata, info]; - } - function isTypeSpec(value) { - return ( - !!value && - value instanceof Map && - !util.isUndefined(value.type) && - !util.isUndefined(value.displayName) - ); - } - function isOption(value) { - return !!value && value instanceof types.Option; - } - class Abi { - events; - constructors; - info; - json; - messages; - metadata; - registry; - environment = new Map(); - constructor(abiJson, chainProperties) { - console.log('constructor'); - [this.json, this.registry, this.metadata, this.info] = parseJson( - util.isString(abiJson) ? JSON.parse(abiJson) : abiJson, - chainProperties, - ); - console.log('parsed json'); - this.constructors = this.metadata.spec.constructors.map((spec, index) => - this.__internal__createMessage(spec, index, { - isConstructor: true, - isDefault: spec.default.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created constructors'); - this.events = this.metadata.spec.events.map((_, index) => - this.__internal__createEvent(index), - ); - console.log('created events'); - this.messages = this.metadata.spec.messages.map((spec, index) => - this.__internal__createMessage(spec, index, { - isDefault: spec.default.isTrue, - isMutating: spec.mutates.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created messages'); - for (const [key, opt] of this.metadata.spec.environment.entries()) { - if (isOption(opt)) { - if (opt.isSome) { - const value = opt.unwrap(); - if (util.isBn(value)) { - this.environment.set(key, value); - } else if (isTypeSpec(value)) { - this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); - } else { - throw new Error( - `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, - ); - } - } - } else { - throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); - } - } - console.log('created environment'); - } - decodeEvent(record) { - switch (this.metadata.version.toString()) { - case '4': - return this.__internal__decodeEventV4(record); - default: - return this.__internal__decodeEventV5(record); - } - } - __internal__decodeEventV5 = record => { - const signatureTopic = record.topics[0]; - const data = record.event.data[1]; - if (signatureTopic) { - const event = this.events.find( - e => - e.signatureTopic !== undefined && - e.signatureTopic !== null && - e.signatureTopic === signatureTopic.toHex(), - ); - if (event) { - return event.fromU8a(data); - } - } - const amountOfTopics = record.topics.length; - const potentialEvents = this.events.filter(e => { - if (e.signatureTopic !== null && e.signatureTopic !== undefined) { - return false; - } - const amountIndexed = e.args.filter(a => a.indexed).length; - if (amountIndexed !== amountOfTopics) { - return false; - } - return true; - }); - if (potentialEvents.length === 1) { - return potentialEvents[0].fromU8a(data); - } - throw new Error('Unable to determine event'); - }; - __internal__decodeEventV4 = record => { - const data = record.event.data[1]; - const index = data[0]; - const event = this.events[index]; - if (!event) { - throw new Error(`Unable to find event with index ${index}`); - } - return event.fromU8a(data.subarray(1)); - }; - decodeConstructor(data) { - return this.__internal__decodeMessage('message', this.constructors, data); - } - decodeMessage(data) { - return this.__internal__decodeMessage('message', this.messages, data); - } - findConstructor(constructorOrId) { - return findMessage(this.constructors, constructorOrId); - } - findMessage(messageOrId) { - return findMessage(this.messages, messageOrId); - } - __internal__createArgs = (args, spec) => { - return args.map(({ label, type }, index) => { - try { - if (!util.isObject(type)) { - throw new Error('Invalid type definition found'); - } - const displayName = type.displayName.length - ? type.displayName[type.displayName.length - 1].toString() - : undefined; - const camelName = util.stringCamelCase(label); - if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { - return { - name: camelName, - type: { - info: TypeDefInfo.Plain, - type: displayName, - }, - }; - } - const typeDef = this.registry.lookup.getTypeDef(type.type); - return { - name: camelName, - type: - displayName && !typeDef.type.startsWith(displayName) - ? { displayName, ...typeDef } - : typeDef, - }; - } catch (error) { - l$2.error(`Error expanding argument ${index} in ${util.stringify(spec)}`); - throw error; - } - }); - }; - __internal__createMessageParams = (args, spec) => { - return this.__internal__createArgs(args, spec); - }; - __internal__createEventParams = (args, spec) => { - const params = this.__internal__createArgs(args, spec); - return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); - }; - __internal__createEvent = index => { - switch (this.metadata.version.toString()) { - case '4': - return this.__internal__createEventV4(this.metadata.spec.events[index], index); - default: - return this.__internal__createEventV5(this.metadata.spec.events[index], index); - } - }; - __internal__createEventV5 = (spec, index) => { - const args = this.__internal__createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - event, - }), - identifier: [spec.module_path, spec.label].join('::'), - index, - signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, - }; - return event; - }; - __internal__createEventV4 = (spec, index) => { - const args = this.__internal__createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - event, - }), - identifier: spec.label.toString(), - index, - }; - return event; - }; - __internal__createMessage = (spec, index, add = {}) => { - const args = this.__internal__createMessageParams(spec.args, spec); - const identifier = spec.label.toString(); - const message = { - ...add, - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - message, - }), - identifier, - index, - isDefault: spec.default.isTrue, - method: util.stringCamelCase(identifier), - path: identifier.split('::').map(s => util.stringCamelCase(s)), - selector: spec.selector, - toU8a: params => this.__internal__encodeMessageArgs(spec, args, params), - }; - return message; - }; - __internal__decodeArgs = (args, data) => { - let offset = 0; - return args.map(({ type: { lookupName, type } }) => { - const value = this.registry.createType(lookupName || type, data.subarray(offset)); - offset += value.encodedLength; - return value; - }); - }; - __internal__decodeMessage = (type, list, data) => { - const [, trimmed] = util.compactStripLength(data); - const selector = trimmed.subarray(0, 4); - const message = list.find(m => m.selector.eq(selector)); - if (!message) { - throw new Error(`Unable to find ${type} with selector ${util.u8aToHex(selector)}`); - } - return message.fromU8a(trimmed.subarray(4)); - }; - __internal__encodeMessageArgs = ({ label, selector }, args, data) => { - if (data.length !== args.length) { - throw new Error( - `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, - ); - } - return util.compactAddLength( - util.u8aConcat( - this.registry.createType('ContractSelector', selector).toU8a(), - ...args.map(({ type: { lookupName, type } }, index) => - this.registry.createType(lookupName || type, data[index]).toU8a(), - ), - ), - ); - }; - } - - const packageInfo = { - name: '@polkadot/api-contract', - path: - { - url: - typeof document === 'undefined' && typeof location === 'undefined' - ? require('u' + 'rl').pathToFileURL(__filename).href - : typeof document === 'undefined' - ? location.href - : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-contract.js', document.baseURI).href, - } && - (typeof document === 'undefined' && typeof location === 'undefined' - ? require('u' + 'rl').pathToFileURL(__filename).href - : typeof document === 'undefined' - ? location.href - : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-contract.js', document.baseURI).href) - ? new URL( - typeof document === 'undefined' && typeof location === 'undefined' - ? require('u' + 'rl').pathToFileURL(__filename).href - : typeof document === 'undefined' - ? location.href - : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-contract.js', document.baseURI).href, - ).pathname.substring( - 0, - new URL( - typeof document === 'undefined' && typeof location === 'undefined' - ? require('u' + 'rl').pathToFileURL(__filename).href - : typeof document === 'undefined' - ? location.href - : (_documentCurrentScript && _documentCurrentScript.src) || - new URL('bundle-polkadot-api-contract.js', document.baseURI).href, - ).pathname.lastIndexOf('/') + 1, - ) - : 'auto', - type: 'esm', - version: '15.8.1', - }; - - function applyOnEvent(result, types, fn) { - if (result.isInBlock || result.isFinalized) { - const records = result.filterRecords('contracts', types); - if (records.length) { - return fn(records); - } - } - return undefined; - } - - class Base { - abi; - api; - _decorateMethod; - _isWeightV1; - constructor(api, abi, decorateMethod) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.contracts || - !util.isFunction(api.tx.contracts.instantiateWithCode) || - api.tx.contracts.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.contractsApi || !util.isFunction(api.call.contractsApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', - ); - } - this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - get registry() { - return this.api.registry; - } - } - - var extendStatics = function (d, b) { - extendStatics = - Object.setPrototypeOf || - ({ __proto__: [] } instanceof Array && - function (d, b) { - d.__proto__ = b; - }) || - function (d, b) { - for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; - }; - return extendStatics(d, b); - }; - function __extends(d, b) { - if (typeof b !== 'function' && b !== null) - throw new TypeError('Class extends value ' + String(b) + ' is not a constructor or null'); - extendStatics(d, b); - function __() { - this.constructor = d; - } - d.prototype = b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()); - } - function __values(o) { - var s = typeof Symbol === 'function' && Symbol.iterator, - m = s && o[s], - i = 0; - if (m) return m.call(o); - if (o && typeof o.length === 'number') - return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - }, - }; - throw new TypeError(s ? 'Object is not iterable.' : 'Symbol.iterator is not defined.'); - } - function __read(o, n) { - var m = typeof Symbol === 'function' && o[Symbol.iterator]; - if (!m) return o; - var i = m.call(o), - r, - ar = [], - e; - try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); - } catch (error) { - e = { error: error }; - } finally { - try { - if (r && !r.done && (m = i['return'])) m.call(i); - } finally { - if (e) throw e.error; - } - } - return ar; - } - function __spreadArray(to, from, pack) { - if (pack || arguments.length === 2) - for (var i = 0, l = from.length, ar; i < l; i++) { - if (ar || !(i in from)) { - if (!ar) ar = Array.prototype.slice.call(from, 0, i); - ar[i] = from[i]; - } - } - return to.concat(ar || Array.prototype.slice.call(from)); - } - typeof SuppressedError === 'function' - ? SuppressedError - : function (error, suppressed, message) { - var e = new Error(message); - return (e.name = 'SuppressedError'), (e.error = error), (e.suppressed = suppressed), e; - }; - - function isFunction(value) { - return typeof value === 'function'; - } - - function createErrorClass(createImpl) { - var _super = function (instance) { - Error.call(instance); - instance.stack = new Error().stack; - }; - var ctorFunc = createImpl(_super); - ctorFunc.prototype = Object.create(Error.prototype); - ctorFunc.prototype.constructor = ctorFunc; - return ctorFunc; - } - - var UnsubscriptionError = createErrorClass(function (_super) { - return function UnsubscriptionErrorImpl(errors) { - _super(this); - this.message = errors - ? errors.length + - ' errors occurred during unsubscription:\n' + - errors - .map(function (err, i) { - return i + 1 + ') ' + err.toString(); - }) - .join('\n ') - : ''; - this.name = 'UnsubscriptionError'; - this.errors = errors; - }; - }); - - function arrRemove(arr, item) { - if (arr) { - var index = arr.indexOf(item); - 0 <= index && arr.splice(index, 1); - } - } - - var Subscription = (function () { - function Subscription(initialTeardown) { - this.initialTeardown = initialTeardown; - this.closed = false; - this._parentage = null; - this._finalizers = null; - } - Subscription.prototype.unsubscribe = function () { - var e_1, _a, e_2, _b; - var errors; - if (!this.closed) { - this.closed = true; - var _parentage = this._parentage; - if (_parentage) { - this._parentage = null; - if (Array.isArray(_parentage)) { - try { - for ( - var _parentage_1 = __values(_parentage), _parentage_1_1 = _parentage_1.next(); - !_parentage_1_1.done; - _parentage_1_1 = _parentage_1.next() - ) { - var parent_1 = _parentage_1_1.value; - parent_1.remove(this); - } - } catch (e_1_1) { - e_1 = { error: e_1_1 }; - } finally { - try { - if (_parentage_1_1 && !_parentage_1_1.done && (_a = _parentage_1.return)) - _a.call(_parentage_1); - } finally { - if (e_1) throw e_1.error; - } - } - } else { - _parentage.remove(this); - } - } - var initialFinalizer = this.initialTeardown; - if (isFunction(initialFinalizer)) { - try { - initialFinalizer(); - } catch (e) { - errors = e instanceof UnsubscriptionError ? e.errors : [e]; - } - } - var _finalizers = this._finalizers; - if (_finalizers) { - this._finalizers = null; - try { - for ( - var _finalizers_1 = __values(_finalizers), _finalizers_1_1 = _finalizers_1.next(); - !_finalizers_1_1.done; - _finalizers_1_1 = _finalizers_1.next() - ) { - var finalizer = _finalizers_1_1.value; - try { - execFinalizer(finalizer); - } catch (err) { - errors = errors !== null && errors !== void 0 ? errors : []; - if (err instanceof UnsubscriptionError) { - errors = __spreadArray(__spreadArray([], __read(errors)), __read(err.errors)); - } else { - errors.push(err); - } - } - } - } catch (e_2_1) { - e_2 = { error: e_2_1 }; - } finally { - try { - if (_finalizers_1_1 && !_finalizers_1_1.done && (_b = _finalizers_1.return)) - _b.call(_finalizers_1); - } finally { - if (e_2) throw e_2.error; - } - } - } - if (errors) { - throw new UnsubscriptionError(errors); - } - } - }; - Subscription.prototype.add = function (teardown) { - var _a; - if (teardown && teardown !== this) { - if (this.closed) { - execFinalizer(teardown); - } else { - if (teardown instanceof Subscription) { - if (teardown.closed || teardown._hasParent(this)) { - return; - } - teardown._addParent(this); - } - (this._finalizers = (_a = this._finalizers) !== null && _a !== void 0 ? _a : []).push( - teardown, - ); - } - } - }; - Subscription.prototype._hasParent = function (parent) { - var _parentage = this._parentage; - return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent)); - }; - Subscription.prototype._addParent = function (parent) { - var _parentage = this._parentage; - this._parentage = Array.isArray(_parentage) - ? (_parentage.push(parent), _parentage) - : _parentage - ? [_parentage, parent] - : parent; - }; - Subscription.prototype._removeParent = function (parent) { - var _parentage = this._parentage; - if (_parentage === parent) { - this._parentage = null; - } else if (Array.isArray(_parentage)) { - arrRemove(_parentage, parent); - } - }; - Subscription.prototype.remove = function (teardown) { - var _finalizers = this._finalizers; - _finalizers && arrRemove(_finalizers, teardown); - if (teardown instanceof Subscription) { - teardown._removeParent(this); - } - }; - Subscription.EMPTY = (function () { - var empty = new Subscription(); - empty.closed = true; - return empty; - })(); - return Subscription; - })(); - Subscription.EMPTY; - function isSubscription(value) { - return ( - value instanceof Subscription || - (value && - 'closed' in value && - isFunction(value.remove) && - isFunction(value.add) && - isFunction(value.unsubscribe)) - ); - } - function execFinalizer(finalizer) { - if (isFunction(finalizer)) { - finalizer(); - } else { - finalizer.unsubscribe(); - } - } - - var config = { - onUnhandledError: null, - onStoppedNotification: null, - Promise: undefined, - useDeprecatedSynchronousErrorHandling: false, - useDeprecatedNextContext: false, - }; - - var timeoutProvider = { - setTimeout: function (handler, timeout) { - var args = []; - for (var _i = 2; _i < arguments.length; _i++) { - args[_i - 2] = arguments[_i]; - } - return setTimeout.apply(void 0, __spreadArray([handler, timeout], __read(args))); - }, - clearTimeout: function (handle) { - var delegate = timeoutProvider.delegate; - return ( - (delegate === null || delegate === void 0 ? void 0 : delegate.clearTimeout) || clearTimeout - )(handle); - }, - delegate: undefined, - }; - - function reportUnhandledError(err) { - timeoutProvider.setTimeout(function () { - { - throw err; - } - }); - } - - function noop() {} - - var Subscriber = (function (_super) { - __extends(Subscriber, _super); - function Subscriber(destination) { - var _this = _super.call(this) || this; - _this.isStopped = false; - if (destination) { - _this.destination = destination; - if (isSubscription(destination)) { - destination.add(_this); - } - } else { - _this.destination = EMPTY_OBSERVER; - } - return _this; - } - Subscriber.create = function (next, error, complete) { - return new SafeSubscriber(next, error, complete); - }; - Subscriber.prototype.next = function (value) { - if (this.isStopped); - else { - this._next(value); - } - }; - Subscriber.prototype.error = function (err) { - if (this.isStopped); - else { - this.isStopped = true; - this._error(err); - } - }; - Subscriber.prototype.complete = function () { - if (this.isStopped); - else { - this.isStopped = true; - this._complete(); - } - }; - Subscriber.prototype.unsubscribe = function () { - if (!this.closed) { - this.isStopped = true; - _super.prototype.unsubscribe.call(this); - this.destination = null; - } - }; - Subscriber.prototype._next = function (value) { - this.destination.next(value); - }; - Subscriber.prototype._error = function (err) { - try { - this.destination.error(err); - } finally { - this.unsubscribe(); - } - }; - Subscriber.prototype._complete = function () { - try { - this.destination.complete(); - } finally { - this.unsubscribe(); - } - }; - return Subscriber; - })(Subscription); - var _bind = Function.prototype.bind; - function bind(fn, thisArg) { - return _bind.call(fn, thisArg); - } - var ConsumerObserver = (function () { - function ConsumerObserver(partialObserver) { - this.partialObserver = partialObserver; - } - ConsumerObserver.prototype.next = function (value) { - var partialObserver = this.partialObserver; - if (partialObserver.next) { - try { - partialObserver.next(value); - } catch (error) { - handleUnhandledError(error); - } - } - }; - ConsumerObserver.prototype.error = function (err) { - var partialObserver = this.partialObserver; - if (partialObserver.error) { - try { - partialObserver.error(err); - } catch (error) { - handleUnhandledError(error); - } - } else { - handleUnhandledError(err); - } - }; - ConsumerObserver.prototype.complete = function () { - var partialObserver = this.partialObserver; - if (partialObserver.complete) { - try { - partialObserver.complete(); - } catch (error) { - handleUnhandledError(error); - } - } - }; - return ConsumerObserver; - })(); - var SafeSubscriber = (function (_super) { - __extends(SafeSubscriber, _super); - function SafeSubscriber(observerOrNext, error, complete) { - var _this = _super.call(this) || this; - var partialObserver; - if (isFunction(observerOrNext) || !observerOrNext) { - partialObserver = { - next: observerOrNext !== null && observerOrNext !== void 0 ? observerOrNext : undefined, - error: error !== null && error !== void 0 ? error : undefined, - complete: complete !== null && complete !== void 0 ? complete : undefined, - }; - } else { - var context_1; - if (_this && config.useDeprecatedNextContext) { - context_1 = Object.create(observerOrNext); - context_1.unsubscribe = function () { - return _this.unsubscribe(); - }; - partialObserver = { - next: observerOrNext.next && bind(observerOrNext.next, context_1), - error: observerOrNext.error && bind(observerOrNext.error, context_1), - complete: observerOrNext.complete && bind(observerOrNext.complete, context_1), - }; - } else { - partialObserver = observerOrNext; - } - } - _this.destination = new ConsumerObserver(partialObserver); - return _this; - } - return SafeSubscriber; - })(Subscriber); - function handleUnhandledError(error) { - { - reportUnhandledError(error); - } - } - function defaultErrorHandler(err) { - throw err; - } - var EMPTY_OBSERVER = { - closed: true, - next: noop, - error: defaultErrorHandler, - complete: noop, - }; - - function hasLift(source) { - return isFunction(source === null || source === void 0 ? void 0 : source.lift); - } - function operate(init) { - return function (source) { - if (hasLift(source)) { - return source.lift(function (liftedSource) { - try { - return init(liftedSource, this); - } catch (err) { - this.error(err); - } - }); - } - throw new TypeError('Unable to lift unknown Observable type'); - }; - } - - function createOperatorSubscriber(destination, onNext, onComplete, onError, onFinalize) { - return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize); - } - var OperatorSubscriber = (function (_super) { - __extends(OperatorSubscriber, _super); - function OperatorSubscriber( - destination, - onNext, - onComplete, - onError, - onFinalize, - shouldUnsubscribe, - ) { - var _this = _super.call(this, destination) || this; - _this.onFinalize = onFinalize; - _this.shouldUnsubscribe = shouldUnsubscribe; - _this._next = onNext - ? function (value) { - try { - onNext(value); - } catch (err) { - destination.error(err); - } - } - : _super.prototype._next; - _this._error = onError - ? function (err) { - try { - onError(err); - } catch (err) { - destination.error(err); - } finally { - this.unsubscribe(); - } - } - : _super.prototype._error; - _this._complete = onComplete - ? function () { - try { - onComplete(); - } catch (err) { - destination.error(err); - } finally { - this.unsubscribe(); - } - } - : _super.prototype._complete; - return _this; - } - OperatorSubscriber.prototype.unsubscribe = function () { - var _a; - if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) { - var closed_1 = this.closed; - _super.prototype.unsubscribe.call(this); - !closed_1 && ((_a = this.onFinalize) === null || _a === void 0 ? void 0 : _a.call(this)); - } - }; - return OperatorSubscriber; - })(Subscriber); - - function map(project, thisArg) { - return operate(function (source, subscriber) { - var index = 0; - source.subscribe( - createOperatorSubscriber(subscriber, function (value) { - subscriber.next(project.call(thisArg, value, index++)); - }), - ); - }); - } - - const EMPTY_SALT = new Uint8Array(); - function withMeta(meta, creator) { - creator.meta = meta; - return creator; - } - function createBluePrintTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); - } - function encodeSalt(salt = utilCrypto.randomAsU8a()) { - return salt instanceof types.Bytes - ? salt - : salt?.length - ? util.compactAddLength(util.u8aToU8a(salt)) - : EMPTY_SALT; - } - function convertWeight(weight) { - const [refTime, proofSize] = isWeightV2(weight) - ? [weight.refTime.toBn(), weight.proofSize.toBn()] - : [util.bnToBn(weight), undefined]; - return { - v1Weight: refTime, - v2Weight: { proofSize, refTime }, - }; - } - function isWeightV2(weight) { - return !!weight.proofSize; - } - - const MAX_CALL_GAS$1 = new util.BN(5_000_000_000_000).isub(util.BN_ONE); - const l$1 = util.logger('Contract'); - function createQuery$1(meta, fn) { - return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); - } - function createTx$1(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); - } - let ContractSubmittableResult$1 = class ContractSubmittableResult extends api.SubmittableResult { - contractEvents; - constructor(result, contractEvents) { - super(result); - this.contractEvents = contractEvents; - } - }; - class Contract extends Base { - address; - __internal__query = {}; - __internal__tx = {}; - constructor(api, abi, address, decorateMethod) { - super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId', address); - this.abi.messages.forEach(m => { - if (util.isUndefined(this.__internal__tx[m.method])) { - this.__internal__tx[m.method] = createTx$1(m, (o, p) => this.__internal__exec(m, o, p)); - } - if (util.isUndefined(this.__internal__query[m.method])) { - this.__internal__query[m.method] = createQuery$1(m, (f, o, p) => - this.__internal__read(m, o, p).send(f), - ); - } - }); - } - get query() { - return this.__internal__query; - } - get tx() { - return this.__internal__tx; - } - __internal__getGas = (_gasLimit, isCall = false) => { - const weight = convertWeight(_gasLimit); - if (weight.v1Weight.gt(util.BN_ZERO)) { - return weight; - } - return convertWeight( - isCall - ? MAX_CALL_GAS$1 - : convertWeight( - this.api.consts.system.blockWeights - ? this.api.consts.system.blockWeights.maxBlock - : this.api.consts.system['maximumBlockWeight'], - ) - .v1Weight.muln(64) - .div(util.BN_HUNDRED), - ); - }; - __internal__exec = ( - messageOrId, - { gasLimit = util.BN_ZERO, storageDepositLimit = null, value = util.BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .call( - this.address, - value, - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - result => - new ContractSubmittableResult$1( - result, - applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => - records - .map(record => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l$1.error(`Unable to decode contract event: ${error.message}`); - return null; - } - }) - .filter(decoded => !!decoded), - ), - ), - ); - }; - __internal__read = ( - messageOrId, - { gasLimit = util.BN_ZERO, storageDepositLimit = null, value = util.BN_ZERO }, - params, - ) => { - const message = this.abi.findMessage(messageOrId); - return { - send: this._decorateMethod(origin => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - this._isWeightV1 - ? this.__internal__getGas(gasLimit, true).v1Weight - : this.__internal__getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !convertWeight(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - })), - ), - ), - }; - }; - } - - class BlueprintSubmittableResult extends api.SubmittableResult { - contract; - constructor(result, contract) { - super(result); - this.contract = contract; - } - } - class Blueprint extends Base { - codeHash; - __internal__tx = {}; - constructor(api, abi, codeHash, decorateMethod) { - super(api, abi, decorateMethod); - this.codeHash = this.registry.createType('Hash', codeHash); - this.abi.constructors.forEach(c => { - if (util.isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__deploy(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__deploy = ( - constructorOrId, - { gasLimit = util.BN_ZERO, salt, storageDepositLimit = null, value = util.BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiate( - value, - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new BlueprintSubmittableResult( - result, - applyOnEvent( - result, - ['Instantiated'], - ([record]) => - new Contract(this.api, this.abi, record.event.data[1], this._decorateMethod), - ), - ), - ); - }; - } - - class BaseRevive { - abi; - api; - _decorateMethod; - _isWeightV1; - constructor(api, abi, decorateMethod) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.revive || - !util.isFunction(api.tx.revive.instantiateWithCode) || - api.tx.revive.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.reviveApi || !util.isFunction(api.call.reviveApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', - ); - } - this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - get registry() { - return this.api.registry; - } - } - - class BlueprintRevive extends BaseRevive { - codeHash; - __internal__tx = {}; - constructor(api, abi, codeHash, decorateMethod) { - super(api, abi, decorateMethod); - this.codeHash = this.registry.createType('Hash', codeHash); - this.abi.constructors.forEach(c => { - if (util.isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__deploy(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__deploy = ( - constructorOrId, - { gasLimit = util.BN_ZERO, salt, storageDepositLimit = null, value = util.BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .instantiate( - value, - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new BlueprintSubmittableResult( - result, - (() => { - if (result.status.isInBlock || result.status.isFinalized) { - return new Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ); - } - return undefined; - })(), - ), - ); - }; - } - - class CodeSubmittableResult extends api.SubmittableResult { - blueprint; - contract; - constructor(result, blueprint, contract) { - super(result); - this.blueprint = blueprint; - this.contract = contract; - } - } - function isValidCode$1(code) { - return util.isWasm(code) || util.isRiscV(code); - } - class Code extends Base { - code; - __internal__tx = {}; - constructor(api, abi, wasm, decorateMethod) { - super(api, abi, decorateMethod); - this.code = isValidCode$1(this.abi.info.source.wasm) - ? this.abi.info.source.wasm - : util.u8aToU8a(wasm); - if (!isValidCode$1(this.code)) { - throw new Error('Invalid code provided'); - } - this.abi.constructors.forEach(c => { - if (util.isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__instantiate(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__instantiate = ( - constructorOrId, - { gasLimit = util.BN_ZERO, salt, storageDepositLimit = null, value = util.BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiateWithCode( - value, - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - util.compactAddLength(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new CodeSubmittableResult( - result, - ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], records => - records.reduce( - ([blueprint, contract], { event }) => - this.api.events.contracts.Instantiated.is(event) - ? [ - blueprint, - new Contract(this.api, this.abi, event.data[1], this._decorateMethod), - ] - : this.api.events.contracts.CodeStored.is(event) - ? [ - new Blueprint(this.api, this.abi, event.data[0], this._decorateMethod), - contract, - ] - : [blueprint, contract], - [undefined, undefined], - ), - ) || [undefined, undefined]), - ), - ); - }; - } - - class CodeReviveSubmittableResult extends api.SubmittableResult { - blueprint; - contract; - constructor(result, blueprint, contract) { - super(result); - this.blueprint = blueprint; - this.contract = contract; - } - } - function isValidCode(code) { - return util.isRiscV(code); - } - class CodeRevive extends BaseRevive { - code; - __internal__tx = {}; - constructor(api, abi, wasm, decorateMethod) { - super(api, abi, decorateMethod); - this.code = isValidCode(this.abi.info.source.wasm) - ? this.abi.info.source.wasm - : util.u8aToU8a(wasm); - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - this.abi.constructors.forEach(c => { - if (util.isUndefined(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = createBluePrintTx(c, (o, p) => - this.__internal__instantiate(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__instantiate = ( - constructorOrId, - { gasLimit = util.BN_ZERO, salt, storageDepositLimit = null, value = util.BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .instantiateWithCode( - value, - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - util.compactAddLength(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - result => - new CodeReviveSubmittableResult( - result, - new BlueprintRevive( - this.api, - this.abi, - this.abi.info.source.wasmHash, - this._decorateMethod, - ), - new Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ), - ), - ); - }; - } - - const MAX_CALL_GAS = new util.BN(5_000_000_000_000).isub(util.BN_ONE); - const l = util.logger('Contract'); - function createQuery(meta, fn) { - return withMeta(meta, (origin, options, ...params) => fn(origin, options, params)); - } - function createTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); - } - class ContractSubmittableResult extends api.SubmittableResult { - contractEvents; - constructor(result, contractEvents) { - super(result); - this.contractEvents = contractEvents; - } - } - class ContractRevive extends BaseRevive { - address; - __internal__query = {}; - __internal__tx = {}; - constructor(api, abi, address, decorateMethod) { - super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); - this.abi.messages.forEach(m => { - if (util.isUndefined(this.__internal__tx[m.method])) { - this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); - } - if (util.isUndefined(this.__internal__query[m.method])) { - this.__internal__query[m.method] = createQuery(m, (f, o, p) => - this.__internal__read(m, o, p).send(f), - ); - } - }); - } - get query() { - return this.__internal__query; - } - get tx() { - return this.__internal__tx; - } - __internal__getGas = (_gasLimit, isCall = false) => { - const weight = convertWeight(_gasLimit); - if (weight.v1Weight.gt(util.BN_ZERO)) { - return weight; - } - return convertWeight( - isCall - ? MAX_CALL_GAS - : convertWeight( - this.api.consts.system.blockWeights - ? this.api.consts.system.blockWeights.maxBlock - : this.api.consts.system['maximumBlockWeight'], - ) - .v1Weight.muln(64) - .div(util.BN_HUNDRED), - ); - }; - __internal__exec = ( - messageOrId, - { gasLimit = util.BN_ZERO, storageDepositLimit = null, value = util.BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .call( - this.address, - value, - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - result => - new ContractSubmittableResult( - result, - applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], records => - records - .map(record => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${error.message}`); - return null; - } - }) - .filter(decoded => !!decoded), - ), - ), - ); - }; - __internal__read = ( - messageOrId, - { gasLimit = util.BN_ZERO, storageDepositLimit = null, value = util.BN_ZERO }, - params, - ) => { - const message = this.abi.findMessage(messageOrId); - return { - send: this._decorateMethod(origin => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - this._isWeightV1 - ? this.__internal__getGas(gasLimit, true).v1Weight - : this.__internal__getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !convertWeight(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - })), - ), - ), - }; - }; - } - - class BlueprintPromise extends Blueprint { - constructor(api$1, abi, codeHash) { - super(api$1, abi, codeHash, api.toPromiseMethod); - } - } - class CodePromise extends Code { - constructor(api$1, abi, wasm) { - super(api$1, abi, wasm, api.toPromiseMethod); - } - } - class ContractPromise extends Contract { - constructor(api$1, abi, address) { - super(api$1, abi, address, api.toPromiseMethod); - } - } - class BlueprintRevivePromise extends BlueprintRevive { - constructor(api$1, abi, codeHash) { - super(api$1, abi, codeHash, api.toPromiseMethod); - } - } - class CodeRevivePromise extends CodeRevive { - constructor(api$1, abi, wasm) { - super(api$1, abi, wasm, api.toPromiseMethod); - } - } - class ContractRevivePromise extends ContractRevive { - constructor(api$1, abi, address) { - super(api$1, abi, address, api.toPromiseMethod); - } - } - - class BlueprintRx extends Blueprint { - constructor(api$1, abi, codeHash) { - super(api$1, abi, codeHash, api.toRxMethod); - } - } - class CodeRx extends Code { - constructor(api$1, abi, wasm) { - super(api$1, abi, wasm, api.toRxMethod); - } - } - class ContractRx extends Contract { - constructor(api$1, abi, address) { - super(api$1, abi, address, api.toRxMethod); - } - } - - exports.Abi = Abi; - exports.BlueprintPromise = BlueprintPromise; - exports.BlueprintRevivePromise = BlueprintRevivePromise; - exports.BlueprintRx = BlueprintRx; - exports.CodePromise = CodePromise; - exports.CodeRevivePromise = CodeRevivePromise; - exports.CodeRx = CodeRx; - exports.ContractPromise = ContractPromise; - exports.ContractRevivePromise = ContractRevivePromise; - exports.ContractRx = ContractRx; - exports.packageInfo = packageInfo; -}); diff --git a/.api-contract/build/bundle.d.ts b/.api-contract/build/bundle.d.ts deleted file mode 100644 index d087e9db..00000000 --- a/.api-contract/build/bundle.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { Abi } from './Abi/index.js'; -export { packageInfo } from './packageInfo.js'; -export * from './promise/index.js'; -export * from './rx/index.js'; diff --git a/.api-contract/build/bundle.js b/.api-contract/build/bundle.js deleted file mode 100644 index d087e9db..00000000 --- a/.api-contract/build/bundle.js +++ /dev/null @@ -1,4 +0,0 @@ -export { Abi } from './Abi/index.js'; -export { packageInfo } from './packageInfo.js'; -export * from './promise/index.js'; -export * from './rx/index.js'; diff --git a/.api-contract/build/cjs/Abi/index.d.ts b/.api-contract/build/cjs/Abi/index.d.ts deleted file mode 100644 index 2ce16624..00000000 --- a/.api-contract/build/cjs/Abi/index.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -import type { - ChainProperties, - ContractMetadataV4, - ContractMetadataV5, - ContractMetadataV6, - ContractProjectInfo, - EventRecord, -} from '@polkadot/types/interfaces'; -import type { Codec, Registry, TypeDef } from '@polkadot/types/types'; -import type { - AbiConstructor, - AbiEvent, - AbiMessage, - DecodedEvent, - DecodedMessage, -} from '../types.js'; -export type ContractMetadataSupported = - | ContractMetadataV4 - | ContractMetadataV5 - | ContractMetadataV6; -export declare class Abi { - #private; - readonly events: AbiEvent[]; - readonly constructors: AbiConstructor[]; - readonly info: ContractProjectInfo; - readonly json: Record; - readonly messages: AbiMessage[]; - readonly metadata: ContractMetadataSupported; - readonly registry: Registry; - readonly environment: Map; - constructor(abiJson: Record | string, chainProperties?: ChainProperties); - /** - * Warning: Unstable API, bound to change - */ - decodeEvent(record: EventRecord): DecodedEvent; - /** - * Warning: Unstable API, bound to change - */ - decodeConstructor(data: Uint8Array): DecodedMessage; - /** - * Warning: Unstable API, bound to change - */ - decodeMessage(data: Uint8Array): DecodedMessage; - findConstructor(constructorOrId: AbiConstructor | string | number): AbiConstructor; - findMessage(messageOrId: AbiMessage | string | number): AbiMessage; -} diff --git a/.api-contract/build/cjs/Abi/index.js b/.api-contract/build/cjs/Abi/index.js deleted file mode 100644 index a00e952b..00000000 --- a/.api-contract/build/cjs/Abi/index.js +++ /dev/null @@ -1,364 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.Abi = void 0; -const types_1 = require('@polkadot/types'); -const types_create_1 = require('@polkadot/types-create'); -const util_1 = require('@polkadot/util'); -const toLatestCompatible_js_1 = require('./toLatestCompatible.js'); -const l = (0, util_1.logger)('Abi'); -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; -function findMessage(list, messageOrId) { - const message = (0, util_1.isNumber)(messageOrId) - ? list[messageOrId] - : (0, util_1.isString)(messageOrId) - ? list.find(({ identifier }) => - [identifier, (0, util_1.stringCamelCase)(identifier)].includes(messageOrId.toString()), - ) - : messageOrId; - return (0, util_1.assertReturn)( - message, - () => `Attempted to call an invalid contract interface, ${(0, util_1.stringify)(messageOrId)}`, - ); -} -function getMetadata(registry, json) { - // this is for V1, V2, V3 - const vx = toLatestCompatible_js_1.enumVersions.find(v => (0, util_1.isObject)(json[v])); - // this was added in V4 - const jsonVersion = json.version; - console.log('parsing metadata'); - console.log(jsonVersion); - console.log(toLatestCompatible_js_1.enumVersions); - if ( - !vx && - jsonVersion && - !toLatestCompatible_js_1.enumVersions.find(v => v === `V${jsonVersion}`) - ) { - throw new Error(`Unable to handle version ${jsonVersion}`); - } - console.log('parsed'); - console.log(vx); - const metadata = registry.createType( - 'ContractMetadata', - vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, - ); - console.log('m'); - const converter = toLatestCompatible_js_1.convertVersions.find(([v]) => metadata[`is${v}`]); - if (!converter) { - throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); - } - console.log('converter'); - const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); - console.log('up'); - return upgradedMetadata; -} -function parseJson(json, chainProperties) { - console.log('parsing json'); - const registry = new types_1.TypeRegistry(); - const info = registry.createType('ContractProjectInfo', json); - const metadata = getMetadata(registry, json); - const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); - // attach the lookup to the registry - now the types are known - registry.setLookup(lookup); - if (chainProperties) { - registry.setChainProperties(chainProperties); - } - // warm-up the actual type, pre-use - lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); - console.log('warmed up'); - return [json, registry, metadata, info]; -} -/** - * @internal - * Determines if the given input value is a ContractTypeSpec - */ -function isTypeSpec(value) { - return ( - !!value && - value instanceof Map && - !(0, util_1.isUndefined)(value.type) && - !(0, util_1.isUndefined)(value.displayName) - ); -} -/** - * @internal - * Determines if the given input value is an Option - */ -function isOption(value) { - return !!value && value instanceof types_1.Option; -} -class Abi { - events; - constructors; - info; - json; - messages; - metadata; - registry; - environment = new Map(); - constructor(abiJson, chainProperties) { - console.log('constructor'); - [this.json, this.registry, this.metadata, this.info] = parseJson( - (0, util_1.isString)(abiJson) ? JSON.parse(abiJson) : abiJson, - chainProperties, - ); - console.log('parsed json'); - this.constructors = this.metadata.spec.constructors.map((spec, index) => - this.__internal__createMessage(spec, index, { - isConstructor: true, - isDefault: spec.default.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created constructors'); - this.events = this.metadata.spec.events.map((_, index) => this.__internal__createEvent(index)); - console.log('created events'); - this.messages = this.metadata.spec.messages.map((spec, index) => - this.__internal__createMessage(spec, index, { - isDefault: spec.default.isTrue, - isMutating: spec.mutates.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - console.log('created messages'); - // NOTE See the rationale for having Option<...> values in the actual - // ContractEnvironmentV4 structure definition in interfaces/contractsAbi - // (Due to conversions, the fields may not exist) - for (const [key, opt] of this.metadata.spec.environment.entries()) { - if (isOption(opt)) { - if (opt.isSome) { - const value = opt.unwrap(); - if ((0, util_1.isBn)(value)) { - this.environment.set(key, value); - } else if (isTypeSpec(value)) { - this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); - } else { - throw new Error( - `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, - ); - } - } - } else { - throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); - } - } - console.log('created environment'); - } - /** - * Warning: Unstable API, bound to change - */ - decodeEvent(record) { - switch (this.metadata.version.toString()) { - // earlier version are hoisted to v4 - case '4': - return this.__internal__decodeEventV4(record); - // Latest - default: - return this.__internal__decodeEventV5(record); - } - } - __internal__decodeEventV5 = record => { - // Find event by first topic, which potentially is the signature_topic - const signatureTopic = record.topics[0]; - const data = record.event.data[1]; - if (signatureTopic) { - const event = this.events.find( - e => - e.signatureTopic !== undefined && - e.signatureTopic !== null && - e.signatureTopic === signatureTopic.toHex(), - ); - // Early return if event found by signature topic - if (event) { - return event.fromU8a(data); - } - } - // If no event returned yet, it might be anonymous - const amountOfTopics = record.topics.length; - const potentialEvents = this.events.filter(e => { - // event can't have a signature topic - if (e.signatureTopic !== null && e.signatureTopic !== undefined) { - return false; - } - // event should have same amount of indexed fields as emitted topics - const amountIndexed = e.args.filter(a => a.indexed).length; - if (amountIndexed !== amountOfTopics) { - return false; - } - // If all conditions met, it's a potential event - return true; - }); - if (potentialEvents.length === 1) { - return potentialEvents[0].fromU8a(data); - } - throw new Error('Unable to determine event'); - }; - __internal__decodeEventV4 = record => { - const data = record.event.data[1]; - const index = data[0]; - const event = this.events[index]; - if (!event) { - throw new Error(`Unable to find event with index ${index}`); - } - return event.fromU8a(data.subarray(1)); - }; - /** - * Warning: Unstable API, bound to change - */ - decodeConstructor(data) { - return this.__internal__decodeMessage('message', this.constructors, data); - } - /** - * Warning: Unstable API, bound to change - */ - decodeMessage(data) { - return this.__internal__decodeMessage('message', this.messages, data); - } - findConstructor(constructorOrId) { - return findMessage(this.constructors, constructorOrId); - } - findMessage(messageOrId) { - return findMessage(this.messages, messageOrId); - } - __internal__createArgs = (args, spec) => { - return args.map(({ label, type }, index) => { - try { - if (!(0, util_1.isObject)(type)) { - throw new Error('Invalid type definition found'); - } - const displayName = type.displayName.length - ? type.displayName[type.displayName.length - 1].toString() - : undefined; - const camelName = (0, util_1.stringCamelCase)(label); - if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { - return { - name: camelName, - type: { - info: types_create_1.TypeDefInfo.Plain, - type: displayName, - }, - }; - } - const typeDef = this.registry.lookup.getTypeDef(type.type); - return { - name: camelName, - type: - displayName && !typeDef.type.startsWith(displayName) - ? { displayName, ...typeDef } - : typeDef, - }; - } catch (error) { - l.error(`Error expanding argument ${index} in ${(0, util_1.stringify)(spec)}`); - throw error; - } - }); - }; - __internal__createMessageParams = (args, spec) => { - return this.__internal__createArgs(args, spec); - }; - __internal__createEventParams = (args, spec) => { - const params = this.__internal__createArgs(args, spec); - return params.map((p, index) => ({ ...p, indexed: args[index].indexed.toPrimitive() })); - }; - __internal__createEvent = index => { - // TODO TypeScript would narrow this type to the correct version, - // but version is `Text` so I need to call `toString()` here, - // which breaks the type inference. - switch (this.metadata.version.toString()) { - case '4': - return this.__internal__createEventV4(this.metadata.spec.events[index], index); - default: - return this.__internal__createEventV5(this.metadata.spec.events[index], index); - } - }; - __internal__createEventV5 = (spec, index) => { - const args = this.__internal__createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - event, - }), - identifier: [spec.module_path, spec.label].join('::'), - index, - signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, - }; - return event; - }; - __internal__createEventV4 = (spec, index) => { - const args = this.__internal__createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - event, - }), - identifier: spec.label.toString(), - index, - }; - return event; - }; - __internal__createMessage = (spec, index, add = {}) => { - const args = this.__internal__createMessageParams(spec.args, spec); - const identifier = spec.label.toString(); - const message = { - ...add, - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: data => ({ - args: this.__internal__decodeArgs(args, data), - message, - }), - identifier, - index, - isDefault: spec.default.isTrue, - method: (0, util_1.stringCamelCase)(identifier), - path: identifier.split('::').map(s => (0, util_1.stringCamelCase)(s)), - selector: spec.selector, - toU8a: params => this.__internal__encodeMessageArgs(spec, args, params), - }; - return message; - }; - __internal__decodeArgs = (args, data) => { - // for decoding we expect the input to be just the arg data, no selectors - // no length added (this allows use with events as well) - let offset = 0; - return args.map(({ type: { lookupName, type } }) => { - const value = this.registry.createType(lookupName || type, data.subarray(offset)); - offset += value.encodedLength; - return value; - }); - }; - __internal__decodeMessage = (type, list, data) => { - const [, trimmed] = (0, util_1.compactStripLength)(data); - const selector = trimmed.subarray(0, 4); - const message = list.find(m => m.selector.eq(selector)); - if (!message) { - throw new Error(`Unable to find ${type} with selector ${(0, util_1.u8aToHex)(selector)}`); - } - return message.fromU8a(trimmed.subarray(4)); - }; - __internal__encodeMessageArgs = ({ label, selector }, args, data) => { - if (data.length !== args.length) { - throw new Error( - `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, - ); - } - return (0, util_1.compactAddLength)( - (0, util_1.u8aConcat)( - this.registry.createType('ContractSelector', selector).toU8a(), - ...args.map(({ type: { lookupName, type } }, index) => - this.registry.createType(lookupName || type, data[index]).toU8a(), - ), - ), - ); - }; -} -exports.Abi = Abi; diff --git a/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts b/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts deleted file mode 100644 index e5db5e1e..00000000 --- a/.api-contract/build/cjs/Abi/toLatestCompatible.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { - ContractMetadataV4, - ContractMetadataV5, - ContractMetadataV6, -} from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -import type { ContractMetadataSupported } from './index.js'; -export declare const enumVersions: readonly ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; -type Versions = (typeof enumVersions)[number] | 'V0'; -type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; -export declare function v6ToLatestCompatible( - _registry: Registry, - v6: ContractMetadataV6, -): ContractMetadataV6; -export declare function v5ToLatestCompatible( - _registry: Registry, - v5: ContractMetadataV5, -): ContractMetadataV5; -export declare function v4ToLatestCompatible( - _registry: Registry, - v4: ContractMetadataV4, -): ContractMetadataV4; -export declare const v3ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV3, -) => ContractMetadataSupported; -export declare const v2ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV2, -) => ContractMetadataSupported; -export declare const v1ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV1, -) => ContractMetadataSupported; -export declare const v0ToLatestCompatible: ( - registry: Registry, - input: import('@polkadot/types/interfaces').ContractMetadataV0, -) => ContractMetadataSupported; -export declare const convertVersions: [Versions, Converter][]; -export {}; diff --git a/.api-contract/build/cjs/Abi/toLatestCompatible.js b/.api-contract/build/cjs/Abi/toLatestCompatible.js deleted file mode 100644 index 3f6e72ac..00000000 --- a/.api-contract/build/cjs/Abi/toLatestCompatible.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.convertVersions = - exports.v0ToLatestCompatible = - exports.v1ToLatestCompatible = - exports.v2ToLatestCompatible = - exports.v3ToLatestCompatible = - exports.enumVersions = - void 0; -exports.v6ToLatestCompatible = v6ToLatestCompatible; -exports.v5ToLatestCompatible = v5ToLatestCompatible; -exports.v4ToLatestCompatible = v4ToLatestCompatible; -const toV1_js_1 = require('./toV1.js'); -const toV2_js_1 = require('./toV2.js'); -const toV3_js_1 = require('./toV3.js'); -const toV4_js_1 = require('./toV4.js'); -exports.enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1']; -function createConverter(next, step) { - return (registry, input) => next(registry, step(registry, input)); -} -function v6ToLatestCompatible(_registry, v6) { - return v6; -} -function v5ToLatestCompatible(_registry, v5) { - return v5; -} -function v4ToLatestCompatible(_registry, v4) { - return v4; -} -exports.v3ToLatestCompatible = createConverter(v4ToLatestCompatible, toV4_js_1.v3ToV4); -exports.v2ToLatestCompatible = createConverter(exports.v3ToLatestCompatible, toV3_js_1.v2ToV3); -exports.v1ToLatestCompatible = createConverter(exports.v2ToLatestCompatible, toV2_js_1.v1ToV2); -exports.v0ToLatestCompatible = createConverter(exports.v1ToLatestCompatible, toV1_js_1.v0ToV1); -exports.convertVersions = [ - ['V6', v6ToLatestCompatible], - ['V5', v5ToLatestCompatible], - ['V4', v4ToLatestCompatible], - ['V3', exports.v3ToLatestCompatible], - ['V2', exports.v2ToLatestCompatible], - ['V1', exports.v1ToLatestCompatible], - ['V0', exports.v0ToLatestCompatible], -]; diff --git a/.api-contract/build/cjs/Abi/toV1.d.ts b/.api-contract/build/cjs/Abi/toV1.d.ts deleted file mode 100644 index dc41ae43..00000000 --- a/.api-contract/build/cjs/Abi/toV1.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { ContractMetadataV0, ContractMetadataV1 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -export declare function v0ToV1(registry: Registry, v0: ContractMetadataV0): ContractMetadataV1; diff --git a/.api-contract/build/cjs/Abi/toV1.js b/.api-contract/build/cjs/Abi/toV1.js deleted file mode 100644 index 3d0f5ec1..00000000 --- a/.api-contract/build/cjs/Abi/toV1.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.v0ToV1 = v0ToV1; -const types_1 = require('@polkadot/types'); -const util_1 = require('@polkadot/util'); -function v0ToV1Names(all) { - return all.map(e => - (0, util_1.objectSpread)({}, e, { - name: Array.isArray(e.name) ? e.name : [e.name], - }), - ); -} -function v0ToV1(registry, v0) { - if (!v0.metadataVersion.length) { - throw new Error('Invalid format for V0 (detected) contract metadata'); - } - return registry.createType( - 'ContractMetadataV1', - (0, util_1.objectSpread)({}, v0, { - spec: (0, util_1.objectSpread)({}, v0.spec, { - constructors: v0ToV1Names(v0.spec.constructors), - messages: v0ToV1Names(v0.spec.messages), - }), - types: (0, types_1.convertSiV0toV1)(registry, v0.types), - }), - ); -} diff --git a/.api-contract/build/cjs/Abi/toV2.d.ts b/.api-contract/build/cjs/Abi/toV2.d.ts deleted file mode 100644 index 3de0aa9b..00000000 --- a/.api-contract/build/cjs/Abi/toV2.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { ContractMetadataV1, ContractMetadataV2 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -export declare function v1ToV2(registry: Registry, v1: ContractMetadataV1): ContractMetadataV2; diff --git a/.api-contract/build/cjs/Abi/toV2.js b/.api-contract/build/cjs/Abi/toV2.js deleted file mode 100644 index f1457e9d..00000000 --- a/.api-contract/build/cjs/Abi/toV2.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.v1ToV2 = v1ToV2; -const util_1 = require('@polkadot/util'); -const ARG_TYPES = { - ContractConstructorSpec: 'ContractMessageParamSpecV2', - ContractEventSpec: 'ContractEventParamSpecV2', - ContractMessageSpec: 'ContractMessageParamSpecV2', -}; -function v1ToV2Label(entry) { - return (0, util_1.objectSpread)({}, entry, { - label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, - }); -} -function v1ToV2Labels(registry, outType, all) { - return all.map(e => - registry.createType( - `${outType}V2`, - (0, util_1.objectSpread)(v1ToV2Label(e), { - args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), - }), - ), - ); -} -function v1ToV2(registry, v1) { - return registry.createType( - 'ContractMetadataV2', - (0, util_1.objectSpread)({}, v1, { - spec: (0, util_1.objectSpread)({}, v1.spec, { - constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), - events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), - messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), - }), - }), - ); -} diff --git a/.api-contract/build/cjs/Abi/toV3.d.ts b/.api-contract/build/cjs/Abi/toV3.d.ts deleted file mode 100644 index 10cc0d67..00000000 --- a/.api-contract/build/cjs/Abi/toV3.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { ContractMetadataV2, ContractMetadataV3 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -export declare function v2ToV3(registry: Registry, v2: ContractMetadataV2): ContractMetadataV3; diff --git a/.api-contract/build/cjs/Abi/toV3.js b/.api-contract/build/cjs/Abi/toV3.js deleted file mode 100644 index dfb56428..00000000 --- a/.api-contract/build/cjs/Abi/toV3.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.v2ToV3 = v2ToV3; -const util_1 = require('@polkadot/util'); -function v2ToV3(registry, v2) { - return registry.createType( - 'ContractMetadataV3', - (0, util_1.objectSpread)({}, v2, { - spec: (0, util_1.objectSpread)({}, v2.spec, { - constructors: v2.spec.constructors.map(c => - // V3 introduces the payable flag on constructors, for - registry.createType('ContractConstructorSpecV4', (0, util_1.objectSpread)({}, c)), - ), - messages: v3.spec.messages.map(m => - registry.createType('ContractMessageSpecV3', (0, util_1.objectSpread)({}, m)), - ), - }), - version: registry.createType('Text', '4'), - }), - ); -} diff --git a/.api-contract/build/cjs/augment.d.ts b/.api-contract/build/cjs/augment.d.ts deleted file mode 100644 index 40e6ced0..00000000 --- a/.api-contract/build/cjs/augment.d.ts +++ /dev/null @@ -1 +0,0 @@ -import '@polkadot/api-augment'; diff --git a/.api-contract/build/cjs/augment.js b/.api-contract/build/cjs/augment.js deleted file mode 100644 index 6464d66c..00000000 --- a/.api-contract/build/cjs/augment.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -require('@polkadot/api-augment'); diff --git a/.api-contract/build/cjs/base/Base.d.ts b/.api-contract/build/cjs/base/Base.d.ts deleted file mode 100644 index 0c05a333..00000000 --- a/.api-contract/build/cjs/base/Base.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Registry } from '@polkadot/types/types'; -import { Abi } from '../Abi/index.js'; -export declare abstract class Base { - readonly abi: Abi; - readonly api: ApiBase; - protected readonly _decorateMethod: DecorateMethod; - protected readonly _isWeightV1: boolean; - constructor( - api: ApiBase, - abi: string | Record | Abi, - decorateMethod: DecorateMethod, - ); - get registry(): Registry; -} diff --git a/.api-contract/build/cjs/base/Base.js b/.api-contract/build/cjs/base/Base.js deleted file mode 100644 index a0ab4683..00000000 --- a/.api-contract/build/cjs/base/Base.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.Base = void 0; -const util_1 = require('@polkadot/util'); -const index_js_1 = require('../Abi/index.js'); -class Base { - abi; - api; - _decorateMethod; - _isWeightV1; - constructor(api, abi, decorateMethod) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.contracts || - !(0, util_1.isFunction)(api.tx.contracts.instantiateWithCode) || - api.tx.contracts.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.contractsApi || !(0, util_1.isFunction)(api.call.contractsApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', - ); - } - this.abi = - abi instanceof index_js_1.Abi - ? abi - : new index_js_1.Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - get registry() { - return this.api.registry; - } -} -exports.Base = Base; diff --git a/.api-contract/build/cjs/base/BaseRevive.d.ts b/.api-contract/build/cjs/base/BaseRevive.d.ts deleted file mode 100644 index 51285215..00000000 --- a/.api-contract/build/cjs/base/BaseRevive.d.ts +++ /dev/null @@ -1,16 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Registry } from '@polkadot/types/types'; -import { Abi } from '../Abi/index.js'; -export declare abstract class BaseRevive { - readonly abi: Abi; - readonly api: ApiBase; - protected readonly _decorateMethod: DecorateMethod; - protected readonly _isWeightV1: boolean; - constructor( - api: ApiBase, - abi: string | Record | Abi, - decorateMethod: DecorateMethod, - ); - get registry(): Registry; -} diff --git a/.api-contract/build/cjs/base/BaseRevive.js b/.api-contract/build/cjs/base/BaseRevive.js deleted file mode 100644 index a968a0ba..00000000 --- a/.api-contract/build/cjs/base/BaseRevive.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.BaseRevive = void 0; -const util_1 = require('@polkadot/util'); -const index_js_1 = require('../Abi/index.js'); -class BaseRevive { - abi; - api; - _decorateMethod; - _isWeightV1; - constructor(api, abi, decorateMethod) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.revive || - !(0, util_1.isFunction)(api.tx.revive.instantiateWithCode) || - api.tx.revive.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.reviveApi || !(0, util_1.isFunction)(api.call.reviveApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', - ); - } - this.abi = - abi instanceof index_js_1.Abi - ? abi - : new index_js_1.Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - get registry() { - return this.api.registry; - } -} -exports.BaseRevive = BaseRevive; diff --git a/.api-contract/build/cjs/base/Blueprint.d.ts b/.api-contract/build/cjs/base/Blueprint.d.ts deleted file mode 100644 index ce3a70cd..00000000 --- a/.api-contract/build/cjs/base/Blueprint.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Hash } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { Base } from './Base.js'; -import { Contract } from './Contract.js'; -export type BlueprintConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, -) => Blueprint; -export declare class BlueprintSubmittableResult< - ApiType extends ApiTypes, -> extends SubmittableResult { - readonly contract?: Contract | undefined; - constructor(result: ISubmittableResult, contract?: Contract); -} -export declare class Blueprint extends Base { - #private; - /** - * @description The on-chain code hash for this blueprint - */ - readonly codeHash: Hash; - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendBlueprint( - type: ApiType, - decorateMethod: DecorateMethod, -): BlueprintConstructor; diff --git a/.api-contract/build/cjs/base/Blueprint.js b/.api-contract/build/cjs/base/Blueprint.js deleted file mode 100644 index 68226399..00000000 --- a/.api-contract/build/cjs/base/Blueprint.js +++ /dev/null @@ -1,84 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.Blueprint = exports.BlueprintSubmittableResult = void 0; -exports.extendBlueprint = extendBlueprint; -const api_1 = require('@polkadot/api'); -const util_1 = require('@polkadot/util'); -const util_js_1 = require('../util.js'); -const Base_js_1 = require('./Base.js'); -const Contract_js_1 = require('./Contract.js'); -const util_js_2 = require('./util.js'); -class BlueprintSubmittableResult extends api_1.SubmittableResult { - contract; - constructor(result, contract) { - super(result); - this.contract = contract; - } -} -exports.BlueprintSubmittableResult = BlueprintSubmittableResult; -class Blueprint extends Base_js_1.Base { - /** - * @description The on-chain code hash for this blueprint - */ - codeHash; - __internal__tx = {}; - constructor(api, abi, codeHash, decorateMethod) { - super(api, abi, decorateMethod); - this.codeHash = this.registry.createType('Hash', codeHash); - this.abi.constructors.forEach(c => { - if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = (0, util_js_2.createBluePrintTx)(c, (o, p) => - this.__internal__deploy(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__deploy = ( - constructorOrId, - { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_2.convertWeight)(gasLimit).v1Weight - : (0, util_js_2.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - (0, util_js_2.encodeSalt)(salt), - ) - .withResultTransform( - result => - new BlueprintSubmittableResult( - result, - (0, util_js_1.applyOnEvent)( - result, - ['Instantiated'], - ([record]) => - new Contract_js_1.Contract( - this.api, - this.abi, - record.event.data[1], - this._decorateMethod, - ), - ), - ), - ); - }; -} -exports.Blueprint = Blueprint; -function extendBlueprint(type, decorateMethod) { - return class extends Blueprint { - static __BlueprintType = type; - constructor(api, abi, codeHash) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/build/cjs/base/BlueprintRevive.d.ts b/.api-contract/build/cjs/base/BlueprintRevive.d.ts deleted file mode 100644 index 56f6f57f..00000000 --- a/.api-contract/build/cjs/base/BlueprintRevive.d.ts +++ /dev/null @@ -1,29 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { BaseRevive } from './BaseRevive.js'; -export type BlueprintReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, -) => BlueprintRevive; -export declare class BlueprintRevive extends BaseRevive { - #private; - /** - * @description The on-chain code hash for this blueprint - */ - readonly codeHash: Hash; - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendBlueprint( - type: ApiType, - decorateMethod: DecorateMethod, -): BlueprintReviveConstructor; diff --git a/.api-contract/build/cjs/base/BlueprintRevive.js b/.api-contract/build/cjs/base/BlueprintRevive.js deleted file mode 100644 index f30dae62..00000000 --- a/.api-contract/build/cjs/base/BlueprintRevive.js +++ /dev/null @@ -1,75 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.BlueprintRevive = void 0; -exports.extendBlueprint = extendBlueprint; -const util_1 = require('@polkadot/util'); -const BaseRevive_js_1 = require('./BaseRevive.js'); -const Blueprint_js_1 = require('./Blueprint.js'); -const Contract_js_1 = require('./Contract.js'); -const util_js_1 = require('./util.js'); -class BlueprintRevive extends BaseRevive_js_1.BaseRevive { - /** - * @description The on-chain code hash for this blueprint - */ - codeHash; - __internal__tx = {}; - constructor(api, abi, codeHash, decorateMethod) { - super(api, abi, decorateMethod); - this.codeHash = this.registry.createType('Hash', codeHash); - this.abi.constructors.forEach(c => { - if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = (0, util_js_1.createBluePrintTx)(c, (o, p) => - this.__internal__deploy(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__deploy = ( - constructorOrId, - { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_1.convertWeight)(gasLimit).v1Weight - : (0, util_js_1.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - (0, util_js_1.encodeSalt)(salt), - ) - .withResultTransform( - result => - new Blueprint_js_1.BlueprintSubmittableResult( - result, - (() => { - if (result.status.isInBlock || result.status.isFinalized) { - return new Contract_js_1.Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ); - } - return undefined; - })(), - ), - ); - }; -} -exports.BlueprintRevive = BlueprintRevive; -function extendBlueprint(type, decorateMethod) { - return class extends BlueprintRevive { - static __BlueprintType = type; - constructor(api, abi, codeHash) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/build/cjs/base/Code.d.ts b/.api-contract/build/cjs/base/Code.d.ts deleted file mode 100644 index ab612cef..00000000 --- a/.api-contract/build/cjs/base/Code.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { Base } from './Base.js'; -import { Blueprint } from './Blueprint.js'; -import { Contract } from './Contract.js'; -export type CodeConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, -) => Code; -export declare class CodeSubmittableResult extends SubmittableResult { - readonly blueprint?: Blueprint | undefined; - readonly contract?: Contract | undefined; - constructor( - result: ISubmittableResult, - blueprint?: Blueprint | undefined, - contract?: Contract | undefined, - ); -} -export declare class Code extends Base { - #private; - readonly code: Uint8Array; - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendCode( - type: ApiType, - decorateMethod: DecorateMethod, -): CodeConstructor; diff --git a/.api-contract/build/cjs/base/Code.js b/.api-contract/build/cjs/base/Code.js deleted file mode 100644 index eeeff6d2..00000000 --- a/.api-contract/build/cjs/base/Code.js +++ /dev/null @@ -1,108 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.Code = exports.CodeSubmittableResult = void 0; -exports.extendCode = extendCode; -const api_1 = require('@polkadot/api'); -const util_1 = require('@polkadot/util'); -const util_js_1 = require('../util.js'); -const Base_js_1 = require('./Base.js'); -const Blueprint_js_1 = require('./Blueprint.js'); -const Contract_js_1 = require('./Contract.js'); -const util_js_2 = require('./util.js'); -class CodeSubmittableResult extends api_1.SubmittableResult { - blueprint; - contract; - constructor(result, blueprint, contract) { - super(result); - this.blueprint = blueprint; - this.contract = contract; - } -} -exports.CodeSubmittableResult = CodeSubmittableResult; -function isValidCode(code) { - return (0, util_1.isWasm)(code) || (0, util_1.isRiscV)(code); -} -class Code extends Base_js_1.Base { - code; - __internal__tx = {}; - constructor(api, abi, wasm, decorateMethod) { - super(api, abi, decorateMethod); - this.code = isValidCode(this.abi.info.source.wasm) - ? this.abi.info.source.wasm - : (0, util_1.u8aToU8a)(wasm); - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - this.abi.constructors.forEach(c => { - if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = (0, util_js_2.createBluePrintTx)(c, (o, p) => - this.__internal__instantiate(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__instantiate = ( - constructorOrId, - { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_2.convertWeight)(gasLimit).v1Weight - : (0, util_js_2.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - (0, util_1.compactAddLength)(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - (0, util_js_2.encodeSalt)(salt), - ) - .withResultTransform( - result => - new CodeSubmittableResult( - result, - ...((0, util_js_1.applyOnEvent)(result, ['CodeStored', 'Instantiated'], records => - records.reduce( - ([blueprint, contract], { event }) => - this.api.events.contracts.Instantiated.is(event) - ? [ - blueprint, - new Contract_js_1.Contract( - this.api, - this.abi, - event.data[1], - this._decorateMethod, - ), - ] - : this.api.events.contracts.CodeStored.is(event) - ? [ - new Blueprint_js_1.Blueprint( - this.api, - this.abi, - event.data[0], - this._decorateMethod, - ), - contract, - ] - : [blueprint, contract], - [undefined, undefined], - ), - ) || [undefined, undefined]), - ), - ); - }; -} -exports.Code = Code; -function extendCode(type, decorateMethod) { - return class extends Code { - static __CodeType = type; - constructor(api, abi, wasm) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/build/cjs/base/CodeRevive.d.ts b/.api-contract/build/cjs/base/CodeRevive.d.ts deleted file mode 100644 index 72a11c78..00000000 --- a/.api-contract/build/cjs/base/CodeRevive.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { MapConstructorExec } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { BaseRevive } from './BaseRevive.js'; -import { BlueprintRevive } from './BlueprintRevive.js'; -import { Contract } from './Contract.js'; -export type CodeReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, -) => CodeRevive; -export declare class CodeReviveSubmittableResult< - ApiType extends ApiTypes, -> extends SubmittableResult { - readonly blueprint?: BlueprintRevive | undefined; - readonly contract?: Contract | undefined; - constructor( - result: ISubmittableResult, - blueprint?: BlueprintRevive | undefined, - contract?: Contract | undefined, - ); -} -export declare class CodeRevive extends BaseRevive { - #private; - readonly code: Uint8Array; - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - decorateMethod: DecorateMethod, - ); - get tx(): MapConstructorExec; -} -export declare function extendCode( - type: ApiType, - decorateMethod: DecorateMethod, -): CodeReviveConstructor; diff --git a/.api-contract/build/cjs/base/CodeRevive.js b/.api-contract/build/cjs/base/CodeRevive.js deleted file mode 100644 index cd74edbb..00000000 --- a/.api-contract/build/cjs/base/CodeRevive.js +++ /dev/null @@ -1,92 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.CodeRevive = exports.CodeReviveSubmittableResult = void 0; -exports.extendCode = extendCode; -const api_1 = require('@polkadot/api'); -const util_1 = require('@polkadot/util'); -const BaseRevive_js_1 = require('./BaseRevive.js'); -const BlueprintRevive_js_1 = require('./BlueprintRevive.js'); -const Contract_js_1 = require('./Contract.js'); -const util_js_1 = require('./util.js'); -class CodeReviveSubmittableResult extends api_1.SubmittableResult { - blueprint; - contract; - constructor(result, blueprint, contract) { - super(result); - this.blueprint = blueprint; - this.contract = contract; - } -} -exports.CodeReviveSubmittableResult = CodeReviveSubmittableResult; -function isValidCode(code) { - return (0, util_1.isRiscV)(code); -} -class CodeRevive extends BaseRevive_js_1.BaseRevive { - code; - __internal__tx = {}; - constructor(api, abi, wasm, decorateMethod) { - super(api, abi, decorateMethod); - this.code = isValidCode(this.abi.info.source.wasm) - ? this.abi.info.source.wasm - : (0, util_1.u8aToU8a)(wasm); - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - this.abi.constructors.forEach(c => { - if ((0, util_1.isUndefined)(this.__internal__tx[c.method])) { - this.__internal__tx[c.method] = (0, util_js_1.createBluePrintTx)(c, (o, p) => - this.__internal__instantiate(c, o, p), - ); - } - }); - } - get tx() { - return this.__internal__tx; - } - __internal__instantiate = ( - constructorOrId, - { gasLimit = util_1.BN_ZERO, salt, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_1.convertWeight)(gasLimit).v1Weight - : (0, util_js_1.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - (0, util_1.compactAddLength)(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - (0, util_js_1.encodeSalt)(salt), - ) - .withResultTransform( - result => - new CodeReviveSubmittableResult( - result, - new BlueprintRevive_js_1.BlueprintRevive( - this.api, - this.abi, - this.abi.info.source.wasmHash, - this._decorateMethod, - ), - new Contract_js_1.Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ), - ), - ); - }; -} -exports.CodeRevive = CodeRevive; -function extendCode(type, decorateMethod) { - return class extends CodeRevive { - static __CodeType = type; - constructor(api, abi, wasm) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/build/cjs/base/Contract.d.ts b/.api-contract/build/cjs/base/Contract.d.ts deleted file mode 100644 index 3add8756..00000000 --- a/.api-contract/build/cjs/base/Contract.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { AccountId } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { DecodedEvent } from '../types.js'; -import type { MapMessageQuery, MapMessageTx } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { Base } from './Base.js'; -export type ContractConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, -) => Contract; -export declare class ContractSubmittableResult extends SubmittableResult { - readonly contractEvents?: DecodedEvent[] | undefined; - constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); -} -export declare class Contract extends Base { - #private; - /** - * @description The on-chain address for this contract - */ - readonly address: AccountId; - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, - decorateMethod: DecorateMethod, - ); - get query(): MapMessageQuery; - get tx(): MapMessageTx; -} -export declare function extendContract( - type: ApiType, - decorateMethod: DecorateMethod, -): ContractConstructor; diff --git a/.api-contract/build/cjs/base/Contract.js b/.api-contract/build/cjs/base/Contract.js deleted file mode 100644 index 2845941a..00000000 --- a/.api-contract/build/cjs/base/Contract.js +++ /dev/null @@ -1,164 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.Contract = exports.ContractSubmittableResult = void 0; -exports.extendContract = extendContract; -const rxjs_1 = require('rxjs'); -const api_1 = require('@polkadot/api'); -const util_1 = require('@polkadot/util'); -const util_js_1 = require('../util.js'); -const Base_js_1 = require('./Base.js'); -const util_js_2 = require('./util.js'); -const MAX_CALL_GAS = new util_1.BN(5_000_000_000_000).isub(util_1.BN_ONE); -const l = (0, util_1.logger)('Contract'); -function createQuery(meta, fn) { - return (0, util_js_2.withMeta)(meta, (origin, options, ...params) => fn(origin, options, params)); -} -function createTx(meta, fn) { - return (0, util_js_2.withMeta)(meta, (options, ...params) => fn(options, params)); -} -class ContractSubmittableResult extends api_1.SubmittableResult { - contractEvents; - constructor(result, contractEvents) { - super(result); - this.contractEvents = contractEvents; - } -} -exports.ContractSubmittableResult = ContractSubmittableResult; -class Contract extends Base_js_1.Base { - /** - * @description The on-chain address for this contract - */ - address; - __internal__query = {}; - __internal__tx = {}; - constructor(api, abi, address, decorateMethod) { - super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId', address); - this.abi.messages.forEach(m => { - if ((0, util_1.isUndefined)(this.__internal__tx[m.method])) { - this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); - } - if ((0, util_1.isUndefined)(this.__internal__query[m.method])) { - this.__internal__query[m.method] = createQuery(m, (f, o, p) => - this.__internal__read(m, o, p).send(f), - ); - } - }); - } - get query() { - return this.__internal__query; - } - get tx() { - return this.__internal__tx; - } - __internal__getGas = (_gasLimit, isCall = false) => { - const weight = (0, util_js_2.convertWeight)(_gasLimit); - if (weight.v1Weight.gt(util_1.BN_ZERO)) { - return weight; - } - return (0, util_js_2.convertWeight)( - isCall - ? MAX_CALL_GAS - : (0, util_js_2.convertWeight)( - this.api.consts.system.blockWeights - ? this.api.consts.system.blockWeights.maxBlock - : this.api.consts.system['maximumBlockWeight'], - ) - .v1Weight.muln(64) - .div(util_1.BN_HUNDRED), - ); - }; - __internal__exec = ( - messageOrId, - { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.contracts - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_2.convertWeight)(gasLimit).v1Weight - : (0, util_js_2.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - result => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - (0, util_js_1.applyOnEvent)(result, ['ContractEmitted', 'ContractExecution'], records => - records - .map(record => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${error.message}`); - return null; - } - }) - .filter(decoded => !!decoded), - ), - ), - ); - }; - __internal__read = ( - messageOrId, - { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - const message = this.abi.findMessage(messageOrId); - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod(origin => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.__internal__getGas(gasLimit, true).v1Weight - : this.__internal__getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - (0, rxjs_1.map)( - ({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !(0, util_js_2.convertWeight)(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - }), - ), - ), - ), - }; - }; -} -exports.Contract = Contract; -function extendContract(type, decorateMethod) { - return class extends Contract { - static __ContractType = type; - constructor(api, abi, address) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/build/cjs/base/ContractRevive.d.ts b/.api-contract/build/cjs/base/ContractRevive.d.ts deleted file mode 100644 index 241b4d37..00000000 --- a/.api-contract/build/cjs/base/ContractRevive.d.ts +++ /dev/null @@ -1,37 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { AccountId, AccountId20 } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { DecodedEvent } from '../types.js'; -import type { MapMessageQuery, MapMessageTx } from './types.js'; -import { SubmittableResult } from '@polkadot/api'; -import { BaseRevive } from './BaseRevive.js'; -export type ContractReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, -) => ContractRevive; -export declare class ContractSubmittableResult extends SubmittableResult { - readonly contractEvents?: DecodedEvent[] | undefined; - constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]); -} -export declare class ContractRevive extends BaseRevive { - #private; - /** - * @description The on-chain address for this contract - */ - readonly address: AccountId20; - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId20, - decorateMethod: DecorateMethod, - ); - get query(): MapMessageQuery; - get tx(): MapMessageTx; -} -export declare function extendContract( - type: ApiType, - decorateMethod: DecorateMethod, -): ContractReviveConstructor; diff --git a/.api-contract/build/cjs/base/ContractRevive.js b/.api-contract/build/cjs/base/ContractRevive.js deleted file mode 100644 index 1523692a..00000000 --- a/.api-contract/build/cjs/base/ContractRevive.js +++ /dev/null @@ -1,164 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.ContractRevive = exports.ContractSubmittableResult = void 0; -exports.extendContract = extendContract; -const rxjs_1 = require('rxjs'); -const api_1 = require('@polkadot/api'); -const util_1 = require('@polkadot/util'); -const util_js_1 = require('../util.js'); -const BaseRevive_js_1 = require('./BaseRevive.js'); -const util_js_2 = require('./util.js'); -const MAX_CALL_GAS = new util_1.BN(5_000_000_000_000).isub(util_1.BN_ONE); -const l = (0, util_1.logger)('Contract'); -function createQuery(meta, fn) { - return (0, util_js_2.withMeta)(meta, (origin, options, ...params) => fn(origin, options, params)); -} -function createTx(meta, fn) { - return (0, util_js_2.withMeta)(meta, (options, ...params) => fn(options, params)); -} -class ContractSubmittableResult extends api_1.SubmittableResult { - contractEvents; - constructor(result, contractEvents) { - super(result); - this.contractEvents = contractEvents; - } -} -exports.ContractSubmittableResult = ContractSubmittableResult; -class ContractRevive extends BaseRevive_js_1.BaseRevive { - /** - * @description The on-chain address for this contract - */ - address; - __internal__query = {}; - __internal__tx = {}; - constructor(api, abi, address, decorateMethod) { - super(api, abi, decorateMethod); - this.address = this.registry.createType('AccountId20', address); - this.abi.messages.forEach(m => { - if ((0, util_1.isUndefined)(this.__internal__tx[m.method])) { - this.__internal__tx[m.method] = createTx(m, (o, p) => this.__internal__exec(m, o, p)); - } - if ((0, util_1.isUndefined)(this.__internal__query[m.method])) { - this.__internal__query[m.method] = createQuery(m, (f, o, p) => - this.__internal__read(m, o, p).send(f), - ); - } - }); - } - get query() { - return this.__internal__query; - } - get tx() { - return this.__internal__tx; - } - __internal__getGas = (_gasLimit, isCall = false) => { - const weight = (0, util_js_2.convertWeight)(_gasLimit); - if (weight.v1Weight.gt(util_1.BN_ZERO)) { - return weight; - } - return (0, util_js_2.convertWeight)( - isCall - ? MAX_CALL_GAS - : (0, util_js_2.convertWeight)( - this.api.consts.system.blockWeights - ? this.api.consts.system.blockWeights.maxBlock - : this.api.consts.system['maximumBlockWeight'], - ) - .v1Weight.muln(64) - .div(util_1.BN_HUNDRED), - ); - }; - __internal__exec = ( - messageOrId, - { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - return this.api.tx.revive - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? (0, util_js_2.convertWeight)(gasLimit).v1Weight - : (0, util_js_2.convertWeight)(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - result => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - (0, util_js_1.applyOnEvent)(result, ['ContractEmitted', 'ContractExecution'], records => - records - .map(record => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${error.message}`); - return null; - } - }) - .filter(decoded => !!decoded), - ), - ), - ); - }; - __internal__read = ( - messageOrId, - { gasLimit = util_1.BN_ZERO, storageDepositLimit = null, value = util_1.BN_ZERO }, - params, - ) => { - const message = this.abi.findMessage(messageOrId); - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod(origin => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.__internal__getGas(gasLimit, true).v1Weight - : this.__internal__getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - (0, rxjs_1.map)( - ({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }) => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !(0, util_js_2.convertWeight)(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - }), - ), - ), - ), - }; - }; -} -exports.ContractRevive = ContractRevive; -function extendContract(type, decorateMethod) { - return class extends ContractRevive { - static __ContractType = type; - constructor(api, abi, address) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/build/cjs/base/index.d.ts b/.api-contract/build/cjs/base/index.d.ts deleted file mode 100644 index 30a149b4..00000000 --- a/.api-contract/build/cjs/base/index.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; -export { BlueprintRevive } from './BlueprintRevive.js'; -export { Code, CodeSubmittableResult, extendCode } from './Code.js'; -export { CodeRevive } from './CodeRevive.js'; -export { Contract, extendContract } from './Contract.js'; -export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-contract/build/cjs/base/index.js b/.api-contract/build/cjs/base/index.js deleted file mode 100644 index 98972576..00000000 --- a/.api-contract/build/cjs/base/index.js +++ /dev/null @@ -1,86 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.ContractRevive = - exports.extendContract = - exports.Contract = - exports.CodeRevive = - exports.extendCode = - exports.CodeSubmittableResult = - exports.Code = - exports.BlueprintRevive = - exports.extendBlueprint = - exports.BlueprintSubmittableResult = - exports.Blueprint = - void 0; -var Blueprint_js_1 = require('./Blueprint.js'); -Object.defineProperty(exports, 'Blueprint', { - enumerable: true, - get: function () { - return Blueprint_js_1.Blueprint; - }, -}); -Object.defineProperty(exports, 'BlueprintSubmittableResult', { - enumerable: true, - get: function () { - return Blueprint_js_1.BlueprintSubmittableResult; - }, -}); -Object.defineProperty(exports, 'extendBlueprint', { - enumerable: true, - get: function () { - return Blueprint_js_1.extendBlueprint; - }, -}); -var BlueprintRevive_js_1 = require('./BlueprintRevive.js'); -Object.defineProperty(exports, 'BlueprintRevive', { - enumerable: true, - get: function () { - return BlueprintRevive_js_1.BlueprintRevive; - }, -}); -var Code_js_1 = require('./Code.js'); -Object.defineProperty(exports, 'Code', { - enumerable: true, - get: function () { - return Code_js_1.Code; - }, -}); -Object.defineProperty(exports, 'CodeSubmittableResult', { - enumerable: true, - get: function () { - return Code_js_1.CodeSubmittableResult; - }, -}); -Object.defineProperty(exports, 'extendCode', { - enumerable: true, - get: function () { - return Code_js_1.extendCode; - }, -}); -var CodeRevive_js_1 = require('./CodeRevive.js'); -Object.defineProperty(exports, 'CodeRevive', { - enumerable: true, - get: function () { - return CodeRevive_js_1.CodeRevive; - }, -}); -var Contract_js_1 = require('./Contract.js'); -Object.defineProperty(exports, 'Contract', { - enumerable: true, - get: function () { - return Contract_js_1.Contract; - }, -}); -Object.defineProperty(exports, 'extendContract', { - enumerable: true, - get: function () { - return Contract_js_1.extendContract; - }, -}); -var ContractRevive_js_1 = require('./ContractRevive.js'); -Object.defineProperty(exports, 'ContractRevive', { - enumerable: true, - get: function () { - return ContractRevive_js_1.ContractRevive; - }, -}); diff --git a/.api-contract/build/cjs/base/mock.d.ts b/.api-contract/build/cjs/base/mock.d.ts deleted file mode 100644 index 51f21099..00000000 --- a/.api-contract/build/cjs/base/mock.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -export declare const mockApi: ApiBase<'promise'>; diff --git a/.api-contract/build/cjs/base/mock.js b/.api-contract/build/cjs/base/mock.js deleted file mode 100644 index 59ffb46e..00000000 --- a/.api-contract/build/cjs/base/mock.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.mockApi = void 0; -const types_1 = require('@polkadot/types'); -const registry = new types_1.TypeRegistry(); -const instantiateWithCode = () => { - throw new Error('mock'); -}; -instantiateWithCode.meta = { args: new Array(6) }; -exports.mockApi = { - call: { - contractsApi: { - call: () => { - throw new Error('mock'); - }, - }, - }, - isConnected: true, - registry, - tx: { - contracts: { - instantiateWithCode, - }, - }, -}; diff --git a/.api-contract/build/cjs/base/types.d.ts b/.api-contract/build/cjs/base/types.d.ts deleted file mode 100644 index 1841c9b7..00000000 --- a/.api-contract/build/cjs/base/types.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { Observable } from 'rxjs'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes, ObsInnerType } from '@polkadot/api/types'; -import type { AccountId } from '@polkadot/types/interfaces'; -import type { - AbiMessage, - BlueprintOptions, - ContractCallOutcome, - ContractOptions, -} from '../types.js'; -export interface MessageMeta { - readonly meta: AbiMessage; -} -export interface BlueprintDeploy extends MessageMeta { - (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; -} -export interface ContractQuery extends MessageMeta { - ( - origin: AccountId | string | Uint8Array, - options: ContractOptions, - ...params: unknown[] - ): ContractCallResult; -} -export interface ContractTx extends MessageMeta { - (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; -} -export type ContractGeneric = ( - messageOrId: AbiMessage | string | number, - options: O, - ...params: unknown[] -) => T; -export type ContractCallResult = ApiType extends 'rxjs' - ? Observable - : Promise>>; -export interface ContractCallSend { - send(account: string | AccountId | Uint8Array): ContractCallResult; -} -export type MapConstructorExec = Record>; -export type MapMessageTx = Record>; -export type MapMessageQuery = Record>; diff --git a/.api-contract/build/cjs/base/types.js b/.api-contract/build/cjs/base/types.js deleted file mode 100644 index db8b17d5..00000000 --- a/.api-contract/build/cjs/base/types.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build/cjs/base/util.d.ts b/.api-contract/build/cjs/base/util.d.ts deleted file mode 100644 index 27d26904..00000000 --- a/.api-contract/build/cjs/base/util.d.ts +++ /dev/null @@ -1,31 +0,0 @@ -import type { SubmittableResult } from '@polkadot/api'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes } from '@polkadot/api/types'; -import type { WeightV1, WeightV2 } from '@polkadot/types/interfaces'; -import type { BN } from '@polkadot/util'; -import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.js'; -import type { BlueprintDeploy, ContractGeneric } from './types.js'; -export declare const EMPTY_SALT: Uint8Array; -export declare function withMeta< - T extends { - meta: AbiMessage; - }, ->(meta: AbiMessage, creator: Omit): T; -export declare function createBluePrintTx( - meta: AbiMessage, - fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic, -): BlueprintDeploy; -export declare function createBluePrintWithId( - fn: ( - constructorOrId: AbiConstructor | string | number, - options: BlueprintOptions, - params: unknown[], - ) => T, -): ContractGeneric; -export declare function encodeSalt(salt?: Uint8Array | string | null): Uint8Array; -export declare function convertWeight( - weight: WeightV1 | WeightV2 | bigint | string | number | BN, -): WeightAll; -export declare function isWeightV2( - weight: WeightV1 | WeightV2 | bigint | string | number | BN, -): weight is WeightV2; diff --git a/.api-contract/build/cjs/base/util.js b/.api-contract/build/cjs/base/util.js deleted file mode 100644 index 1a1a14f5..00000000 --- a/.api-contract/build/cjs/base/util.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.EMPTY_SALT = void 0; -exports.withMeta = withMeta; -exports.createBluePrintTx = createBluePrintTx; -exports.createBluePrintWithId = createBluePrintWithId; -exports.encodeSalt = encodeSalt; -exports.convertWeight = convertWeight; -exports.isWeightV2 = isWeightV2; -const types_1 = require('@polkadot/types'); -const util_1 = require('@polkadot/util'); -const util_crypto_1 = require('@polkadot/util-crypto'); -exports.EMPTY_SALT = new Uint8Array(); -function withMeta(meta, creator) { - creator.meta = meta; - return creator; -} -function createBluePrintTx(meta, fn) { - return withMeta(meta, (options, ...params) => fn(options, params)); -} -function createBluePrintWithId(fn) { - return (constructorOrId, options, ...params) => fn(constructorOrId, options, params); -} -function encodeSalt(salt = (0, util_crypto_1.randomAsU8a)()) { - return salt instanceof types_1.Bytes - ? salt - : salt?.length - ? (0, util_1.compactAddLength)((0, util_1.u8aToU8a)(salt)) - : exports.EMPTY_SALT; -} -function convertWeight(weight) { - const [refTime, proofSize] = isWeightV2(weight) - ? [weight.refTime.toBn(), weight.proofSize.toBn()] - : [(0, util_1.bnToBn)(weight), undefined]; - return { - v1Weight: refTime, - v2Weight: { proofSize, refTime }, - }; -} -function isWeightV2(weight) { - return !!weight.proofSize; -} diff --git a/.api-contract/build/cjs/bundle.d.ts b/.api-contract/build/cjs/bundle.d.ts deleted file mode 100644 index d087e9db..00000000 --- a/.api-contract/build/cjs/bundle.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export { Abi } from './Abi/index.js'; -export { packageInfo } from './packageInfo.js'; -export * from './promise/index.js'; -export * from './rx/index.js'; diff --git a/.api-contract/build/cjs/bundle.js b/.api-contract/build/cjs/bundle.js deleted file mode 100644 index 0f1f8f06..00000000 --- a/.api-contract/build/cjs/bundle.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.packageInfo = exports.Abi = void 0; -const tslib_1 = require('tslib'); -var index_js_1 = require('./Abi/index.js'); -Object.defineProperty(exports, 'Abi', { - enumerable: true, - get: function () { - return index_js_1.Abi; - }, -}); -var packageInfo_js_1 = require('./packageInfo.js'); -Object.defineProperty(exports, 'packageInfo', { - enumerable: true, - get: function () { - return packageInfo_js_1.packageInfo; - }, -}); -tslib_1.__exportStar(require('./promise/index.js'), exports); -tslib_1.__exportStar(require('./rx/index.js'), exports); diff --git a/.api-contract/build/cjs/index.d.ts b/.api-contract/build/cjs/index.d.ts deleted file mode 100644 index ca3f403b..00000000 --- a/.api-contract/build/cjs/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import './packageDetect.js'; -export * from './bundle.js'; diff --git a/.api-contract/build/cjs/index.js b/.api-contract/build/cjs/index.js deleted file mode 100644 index 509038d7..00000000 --- a/.api-contract/build/cjs/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -const tslib_1 = require('tslib'); -require('./packageDetect.js'); -tslib_1.__exportStar(require('./bundle.js'), exports); diff --git a/.api-contract/build/cjs/package.json b/.api-contract/build/cjs/package.json deleted file mode 100644 index 5bbefffb..00000000 --- a/.api-contract/build/cjs/package.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "commonjs" -} diff --git a/.api-contract/build/cjs/packageDetect.d.ts b/.api-contract/build/cjs/packageDetect.d.ts deleted file mode 100644 index cb0ff5c3..00000000 --- a/.api-contract/build/cjs/packageDetect.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/.api-contract/build/cjs/packageDetect.js b/.api-contract/build/cjs/packageDetect.js deleted file mode 100644 index dbbd6594..00000000 --- a/.api-contract/build/cjs/packageDetect.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -const packageInfo_1 = require('@polkadot/api/cjs/packageInfo'); -const packageInfo_2 = require('@polkadot/types/cjs/packageInfo'); -const util_1 = require('@polkadot/util'); -const packageInfo_js_1 = require('./packageInfo.js'); -(0, util_1.detectPackage)(packageInfo_js_1.packageInfo, null, [ - packageInfo_1.packageInfo, - packageInfo_2.packageInfo, -]); diff --git a/.api-contract/build/cjs/packageInfo.d.ts b/.api-contract/build/cjs/packageInfo.d.ts deleted file mode 100644 index 1b6c408b..00000000 --- a/.api-contract/build/cjs/packageInfo.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export declare const packageInfo: { - name: string; - path: string; - type: string; - version: string; -}; diff --git a/.api-contract/build/cjs/packageInfo.js b/.api-contract/build/cjs/packageInfo.js deleted file mode 100644 index 39a18613..00000000 --- a/.api-contract/build/cjs/packageInfo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.packageInfo = void 0; -exports.packageInfo = { - name: '@polkadot/api-contract', - path: typeof __dirname === 'string' ? __dirname : 'auto', - type: 'cjs', - version: '15.8.1', -}; diff --git a/.api-contract/build/cjs/promise/index.d.ts b/.api-contract/build/cjs/promise/index.d.ts deleted file mode 100644 index 3c1f5a23..00000000 --- a/.api-contract/build/cjs/promise/index.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import type { ApiPromise } from '@polkadot/api'; -import type { AccountId, AccountId20, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import { - Blueprint, - BlueprintRevive, - Code, - CodeRevive, - Contract, - ContractRevive, -} from '../base/index.js'; -export declare class BlueprintPromise extends Blueprint<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ); -} -export declare class CodePromise extends Code<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractPromise extends Contract<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId, - ); -} -export declare class BlueprintRevivePromise extends BlueprintRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ); -} -export declare class CodeRevivePromise extends CodeRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractRevivePromise extends ContractRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId20, - ); -} diff --git a/.api-contract/build/cjs/promise/index.js b/.api-contract/build/cjs/promise/index.js deleted file mode 100644 index 050deffe..00000000 --- a/.api-contract/build/cjs/promise/index.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.ContractRevivePromise = - exports.CodeRevivePromise = - exports.BlueprintRevivePromise = - exports.ContractPromise = - exports.CodePromise = - exports.BlueprintPromise = - void 0; -const api_1 = require('@polkadot/api'); -const index_js_1 = require('../base/index.js'); -class BlueprintPromise extends index_js_1.Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, api_1.toPromiseMethod); - } -} -exports.BlueprintPromise = BlueprintPromise; -class CodePromise extends index_js_1.Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, api_1.toPromiseMethod); - } -} -exports.CodePromise = CodePromise; -class ContractPromise extends index_js_1.Contract { - constructor(api, abi, address) { - super(api, abi, address, api_1.toPromiseMethod); - } -} -exports.ContractPromise = ContractPromise; -class BlueprintRevivePromise extends index_js_1.BlueprintRevive { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, api_1.toPromiseMethod); - } -} -exports.BlueprintRevivePromise = BlueprintRevivePromise; -class CodeRevivePromise extends index_js_1.CodeRevive { - constructor(api, abi, wasm) { - super(api, abi, wasm, api_1.toPromiseMethod); - } -} -exports.CodeRevivePromise = CodeRevivePromise; -class ContractRevivePromise extends index_js_1.ContractRevive { - constructor(api, abi, address) { - super(api, abi, address, api_1.toPromiseMethod); - } -} -exports.ContractRevivePromise = ContractRevivePromise; diff --git a/.api-contract/build/cjs/promise/types.d.ts b/.api-contract/build/cjs/promise/types.d.ts deleted file mode 100644 index 7784ef2c..00000000 --- a/.api-contract/build/cjs/promise/types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { - BlueprintSubmittableResult as BaseBlueprintSubmittableResult, - CodeSubmittableResult as BaseCodeSubmittableResult, -} from '../base/index.js'; -export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; -export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build/cjs/promise/types.js b/.api-contract/build/cjs/promise/types.js deleted file mode 100644 index db8b17d5..00000000 --- a/.api-contract/build/cjs/promise/types.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build/cjs/rx/index.d.ts b/.api-contract/build/cjs/rx/index.d.ts deleted file mode 100644 index 1357b476..00000000 --- a/.api-contract/build/cjs/rx/index.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { ApiRx } from '@polkadot/api'; -import type { AccountId, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import { Blueprint, Code, Contract } from '../base/index.js'; -export declare class BlueprintRx extends Blueprint<'rxjs'> { - constructor(api: ApiRx, abi: string | Record | Abi, codeHash: string | Hash); -} -export declare class CodeRx extends Code<'rxjs'> { - constructor( - api: ApiRx, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractRx extends Contract<'rxjs'> { - constructor(api: ApiRx, abi: string | Record | Abi, address: string | AccountId); -} diff --git a/.api-contract/build/cjs/rx/index.js b/.api-contract/build/cjs/rx/index.js deleted file mode 100644 index 6846d72a..00000000 --- a/.api-contract/build/cjs/rx/index.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.ContractRx = exports.CodeRx = exports.BlueprintRx = void 0; -const api_1 = require('@polkadot/api'); -const index_js_1 = require('../base/index.js'); -class BlueprintRx extends index_js_1.Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, api_1.toRxMethod); - } -} -exports.BlueprintRx = BlueprintRx; -class CodeRx extends index_js_1.Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, api_1.toRxMethod); - } -} -exports.CodeRx = CodeRx; -class ContractRx extends index_js_1.Contract { - constructor(api, abi, address) { - super(api, abi, address, api_1.toRxMethod); - } -} -exports.ContractRx = ContractRx; diff --git a/.api-contract/build/cjs/rx/types.d.ts b/.api-contract/build/cjs/rx/types.d.ts deleted file mode 100644 index 7784ef2c..00000000 --- a/.api-contract/build/cjs/rx/types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { - BlueprintSubmittableResult as BaseBlueprintSubmittableResult, - CodeSubmittableResult as BaseCodeSubmittableResult, -} from '../base/index.js'; -export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; -export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build/cjs/rx/types.js b/.api-contract/build/cjs/rx/types.js deleted file mode 100644 index db8b17d5..00000000 --- a/.api-contract/build/cjs/rx/types.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build/cjs/types.d.ts b/.api-contract/build/cjs/types.d.ts deleted file mode 100644 index b535e85a..00000000 --- a/.api-contract/build/cjs/types.d.ts +++ /dev/null @@ -1,85 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes } from '@polkadot/api/types'; -import type { Text } from '@polkadot/types'; -import type { - ContractExecResultResult, - ContractSelector, - StorageDeposit, - Weight, - WeightV2, -} from '@polkadot/types/interfaces'; -import type { Codec, TypeDef } from '@polkadot/types/types'; -import type { BN } from '@polkadot/util'; -import type { HexString } from '@polkadot/util/types'; -import type { Abi } from './index.js'; -export interface ContractBase { - readonly abi: Abi; - readonly api: ApiBase; - getMessage: (name: string) => AbiMessage; - messages: AbiMessage[]; -} -export interface AbiParam { - name: string; - type: TypeDef; -} -export type AbiMessageParam = AbiParam; -export interface AbiEventParam extends AbiParam { - indexed: boolean; -} -export interface AbiEvent { - args: AbiEventParam[]; - docs: string[]; - fromU8a: (data: Uint8Array) => DecodedEvent; - identifier: string; - index: number; - signatureTopic?: HexString | null; -} -export interface AbiMessage { - args: AbiMessageParam[]; - docs: string[]; - fromU8a: (data: Uint8Array) => DecodedMessage; - identifier: string; - index: number; - isConstructor?: boolean; - isDefault?: boolean; - isMutating?: boolean; - isPayable?: boolean; - method: string; - path: string[]; - returnType?: TypeDef | null; - selector: ContractSelector; - toU8a: (params: unknown[]) => Uint8Array; -} -export type AbiConstructor = AbiMessage; -export type InterfaceContractCalls = Record; -export interface ContractCallOutcome { - debugMessage: Text; - gasConsumed: Weight; - gasRequired: Weight; - output: Codec | null; - result: ContractExecResultResult; - storageDeposit: StorageDeposit; -} -export interface DecodedEvent { - args: Codec[]; - event: AbiEvent; -} -export interface DecodedMessage { - args: Codec[]; - message: AbiMessage; -} -export interface ContractOptions { - gasLimit?: bigint | string | number | BN | WeightV2; - storageDepositLimit?: bigint | string | number | BN | null; - value?: bigint | BN | string | number; -} -export interface BlueprintOptions extends ContractOptions { - salt?: Uint8Array | string | null; -} -export interface WeightAll { - v1Weight: BN; - v2Weight: { - refTime: BN; - proofSize?: BN | undefined; - }; -} diff --git a/.api-contract/build/cjs/types.js b/.api-contract/build/cjs/types.js deleted file mode 100644 index db8b17d5..00000000 --- a/.api-contract/build/cjs/types.js +++ /dev/null @@ -1,2 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/.api-contract/build/cjs/util.d.ts b/.api-contract/build/cjs/util.d.ts deleted file mode 100644 index 60682eff..00000000 --- a/.api-contract/build/cjs/util.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { SubmittableResult } from '@polkadot/api'; -import type { EventRecord } from '@polkadot/types/interfaces'; -type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; -export declare function applyOnEvent( - result: SubmittableResult, - types: ContractEvents[], - fn: (records: EventRecord[]) => T, -): T | undefined; -export {}; diff --git a/.api-contract/build/cjs/util.js b/.api-contract/build/cjs/util.js deleted file mode 100644 index ae77e3ce..00000000 --- a/.api-contract/build/cjs/util.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; -Object.defineProperty(exports, '__esModule', { value: true }); -exports.applyOnEvent = applyOnEvent; -function applyOnEvent(result, types, fn) { - if (result.isInBlock || result.isFinalized) { - const records = result.filterRecords('contracts', types); - if (records.length) { - return fn(records); - } - } - return undefined; -} diff --git a/.api-contract/build/index.d.ts b/.api-contract/build/index.d.ts deleted file mode 100644 index ca3f403b..00000000 --- a/.api-contract/build/index.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import './packageDetect.js'; -export * from './bundle.js'; diff --git a/.api-contract/build/index.js b/.api-contract/build/index.js deleted file mode 100644 index ca3f403b..00000000 --- a/.api-contract/build/index.js +++ /dev/null @@ -1,2 +0,0 @@ -import './packageDetect.js'; -export * from './bundle.js'; diff --git a/.api-contract/build/package.json b/.api-contract/build/package.json deleted file mode 100644 index e80b9a7f..00000000 --- a/.api-contract/build/package.json +++ /dev/null @@ -1,464 +0,0 @@ -{ - "author": "Jaco Greeff ", - "bugs": "https://github.com/polkadot-js/api/issues", - "description": "Interfaces for interacting with contracts and contract ABIs", - "engines": { - "node": ">=18" - }, - "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme", - "license": "Apache-2.0", - "name": "@polkadot/api-contract", - "repository": { - "directory": "packages/api-contract", - "type": "git", - "url": "https://github.com/polkadot-js/api.git" - }, - "sideEffects": [ - "./packageDetect.js", - "./cjs/packageDetect.js" - ], - "type": "module", - "version": "15.8.1", - "main": "./cjs/index.js", - "module": "./index.js", - "types": "./index.d.ts", - "exports": { - "./cjs/package.json": "./cjs/package.json", - "./cjs/*": "./cjs/*.js", - ".": { - "module": { - "types": "./index.d.ts", - "default": "./index.js" - }, - "require": { - "types": "./cjs/index.d.ts", - "default": "./cjs/index.js" - }, - "default": { - "types": "./index.d.ts", - "default": "./index.js" - } - }, - "./Abi": { - "module": { - "types": "./Abi/index.d.ts", - "default": "./Abi/index.js" - }, - "require": { - "types": "./cjs/Abi/index.d.ts", - "default": "./cjs/Abi/index.js" - }, - "default": { - "types": "./Abi/index.d.ts", - "default": "./Abi/index.js" - } - }, - "./Abi/toLatestCompatible": { - "module": { - "types": "./Abi/toLatestCompatible.d.ts", - "default": "./Abi/toLatestCompatible.js" - }, - "require": { - "types": "./cjs/Abi/toLatestCompatible.d.ts", - "default": "./cjs/Abi/toLatestCompatible.js" - }, - "default": { - "types": "./Abi/toLatestCompatible.d.ts", - "default": "./Abi/toLatestCompatible.js" - } - }, - "./Abi/toV1": { - "module": { - "types": "./Abi/toV1.d.ts", - "default": "./Abi/toV1.js" - }, - "require": { - "types": "./cjs/Abi/toV1.d.ts", - "default": "./cjs/Abi/toV1.js" - }, - "default": { - "types": "./Abi/toV1.d.ts", - "default": "./Abi/toV1.js" - } - }, - "./Abi/toV2": { - "module": { - "types": "./Abi/toV2.d.ts", - "default": "./Abi/toV2.js" - }, - "require": { - "types": "./cjs/Abi/toV2.d.ts", - "default": "./cjs/Abi/toV2.js" - }, - "default": { - "types": "./Abi/toV2.d.ts", - "default": "./Abi/toV2.js" - } - }, - "./Abi/toV3": { - "module": { - "types": "./Abi/toV3.d.ts", - "default": "./Abi/toV3.js" - }, - "require": { - "types": "./cjs/Abi/toV3.d.ts", - "default": "./cjs/Abi/toV3.js" - }, - "default": { - "types": "./Abi/toV3.d.ts", - "default": "./Abi/toV3.js" - } - }, - "./Abi/toV4": { - "module": { - "types": "./Abi/toV4.d.ts", - "default": "./Abi/toV4.js" - }, - "require": { - "types": "./cjs/Abi/toV4.d.ts", - "default": "./cjs/Abi/toV4.js" - }, - "default": { - "types": "./Abi/toV4.d.ts", - "default": "./Abi/toV4.js" - } - }, - "./augment": { - "module": { - "types": "./augment.d.ts", - "default": "./augment.js" - }, - "require": { - "types": "./cjs/augment.d.ts", - "default": "./cjs/augment.js" - }, - "default": { - "types": "./augment.d.ts", - "default": "./augment.js" - } - }, - "./base": { - "module": { - "types": "./base/index.d.ts", - "default": "./base/index.js" - }, - "require": { - "types": "./cjs/base/index.d.ts", - "default": "./cjs/base/index.js" - }, - "default": { - "types": "./base/index.d.ts", - "default": "./base/index.js" - } - }, - "./base/Base": { - "module": { - "types": "./base/Base.d.ts", - "default": "./base/Base.js" - }, - "require": { - "types": "./cjs/base/Base.d.ts", - "default": "./cjs/base/Base.js" - }, - "default": { - "types": "./base/Base.d.ts", - "default": "./base/Base.js" - } - }, - "./base/BaseRevive": { - "module": { - "types": "./base/BaseRevive.d.ts", - "default": "./base/BaseRevive.js" - }, - "require": { - "types": "./cjs/base/BaseRevive.d.ts", - "default": "./cjs/base/BaseRevive.js" - }, - "default": { - "types": "./base/BaseRevive.d.ts", - "default": "./base/BaseRevive.js" - } - }, - "./base/Blueprint": { - "module": { - "types": "./base/Blueprint.d.ts", - "default": "./base/Blueprint.js" - }, - "require": { - "types": "./cjs/base/Blueprint.d.ts", - "default": "./cjs/base/Blueprint.js" - }, - "default": { - "types": "./base/Blueprint.d.ts", - "default": "./base/Blueprint.js" - } - }, - "./base/BlueprintRevive": { - "module": { - "types": "./base/BlueprintRevive.d.ts", - "default": "./base/BlueprintRevive.js" - }, - "require": { - "types": "./cjs/base/BlueprintRevive.d.ts", - "default": "./cjs/base/BlueprintRevive.js" - }, - "default": { - "types": "./base/BlueprintRevive.d.ts", - "default": "./base/BlueprintRevive.js" - } - }, - "./base/Code": { - "module": { - "types": "./base/Code.d.ts", - "default": "./base/Code.js" - }, - "require": { - "types": "./cjs/base/Code.d.ts", - "default": "./cjs/base/Code.js" - }, - "default": { - "types": "./base/Code.d.ts", - "default": "./base/Code.js" - } - }, - "./base/CodeRevive": { - "module": { - "types": "./base/CodeRevive.d.ts", - "default": "./base/CodeRevive.js" - }, - "require": { - "types": "./cjs/base/CodeRevive.d.ts", - "default": "./cjs/base/CodeRevive.js" - }, - "default": { - "types": "./base/CodeRevive.d.ts", - "default": "./base/CodeRevive.js" - } - }, - "./base/Contract": { - "module": { - "types": "./base/Contract.d.ts", - "default": "./base/Contract.js" - }, - "require": { - "types": "./cjs/base/Contract.d.ts", - "default": "./cjs/base/Contract.js" - }, - "default": { - "types": "./base/Contract.d.ts", - "default": "./base/Contract.js" - } - }, - "./base/ContractRevive": { - "module": { - "types": "./base/ContractRevive.d.ts", - "default": "./base/ContractRevive.js" - }, - "require": { - "types": "./cjs/base/ContractRevive.d.ts", - "default": "./cjs/base/ContractRevive.js" - }, - "default": { - "types": "./base/ContractRevive.d.ts", - "default": "./base/ContractRevive.js" - } - }, - "./base/mock": { - "module": { - "types": "./base/mock.d.ts", - "default": "./base/mock.js" - }, - "require": { - "types": "./cjs/base/mock.d.ts", - "default": "./cjs/base/mock.js" - }, - "default": { - "types": "./base/mock.d.ts", - "default": "./base/mock.js" - } - }, - "./base/types": { - "module": { - "types": "./base/types.d.ts", - "default": "./base/types.js" - }, - "require": { - "types": "./cjs/base/types.d.ts", - "default": "./cjs/base/types.js" - }, - "default": { - "types": "./base/types.d.ts", - "default": "./base/types.js" - } - }, - "./base/util": { - "module": { - "types": "./base/util.d.ts", - "default": "./base/util.js" - }, - "require": { - "types": "./cjs/base/util.d.ts", - "default": "./cjs/base/util.js" - }, - "default": { - "types": "./base/util.d.ts", - "default": "./base/util.js" - } - }, - "./bundle": { - "module": { - "types": "./bundle.d.ts", - "default": "./bundle.js" - }, - "require": { - "types": "./cjs/bundle.d.ts", - "default": "./cjs/bundle.js" - }, - "default": { - "types": "./bundle.d.ts", - "default": "./bundle.js" - } - }, - "./package.json": { - "require": "./cjs/package.json", - "default": "./package.json" - }, - "./packageDetect": { - "module": { - "types": "./packageDetect.d.ts", - "default": "./packageDetect.js" - }, - "require": { - "types": "./cjs/packageDetect.d.ts", - "default": "./cjs/packageDetect.js" - }, - "default": { - "types": "./packageDetect.d.ts", - "default": "./packageDetect.js" - } - }, - "./packageInfo.js": { - "module": { - "types": "./packageInfo.d.ts", - "default": "./packageInfo.js" - }, - "require": { - "types": "./cjs/packageInfo.d.ts", - "default": "./cjs/packageInfo.js" - }, - "default": { - "types": "./packageInfo.d.ts", - "default": "./packageInfo.js" - } - }, - "./packageInfo": { - "module": { - "types": "./packageInfo.d.ts", - "default": "./packageInfo.js" - }, - "require": { - "types": "./cjs/packageInfo.d.ts", - "default": "./cjs/packageInfo.js" - }, - "default": { - "types": "./packageInfo.d.ts", - "default": "./packageInfo.js" - } - }, - "./promise": { - "module": { - "types": "./promise/index.d.ts", - "default": "./promise/index.js" - }, - "require": { - "types": "./cjs/promise/index.d.ts", - "default": "./cjs/promise/index.js" - }, - "default": { - "types": "./promise/index.d.ts", - "default": "./promise/index.js" - } - }, - "./promise/types": { - "module": { - "types": "./promise/types.d.ts", - "default": "./promise/types.js" - }, - "require": { - "types": "./cjs/promise/types.d.ts", - "default": "./cjs/promise/types.js" - }, - "default": { - "types": "./promise/types.d.ts", - "default": "./promise/types.js" - } - }, - "./rx": { - "module": { - "types": "./rx/index.d.ts", - "default": "./rx/index.js" - }, - "require": { - "types": "./cjs/rx/index.d.ts", - "default": "./cjs/rx/index.js" - }, - "default": { - "types": "./rx/index.d.ts", - "default": "./rx/index.js" - } - }, - "./rx/types": { - "module": { - "types": "./rx/types.d.ts", - "default": "./rx/types.js" - }, - "require": { - "types": "./cjs/rx/types.d.ts", - "default": "./cjs/rx/types.js" - }, - "default": { - "types": "./rx/types.d.ts", - "default": "./rx/types.js" - } - }, - "./types": { - "module": { - "types": "./types.d.ts", - "default": "./types.js" - }, - "require": { - "types": "./cjs/types.d.ts", - "default": "./cjs/types.js" - }, - "default": { - "types": "./types.d.ts", - "default": "./types.js" - } - }, - "./util": { - "module": { - "types": "./util.d.ts", - "default": "./util.js" - }, - "require": { - "types": "./cjs/util.d.ts", - "default": "./cjs/util.js" - }, - "default": { - "types": "./util.d.ts", - "default": "./util.js" - } - } - }, - "dependencies": { - "@polkadot/api": "15.8.1", - "@polkadot/api-augment": "15.8.1", - "@polkadot/types": "15.8.1", - "@polkadot/types-codec": "15.8.1", - "@polkadot/types-create": "15.8.1", - "@polkadot/util": "^13.4.3", - "@polkadot/util-crypto": "^13.4.3", - "rxjs": "^7.8.1", - "tslib": "^2.8.1" - } -} diff --git a/.api-contract/build/packageDetect.d.ts b/.api-contract/build/packageDetect.d.ts deleted file mode 100644 index cb0ff5c3..00000000 --- a/.api-contract/build/packageDetect.d.ts +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/.api-contract/build/packageDetect.js b/.api-contract/build/packageDetect.js deleted file mode 100644 index 71d2439c..00000000 --- a/.api-contract/build/packageDetect.js +++ /dev/null @@ -1,5 +0,0 @@ -import { packageInfo as apiInfo } from '@polkadot/api/packageInfo'; -import { packageInfo as typesInfo } from '@polkadot/types/packageInfo'; -import { detectPackage } from '@polkadot/util'; -import { packageInfo } from './packageInfo.js'; -detectPackage(packageInfo, null, [apiInfo, typesInfo]); diff --git a/.api-contract/build/packageInfo.d.ts b/.api-contract/build/packageInfo.d.ts deleted file mode 100644 index 1b6c408b..00000000 --- a/.api-contract/build/packageInfo.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export declare const packageInfo: { - name: string; - path: string; - type: string; - version: string; -}; diff --git a/.api-contract/build/packageInfo.js b/.api-contract/build/packageInfo.js deleted file mode 100644 index 0d90c7dc..00000000 --- a/.api-contract/build/packageInfo.js +++ /dev/null @@ -1,12 +0,0 @@ -export const packageInfo = { - name: '@polkadot/api-contract', - path: - import.meta && import.meta.url - ? new URL(import.meta.url).pathname.substring( - 0, - new URL(import.meta.url).pathname.lastIndexOf('/') + 1, - ) - : 'auto', - type: 'esm', - version: '15.8.1', -}; diff --git a/.api-contract/build/promise/index.d.ts b/.api-contract/build/promise/index.d.ts deleted file mode 100644 index 3c1f5a23..00000000 --- a/.api-contract/build/promise/index.d.ts +++ /dev/null @@ -1,53 +0,0 @@ -import type { ApiPromise } from '@polkadot/api'; -import type { AccountId, AccountId20, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import { - Blueprint, - BlueprintRevive, - Code, - CodeRevive, - Contract, - ContractRevive, -} from '../base/index.js'; -export declare class BlueprintPromise extends Blueprint<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ); -} -export declare class CodePromise extends Code<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractPromise extends Contract<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId, - ); -} -export declare class BlueprintRevivePromise extends BlueprintRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ); -} -export declare class CodeRevivePromise extends CodeRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractRevivePromise extends ContractRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId20, - ); -} diff --git a/.api-contract/build/promise/index.js b/.api-contract/build/promise/index.js deleted file mode 100644 index 76deb8a7..00000000 --- a/.api-contract/build/promise/index.js +++ /dev/null @@ -1,39 +0,0 @@ -import { toPromiseMethod } from '@polkadot/api'; -import { - Blueprint, - BlueprintRevive, - Code, - CodeRevive, - Contract, - ContractRevive, -} from '../base/index.js'; -export class BlueprintPromise extends Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, toPromiseMethod); - } -} -export class CodePromise extends Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, toPromiseMethod); - } -} -export class ContractPromise extends Contract { - constructor(api, abi, address) { - super(api, abi, address, toPromiseMethod); - } -} -export class BlueprintRevivePromise extends BlueprintRevive { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, toPromiseMethod); - } -} -export class CodeRevivePromise extends CodeRevive { - constructor(api, abi, wasm) { - super(api, abi, wasm, toPromiseMethod); - } -} -export class ContractRevivePromise extends ContractRevive { - constructor(api, abi, address) { - super(api, abi, address, toPromiseMethod); - } -} diff --git a/.api-contract/build/promise/types.d.ts b/.api-contract/build/promise/types.d.ts deleted file mode 100644 index 7784ef2c..00000000 --- a/.api-contract/build/promise/types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { - BlueprintSubmittableResult as BaseBlueprintSubmittableResult, - CodeSubmittableResult as BaseCodeSubmittableResult, -} from '../base/index.js'; -export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; -export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build/promise/types.js b/.api-contract/build/promise/types.js deleted file mode 100644 index cb0ff5c3..00000000 --- a/.api-contract/build/promise/types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/.api-contract/build/rx/index.d.ts b/.api-contract/build/rx/index.d.ts deleted file mode 100644 index 1357b476..00000000 --- a/.api-contract/build/rx/index.d.ts +++ /dev/null @@ -1,17 +0,0 @@ -import type { ApiRx } from '@polkadot/api'; -import type { AccountId, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; -import { Blueprint, Code, Contract } from '../base/index.js'; -export declare class BlueprintRx extends Blueprint<'rxjs'> { - constructor(api: ApiRx, abi: string | Record | Abi, codeHash: string | Hash); -} -export declare class CodeRx extends Code<'rxjs'> { - constructor( - api: ApiRx, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ); -} -export declare class ContractRx extends Contract<'rxjs'> { - constructor(api: ApiRx, abi: string | Record | Abi, address: string | AccountId); -} diff --git a/.api-contract/build/rx/index.js b/.api-contract/build/rx/index.js deleted file mode 100644 index 3ff57ea8..00000000 --- a/.api-contract/build/rx/index.js +++ /dev/null @@ -1,17 +0,0 @@ -import { toRxMethod } from '@polkadot/api'; -import { Blueprint, Code, Contract } from '../base/index.js'; -export class BlueprintRx extends Blueprint { - constructor(api, abi, codeHash) { - super(api, abi, codeHash, toRxMethod); - } -} -export class CodeRx extends Code { - constructor(api, abi, wasm) { - super(api, abi, wasm, toRxMethod); - } -} -export class ContractRx extends Contract { - constructor(api, abi, address) { - super(api, abi, address, toRxMethod); - } -} diff --git a/.api-contract/build/rx/types.d.ts b/.api-contract/build/rx/types.d.ts deleted file mode 100644 index 7784ef2c..00000000 --- a/.api-contract/build/rx/types.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import type { - BlueprintSubmittableResult as BaseBlueprintSubmittableResult, - CodeSubmittableResult as BaseCodeSubmittableResult, -} from '../base/index.js'; -export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; -export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/build/rx/types.js b/.api-contract/build/rx/types.js deleted file mode 100644 index cb0ff5c3..00000000 --- a/.api-contract/build/rx/types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/.api-contract/build/types.d.ts b/.api-contract/build/types.d.ts deleted file mode 100644 index b535e85a..00000000 --- a/.api-contract/build/types.d.ts +++ /dev/null @@ -1,85 +0,0 @@ -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes } from '@polkadot/api/types'; -import type { Text } from '@polkadot/types'; -import type { - ContractExecResultResult, - ContractSelector, - StorageDeposit, - Weight, - WeightV2, -} from '@polkadot/types/interfaces'; -import type { Codec, TypeDef } from '@polkadot/types/types'; -import type { BN } from '@polkadot/util'; -import type { HexString } from '@polkadot/util/types'; -import type { Abi } from './index.js'; -export interface ContractBase { - readonly abi: Abi; - readonly api: ApiBase; - getMessage: (name: string) => AbiMessage; - messages: AbiMessage[]; -} -export interface AbiParam { - name: string; - type: TypeDef; -} -export type AbiMessageParam = AbiParam; -export interface AbiEventParam extends AbiParam { - indexed: boolean; -} -export interface AbiEvent { - args: AbiEventParam[]; - docs: string[]; - fromU8a: (data: Uint8Array) => DecodedEvent; - identifier: string; - index: number; - signatureTopic?: HexString | null; -} -export interface AbiMessage { - args: AbiMessageParam[]; - docs: string[]; - fromU8a: (data: Uint8Array) => DecodedMessage; - identifier: string; - index: number; - isConstructor?: boolean; - isDefault?: boolean; - isMutating?: boolean; - isPayable?: boolean; - method: string; - path: string[]; - returnType?: TypeDef | null; - selector: ContractSelector; - toU8a: (params: unknown[]) => Uint8Array; -} -export type AbiConstructor = AbiMessage; -export type InterfaceContractCalls = Record; -export interface ContractCallOutcome { - debugMessage: Text; - gasConsumed: Weight; - gasRequired: Weight; - output: Codec | null; - result: ContractExecResultResult; - storageDeposit: StorageDeposit; -} -export interface DecodedEvent { - args: Codec[]; - event: AbiEvent; -} -export interface DecodedMessage { - args: Codec[]; - message: AbiMessage; -} -export interface ContractOptions { - gasLimit?: bigint | string | number | BN | WeightV2; - storageDepositLimit?: bigint | string | number | BN | null; - value?: bigint | BN | string | number; -} -export interface BlueprintOptions extends ContractOptions { - salt?: Uint8Array | string | null; -} -export interface WeightAll { - v1Weight: BN; - v2Weight: { - refTime: BN; - proofSize?: BN | undefined; - }; -} diff --git a/.api-contract/build/types.js b/.api-contract/build/types.js deleted file mode 100644 index cb0ff5c3..00000000 --- a/.api-contract/build/types.js +++ /dev/null @@ -1 +0,0 @@ -export {}; diff --git a/.api-contract/build/util.d.ts b/.api-contract/build/util.d.ts deleted file mode 100644 index 60682eff..00000000 --- a/.api-contract/build/util.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { SubmittableResult } from '@polkadot/api'; -import type { EventRecord } from '@polkadot/types/interfaces'; -type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; -export declare function applyOnEvent( - result: SubmittableResult, - types: ContractEvents[], - fn: (records: EventRecord[]) => T, -): T | undefined; -export {}; diff --git a/.api-contract/build/util.js b/.api-contract/build/util.js deleted file mode 100644 index 0faa5cff..00000000 --- a/.api-contract/build/util.js +++ /dev/null @@ -1,9 +0,0 @@ -export function applyOnEvent(result, types, fn) { - if (result.isInBlock || result.isFinalized) { - const records = result.filterRecords('contracts', types); - if (records.length) { - return fn(records); - } - } - return undefined; -} diff --git a/.api-contract/package.json b/.api-contract/package.json deleted file mode 100644 index f685482a..00000000 --- a/.api-contract/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "author": "Jaco Greeff ", - "bugs": "https://github.com/polkadot-js/api/issues", - "description": "Interfaces for interacting with contracts and contract ABIs", - "engines": { - "node": ">=18" - }, - "homepage": "https://github.com/polkadot-js/api/tree/master/packages/api-contract#readme", - "license": "Apache-2.0", - "name": "@polkadot/api-contract", - "repository": { - "directory": "packages/api-contract", - "type": "git", - "url": "https://github.com/polkadot-js/api.git" - }, - "sideEffects": [ - "./packageDetect.js", - "./packageDetect.cjs" - ], - "type": "module", - "version": "15.8.1", - "main": "index.js", - "dependencies": { - "@polkadot/api": "15.8.1", - "@polkadot/api-augment": "15.8.1", - "@polkadot/types": "15.8.1", - "@polkadot/types-codec": "15.8.1", - "@polkadot/types-create": "15.8.1", - "@polkadot/util": "^13.4.3", - "@polkadot/util-crypto": "^13.4.3", - "rxjs": "^7.8.1", - "tslib": "^2.8.1" - }, - "devDependencies": { - "@polkadot/api-augment": "15.8.1", - "@polkadot/keyring": "^13.4.3", - "@polkadot/types-support": "15.8.1" - } -} diff --git a/.api-contract/src/Abi/Abi.spec.ts b/.api-contract/src/Abi/Abi.spec.ts deleted file mode 100644 index 1e58a3e7..00000000 --- a/.api-contract/src/Abi/Abi.spec.ts +++ /dev/null @@ -1,224 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -/// - -import type { Registry } from '@polkadot/types/types'; - -import fs from 'node:fs'; -import process from 'node:process'; - -import { TypeDefInfo } from '@polkadot/types/types'; -import rpcMetadata from '@polkadot/types-support/metadata/static-substrate-contracts-node'; -import { blake2AsHex } from '@polkadot/util-crypto'; - -import { Metadata, TypeRegistry } from '../../../types/src/bundle.js'; -import abis from '../test/contracts/index.js'; -import { Abi } from './index.js'; - -interface SpecDef { - messages: { - label: string; - name: string[] | string; - }[]; -} - -interface JSONAbi { - source: { - compiler: string; - hash: string; - language: string; - wasm: string; - }; - spec: SpecDef; - V1: { - spec: SpecDef; - }; - V2: { - spec: SpecDef; - }; - V3: { - spec: SpecDef; - }; - V4: { - spec: SpecDef; - }; -} - -function stringifyInfo(key: string, value: unknown): unknown { - return key === 'info' && typeof value === 'number' ? TypeDefInfo[value] : value; -} - -function stringifyJson(registry: Registry): string { - const defs = registry.lookup.types.map(({ id }) => registry.lookup.getTypeDef(id)); - - return JSON.stringify(defs, stringifyInfo, 2); -} - -describe('Abi', (): void => { - describe('ABI', (): void => { - Object.entries(abis).forEach(([abiName, _abi]) => { - const abi = _abi as unknown as JSONAbi; - - it(`initializes from a contract ABI (${abiName})`, (): void => { - try { - const messageIds = (abi.V4 || abi.V3 || abi.V2 || abi.V1 || abi).spec.messages.map( - ({ label, name }) => label || (Array.isArray(name) ? name.join('::') : name), - ); - const inkAbi = new Abi(abis[abiName]); - - expect(inkAbi.messages.map(({ identifier }) => identifier)).toEqual(messageIds); - } catch (error) { - console.error(error); - - throw error; - } - }); - }); - }); - - describe('TypeDef', (): void => { - for (const [abiName, abiJson] of Object.entries(abis)) { - it(`initializes from a contract ABI: ${abiName}`, (): void => { - const abi = new Abi(abiJson); - const registryJson = stringifyJson(abi.registry); - const cmpFile = new URL(`../test/compare/${abiName}.test.json`, import.meta.url); - - try { - expect(JSON.parse(registryJson)).toEqual(JSON.parse(fs.readFileSync(cmpFile, 'utf-8'))); - } catch (error) { - if (process.env['GITHUB_REPOSITORY']) { - console.error(registryJson); - - throw error; - } - - fs.writeFileSync(cmpFile, registryJson, { flag: 'w' }); - } - }); - } - }); - - it('has the correct hash for the source', (): void => { - const abi = new Abi(abis['ink_v0_flipperBundle']); - const bundle = abis['ink_v0_flipperBundle'] as unknown as JSONAbi; - - // manual - expect(bundle.source.hash).toEqual(blake2AsHex(bundle.source.wasm)); - - // the Codec hash - expect(bundle.source.hash).toEqual(abi.info.source.wasm.hash.toHex()); - - // the hash as per the actual Abi - expect(bundle.source.hash).toEqual(abi.info.source.wasmHash.toHex()); - }); - - describe('Events', (): void => { - const registry = new TypeRegistry(); - - beforeAll((): void => { - const metadata = new Metadata(registry, rpcMetadata); - - registry.setMetadata(metadata); - }); - - it('decoding <=ink!v4 event', (): void => { - const abiJson = abis['ink_v4_erc20Metadata']; - - expect(abiJson).toBeDefined(); - const abi = new Abi(abiJson); - - const eventRecordHex = - '0x0001000000080360951b8baf569bca905a279c12d6ce17db7cdce23a42563870ef585129ce5dc64d010001d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000c0045726332303a3a5472616e7366657200000000000000000000000000000000da2d695d3b5a304e0039e7fc4419c34fa0c1f239189c99bb72a6484f1634782b2b00c7d40fe6d84d660f3e6bed90f218e022a0909f7e1a7ea35ada8b6e003564'; - const record = registry.createType('EventRecord', eventRecordHex); - - const decodedEvent = abi.decodeEvent(record); - - expect(decodedEvent.event.args.length).toEqual(3); - expect(decodedEvent.args.length).toEqual(3); - expect(decodedEvent.event.identifier).toEqual('Transfer'); - - const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { - return { - ...prev, - [cur.name]: decodedEvent.args[index].toHuman(), - }; - }, {}); - - const expectedEvent = { - from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', - to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', - value: '123.4567 MUnit', - }; - - expect(decodedEventHuman).toEqual(expectedEvent); - }); - - it('decoding >=ink!v5 event', (): void => { - const abiJson = abis['ink_v5_erc20Metadata']; - - expect(abiJson).toBeDefined(); - const abi = new Abi(abiJson); - - const eventRecordHex = - '0x00010000000803da17150e96b3955a4db6ad35ddeb495f722f9c1d84683113bfb096bf3faa30f2490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000cb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cbd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'; - const record = registry.createType('EventRecord', eventRecordHex); - - const decodedEvent = abi.decodeEvent(record); - - expect(decodedEvent.event.args.length).toEqual(3); - expect(decodedEvent.args.length).toEqual(3); - expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer'); - - const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { - return { - ...prev, - [cur.name]: decodedEvent.args[index].toHuman(), - }; - }, {}); - - const expectedEvent = { - from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', - to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', - value: '123.4567 MUnit', - }; - - expect(decodedEventHuman).toEqual(expectedEvent); - }); - - it('decoding >=ink!v5 anonymous event', (): void => { - const abiJson = abis['ink_v5_erc20AnonymousTransferMetadata']; - - expect(abiJson).toBeDefined(); - const abi = new Abi(abiJson); - - expect(abi.events[0].identifier).toEqual('erc20::erc20::Transfer'); - expect(abi.events[0].signatureTopic).toEqual(null); - - const eventRecordWithAnonymousEventHex = - '0x00010000000803538e726248a9c155911e7d99f4f474c3408630a2f6275dd501d4471c7067ad2c490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb1060000000000000008d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'; - const record = registry.createType('EventRecord', eventRecordWithAnonymousEventHex); - - const decodedEvent = abi.decodeEvent(record); - - expect(decodedEvent.event.args.length).toEqual(3); - expect(decodedEvent.args.length).toEqual(3); - expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer'); - - const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { - return { - ...prev, - [cur.name]: decodedEvent.args[index].toHuman(), - }; - }, {}); - - const expectedEvent = { - from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', - to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', - value: '123.4567 MUnit', - }; - - expect(decodedEventHuman).toEqual(expectedEvent); - }); - }); -}); diff --git a/.api-contract/src/Abi/index.ts b/.api-contract/src/Abi/index.ts deleted file mode 100644 index ab4a085d..00000000 --- a/.api-contract/src/Abi/index.ts +++ /dev/null @@ -1,489 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { Bytes, Vec } from '@polkadot/types'; -import type { - ChainProperties, - ContractConstructorSpecLatest, - ContractEventParamSpecLatest, - ContractMessageParamSpecLatest, - ContractMessageSpecLatest, - ContractMetadata, - ContractMetadataV4, - ContractMetadataV5, - ContractMetadataV6, - ContractProjectInfo, - ContractTypeSpec, - EventRecord, -} from '@polkadot/types/interfaces'; -import type { Codec, Registry, TypeDef } from '@polkadot/types/types'; -import type { - AbiConstructor, - AbiEvent, - AbiEventParam, - AbiMessage, - AbiMessageParam, - AbiParam, - DecodedEvent, - DecodedMessage, -} from '../types.js'; - -import { Option, TypeRegistry } from '@polkadot/types'; -import { TypeDefInfo } from '@polkadot/types-create'; -import { - assertReturn, - compactAddLength, - compactStripLength, - isBn, - isNumber, - isObject, - isString, - isUndefined, - logger, - stringCamelCase, - stringify, - u8aConcat, - u8aToHex, -} from '@polkadot/util'; - -import { convertVersions, enumVersions } from './toLatestCompatible.js'; - -interface AbiJson { - version?: string; - - [key: string]: unknown; -} - -type EventOf = M extends { spec: { events: Vec } } ? E : never; -export type ContractMetadataSupported = - | ContractMetadataV4 - | ContractMetadataV5 - | ContractMetadataV6; -type ContractEventSupported = EventOf; - -const l = logger('Abi'); - -const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; - -function findMessage(list: T[], messageOrId: T | string | number): T { - const message = isNumber(messageOrId) - ? list[messageOrId] - : isString(messageOrId) - ? list.find(({ identifier }) => - [identifier, stringCamelCase(identifier)].includes(messageOrId.toString()), - ) - : messageOrId; - - return assertReturn( - message, - () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`, - ); -} - -function getMetadata(registry: Registry, json: AbiJson): ContractMetadataSupported { - // this is for V1, V2, V3 - const vx = enumVersions.find(v => isObject(json[v])); - - // this was added in V4 - const jsonVersion = json.version; - - if (!vx && jsonVersion && !enumVersions.find(v => v === `V${jsonVersion}`)) { - throw new Error(`Unable to handle version ${jsonVersion}`); - } - - const metadata = registry.createType( - 'ContractMetadata', - vx ? { [vx]: json[vx] } : jsonVersion ? { [`V${jsonVersion}`]: json } : { V0: json }, - ); - - const converter = convertVersions.find(([v]) => metadata[`is${v}`]); - - if (!converter) { - throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); - } - - const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); - return upgradedMetadata; -} - -function parseJson( - json: Record, - chainProperties?: ChainProperties, -): [Record, Registry, ContractMetadataSupported, ContractProjectInfo] { - const registry = new TypeRegistry(); - const info = registry.createType('ContractProjectInfo', json) as unknown as ContractProjectInfo; - const metadata = getMetadata(registry, json as unknown as AbiJson); - const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); - - // attach the lookup to the registry - now the types are known - registry.setLookup(lookup); - - if (chainProperties) { - registry.setChainProperties(chainProperties); - } - - // warm-up the actual type, pre-use - lookup.types.forEach(({ id }) => lookup.getTypeDef(id)); - - return [json, registry, metadata, info]; -} - -/** - * @internal - * Determines if the given input value is a ContractTypeSpec - */ -function isTypeSpec(value: Codec): value is ContractTypeSpec { - return ( - !!value && - value instanceof Map && - !isUndefined((value as ContractTypeSpec).type) && - !isUndefined((value as ContractTypeSpec).displayName) - ); -} - -/** - * @internal - * Determines if the given input value is an Option - */ -function isOption(value: Codec): value is Option { - return !!value && value instanceof Option; -} - -export class Abi { - readonly events: AbiEvent[]; - readonly constructors: AbiConstructor[]; - readonly info: ContractProjectInfo; - readonly json: Record; - readonly messages: AbiMessage[]; - readonly metadata: ContractMetadataSupported; - readonly registry: Registry; - readonly environment = new Map(); - - constructor(abiJson: Record | string, chainProperties?: ChainProperties) { - [this.json, this.registry, this.metadata, this.info] = parseJson( - isString(abiJson) ? (JSON.parse(abiJson) as Record) : abiJson, - chainProperties, - ); - this.constructors = this.metadata.spec.constructors.map( - (spec: ContractConstructorSpecLatest, index) => - this.#createMessage(spec, index, { - isConstructor: true, - isDefault: spec.default.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - this.events = this.metadata.spec.events.map((_: ContractEventSupported, index: number) => - this.#createEvent(index), - ); - this.messages = this.metadata.spec.messages.map( - (spec: ContractMessageSpecLatest, index): AbiMessage => - this.#createMessage(spec, index, { - isDefault: spec.default.isTrue, - isMutating: spec.mutates.isTrue, - isPayable: spec.payable.isTrue, - returnType: spec.returnType.isSome - ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) - : null, - }), - ); - - // NOTE See the rationale for having Option<...> values in the actual - // ContractEnvironmentV4 structure definition in interfaces/contractsAbi - // (Due to conversions, the fields may not exist) - for (const [key, opt] of this.metadata.spec.environment.entries()) { - if (isOption(opt)) { - if (opt.isSome) { - const value = opt.unwrap(); - - if (isBn(value)) { - this.environment.set(key, value); - } else if (isTypeSpec(value)) { - this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); - } else { - throw new Error( - `Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`, - ); - } - } - } else { - throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); - } - } - } - - /** - * Warning: Unstable API, bound to change - */ - public decodeEvent(record: EventRecord): DecodedEvent { - switch (this.metadata.version.toString()) { - // earlier version are hoisted to v4 - case '4': - return this.#decodeEventV4(record); - // Latest - default: - return this.#decodeEventV5(record); - } - } - - #decodeEventV5 = (record: EventRecord): DecodedEvent => { - // Find event by first topic, which potentially is the signature_topic - const signatureTopic = record.topics[0]; - const data = record.event.data[1] as Bytes; - - if (signatureTopic) { - const event = this.events.find( - e => - e.signatureTopic !== undefined && - e.signatureTopic !== null && - e.signatureTopic === signatureTopic.toHex(), - ); - - // Early return if event found by signature topic - if (event) { - return event.fromU8a(data); - } - } - - // If no event returned yet, it might be anonymous - const amountOfTopics = record.topics.length; - const potentialEvents = this.events.filter(e => { - // event can't have a signature topic - if (e.signatureTopic !== null && e.signatureTopic !== undefined) { - return false; - } - - // event should have same amount of indexed fields as emitted topics - const amountIndexed = e.args.filter(a => a.indexed).length; - - if (amountIndexed !== amountOfTopics) { - return false; - } - - // If all conditions met, it's a potential event - return true; - }); - - if (potentialEvents.length === 1) { - return potentialEvents[0].fromU8a(data); - } - - throw new Error('Unable to determine event'); - }; - - #decodeEventV4 = (record: EventRecord): DecodedEvent => { - const data = record.event.data[1] as Bytes; - const index = data[0]; - const event = this.events[index]; - - if (!event) { - throw new Error(`Unable to find event with index ${index}`); - } - - return event.fromU8a(data.subarray(1)); - }; - - /** - * Warning: Unstable API, bound to change - */ - public decodeConstructor(data: Uint8Array): DecodedMessage { - return this.#decodeMessage('message', this.constructors, data); - } - - /** - * Warning: Unstable API, bound to change - */ - public decodeMessage(data: Uint8Array): DecodedMessage { - return this.#decodeMessage('message', this.messages, data); - } - - public findConstructor(constructorOrId: AbiConstructor | string | number): AbiConstructor { - return findMessage(this.constructors, constructorOrId); - } - - public findMessage(messageOrId: AbiMessage | string | number): AbiMessage { - return findMessage(this.messages, messageOrId); - } - - #createArgs = ( - args: ContractMessageParamSpecLatest[] | ContractEventParamSpecLatest[], - spec: unknown, - ): AbiParam[] => { - return args.map(({ label, type }, index): AbiParam => { - try { - if (!isObject(type)) { - throw new Error('Invalid type definition found'); - } - - const displayName = type.displayName.length - ? type.displayName[type.displayName.length - 1].toString() - : undefined; - const camelName = stringCamelCase(label); - - if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { - return { - name: camelName, - type: { - info: TypeDefInfo.Plain, - type: displayName, - }, - }; - } - - const typeDef = this.registry.lookup.getTypeDef(type.type); - - return { - name: camelName, - type: - displayName && !typeDef.type.startsWith(displayName) - ? { displayName, ...typeDef } - : typeDef, - }; - } catch (error) { - l.error(`Error expanding argument ${index} in ${stringify(spec)}`); - - throw error; - } - }); - }; - - #createMessageParams = ( - args: ContractMessageParamSpecLatest[], - spec: unknown, - ): AbiMessageParam[] => { - return this.#createArgs(args, spec); - }; - - #createEventParams = (args: ContractEventParamSpecLatest[], spec: unknown): AbiEventParam[] => { - const params = this.#createArgs(args, spec); - - return params.map( - (p, index): AbiEventParam => ({ ...p, indexed: args[index].indexed.toPrimitive() }), - ); - }; - - #createEvent = (index: number): AbiEvent => { - // TODO TypeScript would narrow this type to the correct version, - // but version is `Text` so I need to call `toString()` here, - // which breaks the type inference. - switch (this.metadata.version.toString()) { - case '4': - return this.#createEventV4((this.metadata as ContractMetadataV4).spec.events[index], index); - default: - return this.#createEventV5((this.metadata as ContractMetadataV5).spec.events[index], index); - } - }; - - #createEventV5 = (spec: EventOf, index: number): AbiEvent => { - const args = this.#createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: (data: Uint8Array): DecodedEvent => ({ - args: this.#decodeArgs(args, data), - event, - }), - identifier: [spec.module_path, spec.label].join('::'), - index, - signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null, - }; - - return event; - }; - - #createEventV4 = (spec: EventOf, index: number): AbiEvent => { - const args = this.#createEventParams(spec.args, spec); - const event = { - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: (data: Uint8Array): DecodedEvent => ({ - args: this.#decodeArgs(args, data), - event, - }), - identifier: spec.label.toString(), - index, - }; - - return event; - }; - - #createMessage = ( - spec: ContractMessageSpecLatest | ContractConstructorSpecLatest, - index: number, - add: Partial = {}, - ): AbiMessage => { - const args = this.#createMessageParams(spec.args, spec); - const identifier = spec.label.toString(); - const message = { - ...add, - args, - docs: spec.docs.map(d => d.toString()), - fromU8a: (data: Uint8Array): DecodedMessage => ({ - args: this.#decodeArgs(args, data), - message, - }), - identifier, - index, - isDefault: spec.default.isTrue, - method: stringCamelCase(identifier), - path: identifier.split('::').map(s => stringCamelCase(s)), - selector: spec.selector, - toU8a: (params: unknown[]) => this.#encodeMessageArgs(spec, args, params), - }; - - return message; - }; - - #decodeArgs = (args: AbiParam[], data: Uint8Array): Codec[] => { - // for decoding we expect the input to be just the arg data, no selectors - // no length added (this allows use with events as well) - let offset = 0; - - return args.map(({ type: { lookupName, type } }): Codec => { - const value = this.registry.createType(lookupName || type, data.subarray(offset)); - - offset += value.encodedLength; - - return value; - }); - }; - - #decodeMessage = ( - type: 'constructor' | 'message', - list: AbiMessage[], - data: Uint8Array, - ): DecodedMessage => { - const [, trimmed] = compactStripLength(data); - const selector = trimmed.subarray(0, 4); - const message = list.find(m => m.selector.eq(selector)); - - if (!message) { - throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`); - } - - return message.fromU8a(trimmed.subarray(4)); - }; - - #encodeMessageArgs = ( - { label, selector }: ContractMessageSpecLatest | ContractConstructorSpecLatest, - args: AbiMessageParam[], - data: unknown[], - ): Uint8Array => { - if (data.length !== args.length) { - throw new Error( - `Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`, - ); - } - - return compactAddLength( - u8aConcat( - this.registry.createType('ContractSelector', selector).toU8a(), - ...args.map(({ type: { lookupName, type } }, index) => - this.registry.createType(lookupName || type, data[index]).toU8a(), - ), - ), - ); - }; -} diff --git a/.api-contract/src/Abi/toLatestCompatible.spec.ts b/.api-contract/src/Abi/toLatestCompatible.spec.ts deleted file mode 100644 index b2eb3ddf..00000000 --- a/.api-contract/src/Abi/toLatestCompatible.spec.ts +++ /dev/null @@ -1,240 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -/// - -import { TypeRegistry } from '@polkadot/types'; - -import abis from '../test/contracts/index.js'; -import { - v0ToLatestCompatible, - v1ToLatestCompatible, - v2ToLatestCompatible, - v3ToLatestCompatible, - v4ToLatestCompatible, - v5ToLatestCompatible, - v6ToLatestCompatible, -} from './toLatestCompatible.js'; - -describe('v0ToLatestCompatible', (): void => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V0: abis['ink_v0_erc20'] }); - const latest = v0ToLatestCompatible(registry, contract.asV0); - - it('has the correct constructors', (): void => { - expect(latest.spec.constructors.map(({ label }) => label.toString())).toEqual(['new']); - }); - - it('has the correct messages', (): void => { - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ - 'total_supply', - 'balance_of', - 'allowance', - 'transfer', - 'approve', - 'transfer_from', - ]); - }); - - it('has the correct events', (): void => { - expect(latest.spec.events.map(({ label }) => label.toString())).toEqual([ - 'Transfer', - 'Approval', - ]); - }); - - it('has the correct constructor arguments', (): void => { - expect(latest.spec.constructors[0].args.map(({ label }) => label.toString())).toEqual([ - 'initial_supply', - ]); - }); - - it('has the correct message arguments', (): void => { - expect(latest.spec.messages[1].args.map(({ label }) => label.toString())).toEqual(['owner']); - }); - - it('has the correct event arguments', (): void => { - expect(latest.spec.events[0].args.map(({ label }) => label.toString())).toEqual([ - 'from', - 'to', - 'value', - ]); - }); - - it('has the latest compatible version number', (): void => { - expect(latest.version.toString()).toEqual('4'); - }); -}); - -describe('v1ToLatestCompatible', (): void => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_flipper']['V1'] }); - const latest = v1ToLatestCompatible(registry, contract.asV1); - - it('has the correct constructors', (): void => { - expect(latest.spec.constructors.map(({ label }) => label.toString())).toEqual([ - 'new', - 'default', - ]); - }); - - it('has the correct messages', (): void => { - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual(['flip', 'get']); - }); - - it('has the correct messages with namespaced method name', (): void => { - const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_psp22']['V1'] }); - const latest = v1ToLatestCompatible(registry, contract.asV1); - - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ - 'PSP22Metadata::token_name', - 'PSP22Metadata::token_symbol', - 'PSP22Metadata::token_decimals', - 'PSP22Mintable::mint', - 'PSP22::decrease_allowance', - 'PSP22::transfer', - 'PSP22::approve', - 'PSP22::allowance', - 'PSP22::transfer_from', - 'PSP22::balance_of', - 'PSP22::increase_allowance', - 'PSP22::total_supply', - 'pause', - 'unpause', - ]); - }); - - it('has the correct constructor arguments', (): void => { - expect(latest.spec.constructors[0].args.map(({ label }) => label.toString())).toEqual([ - 'init_value', - ]); - }); - - it('has the latest compatible version number', (): void => { - expect(latest.version.toString()).toEqual('4'); - }); -}); - -describe('v2ToLatestCompatible', (): void => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V2: abis['ink_v2_flipper']['V2'] }); - const latest = v2ToLatestCompatible(registry, contract.asV2); - - it('has the correct constructor flag', (): void => { - expect(latest.spec.constructors[0].payable.isTrue).toEqual(true); - }); - - it('has the latest compatible version number', (): void => { - expect(latest.version.toString()).toEqual('4'); - }); -}); - -describe('v3ToLatestCompatible', (): void => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V3: abis['ink_v3_flipper']['V3'] }); - const latest = v3ToLatestCompatible(registry, contract.asV3); - - it('has the correct constructor flags', (): void => { - expect(latest.spec.constructors[0].payable.isTrue).toEqual(false); - expect(latest.spec.constructors[1].payable.isTrue).toEqual(true); - }); - - it('has the correct messages', (): void => { - const contract = registry.createType('ContractMetadata', { - V3: abis['ink_v3_traitErc20']['V3'], - }); - const latest = v3ToLatestCompatible(registry, contract.asV3); - - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ - 'BaseErc20::total_supply', - 'BaseErc20::balance_of', - 'BaseErc20::allowance', - 'BaseErc20::transfer', - 'BaseErc20::approve', - 'BaseErc20::transfer_from', - ]); - }); - - it('has the latest compatible version number', (): void => { - expect(latest.version.toString()).toEqual('4'); - }); -}); - -describe('v4ToLatestCompatible', (): void => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V4: abis['ink_v4_flipperContract'] }); - const latest = v4ToLatestCompatible(registry, contract.asV4); - - it('has the correct constructor flags', (): void => { - expect(latest.spec.constructors[0].payable.isTrue).toEqual(false); - expect(latest.spec.constructors[1].payable.isTrue).toEqual(false); - }); - - it('has the latest compatible version number', (): void => { - expect(latest.version.toString()).toEqual('4'); - }); -}); - -describe('v5ToLatestCompatible', (): void => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V5: abis['ink_v5_erc20Metadata'] }); - const latest = v5ToLatestCompatible(registry, contract.asV5); - - it('has the correct messages', (): void => { - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ - 'total_supply', - 'balance_of', - 'allowance', - 'transfer', - 'approve', - 'transfer_from', - ]); - }); - - it('has new event fields', (): void => { - expect(latest.spec.events.length).toEqual(2); - - expect(latest.spec.events.every(e => e.has('module_path'))).toEqual(true); - - expect(latest.spec.events[0].module_path.toString()).toEqual('erc20::erc20'); - - expect(latest.spec.events.every(e => e.has('signature_topic'))).toEqual(true); - - expect(latest.spec.events[0].signature_topic.toHex()).toEqual( - '0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb', - ); - }); - - it('has the latest compatible version number', (): void => { - expect(latest.version.toString()).toEqual('5'); - }); -}); - -describe('v6ToLatestCompatible', (): void => { - const registry = new TypeRegistry(); - const contract = registry.createType('ContractMetadata', { V6: abis['ink_v6_erc20Metadata'] }); - const latest = v6ToLatestCompatible(registry, contract.asV6); - - it('has the correct messages', (): void => { - expect(latest.spec.messages.map(({ label }) => label.toString())).toEqual([ - 'total_supply', - 'balance_of', - 'allowance', - 'transfer', - 'approve', - 'transfer_from', - ]); - }); - - it('has H160 as the type of balance_of argument', (): void => { - const arg = latest.spec.messages.find(m => m.label.toString() === 'balance_of')?.args[0]; - - const name = arg?.type.displayName?.[0]?.toString(); - - expect(name).toBe('H160'); - }); - - it('has the latest compatible version number', (): void => { - expect(latest.version.toString()).toEqual('6'); - }); -}); diff --git a/.api-contract/src/Abi/toLatestCompatible.ts b/.api-contract/src/Abi/toLatestCompatible.ts deleted file mode 100644 index 67108d68..00000000 --- a/.api-contract/src/Abi/toLatestCompatible.ts +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { - ContractMetadataV4, - ContractMetadataV5, - ContractMetadataV6, -} from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; -import type { ContractMetadataSupported } from './index.js'; - -import { v0ToV1 } from './toV1.js'; -import { v1ToV2 } from './toV2.js'; -import { v2ToV3 } from './toV3.js'; -import { v3ToV4 } from './toV4.js'; - -// The versions where an enum is used, aka V0 is missing -// (Order from newest, i.e. we expect more on newest vs oldest) -export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1'] as const; - -type Versions = (typeof enumVersions)[number] | 'V0'; - -type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; - -// Helper to convert metadata from one step to the next -function createConverter( - next: (registry: Registry, input: O) => ContractMetadataSupported, - step: (registry: Registry, input: I) => O, -): (registry: Registry, input: I) => ContractMetadataSupported { - return (registry: Registry, input: I): ContractMetadataSupported => - next(registry, step(registry, input)); -} - -export function v6ToLatestCompatible( - _registry: Registry, - v6: ContractMetadataV6, -): ContractMetadataV6 { - return v6; -} - -export function v5ToLatestCompatible( - _registry: Registry, - v5: ContractMetadataV5, -): ContractMetadataV5 { - return v5; -} - -export function v4ToLatestCompatible( - _registry: Registry, - v4: ContractMetadataV4, -): ContractMetadataV4 { - return v4; -} - -export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4); -export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3); -export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); -export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); - -export const convertVersions: [Versions, Converter][] = [ - ['V6', v6ToLatestCompatible], - ['V5', v5ToLatestCompatible], - ['V4', v4ToLatestCompatible], - ['V3', v3ToLatestCompatible], - ['V2', v2ToLatestCompatible], - ['V1', v1ToLatestCompatible], - ['V0', v0ToLatestCompatible], -]; diff --git a/.api-contract/src/Abi/toV1.ts b/.api-contract/src/Abi/toV1.ts deleted file mode 100644 index 5d0663be..00000000 --- a/.api-contract/src/Abi/toV1.ts +++ /dev/null @@ -1,37 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ContractMetadataV0, ContractMetadataV1 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; - -import { convertSiV0toV1 } from '@polkadot/types'; -import { objectSpread } from '@polkadot/util'; - -interface Named { - name: unknown; -} - -function v0ToV1Names(all: Named[]): unknown[] { - return all.map(e => - objectSpread({}, e, { - name: Array.isArray(e.name) ? e.name : [e.name], - }), - ); -} - -export function v0ToV1(registry: Registry, v0: ContractMetadataV0): ContractMetadataV1 { - if (!v0.metadataVersion.length) { - throw new Error('Invalid format for V0 (detected) contract metadata'); - } - - return registry.createType( - 'ContractMetadataV1', - objectSpread({}, v0, { - spec: objectSpread({}, v0.spec, { - constructors: v0ToV1Names(v0.spec.constructors), - messages: v0ToV1Names(v0.spec.messages), - }), - types: convertSiV0toV1(registry, v0.types), - }), - ); -} diff --git a/.api-contract/src/Abi/toV2.ts b/.api-contract/src/Abi/toV2.ts deleted file mode 100644 index 9619a1c0..00000000 --- a/.api-contract/src/Abi/toV2.ts +++ /dev/null @@ -1,70 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { Text } from '@polkadot/types'; -import type { - ContractConstructorSpecV0, - ContractEventSpecV0, - ContractMessageSpecV0, - ContractMetadataV1, - ContractMetadataV2, -} from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; - -import { objectSpread } from '@polkadot/util'; - -type WithArgs = keyof typeof ARG_TYPES; - -interface NamedEntry { - name: Text | Text[]; -} - -type GetArgsType = T extends 'ContractConstructorSpec' - ? ContractConstructorSpecV0 - : T extends ContractEventSpecV0 - ? ContractEventSpecV0 - : ContractMessageSpecV0; - -interface ArgsEntry extends NamedEntry { - args: GetArgsType['args'][0][]; -} - -const ARG_TYPES = { - ContractConstructorSpec: 'ContractMessageParamSpecV2', - ContractEventSpec: 'ContractEventParamSpecV2', - ContractMessageSpec: 'ContractMessageParamSpecV2', -} as const; - -function v1ToV2Label(entry: NamedEntry): { label: Text } { - return objectSpread({}, entry, { - label: Array.isArray(entry.name) ? entry.name.join('::') : entry.name, - }); -} - -function v1ToV2Labels( - registry: Registry, - outType: T, - all: ArgsEntry[], -): unknown[] { - return all.map(e => - registry.createType( - `${outType}V2`, - objectSpread(v1ToV2Label(e), { - args: e.args.map(a => registry.createType(ARG_TYPES[outType], v1ToV2Label(a))), - }), - ), - ); -} - -export function v1ToV2(registry: Registry, v1: ContractMetadataV1): ContractMetadataV2 { - return registry.createType( - 'ContractMetadataV2', - objectSpread({}, v1, { - spec: objectSpread({}, v1.spec, { - constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), - events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), - messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages), - }), - }), - ); -} diff --git a/.api-contract/src/Abi/toV3.ts b/.api-contract/src/Abi/toV3.ts deleted file mode 100644 index fccd5a2b..00000000 --- a/.api-contract/src/Abi/toV3.ts +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ContractMetadataV2, ContractMetadataV3 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; - -import { objectSpread } from '@polkadot/util'; - -export function v2ToV3(registry: Registry, v2: ContractMetadataV2): ContractMetadataV3 { - return registry.createType( - 'ContractMetadataV3', - objectSpread({}, v2, { - spec: objectSpread({}, v2.spec, { - constructors: v2.spec.constructors.map(c => - // V3 introduces the payable flag on constructors, for - registry.createType('ContractConstructorSpecV4', objectSpread({}, c)), - ), - messages: v3.spec.messages.map(m => - registry.createType('ContractMessageSpecV3', objectSpread({}, m)), - ), - }), - version: registry.createType('Text', '4'), - }), - ); -} diff --git a/.api-contract/src/augment.ts b/.api-contract/src/augment.ts deleted file mode 100644 index 56f6e04c..00000000 --- a/.api-contract/src/augment.ts +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import '@polkadot/api-augment'; diff --git a/.api-contract/src/base/Base.ts b/.api-contract/src/base/Base.ts deleted file mode 100644 index 61638d27..00000000 --- a/.api-contract/src/base/Base.ts +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2017-2025 @polkadot/api authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { WeightV2 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; - -import { isFunction } from '@polkadot/util'; - -import { Abi } from '../Abi/index.js'; - -export abstract class Base { - readonly abi: Abi; - readonly api: ApiBase; - - protected readonly _decorateMethod: DecorateMethod; - protected readonly _isWeightV1: boolean; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - decorateMethod: DecorateMethod, - ) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.contracts || - !isFunction(api.tx.contracts.instantiateWithCode) || - api.tx.contracts.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.contractsApi.call runtime interfaces', - ); - } - - this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - - public get registry(): Registry { - return this.api.registry; - } -} diff --git a/.api-contract/src/base/BaseRevive.ts b/.api-contract/src/base/BaseRevive.ts deleted file mode 100644 index b2d51257..00000000 --- a/.api-contract/src/base/BaseRevive.ts +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2017-2025 @polkadot/api authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { WeightV2 } from '@polkadot/types/interfaces'; -import type { Registry } from '@polkadot/types/types'; - -import { isFunction } from '@polkadot/util'; - -import { Abi } from '../Abi/index.js'; - -export abstract class BaseRevive { - readonly abi: Abi; - readonly api: ApiBase; - - protected readonly _decorateMethod: DecorateMethod; - protected readonly _isWeightV1: boolean; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - decorateMethod: DecorateMethod, - ) { - if (!api || !api.isConnected || !api.tx) { - throw new Error( - 'Your API has not been initialized correctly and is not connected to a chain', - ); - } else if ( - !api.tx.revive || - !isFunction(api.tx.revive.instantiateWithCode) || - api.tx.revive.instantiateWithCode.meta.args.length !== 6 - ) { - throw new Error( - 'The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit', - ); - } else if (!api.call.reviveApi || !isFunction(api.call.reviveApi.call)) { - throw new Error( - 'Your runtime does not expose the api.call.reviveApi.call runtime interfaces', - ); - } - - this.abi = abi instanceof Abi ? abi : new Abi(abi, api.registry.getChainProperties()); - this.api = api; - this._decorateMethod = decorateMethod; - this._isWeightV1 = !api.registry.createType('Weight').proofSize; - } - - public get registry(): Registry { - return this.api.registry; - } -} diff --git a/.api-contract/src/base/Blueprint.ts b/.api-contract/src/base/Blueprint.ts deleted file mode 100644 index a79c13dc..00000000 --- a/.api-contract/src/base/Blueprint.ts +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiBase } from '@polkadot/api/base'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { AccountId, EventRecord, Hash } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { AbiConstructor, BlueprintOptions } from '../types.js'; -import type { MapConstructorExec } from './types.js'; - -import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, isUndefined } from '@polkadot/util'; - -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; - -export type BlueprintConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, -) => Blueprint; - -export class BlueprintSubmittableResult extends SubmittableResult { - readonly contract?: Contract | undefined; - - constructor(result: ISubmittableResult, contract?: Contract) { - super(result); - - this.contract = contract; - } -} - -export class Blueprint extends Base { - /** - * @description The on-chain code hash for this blueprint - */ - readonly codeHash: Hash; - - readonly #tx: MapConstructorExec = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.codeHash = this.registry.createType('Hash', codeHash); - - this.abi.constructors.forEach((c): void => { - if (isUndefined(this.#tx[c.method])) { - this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p)); - } - }); - } - - public get tx(): MapConstructorExec { - return this.#tx; - } - - #deploy = ( - constructorOrId: AbiConstructor | string | number, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, - params: unknown[], - ): SubmittableExtrinsic> => { - return this.api.tx.contracts - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - (result: ISubmittableResult) => - new BlueprintSubmittableResult( - result, - applyOnEvent( - result, - ['Instantiated'], - ([record]: EventRecord[]) => - new Contract( - this.api, - this.abi, - record.event.data[1] as AccountId, - this._decorateMethod, - ), - ), - ), - ); - }; -} - -export function extendBlueprint( - type: ApiType, - decorateMethod: DecorateMethod, -): BlueprintConstructor { - return class extends Blueprint { - static __BlueprintType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - ) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/src/base/BlueprintRevive.ts b/.api-contract/src/base/BlueprintRevive.ts deleted file mode 100644 index 0d2d9d25..00000000 --- a/.api-contract/src/base/BlueprintRevive.ts +++ /dev/null @@ -1,106 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiBase } from '@polkadot/api/base'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { Hash } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { AbiConstructor, BlueprintOptions } from '../types.js'; -import type { MapConstructorExec } from './types.js'; - -import { BN_ZERO, isUndefined } from '@polkadot/util'; - -import { BaseRevive } from './BaseRevive.js'; -import { BlueprintSubmittableResult } from './Blueprint.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; - -export type BlueprintReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, -) => BlueprintRevive; - -export class BlueprintRevive extends BaseRevive { - /** - * @description The on-chain code hash for this blueprint - */ - readonly codeHash: Hash; - - readonly #tx: MapConstructorExec = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.codeHash = this.registry.createType('Hash', codeHash); - - this.abi.constructors.forEach((c): void => { - if (isUndefined(this.#tx[c.method])) { - this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p)); - } - }); - } - - public get tx(): MapConstructorExec { - return this.#tx; - } - - #deploy = ( - constructorOrId: AbiConstructor | string | number, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, - params: unknown[], - ): SubmittableExtrinsic> => { - return this.api.tx.revive - .instantiate( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.codeHash, - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - (result: ISubmittableResult) => - new BlueprintSubmittableResult( - result, - (() => { - if (result.status.isInBlock || result.status.isFinalized) { - return new Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ); - } - return undefined; - })(), - ), - ); - }; -} - -export function extendBlueprint( - type: ApiType, - decorateMethod: DecorateMethod, -): BlueprintReviveConstructor { - return class extends BlueprintRevive { - static __BlueprintType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - codeHash: string | Hash | Uint8Array, - ) { - super(api, abi, codeHash, decorateMethod); - } - }; -} diff --git a/.api-contract/src/base/Code.spec.ts b/.api-contract/src/base/Code.spec.ts deleted file mode 100644 index 0fd4cc99..00000000 --- a/.api-contract/src/base/Code.spec.ts +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -/// - -import fs from 'node:fs'; - -import { toPromiseMethod } from '@polkadot/api'; - -import v0contractFlipper from '../test/contracts/ink/v0/flipper.contract.json' assert { type: 'json' }; -import v0abiFlipper from '../test/contracts/ink/v0/flipper.json' assert { type: 'json' }; -import v1contractFlipper from '../test/contracts/ink/v1/flipper.contract.json' assert { type: 'json' }; -import { Code } from './Code.js'; -import { mockApi } from './mock.js'; - -const v0wasmFlipper = fs.readFileSync( - new URL('../test/contracts/ink/v0/flipper.wasm', import.meta.url), - 'utf-8', -); - -describe('Code', (): void => { - it('can construct with an individual ABI/WASM combo', (): void => { - expect( - () => - new Code(mockApi, v0abiFlipper as Record, v0wasmFlipper, toPromiseMethod), - ).not.toThrow(); - }); - - it('can construct with an .contract ABI (v0)', (): void => { - expect( - () => new Code(mockApi, v0contractFlipper as Record, null, toPromiseMethod), - ).not.toThrow(); - }); - - it('can construct with an .contract ABI (v1)', (): void => { - expect( - () => new Code(mockApi, v1contractFlipper as Record, null, toPromiseMethod), - ).not.toThrow(); - }); -}); diff --git a/.api-contract/src/base/Code.ts b/.api-contract/src/base/Code.ts deleted file mode 100644 index ea712c10..00000000 --- a/.api-contract/src/base/Code.ts +++ /dev/null @@ -1,148 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiBase } from '@polkadot/api/base'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { AccountId, EventRecord } from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Codec } from '@polkadot/types-codec/types'; -import type { Abi } from '../Abi/index.js'; -import type { AbiConstructor, BlueprintOptions } from '../types.js'; -import type { MapConstructorExec } from './types.js'; - -import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@polkadot/util'; - -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { Blueprint } from './Blueprint.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; - -export type CodeConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, -) => Code; - -export class CodeSubmittableResult extends SubmittableResult { - readonly blueprint?: Blueprint | undefined; - readonly contract?: Contract | undefined; - - constructor( - result: ISubmittableResult, - blueprint?: Blueprint | undefined, - contract?: Contract | undefined, - ) { - super(result); - - this.blueprint = blueprint; - this.contract = contract; - } -} - -// checks to see if the code (or at least the header) -// is a valid/supported format -function isValidCode(code: Uint8Array): boolean { - return isWasm(code) || isRiscV(code); -} - -export class Code extends Base { - readonly code: Uint8Array; - - readonly #tx: MapConstructorExec = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); - - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - - this.abi.constructors.forEach((c): void => { - if (isUndefined(this.#tx[c.method])) { - this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p)); - } - }); - } - - public get tx(): MapConstructorExec { - return this.#tx; - } - - #instantiate = ( - constructorOrId: AbiConstructor | string | number, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, - params: unknown[], - ): SubmittableExtrinsic> => { - return this.api.tx.contracts - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - compactAddLength(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - (result: ISubmittableResult) => - new CodeSubmittableResult( - result, - ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], (records: EventRecord[]) => - records.reduce<[Blueprint | undefined, Contract | undefined]>( - ([blueprint, contract], { event }) => - this.api.events.contracts.Instantiated.is(event) - ? [ - blueprint, - new Contract( - this.api, - this.abi, - (event as unknown as { data: [Codec, AccountId] }).data[1], - this._decorateMethod, - ), - ] - : this.api.events.contracts.CodeStored.is(event) - ? [ - new Blueprint( - this.api, - this.abi, - (event as unknown as { data: [AccountId] }).data[0], - this._decorateMethod, - ), - contract, - ] - : [blueprint, contract], - [undefined, undefined], - ), - ) || [undefined, undefined]), - ), - ); - }; -} - -export function extendCode( - type: ApiType, - decorateMethod: DecorateMethod, -): CodeConstructor { - return class extends Code { - static __CodeType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/src/base/CodeRevive.ts b/.api-contract/src/base/CodeRevive.ts deleted file mode 100644 index 03d25bf7..00000000 --- a/.api-contract/src/base/CodeRevive.ts +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiBase } from '@polkadot/api/base'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { ISubmittableResult } from '@polkadot/types/types'; -// @ts-ignore -import type { Codec } from '@polkadot/types-codec/types'; -import type { Abi } from '../Abi/index.js'; -import type { AbiConstructor, BlueprintOptions } from '../types.js'; -import type { MapConstructorExec } from './types.js'; - -import { SubmittableResult } from '@polkadot/api'; -import { BN_ZERO, compactAddLength, isRiscV, isUndefined, u8aToU8a } from '@polkadot/util'; - -import { BaseRevive } from './BaseRevive.js'; -import { BlueprintRevive } from './BlueprintRevive.js'; -import { Contract } from './Contract.js'; -import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; - -export type CodeReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, -) => CodeRevive; - -export class CodeReviveSubmittableResult extends SubmittableResult { - readonly blueprint?: BlueprintRevive | undefined; - readonly contract?: Contract | undefined; - - constructor( - result: ISubmittableResult, - blueprint?: BlueprintRevive | undefined, - contract?: Contract | undefined, - ) { - super(result); - - this.blueprint = blueprint; - this.contract = contract; - } -} - -// checks to see if the code (or at least the header) -// is a valid/supported format -function isValidCode(code: Uint8Array): boolean { - return isRiscV(code); -} - -export class CodeRevive extends BaseRevive { - readonly code: Uint8Array; - - readonly #tx: MapConstructorExec = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.code = isValidCode(this.abi.info.source.wasm) ? this.abi.info.source.wasm : u8aToU8a(wasm); - - if (!isValidCode(this.code)) { - throw new Error('Invalid code provided'); - } - - this.abi.constructors.forEach((c): void => { - if (isUndefined(this.#tx[c.method])) { - this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p)); - } - }); - } - - public get tx(): MapConstructorExec { - return this.#tx; - } - - #instantiate = ( - constructorOrId: AbiConstructor | string | number, - { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, - params: unknown[], - ): SubmittableExtrinsic> => { - return this.api.tx.revive - .instantiateWithCode( - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - compactAddLength(this.code), - this.abi.findConstructor(constructorOrId).toU8a(params), - encodeSalt(salt), - ) - .withResultTransform( - (result: ISubmittableResult) => - new CodeReviveSubmittableResult( - result, - new BlueprintRevive( - this.api, - this.abi, - this.abi.info.source.wasmHash, - this._decorateMethod, - ), - new Contract( - this.api, - this.abi, - '0x075e2a9cfb213a68dfa1f5cf6bf6d515ae212cf8', - this._decorateMethod, - ), - ), - ); - }; -} - -export function extendCode( - type: ApiType, - decorateMethod: DecorateMethod, -): CodeReviveConstructor { - return class extends CodeRevive { - static __CodeType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, decorateMethod); - } - }; -} diff --git a/.api-contract/src/base/Contract.ts b/.api-contract/src/base/Contract.ts deleted file mode 100644 index 6caded8d..00000000 --- a/.api-contract/src/base/Contract.ts +++ /dev/null @@ -1,260 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiBase } from '@polkadot/api/base'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { - AccountId, - ContractExecResult, - EventRecord, - Weight, - WeightV2, -} from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { - AbiMessage, - ContractCallOutcome, - ContractOptions, - DecodedEvent, - WeightAll, -} from '../types.js'; -import type { - ContractCallResult, - ContractCallSend, - ContractQuery, - ContractTx, - MapMessageQuery, - MapMessageTx, -} from './types.js'; - -import { map } from 'rxjs'; - -import { SubmittableResult } from '@polkadot/api'; -import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; - -import { applyOnEvent } from '../util.js'; -import { Base } from './Base.js'; -import { convertWeight, withMeta } from './util.js'; - -export type ContractConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, -) => Contract; - -// As per Rust, 5 * GAS_PER_SEC -const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); - -const l = logger('Contract'); - -function createQuery( - meta: AbiMessage, - fn: ( - origin: string | AccountId | Uint8Array, - options: ContractOptions, - params: unknown[], - ) => ContractCallResult, -): ContractQuery { - return withMeta( - meta, - ( - origin: string | AccountId | Uint8Array, - options: ContractOptions, - ...params: unknown[] - ): ContractCallResult => fn(origin, options, params), - ); -} - -function createTx( - meta: AbiMessage, - fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic, -): ContractTx { - return withMeta( - meta, - (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic => - fn(options, params), - ); -} - -export class ContractSubmittableResult extends SubmittableResult { - readonly contractEvents?: DecodedEvent[] | undefined; - - constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]) { - super(result); - - this.contractEvents = contractEvents; - } -} - -export class Contract extends Base { - /** - * @description The on-chain address for this contract - */ - readonly address: AccountId; - - readonly #query: MapMessageQuery = {}; - readonly #tx: MapMessageTx = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.address = this.registry.createType('AccountId', address); - - this.abi.messages.forEach((m): void => { - if (isUndefined(this.#tx[m.method])) { - this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p)); - } - - if (isUndefined(this.#query[m.method])) { - this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f)); - } - }); - } - - public get query(): MapMessageQuery { - return this.#query; - } - - public get tx(): MapMessageTx { - return this.#tx; - } - - #getGas = (_gasLimit: bigint | BN | string | number | WeightV2, isCall = false): WeightAll => { - const weight = convertWeight(_gasLimit); - - if (weight.v1Weight.gt(BN_ZERO)) { - return weight; - } - - return convertWeight( - isCall - ? MAX_CALL_GAS - : convertWeight( - this.api.consts.system.blockWeights - ? (this.api.consts.system.blockWeights as unknown as { maxBlock: WeightV2 }).maxBlock - : (this.api.consts.system['maximumBlockWeight'] as Weight), - ) - .v1Weight.muln(64) - .div(BN_HUNDRED), - ); - }; - - #exec = ( - messageOrId: AbiMessage | string | number, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, - params: unknown[], - ): SubmittableExtrinsic => { - return this.api.tx.contracts - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - (result: ISubmittableResult) => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - applyOnEvent( - result, - ['ContractEmitted', 'ContractExecution'], - (records: EventRecord[]) => - records - .map((record): DecodedEvent | null => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${(error as Error).message}`); - - return null; - } - }) - .filter((decoded): decoded is DecodedEvent => !!decoded), - ), - ), - ); - }; - - #read = ( - messageOrId: AbiMessage | string | number, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, - params: unknown[], - ): ContractCallSend => { - const message = this.abi.findMessage(messageOrId); - - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod((origin: string | AccountId | Uint8Array) => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.#getGas(gasLimit, true).v1Weight - : this.#getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - map( - ({ - debugMessage, - gasConsumed, - gasRequired, - result, - storageDeposit, - }): ContractCallOutcome => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !convertWeight(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - }), - ), - ), - ), - }; - }; -} - -export function extendContract( - type: ApiType, - decorateMethod: DecorateMethod, -): ContractConstructor { - return class extends Contract { - static __ContractType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, - ) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/src/base/ContractRevive.ts b/.api-contract/src/base/ContractRevive.ts deleted file mode 100644 index c42083ce..00000000 --- a/.api-contract/src/base/ContractRevive.ts +++ /dev/null @@ -1,261 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiBase } from '@polkadot/api/base'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes, DecorateMethod } from '@polkadot/api/types'; -import type { - AccountId, - AccountId20, - ContractExecResult, - EventRecord, - Weight, - WeightV2, -} from '@polkadot/types/interfaces'; -import type { ISubmittableResult } from '@polkadot/types/types'; -import type { Abi } from '../Abi/index.js'; -import type { - AbiMessage, - ContractCallOutcome, - ContractOptions, - DecodedEvent, - WeightAll, -} from '../types.js'; -import type { - ContractCallResult, - ContractCallSend, - ContractQuery, - ContractTx, - MapMessageQuery, - MapMessageTx, -} from './types.js'; - -import { map } from 'rxjs'; - -import { SubmittableResult } from '@polkadot/api'; -import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@polkadot/util'; - -import { applyOnEvent } from '../util.js'; -import { BaseRevive } from './BaseRevive.js'; -import { convertWeight, withMeta } from './util.js'; - -export type ContractReviveConstructor = new ( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, -) => ContractRevive; - -// As per Rust, 5 * GAS_PER_SEC -const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); - -const l = logger('Contract'); - -function createQuery( - meta: AbiMessage, - fn: ( - origin: string | AccountId | Uint8Array, - options: ContractOptions, - params: unknown[], - ) => ContractCallResult, -): ContractQuery { - return withMeta( - meta, - ( - origin: string | AccountId | Uint8Array, - options: ContractOptions, - ...params: unknown[] - ): ContractCallResult => fn(origin, options, params), - ); -} - -function createTx( - meta: AbiMessage, - fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic, -): ContractTx { - return withMeta( - meta, - (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic => - fn(options, params), - ); -} - -export class ContractSubmittableResult extends SubmittableResult { - readonly contractEvents?: DecodedEvent[] | undefined; - - constructor(result: ISubmittableResult, contractEvents?: DecodedEvent[]) { - super(result); - - this.contractEvents = contractEvents; - } -} - -export class ContractRevive extends BaseRevive { - /** - * @description The on-chain address for this contract - */ - readonly address: AccountId20; - - readonly #query: MapMessageQuery = {}; - readonly #tx: MapMessageTx = {}; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId20, - decorateMethod: DecorateMethod, - ) { - super(api, abi, decorateMethod); - - this.address = this.registry.createType('AccountId20', address); - - this.abi.messages.forEach((m): void => { - if (isUndefined(this.#tx[m.method])) { - this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p)); - } - - if (isUndefined(this.#query[m.method])) { - this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f)); - } - }); - } - - public get query(): MapMessageQuery { - return this.#query; - } - - public get tx(): MapMessageTx { - return this.#tx; - } - - #getGas = (_gasLimit: bigint | BN | string | number | WeightV2, isCall = false): WeightAll => { - const weight = convertWeight(_gasLimit); - - if (weight.v1Weight.gt(BN_ZERO)) { - return weight; - } - - return convertWeight( - isCall - ? MAX_CALL_GAS - : convertWeight( - this.api.consts.system.blockWeights - ? (this.api.consts.system.blockWeights as unknown as { maxBlock: WeightV2 }).maxBlock - : (this.api.consts.system['maximumBlockWeight'] as Weight), - ) - .v1Weight.muln(64) - .div(BN_HUNDRED), - ); - }; - - #exec = ( - messageOrId: AbiMessage | string | number, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, - params: unknown[], - ): SubmittableExtrinsic => { - return this.api.tx.revive - .call( - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 ? convertWeight(gasLimit).v1Weight : convertWeight(gasLimit).v2Weight, - storageDepositLimit, - this.abi.findMessage(messageOrId).toU8a(params), - ) - .withResultTransform( - (result: ISubmittableResult) => - // ContractEmitted is the current generation, ContractExecution is the previous generation - new ContractSubmittableResult( - result, - applyOnEvent( - result, - ['ContractEmitted', 'ContractExecution'], - (records: EventRecord[]) => - records - .map((record): DecodedEvent | null => { - try { - return this.abi.decodeEvent(record); - } catch (error) { - l.error(`Unable to decode contract event: ${(error as Error).message}`); - - return null; - } - }) - .filter((decoded): decoded is DecodedEvent => !!decoded), - ), - ), - ); - }; - - #read = ( - messageOrId: AbiMessage | string | number, - { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, - params: unknown[], - ): ContractCallSend => { - const message = this.abi.findMessage(messageOrId); - - return { - // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment - send: this._decorateMethod((origin: string | AccountId | Uint8Array) => - this.api.rx.call.contractsApi - .call( - origin, - this.address, - value, - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore jiggle v1 weights, metadata points to latest - this._isWeightV1 - ? this.#getGas(gasLimit, true).v1Weight - : this.#getGas(gasLimit, true).v2Weight, - storageDepositLimit, - message.toU8a(params), - ) - .pipe( - map( - ({ - debugMessage, - gasConsumed, - gasRequired, - result, - storageDeposit, - }): ContractCallOutcome => ({ - debugMessage, - gasConsumed, - gasRequired: - gasRequired && !convertWeight(gasRequired).v1Weight.isZero() - ? gasRequired - : gasConsumed, - output: - result.isOk && message.returnType - ? this.abi.registry.createTypeUnsafe( - message.returnType.lookupName || message.returnType.type, - [result.asOk.data.toU8a(true)], - { isPedantic: true }, - ) - : null, - result, - storageDeposit, - }), - ), - ), - ), - }; - }; -} - -export function extendContract( - type: ApiType, - decorateMethod: DecorateMethod, -): ContractReviveConstructor { - return class extends ContractRevive { - static __ContractType = type; - - constructor( - api: ApiBase, - abi: string | Record | Abi, - address: string | AccountId, - ) { - super(api, abi, address, decorateMethod); - } - }; -} diff --git a/.api-contract/src/base/index.ts b/.api-contract/src/base/index.ts deleted file mode 100644 index 4295c6cb..00000000 --- a/.api-contract/src/base/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2017-2025 @polkadot/api authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; -export { BlueprintRevive } from './BlueprintRevive.js'; -export { Code, CodeSubmittableResult, extendCode } from './Code.js'; -export { CodeRevive } from './CodeRevive.js'; -export { Contract, extendContract } from './Contract.js'; -export { ContractRevive } from './ContractRevive.js'; diff --git a/.api-contract/src/base/mock.ts b/.api-contract/src/base/mock.ts deleted file mode 100644 index bb997998..00000000 --- a/.api-contract/src/base/mock.ts +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiBase } from '@polkadot/api/base'; - -import { TypeRegistry } from '@polkadot/types'; - -const registry = new TypeRegistry(); - -const instantiateWithCode = (): never => { - throw new Error('mock'); -}; - -instantiateWithCode.meta = { args: new Array(6) }; - -export const mockApi = { - call: { - contractsApi: { - call: (): never => { - throw new Error('mock'); - }, - }, - }, - isConnected: true, - registry, - tx: { - contracts: { - instantiateWithCode, - }, - }, -} as unknown as ApiBase<'promise'>; diff --git a/.api-contract/src/base/types.ts b/.api-contract/src/base/types.ts deleted file mode 100644 index 6f9cbc9d..00000000 --- a/.api-contract/src/base/types.ts +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { Observable } from 'rxjs'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes, ObsInnerType } from '@polkadot/api/types'; -import type { AccountId } from '@polkadot/types/interfaces'; -import type { - AbiMessage, - BlueprintOptions, - ContractCallOutcome, - ContractOptions, -} from '../types.js'; - -export interface MessageMeta { - readonly meta: AbiMessage; -} - -export interface BlueprintDeploy extends MessageMeta { - (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; -} - -export interface ContractQuery extends MessageMeta { - ( - origin: AccountId | string | Uint8Array, - options: ContractOptions, - ...params: unknown[] - ): ContractCallResult; -} - -export interface ContractTx extends MessageMeta { - (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; -} - -export type ContractGeneric = ( - messageOrId: AbiMessage | string | number, - options: O, - ...params: unknown[] -) => T; - -export type ContractCallResult = ApiType extends 'rxjs' - ? Observable - : Promise>>; - -export interface ContractCallSend { - send(account: string | AccountId | Uint8Array): ContractCallResult; -} - -export type MapConstructorExec = Record>; - -export type MapMessageTx = Record>; - -export type MapMessageQuery = Record>; diff --git a/.api-contract/src/base/util.ts b/.api-contract/src/base/util.ts deleted file mode 100644 index 33c28016..00000000 --- a/.api-contract/src/base/util.ts +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { SubmittableResult } from '@polkadot/api'; -import type { SubmittableExtrinsic } from '@polkadot/api/submittable/types'; -import type { ApiTypes } from '@polkadot/api/types'; -import type { WeightV1, WeightV2 } from '@polkadot/types/interfaces'; -import type { BN } from '@polkadot/util'; -import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.js'; -import type { BlueprintDeploy, ContractGeneric } from './types.js'; - -import { Bytes } from '@polkadot/types'; -import { bnToBn, compactAddLength, u8aToU8a } from '@polkadot/util'; -import { randomAsU8a } from '@polkadot/util-crypto'; - -export const EMPTY_SALT = new Uint8Array(); - -export function withMeta( - meta: AbiMessage, - creator: Omit, -): T { - (creator as T).meta = meta; - - return creator as T; -} - -export function createBluePrintTx( - meta: AbiMessage, - fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic, -): BlueprintDeploy { - return withMeta( - meta, - (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic => - fn(options, params), - ); -} - -export function createBluePrintWithId( - fn: ( - constructorOrId: AbiConstructor | string | number, - options: BlueprintOptions, - params: unknown[], - ) => T, -): ContractGeneric { - return ( - constructorOrId: AbiConstructor | string | number, - options: BlueprintOptions, - ...params: unknown[] - ): T => fn(constructorOrId, options, params); -} - -export function encodeSalt(salt: Uint8Array | string | null = randomAsU8a()): Uint8Array { - return salt instanceof Bytes - ? salt - : salt?.length - ? compactAddLength(u8aToU8a(salt)) - : EMPTY_SALT; -} - -export function convertWeight( - weight: WeightV1 | WeightV2 | bigint | string | number | BN, -): WeightAll { - const [refTime, proofSize] = isWeightV2(weight) - ? [weight.refTime.toBn(), weight.proofSize.toBn()] - : [bnToBn(weight), undefined]; - - return { - v1Weight: refTime, - v2Weight: { proofSize, refTime }, - }; -} - -export function isWeightV2( - weight: WeightV1 | WeightV2 | bigint | string | number | BN, -): weight is WeightV2 { - return !!(weight as WeightV2).proofSize; -} diff --git a/.api-contract/src/bundle.ts b/.api-contract/src/bundle.ts deleted file mode 100644 index 1be0423b..00000000 --- a/.api-contract/src/bundle.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -// all named -export { Abi } from './Abi/index.js'; -export { packageInfo } from './packageInfo.js'; - -// all starred -export * from './promise/index.js'; -export * from './rx/index.js'; diff --git a/.api-contract/src/checkTypes.manual.ts b/.api-contract/src/checkTypes.manual.ts deleted file mode 100644 index 236f68e5..00000000 --- a/.api-contract/src/checkTypes.manual.ts +++ /dev/null @@ -1,44 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -// Simple non-runnable checks to test type definitions in the editor itself - -import '@polkadot/api-augment'; - -import type { TestKeyringMapSubstrate } from '@polkadot/keyring/testingPairs'; - -import { ApiPromise } from '@polkadot/api'; -import { BlueprintPromise, ContractPromise } from '@polkadot/api-contract'; -import { createTestPairs } from '@polkadot/keyring/testingPairs'; - -import abiIncrementer from './test/contracts/ink/v0/incrementer.json' assert { type: 'json' }; - -async function checkBlueprint(api: ApiPromise, pairs: TestKeyringMapSubstrate): Promise { - const blueprint = new BlueprintPromise(api, abiIncrementer as Record, '0x1234'); - - await blueprint.tx['new']({ gasLimit: 456, salt: '0x1234', value: 123 }, 42).signAndSend( - pairs.bob, - ); - await blueprint.tx['new']({ gasLimit: 456, value: 123 }, 42).signAndSend(pairs.bob); -} - -async function checkContract(api: ApiPromise, pairs: TestKeyringMapSubstrate): Promise { - const contract = new ContractPromise(api, abiIncrementer as Record, '0x1234'); - - // queries - await contract.query['get'](pairs.alice.address, {}); - - // execute - await contract.tx['inc']({ gasLimit: 1234 }, 123).signAndSend(pairs.eve); -} - -async function main(): Promise { - const api = await ApiPromise.create({ - hasher: (data: Uint8Array): Uint8Array => data, - }); - const pairs = createTestPairs(); - - await Promise.all([checkBlueprint(api, pairs), checkContract(api, pairs)]); -} - -main().catch(console.error); diff --git a/.api-contract/src/index.ts b/.api-contract/src/index.ts deleted file mode 100644 index 5e015c3f..00000000 --- a/.api-contract/src/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import './packageDetect.js'; - -export * from './bundle.js'; diff --git a/.api-contract/src/mod.ts b/.api-contract/src/mod.ts deleted file mode 100644 index 57e1fea8..00000000 --- a/.api-contract/src/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export * from './index.js'; diff --git a/.api-contract/src/packageDetect.ts b/.api-contract/src/packageDetect.ts deleted file mode 100644 index ee014dfe..00000000 --- a/.api-contract/src/packageDetect.ts +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -// Do not edit, auto-generated by @polkadot/dev -// (packageInfo imports will be kept as-is, user-editable) - -import { packageInfo as apiInfo } from '@polkadot/api/packageInfo'; -import { packageInfo as typesInfo } from '@polkadot/types/packageInfo'; -import { detectPackage } from '@polkadot/util'; - -import { packageInfo } from './packageInfo.js'; - -detectPackage(packageInfo, null, [apiInfo, typesInfo]); diff --git a/.api-contract/src/packageInfo.ts b/.api-contract/src/packageInfo.ts deleted file mode 100644 index 2f695e88..00000000 --- a/.api-contract/src/packageInfo.ts +++ /dev/null @@ -1,11 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -// Do not edit, auto-generated by @polkadot/dev - -export const packageInfo = { - name: '@polkadot/api-contract', - path: 'auto', - type: 'auto', - version: '15.8.1', -}; diff --git a/.api-contract/src/promise/index.ts b/.api-contract/src/promise/index.ts deleted file mode 100644 index 3cf3301d..00000000 --- a/.api-contract/src/promise/index.ts +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiPromise } from '@polkadot/api'; -import type { AccountId, AccountId20, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; - -import { toPromiseMethod } from '@polkadot/api'; - -import { - Blueprint, - BlueprintRevive, - Code, - CodeRevive, - Contract, - ContractRevive, -} from '../base/index.js'; - -export class BlueprintPromise extends Blueprint<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ) { - super(api, abi, codeHash, toPromiseMethod); - } -} - -export class CodePromise extends Code<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, toPromiseMethod); - } -} - -export class ContractPromise extends Contract<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId, - ) { - super(api, abi, address, toPromiseMethod); - } -} - -export class BlueprintRevivePromise extends BlueprintRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - codeHash: string | Hash, - ) { - super(api, abi, codeHash, toPromiseMethod); - } -} - -export class CodeRevivePromise extends CodeRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, toPromiseMethod); - } -} - -export class ContractRevivePromise extends ContractRevive<'promise'> { - constructor( - api: ApiPromise, - abi: string | Record | Abi, - address: string | AccountId20, - ) { - super(api, abi, address, toPromiseMethod); - } -} diff --git a/.api-contract/src/promise/types.ts b/.api-contract/src/promise/types.ts deleted file mode 100644 index 7057fec2..00000000 --- a/.api-contract/src/promise/types.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { - BlueprintSubmittableResult as BaseBlueprintSubmittableResult, - CodeSubmittableResult as BaseCodeSubmittableResult, -} from '../base/index.js'; - -export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; -export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/src/rx/index.ts b/.api-contract/src/rx/index.ts deleted file mode 100644 index 72bc95d7..00000000 --- a/.api-contract/src/rx/index.ts +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiRx } from '@polkadot/api'; -import type { AccountId, Hash } from '@polkadot/types/interfaces'; -import type { Abi } from '../Abi/index.js'; - -import { toRxMethod } from '@polkadot/api'; - -import { Blueprint, Code, Contract } from '../base/index.js'; - -export class BlueprintRx extends Blueprint<'rxjs'> { - constructor(api: ApiRx, abi: string | Record | Abi, codeHash: string | Hash) { - super(api, abi, codeHash, toRxMethod); - } -} - -export class CodeRx extends Code<'rxjs'> { - constructor( - api: ApiRx, - abi: string | Record | Abi, - wasm: Uint8Array | string | Buffer | null | undefined, - ) { - super(api, abi, wasm, toRxMethod); - } -} - -export class ContractRx extends Contract<'rxjs'> { - constructor( - api: ApiRx, - abi: string | Record | Abi, - address: string | AccountId, - ) { - super(api, abi, address, toRxMethod); - } -} diff --git a/.api-contract/src/rx/types.ts b/.api-contract/src/rx/types.ts deleted file mode 100644 index 7057fec2..00000000 --- a/.api-contract/src/rx/types.ts +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { - BlueprintSubmittableResult as BaseBlueprintSubmittableResult, - CodeSubmittableResult as BaseCodeSubmittableResult, -} from '../base/index.js'; - -export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; -export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/.api-contract/src/test/compare/ink_v0_delegator.test.json b/.api-contract/src/test/compare/ink_v0_delegator.test.json deleted file mode 100644 index 07bd94d7..00000000 --- a/.api-contract/src/test/compare/ink_v0_delegator.test.json +++ /dev/null @@ -1,47 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 1, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 2, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 3, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "i32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "Hash", - "docs": [], - "namespace": "ink_env::types::Hash", - "lookupNameRoot": "InkEnvHash" - } -] diff --git a/.api-contract/src/test/compare/ink_v0_dns.test.json b/.api-contract/src/test/compare/ink_v0_dns.test.json deleted file mode 100644 index 45d5618c..00000000 --- a/.api-contract/src/test/compare/ink_v0_dns.test.json +++ /dev/null @@ -1,232 +0,0 @@ -[ - { - "info": "Struct", - "lookupIndex": 1, - "lookupName": "InkStorageCollectionsStashHeader", - "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::Header", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lastVacant" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "len" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lenEntries" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 3, - "lookupName": "InkStorageCollectionsStashEntry", - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"Hash\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 7, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup7", - "index": 0, - "name": "Vacant" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "Hash", - "docs": [], - "namespace": "ink_env::types::Hash", - "lookupNameRoot": "InkEnvHash", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "Hash", - "docs": [], - "namespace": "ink_env::types::Hash", - "lookupNameRoot": "InkEnvHash" - }, - { - "info": "VecFixed", - "lookupIndex": 5, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 6, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 7, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::VacantEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "next" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "prev" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsHashmapValueEntry", - "type": "{\"value\":\"AccountId\",\"keyIndex\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::hashmap::ValueEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 9, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId", - "name": "value" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "keyIndex" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 9, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "Result", - "lookupIndex": 10, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 11, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 12, - "lookupName": "DnsError", - "type": "Lookup12" - } - ] - }, - { - "info": "Null", - "lookupIndex": 11, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 12, - "lookupName": "DnsError", - "type": "{\"_enum\":[\"NameAlreadyExists\",\"CallerIsNotOwner\"]}", - "docs": [], - "namespace": "dns::dns::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "NameAlreadyExists" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CallerIsNotOwner" - } - ] - }, - { - "info": "Option", - "lookupIndex": 13, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 9, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - } -] diff --git a/.api-contract/src/test/compare/ink_v0_erc20.test.json b/.api-contract/src/test/compare/ink_v0_erc20.test.json deleted file mode 100644 index 0ddd1aab..00000000 --- a/.api-contract/src/test/compare/ink_v0_erc20.test.json +++ /dev/null @@ -1,253 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 1, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 2, - "lookupName": "InkStorageCollectionsStashHeader", - "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::Header", - "sub": [ - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lastVacant" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "len" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lenEntries" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 4, - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup8", - "index": 0, - "name": "Vacant" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 6, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::VacantEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "next" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "prev" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 9, - "lookupName": "InkStorageCollectionsHashmapValueEntry", - "type": "{\"value\":\"u128\",\"keyIndex\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::hashmap::ValueEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 1, - "type": "u128", - "docs": [], - "namespace": "", - "name": "value" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "keyIndex" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 10, - "lookupName": "InkStorageCollectionsStashEntry", - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup8", - "index": 0, - "name": "Vacant" - }, - { - "info": "Tuple", - "lookupIndex": 11, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ], - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Tuple", - "lookupIndex": 11, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 12, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "info": "Option", - "lookupIndex": 13, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - } -] diff --git a/.api-contract/src/test/compare/ink_v0_erc721.test.json b/.api-contract/src/test/compare/ink_v0_erc721.test.json deleted file mode 100644 index 728b5c06..00000000 --- a/.api-contract/src/test/compare/ink_v0_erc721.test.json +++ /dev/null @@ -1,415 +0,0 @@ -[ - { - "info": "Struct", - "lookupIndex": 1, - "lookupName": "InkStorageCollectionsStashHeader", - "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::Header", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lastVacant" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "len" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lenEntries" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 3, - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"u32\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 4, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup4", - "index": 0, - "name": "Vacant" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 4, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::VacantEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "next" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "prev" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 5, - "type": "{\"value\":\"AccountId\",\"keyIndex\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::hashmap::ValueEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 6, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId", - "name": "value" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "keyIndex" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 7, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 8, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 8, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 9, - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 4, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup4", - "index": 0, - "name": "Vacant" - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 10, - "lookupName": "InkStorageCollectionsHashmapValueEntryEntry", - "type": "{\"value\":\"u32\",\"keyIndex\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::hashmap::ValueEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "value" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "keyIndex" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 11, - "lookupName": "InkStorageCollectionsStashEntry", - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 4, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup4", - "index": 0, - "name": "Vacant" - }, - { - "info": "Tuple", - "lookupIndex": 12, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 6, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ], - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Tuple", - "lookupIndex": 12, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 6, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 13, - "lookupName": "InkStorageCollectionsHashmapValueEntryOption", - "type": "{\"value\":\"bool\",\"keyIndex\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::hashmap::ValueEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 14, - "type": "bool", - "docs": [], - "namespace": "", - "name": "value" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "keyIndex" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 14, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "info": "Option", - "lookupIndex": 15, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 6, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - }, - { - "info": "Result", - "lookupIndex": 16, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 17, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 18, - "lookupName": "Erc721Error", - "type": "Lookup18" - } - ] - }, - { - "info": "Null", - "lookupIndex": 17, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 18, - "lookupName": "Erc721Error", - "type": "{\"_enum\":[\"NotOwner\",\"NotApproved\",\"TokenExists\",\"TokenNotFound\",\"CannotInsert\",\"CannotRemove\",\"CannotFetchValue\",\"NotAllowed\"]}", - "docs": [], - "namespace": "erc721::erc721::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "NotOwner" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "NotApproved" - }, - { - "info": "Null", - "type": "Null", - "index": 2, - "name": "TokenExists" - }, - { - "info": "Null", - "type": "Null", - "index": 3, - "name": "TokenNotFound" - }, - { - "info": "Null", - "type": "Null", - "index": 4, - "name": "CannotInsert" - }, - { - "info": "Null", - "type": "Null", - "index": 5, - "name": "CannotRemove" - }, - { - "info": "Null", - "type": "Null", - "index": 6, - "name": "CannotFetchValue" - }, - { - "info": "Null", - "type": "Null", - "index": 7, - "name": "NotAllowed" - } - ] - } -] diff --git a/.api-contract/src/test/compare/ink_v0_flipper.test.json b/.api-contract/src/test/compare/ink_v0_flipper.test.json deleted file mode 100644 index 47947069..00000000 --- a/.api-contract/src/test/compare/ink_v0_flipper.test.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 1, - "type": "bool", - "docs": [], - "namespace": "" - } -] diff --git a/.api-contract/src/test/compare/ink_v0_flipperBundle.test.json b/.api-contract/src/test/compare/ink_v0_flipperBundle.test.json deleted file mode 100644 index 47947069..00000000 --- a/.api-contract/src/test/compare/ink_v0_flipperBundle.test.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 1, - "type": "bool", - "docs": [], - "namespace": "" - } -] diff --git a/.api-contract/src/test/compare/ink_v0_incrementer.test.json b/.api-contract/src/test/compare/ink_v0_incrementer.test.json deleted file mode 100644 index e089626f..00000000 --- a/.api-contract/src/test/compare/ink_v0_incrementer.test.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 1, - "type": "i32", - "docs": [], - "namespace": "" - } -] diff --git a/.api-contract/src/test/compare/ink_v0_multisigPlain.test.json b/.api-contract/src/test/compare/ink_v0_multisigPlain.test.json deleted file mode 100644 index 9e8747a4..00000000 --- a/.api-contract/src/test/compare/ink_v0_multisigPlain.test.json +++ /dev/null @@ -1,562 +0,0 @@ -[ - { - "info": "Struct", - "lookupIndex": 1, - "lookupName": "InkStorageCollectionsStashHeader", - "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::Header", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lastVacant" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "len" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lenEntries" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 3, - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(u32,AccountId)\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup8", - "index": 0, - "name": "Vacant" - }, - { - "info": "Tuple", - "lookupIndex": 4, - "type": "(u32,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ], - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Tuple", - "lookupIndex": 4, - "type": "(u32,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 6, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::VacantEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "next" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "prev" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 9, - "type": "{\"value\":\"Null\",\"keyIndex\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::hashmap::ValueEntry", - "sub": [ - { - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "", - "name": "value" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "keyIndex" - } - ] - }, - { - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 11, - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"u32\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup8", - "index": 0, - "name": "Vacant" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 12, - "lookupName": "InkStorageCollectionsHashmapValueEntry", - "type": "{\"value\":\"u32\",\"keyIndex\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::hashmap::ValueEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "value" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "keyIndex" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 13, - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"MultisigPlainTransaction\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup8", - "index": 0, - "name": "Vacant" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 14, - "lookupName": "MultisigPlainTransaction", - "type": "Lookup14", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 14, - "lookupName": "MultisigPlainTransaction", - "type": "{\"callee\":\"AccountId\",\"selector\":\"[u8;4]\",\"input\":\"Bytes\",\"transferredValue\":\"u128\",\"gasLimit\":\"u64\"}", - "docs": [], - "namespace": "multisig_plain::multisig_plain::Transaction", - "sub": [ - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId", - "name": "callee" - }, - { - "info": "VecFixed", - "lookupIndex": 15, - "type": "[u8;4]", - "docs": [], - "namespace": "", - "length": 4, - "sub": { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - }, - "name": "selector" - }, - { - "info": "Plain", - "lookupIndex": 16, - "type": "Bytes", - "docs": [], - "namespace": "", - "name": "input" - }, - { - "info": "Plain", - "lookupIndex": 17, - "type": "u128", - "docs": [], - "namespace": "", - "name": "transferredValue" - }, - { - "info": "Plain", - "lookupIndex": 18, - "type": "u64", - "docs": [], - "namespace": "", - "name": "gasLimit" - } - ] - }, - { - "info": "VecFixed", - "lookupIndex": 15, - "type": "[u8;4]", - "docs": [], - "namespace": "", - "length": 4, - "sub": { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 16, - "type": "Bytes", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 17, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 18, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 19, - "lookupName": "InkStorageCollectionsStashEntry", - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup8", - "index": 0, - "name": "Vacant" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Vec", - "lookupIndex": 20, - "type": "Vec", - "docs": [], - "namespace": "", - "sub": { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - }, - { - "info": "Tuple", - "lookupIndex": 21, - "type": "(u32,MultisigPlainConfirmationStatus)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 22, - "lookupName": "MultisigPlainConfirmationStatus", - "type": "Lookup22" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 22, - "lookupName": "MultisigPlainConfirmationStatus", - "type": "{\"_enum\":{\"Confirmed\":\"Null\",\"ConfirmationsNeeded\":\"u32\"}}", - "docs": [], - "namespace": "multisig_plain::multisig_plain::ConfirmationStatus", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "Confirmed" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "index": 1, - "name": "ConfirmationsNeeded" - } - ] - }, - { - "info": "Result", - "lookupIndex": 23, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - } - ] - }, - { - "info": "Result", - "lookupIndex": 24, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 16, - "type": "Bytes", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - } - ] - }, - { - "info": "Result", - "lookupIndex": 25, - "type": "Result, Null>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Option", - "lookupIndex": 26, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 16, - "type": "Bytes", - "docs": [], - "namespace": "" - } - }, - { - "name": "Error", - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - } - ] - }, - { - "info": "Option", - "lookupIndex": 26, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 16, - "type": "Bytes", - "docs": [], - "namespace": "" - } - } -] diff --git a/.api-contract/src/test/compare/ink_v1_flipper.test.json b/.api-contract/src/test/compare/ink_v1_flipper.test.json deleted file mode 100644 index bbbb7375..00000000 --- a/.api-contract/src/test/compare/ink_v1_flipper.test.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "docs": [], - "namespace": "" - } -] diff --git a/.api-contract/src/test/compare/ink_v1_psp22.test.json b/.api-contract/src/test/compare/ink_v1_psp22.test.json deleted file mode 100644 index 4ab33a0b..00000000 --- a/.api-contract/src/test/compare/ink_v1_psp22.test.json +++ /dev/null @@ -1,531 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 1, - "lookupName": "InkStorageCollectionsStashHeader", - "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::Header", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lastVacant", - "typeName": "Index" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "len", - "typeName": "u32" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lenEntries", - "typeName": "u32" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 3, - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 7, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup7", - "typeName": "VacantEntry", - "index": 0, - "name": "Vacant" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId", - "typeName": "T", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 5, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 6, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 7, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::VacantEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "next", - "typeName": "Index" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "prev", - "typeName": "Index" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 8, - "type": "{\"value\":\"u128\",\"keyIndex\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::hashmap::ValueEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "", - "name": "value", - "typeName": "V" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "keyIndex", - "typeName": "KeyIndex" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 9, - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 7, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup7", - "typeName": "VacantEntry", - "index": 0, - "name": "Vacant" - }, - { - "info": "Tuple", - "lookupIndex": 10, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 4, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ], - "typeName": "T", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Tuple", - "lookupIndex": 10, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 4, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 11, - "type": "Text", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 12, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 13, - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"u32\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 7, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup7", - "typeName": "VacantEntry", - "index": 0, - "name": "Vacant" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "typeName": "T", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 14, - "type": "{\"value\":\"u32\",\"keyIndex\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::hashmap::ValueEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "value", - "typeName": "V" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "keyIndex", - "typeName": "KeyIndex" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 15, - "lookupName": "InkStorageCollectionsStashEntry", - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(u32,AccountId)\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 7, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup7", - "typeName": "VacantEntry", - "index": 0, - "name": "Vacant" - }, - { - "info": "Tuple", - "lookupIndex": 16, - "type": "(u32,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ], - "typeName": "T", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Tuple", - "lookupIndex": 16, - "type": "(u32,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 17, - "lookupName": "InkStorageCollectionsHashmapValueEntry", - "type": "{\"value\":\"Null\",\"keyIndex\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::hashmap::ValueEntry", - "sub": [ - { - "info": "Null", - "lookupIndex": 18, - "type": "Null", - "docs": [], - "namespace": "", - "name": "value", - "typeName": "V" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "keyIndex", - "typeName": "KeyIndex" - } - ] - }, - { - "info": "Null", - "lookupIndex": 18, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Option", - "lookupIndex": 19, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 11, - "type": "Text", - "docs": [], - "namespace": "" - } - }, - { - "info": "Result", - "lookupIndex": 20, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 18, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 21, - "lookupName": "ContractsErrorsPsp22Psp22Error", - "type": "Lookup21" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 21, - "lookupName": "ContractsErrorsPsp22Psp22Error", - "type": "{\"_enum\":{\"Custom\":\"Text\",\"InsufficientBalance\":\"Null\",\"InsufficientAllowance\":\"Null\",\"ZeroRecipientAddress\":\"Null\",\"ZeroSenderAddress\":\"Null\",\"SafeTransferCheckFailed\":\"Text\"}}", - "docs": [], - "namespace": "contracts::traits::errors::psp22::PSP22Error", - "sub": [ - { - "info": "Plain", - "lookupIndex": 11, - "type": "Text", - "docs": [], - "namespace": "", - "typeName": "Text", - "index": 0, - "name": "Custom" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "InsufficientBalance" - }, - { - "info": "Null", - "type": "Null", - "index": 2, - "name": "InsufficientAllowance" - }, - { - "info": "Null", - "type": "Null", - "index": 3, - "name": "ZeroRecipientAddress" - }, - { - "info": "Null", - "type": "Null", - "index": 4, - "name": "ZeroSenderAddress" - }, - { - "info": "Plain", - "lookupIndex": 11, - "type": "Text", - "docs": [], - "namespace": "", - "typeName": "Text", - "index": 5, - "name": "SafeTransferCheckFailed" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 22, - "type": "Bytes", - "docs": [], - "namespace": "" - }, - { - "info": "Option", - "lookupIndex": 23, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - } -] diff --git a/.api-contract/src/test/compare/ink_v2_erc20.test.json b/.api-contract/src/test/compare/ink_v2_erc20.test.json deleted file mode 100644 index 8e9a0884..00000000 --- a/.api-contract/src/test/compare/ink_v2_erc20.test.json +++ /dev/null @@ -1,205 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 1, - "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping", - "sub": [ - { - "info": "VecFixed", - "lookupIndex": 5, - "lookupName": "InkPrimitivesKey", - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - "typeName": "Key", - "name": "offsetKey" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 3, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "VecFixed", - "lookupIndex": 5, - "lookupName": "InkPrimitivesKey", - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - "typeName": "[u8;32]" - }, - { - "info": "Struct", - "lookupIndex": 6, - "lookupName": "InkStorageLazyMapping", - "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping", - "sub": [ - { - "info": "VecFixed", - "lookupIndex": 5, - "lookupName": "InkPrimitivesKey", - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - "typeName": "Key", - "name": "offsetKey" - } - ] - }, - { - "info": "Tuple", - "lookupIndex": 7, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ] - }, - { - "info": "Result", - "lookupIndex": 8, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 9, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "Erc20Error", - "type": "Lookup10" - } - ] - }, - { - "info": "Null", - "lookupIndex": 9, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 10, - "lookupName": "Erc20Error", - "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", - "docs": [], - "namespace": "erc20::erc20::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "InsufficientBalance" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "InsufficientAllowance" - } - ] - }, - { - "info": "Option", - "lookupIndex": 11, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - } -] diff --git a/.api-contract/src/test/compare/ink_v2_flipper.test.json b/.api-contract/src/test/compare/ink_v2_flipper.test.json deleted file mode 100644 index bbbb7375..00000000 --- a/.api-contract/src/test/compare/ink_v2_flipper.test.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "docs": [], - "namespace": "" - } -] diff --git a/.api-contract/src/test/compare/ink_v3_flipper.test.json b/.api-contract/src/test/compare/ink_v3_flipper.test.json deleted file mode 100644 index bbbb7375..00000000 --- a/.api-contract/src/test/compare/ink_v3_flipper.test.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "docs": [], - "namespace": "" - } -] diff --git a/.api-contract/src/test/compare/ink_v3_traitErc20.test.json b/.api-contract/src/test/compare/ink_v3_traitErc20.test.json deleted file mode 100644 index 1f6373ef..00000000 --- a/.api-contract/src/test/compare/ink_v3_traitErc20.test.json +++ /dev/null @@ -1,205 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 1, - "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping", - "sub": [ - { - "info": "VecFixed", - "lookupIndex": 5, - "lookupName": "InkPrimitivesKey", - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - "typeName": "Key", - "name": "offsetKey" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 3, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "VecFixed", - "lookupIndex": 5, - "lookupName": "InkPrimitivesKey", - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - "typeName": "[u8;32]" - }, - { - "info": "Struct", - "lookupIndex": 6, - "lookupName": "InkStorageLazyMapping", - "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping", - "sub": [ - { - "info": "VecFixed", - "lookupIndex": 5, - "lookupName": "InkPrimitivesKey", - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - "typeName": "Key", - "name": "offsetKey" - } - ] - }, - { - "info": "Tuple", - "lookupIndex": 7, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ] - }, - { - "info": "Result", - "lookupIndex": 8, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 9, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "TraitErc20Erc20Error", - "type": "Lookup10" - } - ] - }, - { - "info": "Null", - "lookupIndex": 9, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 10, - "lookupName": "TraitErc20Erc20Error", - "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", - "docs": [], - "namespace": "trait_erc20::erc20::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "InsufficientBalance" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "InsufficientAllowance" - } - ] - }, - { - "info": "Option", - "lookupIndex": 11, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - } -] diff --git a/.api-contract/src/test/compare/ink_v4_erc20Contract.test.json b/.api-contract/src/test/compare/ink_v4_erc20Contract.test.json deleted file mode 100644 index d34d7f85..00000000 --- a/.api-contract/src/test/compare/ink_v4_erc20Contract.test.json +++ /dev/null @@ -1,253 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Result", - "lookupIndex": 1, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup3" - } - ] - }, - { - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 4, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup3" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 6, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Result", - "lookupIndex": 8, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 9, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "Erc20Error", - "type": "Lookup10" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup3" - } - ] - }, - { - "info": "Result", - "lookupIndex": 9, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "Erc20Error", - "type": "Lookup10" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 10, - "lookupName": "Erc20Error", - "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", - "docs": [], - "namespace": "erc20::erc20::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "InsufficientBalance" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "InsufficientAllowance" - } - ] - }, - { - "info": "Option", - "lookupIndex": 11, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - }, - { - "info": "Plain", - "lookupIndex": 12, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 13, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 14, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 15, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_env::types::NoChainExtension", - "lookupNameRoot": "InkEnvNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/ink_v4_erc20Metadata.test.json b/.api-contract/src/test/compare/ink_v4_erc20Metadata.test.json deleted file mode 100644 index d34d7f85..00000000 --- a/.api-contract/src/test/compare/ink_v4_erc20Metadata.test.json +++ /dev/null @@ -1,253 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Result", - "lookupIndex": 1, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup3" - } - ] - }, - { - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 4, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup3" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 6, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Result", - "lookupIndex": 8, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 9, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "Erc20Error", - "type": "Lookup10" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup3" - } - ] - }, - { - "info": "Result", - "lookupIndex": 9, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "Erc20Error", - "type": "Lookup10" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 10, - "lookupName": "Erc20Error", - "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", - "docs": [], - "namespace": "erc20::erc20::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "InsufficientBalance" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "InsufficientAllowance" - } - ] - }, - { - "info": "Option", - "lookupIndex": 11, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - }, - { - "info": "Plain", - "lookupIndex": 12, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 13, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 14, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 15, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_env::types::NoChainExtension", - "lookupNameRoot": "InkEnvNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/ink_v4_flipperContract.test.json b/.api-contract/src/test/compare/ink_v4_flipperContract.test.json deleted file mode 100644 index 681a6a3d..00000000 --- a/.api-contract/src/test/compare/ink_v4_flipperContract.test.json +++ /dev/null @@ -1,155 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "info": "Result", - "lookupIndex": 1, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup3" - } - ] - }, - { - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 4, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup3" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 6, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 8, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 9, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 10, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 11, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 12, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_env::types::NoChainExtension", - "lookupNameRoot": "InkEnvNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/ink_v4_flipperMetadata.test.json b/.api-contract/src/test/compare/ink_v4_flipperMetadata.test.json deleted file mode 100644 index 681a6a3d..00000000 --- a/.api-contract/src/test/compare/ink_v4_flipperMetadata.test.json +++ /dev/null @@ -1,155 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "info": "Result", - "lookupIndex": 1, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup3" - } - ] - }, - { - "info": "Null", - "lookupIndex": 2, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 4, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 3, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup3" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 6, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 8, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 9, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 10, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 11, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 12, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_env::types::NoChainExtension", - "lookupNameRoot": "InkEnvNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/ink_v5_erc20.test.json b/.api-contract/src/test/compare/ink_v5_erc20.test.json deleted file mode 100644 index 2f7012d6..00000000 --- a/.api-contract/src/test/compare/ink_v5_erc20.test.json +++ /dev/null @@ -1,370 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 1, - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 3, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 5, - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 6, - "lookupName": "InkStorageTraitsImplsAutoKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::AutoKey" - }, - { - "info": "Null", - "lookupIndex": 7, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 9, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Tuple", - "lookupIndex": 10, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - ] - }, - { - "info": "Null", - "lookupIndex": 11, - "lookupName": "InkStorageTraitsImplsResolverKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 12, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Struct", - "lookupIndex": 13, - "lookupName": "Erc20", - "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", - "docs": [], - "namespace": "erc20::erc20::Erc20", - "sub": [ - { - "docs": [], - "name": "totalSupply", - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "namespace": "", - "typeName": "" - }, - { - "docs": [], - "name": "balances", - "info": "Null", - "lookupIndex": 1, - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - }, - { - "docs": [], - "name": "allowances", - "info": "Null", - "lookupIndex": 9, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - } - ] - }, - { - "info": "Result", - "lookupIndex": 14, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 16, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Result", - "lookupIndex": 17, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 18, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "Lookup19" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Result", - "lookupIndex": 18, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "Lookup19" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", - "docs": [], - "namespace": "erc20::erc20::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "InsufficientBalance" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "InsufficientAllowance" - } - ] - }, - { - "info": "Option", - "lookupIndex": 20, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - }, - { - "info": "Plain", - "lookupIndex": 21, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 22, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 23, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 24, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_env::types::NoChainExtension", - "lookupNameRoot": "InkEnvNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json b/.api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json deleted file mode 100644 index 2f7012d6..00000000 --- a/.api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json +++ /dev/null @@ -1,370 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 1, - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 3, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 5, - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 6, - "lookupName": "InkStorageTraitsImplsAutoKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::AutoKey" - }, - { - "info": "Null", - "lookupIndex": 7, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 9, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Tuple", - "lookupIndex": 10, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - ] - }, - { - "info": "Null", - "lookupIndex": 11, - "lookupName": "InkStorageTraitsImplsResolverKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 12, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Struct", - "lookupIndex": 13, - "lookupName": "Erc20", - "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", - "docs": [], - "namespace": "erc20::erc20::Erc20", - "sub": [ - { - "docs": [], - "name": "totalSupply", - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "namespace": "", - "typeName": "" - }, - { - "docs": [], - "name": "balances", - "info": "Null", - "lookupIndex": 1, - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - }, - { - "docs": [], - "name": "allowances", - "info": "Null", - "lookupIndex": 9, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - } - ] - }, - { - "info": "Result", - "lookupIndex": 14, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 16, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Result", - "lookupIndex": 17, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 18, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "Lookup19" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Result", - "lookupIndex": 18, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "Lookup19" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", - "docs": [], - "namespace": "erc20::erc20::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "InsufficientBalance" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "InsufficientAllowance" - } - ] - }, - { - "info": "Option", - "lookupIndex": 20, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - }, - { - "info": "Plain", - "lookupIndex": 21, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 22, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 23, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 24, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_env::types::NoChainExtension", - "lookupNameRoot": "InkEnvNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/ink_v5_erc20Contract.test.json b/.api-contract/src/test/compare/ink_v5_erc20Contract.test.json deleted file mode 100644 index 2f7012d6..00000000 --- a/.api-contract/src/test/compare/ink_v5_erc20Contract.test.json +++ /dev/null @@ -1,370 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 1, - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 3, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 5, - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 6, - "lookupName": "InkStorageTraitsImplsAutoKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::AutoKey" - }, - { - "info": "Null", - "lookupIndex": 7, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 9, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Tuple", - "lookupIndex": 10, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - ] - }, - { - "info": "Null", - "lookupIndex": 11, - "lookupName": "InkStorageTraitsImplsResolverKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 12, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Struct", - "lookupIndex": 13, - "lookupName": "Erc20", - "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", - "docs": [], - "namespace": "erc20::erc20::Erc20", - "sub": [ - { - "docs": [], - "name": "totalSupply", - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "namespace": "", - "typeName": "" - }, - { - "docs": [], - "name": "balances", - "info": "Null", - "lookupIndex": 1, - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - }, - { - "docs": [], - "name": "allowances", - "info": "Null", - "lookupIndex": 9, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - } - ] - }, - { - "info": "Result", - "lookupIndex": 14, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 16, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Result", - "lookupIndex": 17, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 18, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "Lookup19" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Result", - "lookupIndex": 18, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "Lookup19" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", - "docs": [], - "namespace": "erc20::erc20::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "InsufficientBalance" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "InsufficientAllowance" - } - ] - }, - { - "info": "Option", - "lookupIndex": 20, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - }, - { - "info": "Plain", - "lookupIndex": 21, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 22, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 23, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 24, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_env::types::NoChainExtension", - "lookupNameRoot": "InkEnvNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/ink_v5_erc20Metadata.test.json b/.api-contract/src/test/compare/ink_v5_erc20Metadata.test.json deleted file mode 100644 index 2f7012d6..00000000 --- a/.api-contract/src/test/compare/ink_v5_erc20Metadata.test.json +++ /dev/null @@ -1,370 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 1, - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 3, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 5, - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 6, - "lookupName": "InkStorageTraitsImplsAutoKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::AutoKey" - }, - { - "info": "Null", - "lookupIndex": 7, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 9, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Tuple", - "lookupIndex": 10, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - ] - }, - { - "info": "Null", - "lookupIndex": 11, - "lookupName": "InkStorageTraitsImplsResolverKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 12, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Struct", - "lookupIndex": 13, - "lookupName": "Erc20", - "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", - "docs": [], - "namespace": "erc20::erc20::Erc20", - "sub": [ - { - "docs": [], - "name": "totalSupply", - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "namespace": "", - "typeName": "" - }, - { - "docs": [], - "name": "balances", - "info": "Null", - "lookupIndex": 1, - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - }, - { - "docs": [], - "name": "allowances", - "info": "Null", - "lookupIndex": 9, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - } - ] - }, - { - "info": "Result", - "lookupIndex": 14, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 16, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Result", - "lookupIndex": 17, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 18, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "Lookup19" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 15, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup15" - } - ] - }, - { - "info": "Result", - "lookupIndex": 18, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 8, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "Lookup19" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 19, - "lookupName": "Erc20Error", - "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", - "docs": [], - "namespace": "erc20::erc20::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "InsufficientBalance" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "InsufficientAllowance" - } - ] - }, - { - "info": "Option", - "lookupIndex": 20, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 2, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - }, - { - "info": "Plain", - "lookupIndex": 21, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 22, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 23, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 24, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_env::types::NoChainExtension", - "lookupNameRoot": "InkEnvNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/ink_v5_flipperContract.test.json b/.api-contract/src/test/compare/ink_v5_flipperContract.test.json deleted file mode 100644 index 69b5276e..00000000 --- a/.api-contract/src/test/compare/ink_v5_flipperContract.test.json +++ /dev/null @@ -1,174 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 1, - "lookupName": "Flipper", - "type": "{\"value\":\"bool\"}", - "docs": [], - "namespace": "flipper::flipper::Flipper", - "sub": [ - { - "docs": [], - "name": "value", - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "namespace": "", - "typeName": "" - } - ] - }, - { - "info": "Result", - "lookupIndex": 2, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 4, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup4" - } - ] - }, - { - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 4, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 5, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 4, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup4" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 7, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 8, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 8, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 9, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 10, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 11, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 12, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 13, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_env::types::NoChainExtension", - "lookupNameRoot": "InkEnvNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/ink_v5_flipperMetadata.test.json b/.api-contract/src/test/compare/ink_v5_flipperMetadata.test.json deleted file mode 100644 index 69b5276e..00000000 --- a/.api-contract/src/test/compare/ink_v5_flipperMetadata.test.json +++ /dev/null @@ -1,174 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 1, - "lookupName": "Flipper", - "type": "{\"value\":\"bool\"}", - "docs": [], - "namespace": "flipper::flipper::Flipper", - "sub": [ - { - "docs": [], - "name": "value", - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "namespace": "", - "typeName": "" - } - ] - }, - { - "info": "Result", - "lookupIndex": 2, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 4, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup4" - } - ] - }, - { - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 4, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 5, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 4, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup4" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 7, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 8, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 8, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 9, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 10, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 11, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 12, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 13, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_env::types::NoChainExtension", - "lookupNameRoot": "InkEnvNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/ink_v6_erc20Contract.test.json b/.api-contract/src/test/compare/ink_v6_erc20Contract.test.json deleted file mode 100644 index 0fee54ab..00000000 --- a/.api-contract/src/test/compare/ink_v6_erc20Contract.test.json +++ /dev/null @@ -1,418 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "U256", - "docs": [], - "namespace": "primitive_types::U256", - "lookupNameRoot": "PrimitiveTypesU256" - }, - { - "info": "VecFixed", - "lookupIndex": 1, - "type": "[u64;4]", - "docs": [], - "namespace": "", - "length": 4, - "sub": { - "info": "Plain", - "lookupIndex": 2, - "type": "u64", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "H160", - "docs": [], - "namespace": "primitive_types::H160", - "lookupNameRoot": "PrimitiveTypesH160" - }, - { - "info": "VecFixed", - "lookupIndex": 5, - "type": "[u8;20]", - "docs": [], - "namespace": "", - "length": 20, - "sub": { - "info": "Plain", - "lookupIndex": 6, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 7, - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 8, - "lookupName": "InkStorageTraitsImplsAutoKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::AutoKey" - }, - { - "info": "Null", - "lookupIndex": 9, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 11, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Tuple", - "lookupIndex": 12, - "type": "(H160,H160)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 4, - "type": "H160", - "docs": [], - "namespace": "primitive_types::H160", - "lookupNameRoot": "PrimitiveTypesH160" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "H160", - "docs": [], - "namespace": "primitive_types::H160", - "lookupNameRoot": "PrimitiveTypesH160" - } - ] - }, - { - "info": "Null", - "lookupIndex": 13, - "lookupName": "InkStorageTraitsImplsResolverKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 14, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Struct", - "lookupIndex": 15, - "lookupName": "Erc20", - "type": "{\"totalSupply\":\"U256\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", - "docs": [], - "namespace": "erc20::erc20::Erc20", - "sub": [ - { - "docs": [], - "name": "totalSupply", - "info": "Plain", - "lookupIndex": 0, - "type": "U256", - "namespace": "primitive_types::U256", - "lookupNameRoot": "PrimitiveTypesU256", - "typeName": "" - }, - { - "docs": [], - "name": "balances", - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - }, - { - "docs": [], - "name": "allowances", - "info": "Null", - "lookupIndex": 11, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - } - ] - }, - { - "info": "Result", - "lookupIndex": 16, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 17, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup17" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 17, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 18, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "U256", - "docs": [], - "namespace": "primitive_types::U256", - "lookupNameRoot": "PrimitiveTypesU256" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 17, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup17" - } - ] - }, - { - "info": "Result", - "lookupIndex": 19, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 20, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 21, - "lookupName": "Erc20Error", - "type": "Lookup21" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 17, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup17" - } - ] - }, - { - "info": "Result", - "lookupIndex": 20, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 21, - "lookupName": "Erc20Error", - "type": "Lookup21" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 21, - "lookupName": "Erc20Error", - "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", - "docs": [], - "namespace": "erc20::erc20::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "InsufficientBalance" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "InsufficientAllowance" - } - ] - }, - { - "info": "Option", - "lookupIndex": 22, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "H160", - "docs": [], - "namespace": "primitive_types::H160", - "lookupNameRoot": "PrimitiveTypesH160" - } - }, - { - "info": "Plain", - "lookupIndex": 23, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 24, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 6, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 25, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 26, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 27, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 28, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_primitives::types::NoChainExtension", - "lookupNameRoot": "InkPrimitivesNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/ink_v6_erc20Metadata.test.json b/.api-contract/src/test/compare/ink_v6_erc20Metadata.test.json deleted file mode 100644 index 0fee54ab..00000000 --- a/.api-contract/src/test/compare/ink_v6_erc20Metadata.test.json +++ /dev/null @@ -1,418 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "U256", - "docs": [], - "namespace": "primitive_types::U256", - "lookupNameRoot": "PrimitiveTypesU256" - }, - { - "info": "VecFixed", - "lookupIndex": 1, - "type": "[u64;4]", - "docs": [], - "namespace": "", - "length": 4, - "sub": { - "info": "Plain", - "lookupIndex": 2, - "type": "u64", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "H160", - "docs": [], - "namespace": "primitive_types::H160", - "lookupNameRoot": "PrimitiveTypesH160" - }, - { - "info": "VecFixed", - "lookupIndex": 5, - "type": "[u8;20]", - "docs": [], - "namespace": "", - "length": 20, - "sub": { - "info": "Plain", - "lookupIndex": 6, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 7, - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 8, - "lookupName": "InkStorageTraitsImplsAutoKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::AutoKey" - }, - { - "info": "Null", - "lookupIndex": 9, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 11, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "docs": [], - "namespace": "ink_storage::lazy::mapping::Mapping" - }, - { - "info": "Tuple", - "lookupIndex": 12, - "type": "(H160,H160)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 4, - "type": "H160", - "docs": [], - "namespace": "primitive_types::H160", - "lookupNameRoot": "PrimitiveTypesH160" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "H160", - "docs": [], - "namespace": "primitive_types::H160", - "lookupNameRoot": "PrimitiveTypesH160" - } - ] - }, - { - "info": "Null", - "lookupIndex": 13, - "lookupName": "InkStorageTraitsImplsResolverKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ResolverKey" - }, - { - "info": "Null", - "lookupIndex": 14, - "lookupName": "InkStorageTraitsImplsManualKey", - "type": "Null", - "docs": [], - "namespace": "ink_storage_traits::impls::ManualKey" - }, - { - "info": "Struct", - "lookupIndex": 15, - "lookupName": "Erc20", - "type": "{\"totalSupply\":\"U256\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", - "docs": [], - "namespace": "erc20::erc20::Erc20", - "sub": [ - { - "docs": [], - "name": "totalSupply", - "info": "Plain", - "lookupIndex": 0, - "type": "U256", - "namespace": "primitive_types::U256", - "lookupNameRoot": "PrimitiveTypesU256", - "typeName": "" - }, - { - "docs": [], - "name": "balances", - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - }, - { - "docs": [], - "name": "allowances", - "info": "Null", - "lookupIndex": 11, - "lookupName": "InkStorageLazyMapping", - "type": "Null", - "namespace": "ink_storage::lazy::mapping::Mapping", - "typeName": "" - } - ] - }, - { - "info": "Result", - "lookupIndex": 16, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 17, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup17" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 17, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 18, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 0, - "type": "U256", - "docs": [], - "namespace": "primitive_types::U256", - "lookupNameRoot": "PrimitiveTypesU256" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 17, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup17" - } - ] - }, - { - "info": "Result", - "lookupIndex": 19, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 20, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 21, - "lookupName": "Erc20Error", - "type": "Lookup21" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 17, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup17" - } - ] - }, - { - "info": "Result", - "lookupIndex": 20, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 10, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 21, - "lookupName": "Erc20Error", - "type": "Lookup21" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 21, - "lookupName": "Erc20Error", - "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", - "docs": [], - "namespace": "erc20::erc20::Error", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "InsufficientBalance" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "InsufficientAllowance" - } - ] - }, - { - "info": "Option", - "lookupIndex": 22, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 4, - "type": "H160", - "docs": [], - "namespace": "primitive_types::H160", - "lookupNameRoot": "PrimitiveTypesH160" - } - }, - { - "info": "Plain", - "lookupIndex": 23, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 24, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 6, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 25, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 26, - "type": "Hash", - "docs": [], - "namespace": "ink_primitives::types::Hash", - "lookupNameRoot": "InkPrimitivesHash" - }, - { - "info": "Plain", - "lookupIndex": 27, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 28, - "type": "NoChainExtension", - "docs": [], - "namespace": "ink_primitives::types::NoChainExtension", - "lookupNameRoot": "InkPrimitivesNoChainExtension" - } -] diff --git a/.api-contract/src/test/compare/solang_v0_ints256.test.json b/.api-contract/src/test/compare/solang_v0_ints256.test.json deleted file mode 100644 index 0c273a6a..00000000 --- a/.api-contract/src/test/compare/solang_v0_ints256.test.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 1, - "type": "u256", - "docs": [], - "namespace": "" - } -] diff --git a/.api-contract/src/test/compare/user_v0_assetTransfer.test.json b/.api-contract/src/test/compare/user_v0_assetTransfer.test.json deleted file mode 100644 index 8a62addf..00000000 --- a/.api-contract/src/test/compare/user_v0_assetTransfer.test.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 1, - "type": "u256", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "VecFixed", - "lookupIndex": 3, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 2, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "VecFixed", - "lookupIndex": 4, - "lookupName": "AccountId", - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 2, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "Text", - "docs": [], - "namespace": "" - } -] diff --git a/.api-contract/src/test/compare/user_v0_enumExample.test.json b/.api-contract/src/test/compare/user_v0_enumExample.test.json deleted file mode 100644 index 0bf43f84..00000000 --- a/.api-contract/src/test/compare/user_v0_enumExample.test.json +++ /dev/null @@ -1,303 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 1, - "type": "i32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 4, - "lookupName": "EnumExampleVariant", - "type": "{\"_enum\":{\"None\":\"Null\",\"Weekday\":\"EnumExampleWeekday\",\"TupleMaybeSigned\":\"EnumExampleTupleMaybeSigned\",\"NamedMaybeSigned\":\"EnumExampleNamedMaybeSigned\",\"Color\":\"EnumExampleColor\"}}", - "docs": [], - "namespace": "enum_example::enum_example::Variant", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "None" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 5, - "lookupName": "EnumExampleWeekday", - "type": "Lookup5", - "index": 1, - "name": "Weekday" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 6, - "lookupName": "EnumExampleTupleMaybeSigned", - "type": "Lookup6", - "index": 2, - "name": "TupleMaybeSigned" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 7, - "lookupName": "EnumExampleNamedMaybeSigned", - "type": "Lookup7", - "index": 3, - "name": "NamedMaybeSigned" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 8, - "lookupName": "EnumExampleColor", - "type": "Lookup8", - "index": 4, - "name": "Color" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 5, - "lookupName": "EnumExampleWeekday", - "type": "{\"_enum\":[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"]}", - "docs": [], - "namespace": "enum_example::enum_example::Weekday", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "Monday" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "Tuesday" - }, - { - "info": "Null", - "type": "Null", - "index": 2, - "name": "Wednesday" - }, - { - "info": "Null", - "type": "Null", - "index": 3, - "name": "Thursday" - }, - { - "info": "Null", - "type": "Null", - "index": 4, - "name": "Friday" - }, - { - "info": "Null", - "type": "Null", - "index": 5, - "name": "Saturday" - }, - { - "info": "Null", - "type": "Null", - "index": 6, - "name": "Sunday" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 6, - "lookupName": "EnumExampleTupleMaybeSigned", - "type": "{\"_enum\":{\"Signed\":\"i32\",\"Unsigned\":\"u32\"}}", - "docs": [], - "namespace": "enum_example::enum_example::TupleMaybeSigned", - "sub": [ - { - "info": "Plain", - "lookupIndex": 1, - "type": "i32", - "docs": [], - "namespace": "", - "index": 0, - "name": "Signed" - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "index": 1, - "name": "Unsigned" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 7, - "lookupName": "EnumExampleNamedMaybeSigned", - "type": "{\"_enum\":{\"Signed\":\"{\\\"value\\\":\\\"i32\\\"}\",\"Unsigned\":\"{\\\"value\\\":\\\"u32\\\"}\"}}", - "docs": [], - "namespace": "enum_example::enum_example::NamedMaybeSigned", - "sub": [ - { - "info": "Struct", - "sub": [ - { - "info": "Plain", - "lookupIndex": 1, - "type": "i32", - "docs": [], - "namespace": "", - "name": "value" - } - ], - "type": "{\"value\":\"i32\"}", - "index": 0, - "name": "Signed" - }, - { - "info": "Struct", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u32", - "docs": [], - "namespace": "", - "name": "value" - } - ], - "type": "{\"value\":\"u32\"}", - "index": 1, - "name": "Unsigned" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 8, - "lookupName": "EnumExampleColor", - "type": "{\"_enum\":{\"Red\":\"Null\",\"Blue\":\"Null\",\"Green\":\"Null\",\"Yellow\":\"Null\",\"Rgb\":\"{\\\"r\\\":\\\"u8\\\",\\\"g\\\":\\\"u8\\\",\\\"b\\\":\\\"u8\\\"}\",\"Rgba\":\"{\\\"r\\\":\\\"u8\\\",\\\"g\\\":\\\"u8\\\",\\\"b\\\":\\\"u8\\\",\\\"a\\\":\\\"u8\\\"}\"}}", - "docs": [], - "namespace": "enum_example::enum_example::Color", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "Red" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "Blue" - }, - { - "info": "Null", - "type": "Null", - "index": 2, - "name": "Green" - }, - { - "info": "Null", - "type": "Null", - "index": 3, - "name": "Yellow" - }, - { - "info": "Struct", - "sub": [ - { - "info": "Plain", - "lookupIndex": 3, - "type": "u8", - "docs": [], - "namespace": "", - "name": "r" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u8", - "docs": [], - "namespace": "", - "name": "g" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u8", - "docs": [], - "namespace": "", - "name": "b" - } - ], - "type": "{\"r\":\"u8\",\"g\":\"u8\",\"b\":\"u8\"}", - "index": 4, - "name": "Rgb" - }, - { - "info": "Struct", - "sub": [ - { - "info": "Plain", - "lookupIndex": 3, - "type": "u8", - "docs": [], - "namespace": "", - "name": "r" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u8", - "docs": [], - "namespace": "", - "name": "g" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u8", - "docs": [], - "namespace": "", - "name": "b" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u8", - "docs": [], - "namespace": "", - "name": "a" - } - ], - "type": "{\"r\":\"u8\",\"g\":\"u8\",\"b\":\"u8\",\"a\":\"u8\"}", - "index": 5, - "name": "Rgba" - } - ] - } -] diff --git a/.api-contract/src/test/compare/user_v0_recursive.test.json b/.api-contract/src/test/compare/user_v0_recursive.test.json deleted file mode 100644 index 327476f9..00000000 --- a/.api-contract/src/test/compare/user_v0_recursive.test.json +++ /dev/null @@ -1,27 +0,0 @@ -[ - { - "info": "Enum", - "lookupIndex": 1, - "lookupName": "RecursiveMyEnum", - "type": "{\"_enum\":{\"A\":\"Null\",\"B\":\"RecursiveMyEnum\"}}", - "docs": [], - "namespace": "recursive::MyEnum", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "A" - }, - { - "info": "Si", - "lookupIndex": 1, - "lookupName": "RecursiveMyEnum", - "type": "Lookup1", - "typeName": "MyEnum", - "index": 1, - "name": "B" - } - ] - } -] diff --git a/.api-contract/src/test/compare/user_v0_withString.test.json b/.api-contract/src/test/compare/user_v0_withString.test.json deleted file mode 100644 index 2d797855..00000000 --- a/.api-contract/src/test/compare/user_v0_withString.test.json +++ /dev/null @@ -1,260 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 1, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 2, - "lookupName": "InkStorageCollectionsStashHeader", - "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::Header", - "sub": [ - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lastVacant" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "len" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "lenEntries" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 4, - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup8", - "index": 0, - "name": "Vacant" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId", - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 6, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 7, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Struct", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::stash::VacantEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "next" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "prev" - } - ] - }, - { - "info": "Struct", - "lookupIndex": 9, - "lookupName": "InkStorageCollectionsHashmapValueEntry", - "type": "{\"value\":\"u128\",\"keyIndex\":\"u32\"}", - "docs": [], - "namespace": "ink_storage::collections::hashmap::ValueEntry", - "sub": [ - { - "info": "Plain", - "lookupIndex": 1, - "type": "u128", - "docs": [], - "namespace": "", - "name": "value" - }, - { - "info": "Plain", - "lookupIndex": 3, - "type": "u32", - "docs": [], - "namespace": "", - "name": "keyIndex" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 10, - "lookupName": "InkStorageCollectionsStashEntry", - "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", - "docs": [], - "namespace": "ink_storage::collections::stash::Entry", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 8, - "lookupName": "InkStorageCollectionsStashVacantEntry", - "type": "Lookup8", - "index": 0, - "name": "Vacant" - }, - { - "info": "Tuple", - "lookupIndex": 11, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ], - "index": 1, - "name": "Occupied" - } - ] - }, - { - "info": "Tuple", - "lookupIndex": 11, - "type": "(AccountId,AccountId)", - "docs": [], - "namespace": "", - "sub": [ - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 12, - "type": "Text", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 13, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "info": "Option", - "lookupIndex": 14, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 5, - "type": "AccountId", - "docs": [], - "namespace": "ink_env::types::AccountId", - "lookupNameRoot": "InkEnvAccountId" - } - } -] diff --git a/.api-contract/src/test/compare/user_v3_ask.test.json b/.api-contract/src/test/compare/user_v3_ask.test.json deleted file mode 100644 index 3f67e9a1..00000000 --- a/.api-contract/src/test/compare/user_v3_ask.test.json +++ /dev/null @@ -1,71 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 1, - "type": "Text", - "docs": [], - "namespace": "" - }, - { - "info": "VecFixed", - "lookupIndex": 2, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 0, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Struct", - "lookupIndex": 3, - "type": "{\"inner\":\"[u8;32]\"}", - "docs": [], - "namespace": "", - "sub": [ - { - "docs": [], - "name": "inner", - "info": "VecFixed", - "lookupIndex": 2, - "type": "[u8;32]", - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 0, - "type": "u8", - "docs": [], - "namespace": "" - }, - "typeName": "FixedArray32" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "bool", - "docs": [], - "namespace": "" - } -] diff --git a/.api-contract/src/test/compare/user_v4_events.test.json b/.api-contract/src/test/compare/user_v4_events.test.json deleted file mode 100644 index f88b2172..00000000 --- a/.api-contract/src/test/compare/user_v4_events.test.json +++ /dev/null @@ -1,1328 +0,0 @@ -[ - { - "info": "Plain", - "lookupIndex": 0, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - }, - { - "info": "VecFixed", - "lookupIndex": 1, - "type": "[u8;32]", - "docs": [], - "namespace": "", - "length": 32, - "sub": { - "info": "Plain", - "lookupIndex": 2, - "type": "u8", - "docs": [], - "namespace": "" - } - }, - { - "info": "Plain", - "lookupIndex": 2, - "type": "u8", - "docs": [], - "namespace": "" - }, - { - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "u16", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "u64", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 7, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "info": "Plain", - "lookupIndex": 8, - "type": "Bytes", - "docs": [], - "namespace": "" - }, - { - "info": "Result", - "lookupIndex": 9, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", - "docs": [], - "namespace": "ink_primitives::LangError", - "sub": [ - { - "index": 0, - "info": "Null", - "name": "__Unused0", - "type": "Null" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "CouldNotReadInput" - } - ] - }, - { - "info": "Result", - "lookupIndex": 11, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 7, - "type": "u128", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Result", - "lookupIndex": 12, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "{\"_enum\":{\"U8\":\"u8\",\"U16\":\"u16\",\"U32\":\"u32\",\"U64\":\"u64\",\"U128\":\"u128\",\"Bytes\":\"Bytes\"}}", - "docs": [], - "namespace": "openbrush_contracts::traits::types::Id", - "sub": [ - { - "info": "Plain", - "lookupIndex": 2, - "type": "u8", - "docs": [], - "namespace": "", - "typeName": "u8", - "index": 0, - "name": "U8" - }, - { - "info": "Plain", - "lookupIndex": 4, - "type": "u16", - "docs": [], - "namespace": "", - "typeName": "u16", - "index": 1, - "name": "U16" - }, - { - "info": "Plain", - "lookupIndex": 5, - "type": "u32", - "docs": [], - "namespace": "", - "typeName": "u32", - "index": 2, - "name": "U32" - }, - { - "info": "Plain", - "lookupIndex": 6, - "type": "u64", - "docs": [], - "namespace": "", - "typeName": "u64", - "index": 3, - "name": "U64" - }, - { - "info": "Plain", - "lookupIndex": 7, - "type": "u128", - "docs": [], - "namespace": "", - "typeName": "u128", - "index": 4, - "name": "U128" - }, - { - "info": "Plain", - "lookupIndex": 8, - "type": "Bytes", - "docs": [], - "namespace": "", - "typeName": "Bytes", - "index": 5, - "name": "Bytes" - } - ] - }, - { - "info": "Result", - "lookupIndex": 14, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Option", - "lookupIndex": 15, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 0, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Option", - "lookupIndex": 15, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 0, - "type": "AccountId", - "docs": [], - "namespace": "ink_primitives::types::AccountId", - "lookupNameRoot": "InkPrimitivesAccountId" - } - }, - { - "info": "Result", - "lookupIndex": 16, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 5, - "type": "u32", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Option", - "lookupIndex": 17, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - } - }, - { - "info": "Result", - "lookupIndex": 18, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 19, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 19, - "type": "bool", - "docs": [], - "namespace": "" - }, - { - "info": "Result", - "lookupIndex": 20, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 21, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 22, - "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", - "type": "Lookup22" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Result", - "lookupIndex": 21, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 22, - "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", - "type": "Lookup22" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 22, - "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", - "type": "{\"_enum\":{\"Custom\":\"Bytes\",\"SelfApprove\":\"Null\",\"NotApproved\":\"Null\",\"TokenExists\":\"Null\",\"TokenNotExists\":\"Null\",\"SafeTransferCheckFailed\":\"Bytes\"}}", - "docs": [], - "namespace": "openbrush_contracts::traits::errors::psp34::PSP34Error", - "sub": [ - { - "info": "Plain", - "lookupIndex": 8, - "type": "Bytes", - "docs": [], - "namespace": "", - "typeName": "Text", - "index": 0, - "name": "Custom" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "SelfApprove" - }, - { - "info": "Null", - "type": "Null", - "index": 2, - "name": "NotApproved" - }, - { - "info": "Null", - "type": "Null", - "index": 3, - "name": "TokenExists" - }, - { - "info": "Null", - "type": "Null", - "index": 4, - "name": "TokenNotExists" - }, - { - "info": "Plain", - "lookupIndex": 8, - "type": "Bytes", - "docs": [], - "namespace": "", - "typeName": "Text", - "index": 5, - "name": "SafeTransferCheckFailed" - } - ] - }, - { - "info": "Result", - "lookupIndex": 23, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 24, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 25, - "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", - "type": "Lookup25" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Result", - "lookupIndex": 24, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 25, - "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", - "type": "Lookup25" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 25, - "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", - "type": "{\"_enum\":[\"InvalidCaller\",\"MissingRole\",\"RoleRedundant\"]}", - "docs": [], - "namespace": "openbrush_contracts::traits::errors::access_control::AccessControlError", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "InvalidCaller" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "MissingRole" - }, - { - "info": "Null", - "type": "Null", - "index": 2, - "name": "RoleRedundant" - } - ] - }, - { - "info": "Result", - "lookupIndex": 26, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Option", - "lookupIndex": 27, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 8, - "type": "Bytes", - "docs": [], - "namespace": "" - } - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Option", - "lookupIndex": 27, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 8, - "type": "Bytes", - "docs": [], - "namespace": "" - } - }, - { - "info": "Result", - "lookupIndex": 28, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 29, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 22, - "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", - "type": "Lookup22" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Result", - "lookupIndex": 29, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 22, - "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", - "type": "Lookup22" - } - ] - }, - { - "info": "Result", - "lookupIndex": 30, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 31, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 32, - "type": "Text", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 33, - "lookupName": "RmrkCommonErrorsError", - "type": "Lookup33" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Result", - "lookupIndex": 31, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Plain", - "lookupIndex": 32, - "type": "Text", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 33, - "lookupName": "RmrkCommonErrorsError", - "type": "Lookup33" - } - ] - }, - { - "info": "Plain", - "lookupIndex": 32, - "type": "Text", - "docs": [], - "namespace": "" - }, - { - "info": "Enum", - "lookupIndex": 33, - "lookupName": "RmrkCommonErrorsError", - "type": "{\"_enum\":{\"Rmrk\":\"RmrkCommonErrorsRmrkError\",\"PSP34\":\"OpenbrushContractsErrorsPsp34Psp34Error\",\"AccessControl\":\"OpenbrushContractsErrorsAccessControlAccessControlError\",\"Reentrancy\":\"OpenbrushContractsErrorsReentrancyGuardReentrancyGuardError\"}}", - "docs": [], - "namespace": "rmrk_common::errors::Error", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 34, - "lookupName": "RmrkCommonErrorsRmrkError", - "type": "Lookup34", - "typeName": "RmrkError", - "index": 0, - "name": "Rmrk" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 22, - "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", - "type": "Lookup22", - "typeName": "PSP34Error", - "index": 1, - "name": "PSP34" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 25, - "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", - "type": "Lookup25", - "typeName": "AccessControlError", - "index": 2, - "name": "AccessControl" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 35, - "lookupName": "OpenbrushContractsErrorsReentrancyGuardReentrancyGuardError", - "type": "Lookup35", - "typeName": "ReentrancyGuardError", - "index": 3, - "name": "Reentrancy" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 34, - "lookupName": "RmrkCommonErrorsRmrkError", - "type": "{\"_enum\":[\"AcceptedAssetsMissing\",\"AddingPendingAsset\",\"AddingPendingChild\",\"AddressNotEquippable\",\"AlreadyAddedAsset\",\"AlreadyAddedChild\",\"AssetHasNoParts\",\"AssetIdAlreadyExists\",\"AssetIdNotFound\",\"AssetIdNotEquippable\",\"BadConfig\",\"BadMintValue\",\"BadPriorityLength\",\"CannotMintZeroTokens\",\"CatalogNotFoundForAsset\",\"ChildNotFound\",\"UriNotFound\",\"CollectionIsFull\",\"InvalidAssetId\",\"InvalidParentId\",\"InvalidTokenId\",\"NotEquipped\",\"NotTokenOwner\",\"PartIsNotSlot\",\"SlotAlreayUsed\",\"TargetAssetCannotReceiveSlot\",\"UnknownEquippableAsset\",\"UnknownPart\",\"UnknownPartId\",\"WithdrawalFailed\"]}", - "docs": [], - "namespace": "rmrk_common::errors::RmrkError", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "AcceptedAssetsMissing" - }, - { - "info": "Null", - "type": "Null", - "index": 1, - "name": "AddingPendingAsset" - }, - { - "info": "Null", - "type": "Null", - "index": 2, - "name": "AddingPendingChild" - }, - { - "info": "Null", - "type": "Null", - "index": 3, - "name": "AddressNotEquippable" - }, - { - "info": "Null", - "type": "Null", - "index": 4, - "name": "AlreadyAddedAsset" - }, - { - "info": "Null", - "type": "Null", - "index": 5, - "name": "AlreadyAddedChild" - }, - { - "info": "Null", - "type": "Null", - "index": 6, - "name": "AssetHasNoParts" - }, - { - "info": "Null", - "type": "Null", - "index": 7, - "name": "AssetIdAlreadyExists" - }, - { - "info": "Null", - "type": "Null", - "index": 8, - "name": "AssetIdNotFound" - }, - { - "info": "Null", - "type": "Null", - "index": 9, - "name": "AssetIdNotEquippable" - }, - { - "info": "Null", - "type": "Null", - "index": 10, - "name": "BadConfig" - }, - { - "info": "Null", - "type": "Null", - "index": 11, - "name": "BadMintValue" - }, - { - "info": "Null", - "type": "Null", - "index": 12, - "name": "BadPriorityLength" - }, - { - "info": "Null", - "type": "Null", - "index": 13, - "name": "CannotMintZeroTokens" - }, - { - "info": "Null", - "type": "Null", - "index": 14, - "name": "CatalogNotFoundForAsset" - }, - { - "info": "Null", - "type": "Null", - "index": 15, - "name": "ChildNotFound" - }, - { - "info": "Null", - "type": "Null", - "index": 16, - "name": "UriNotFound" - }, - { - "info": "Null", - "type": "Null", - "index": 17, - "name": "CollectionIsFull" - }, - { - "info": "Null", - "type": "Null", - "index": 18, - "name": "InvalidAssetId" - }, - { - "info": "Null", - "type": "Null", - "index": 19, - "name": "InvalidParentId" - }, - { - "info": "Null", - "type": "Null", - "index": 20, - "name": "InvalidTokenId" - }, - { - "info": "Null", - "type": "Null", - "index": 21, - "name": "NotEquipped" - }, - { - "info": "Null", - "type": "Null", - "index": 22, - "name": "NotTokenOwner" - }, - { - "info": "Null", - "type": "Null", - "index": 23, - "name": "PartIsNotSlot" - }, - { - "info": "Null", - "type": "Null", - "index": 24, - "name": "SlotAlreayUsed" - }, - { - "info": "Null", - "type": "Null", - "index": 25, - "name": "TargetAssetCannotReceiveSlot" - }, - { - "info": "Null", - "type": "Null", - "index": 26, - "name": "UnknownEquippableAsset" - }, - { - "info": "Null", - "type": "Null", - "index": 27, - "name": "UnknownPart" - }, - { - "info": "Null", - "type": "Null", - "index": 28, - "name": "UnknownPartId" - }, - { - "info": "Null", - "type": "Null", - "index": 29, - "name": "WithdrawalFailed" - } - ] - }, - { - "info": "Enum", - "lookupIndex": 35, - "lookupName": "OpenbrushContractsErrorsReentrancyGuardReentrancyGuardError", - "type": "{\"_enum\":[\"ReentrantCall\"]}", - "docs": [], - "namespace": "openbrush_contracts::traits::errors::reentrancy_guard::ReentrancyGuardError", - "sub": [ - { - "info": "Null", - "type": "Null", - "index": 0, - "name": "ReentrantCall" - } - ] - }, - { - "info": "Result", - "lookupIndex": 36, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Option", - "lookupIndex": 37, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 6, - "type": "u64", - "docs": [], - "namespace": "" - } - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Option", - "lookupIndex": 37, - "type": "Option", - "docs": [], - "namespace": "Option", - "sub": { - "info": "Plain", - "lookupIndex": 6, - "type": "u64", - "docs": [], - "namespace": "" - } - }, - { - "info": "Result", - "lookupIndex": 38, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 39, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 33, - "lookupName": "RmrkCommonErrorsError", - "type": "Lookup33" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Result", - "lookupIndex": 39, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Null", - "lookupIndex": 3, - "type": "Null", - "docs": [], - "namespace": "" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 33, - "lookupName": "RmrkCommonErrorsError", - "type": "Lookup33" - } - ] - }, - { - "info": "Result", - "lookupIndex": 40, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 41, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 33, - "lookupName": "RmrkCommonErrorsError", - "type": "Lookup33" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Result", - "lookupIndex": 41, - "type": "Result", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 33, - "lookupName": "RmrkCommonErrorsError", - "type": "Lookup33" - } - ] - }, - { - "info": "Result", - "lookupIndex": 42, - "type": "Result, InkPrimitivesLangError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Result", - "lookupIndex": 43, - "type": "Result<(OpenbrushContractsTypesId,OpenbrushContractsTypesId), RmrkCommonErrorsError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Tuple", - "lookupIndex": 44, - "type": "(OpenbrushContractsTypesId,OpenbrushContractsTypesId)", - "docs": [], - "namespace": "", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 33, - "lookupName": "RmrkCommonErrorsError", - "type": "Lookup33" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 10, - "lookupName": "InkPrimitivesLangError", - "type": "Lookup10" - } - ] - }, - { - "info": "Result", - "lookupIndex": 43, - "type": "Result<(OpenbrushContractsTypesId,OpenbrushContractsTypesId), RmrkCommonErrorsError>", - "docs": [], - "namespace": "Result", - "sub": [ - { - "name": "Ok", - "info": "Tuple", - "lookupIndex": 44, - "type": "(OpenbrushContractsTypesId,OpenbrushContractsTypesId)", - "docs": [], - "namespace": "", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - } - ] - }, - { - "name": "Error", - "docs": [], - "info": "Si", - "lookupIndex": 33, - "lookupName": "RmrkCommonErrorsError", - "type": "Lookup33" - } - ] - }, - { - "info": "Tuple", - "lookupIndex": 44, - "type": "(OpenbrushContractsTypesId,OpenbrushContractsTypesId)", - "docs": [], - "namespace": "", - "sub": [ - { - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - }, - { - "docs": [], - "info": "Si", - "lookupIndex": 13, - "lookupName": "OpenbrushContractsTypesId", - "type": "Lookup13" - } - ] - } -] diff --git a/.api-contract/src/test/contracts/index.ts b/.api-contract/src/test/contracts/index.ts deleted file mode 100644 index 3ffc7321..00000000 --- a/.api-contract/src/test/contracts/index.ts +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import ink from './ink/index.js'; -import solang from './solang/index.js'; -import user from './user/index.js'; - -const all: Record> = {}; - -Object.entries({ ink, solang, user }).forEach(([type, abis]) => - Object.entries(abis).forEach(([name, abi]): void => { - all[`${type}_${name}`] = abi; - }), -); - -export default all; diff --git a/.api-contract/src/test/contracts/ink/index.ts b/.api-contract/src/test/contracts/ink/index.ts deleted file mode 100644 index 5b4bb5f6..00000000 --- a/.api-contract/src/test/contracts/ink/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { createVersionedExport } from '../util.js'; -import * as v0 from './v0/index.js'; -import * as v1 from './v1/index.js'; -import * as v2 from './v2/index.js'; -import * as v3 from './v3/index.js'; -import * as v4 from './v4/index.js'; -import * as v5 from './v5/index.js'; -import * as v6 from './v6/index.js'; - -export default createVersionedExport({ v0, v1, v2, v3, v4, v5, v6 }); diff --git a/.api-contract/src/test/contracts/ink/v0/accumulator.wasm b/.api-contract/src/test/contracts/ink/v0/accumulator.wasm deleted file mode 100644 index 33197e6b15c310ddd583da65fcd85315b1ae652c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8826 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 ipB2hn)cY|%AlivK3q)D)s2y"] - }, - "spec": { - "constructors": [ - { - "args": [ - { - "name": "init_value", - "type": { - "displayName": ["i32"], - "type": 4 - } - }, - { - "name": "accumulator_code_hash", - "type": { - "displayName": ["Hash"], - "type": 5 - } - }, - { - "name": "adder_code_hash", - "type": { - "displayName": ["Hash"], - "type": 5 - } - }, - { - "name": "subber_code_hash", - "type": { - "displayName": ["Hash"], - "type": 5 - } - } - ], - "docs": [" Instantiate a delegator with the given sub-contract codes."], - "name": ["new"], - "selector": "0xd183512b" - } - ], - "docs": [], - "events": [], - "messages": [ - { - "args": [], - "docs": [" Returns the accumulator's value."], - "mutates": false, - "name": ["get"], - "payable": false, - "returnType": { - "displayName": ["i32"], - "type": 4 - }, - "selector": "0x1e5ca456" - }, - { - "args": [ - { - "name": "by", - "type": { - "displayName": ["i32"], - "type": 4 - } - } - ], - "docs": [" Delegates the call to either `Adder` or `Subber`."], - "mutates": true, - "name": ["change"], - "payable": false, - "returnType": null, - "selector": "0x0af938f2" - }, - { - "args": [], - "docs": [" Switches the delegator."], - "mutates": true, - "name": ["switch"], - "payable": false, - "returnType": null, - "selector": "0x5d37c38d" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "enum": { - "dispatchKey": "0x0000000000000000000000000000000000000000000000000000000000000000", - "variants": { - "0": { - "fields": [] - }, - "1": { - "fields": [] - } - } - } - }, - "name": "which" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0100000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "account_id" - } - ] - } - }, - "name": "accumulator" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "account_id" - } - ] - } - }, - "name": "adder" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0300000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "account_id" - } - ] - } - }, - "name": "subber" - } - ] - } - }, - "types": [ - { - "def": { - "composite": { - "fields": [ - { - "type": 2 - } - ] - } - }, - "path": ["ink_env", "types", "AccountId"] - }, - { - "def": { - "array": { - "len": 32, - "type": 3 - } - } - }, - { - "def": { - "primitive": "u8" - } - }, - { - "def": { - "primitive": "i32" - } - }, - { - "def": { - "composite": { - "fields": [ - { - "type": 2 - } - ] - } - }, - "path": ["ink_env", "types", "Hash"] - } - ] -} diff --git a/.api-contract/src/test/contracts/ink/v0/delegator.wasm b/.api-contract/src/test/contracts/ink/v0/delegator.wasm deleted file mode 100644 index 5a189ee01f569ed497ae381400bd69e51814e4c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30472 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 diff --git a/.api-contract/src/test/contracts/ink/v0/dns.json b/.api-contract/src/test/contracts/ink/v0/dns.json deleted file mode 100644 index 7fbb18df..00000000 --- a/.api-contract/src/test/contracts/ink/v0/dns.json +++ /dev/null @@ -1,600 +0,0 @@ -{ - "metadataVersion": "0.1.0", - "source": { - "hash": "0xcf3eee6ac5d38f6f503293735a72b011960e09ec1dd09185ab3c3d28e7770009", - "language": "ink! 3.0.0-rc1", - "compiler": "rustc 1.48.0-nightly" - }, - "contract": { - "name": "dns", - "version": "3.0.0-rc1", - "authors": ["Parity Technologies "] - }, - "spec": { - "constructors": [ - { - "args": [], - "docs": [" Creates a new domain name service contract."], - "name": ["new"], - "selector": "0xd183512b" - } - ], - "docs": [], - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "name", - "type": { - "displayName": ["Hash"], - "type": 4 - } - }, - { - "docs": [], - "indexed": true, - "name": "from", - "type": { - "displayName": ["AccountId"], - "type": 9 - } - } - ], - "docs": [" Emitted whenever a new name is being registered."], - "name": "Register" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "name", - "type": { - "displayName": ["Hash"], - "type": 4 - } - }, - { - "docs": [], - "indexed": false, - "name": "from", - "type": { - "displayName": ["AccountId"], - "type": 9 - } - }, - { - "docs": [], - "indexed": true, - "name": "old_address", - "type": { - "displayName": ["Option"], - "type": 13 - } - }, - { - "docs": [], - "indexed": true, - "name": "new_address", - "type": { - "displayName": ["AccountId"], - "type": 9 - } - } - ], - "docs": [" Emitted whenever an address changes."], - "name": "SetAddress" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "name", - "type": { - "displayName": ["Hash"], - "type": 4 - } - }, - { - "docs": [], - "indexed": false, - "name": "from", - "type": { - "displayName": ["AccountId"], - "type": 9 - } - }, - { - "docs": [], - "indexed": true, - "name": "old_owner", - "type": { - "displayName": ["Option"], - "type": 13 - } - }, - { - "docs": [], - "indexed": true, - "name": "new_owner", - "type": { - "displayName": ["AccountId"], - "type": 9 - } - } - ], - "docs": [" Emitted whenver a name is being transferred."], - "name": "Transfer" - } - ], - "messages": [ - { - "args": [ - { - "name": "name", - "type": { - "displayName": ["Hash"], - "type": 4 - } - } - ], - "docs": [" Register specific name with caller as owner."], - "mutates": true, - "name": ["register"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 10 - }, - "selector": "0x7fb0aded" - }, - { - "args": [ - { - "name": "name", - "type": { - "displayName": ["Hash"], - "type": 4 - } - }, - { - "name": "new_address", - "type": { - "displayName": ["AccountId"], - "type": 9 - } - } - ], - "docs": [" Set address for specific name."], - "mutates": true, - "name": ["set_address"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 10 - }, - "selector": "0x220ac6e3" - }, - { - "args": [ - { - "name": "name", - "type": { - "displayName": ["Hash"], - "type": 4 - } - }, - { - "name": "to", - "type": { - "displayName": ["AccountId"], - "type": 9 - } - } - ], - "docs": [" Transfer owner to another address."], - "mutates": true, - "name": ["transfer"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 10 - }, - "selector": "0xfae3a09d" - }, - { - "args": [ - { - "name": "name", - "type": { - "displayName": ["Hash"], - "type": 4 - } - } - ], - "docs": [" Get address for specific name."], - "mutates": false, - "name": ["get_address"], - "payable": false, - "returnType": { - "displayName": ["AccountId"], - "type": 9 - }, - "selector": "0xb9ee7664" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0100000000000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0100000001000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "len": 4294967295, - "offset": "0x0200000000000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0200000001000000000000000000000000000000000000000000000000000000", - "ty": 8 - } - }, - "offset": "0x0100000001000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "name_to_address" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000001000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0300000001000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0300000002000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "len": 4294967295, - "offset": "0x0400000001000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0400000002000000000000000000000000000000000000000000000000000000", - "ty": 8 - } - }, - "offset": "0x0300000002000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "name_to_owner" - }, - { - "layout": { - "cell": { - "key": "0x0400000002000000000000000000000000000000000000000000000000000000", - "ty": 9 - } - }, - "name": "default_address" - } - ] - } - }, - "types": [ - { - "def": { - "composite": { - "fields": [ - { - "name": "last_vacant", - "type": 2 - }, - { - "name": "len", - "type": 2 - }, - { - "name": "len_entries", - "type": 2 - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "Header"] - }, - { - "def": { - "primitive": "u32" - } - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 7 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 4 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [4], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "type": 5 - } - ] - } - }, - "path": ["ink_env", "types", "Hash"] - }, - { - "def": { - "array": { - "len": 32, - "type": 6 - } - } - }, - { - "def": { - "primitive": "u8" - } - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "next", - "type": 2 - }, - { - "name": "prev", - "type": 2 - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "VacantEntry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 9 - }, - { - "name": "key_index", - "type": 2 - } - ] - } - }, - "params": [9], - "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "type": 5 - } - ] - } - }, - "path": ["ink_env", "types", "AccountId"] - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 11 - } - ], - "name": "Ok" - }, - { - "fields": [ - { - "type": 12 - } - ], - "name": "Err" - } - ] - } - }, - "params": [11, 12], - "path": ["Result"] - }, - { - "def": { - "tuple": [] - } - }, - { - "def": { - "variant": { - "variants": [ - { - "discriminant": 0, - "name": "NameAlreadyExists" - }, - { - "discriminant": 1, - "name": "CallerIsNotOwner" - } - ] - } - }, - "path": ["dns", "dns", "Error"] - }, - { - "def": { - "variant": { - "variants": [ - { - "name": "None" - }, - { - "fields": [ - { - "type": 9 - } - ], - "name": "Some" - } - ] - } - }, - "params": [9], - "path": ["Option"] - } - ] -} diff --git a/.api-contract/src/test/contracts/ink/v0/dns.wasm b/.api-contract/src/test/contracts/ink/v0/dns.wasm deleted file mode 100644 index 5a173a896218c942c811eb86d54d4c76d1b54c09..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47980 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"] - }, - "spec": { - "constructors": [ - { - "args": [ - { - "name": "initial_supply", - "type": { - "displayName": ["Balance"], - "type": 1 - } - } - ], - "docs": [], - "name": ["new"], - "selector": "0xd183512b" - } - ], - "docs": [], - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "from", - "type": { - "displayName": ["Option"], - "type": 13 - } - }, - { - "docs": [], - "indexed": true, - "name": "to", - "type": { - "displayName": ["Option"], - "type": 13 - } - }, - { - "docs": [], - "indexed": true, - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 1 - } - } - ], - "docs": [], - "name": "Transfer" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "docs": [], - "indexed": true, - "name": "spender", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "docs": [], - "indexed": true, - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 1 - } - } - ], - "docs": [], - "name": "Approval" - } - ], - "messages": [ - { - "args": [], - "docs": [], - "mutates": false, - "name": ["total_supply"], - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 1 - }, - "selector": "0xdcb736b5" - }, - { - "args": [ - { - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "docs": [], - "mutates": false, - "name": ["balance_of"], - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 1 - }, - "selector": "0x56e929b2" - }, - { - "args": [ - { - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "name": "spender", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "docs": [], - "mutates": false, - "name": ["allowance"], - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 1 - }, - "selector": "0xf3cfff66" - }, - { - "args": [ - { - "name": "to", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 1 - } - } - ], - "docs": [], - "mutates": true, - "name": ["transfer"], - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 12 - }, - "selector": "0xfae3a09d" - }, - { - "args": [ - { - "name": "spender", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 1 - } - } - ], - "docs": [], - "mutates": true, - "name": ["approve"], - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 12 - }, - "selector": "0x03d0e114" - }, - { - "args": [ - { - "name": "from", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "name": "to", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 1 - } - } - ], - "docs": [], - "mutates": true, - "name": ["transfer_from"], - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 12 - }, - "selector": "0xfcfb2ccd" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "total_supply" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0100000000000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0200000001000000000000000000000000000000000000000000000000000000", - "ty": 4 - } - }, - "len": 4294967295, - "offset": "0x0300000000000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0300000001000000000000000000000000000000000000000000000000000000", - "ty": 9 - } - }, - "offset": "0x0200000001000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "balances" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0300000001000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0400000001000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0400000002000000000000000000000000000000000000000000000000000000", - "ty": 10 - } - }, - "len": 4294967295, - "offset": "0x0500000001000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0500000002000000000000000000000000000000000000000000000000000000", - "ty": 9 - } - }, - "offset": "0x0400000002000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "allowances" - } - ] - } - }, - "types": [ - { - "def": { - "primitive": "u128" - } - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "last_vacant", - "type": 3 - }, - { - "name": "len", - "type": 3 - }, - { - "name": "len_entries", - "type": 3 - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "Header"] - }, - { - "def": { - "primitive": "u32" - } - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 5 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [5], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "type": 6 - } - ] - } - }, - "path": ["ink_env", "types", "AccountId"] - }, - { - "def": { - "array": { - "len": 32, - "type": 7 - } - } - }, - { - "def": { - "primitive": "u8" - } - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "next", - "type": 3 - }, - { - "name": "prev", - "type": 3 - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "VacantEntry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 1 - }, - { - "name": "key_index", - "type": 3 - } - ] - } - }, - "params": [1], - "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 11 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [11], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "tuple": [5, 5] - } - }, - { - "def": { - "primitive": "bool" - } - }, - { - "def": { - "variant": { - "variants": [ - { - "name": "None" - }, - { - "fields": [ - { - "type": 5 - } - ], - "name": "Some" - } - ] - } - }, - "params": [5], - "path": ["Option"] - } - ] -} diff --git a/.api-contract/src/test/contracts/ink/v0/erc20.wasm b/.api-contract/src/test/contracts/ink/v0/erc20.wasm deleted file mode 100644 index 4ce6dd2457ad3b0b0a370abee4d917ff33a152f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56449 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"] - }, - "spec": { - "constructors": [ - { - "args": [], - "docs": [" Creates a new ERC721 token contract."], - "name": ["new"], - "selector": "0xd183512b" - } - ], - "docs": [], - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "from", - "type": { - "displayName": ["Option"], - "type": 15 - } - }, - { - "docs": [], - "indexed": true, - "name": "to", - "type": { - "displayName": ["Option"], - "type": 15 - } - }, - { - "docs": [], - "indexed": true, - "name": "id", - "type": { - "displayName": ["TokenId"], - "type": 2 - } - } - ], - "docs": [" Event emitted when a token transfer occurs."], - "name": "Transfer" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "from", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - }, - { - "docs": [], - "indexed": true, - "name": "to", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - }, - { - "docs": [], - "indexed": true, - "name": "id", - "type": { - "displayName": ["TokenId"], - "type": 2 - } - } - ], - "docs": [" Event emited when a token approve occurs."], - "name": "Approval" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - }, - { - "docs": [], - "indexed": true, - "name": "operator", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - }, - { - "docs": [], - "indexed": false, - "name": "approved", - "type": { - "displayName": ["bool"], - "type": 14 - } - } - ], - "docs": [ - " Event emitted when an operator is enabled or disabled for an owner.", - " The operator can manage all NFTs of the owner." - ], - "name": "ApprovalForAll" - } - ], - "messages": [ - { - "args": [ - { - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - } - ], - "docs": [ - " Returns the balance of the owner.", - "", - " This represents the amount of unique tokens the owner has." - ], - "mutates": false, - "name": ["balance_of"], - "payable": false, - "returnType": { - "displayName": ["u32"], - "type": 2 - }, - "selector": "0x56e929b2" - }, - { - "args": [ - { - "name": "id", - "type": { - "displayName": ["TokenId"], - "type": 2 - } - } - ], - "docs": [" Returns the owner of the token."], - "mutates": false, - "name": ["owner_of"], - "payable": false, - "returnType": { - "displayName": ["Option"], - "type": 15 - }, - "selector": "0xf7860ada" - }, - { - "args": [ - { - "name": "id", - "type": { - "displayName": ["TokenId"], - "type": 2 - } - } - ], - "docs": [" Returns the approved account ID for this token if any."], - "mutates": false, - "name": ["get_approved"], - "payable": false, - "returnType": { - "displayName": ["Option"], - "type": 15 - }, - "selector": "0xb09dc487" - }, - { - "args": [ - { - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - }, - { - "name": "operator", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - } - ], - "docs": [" Returns `true` if the operator is approved by the owner."], - "mutates": false, - "name": ["is_approved_for_all"], - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 14 - }, - "selector": "0xc666bf03" - }, - { - "args": [ - { - "name": "to", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - }, - { - "name": "approved", - "type": { - "displayName": ["bool"], - "type": 14 - } - } - ], - "docs": [" Approves or disapproves the operator for all tokens of the caller."], - "mutates": true, - "name": ["set_approval_for_all"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 16 - }, - "selector": "0x51176f12" - }, - { - "args": [ - { - "name": "to", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - }, - { - "name": "id", - "type": { - "displayName": ["TokenId"], - "type": 2 - } - } - ], - "docs": [" Approves the account to transfer the specified token on behalf of the caller."], - "mutates": true, - "name": ["approve"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 16 - }, - "selector": "0x03d0e114" - }, - { - "args": [ - { - "name": "destination", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - }, - { - "name": "id", - "type": { - "displayName": ["TokenId"], - "type": 2 - } - } - ], - "docs": [" Transfers the token from the caller to the given destination."], - "mutates": true, - "name": ["transfer"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 16 - }, - "selector": "0xfae3a09d" - }, - { - "args": [ - { - "name": "from", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - }, - { - "name": "to", - "type": { - "displayName": ["AccountId"], - "type": 6 - } - }, - { - "name": "id", - "type": { - "displayName": ["TokenId"], - "type": 2 - } - } - ], - "docs": [" Transfer approved or owned token."], - "mutates": true, - "name": ["transfer_from"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 16 - }, - "selector": "0xfcfb2ccd" - }, - { - "args": [ - { - "name": "id", - "type": { - "displayName": ["TokenId"], - "type": 2 - } - } - ], - "docs": [" Creates a new token."], - "mutates": true, - "name": ["mint"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 16 - }, - "selector": "0xf8885eeb" - }, - { - "args": [ - { - "name": "id", - "type": { - "displayName": ["TokenId"], - "type": 2 - } - } - ], - "docs": [" Deletes an existing token. Only the owner can burn the token."], - "mutates": true, - "name": ["burn"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 16 - }, - "selector": "0x120bc564" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0100000000000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0100000001000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "len": 4294967295, - "offset": "0x0200000000000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0200000001000000000000000000000000000000000000000000000000000000", - "ty": 5 - } - }, - "offset": "0x0100000001000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "token_owner" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000001000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0300000001000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0300000002000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "len": 4294967295, - "offset": "0x0400000001000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0400000002000000000000000000000000000000000000000000000000000000", - "ty": 5 - } - }, - "offset": "0x0300000002000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "token_approvals" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0400000002000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0500000002000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0500000003000000000000000000000000000000000000000000000000000000", - "ty": 9 - } - }, - "len": 4294967295, - "offset": "0x0600000002000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0600000003000000000000000000000000000000000000000000000000000000", - "ty": 10 - } - }, - "offset": "0x0500000003000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "owned_tokens_count" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0600000003000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0700000003000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0700000004000000000000000000000000000000000000000000000000000000", - "ty": 11 - } - }, - "len": 4294967295, - "offset": "0x0800000003000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0800000004000000000000000000000000000000000000000000000000000000", - "ty": 13 - } - }, - "offset": "0x0700000004000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "operator_approvals" - } - ] - } - }, - "types": [ - { - "def": { - "composite": { - "fields": [ - { - "name": "last_vacant", - "type": 2 - }, - { - "name": "len", - "type": 2 - }, - { - "name": "len_entries", - "type": 2 - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "Header"] - }, - { - "def": { - "primitive": "u32" - } - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 4 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 2 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [2], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "next", - "type": 2 - }, - { - "name": "prev", - "type": 2 - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "VacantEntry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 6 - }, - { - "name": "key_index", - "type": 2 - } - ] - } - }, - "params": [6], - "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "type": 7 - } - ] - } - }, - "path": ["ink_env", "types", "AccountId"] - }, - { - "def": { - "array": { - "len": 32, - "type": 8 - } - } - }, - { - "def": { - "primitive": "u8" - } - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 4 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 6 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [6], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 2 - }, - { - "name": "key_index", - "type": 2 - } - ] - } - }, - "params": [2], - "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 4 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 12 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [12], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "tuple": [6, 6] - } - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 14 - }, - { - "name": "key_index", - "type": 2 - } - ] - } - }, - "params": [14], - "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] - }, - { - "def": { - "primitive": "bool" - } - }, - { - "def": { - "variant": { - "variants": [ - { - "name": "None" - }, - { - "fields": [ - { - "type": 6 - } - ], - "name": "Some" - } - ] - } - }, - "params": [6], - "path": ["Option"] - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 17 - } - ], - "name": "Ok" - }, - { - "fields": [ - { - "type": 18 - } - ], - "name": "Err" - } - ] - } - }, - "params": [17, 18], - "path": ["Result"] - }, - { - "def": { - "tuple": [] - } - }, - { - "def": { - "variant": { - "variants": [ - { - "discriminant": 0, - "name": "NotOwner" - }, - { - "discriminant": 1, - "name": "NotApproved" - }, - { - "discriminant": 2, - "name": "TokenExists" - }, - { - "discriminant": 3, - "name": "TokenNotFound" - }, - { - "discriminant": 4, - "name": "CannotInsert" - }, - { - "discriminant": 5, - "name": "CannotRemove" - }, - { - "discriminant": 6, - "name": "CannotFetchValue" - }, - { - "discriminant": 7, - "name": "NotAllowed" - } - ] - } - }, - "path": ["erc721", "erc721", "Error"] - } - ] -} diff --git a/.api-contract/src/test/contracts/ink/v0/erc721.wasm b/.api-contract/src/test/contracts/ink/v0/erc721.wasm deleted file mode 100644 index 8bbdf89b8a5b4145814e01dc61e3637b3ba02efa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74793 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 diff --git a/.api-contract/src/test/contracts/ink/v0/flipper.contract.json b/.api-contract/src/test/contracts/ink/v0/flipper.contract.json deleted file mode 100644 index 1c5ca65d..00000000 --- a/.api-contract/src/test/contracts/ink/v0/flipper.contract.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "metadataVersion": "0.1.0", - "source": { - "hash": "0x98086d5ccadd437459b812682380250f51a3034272cd1108e499acc0cafe9f42", - "language": "ink! 3.0.0-rc2", - "compiler": "rustc 1.49.0-nightly", - "wasm": "0x0061736d01000000012c0860027f7f0060037f7f7f0060017f017f60017f006000017f60037f7f7f017f60047f7f7f7f0060017f017e02880106057365616c30107365616c5f6765745f73746f726167650005057365616c30107365616c5f7365745f73746f726167650001057365616c30167365616c5f76616c75655f7472616e736665727265640000057365616c300a7365616c5f696e7075740000057365616c300b7365616c5f72657475726e000103656e76066d656d6f72790201021003121102020002000100070303060402040503010608017f01418080040b071102066465706c6f7900100463616c6c00120a8e1111c90101017f230041406a22012400200141206a200041186a290300370300200141186a200041106a290300370300200141106a200041086a2903003703002001420037032820012000290300370308200141086a1006200141808001360234200141a4800436023020014180800136023841a48004200141386a10002100200141306a20012802381007024002400240024020000e0401000002000b000b20012001290330370338200141386a100841ff017122004102470d01000b000b200141406b240020004100470b6001037e200029032021012000420137032020002001200029030022027c22013703002000200029030822032001200254ad7c22013703082000200029031022022001200354ad7c2201370310200020002903182001200254ad7c37031820000b4901037f230041106b22022400200028020421032000410036020420002802002104200041a48004360200200241086a200120042003100f20002002290308370200200241106a24000b4201027f230041106b22012400200141086a2000100b20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b8f0101017f230041406a22022400200241206a200141186a290300370300200241186a200141106a290300370300200241106a200141086a2903003703002002420037032820022001290300370308200241086a1006200241386a41808001360200200241a48004360234200241003602302002200241306a2000100a200228020020022802041001200241406b24000b9d0101037f230041106b22032400200141086a220428020021052004410036020020012802042104200141a48004360204200320023a000f2003410120042005100f024020032802044101460440200328020020032d000f3a000020014100360208200141a480043602042005450d0120012005417f6a3602082001200441016a3602042000410136020420002004360200200341106a24000f0b000b000b4801027f230041106b22022400200241003a000f024020012002410f6a4101101345044020022d000f21010c010b410121030b200020013a0001200020033a0000200241106a24000b890101027f230041106b22012400200142003c000c200142003e0208027f0340200241044604402001280208210241000c020b20012000100b20012d0000410171450440200141086a20026a20012d00013a00002001200241016a22023a000c0c010b0b200241ff01710440200141003a000c0b4100210241010b200141106a2400ad2002ad420886840b2201017f230041106b220124002001200036020c2001410c6a2802002d0000100e000b4601017f230041206b22012400200141186a41808001360200200141a4800436021420014100360210200141086a200141106a2000100a41002001280208200128020c1004000b2300410020014d0440200320014f044020002001360204200020023602000f0b000b000b15004100101141ff0171410274418080046a2802000bd80502057f017e230041306b220124000240027f024002402000044020014180800136020c200141a48004360208200141086a10142001200129030837031041012103200141106a100c2206a722054101710440410121020c030b200642ffffffffff1f832206422088a721002006421888a721042006421088a72102200541087641ff01712205411e470440200541c00147200041f3014772200241ff017141960147720d0241002102200441ff017141a501460d030c020b200041d60047200241ff017141dc0047720d014100210241002103200441ff017141a401470d010c020b20014180800136020c200141a48004360208200141086a101420012001290308370310410321020240200141106a100c2206a722044101710d00200642ffffffffff1f832206422088a721002006421888a721032006421088a7210202400240200441087641ff0171220441ea00470440200441d101472000412b4772200241ff017141830147720d02200341ff017141d100460d010c020b200041e20147200241ff0171413747720d0141022102200341ff01714112470d010c020b41032102200141106a100841ff017122004102460d01200041004721020c010b410321020b4106200241034622030d021a4106200220031b22024102460440200141286a4200370300200141206a4200370300200141186a4200370300200142003703104100200141106a100941080c030b200141286a4200370300200141206a4200370300200141186a4200370300200142003703102002410171200141106a100941080c020b41012102410121030b410620020d001a2003450d01200141286a4200370300200141206a4200370300200141186a420037030020014200370310200141106a1005410173200141106a100941080b200141306a24000f0b200141286a4200370300200141206a4200370300200141186a4200370300200142003703102001200141106a10053a0008200141086a100d000ba90102027f027e230041206b22002400200041808001360204200041a4800436020020004180800136021041a48004200041106a100220002000280210100720002000290300370308200041186a2201420037030020004200370310027f4101200041086a200041106a411010130d001a200129030021022000290310210341000b200220038450457245044041011011200041206a240041ff0171410274418080046a2802000f0b000b45000240200028020420024f047f2001200028020020021015200028020422012002490d012000200120026b3602042000200028020020026a36020041000541010b0f0b000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10032000200128020c1007200141106a24000b2c01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b1a0b0b250100418080040b1d0100000002000000030000000400000005000000060000000700000008" - }, - "contract": { - "name": "flipper", - "version": "3.0.0-rc2", - "authors": ["Parity Technologies "] - }, - "spec": { - "constructors": [ - { - "args": [ - { - "name": "init_value", - "type": { - "displayName": ["bool"], - "type": 1 - } - } - ], - "docs": [" Creates a new flipper smart contract initialized with the given value."], - "name": ["new"], - "selector": "0xd183512b" - }, - { - "args": [], - "docs": [" Creates a new flipper smart contract initialized to `false`."], - "name": ["default"], - "selector": "0x6a3712e2" - } - ], - "docs": [], - "events": [], - "messages": [ - { - "args": [], - "docs": [" Flips the current value of the Flipper's bool."], - "mutates": true, - "name": ["flip"], - "payable": false, - "returnType": null, - "selector": "0xc096a5f3" - }, - { - "args": [], - "docs": [" Returns the current value of the Flipper's bool."], - "mutates": false, - "name": ["get"], - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 1 - }, - "selector": "0x1e5ca456" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "value" - } - ] - } - }, - "types": [ - { - "def": { - "primitive": "bool" - } - } - ] -} diff --git a/.api-contract/src/test/contracts/ink/v0/flipper.json b/.api-contract/src/test/contracts/ink/v0/flipper.json deleted file mode 100644 index 46f0c1d5..00000000 --- a/.api-contract/src/test/contracts/ink/v0/flipper.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "metadataVersion": "0.1.0", - "source": { - "hash": "0xb6b5fa9791b27da76f1046de45d57bb835a8dfc44f21b223d8d6bb88e5eb5141", - "language": "ink! 3.0.0-rc1", - "compiler": "rustc 1.48.0-nightly" - }, - "contract": { - "name": "flipper", - "version": "3.0.0-rc1", - "authors": ["Parity Technologies "] - }, - "spec": { - "constructors": [ - { - "args": [ - { - "name": "init_value", - "type": { - "displayName": ["bool"], - "type": 1 - } - } - ], - "docs": [" Creates a new flipper smart contract initialized with the given value."], - "name": ["new"], - "selector": "0xd183512b" - }, - { - "args": [], - "docs": [" Creates a new flipper smart contract initialized to `false`."], - "name": ["default"], - "selector": "0x6a3712e2" - } - ], - "docs": [], - "events": [], - "messages": [ - { - "args": [], - "docs": [" Flips the current value of the Flipper's bool."], - "mutates": true, - "name": ["flip"], - "payable": false, - "returnType": null, - "selector": "0xc096a5f3" - }, - { - "args": [], - "docs": [" Returns the current value of the Flipper's bool."], - "mutates": false, - "name": ["get"], - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 1 - }, - "selector": "0x1e5ca456" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "value" - } - ] - } - }, - "types": [ - { - "def": { - "primitive": "bool" - } - } - ] -} diff --git a/.api-contract/src/test/contracts/ink/v0/flipper.wasm b/.api-contract/src/test/contracts/ink/v0/flipper.wasm deleted file mode 100644 index 5b43da17109189ac854e0b5c48bbe11ee28e8f80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19085 zcmeH}zi(Vc5XWbC-~EW+UAzhT;n*SCJ5o4`EFB`Utu%NeVhcq`AkoJbIU>%E6Q7+( zkx;QO8T&UO$*sAwk9y|-`P?(BCyGds_+wg140 zh`Zk243o*kP4p(4eln3w$7kVPHXC?Lo4ASp$~D7q_et}?@WI3JQ}29i><_ng29ejh z_lE~}_YWS9x9$%`PQKVb@xoOvF6fFUTRV@3cMrx}yZfIG$K&BW@zv`Yef`<)qsIqR zQ>mu$@Zj-yS6o<_55b3`fC%5fKi@1`p(Tx?D5Pk(N6xus8*${r!=h}R@y&a~M>`Ln z%7x;St(_g2oB8SN{I8fac}wyO+3vfml3Z?&^4us1F4uyrgxVBoim#a3G_{XRw=j7z zxg@%*t)61D$MuJYZrR_!;Q3*(><3fJD%Qh-$JJ33ojDjKx9C@6%db`clbkM)Brl~% z3GeP&7_5ZVYE3);<@WlL{YKZtQ&Pqm&Ot0AL?T%>%1sxZQBmqa*e$mbQi34W*!Q3J zVZcN_w)+8g|MB-~Y*)tE_b`Uq7%SskJ#Qty8tvCM1?F>s+e|iDel~O;uvCbDdbuL1IBG4@L}0)5{$+ zy*DsG_=Dti0z&AJ7+CO9M6S~emCxM~ya0vVvtN)|BNcQ36M3>g)HARpe^X{t$Os%1 z8}Xc9^J^(!T6P;<;Ru%{nY}4=2q!GWdUfM=*Fj1nPey9TE)FAR2=$3uLUm%f5}qyN zc`dpRjQIGFP->?lqGaPm5YUx?+OVd=)Kd$5UKU=Gv4I3`xxKpqSToj<_PB$ zNfYE}0Vn=V%~2r;=sX<8i;O(`1NOWT6qmm@T!W`-pkld=ZY8(jzwS&&1x7XV$<>v9 zLVY})UC&b?4xv^WoU6K-Ii`z_3s(GjSAzxX?E+M}_ZSt^E+BZ6G==eL1 zwWKs*`A@gr4IR%ka_TRFzJ_w;_&KJco_i>LG=XaR&wS76|0Ryl3rBHKod%%FOLmt! z0A+*+2JwefQM^16#TPpED(xj?_*&+56z*{VE7V_2I!pN;#ae~)8^giG3^|Y=NAaka zv-FY44e-TD!uvAwD-v>8@B1#2keloS3s8o>j{x%Gh%JhvRE=^Q3+NTqSHI#dqTqC| zQZx7Z>v+)irb{6jxyKI!6{Z#I|6K_d&AlRl)x~fd+MwdBez0CUfO>6q`?VV8exP5w z@<;p?F!9e&>NuC8A3$x)Cq6(@wd%-*2*!}XbA^K)V~c~j!SmbScNI8MaMh9FS>~!7 z<0Tv)AYil8(}L2$>Ig2`~rUT z*}$)fUkkrBe)^B8D3Pb>v)zq=5ikNqzz7%tBVYuKfDtePM!*Od0V7}pjDQg^0!F|H z7y%<-1dM"] - }, - "spec": { - "constructors": [ - { - "args": [ - { - "name": "init_value", - "type": { - "displayName": ["i32"], - "type": 1 - } - } - ], - "docs": [], - "name": ["new"], - "selector": "0xd183512b" - }, - { - "args": [], - "docs": [], - "name": ["default"], - "selector": "0x6a3712e2" - } - ], - "docs": [], - "events": [], - "messages": [ - { - "args": [ - { - "name": "by", - "type": { - "displayName": ["i32"], - "type": 1 - } - } - ], - "docs": [], - "mutates": true, - "name": ["inc"], - "payable": false, - "returnType": null, - "selector": "0x2fb8d143" - }, - { - "args": [], - "docs": [], - "mutates": false, - "name": ["get"], - "payable": false, - "returnType": { - "displayName": ["i32"], - "type": 1 - }, - "selector": "0x1e5ca456" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "value" - } - ] - } - }, - "types": [ - { - "def": { - "primitive": "i32" - } - } - ] -} diff --git a/.api-contract/src/test/contracts/ink/v0/incrementer.wasm b/.api-contract/src/test/contracts/ink/v0/incrementer.wasm deleted file mode 100644 index b059a6937009eb3ef05d6a6aceedd2daea815f2c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19056 zcmeH}&2C#o6vxkeT-)^8&9w9*NeddAE?iX+K~zrE4V?B9-yL824U?vCNO~??19MKINu4S!R#EUe?_|w2qCipjo2Wxk=RkA?lZVkn z$;&!fQ)u_v2*?fa2kok`ZQ9ujPaKktf3|j-s4Y|LAXEL&$-=vSG_FSSR zUT*KB3n!q>V&65(fdF&Mo5s#{C4nMKMP0(+rm0&cA9_737}{>%bWNE|-<8k=#Mmgh z(OjDsK+CVM4~3alW;+mOGY@kXA~MY|#kmxLCZ3aR7Sc%%r@BN-0(^rv}% z(^Bi{VkqV~bVdS8sT(J#NyW2uVL)2vx)7O$px3QJkg|tS1 zVrCO79A1(I(q)u_vpH5?;Lu4Z45#UNvU{wB70fNaXqngr9pUN0D^}rXGJROJB8$l|PUxLQ1kjve#;(Y6U+Bn+EDehE`c>#J(wo<4 ze>Us~!+s7=`Z@Pqmj5J_LmxM(i(QgyeT(g&mgk}9^7QA)zhbg!lstnH)U7Q4g>t48 z9+VQ)$d`7FXlQ+QPuTkp_x_ODKRRL>+dj+v#=&f7ZQBJ-X|iGFVrS-Jk&^-`44Z2g z*LbXJEywc-&kp_$5Sxhf z%eYIDyVwzI(uLNjjd1I%P4{$*K1t`uAibB6wzL1A^->z0SDUDRWl;r(f^l? zkPT;cXQyU4RE%ts$P4*|{AjG5+NZd`aB7A3SDhP&?yN=w4LPy$Lo2`B+2 zpahhF5>Nt4KnW-TC7=Y9fD%vwNNt4KnW-TC7=Y9fD%vwN"] - }, - "spec": { - "constructors": [ - { - "args": [ - { - "name": "requirement", - "type": { - "displayName": ["u32"], - "type": 2 - } - }, - { - "name": "owners", - "type": { - "displayName": ["Vec"], - "type": 20 - } - } - ], - "docs": [ - " The only constructor of the contract.", - "", - " A list of owners must be supplied and a number of how many of them must", - " confirm a transaction. Duplicate owners are silently dropped.", - "", - " # Panics", - "", - " If `requirement` violates our invariant." - ], - "name": ["new"], - "selector": "0xd183512b" - } - ], - "docs": [], - "events": [ - { - "args": [ - { - "docs": [" The transaction that was confirmed."], - "indexed": true, - "name": "transaction", - "type": { - "displayName": ["TransactionId"], - "type": 2 - } - }, - { - "docs": [" The owner that sent the confirmation."], - "indexed": true, - "name": "from", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "docs": [" The confirmation status after this confirmation was applied."], - "indexed": true, - "name": "status", - "type": { - "displayName": ["ConfirmationStatus"], - "type": 22 - } - } - ], - "docs": [" Emitted when an owner confirms a transaction."], - "name": "Confirmation" - }, - { - "args": [ - { - "docs": [" The transaction that was revoked."], - "indexed": true, - "name": "transaction", - "type": { - "displayName": ["TransactionId"], - "type": 2 - } - }, - { - "docs": [" The owner that sent the revokation."], - "indexed": true, - "name": "from", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "docs": [" Emitted when an owner revoked a confirmation."], - "name": "Revokation" - }, - { - "args": [ - { - "docs": [" The transaction that was submitted."], - "indexed": true, - "name": "transaction", - "type": { - "displayName": ["TransactionId"], - "type": 2 - } - } - ], - "docs": [" Emitted when an owner submits a transaction."], - "name": "Submission" - }, - { - "args": [ - { - "docs": [" The transaction that was canceled."], - "indexed": true, - "name": "transaction", - "type": { - "displayName": ["TransactionId"], - "type": 2 - } - } - ], - "docs": [" Emitted when a transaction was canceled."], - "name": "Cancelation" - }, - { - "args": [ - { - "docs": [" The transaction that was executed."], - "indexed": true, - "name": "transaction", - "type": { - "displayName": ["TransactionId"], - "type": 2 - } - }, - { - "docs": [ - " Indicates whether the transaction executed successfully. If so the `Ok` value holds", - " the output in bytes. The Option is `None` when the transaction was executed through", - " `invoke_transaction` rather than `evaluate_transaction`." - ], - "indexed": true, - "name": "result", - "type": { - "displayName": ["Result"], - "type": 25 - } - } - ], - "docs": [" Emitted when a transaction was executed."], - "name": "Execution" - }, - { - "args": [ - { - "docs": [" The owner that was added."], - "indexed": true, - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "docs": [" Emitted when an owner is added to the wallet."], - "name": "OwnerAddition" - }, - { - "args": [ - { - "docs": [" The owner that was removed."], - "indexed": true, - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "docs": [" Emitted when an owner is removed from the wallet."], - "name": "OwnerRemoval" - }, - { - "args": [ - { - "docs": [" The new requirement value."], - "indexed": false, - "name": "new_requirement", - "type": { - "displayName": ["u32"], - "type": 2 - } - } - ], - "docs": [" Emitted when the requirement changed."], - "name": "RequirementChange" - } - ], - "messages": [ - { - "args": [ - { - "name": "new_owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "docs": [ - " Add a new owner to the contract.", - "", - " Only callable by the wallet itself.", - "", - " # Panics", - "", - " If the owner already exists.", - "", - " # Examples", - "", - " Since this message must be send by the wallet itself it has to be build as a", - " `Transaction` and dispatched through `submit_transaction` + `invoke_transaction`:", - " ```no_run", - " use ink_env::{DefaultEnvironment as Env, AccountId, call::{CallParams, Selector}, test::CallData};", - " use multisig_plain::{Transaction, ConfirmationStatus};", - "", - " // address of an existing MultiSigPlain contract", - " let wallet_id: AccountId = [7u8; 32].into();", - "", - " // first create the transaction that adds `alice` through `add_owner`", - " let alice: AccountId = [1u8; 32].into();", - " let mut call = CallData::new(Selector::new([166, 229, 27, 154])); // add_owner", - " call.push_arg(&alice);", - " let transaction = Transaction {", - " callee: wallet_id,", - " selector: call.selector().to_bytes(),", - " input: call.params().to_owned(),", - " transferred_value: 0,", - " gas_limit: 0", - " };", - "", - " // submit the transaction for confirmation", - " let mut submit = CallParams::::eval(", - " wallet_id,", - " Selector::new([86, 244, 13, 223]) // submit_transaction", - " );", - " let (id, _): (u32, ConfirmationStatus) = submit.push_arg(&transaction)", - " .fire()", - " .expect(\"submit_transaction won't panic.\");", - "", - " // wait until all required owners have confirmed and then execute the transaction", - " let mut invoke = CallParams::::invoke(", - " wallet_id,", - " Selector::new([185, 50, 225, 236]) // invoke_transaction", - " );", - " invoke.push_arg(&id).fire();", - " ```" - ], - "mutates": true, - "name": ["add_owner"], - "payable": false, - "returnType": null, - "selector": "0xf3fcef36" - }, - { - "args": [ - { - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "docs": [ - " Remove an owner from the contract.", - "", - " Only callable by the wallet itself. If by doing this the amount of owners", - " would be smaller than the requirement it is adjusted to be exactly the", - " number of owners.", - "", - " # Panics", - "", - " If `owner` is no owner of the wallet." - ], - "mutates": true, - "name": ["remove_owner"], - "payable": false, - "returnType": null, - "selector": "0xe397f829" - }, - { - "args": [ - { - "name": "old_owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "name": "new_owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "docs": [ - " Replace an owner from the contract with a new one.", - "", - " Only callable by the wallet itself.", - "", - " # Panics", - "", - " If `old_owner` is no owner or if `new_owner` already is one." - ], - "mutates": true, - "name": ["replace_owner"], - "payable": false, - "returnType": null, - "selector": "0xab4bc64a" - }, - { - "args": [ - { - "name": "new_requirement", - "type": { - "displayName": ["u32"], - "type": 2 - } - } - ], - "docs": [ - " Change the requirement to a new value.", - "", - " Only callable by the wallet itself.", - "", - " # Panics", - "", - " If the `new_requirement` violates our invariant." - ], - "mutates": true, - "name": ["change_requirement"], - "payable": false, - "returnType": null, - "selector": "0x7347595d" - }, - { - "args": [ - { - "name": "transaction", - "type": { - "displayName": ["Transaction"], - "type": 14 - } - } - ], - "docs": [ - " Add a new transaction candiate to the contract.", - "", - " This also confirms the transaction for the caller. This can be called by any owner." - ], - "mutates": true, - "name": ["submit_transaction"], - "payable": false, - "returnType": { - "displayName": [], - "type": 21 - }, - "selector": "0x349db9e8" - }, - { - "args": [ - { - "name": "trans_id", - "type": { - "displayName": ["TransactionId"], - "type": 2 - } - } - ], - "docs": [ - " Remove a transaction from the contract.", - " Only callable by the wallet itself.", - "", - " # Panics", - "", - " If `trans_id` is no valid transaction id." - ], - "mutates": true, - "name": ["cancel_transaction"], - "payable": false, - "returnType": null, - "selector": "0xd31b7656" - }, - { - "args": [ - { - "name": "trans_id", - "type": { - "displayName": ["TransactionId"], - "type": 2 - } - } - ], - "docs": [ - " Confirm a transaction for the sender that was submitted by any owner.", - "", - " This can be called by any owner.", - "", - " # Panics", - "", - " If `trans_id` is no valid transaction id." - ], - "mutates": true, - "name": ["confirm_transaction"], - "payable": false, - "returnType": { - "displayName": ["ConfirmationStatus"], - "type": 22 - }, - "selector": "0xea923d30" - }, - { - "args": [ - { - "name": "trans_id", - "type": { - "displayName": ["TransactionId"], - "type": 2 - } - } - ], - "docs": [ - " Revoke the senders confirmation.", - "", - " This can be called by any owner.", - "", - " # Panics", - "", - " If `trans_id` is no valid transaction id." - ], - "mutates": true, - "name": ["revoke_confirmation"], - "payable": false, - "returnType": null, - "selector": "0x13ee3e97" - }, - { - "args": [ - { - "name": "trans_id", - "type": { - "displayName": ["TransactionId"], - "type": 2 - } - } - ], - "docs": [ - " Invoke a confirmed execution without getting its output.", - "", - " Its return value indicates whether the called transaction was successful.", - " This can be called by anyone." - ], - "mutates": true, - "name": ["invoke_transaction"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 23 - }, - "selector": "0x6131abbb" - }, - { - "args": [ - { - "name": "trans_id", - "type": { - "displayName": ["TransactionId"], - "type": 2 - } - } - ], - "docs": [ - " Evaluate a confirmed execution and return its output as bytes.", - "", - " Its return value indicates whether the called transaction was successful and contains", - " its output when sucesful.", - " This can be called by anyone." - ], - "mutates": true, - "name": ["eval_transaction"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 24 - }, - "selector": "0xe667c7ac" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0100000000000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0100000001000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "len": 4294967295, - "offset": "0x0200000000000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0200000001000000000000000000000000000000000000000000000000000000", - "ty": 9 - } - }, - "offset": "0x0100000001000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "confirmations" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000001000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0300000001000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0300000002000000000000000000000000000000000000000000000000000000", - "ty": 11 - } - }, - "len": 4294967295, - "offset": "0x0400000001000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0400000002000000000000000000000000000000000000000000000000000000", - "ty": 12 - } - }, - "offset": "0x0300000002000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "confirmation_count" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0400000002000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0500000002000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0500000003000000000000000000000000000000000000000000000000000000", - "ty": 13 - } - }, - "len": 4294967295, - "offset": "0x0600000002000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "transactions" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0500000003000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0500000004000000000000000000000000000000000000000000000000000000", - "ty": 5 - } - }, - "len": 4294967295, - "offset": "0x0600000003000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "owners" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0500000004000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0600000004000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0600000005000000000000000000000000000000000000000000000000000000", - "ty": 19 - } - }, - "len": 4294967295, - "offset": "0x0700000004000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0700000005000000000000000000000000000000000000000000000000000000", - "ty": 9 - } - }, - "offset": "0x0600000005000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "is_owner" - }, - { - "layout": { - "cell": { - "key": "0x0700000005000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "requirement" - } - ] - } - }, - "types": [ - { - "def": { - "composite": { - "fields": [ - { - "name": "last_vacant", - "type": 2 - }, - { - "name": "len", - "type": 2 - }, - { - "name": "len_entries", - "type": 2 - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "Header"] - }, - { - "def": { - "primitive": "u32" - } - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 4 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [4], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "tuple": [2, 5] - } - }, - { - "def": { - "composite": { - "fields": [ - { - "type": 6 - } - ] - } - }, - "path": ["ink_env", "types", "AccountId"] - }, - { - "def": { - "array": { - "len": 32, - "type": 7 - } - } - }, - { - "def": { - "primitive": "u8" - } - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "next", - "type": 2 - }, - { - "name": "prev", - "type": 2 - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "VacantEntry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 10 - }, - { - "name": "key_index", - "type": 2 - } - ] - } - }, - "params": [10], - "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] - }, - { - "def": { - "tuple": [] - } - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 2 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [2], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 2 - }, - { - "name": "key_index", - "type": 2 - } - ] - } - }, - "params": [2], - "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 14 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [14], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "callee", - "type": 5 - }, - { - "name": "selector", - "type": 15 - }, - { - "name": "input", - "type": 16 - }, - { - "name": "transferred_value", - "type": 17 - }, - { - "name": "gas_limit", - "type": 18 - } - ] - } - }, - "path": ["multisig_plain", "multisig_plain", "Transaction"] - }, - { - "def": { - "array": { - "len": 4, - "type": 7 - } - } - }, - { - "def": { - "sequence": { - "type": 7 - } - } - }, - { - "def": { - "primitive": "u128" - } - }, - { - "def": { - "primitive": "u64" - } - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 5 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [5], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "sequence": { - "type": 5 - } - } - }, - { - "def": { - "tuple": [2, 22] - } - }, - { - "def": { - "variant": { - "variants": [ - { - "name": "Confirmed" - }, - { - "fields": [ - { - "type": 2 - } - ], - "name": "ConfirmationsNeeded" - } - ] - } - }, - "path": ["multisig_plain", "multisig_plain", "ConfirmationStatus"] - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 10 - } - ], - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "name": "Err" - } - ] - } - }, - "params": [10, 10], - "path": ["Result"] - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 16 - } - ], - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "name": "Err" - } - ] - } - }, - "params": [16, 10], - "path": ["Result"] - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 26 - } - ], - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "name": "Err" - } - ] - } - }, - "params": [26, 10], - "path": ["Result"] - }, - { - "def": { - "variant": { - "variants": [ - { - "name": "None" - }, - { - "fields": [ - { - "type": 16 - } - ], - "name": "Some" - } - ] - } - }, - "params": [16], - "path": ["Option"] - } - ] -} diff --git a/.api-contract/src/test/contracts/ink/v0/multisig_plain.wasm b/.api-contract/src/test/contracts/ink/v0/multisig_plain.wasm deleted file mode 100644 index 74341e847e43b43d59b09ad3b4449f6dd5d7664c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 93026 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 diff --git a/.api-contract/src/test/contracts/ink/v0/trait-flipper.json b/.api-contract/src/test/contracts/ink/v0/trait-flipper.json deleted file mode 100644 index 9e40d2a7..00000000 --- a/.api-contract/src/test/contracts/ink/v0/trait-flipper.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "metadataVersion": "0.1.0", - "source": { - "hash": "0x568432b99f4ebd39ec03c2caaf69992b248999cc857326174b220b5587c3515f", - "language": "ink! 3.0.0-rc1", - "compiler": "rustc 1.48.0-nightly" - }, - "contract": { - "name": "flipper", - "version": "3.0.0-rc1", - "authors": ["Parity Technologies "] - }, - "spec": { - "constructors": [ - { - "args": [], - "docs": [" Creates a new flipper smart contract initialized to `false`."], - "name": ["default"], - "selector": "0x6a3712e2" - }, - { - "args": [ - { - "name": "init_value", - "type": { - "displayName": ["bool"], - "type": 1 - } - } - ], - "docs": [], - "name": ["Flip", "new"], - "selector": "0x818482e7" - } - ], - "docs": [], - "events": [], - "messages": [ - { - "args": [], - "docs": [], - "mutates": true, - "name": ["Flip", "flip"], - "payable": false, - "returnType": null, - "selector": "0xad931d5f" - }, - { - "args": [], - "docs": [], - "mutates": false, - "name": ["Flip", "get"], - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 1 - }, - "selector": "0x6b3549bc" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "value" - } - ] - } - }, - "types": [ - { - "def": { - "primitive": "bool" - } - } - ] -} diff --git a/.api-contract/src/test/contracts/ink/v0/trait-flipper.wasm b/.api-contract/src/test/contracts/ink/v0/trait-flipper.wasm deleted file mode 100644 index 53720c421777c8584ad57470718630166737078a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19050 zcmeH}&ud*p6vxk*x$j3a?={ofA8FFc+-Dal^5BV@7m8q}&;%)hg8L-2&*Dp(HZN(R zAbnA~a4EQO<<4!F?z(X6A0a|Fg8mWuJ?Gy1q6oTjb5ibobI+VPbLMk?OlfoP0TU6w z-QMui>6EAXLmO^7r45#El3&_rU{++rQ}+!w{b=V&^TFuB!^u;}E;jZ?o7;mZ@Adnm z{q?>5hm+0wBchWNdnYEinz*DZo@{PE9woH}m5B{I5`&zD4& z82aUEO*{X^yFJQot;_KYg*YQRILjC(p-gLGgZ(q{D3x&R77u+&a7caZxi5PVKv6#1 zJrBA2?1c*3l`!@kguWKWN;p^R4gFlAaEHC%i(5S>doH@7^s@DmE98qx{8Y!LCKAJxq+b9OMzs|zqm3$Vev3!xxj z(%1JV0xPb`9uinS4y=k0STR}0T15z~q`{#`0y{|9Sp`uoA+VrT1@;3BG_cDUV68(q z;dn1WdmPokdjaCCe0?FanjUCMZDlv+)DCT zlzFWS1uRIuPqQ~k$qIL9EEaIjc~ zrvMzg4$?ls!Cl!vXchq4Czys|_z!<@@^M*UU+kH6qL4a}(>igrgQ(X%*Y}`~ul1^(el5r{ji>uR*L?q%q3BLEU$p zL{2o{N8?JB;xB};XyS2*u}r^&Ar|fbatvSkqhp9~>c2W3qAD`eWu1@fWI8ggF zl%Z1}&Wl?PX;-=V3ffK+OlO~K5muUC>$p<;UB(%%z;(bqYSfbG2;v&hqHZuBvRn~9 z`_-Q7f`4vG%`bqgQ|I&ISo#l+kyACwZ7dM0$hmq-exj7eZna&|xc&R3NKOpL>(MnxZ--%7IOT0 zN1TF9KZR3h#d4dV=g983|M2RQG)_q?blncxS@`LI;fMTh>N*pV!{hOY%?6$(o)(@q z9{rP01jOm^+kTCJ5ikNqzz7%tBVYuKfDtePM!*Od0V7}pjDQg^0!F|H7y%<-1dM"] - }, - "V1": { - "spec": { - "constructors": [ - { - "args": [ - { - "name": "init_value", - "type": { - "displayName": ["bool"], - "type": 0 - } - } - ], - "docs": ["Creates a new flipper smart contract initialized with the given value."], - "name": ["new"], - "selector": "0x9bae9d5e" - }, - { - "args": [], - "docs": ["Creates a new flipper smart contract initialized to `false`."], - "name": ["default"], - "selector": "0xed4b9d1b" - } - ], - "docs": [], - "events": [], - "messages": [ - { - "args": [], - "docs": [" Flips the current value of the Flipper's boolean."], - "mutates": true, - "name": ["flip"], - "payable": false, - "returnType": null, - "selector": "0x633aa551" - }, - { - "args": [], - "docs": [" Returns the current value of the Flipper's boolean."], - "mutates": false, - "name": ["get"], - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 0 - }, - "selector": "0x2f865bd9" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 0 - } - }, - "name": "value" - } - ] - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "bool" - } - } - } - ] - } -} diff --git a/.api-contract/src/test/contracts/ink/v1/index.ts b/.api-contract/src/test/contracts/ink/v1/index.ts deleted file mode 100644 index b20c8916..00000000 --- a/.api-contract/src/test/contracts/ink/v1/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; -// A complex contract example with traits. -export { default as psp22 } from './psp22_minter_pauser.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json b/.api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json deleted file mode 100644 index f5ab1afb..00000000 --- a/.api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json +++ /dev/null @@ -1,1487 +0,0 @@ -{ - "source": { - "hash": "0xf04668140e45f551ef324d9fea09e5adb7e8f70482ff1d216c6c4c5227a3d0ca", - "language": "ink! 3.0.0-rc6", - "compiler": "rustc 1.59.0-nightly", - "wasm": "0x0061736d01000000017e1360027f7f0060037f7f7f0060027f7f017f60047f7f7f7f0060037f7f7f017f60017f006000017f60017f017f60000060047f7f7e7e0060057f7f7f7f7f0060067f7f7f7f7e7e0060077f7f7f7f7e7e7f0060057f7f7f7e7e0060037f7f7e0060037e7e7f0060097f7f7e7f7f7f7f7f7f017f60027f7e017f60017f017e0281020b057365616c30127365616c5f6465706f7369745f6576656e740003057365616c30167365616c5f76616c75655f7472616e736665727265640000057365616c30097365616c5f63616c6c0010057365616c300b7365616c5f63616c6c65720000057365616c30147365616c5f686173685f626c616b65325f3235360001057365616c30107365616c5f7365745f73746f726167650001057365616c30127365616c5f636c6561725f73746f726167650005057365616c30107365616c5f6765745f73746f726167650004057365616c300a7365616c5f696e7075740000057365616c300b7365616c5f72657475726e000103656e76066d656d6f727902010210038c018a01040402050501030300000f01080708000005120000000000000505000d000005030b0c05010004020202020701010107000001090902010201020102000601020002000406010300000002010201020201020102000001070007000700000001000e0100010000010102000400001107000306040601030306040601030306040601030302000a0401020608017f01418080040b071102066465706c6f7900160463616c6c00180ad1f1028a010f0041034101200020012002100b1b0b6801017f230041306b22032400200341246a200241186a2900003702002003411c6a200241106a290000370200200341146a200241086a290000370200200320013602082003200229000037020c200041f8046a200341086a100c280200200341306a24004101460b960301047f230041b0016b22022400200241c8006a200141241091011a200241106a200041286a200241c8006a1057027f027f024020022802104101470440024020002903004201520d0020024198016a2203200041206a29030037030020024190016a2204200041186a29030037030020024188016a2205200041106a2903003703002002200029030837038001200241d0006a20024180016a200110692003200241e8006a2903003703002004200241e0006a2903003703002005200241d8006a29030037030020022002290350370380012002418080013602a401200241d484043602a0010240024020024180016a200241a0016a10490e0400010102010b200220022903a0013703a801200241086a200241a8016a104a2002280208450d030b000b41000c020b200241186a2802002002411c6a2802004102746a4190036a0c020b200228020c210141010b2103200241c8006a200241106a41047241341091011a410c4104104b220041013a00082000200136020420002003360200200241c8006a200010580b280200200241b0016a24000bdc0502057f027e230041a0016b22012400200141086a200041e0001091011a200141106a21030240200129030822074201520440200141f0006a220241808001360200200141d4840436026c20014100360268200141e8006a100e20014198016a220020022802003602002001200129036837039001200141e8006a20014190016a41988004100f200141e8006a41a48004411b2003101020002002280200360200200120012903683703900120014190016a41bf80044119200341216a10100c010b200141f0006a220241808001360200200141d4840436026c20014100360268200141e8006a100e20014198016a220020022802003602002001200129036837039001200141e8006a20014190016a41f08004100f200141e8006a41fc8004411c2003101120002002280200360200200120012903683703900120014190016a41988104411e200141306a10110b20014188016a2000280200360200200120012903900137038001230041206b22002400200041186a220420014180016a220241086a28020036020020002002290200220637031020004100360210200041086a200041106a2006a7101520002903082106200141e8006a220241086a2004280200360200200220002903103702002002200637020c200041206a240020014198016a200141f0006a28020022003602002001200129036837039001200141f8006a28020021042001280274210520012802940121022001200036026c200120023602680240027f20075004402000450d02200241003a0000200141013602702003200141e8006a1012200341216a200141e8006a1012200141d8006a0c010b2000450d01200241013a0000200141013602702003200141e8006a1013200141306a200141e8006a1013200141d0006a0b2200290300200041086a290300200141e8006a10142001200129036837029401200120014190016a2001280270101520052004200128020020012802041000200141a0016a24000f0b000b9a0101047f230041206b22012400200028020421042000419c8404360204200041086a22022802002103200241003602002001410336020c0240200320002802002202490d00200141003602182001200320026b3602142001200220046a3602102001410c6a200141106a105e2002200220012802186a22024b0d00200020033602082000200436020420002002360200200141206a24000f0b000be80201077f230041e0006b22032400200141086a2802002205200128020022044f04402003410036021020012802042106200341003602482003200520046b3602442003200420066a36024020022802002002280204200341406b1038200341406b20022802084115103720032003290340370214200341086a200341106a2003280248101520032802082104200328020c2102200341386a22054200370300200341306a22064200370300200341286a4200370300200342003703200240200241214f0440200341d8006a22074200370300200341d0006a22084200370300200341c8006a220942003703002003420037034020042002200341406b10042005200729030037030020062008290300370300200341286a2009290300370300200320032903403703200c010b200341206a200420021091011a0b2001200341206a1051200041086a200141086a28020036020020002001290200370200200341e0006a24000f0b000bc30201057f230041e0006b22042400200041086a2802002206200028020022054f04402004410036021020002802042107200441003602482004200620056b3602442004200520076a36024020012002200441406b10382003200441406b101220042004290340370214200441086a200441106a2004280248101520042802082102200428020c2101200441386a22034200370300200441306a22054200370300200441286a4200370300200442003703200240200141214f0440200441d8006a22064200370300200441d0006a22074200370300200441c8006a220842003703002004420037034020022001200441406b10042003200629030037030020052007290300370300200441286a2008290300370300200420042903403703200c010b200441206a200220011091011a0b2000200441206a1051200441e0006a24000f0b000bc30201057f230041e0006b22042400200041086a2802002206200028020022054f04402004410036021020002802042107200441003602482004200620056b3602442004200520076a36024020012002200441406b10382003200441406b101320042004290340370214200441086a200441106a2004280248101520042802082102200428020c2101200441386a22034200370300200441306a22054200370300200441286a4200370300200442003703200240200141214f0440200441d8006a22064200370300200441d0006a22074200370300200441c8006a220842003703002004420037034020022001200441406b10042003200629030037030020052007290300370300200441286a2008290300370300200420042903403703200c010b200441206a200220011091011a0b2000200441206a1051200441e0006a24000f0b000b230020002d000041014704402001410010460f0b200141011046200041016a200110130b08002000200110530b2a01017f230041106b2203240020032001370308200320003703002002200341101037200341106a24000b5201027f200141086a2203280200210420034100360200200128020421032001419c8404360204200220044b0440000b2001200420026b3602082001200220036a36020420002002360204200020033602000b11004100101741ff01714108470440000b0bf44002117f057e230041e00f6b22012400024002400240024002400240024002400240024020004504402001418080013602bc02200141d484043602b802200141b8026a101b200120012903b8023703a00441012100200141a0046a101c4281feffffff1f834280b6baede90b520d04200141e8016a200141a0046a101a20012802e8010d04200141f8016a290300211320012903f0012112200141900a6a200141a0046a101d20012802900a4101460d04200141e0036a2001419c0a6a2200280200360200200120012902940a3703d803200141900a6a200141a0046a101d20012802900a4101460d01200141c8046a2000280200360200200120012902940a3703c004200141e0016a200141a0046a101e4101210020012d00e0014101710d0420012d00e1012104200141b8036a200141e0036a280200360200200141e0026a200141c8046a280200360200200120012903d8033703b003200120012903c0043703d802410021000c040b2001418080013602bc02200141d484043602b802200141b8026a101b200120012903b802370380034101210020014180036a101c2212a722024101710d02201242ffffffffff1f832212422088a721032012421888a721052012421088a721060240024002400240024002400240200241087641ff0171220241e5006b0e03010905000b0240024002400240024002400240200241fc016b0e03010f08000b20024116460d04200241db01460d022002413d470440200241cd00460d06200241d400460d04200241f2004704402002418101460d0b2002419601460d03200241b201460d0a20024134470d1041002102200641ff0171412047200541ff017141db0047720d10200341e501460d0d0c100b41012102200641ff017141f10047200541ff017141b70147720d0f2003418201460d0c0c0f0b200641ff0171412647200541ff0171411b47720d0e41022102200341d401460d0b0c0e0b200641ff0171413c47200541ff017141f5004772200341d40147720d0d200141900a6a20014180036a101f20012d00900a4101460d0d200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141d0006a20014180036a101a2001290350a70d0c200141e0006a290300211220012903582113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410321020c0a0b200641ff017141d60147200541ff017141b5014772200341fa0047720d0c200141900a6a20014180036a101f20012d00900a4101460d0c200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141e8006a20014180036a101a2001290368a70d0b200141f8006a290300211220012903702113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410421020c090b200641ff0171412047200541ff017141f9014772200341f50147720d0b200141900a6a20014180036a101f20012d00900a4101460d0b200141d8046a200141a90a6a290000370300200141d0046a200141a10a6a290000370300200141c8046a200141990a6a290000370300200120012900910a3703c00420014180016a20014180036a101a2001280280010d0a20014190016a29030021122001290388012113200141900a6a20014180036a102020012802900a2204450d0a200141e0036a200141c8046a290300370300200141e8036a200141d0046a290300370300200141f0036a200141d8046a290300370300200141b0046a2012370300200120012903c0043703d803200120133703a804200120012902940a3703a004410521020c080b200641ff017141b30147200541ff017141c7014772200341ee0047720d0a200141900a6a20014180036a101f20012d00900a4101460d0a200141d8046a200141a90a6a290000370300200141d0046a200141a10a6a290000370300200141c8046a200141990a6a290000370300200120012900910a3703c004200141900a6a20014180036a101f20012d00900a4101460d092001419a026a20012d00930a3a0000200141e0026a200141a00a6a290300370300200141e8026a200141a80a6a290300370300200120012f00910a3b0198022001200141980a6a2903003703d802200141b00a6a2d0000210720012802940a210420014198016a20014180036a101a2001280298010d09200141a8016a290300211220012903a0012113200141900a6a20014180036a102020012802900a2210450d09200141e0036a200141c8046a290300370300200141e8036a200141d0046a290300370300200141f0036a200141d8046a29030037030020014182026a2001419a026a2d00003a0000200141a8046a200141e0026a290300370300200141b0046a200141e8026a290300370300200120012903c0043703d803200120012f0198023b018002200120012903d8023703a00420012902940a2116410621020c070b200641ff0171412d47200541ff017141f80147720d0941072102200341c201460d060c090b200641ff017141c70047200541ff017141d90147722003412147720d08200141900a6a20014180036a101f20012d00900a4101460d08200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a29000037030041082102200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141900a6a20014180036a101f20012d00900a4101460d0720014182026a20012d00930a3a0000200141a8046a200141a00a6a290300370300200141b0046a200141a80a6a290300370300200141e0036a2007290300370300200141e8036a2004290300370300200141f0036a2000290300370300200120012f00910a3b0180022001200141980a6a2903003703a004200120012903c0043703d803200141b00a6a2d0000210720012802940a21040c050b200641ff017141e80047200541ff0171413847722003412f47720d07200141900a6a20014180036a101f20012d00900a4101460d07200141f0036a200141a90a6a290000370300200141e8036a200141a10a6a29000037030041092102200141e0036a200141990a6a290000370300200120012900910a3703d8030c040b200641ff017141cb0147200541ff017141d7004772200341d50147720d06200141900a6a20014180036a101f20012d00900a4101460d06200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141b0016a20014180036a101a20012903b001a70d05200141c0016a290300211220012903b8012113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410a21020c030b200641ff0171410f47200541ff0171411b4772200341bd0147720d05200141900a6a20014180036a101f20012d00900a4101460d05200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141c8016a20014180036a101a20012903c801a70d04200141d8016a290300211220012903d0012113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410b21020c020b200641ff017141e00147200541ff017141c60147720d04410c210220034104460d010c040b200641ff017141e10047200541ff017141e60047720d03410d2102200341c900470d030b200141c8036a200141f0036a290300370300200141c0036a200141e8036a290300370300200141b8036a200141e0036a290300370300200141a2036a20014182026a2d00003a000020014188046a200141a8046a29030037030020014190046a200141b0046a290300370300200120012903d8033703b003200120012f0180023b01a003200120012903a0043703800441002100200221080c020b410121000c020b410121000b20000d01200141d0026a2200200141c8036a2205290300370300200141c8026a2202200141c0036a2206290300370300200141c0026a2203200141b8036a22092903003703004102210b200141b6026a200141a2036a2d00003a0000200141a0026a220c20014188046a220d290300370300200141a8026a220e20014190046a220f290300370300200120012903b0033703b802200120012f01a0033b01b40220012001290380043703980220014190026a2211200e29030037030020014188026a220a200c2903003703002001200129039802370380020240024002400240024002400240024002400240024002400240024002400240200841016b0e0d0102030405060708090a0b0c0d000b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a1021200141d8036a200141cc0f6a1022200141d8036a1023000b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a10212001200141d80f6a2d00003a00900a230041106b220024002000200141900a6a36020c2000410c6a2802002102230041206b22002400200041186a41808001360200200041d4840436021420004100360210200041086a200041106a200210602000280208200028020c105f000b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a1021200141d8036a200141c00f6a1022200141d8036a1023000b200a29030021122001290380022113200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021024020012d00dc0f450440200141c0046a1024200141900a6a4196e4ea6c200141c0046a100a220041ff01714103470440200141b0036a200010250c020b200141d8046a200141d0026a290300370300200141d0046a200141c8026a290300370300200141c8046a200141c0026a290300370300200120012903b8023703c004200141b0036a200141900a6a200141c0046a2013201210260c010b200141b0036a410010270b200141900a6a200141d8036a1028200141b0036a1029000b200a290300211320012903800220014198046a4200370300200f4200370300200d42003703002001420037038004200141900a6a20014180046a1021200141a0046a1024200141f0026a200141b8046a2208290300370300200141e8026a200141b0046a2204290300370300200141e0026a200141a8046a2207290300370300200120012903a0043703d802200520002903003703002006200229030037030020092003290300370300200120012903b8023703b003200141f0036a2008290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903a0043703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c0042001200141900a6a200141d8036a200141c0046a102a200129030022147c221520145422002000ad2013200141086a29030022127c7c221320125420122013511b0d0e20014180036a200141900a6a200141d8026a200141b0036a20152013102b20012802800322004106470440200141cc046a2001418c036a28020036020020012001290284033702c4040b200120003602c004200141900a6a20014180046a1028200141c0046a1029000b201129030021122001290388022113200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2005290300370300200141e8036a2006290300370300200141e0036a2009290300370300200120012903b0033703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c0042001200436028004200120012903800237028404200141a0046a200141900a6a200141d8036a200141c0046a2013201220014180046a102c0c0e0b200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2000290300370300200141e8036a2002290300370300200141e0036a2003290300370300200120012903b8023703d803200141d8046a2005290300370300200141d0046a2006290300370300200141c8046a2009290300370300200120012903b0033703c004200141106a200141900a6a200141d8036a200141c0046a102a200129031022152013542200200141186a290300221420125420122014511b450440200141f0036a2202200141d0026a2208290300370300200141e8036a2203200141c8026a2205290300370300200141e0036a2206200141c0026a2209290300370300200120012903b8023703d803200141cf046a200141a0026a290300370000200141d7046a200141a8026a2903003700002001200141b6026a2d00003a00c204200120012f01b4023b01c004200120043600c30420012001290398023700c704200120073a00df0420012016370284042001201036028004200141a0046a200141900a6a200141d8036a200141c0046a2013201220014180046a102c024020012802a00422044106460440200220082903003703002003200529030037030020062009290300370300200120012903b8023703d803200141d8046a200141c8036a290300370300200141d0046a200141c0036a290300370300200141c8046a200141b8036a290300370300200120012903b0033703c004201520137d2213201556201420127d2000ad7d221220145620122014511b0d0f200141a0046a200141900a6a200141d8036a200141c0046a20132012102b20012802a00422044106470d01200141063602c0040c0b0b0c090b0c080b200141023602c0040c080b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a102120012903900a21122001200141980a6a2903003703980a200120123703900a200141900a6a102d000b200141f0026a2000290300370300200141e8026a2002290300370300200141e0026a2003290300370300200141fa026a200141b6026a2d00003a0000200120012903b8023703d802200120012f01b4023b01f80220014198036a420037030020014190036a420037030020014188036a42003703002001420037038003200141900a6a20014180036a1021200141b0036a200141d8026a41231091011a200141f0036a2000290300370300200141e8036a2002290300370300200141e0036a2003290300370300200141fa036a200141d2036a2d00003a0000200120012903b8023703d803200120012f00d0033b01f803200141c0046a200141d8036a41231091011a20014198046a2000290300370300200f2002290300370300200d2003290300370300200120012903b80237038004200141af046a200c290300370000200141b7046a200e2903003700002001200141e2046a2d00003a00a204200120012f01e0043b01a004200120043600a30420012001290398023700a704200120073a00bf04200141206a200141900a6a20014180046a200141a0046a102a2001200141286a2903003703a803200120012903203703a003200141a0036a102d000b200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c004200141306a200141900a6a200141c0046a102e2001200141386a2903003703b803200120012903303703b003200141b0036a102d000b200a29030021122001290380022113200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2005290300370300200141e8036a2006290300370300200141e0036a2009290300370300200120012903b0033703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c004200141406b200141900a6a200141d8036a200141c0046a102a0240200129034022152013542200200141c8006a290300221420125420122014511b450440200141f0036a200141c8036a290300370300200141e8036a200141c0036a290300370300200141e0036a200141b8036a290300370300200120012903b0033703d803200141d8046a200141d0026a290300370300200141d0046a200141c8026a290300370300200141c8046a200141c0026a290300370300200120012903b8023703c004200141a0046a200141900a6a200141d8036a200141c0046a201520137d201420127d2000ad7d102b20012802a004220b4106460440200141063602c0040c020b200141cc046a200141ac046a280200360200200120012902a4043702c4040b2001200b3602c0040b0c0a0b200a29030021122001290380022113200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2005290300370300200141e8036a2006290300370300200141e0036a2009290300370300200120012903b0033703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c004200141a0046a200141900a6a200141d8036a200141c0046a20132012102b0c080b200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021200141c0046a10240240200141900a6a41e6dfa6e704200141c0046a100a220041ff01714103470440200141d8026a200010250c010b02400240024020012d00dc0f450440200141013a00dc0f200141c0046a10240c010b200141b0036a4100102720012802b00322004106470d010b410621000c010b200141e4026a200141bc036a280200360200200120012902b4033702dc020b200120003602d8020b0c090b200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021200141c0046a10240240200141900a6a41e6dfa6e704200141c0046a100a220041ff01714103470440200141d8026a200010250c010b02400240024020012d00dc0f0440200141003a00dc0f200141c0046a10240c010b200141b0036a4101102720012802b00322004106470d010b410621000c010b200141e4026a200141bc036a280200360200200120012902b4033702dc020b200120003602d8020b0c080b200141cc046a200141ac046a280200360200200120012902a4043702c404200120043602c0040b0c050b20000d0020014188046a200141b8036a2200280200220236020020014188036a200141e0026a22082802002203360200200120012903b003221437038004200120012903d802221537038003200141a8046a2002360200200141b40f6a4200370200200141880f6a4200370300200141fc0e6a4200370200200141d00e6a4200370300200141980a6a4200370300200141a00a6a4200370300200141e40c6a4200370200200141ac0c6a4200370200200141f00b6a4200370300200141bc0b6a4200370200200141840b6a4200370200200141c80a6a4200370300200141d80f6a41003a0000200141cc0f6a4100360200200141b80c6a4200370300200141800c6a4200370300200141f80b6a4100360200200141900b6a4200370300200141d80a6a4200370300200141d00a6a4100360200200120143703a00420082003360200200142003703900a200141003a00dc0f200141003602c00f200142003703c80b200120153703d802200141c80e6a4100360200200141c00e6a4200370300200141980e6a220242003703002001418c0e6a4200370200200141e00d6a4200370300200141d40d6a4200370200200141a80d6a4200370300200141a00d6a4100360200200141980d6a4200370300200142003703f00c200141b0036a1024200141f0036a200141c8036a2208290300370300200141e8036a200141c0036a2203290300370300200141e0036a2000290300370300200120012903b0033703d803200141900a6a4100200141d8036a100b450440200141dc046a2008290300370200200141d4046a2003290300370200200141cc046a2000290300370200200120012903b0033702c404200141003602c0042002200141c0046a102f0b200141c0046a1024200141900a6a4196e4ea6c200141c0046a103041ff01714103470d02200141c0046a1024200141900a6a41e6dfa6e704200141c0046a103041ff01714103470d02200141cc0f6a20012903d80237020041082100200141c80f6a200141a8046a280200360200200141d40f6a200141e0026a280200360200200120012903a0043703c00f200120043a00d80f200141c0046a1024200141d8036a200141900a6a200141c0046a20122013102620012802d8034106470d02200141c0046a200141900a6a41d0051091011a200141a80a6a4200370300200141a00a6a4200370300200141980a6a4200370300200142003703900a200141c0046a200141900a6a10280c010b410621000b200141e00f6a240020000f0b000b20012802a00422004106470440200141cc046a200141ac046a280200360200200120012902a4043702c4040b200120003602c0040b200141900a6a200141d8026a1028200141c0046a1029000b200141900a6a200141d8036a1028200141d8026a1029000b880101017f230041306b22002400200041808001360224200041d4840436022020004180800136022841d48404200041286a1001200041206a2000280228101920002000290320370328200041086a200041286a101a02402000290308a70d002000290310200041186a2903008450450d004101101741ff01714108470d00200041306a24000f0b000b3401017f230041106b22022400200241086a410020012000280200200028020410900120002002290308370200200241106a24000b5e02017f037e027e4201200128020422024110490d001a2001200241106b36020420012001280200220141106a360200200141086a29000021032001290000210442000b21052000200437030820002005370300200041106a20033703000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10082000200128020c1019200141106a24000b900102027f017e230041106b220124002001420037030841042102027f02400340200241084604402001410436020820012903082203a741044f0d02000b20012000101e20012d0000410171450440200141086a20026a20012d00013a0000200241016a21020c010b0b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b7d01027f230041206b22022400200241086a2001103a41012103024020022d00084101710d000240024020022d00090e020001020b41002103200041003602040c010b200241106a2001103b20022802102201450d00200041086a200229021437020020002001360204410021030b20002003360200200241206a24000b3801017f230041106b22022400200241086a2001103a20022d00082101200020022d00093a0001200020014101713a0000200241106a24000b8a0302067f017e230041406a22022400200241186a41047221042000027f024003402003412047044020022001101e20022d00004101710d02200320046a20022d00013a00002002200341016a22033602180c010b0b200241126a2201200241256a2d00003a00002002410e6a22032002412c6a2d00003a00002002410a6a2204200241336a2d00003a0000200220022f011c3b0114200220022d001e3a00162002200241236a2f00003b011020022002412a6a2f01003b010c2002200241316a2f00003b0108200241346a29020021082002412d6a2800002105200241266a2801002106200228001f2107200041036a20022d00163a0000200020022f01143b0001200041046a2007360000200041086a20022f01103b00002000410a6a20012d00003a00002000410b6a20063600002000410f6a20022f010c3b0000200041116a20032d00003a0000200041126a2005360000200041166a20022f01083b0000200041186a20042d00003a0000200041196a200837000041000c010b41010b3a0000200241406b24000b810302067f017e230041306b22022400200241186a2001103a024020022d00184101710d00024002400240024020022d0019220341037122054103470440200541016b0e020203010b200341ff017141044f0d04200241106a2001104a20022802100d042002280214220341ffffffff034b0d030c040b200341fc017141027621030c020b200220033a0025200241013a002420022001360220200241003b012c200241206a2002412c6a41021075220545044020022f012c21030b2005200341ffff037141ff014d720d02200341fcff037141027621030c010b200220033a0025200241013a0024200220013602202002410036022c200241206a2002412c6a410410750d01200228022c220341808004490d01200341027621030b200128020422052003490d00200241086a20034101103c200235020c2108200228020822042001280200220620031091012001200520036b3602042001200320066a360200450d0020002003ad4220862008843702040b20002004360200200241306a24000bfd0802027f057e230041e0006b22022400200241406b200141186a290300370300200241386a200141106a290300370300200241306a200141086a2903003703002002420037034820022001290300370328200241286a10612101200241808001360254200241d484043602500240024002402001200241d0006a10490d0020022002290350370358200241106a200241d8006a101a2002290310a70d00200241206a290300210420022903182105200041106a200241286a1062200041d0006a200241286a10632201290300370300200041e8006a200141186a290300370300200041e0006a200141106a290300370300200041d8006a200141086a290300370300200041f4006a4200370200200041c8006a420137030020004188016a200241286a10612201290300370300200041a0016a200141186a29030037030020004198016a200141106a29030037030020004190016a200141086a290300370300200041ac016a420037020020004180016a4201370300200041b8016a200241286a1062200041f8016a200241286a1063220129030037030020004190026a200141186a29030037030020004188026a200141106a29030037030020004180026a200141086a2903003703002000419c026a4200370200200041f0016a4201370300200041b0026a200241286a10612201290300370300200141086a2903002106200141106a2903002107200141186a29030021082000200437030820002005370300200041c8026a2008370300200041c0026a2007370300200041b8026a2006370300200041d4026a4200370200200041a8026a4201370300200041b0056a200241286a1064200041bc056a200241286a1064200041c8056a200241286a10653a0000200241286a1061200241808001360254200241d48404360250200241d0006a10490d0020022002290350370358200241086a200241d8006a103a20022d00084101710d0020022d000922030e020201000b000b410121030b200041e0026a200241286a1062200041a0036a200241286a10632201290300370300200041b8036a200141186a290300370300200041b0036a200141106a290300370300200041a8036a200141086a290300370300200041c4036a420037020020004198036a4201370300200041d8036a200241286a10612201290300370300200041f0036a200141186a290300370300200041e8036a200141106a290300370300200041e0036a200141086a290300370300200041fc036a4200370200200041d0036a420137030020004188046a200241286a1062200041c8046a200241286a10632201290300370300200041e0046a200141186a290300370300200041d8046a200141106a290300370300200041d0046a200141086a290300370300200041ec046a4200370200200041c0046a420137030020004180056a200241286a1061220129030037030020004198056a200141186a29030037030020004190056a200141106a29030037030020004188056a200141086a290300370300200020033a00cc05200041a4056a4200370200200041f8046a4201370300200241e0006a24000b2501017f20012802002202450440200041003602000f0b20002002200141086a28020010720b960201067f230041106b220124002001200036020c2001410c6a2802002100230041206b22022400200241186a41808001360200200241d4840436021420024100360210200241086a2106230041206b22012400200241106a220441086a2203280200210520034100360200200428020421032004419c8404360204200120053602142001200336021002400240027f20002802004504402005450d02200341003a000041010c010b2005450d01200341013a0000200141013602182000200141106a1052200128021421052001280210210320012802180b21002004200536020820042003360204200141086a20042000101520062001290308370300200141206a24000c010b000b2002280208200228020c105f000bf90101037f230041e0006b2201240020014180800136022c200141d4840436022820014180800136023041d48404200141306a1003200141286a2001280230101920012001290328370358200141306a200141d8006a101f20012d003022034101470440200141106a2001413a6a290100370300200141186a200141c2006a2901003703002001411f6a200141c9006a2900003700002001200129013237030820012d003121020b20034101460440000b200020023a000020002001290308370001200041096a200141106a290300370000200041116a200141186a290300370000200041186a2001411f6a290000370000200141e0006a24000b4e000240024002400240200141ff017141016b0e020102000b200041046a41f38104411110720c020b200041046a41e48104410f10720c010b200041046a41d38104411110720b200041003602000b840302077f037e230041e0006b22052400410321060240200020021035047f410305200541d0006a2206200241186a2200290000370300200541c8006a2207200241106a2208290000370300200541406b2209200241086a220a2900003703002005200229000037033820052001200541386a102e2005290300220c20037c220e200c54220b200bad200541086a290300220c20047c7c220d200c54200c200d511b0d0120062000290000370300200720082900003703002009200a29000037030020052002290000370338200141106a200541386a200e200d103d2001290300220c20037c220e200c5422062006ad200141086a290300220c20047c7c220d200c54200c200d511b0d012001200e3703002001200d370308200541003a0010200541d1006a200241186a290000370000200541c9006a200241106a290000370000200541c1006a200241086a290000370000200541013a003820052002290000370039200541106a200541386a20032004103e41060b360200200541e0006a24000f0b000b3101017f200041046a210202402001450440200241908204410910720c010b200241848204410c10720b200041003602000bd41f01087f230041b0016b22022400200241e0006a200141186a290300370300200241d8006a200141106a290300370300200241d0006a200141086a2903003703002002420037036820022001290300370348200241c8006a1061200241f8006a41808001360200200241d4840436027420024100360270200241406b200241f0006a20001036200228024020022802441005200041106a200241c8006a1066200241c8006a10632109200041f8006a2802004100200041f4006a28020022031b21072003454101742108200041f0006a2802002101034002400240200704400240024020080e03000103010b034020010440200141016b2101200328026021030c010b0b4101210841002105410021010b200741016b21072005210620032104034020042f015e20064d044020042802002203450d032001200141016a22014b0d0320042f015c2106200321040c010b0b200641016a22052006492103200145044020030d02200421030c030b20030d01200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0405200541016a2105200341e0006a21030c010b000b000b200241c8006a10612109200041b0016a2802004100200041ac016a28020022041b21072004454101742108200041a8016a280200210103400240200704400240024020080e03000105010b034020010440200141016b210120042802940321040c010b0b4101210841002103410021010b200741016b2107034020042f013220034d044020042802002205450d052001200141016a22014b0d0520042f01302103200521040c010b0b200341016a22062003492105200145044020050d04200421050c020b20050d03200420064102746a4194036a21054101210603402005280200210520012006460440410021060c0305200641016a210620054194036a21050c010b000b000b200041b8016a200241c8006a1066200241c8006a10632109200041a0026a28020041002000419c026a28020022031b2107200345410174210820004198026a280200210103400240200704400240024020080e03000107010b034020010440200141016b2101200328026021030c010b0b4101210841002105410021010b200741016b21072005210620032104034020042f015e20064d044020042802002203450d072001200141016a22014b0d0720042f015c2106200321040c010b0b200641016a22052006492103200145044020030d06200421030c020b20030d05200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b200241c8006a10612109200041d8026a2802004100200041d4026a28020022041b21072004454101742108200041d0026a280200210103400240200704400240024020080e03000109010b034020010440200141016b210120042802f40521040c010b0b4100210141012108410021030b200741016b2107034020042f013220034d044020042802002205450d092001200141016a22014b0d0920042f01302103200521040c010b0b200341016a22062003492105200145044020050d08200421050c020b20050d07200420064102746a41f4056a21054101210603402005280200210520012006460440410021060c0305200641016a2106200541f4056a21050c010b000b000b200041b0056a200241c8006a1067200041bc056a200241c8006a1067200041c8056a200241c8006a1068200241c8006a1061200241003602a001200242808001370274200241d48404360270200220002d00cc053a009001200241f0006a20024190016a41011037200220022903703702a401200241286a200241a0016a200228027810152002280228200228022c1005200041e0026a200241c8006a1066200241c8006a10632109200041c8036a2802004100200041c4036a28020022031b21072003454101742108200041c0036a280200210103400240200704400240024020080e0300010b010b034020010440200141016b2101200328026021030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f015e20064d044020042802002203450d0b2001200141016a22014b0d0b20042f015c2106200321040c010b0b200641016a22052006492103200145044020030d0a200421030c020b20030d09200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b200241c8006a1061210920004180046a2802004100200041fc036a28020022031b21072003454101742108200041f8036a280200210103400240200704400240024020080e0300010d010b034020010440200141016b2101200328026021030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f015e20064d044020042802002203450d0d2001200141016a22014b0d0d20042f015c2106200321040c010b0b200641016a22052006492103200145044020030d0c200421030c020b20030d0b200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b20004188046a200241c8006a1066200241c8006a10632109200041f0046a2802004100200041ec046a28020022031b21072003454101742108200041e8046a280200210103400240200704400240024020080e0300010f010b034020010440200141016b2101200328026021030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f015e20064d044020042802002203450d0f2001200141016a22014b0d0f20042f015c2106200321040c010b0b200641016a22052006492103200145044020030d0e200421030c020b20030d0d200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b200241c8006a10612109200041a8056a2802004100200041a4056a28020022031b21072003454101742108200041a0056a280200210103400240200704400240024020080e03000111010b034020010440200141016b210120032802c00321030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f01be0320064d044020042802002200450d112001200141016a22014b0d1120042f01bc032106200021040c010b0b200641016a22052006492100200145044020000d10200421030c020b20000d0f200420054102746a41c0036a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341c0036a21030c010b000b000b200241b0016a24000f0b200241f0006a20092004200641246c6a41046a1069200420064102746a4190036a28020022002d00082101200041013a0008024020014101710d0020002802004101470440200241f0006a10060c010b20024100360290012002428080013702a401200241d484043602a0012000280204200241a0016a106a200220022903a00137029401200241086a20024190016a20022802a8011015200241f0006a2002280208200228020c10050b410021010c000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d00282104200141013a0028024020044101710d00200128020022064102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a001200141046a210402402006410147044041d4840441003a0000200241013602a8012004280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a8012004200241a0016a106d0b200220022903a00137029401200241106a20024190016a20022802a8011015200241f0006a2002280210200228021410050b410021010c000b000b200241f0006a2009200420064102746a220141046a1048200141306a28020022012d000c2104200141013a000c024020044101710d0020012802004101470440200241f0006a10060c010b20024100360290012002428080013702a401200241d484043602a0012001280204200241a0016a106a200141086a280200200241a0016a106a200220022903a00137029401200241186a20024190016a20022802a8011015200241f0006a2002280218200228021c10050b410021010c000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d000c2104200141013a000c024020044101710d00200128020022044102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a00102402004410147044041d4840441003a0000200241013602a801200141046a280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a8012001280204200241a0016a106a0b200220022903a00137029401200241206a20024190016a20022802a8011015200241f0006a2002280220200228022410050b410021010c000b000b200241f0006a2009200420034106746a41346a106e200420034102746a41046a280200200241f0006a106f4100210120062103200521040c000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d00442104200141013a0044024020044101710d0020012d000022044102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a00102402004410147044041d4840441003a0000200241013602a801200141046a280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a801200141016a200241a0016a10700b200220022903a00137029401200241306a20024190016a20022802a8011015200241f0006a2002280230200228023410050b410021010c000b000b200241f0006a2009200420034105746a41346a1071200420034102746a41046a280200200241f0006a106f4100210120052104200621030c000b000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d00242104200141013a0024024020044101710d0020012d000022044102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a00102402004410147044041d4840441003a0000200241013602a801200141046a280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a801200141016a200241a0016a10130b200220022903a00137029401200241386a20024190016a20022802a8011015200241f0006a2002280238200228023c10050b410021010c000b000bbd0301077f230041106b220124002001200036020c2001410c6a2802002100230041206b22042400200441186a41808001360200200441d4840436021420044100360210200441086a2106230041206b22012400200441106a220541086a2202280200210320024100360200200528020421022005419c840436020420012003360214200120023602100240024002402000280200220741064604402003450d02200241003a0000200141013602180c010b2003450d01200241013a00002001410136021802400240024002400240024020070e06000102030405060b200341014d0d06200241003a000120014102360218200041046a200141106a10520c050b200341014d0d05200241013a0001200141023602180c040b200341014d0d04200241023a0001200141023602180c030b200341014d0d03200241033a0001200141023602180c020b200341014d0d02200241043a0001200141023602180c010b200341014d0d01200241053a000120014102360218200041046a200141106a10520b20052001290310370204200141086a20052001280218101520062001290308370300200141206a24000c010b000b2004280208200428020c105f000bbd0102017f027e230041406a22042400200441186a200241186a290000370300200441106a200241106a290000370300200441086a200241086a290000370300200441286a200341086a290000370300200441306a200341106a290000370300200441386a200341186a29000037030020042002290000370300200420032900003703202000200141a8026a200410322201290300420151047e200141106a290300210520012903080542000b37030020002005370308200441406b24000b930901067f230041d0026b220624002000027f4104200210350d001a4103200310350d001a200641206a200241186a290000370300200641186a200241106a290000370300200641106a200241086a290000370300200641306a200341086a290000370300200641386a200341106a290000370300200641406b200341186a29000037030020062002290000370308200620032900003703280240200141a8026a200641086a10322200290300420151044020002004370308200041003a0020200041106a20053703000c010b200641c8006a200641086a41c0001091011a0240024002402001027f024002400240200141e4016a2802002208200141e8016a280200470440200141f0016a220b200141e0016a2802002208103f2100200641013a00f001200641f0016a410172200641c8006a41c0001091011a200641a0016a2000200641f0016a104020062d00a00122004102462000410146720d062008200641a8016a280200220746410020062802a40122002008461b0d01200b200710412209450d0620092d00004101460d06200941046a210a20002007460d02200a2000360200200b200010412209450d0620092d00004101460d06200941086a210a0c030b20064188016a20014198026a200810420240200628028801410147044020064180026a2006419c016a280200360200200641f8016a20064194016a2902003703002006200629028c013703f00141c80041041033220041013a0000200041016a200641c8006a41c0001091011a200041003a0044200641f0016a200010431a0c010b20064190016a28020020064194016a2802004102746a41306a2802002100200641013a00f001200641f0016a410172200641c8006a41c0001091011a200641a0016a2000200641f0016a10400b200141e0016a280200220041016a22072000490d05200120073602e00120012802e801220041016a22072000490d05200120073602e8010c040b20012802e4010c020b200920003602080b200a200736020020012802e0012008470d012000200720002007491b0b3602e0010b20012802e401220041016a220720004f0d010b000b200120073602e401200641c8006a200641086a41c0001091011a41284108103322002004370308200041003a00202000200836021820004201370300200041106a2005370300200641a0016a200641c8006a41c0001091011a200641f0016a200141d0026a200641a0016a104420062802f0014101470440200641a0016a200641f0016a41047241d0001091011a200641a0016a200010451a0c010b200641f8016a280200200641fc016a2802004102746a41046a20003602000b200641b8016a200241186a290000370300200641b0016a200241106a290000370300200641a8016a200241086a290000370300200641c8016a200341086a290000370300200641d0016a200341106a290000370300200641d8016a200341186a290000370300200620022900003703a001200620032900003703c001200641f8016a200641a0016a41c0001091011a200641c0026a2005370300200641b8026a2004370300200642013703f001200641f0016a100d41060b360200200641d0026a24000bbd10020b7f057e230041d0076b22072400410421080240200210350d0041032108200310350d0020074198026a2209200241186a220c29000037030020074190026a220b200241106a220d29000037030020074188026a220a200241086a220e2900003703002007200229000037038002200741406b200120074180026a102e41012108200729034022142004542211200741c8006a290300221320055420052013511b0d0020094200370300200b4200370300200a42003703002007420037038002200120074180026a1028200741b8016a1024200741f0006a200341186a290000370200200741e8006a200341106a290000370200200741e0006a200341086a29000037020020072003290000370258200741b8026a200741d0016a290300370300200741b0026a200741c8016a290300370300200741a8026a2208200741c0016a290300370300200a200e290000370300200b200d2900003703002009200c290000370300200720072903b8013703a0022007200229000037038002200741f8006a20074180026a41c0001091011a200741b8016a200741d4006a41241091011a200741a0026a200537030020074198036a200741d4016a29020037030020074190036a200741cc016a29020037030020074188036a200741c4016a2902003703002007200437039802200720072902bc01370380032008200741f8006a41c000109101200741f8026a220941fdcdc6cf7a360200200a4200370300200b4200370300200741f0026a220b200641086a280200360200200741e8026a220c20062902003703002007420037038002200741003602e0012007428080013702bc01200741d484043602b80120074180036a200741b8016a1013200720072903b8013702e401200741386a200741e0016a20072802c0011015200728023c21062007280238210d200741306a200741e0016a200a10362007280234210e2007280230210a20072902e4012112200741003602c001200720123703b801200741b8016a200941041037200741c8026a200741b8016a1013200741b8016a101320042005200741b8016a1014200c280200200b280200200741b8016a1038200720072903b8013702e401200741286a200741e0016a20072802c0011015200728022c21082007280228210b2007200741e8016a28020022093602f401200720072802e401220c3602f001200720093602b801200d20064200200a200e200b2008200c200741b8016a1002210b200741f0016a20072802b8011019410121084101210602400240024002400240024002400240024002400240024002400240200b103941016b0e0c0d0203040506070809010a0b000b200720072903f0013703f801200741206a200741f8016a103a20072d00204101710d0b4100210a0240024020072d00210e0201000d0b200741186a200741f8016a103a20072d001920072d0018410171720d0c200741b8016a200741f8016a103b20072802b801220a450d0c20072902bc0121120b410021080c0c0b000b410221060c0a0b410321060c090b410421060c080b410521060c070b410621060c060b410721060c050b410821060c040b410a21060c030b410b21060c020b410921060c010b410021060b027f02402008450440200a0d014101210b41060c020b4101210b4106200641ff017122064101462006410846720d011a4100210b411d210f200741106a411d4100103c200728021421102007280210220a41b68104290000370000200a41156a41cb8104290000370000200a41106a41c68104290000370000200a41086a41be810429000037000041050c010b2012422088a7210f2012a721104100210b41050b210820074190016a420037030020074188016a420037030020074180016a42003703002007420037037820074180026a200741f8006a1021410021060340200641b0054b450440200120066a22092903002112200920074180026a20066a220c290300370300200c2012370300200941086a220d2903002112200d200c41086a220d290300370300200941106a220e2903002115200e200c41106a220e290300370300200941186a220929030021162009200c41186a220929030037030020092016370300200e2015370300200d2012370300200641206a21060c010b0b200141c8056a200741c8076a290300370300200141c0056a200741c0076a290300370300200b4504402000200a3602042000410c6a200f360200200041086a20103602000c010b20074198026a2206200241186a29000037030020074190026a220a200241106a29000037030020074188026a2208200241086a290000370300200720022900003703800202402014201420047d221454201320057d2011ad7d221220135620122013511b0d00200141106a220b20074180026a20142012103d2006200341186a2209290000370300200a200341106a220c2900003703002008200341086a220f29000037030020072003290000370380022007200120074180026a102e200741086a29030021132007290300211220062009290000370300200a200c2900003703002008200f2900003703002007200329000037038002200420127c221420125422012001ad200520137c7c221220135420122013511b0d00200b20074180026a20142012103d20074191016a200241186a29000037000020074189016a200241106a29000037000020074181016a200241086a290000370000200741013a00782007200229000037007920074199026a200341186a29000037000020074191026a200341106a29000037000020074189026a200341086a290000370000200741013a0080022007200329000037008102200741f8006a20074180026a20042005103e410621080c010b000b20002008360200200741d0076a24000b5e01017f230041106b220124002001200036020c2001410c6a2802002101230041206b22002400200041186a41808001360200200041d4840436021420004100360210200041086a200041106a200110362000280208200028020c105f000b3701027e200020014180016a200210312201290300420151047e200141106a290300210320012903080542000b370300200020033703080bdf0501087f230041b0016b220824000240200041f0006a2001100c22022802004101460440200241003a00080c010b20082001412410910121020240024002402000027f0240024002402000412c6a2802002205200041306a280200470440200041386a2209200028022822051054210320024101360240200241406b410472200241241091011a200241f8006a2003200241406b1055200228027822034102462003410146720d06200520024180016a2802002204464100200228027c22032005461b0d012009200410562206450d0620062802004101460d06200641046a210720032004460d02200720033602002009200310562206450d0620062802004101460d06200641086a21070c030b200241286a200041e0006a20051042024020022802284101470440200241d0006a2002413c6a280200360200200241c8006a200241346a2902003703002002200229022c370340412c4104103322034101360200200341046a200241241091011a200341003a0028200241406b200310431a0c010b200241306a280200200241346a2802004102746a41306a280200210320024101360240200241406b410472200241241091011a200241f8006a2003200241406b10550b2000280228220341016a22042003490d05200020043602282000280230220341016a22042003490d05200020043602300c040b200028022c0c020b200620033602080b2007200436020020002802282005470d012003200420032004491b0b3602280b200028022c220341016a220420034f0d010b000b2000200436022c2002200141241091012101410c41041033220241003a00082002200536020420024101360200200141f8006a200141241091011a200141406b20004198016a200141f8006a105720012802404101470440200141f8006a200141406b41047241341091011a200141f8006a200210581a0c010b200141c8006a280200200141cc006a2802004102746a4190036a20023602000b200841b0016a24000b910d02117f017e23004180016b2203240020032001360224200041f8036a210b027f200041fc036a28020022060440200b2802000c010b200b10472206360204200b410036020041000b21080240024003402006412c6a210920062f015e22044102742107417f2105034002402007450440200421050c010b200941286b210a200541016a2105200941046a2109200741046b2107417f200a280200220a2001472001200a491b41ff01710e020301000b0b20080440200841016b2108200620054102746a41e0006a28020021060c010b0b4102210720002903d0034201510440200341e8006a2209200041f0036a290300370300200341e0006a2207200041e8036a290300370300200341d8006a2204200041e0036a2903003703002003200041d8036a290300370350200341306a200341d0006a200341246a10482009200341c8006a2903003703002007200341406b2903003703002004200341386a29030037030020032003290330370350200341808001360274200341d48404360270027f02400240200341d0006a200341f0006a10490e0400050501050b20032003290370370378200341186a200341f8006a104a20032802180d04200328021c2109200341106a200341f8006a104a20032802100d042003280214210441010c010b41000b21072009ad2004ad4220868421140b41104104104b220841013a000c2008201437020420084100200720074102461b360200200320053602582003410036025020032006360254027f02400240024020062f015e410b4f0440200341286a2005104c200341306a280200210f200328022c2109200328022821041047210a20062f015e220720046b220520074b0d062005200541016b2205490d06200a20053b015e200441016a220c2004490d0620072007200c6b2207492005410c4f722005200747720d06200620044102746a220741306a280200210d200741046a280200210e200a41046a2006200c4102746a41046a200541027422051091011a200a41306a2006200c4102746a41306a20051091011a200620043b015e2003200f3602302003200a200620091b36022c4100210420034100360228200341286a20012008104d210941002101034020062802002205450d02200441016a22072004490d07200320062f015c22043602582003200536025420032007360250200741016b220620074b2001200647720d0720052f015e410b490d03200341286a2004104c20032802302111200328022c2003280228210420052f015e104e210120052f015e220820046b220620084b0d072006200641016b2206490d07200120063b015e200441016a22102004490d072008200820106b2208492006410c4f722006200847720d07200520044102746a220841306a280200210c200841046a280200210f200141046a200520104102746a220841046a200641027422061091011a200141306a200841306a20061091011a200520043b015e41016a220620106b220420064b0d0720012f015e2206410c4f2004200641016a47720d07200141e0006a200841e0006a20044102741091011a200341086a20012007104f200328020c2106200328020821012007210420052108044020062108200121040b200320113602302003200836022c20032004360228200341286a200e200d200a1050200721042006210a200c210d200f210e200521060c000b000b200341d0006a20012008104d21090c020b200b2802042205450d04200b2802002104104e220720053602602004200441016a22044b0d04200320072004104f20032802002105200b20032802042204360204200b20053602002005200541016b2205492001200547720d0420042f015e2201410a4b0d042004200141016a22053b015e200420014102746a220141306a200d360200200141046a200e360200200420054102746a41e0006a200a360200200a20053b015c200a2004360200200b280208220141016a22072001490d04200b41086a0c020b200341d0006a200e200d200a10500b200b280208220141016a22072001490d02200b41086a0b20073602000b41002107200928020022012802004101460440200128020421070b200341286a1024024020002007200341286a100a220941ff01714103470d0041022109200020032802242002100b0d00200341346a200241086a2900003702002003413c6a200241106a290000370200200341c4006a200241186a290000370200200320032802243602282003200229000037022c20004188046a200341286a102f200341286a1024410321090b20034180016a240020090f0b000bdb0302047f027e230041b0016b22022400200241f8006a200141186a290000370300200241f0006a200141106a290000370300200241e8006a200141086a29000037030020022001290000370360200241086a200041286a200241e0006a105c027f200228020841014704404202210620002903004201510440200241a8016a2203200041206a290300370300200241a0016a2204200041186a29030037030020024198016a2205200041106a2903003703002002200029030837039001200241e8006a20024190016a20011071200320024180016a2903003703002004200241f8006a2903003703002005200241f0006a2903003703002002200229036837039001200241406b20024190016a108f01200229034021060b20064202520440200241a0016a200241d8006a29030037030020024198016a200241d0006a2903003703002002200229034837039001200621070b200241e0006a200241086a41047241301091011a41284108104b22002007370300200041013a00202000200229039001370308200041106a20024198016a290300370300200041186a200241a0016a290300370300200241e0006a2000105d2802000c010b200241106a280200200241146a2802004102746a41046a2802000b200241b0016a24000bb00302047f027e230041f0016b2202240020024180016a200141c0001091011a200241086a200041286a20024180016a1044027f200228020841014704404202210620002903004201510440200241e8016a2203200041206a290300370300200241e0016a2204200041186a290300370300200241d8016a2205200041106a290300370300200220002903083703d00120024188016a200241d0016a2001106e2003200241a0016a290300370300200420024198016a290300370300200520024190016a29030037030020022002290388013703d001200241e0006a200241d0016a108f01200229036021060b20064202520440200241e0016a200241f8006a290300370300200241d8016a200241f0006a290300370300200220022903683703d001200621070b20024180016a200241086a41047241d0001091011a41284108104b22002007370300200041013a0020200020022903d001370308200041106a200241d8016a290300370300200041186a200241e0016a29030037030020024180016a200010452802000c010b200241106a280200200241146a2802004102746a41046a2802000b200241f0016a24000b11002000200110342200450440000b20000bb50101027f2000200020016a41016b410020016b7122014d0440024041cc8404280200220020016a22032000490d0041d0840428020020034904402001200141ffff036a22004b044041000f0b2000411076220240002200417f46044041000f0b2000200041ffff037147044041000f0b2000411074220020024110746a2203200049044041000f0b4100210241d084042003360200200020016a22032000490d010b41cc84042003360200200021020b20020f0b000b4101017f230041206b22012400200141186a4200370300200141106a4200370300200141086a42003703002001420037030020002001109301200141206a2400450b6102017f017e230041206b220324002001290204210420034100360218200320043703102002290300200241086a290300200341106a101420012003290310370204200341086a20012003280218101520002003290308370300200341206a24000b6001037f230041106b2203240002402000280208220420026a220520044f0440200341086a2004200520002802002000280204109001200328020c2002470d012003280208200120021091011a20002005360208200341106a24000f0b000b000b2c01017f230041106b220324002003200136020c2003410c6a2002105e2002200020011037200341106a24000b2001017f410c21012000410b4d047f2000410274419c84046a28020005410c0b0b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000bc00502097f017e230041106b22062400200620011020024020062802002203044041002006290204220b422088a7220441076b2201200120044b1b210a200341036a417c7120036b210941002101034020012004490440024002400240200120036a2d00002207411874411875220841004e0440200920016b4103712009417f46720d0303402001200a4f0d03200120036a2205280200200541046a28020072418081828478710d032001200141086a22014d0d000b0c010b4100210502400240024002402007419982046a2d000041026b0e030002010a0b200141016a220120044f0d09200120036a2c000041bf7f4c0d020c090b200141016a220220044f0d08200220036a2d000021020240024002400240200741f0016b0e050100000002000b2002411874411875417f4a2008410f6a41ff017141024b720d0b200241c001490d020c0b0b200241f0006a41ff01714130490d010c0a0b2002411874411875417f4a2002418f014b720d090b200141026a220220044f0d08200220036a2c000041bf7f4a0d08200141036a220120044f0d08200120036a2c000041bf7f4c0d010c080b200141016a220220044f0d07200220036a2d00002102024002400240200741e001470440200741ed01460d012008411f6a41ff0171410c490d022008417e71416e472002411874411875417f4a720d0b200241c001490d030c0b0b200241e0017141a001460d020c0a0b2002411874411875417f4a0d09200241a001490d010c090b2002411874411875417f4a200241bf014b720d080b200141026a220120044f0d07200120036a2c000041bf7f4a0d070b200141016a21010c040b000b20012004200120044b1b2105034020012005460440200521010c040b200120036a2c00004100480d03200141016a21010c000b000b200141016a21010c010b0b2000200b370204200321050c010b0b20002005360200200641106a24000bf10101037f230041106b220424000240200141004e0440200441086a2105027f41012001450d001a20024504402001410110340c010b410041cc8404280200220220016a22032002490d001a024041d084042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141d0840420033602004100200120026a22032002490d021a0b41cc8404200336020020020c010b41000b21022005200136020420052002360200200428020822020d010b000b2000200136020420002002360200200441106a24000b8c0801077f230041a0016b220424000240200041f0006a200110312205290300420151044020052002370308200541003a0020200541106a20033703000c010b200441186a2205200141186a290000370300200441106a2206200141106a290000370300200441086a2207200141086a290000370300200420012900003703000240024002402000027f0240024002402000412c6a2802002208200041306a280200470440200041386a220a2000280228220810592109200441c1006a2007290300370000200441c9006a2006290300370000200441d1006a2005290300370000200441013a003820042004290300370039200441f0006a2009200441386a105a20042d007022054102462005410146720d062008200441f8006a2802002206464100200428027422052008461b0d01200a2006105b2207450d0620072d00004101460d06200741046a210920052006460d0220092005360200200a2005105b2207450d0620072d00004101460d06200741086a21090c030b200441206a200041e0006a20081042024020042802204101470440200441c8006a200441346a280200360200200441406b2004412c6a29020037030020042004290224370338412841041033220541013a0000200541003a002420052004290300370001200541096a200441086a290300370000200541116a200441106a290300370000200541196a200441186a290300370000200441386a200510431a0c010b200441286a2802002004412c6a2802004102746a41306a2802002105200441c1006a200441086a290300370000200441c9006a200441106a290300370000200441d1006a200441186a290300370000200441013a003820042004290300370039200441f0006a2005200441386a105a0b2000280228220541016a22062005490d05200020063602282000280230220541016a22062005490d05200020063602300c040b200028022c0c020b200720053602080b2009200636020020002802282008470d012005200620052006491b0b3602280b200028022c220541016a220620054f0d010b000b2000200636022c200441186a2205200141186a290000370300200441106a2206200141106a290000370300200441086a2207200141086a2900003703002004200129000037030041284108103322012002370308200141003a00202001200836021820014201370300200141106a200337030020044188016a200529030037030020044180016a2006290300370300200441f8006a200729030037030020042004290300370370200441386a20004198016a200441f0006a105c20042802384101470440200441f0006a200441386a41047241301091011a200441f0006a2001105d1a0c010b200441406b280200200441c4006a2802004102746a41046a20013602000b200441a0016a24000b6701017f230041b0016b22042400200441086a200041211091011a200441296a200141211091011a200441d8006a200441086a41c8001091011a200441a8016a2003370300200441a0016a200237030020044200370350200441d0006a100d200441b0016a24000ba30702047f057e230041a0026b22022400200241106a200041286a200110420240027f200228021041014704404102210320002903004201510440200041206a2903002109200041186a2903002108200041106a29030021062002200029030822072001ad7c220a370328200220062007200a56ad7c2207370330200220082006200756ad7c2206370338200220092006200854ad7c37034020024180800136028401200241d484043602800141002100024002400240200241286a20024180016a10490e0400060601060b20022002290380013703c801200241086a200241c8016a103a4101210020022d00084101710d00027f0240024020022d00090e020001030b200241c8006a200241c8016a107420022802484101460d02200241d0006a2802002104200228024c210541000c010b200241d0016a200241c8016a101f20022d00d0014101460d01200241f8016a200241c8016a101f20022d00f8014101460d01200241c6016a20022d00d3013a0000200241f5006a20024191026a290000370000200241ed006a20024189026a290000370000200241e5006a20024181026a290000370000200241d0006a200241e4016a290200370300200241d5006a200241e9016a290000370000200220022900f90137005d200220022f00d1013b01c4012002200241dc016a290200370348200241d8016a280200210420022802d40121052002418c016a200241c8006a41351091011a41010b2103200241fa016a200241c6016a2d00003a0000200220022f01c4013b01f801200241c8006a2002418c016a41381091011a410021000c010b0b20000d03200241d2016a2201200241fa016a22002d00003a0000200220022f01f8013b01d0012002418c016a200241c8006a41381091011a20034102470440200020012d00003a0000200220022f01d0013b01f801200241c8006a2002418c016a41381091011a0b200241ca016a20002d00003a0000200220022f01f8013b01c8012002418c016a200241c8006a41381091011a0b200241d8006a200241106a410472220041106a280200360200200241d0006a200041086a2902003703002002200029020037034841c8004104104b220020033a00002000200436000820002005360004200020022f01c8013b0001200041036a200241ca016a2d00003a00002000410c6a2002418c016a41381091011a200041013a0044200241c8006a200010432802000c010b200241186a2802002002411c6a2802004102746a41306a2802000b200241a0026a24000f0b000b3a01017f20022d000021032000200141c4001091012001200241c40010910121012d0000410246410020034102461b450440200141003a00440b0b2101017f20002001103f22002d0000410247047f200041003a004420000541000b0b900201077f027f20012802042204044020012802000c010b2001104722043602042001410036020041000b2106027f034020042f015e2208410274210941002105417f21030240034020052009460440200821030c020b200420056a2107200341016a2103200541046a21050240417f200741046a280200220720024720022007491b41ff01710e020001020b0b2000410c6a2003360200200041086a2004360200200041106a210541010c020b20060440200641016b2106200420034102746a41e0006a28020021040c010b0b200041106a20033602002000410c6a2004360200200041086a4100360200200041146a21052002210641000b21032000200636020420052001360200200020033602000b860801117f230041306b220224002000280200210e200241186a2000410c6a280200360200200220002902043703100240027f024002400240200228021422042f015e410b4f0440200241206a2002280218104c200241286a28020021072002280224210f2002280220210a200228021021031047210820042f015e2209200a6b220520094b0d05200541016b220b20054b0d052008200b3b015e200a41016a2206200a490d05200920066b220520094b200b410c4f722005200b47720d052004200a4102746a220541306a2802002110200541046a2802002109200841046a200420064102746a41046a200b41027422051091011a200841306a200420064102746a41306a20051091011a2004200a3b015e20022007360228200220082004200f1b36022441002106200241002003200f1b360220200241206a200e2001104d2112034020042802002207450d02200341016a22052003490d06200220042f015c22033602182002200736021420022005360210200541016b220120054b2001200647720d0620072f015e410b490d03200241206a2003104c2002280228210a2002280224210b2002280220210d20072f015e104e210c20072f015e2204200d6b220120044b0d06200141016b221120014b0d06200c20113b015e200d41016a2206200d490d06200420066b220120044b2011410c4f722001201147720d062007200d4102746a220141306a280200210e200141046a280200210f200c41046a200720064102746a220441046a201141027422011091011a200c41306a200441306a20011091011a2007200d3b015e41016a220120066b220320014b0d06200c2f015e2201410c4f2003200141016a47720d06200c41e0006a200441e0006a20034102741091011a200241086a200c2005104f200228020c21042002280208210620052103200721012002200a3602282002200b047f2006210320040520010b36022420022003360220200241206a20092010200810502005210320042108200e2110200f2109200721040c000b000b200241106a200e2001104d21120c020b200028021022042802042200450d0320042802002103104e22012000360260200341016a22002003490d03200220012000104f20022802002100200420022802042203360204200420003602002000200041016b2200492000200647720d0320032f015e2200410a4b0d032003200041016a22013b015e200320004102746a220041306a2010360200200041046a2009360200200320014102746a41e0006a2008360200200820013b015c200820033602002004280208220041016a22032000490d03200441086a0c020b200241106a20092010200810500b20002802102201280208220041016a22032000490d01200141086a0b2003360200200241306a240020120f0b000b880201097f027f20012802042203044020012802000c010b2001107c22033602042001410036020041000b2105200241206a2108027f034020032f01322209410674210a41002104417f2106024003402004200a460440200921060c020b2002200320046a220b41346a108e01220741ff01714504402008200b41d4006a108e0121070b200641016a2106200441406b21040240200741ff01710e020001020b0b41010c020b20050440200541016b2105200320064102746a41f4056a28020021030c010b0b200041146a200241c0001091011a4100210541000b21042000200536020420002004360200200041106a20013602002000410c6a2006360200200041086a20033602000b800b01117f230041e0026b22022400200241206a200041086a28020036020020022000290200370318200041106a21080240027f02400240027f0240200228021c22042f0132410b4f0440200241e0016a2002280220104c200241e8016a280200210720022802e401210c20022802e001210520022802182103107c210920042f0132220a20056b2206200a4b0d062006200641016b2206490d06200920063b0132200420054106746a220b41346a280000210d200241e0016a200b41386a413c1091011a200541016a220b2005490d06200a200a200b6b220a492006410c4f722006200a47720d06200420054102746a41046a280200210a200941346a2004200b4106746a41346a20064106741091011a200941046a2004200b4102746a41046a20064102741091011a200420053b0132200241a0026a200241e0016a413c1091011a20022007360260200220092004200c1b36025c41002107200241002003200c1b360258200241e0016a200841c0001091011a200241d8006a200241e0016a2001107d210c200241a4016a200241a0026a413c1091011a200241186a200241a4016a413c1091011a200241e0016a410472210e0340200428020022050440200341016a22062003490d08200220042f013022013602a0012002200536029c012002200636029801200641016b220320064b2003200747720d0820052f0132410b490d03200241e0016a2001104c20022802e801210f20022802e401211020022802e001210120052f0132107e210320052f0132220820016b220420084b0d082004200441016b2204490d08200320043b0132200520014106746a220741346a280000210b200241e0016a200741386a413c1091011a200141016a22072001490d082008200820076b2208492004410c4f722004200847720d08200520014102746a41046a2802002108200341346a200520074106746a41346a20044106741091011a200341046a200520074102746a221241046a20044102741091011a200520013b0132200241a0026a200241e0016a413c1091011a41016a220420076b220120044b0d0820032f01322204410c4f2001200441016a47720d08200341f4056a201241f4056a20014102741091011a200241106a20032006107f2002280214210420022802102107200241a4016a200241a0026a413c1091011a20062103200521012002200f3602a80220022010047f2007210320040520010b3602a402200220033602a0022002200d3602e001200e200241186a413c1091011a200241a0026a200241e0016a200a2009108001200241d8006a200241a4016a413c1091011a200241186a200241d8006a413c1091011a20062103200b210d200421092008210a200521040c010b0b200241a0026a200241186a413c1091011a41010c020b200241e0016a200841c0001091011a200241186a200241e0016a2001107d210c200028020c21000c020b2002200d3602e001200e200241186a413c1091011a20024198016a200241e0016a200a20091080012001210d41000b200028020c21000d010b2000280208220141016a22032001490d02200041086a0c010b20002802042203450d0120002802002101107e220520033602f4052001200141016a22014b0d01200241086a20052001107f200228020821032000200228020c220136020420002003360200200241e0016a200241a0026a413c1091011a2003200341016b2203492003200747720d0120012f01322203410a4b0d012001200341016a22053b0132200120034106746a220641346a200d360000200641386a200241e0016a413c1091011a200120054102746a41f4056a2009360200200120034102746a41046a200a360200200920053b0130200920013602002000280208220141016a22032001490d01200041086a0b2003360200200241e0026a2400200c0f0b000b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000b2201017f41e000410410732200450440000b200041003b015e2000410036020020000b900201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e800370310200320013602082003200236020c200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002280200200341d0006a106a200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000b3701017f230041106b220224002002200128020436020c200020012802002002410c6a10072001200228020c10191039200241106a24000b4801017f027f4101200128020422024104490d001a2001200241046b36020420012001280200220141046a3602002001280000210241000b210120002002360204200020013602000b11002000200110732200044020000f0b000b5b01027f41042102024020014105490d002001210202400240200141056b0e020200010b4100210141012103410521020c010b200141076b210141012103410621020b2000200336020420002002360200200041086a20013602000b4101027f2000280204220341046a20032f015e41016a2204200028020822002001107b200341306a2201200420002002107b200320043b015e200120004102746a0b2201017f419001410410732200450440000b200041003b015e2000410036020020000b860101037f230041206b2203240020012f015e2104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a41e0006a280200220520043b015c200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000bfc0101067f2000280204220441046a20042f015e220541016a2208200028020822062001107b200441306a200820062002107b0240200641016a22022006490d00200241016a22092002490d00200441e0006a2107200541026a220120094b0440200120026b220520014b0d012005200541016b2205490d01200720094102746a200720024102746a20054102741092010b200720024102746a2003360200200420083b015e20012002200120024b1b2103200420064102746a41e4006a2101200028020021000340200220034704402000450d022001280200220620023b015c20062004360200200141046a2101200241016a21020c010b0b0f0b000b8d0101047f230041106b22022400200028020421052000419c8404360204200041086a220328020021042003410036020002402000280200220320044d0440200241003602082002200420036b3602042002200320056a360200200120021053200320022802086a220120034f0d010b000b200020043602082000200536020420002001360200200241106a24000b100020002802002000280208200110380b0a0020012000412010370b900702087f057e230041c0016b22022400200241106a200041286a200110420240027f20022802104101470440024020002903004201520440410221010c010b200041206a290300210d200041186a290300210a200041106a290300210b20022000290308220c2001ad7c220e3703282002200b200c200e56ad7c220c3703302002200a200b200c56ad7c220b3703382002200d200a200b56ad7c37034020024180800136024c200241d4840436024841002100024002400240200241286a200241c8006a10490e0400060601060b20022002290348370370200241086a200241f0006a103a4101210020022d00084101710d00027f0240024020022d00090e020001030b20024198016a200241f0006a10742002280298014101460d02200228029c01210341002101200241a0016a2802000c010b2002200241f0006a104a20022802000d012002280204210320024198016a200241f0006a101f4101210120022d0098014101460d0120024188016a200241ad016a290000220a370300200241d8006a200241a5016a290000370300200241e0006a200a370300200241e8006a200241b5016a2800003602002002200229009d013703502002280099010b2106200241b0016a200241e8006a280200360200200241a8016a200241e0006a290300370300200241a0016a200241d8006a2903003703002002200229035037039801410021000c010b410221010b20000d0320024190016a2207200241b0016a220028020036020020024188016a2208200241a8016a220429030037030020024180016a2209200241a0016a220529030037030020022002290398013703782001410247044020002007280200360200200420082903003703002005200929030037030020022002290378370398010b200241d8006a2005290300370300200241e0006a2004290300370300200241e8006a200028020036020020022002290398013703500b200241a8016a200241106a410472220041106a280200360200200241a0016a200041086a2902003703002002200029020037039801412c4104104b220020063602082000200336020420002001360200200041013a00282000200229035037020c200041146a200241d8006a2903003702002000411c6a200241e0006a290300370200200041246a200241e8006a28020036020020024198016a200010432802000c010b200241186a2802002002411c6a2802004102746a41306a2802000b200241c0016a24000f0b000b3801017f200228020021032000200141281091012001200241281091012101280200410246410020034102461b450440200141003a00280b0b2101017f2000200110542200280200410247047f200041003a002820000541000b0bb702010a7f027f20012802042204044020012802000c010b200110820122043602042001410036020041000b2107200241046a210920022802002108027f034020042f01be03220a41246c210b41002105417f2106024003402005200b460440200a21060c020b417f2008200420056a220c41046a280200220347200320084b1b22034504402009200c41086a108e0121030b200641016a2106200541246a21050240200341ff01710e020001020b0b200020073602042000410c6a2006360200200041086a200436020041012103200041106a0c020b20070440200741016b2107200420064102746a41c0036a28020021040c010b0b200041046a200241241091011a200041306a20063602002000412c6a200436020041002103200041286a4100360200200041346a0b2000200336020020013602000bad0f021d7f047e230041d0016b22022400200241206a2000412c6a280200360200200220002902243703180240027f02400240027f0240200228021c22042f01be03410b4f044020024188016a2002280220104c20024190016a2802002107200228028c01210c200228028801210520022802182103108201210920042f01be03220a20056b2206200a4b0d062006200641016b2206490d06200920063b01be0320024190016a2004200541246c6a220b41106a29020037030020024198016a200b41186a290200370300200241a0016a200b41206a2902003703002002200b41086a29020037038801200541016a22082005490d06200a200a20086b220a492006410c4f722006200a47720d06200420054102746a4190036a280200210a200b41046a280200210b200941046a2004200841246c6a41046a200641246c1091011a20094190036a200420084102746a4190036a20064102741091011a200420053b01be03200241b8016a220e20024190016a2211290300370300200241c0016a220f20024198016a2212290300370300200241c8016a2210200241a0016a221329030037030020022002290388013703b00120022007360240200220092004200c1b36023c41002107200241002003200c1b36023820024188016a200041241091011a200241386a20024188016a2001108301211420024180016a22152010290300221f370300200241f8006a2216200f2903002220370300200241f0006a2217200e2903002221370300200220022903b0012222370368200241306a2218201f370300200241286a22192020370300200241206a221a20213703002002202237031820024188016a410472210d0340200428020022050440200341016a22062003490d08200220042f01bc0322013602602002200536025c20022006360258200641016b220320064b2003200747720d0820052f01be03410b490d0320024188016a2001104c200228029001211b200228028c01211c200228028801210120052f01be03108401210320052f01be03220820016b220420084b0d082004200441016b2204490d08200320043b01be0320112005200141246c6a220c41106a2902003703002012200c41186a2902003703002013200c41206a2902003703002002200c41086a29020037038801200141016a22072001490d082008200820076b2208492004410c4f722004200847720d08200520014102746a4190036a2802002108200c41046a280200210c200341046a2005200741246c6a41046a200441246c1091011a20034190036a200520074102746a221e4190036a20044102741091011a200520013b01be03200e2011290300370300200f20122903003703002010201329030037030020022002290388013703b00141016a220420076b220120044b0d0820032f01be032204410c4f2001200441016a47720d08200341c0036a201e41c0036a20014102741091011a200241106a200320061085012017200e2903003703002016200f29030037030020152010290300370300200220022903b001370368200228021421042002280210210720062103200521012002201b3602b8012002201c047f2007210320040520010b3602b401200220033602b001200d2002290318370200200d41086a201a290300370200200d41106a2019290300370200200d41186a20182903003702002002200b36028801200241b0016a20024188016a200a2009108601200241d0006a2015290300221f370300200241c8006a20162903002220370300200241406b20172903002221370300201a2021370300201920203703002018201f37030020022002290368221f3703382002201f37031820062103200c210b200421092008210a200521040c010b0b200241c8016a200241306a290300370300200241c0016a200241286a290300370300200241b8016a200241206a290300370300200220022903183703b00141010c020b20024188016a200041241091011a200241186a20024188016a20011083012114200028023021000c020b200d2002290318370200200d41086a200241206a290300370200200d41106a200241286a290300370200200d41186a200241306a2903003702002002200b36028801200241d8006a20024188016a200a20091086012001210b41000b200028023021000d010b2000280208220141016a22032001490d02200041086a0c010b20002802042203450d0120002802002101108401220520033602c0032001200141016a22014b0d01200241086a20052001108501200228020821032000200228020c220136020420002003360200200241a0016a200241c8016a29030037030020024198016a200241c0016a29030037030020024190016a200241b8016a290300370300200220022903b001370388012003200341016b2203492003200747720d0120012f01be032205410a4b0d012001200541246c6a220341046a200b3602002001200541016a22063b01be03200341106a20024190016a290300370200200341186a20024198016a290300370200200341206a200241a0016a290300370200200341086a200229038801370200200120054102746a4190036a200a360200200120064102746a41c0036a2009360200200920063b01bc03200920013602002000280208220141016a22032001490d01200041086a0b2003360200200241d0016a240020140f0b000bac0702087f057e230041b0016b22022400200241086a200041286a200110420240027f200228020841014704404102210320002903004201510440200041206a290300210d200041186a290300210c200041106a290300210a20022000290308220b2001ad7c220e3703382002200a200b200e56ad7c220b3703402002200c200a200b56ad7c220a3703482002200d200a200c54ad7c370350200241808001360264200241d4840436026041002100024002400240200241386a200241e0006a10490e0400060601060b200220022903603703202002200241206a103a4101210020022d00004101710d00027f0240024020022d00010e020001030b20024188016a200241206a10742002280288014101460d02200228028c0121044100210320024190016a2802000c010b20024188016a200241206a101f4101210320022d0088014101460d0120024186016a20022d008b013a0000200241f0006a2002419c016a290200370300200241f5006a200241a1016a290000370000200220022f0089013b018401200220024194016a290200370368200228028c01210420024190016a2802000b2105200241de006a20024186016a2d00003a000020024190016a200241f0006a29030037030020024198016a200241f8006a290300370300200220022f0184013b015c2002200229036837038801410021000c010b410221030b20000d03200241e2006a2206200241de006a22072d00003a0000200241f0006a220820024190016a2200290300370300200241f8006a220920024198016a2201290300370300200220022f015c3b016020022002290388013703682003410247044020024186016a20062d00003a00002000200829030037030020012009290300370300200220022f01603b01840120022002290368370388010b200720024186016a2d00003a0000200241286a2000290300370300200241306a2001290300370300200220022f0184013b015c20022002290388013703200b20024198016a200241086a410472220041106a28020036020020024190016a200041086a290200370300200220002902003703880141284104104b220020033a00002000200536000820002004360004200041013a0024200020022f015c3b0001200041036a200241de006a2d00003a00002000200229032037000c200041146a200241286a2903003700002000411c6a200241306a29030037000020024188016a200010432802000c010b200241106a280200200241146a2802004102746a41306a2802000b200241b0016a24000f0b000b3801017f20022d0000210320002001412410910120012002412410910121012d0000410246410020034102461b450440200141003a00240b0b2101017f20002001105922002d0000410247047f200041003a002420000541000b0b9a0201077f027f20012802042203044020012802000c010b200110880122033602042001410036020041000b2105027f034020032f01322207410574210841002104417f21060240034020042008460440200721060c020b200641016a2106200320046a2109200441206a210402402002200941346a108e0141ff01710e020001020b0b41010c020b20050440200541016b2105200320064102746a4194036a28020021030c010b0b200041146a20022900003700002000412c6a200241186a290000370000200041246a200241106a2900003700002000411c6a200241086a2900003700004100210541000b21042000200536020420002004360200200041106a20013602002000410c6a2006360200200041086a20033602000bf20f021e7f037e230041c0016b22022400200241186a200041086a28020036020020022000290200370310200041106a21080240027f02400240027f0240200228021422052f0132410b4f044020024180016a2002280218104c20024188016a28020021062002280284012104200228028001210c20022802102103108801210920052f01322211200c6b220a20114b0d06200a41016b220e200a4b0d062009200e3b013220024188016a2005200c4105746a220741406b29000037030020024190016a200741c8006a29000037030020024198016a200741d0006a2800003602002002200741386a29000037038001200c41016a220b200c490d062011200b6b220a20114b200e410c4f72200a200e47720d062005200c4102746a41046a2802002113200741346a280000210a200941346a2005200b4105746a41346a200e4105741091011a200941046a2005200b4102746a41046a200e4102741091011a2005200c3b0132200241a8016a221420024188016a2215290300370300200241b0016a221620024190016a2217290300370300200241b8016a221820024198016a221928020036020020022002290380013703a0012002200636023820022009200520041b3602344100210720024100200320041b3602302019200841186a2900003703002017200841106a2900003703002015200841086a2900003703002002200829000037038001200241306a20024180016a2001108901211a200241f8006a221b20182802002201360200200241f0006a221c20162903002222370300200241e8006a221d20142903002221370300200220022903a0012220370360200241286a221e2001360200200241206a221f2022370300200241186a220820213703002002202037031020024180016a410472210d0340200528020022040440200341016a22062003490d08200220052f013022013602582002200436025420022006360250200641016b220320064b2003200747720d0820042f0132410b490d0320024180016a2001104c200228028801210c200228028401200228028001210f20042f0132108a01211020042f01322203200f6b220120034b0d08200141016b221220014b0d08201020123b013220152004200f4105746a220b41406b2900003703002017200b41c8006a2900003703002019200b41d0006a2800003602002002200b41386a29000037038001200f41016a2207200f490d08200320076b220120034b2012410c4f722001201247720d082004200f4102746a41046a2802002111200b41346a280000210b201041346a200420074105746a41346a20124105741091011a201041046a200420074102746a220341046a20124102741091011a2004200f3b013220142015290300370300201620172903003703002018201928020036020020022002290380013703a00141016a220120076b220520014b0d0820102f01322201410c4f2005200141016a47720d0820104194036a20034194036a20054102741091011a200241086a20102006108b01201d2014290300370300201c2016290300370300201b2018280200360200200220022903a001370360200228020c2101200228020821072006210320042105044020012105200721030b2002200c3602a801200220053602a401200220033602a001200d2002290310370200200d41086a2008290300370200200d41106a201f290300370200200d41186a201e2802003602002002200a36028001200241a0016a20024180016a20132009108c01200241c8006a201b2802002203360200200241406b201c2903002221370300200241386a201d290300222037030020082020370300201f2021370300201e20033602002002200229036022203703302002202037031020062103200b210a2001210920112113200421050c010b0b200241b8016a200241286a280200360200200241b0016a200241206a290300370300200241a8016a200241186a290300370300200220022903103703a00141010c020b20024198016a200841186a29000037030020024190016a200841106a29000037030020024188016a200841086a2900003703002002200829000037038001200241106a20024180016a2001108901211a200028020c21040c020b200d2002290310370200200d41086a200241186a290300370200200d41106a200241206a290300370200200d41186a200241286a2802003602002002200a36028001200241d0006a20024180016a20132009108c012001210a41000b200028020c21040d010b2004280208220041016a22032000490d02200441086a0c010b20042802042200450d0120042802002103108a012201200036029403200341016a22002003490d01200220012000108b01200228020021002004200228020422063602042004200036020020024198016a200241b8016a28020036020020024190016a200241b0016a29030037030020024188016a200241a8016a290300370300200220022903a001370380012000200041016b2200492000200747720d0120062f01322201410a4b0d01200620014105746a220341346a200a3600002006200141016a22003b0132200341386a200229038001370000200341406b20024188016a290300370000200341c8006a20024190016a290300370000200341d0006a20024198016a280200360000200620014102746a41046a2013360200200620004102746a4194036a2009360200200920003b0130200920063602002004280208220041016a22032000490d01200441086a0b2003360200200241c0016a2400201a0f0b000b7901017f230041106b22022400024020002802002200413f4d04402001200041027410460c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210370c010b200041ffffffff034d044020004102744102722001106a0c010b20014103104620002001106a0b200241106a24000b0b004100200020011009000b6502017f017e230041206b22032400200129020421042003410036021820032004370310200320022d00003a001f200341106a2003411f6a4101103720012003290310370204200341086a20012003280218101520002003290308370300200341206a24000b08002000420110780bef0101037f230041306b22022400200110792103200241808001360224200241d48404360220024002402003200241206a10490d0020022002290320370328200241186a200241286a104a20022802180d00200228021c2103200241106a200241286a104a20022802100d0020022802142104200241086a200241286a104a2002280208450d010b000b200041306a200228020c3602002000412c6a2004360200200020033602282000420137030020002001290300370308200041106a200141086a290300370300200041186a200141106a290300370300200041206a200141186a290300370300200241306a24000b0c00200042808080801010780baf0102017f017e230041206b2202240002400240024002402001106541ff01710e020001030b2001420110781a200041003602000c010b200110612101200241808001360204200241d484043602000240024002402001200210490e0400040401040b20022002290300370318200241086a200241186a103b20022802082201450d03200229020c21030c010b410021010b2001450d0120002003370204200020013602000b200241206a24000f0b000b6301017f230041206b22012400200010612100200141808001360214200141d4840436021002402000200141106a104945044020012001290310370318200141086a200141186a101e20012d0008410171450d010b000b20012d0009200141206a24000b820101017f230041306b220224002001107920024100360210200242808001370224200241d484043602202000280228200241206a106a2000412c6a280200200241206a106a200041306a280200200241206a106a20022002290320370214200241086a200241106a200228022810152002280208200228020c1005200241306a24000b8a0101027f230041306b220224002002200028020022034100473a0020200241206a200110680240200304402001106120024100360210200242808001370224200241d484043602202000200241206a105220022002290320370214200241086a200241106a200228022810152002280208200228020c10050c010b2001420110781a0b200241306a24000b4e01017f230041206b2202240020011061200241186a41808001360200200241d4840436021420024100360210200241086a200241106a200010602002280208200228020c1005200241206a24000b8d0201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e8003703102003200236020c20032001360208200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002200341d0006a106d200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000b2601017f230041106b220224002002200036020c20012002410c6a41041037200241106a24000b5001027e20002002200129030022027c22033703002000200129030822042002200356ad7c22023703082000200129031022032002200454ad7c2202370310200020012903182002200354ad7c3703180b0e0020002002106a20012002106a0b140020002802002001106a200041046a200110130b8d0201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e8003703102003200236020c20032001360208200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002200341d0006a1070200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000ba20101027f230041306b2202240020002d00202103200041013a0020024020034101710d0020002903004201520440200110060c010b20024100360210200242808001370224200241d484043602202000290308200041106a290300200241206a1014200041186a280200200241206a106a20022002290320370214200241086a200241106a2002280228101520012002280208200228020c10050b200241306a24000b1100200020011013200041206a200110130b8d0201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e8003703102003200236020c20032001360208200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002200341d0006a1013200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000b4801027f230041106b22032400200341086a20024100103c200328020821042000200328020c360204200020043602002004200120021091011a20002002360208200341106a24000b08002000200110340b6201037f230041106b22022400200241086a2001104a41012103024020022802080d00200228020c210420022001104a20022802000d002002280204210120002004360204200041086a2001360200410021030b20002003360200200241106a24000b930101027f20002f01042103200041003a0004410121040240024020034101714504402000280200220028020422032002490d0220012000280200220120021091011a0c010b200120034108763a0000200028020022002802042203200241016b2202490d01200141016a2000280200220120021091011a0b2000200320026b3602042000200120026a360200410021040b20040b0a0020012000410b10370b0d0020012000280200412010370b6001027e200029032021022000200137032020002002200029030022017c22023703002000200029030822032001200256ad7c22013703082000200029031022022001200354ad7c2201370310200020002903182001200254ad7c37031820000b6001037e200029032021012000420137032020002001200029030022027c22013703002000200029030822032001200254ad7c22013703082000200029031022022001200354ad7c2201370310200020002903182001200254ad7c37031820000b5001037f024020012d00080d0020012802002203200128020422044b0d00200320044f044041012102200141013a00080c010b410121022001200341016a3602000b20002003360204200020023602000b5a01017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d01200020044102746a200020024102746a20014102741092010b200020024102746a20033602000f0b000b2201017f41f405410410732200450440000b200041003b01322000410036020020000b5c01037f230041406a220324002000280204220441346a20042f013241016a2205200028020822002003200141c0001091012201108101200441046a2203200520002002107b200420053b0132200141406b2400200320004102746a0b2201017f41a406410410732200450440000b200041003b01322000410036020020000b860101037f230041206b2203240020012f01322104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a41f4056a280200220520043b0130200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000b970201077f230041406a220724002000280204220441346a20042f0132220541016a2208200028020822062007200141c000109101220a108101200441046a200820062002107b0240200641016a22022006490d00200241016a22092002490d00200441f4056a2107200541026a220120094b0440200120026b220520014b0d012005200541016b2205490d01200720094102746a200720024102746a20054102741092010b200720024102746a2003360200200420083b013220012002200120024b1b2103200420064102746a41f8056a2101200028020021000340200220034704402000450d022001280200220620023b013020062004360200200141046a2101200241016a21020c010b0b200a41406b24000f0b000b5e01017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d01200020044106746a200020024106746a20014106741092010b200020024106746a200341c0001091011a0f0b000b2301017f41c003410410732200450440000b200041003b01be032000410036020020000b6b01037f230041306b2203240020002802082104200028020422002f01be032105200341086a200141241091011a200041046a200541016a22012004200341086a10870120004190036a2205200120042002107b200020013b01be03200341306a2400200520044102746a0b2301017f41f003410410732200450440000b200041003b01be032000410036020020000b880101037f230041206b2203240020012f01be032104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a41c0036a280200220520043b01bc03200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000ba50201077f230041306b2207240020002802082104200028020422062f01be032105200741086a200141241091011a200641046a200541016a22092004200741086a10870120064190036a200920042002107b0240200441016a22022004490d00200241016a220a2002490d00200641c0036a2108200541026a2201200a4b0440200120026b220520014b0d012005200541016b2205490d012008200a4102746a200820024102746a20054102741092010b200820024102746a2003360200200620093b01be0320012002200120024b1b2103200620044102746a41c4036a2101200028020021000340200220034704402000450d022001280200220420023b01bc0320042006360200200141046a2101200241016a21020c010b0b200741306a24000f0b000b5d01017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d012000200441246c6a2000200241246c6a200141246c1092010b2000200241246c6a200341241091011a0f0b000b2201017f419403410410732200450440000b200041003b01322000410036020020000b920101037f230041206b2203240020002802082104200028020422002f01322105200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a29000037030020032001290000370300200041346a200541016a220120042003108d01200041046a2205200120042002107b200020013b0132200341206a2400200520044102746a0b2201017f41c403410410732200450440000b200041003b01322000410036020020000b860101037f230041206b2203240020012f01322104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a4194036a280200220520043b0130200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000bcb0201077f230041206b2206240020002802082104200028020422072f01322105200641186a200141186a290000370300200641106a200141106a290000370300200641086a200141086a29000037030020062001290000370300200741346a200541016a220920042006108d01200741046a200920042002107b0240200441016a22012004490d00200141016a220a2001490d0020074194036a2108200541026a2202200a4b0440200220016b220520024b0d012005200541016b2205490d012008200a4102746a200820014102746a20054102741092010b200820014102746a2003360200200720093b01322002200120012002491b2103200720044102746a4198036a2102200028020021000340200120034704402000450d022002280200220420013b013020042007360200200241046a2102200141016a21010c010b0b200641206a24000f0b000b8f0101017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d01200020044105746a200020024105746a20014105741092010b200020024105746a22002003290000370000200041186a200341186a290000370000200041106a200341106a290000370000200041086a200341086a2900003700000f0b000b1800417f41012000200110930122004100481b410020001b0bb40102017f027e230041306b22022400200241808001360224200241d484043602202000027e02400240024002402001200241206a10490e0400010102010b20022002290320370328200241086a200241286a101a20022802080d00200241186a2903002103200229031021042002200241286a104a2002280200450d020b000b42000c010b20022802042101200041106a200337030020002004370308200041186a200136020042010b370300200241306a24000b31000240200120024b200220044b720d002002200220016b2202490d00200020023602042000200120036a3602000f0b000be902010a7f02402002410f4d0440200021030c010b2000410020006b41037122046a210520012106200021030340200320054f450440200320062d00003a0000200641016a2106200341016a21030c010b0b0240200220046b220820024b0d002008417c7121070240200120046a22044103710440200520076a21092004417c71220241046a210141202004410374411871220a6b2203411871210b2003412071210c20022802002106200521030340200320094f0d02200c0d03200320012802002202200b742006200a7672360200200141046a2101200341046a2103200221060c000b000b200520076a210220042101200521030340200220034d0d0120032001280200360200200141046a2101200341046a21030c000b000b200820076b220220084b0d00200520076a2103200420076a21010c010b000b200220036a21020340200220034d450440200320012d00003a0000200141016a2101200341016a21030c010b0b20000be10501097f02400240024002402002200020016b4b0440200120026a2105200020026a21002002410f4d0d032000417c712106200120026a41016b21034100200041037122046b21070340200020064b0440200041016b220020032d00003a0000200341016b21030c010b0b200220046b220420024b0d012004417c7121020240200520076a22054103710440200620026b2108410020026b21072005417c71220041046b21014120200541037441187122096b2203411871210a2003412071210b20002802002103200621000340200020084d0d02200b0d04200041046b22002003200a742001280200220320097672360200200141046b21010c000b000b200620026b2103410020026b2107200120046a41046b2101200621000340200020034d0d01200041046b22002001280200360200200141046b21010c000b000b200420026b220220044b0d01200620076a2100200520076a21050c030b2002410f4d0d012000410020006b41037122046a210620012103034020002006490440200020032d00003a0000200341016a2103200041016a21000c010b0b200220046b220720024b0d002007417c7121050240200120046a22044103710440200520066a21082004417c71220041046a21014120200441037441187122096b2202411871210a2002412071210b20002802002103200621000340200020084f0d02200b0d03200020012802002202200a74200320097672360200200141046a2101200041046a2100200221030c000b000b200520066a210220042101200621000340200020024f0d0120002001280200360200200141046a2101200041046a21000c000b000b200720056b220220074b0d00200520066a2100200420056a21010c010b000b200020026a21020340200020024f0d02200020012d00003a0000200141016a2101200041016a21000c000b000b200541016b2101200020026b21020340200020024d0d01200041016b220020012d00003a0000200141016b21010c000b000b0b4301037f412021020340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b0b8c040300418080040b990350535032325374727563743a3a5472616e736665720000001c020100000000000000010050535032325374727563743a3a5472616e736665723a3a66726f6d50535032325374727563743a3a5472616e736665723a3a746f50535032325374727563743a3a417070726f76616c0000001c020100000000005800010050535032325374727563743a3a417070726f76616c3a3a6f776e657250535032325374727563743a3a417070726f76616c3a3a7370656e6465724572726f7220647572696e672063616c6c20746f20726563656976657241433a3a526f6c65526564756e64616e7441433a3a4d697373696e67526f6c6541433a3a496e76616c696443616c6c6572503a3a4e6f74506175736564503a3a50617573656401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041db83040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041a084040b290100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" - }, - "contract": { - "name": "psp22_minter_pauser", - "version": "0.1.0", - "authors": ["Oleksandr Mykhailenko "] - }, - "V1": { - "spec": { - "constructors": [ - { - "args": [ - { - "name": "total_supply", - "type": { - "displayName": ["Balance"], - "type": 0 - } - }, - { - "name": "name", - "type": { - "displayName": ["Option"], - "type": 19 - } - }, - { - "name": "symbol", - "type": { - "displayName": ["Option"], - "type": 19 - } - }, - { - "name": "decimal", - "type": { - "displayName": ["u8"], - "type": 6 - } - } - ], - "docs": [], - "name": ["new"], - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "from", - "type": { - "displayName": ["Option"], - "type": 23 - } - }, - { - "docs": [], - "indexed": true, - "name": "to", - "type": { - "displayName": ["Option"], - "type": 23 - } - }, - { - "docs": [], - "indexed": false, - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [" Event emitted when a token transfer occurs."], - "name": "Transfer" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 4 - } - }, - { - "docs": [], - "indexed": true, - "name": "spender", - "type": { - "displayName": ["AccountId"], - "type": 4 - } - }, - { - "docs": [], - "indexed": false, - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - " Event emitted when an approval occurs that `spender` is allowed to withdraw", - " up to the amount of `value` tokens from `owner`." - ], - "name": "Approval" - } - ], - "messages": [ - { - "args": [], - "docs": [" Returns the token name."], - "mutates": false, - "name": ["PSP22Metadata", "token_name"], - "payable": false, - "returnType": { - "displayName": ["psp22metadata_external", "TokenNameOutput"], - "type": 19 - }, - "selector": "0x3d261bd4" - }, - { - "args": [], - "docs": [" Returns the token symbol."], - "mutates": false, - "name": ["PSP22Metadata", "token_symbol"], - "payable": false, - "returnType": { - "displayName": ["psp22metadata_external", "TokenSymbolOutput"], - "type": 19 - }, - "selector": "0x34205be5" - }, - { - "args": [], - "docs": [" Returns the token decimals."], - "mutates": false, - "name": ["PSP22Metadata", "token_decimals"], - "payable": false, - "returnType": { - "displayName": ["psp22metadata_external", "TokenDecimalsOutput"], - "type": 6 - }, - "selector": "0x7271b782" - }, - { - "args": [ - { - "name": "account", - "type": { - "displayName": ["psp22mintable_external", "MintInput1"], - "type": 4 - } - }, - { - "name": "amount", - "type": { - "displayName": ["psp22mintable_external", "MintInput2"], - "type": 0 - } - } - ], - "docs": [], - "mutates": true, - "name": ["PSP22Mintable", "mint"], - "payable": false, - "returnType": { - "displayName": ["psp22mintable_external", "MintOutput"], - "type": 20 - }, - "selector": "0xfc3c75d4" - }, - { - "args": [ - { - "name": "spender", - "type": { - "displayName": ["psp22_external", "DecreaseAllowanceInput1"], - "type": 4 - } - }, - { - "name": "delta_value", - "type": { - "displayName": ["psp22_external", "DecreaseAllowanceInput2"], - "type": 0 - } - } - ], - "docs": [ - " Atomically decreases the allowance granted to `spender` by the caller.", - "", - " An `Approval` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " by owner for `spender`.", - "", - " Returns `ZeroSenderAddress` error if sender's address is zero.", - "", - " Returns `ZeroRecipientAddress` error if recipient's address is zero." - ], - "mutates": true, - "name": ["PSP22", "decrease_allowance"], - "payable": false, - "returnType": { - "displayName": ["psp22_external", "DecreaseAllowanceOutput"], - "type": 20 - }, - "selector": "0xfecb57d5" - }, - { - "args": [ - { - "name": "to", - "type": { - "displayName": ["psp22_external", "TransferInput1"], - "type": 4 - } - }, - { - "name": "value", - "type": { - "displayName": ["psp22_external", "TransferInput2"], - "type": 0 - } - }, - { - "name": "data", - "type": { - "displayName": ["psp22_external", "TransferInput3"], - "type": 22 - } - } - ], - "docs": [ - " Transfers `value` amount of tokens from the caller's account to account `to`", - " with additional `data` in unspecified format.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the caller's account Balance.", - "", - " Returns `ZeroSenderAddress` error if sender's address is zero.", - "", - " Returns `ZeroRecipientAddress` error if recipient's address is zero." - ], - "mutates": true, - "name": ["PSP22", "transfer"], - "payable": false, - "returnType": { - "displayName": ["psp22_external", "TransferOutput"], - "type": 20 - }, - "selector": "0xdb20f9f5" - }, - { - "args": [ - { - "name": "spender", - "type": { - "displayName": ["psp22_external", "ApproveInput1"], - "type": 4 - } - }, - { - "name": "value", - "type": { - "displayName": ["psp22_external", "ApproveInput2"], - "type": 0 - } - } - ], - "docs": [ - " Allows `spender` to withdraw from the caller's account multiple times, up to", - " the `value` amount.", - "", - " If this function is called again it overwrites the current allowance with `value`.", - "", - " An `Approval` event is emitted.", - "", - " # Errors", - "", - " Returns `ZeroSenderAddress` error if sender's address is zero.", - "", - " Returns `ZeroRecipientAddress` error if recipient's address is zero." - ], - "mutates": true, - "name": ["PSP22", "approve"], - "payable": false, - "returnType": { - "displayName": ["psp22_external", "ApproveOutput"], - "type": 20 - }, - "selector": "0xb20f1bbd" - }, - { - "args": [ - { - "name": "owner", - "type": { - "displayName": ["psp22_external", "AllowanceInput1"], - "type": 4 - } - }, - { - "name": "spender", - "type": { - "displayName": ["psp22_external", "AllowanceInput2"], - "type": 4 - } - } - ], - "docs": [ - " Returns the amount which `spender` is still allowed to withdraw from `owner`.", - "", - " Returns `0` if no allowance has been set `0`." - ], - "mutates": false, - "name": ["PSP22", "allowance"], - "payable": false, - "returnType": { - "displayName": ["psp22_external", "AllowanceOutput"], - "type": 0 - }, - "selector": "0x4d47d921" - }, - { - "args": [ - { - "name": "from", - "type": { - "displayName": ["psp22_external", "TransferFromInput1"], - "type": 4 - } - }, - { - "name": "to", - "type": { - "displayName": ["psp22_external", "TransferFromInput2"], - "type": 4 - } - }, - { - "name": "value", - "type": { - "displayName": ["psp22_external", "TransferFromInput3"], - "type": 0 - } - }, - { - "name": "data", - "type": { - "displayName": ["psp22_external", "TransferFromInput4"], - "type": 22 - } - } - ], - "docs": [ - " Transfers `value` tokens on the behalf of `from` to the account `to`", - " with additional `data` in unspecified format.", - "", - " This can be used to allow a contract to transfer tokens on ones behalf and/or", - " to charge fees in sub-currencies, for example.", - "", - " On success a `Transfer` and `Approval` events are emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " for the caller to withdraw from `from`.", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the the account Balance of `from`.", - "", - " Returns `ZeroSenderAddress` error if sender's address is zero.", - "", - " Returns `ZeroRecipientAddress` error if recipient's address is zero." - ], - "mutates": true, - "name": ["PSP22", "transfer_from"], - "payable": false, - "returnType": { - "displayName": ["psp22_external", "TransferFromOutput"], - "type": 20 - }, - "selector": "0x54b3c76e" - }, - { - "args": [ - { - "name": "owner", - "type": { - "displayName": ["psp22_external", "BalanceOfInput1"], - "type": 4 - } - } - ], - "docs": [ - " Returns the account Balance for the specified `owner`.", - "", - " Returns `0` if the account is non-existent." - ], - "mutates": false, - "name": ["PSP22", "balance_of"], - "payable": false, - "returnType": { - "displayName": ["psp22_external", "BalanceOfOutput"], - "type": 0 - }, - "selector": "0x6568382f" - }, - { - "args": [ - { - "name": "spender", - "type": { - "displayName": ["psp22_external", "IncreaseAllowanceInput1"], - "type": 4 - } - }, - { - "name": "delta_value", - "type": { - "displayName": ["psp22_external", "IncreaseAllowanceInput2"], - "type": 0 - } - } - ], - "docs": [ - " Atomically increases the allowance granted to `spender` by the caller.", - "", - " An `Approval` event is emitted.", - "", - " # Errors", - "", - " Returns `ZeroSenderAddress` error if sender's address is zero.", - "", - " Returns `ZeroRecipientAddress` error if recipient's address is zero." - ], - "mutates": true, - "name": ["PSP22", "increase_allowance"], - "payable": false, - "returnType": { - "displayName": ["psp22_external", "IncreaseAllowanceOutput"], - "type": 20 - }, - "selector": "0x96d6b57a" - }, - { - "args": [], - "docs": [" Returns the total token supply."], - "mutates": false, - "name": ["PSP22", "total_supply"], - "payable": false, - "returnType": { - "displayName": ["psp22_external", "TotalSupplyOutput"], - "type": 0 - }, - "selector": "0x162df8c2" - }, - { - "args": [], - "docs": [], - "mutates": true, - "name": ["pause"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 20 - }, - "selector": "0x81e0c604" - }, - { - "args": [], - "docs": [], - "mutates": true, - "name": ["unpause"], - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 20 - }, - "selector": "0x67616649" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 0 - } - }, - "name": "supply" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0100000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0200000001000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "len": 4294967295, - "offset": "0x0300000000000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0300000001000000000000000000000000000000000000000000000000000000", - "ty": 8 - } - }, - "offset": "0x0200000001000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "balances" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0300000001000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0400000001000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0400000002000000000000000000000000000000000000000000000000000000", - "ty": 9 - } - }, - "len": 4294967295, - "offset": "0x0500000001000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0500000002000000000000000000000000000000000000000000000000000000", - "ty": 8 - } - }, - "offset": "0x0400000002000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "allowances" - } - ] - } - }, - "name": "psp22" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "enum": { - "dispatchKey": "0x0500000002000000000000000000000000000000000000000000000000000000", - "variants": { - "0": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0600000002000000000000000000000000000000000000000000000000000000", - "ty": 11 - } - }, - "name": null - } - ] - }, - "1": { - "fields": [] - } - } - } - }, - "name": "name" - }, - { - "layout": { - "enum": { - "dispatchKey": "0x0600000002000000000000000000000000000000000000000000000000000000", - "variants": { - "0": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0700000002000000000000000000000000000000000000000000000000000000", - "ty": 11 - } - }, - "name": null - } - ] - }, - "1": { - "fields": [] - } - } - } - }, - "name": "symbol" - }, - { - "layout": { - "cell": { - "key": "0x0700000002000000000000000000000000000000000000000000000000000000", - "ty": 6 - } - }, - "name": "decimals" - } - ] - } - }, - "name": "psp22_metadata" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0800000002000000000000000000000000000000000000000000000000000000", - "ty": 12 - } - }, - "name": "paused" - } - ] - } - }, - "name": "pausable" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0900000002000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0a00000002000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0a00000003000000000000000000000000000000000000000000000000000000", - "ty": 13 - } - }, - "len": 4294967295, - "offset": "0x0b00000002000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0b00000003000000000000000000000000000000000000000000000000000000", - "ty": 14 - } - }, - "offset": "0x0a00000003000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "admin_roles" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0b00000003000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0c00000003000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0c00000004000000000000000000000000000000000000000000000000000000", - "ty": 15 - } - }, - "len": 4294967295, - "offset": "0x0d00000003000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0d00000004000000000000000000000000000000000000000000000000000000", - "ty": 17 - } - }, - "offset": "0x0c00000004000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "members" - } - ] - } - }, - "name": "access_control" - } - ] - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 1, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "last_vacant", - "type": 2, - "typeName": "Index" - }, - { - "name": "len", - "type": 2, - "typeName": "u32" - }, - { - "name": "len_entries", - "type": 2, - "typeName": "u32" - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "Header"] - } - }, - { - "id": 2, - "type": { - "def": { - "primitive": "u32" - } - } - }, - { - "id": 3, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 7, - "typeName": "VacantEntry" - } - ], - "index": 0, - "name": "Vacant" - }, - { - "fields": [ - { - "type": 4, - "typeName": "T" - } - ], - "index": 1, - "name": "Occupied" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 4 - } - ], - "path": ["ink_storage", "collections", "stash", "Entry"] - } - }, - { - "id": 4, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 5, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_env", "types", "AccountId"] - } - }, - { - "id": 5, - "type": { - "def": { - "array": { - "len": 32, - "type": 6 - } - } - } - }, - { - "id": 6, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 7, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "next", - "type": 2, - "typeName": "Index" - }, - { - "name": "prev", - "type": 2, - "typeName": "Index" - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "VacantEntry"] - } - }, - { - "id": 8, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 0, - "typeName": "V" - }, - { - "name": "key_index", - "type": 2, - "typeName": "KeyIndex" - } - ] - } - }, - "params": [ - { - "name": "V", - "type": 0 - } - ], - "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] - } - }, - { - "id": 9, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 7, - "typeName": "VacantEntry" - } - ], - "index": 0, - "name": "Vacant" - }, - { - "fields": [ - { - "type": 10, - "typeName": "T" - } - ], - "index": 1, - "name": "Occupied" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 10 - } - ], - "path": ["ink_storage", "collections", "stash", "Entry"] - } - }, - { - "id": 10, - "type": { - "def": { - "tuple": [4, 4] - } - } - }, - { - "id": 11, - "type": { - "def": { - "primitive": "str" - } - } - }, - { - "id": 12, - "type": { - "def": { - "primitive": "bool" - } - } - }, - { - "id": 13, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 7, - "typeName": "VacantEntry" - } - ], - "index": 0, - "name": "Vacant" - }, - { - "fields": [ - { - "type": 2, - "typeName": "T" - } - ], - "index": 1, - "name": "Occupied" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 2 - } - ], - "path": ["ink_storage", "collections", "stash", "Entry"] - } - }, - { - "id": 14, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 2, - "typeName": "V" - }, - { - "name": "key_index", - "type": 2, - "typeName": "KeyIndex" - } - ] - } - }, - "params": [ - { - "name": "V", - "type": 2 - } - ], - "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] - } - }, - { - "id": 15, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 7, - "typeName": "VacantEntry" - } - ], - "index": 0, - "name": "Vacant" - }, - { - "fields": [ - { - "type": 16, - "typeName": "T" - } - ], - "index": 1, - "name": "Occupied" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 16 - } - ], - "path": ["ink_storage", "collections", "stash", "Entry"] - } - }, - { - "id": 16, - "type": { - "def": { - "tuple": [2, 4] - } - } - }, - { - "id": 17, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 18, - "typeName": "V" - }, - { - "name": "key_index", - "type": 2, - "typeName": "KeyIndex" - } - ] - } - }, - "params": [ - { - "name": "V", - "type": 18 - } - ], - "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] - } - }, - { - "id": 18, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 19, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 11 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 11 - } - ], - "path": ["Option"] - } - }, - { - "id": 20, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 18 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 21 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 18 - }, - { - "name": "E", - "type": 21 - } - ], - "path": ["Result"] - } - }, - { - "id": 21, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 11, - "typeName": "String" - } - ], - "index": 0, - "name": "Custom" - }, - { - "index": 1, - "name": "InsufficientBalance" - }, - { - "index": 2, - "name": "InsufficientAllowance" - }, - { - "index": 3, - "name": "ZeroRecipientAddress" - }, - { - "index": 4, - "name": "ZeroSenderAddress" - }, - { - "fields": [ - { - "type": 11, - "typeName": "String" - } - ], - "index": 5, - "name": "SafeTransferCheckFailed" - } - ] - } - }, - "path": ["contracts", "traits", "errors", "psp22", "PSP22Error"] - } - }, - { - "id": 22, - "type": { - "def": { - "sequence": { - "type": 6 - } - } - } - }, - { - "id": 23, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 4 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 4 - } - ], - "path": ["Option"] - } - } - ] - } -} diff --git a/.api-contract/src/test/contracts/ink/v2/erc20.contract.json b/.api-contract/src/test/contracts/ink/v2/erc20.contract.json deleted file mode 100644 index 507ef147..00000000 --- a/.api-contract/src/test/contracts/ink/v2/erc20.contract.json +++ /dev/null @@ -1,548 +0,0 @@ -{ - "source": { - "hash": "0x64d9597e882480b2e2e593eccc313cdb3cdd2aece25e6f10bae98f3efb4cdea0", - "language": "ink! 3.0.0-rc6", - "compiler": "rustc 1.58.0-nightly", - "wasm": "0x0061736d01000000016d1060037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060047f7f7f7f0060017f0060057f7f7f7f7f0060000060017f017e60067f7f7f7f7f7f0060037e7e7f0060017f017f60047f7f7f7f017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f60057f7f7f7e7e017f028a020b057365616c30127365616c5f64656275675f6d6573736167650001057365616c30127365616c5f636c6561725f73746f726167650005057365616c30127365616c5f6465706f7369745f6576656e740004057365616c30107365616c5f7365745f73746f726167650003057365616c30107365616c5f6765745f73746f726167650000057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e0003057365616c30147365616c5f686173685f626c616b65325f3235360003057365616c300b7365616c5f63616c6c65720002057365616c30167365616c5f76616c75655f7472616e73666572726564000203656e76066d656d6f7279020102100365640004020203030302040302020201010204040303020402060504020202020a0305030100080203050302050201030502030205070507040f0303060100000301020107020101080d010c04000309020b04010103030001010006060601010e0101010101040501700118180608017f01418080040b071102066465706c6f79003d0463616c6c003f091d010041010b171718694f2c5b5c6d4e60676a6b4f2a2a47494b2a6c2a500ab1a40164c40201087f2002410f4d047f2000052000410020006b41037122056a210620012104200021030340200320064f450440200320042d00003a0000200441016a2104200341016a21030c010b0b200220056b2202417c7121070240200120056a22054103710440200620076a21082005417c71220341046a2101200541037422044118712109410020046b411871210a20032802002104200621030340200320084f0d022003200420097620012802002204200a7472360200200141046a2101200341046a21030c000b000b200620076a210420052101200621030340200320044f0d0120032001280200360200200141046a2101200341046a21030c000b000b20024103712102200520076a2101200620076a0b2103200220036a21020340200220034d450440200320012d00003a0000200141016a2101200341016a21030c010b0b20000bf00101037f230041e0006b22042400200441186a20033602002004200236021420042001360210200441386a22014200370300200441306a22054200370300200441286a220642003703002004420037032020044100360240200442808001370254200441b6b304360250200441106a200441d0006a100c2002200441d0006a100d2003200441d0006a100d20042004290350370244200441086a200441406b2004280258100e2004280208200428020c200441206a1007200041186a2001290300370000200041106a2005290300370000200041086a200629030037000020002004290320370000200441e0006a24000b0d0020012000280200412010290b0a0020012000412010290b5e01027f200141086a220328020021042003410036020020012802042103200141ccb004360204200220044b044041e7a904412341fcaa041030000b2001200420026b3602082001200220036a36020420002002360204200020033602000bd70101037f230041d0006b220324002003200236020c20032001360208200341286a22014200370300200341206a22044200370300200341186a220542003703002003420037031020034100360230200342808001370244200341b6b304360240200341086a200341406b100c2002200341406b100d200320032903403702342003200341306a2003280248100e20032802002003280204200341106a1007200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290310370000200341d0006a24000b2201017f230041206b22032400200320002001100f200220031011200341206a24000b4c01017f230041206b22022400200241186a41808001360200200241b6b30436021420024100360210200241086a200241106a2000101320012002280208200228020c1003200241206a24000b2401017f230041206b220424002004200020012002100b200320041011200441206a24000b6102017f017e230041206b220324002001290204210420034100360218200320043703102002290300200241086a290300200341106a102820012003290310370204200341086a20012003280218100e20002003290308370300200341206a24000bcc0102027f057e230041306b220224000240200029030022084202510d0020012900182104200129001021052001290008210620012900002107200041186a22012d0000200141013a00004101710d0020084201520440200241286a2004370300200241206a2005370300200241186a20063703002002200737031020024201370308200241106a10010c010b200241286a2004370300200241206a2005370300200241186a20063703002002200737031020024201370308200041086a200241106a10110b200241306a24000bc70102017f027e230041e0006b220224002002200136020c200241106a2001101620022d00104101460440200220022d00113a0037200241cc006a4102360200200241dc006a41013602002002420237023c200241a48204360238200241023602542002200241d0006a3602482002200241376a36025820022002410c6a360250200241386a41f482041019000b200241186a2903002103200241206a2903002104200041106a200241286a2903003703002000200437030820002003370300200241e0006a24000be40102017f027e230041406a22022400200241808001360224200241b6b30436022002400240024002402001200241206a10360e0402010100010b200041003a0000200041086a42003703000c020b2002413c6a4100360200200241ccb0043602382002420137022c200241a8b104360228200241286a41f0b1041019000b20022002290320370328200241086a200241286a10272002290308a70440200041013b01000c010b200241186a290300210320022903102104200041003a0000200041106a2004370300200041086a4201370300200041186a20033703000b200241406b24000bd90401017f230041106b22022400024002400240024002400240024002400240024002400240024020002d000041016b0e0b0102030405060708090a0b000b4101210020012802184194ae0441062001411c6a28020028020c1100000d0b024020012d0000410471450440200128021841b08c044101200128021c28020c1100000d0d200128021841f4b2044105200128021c28020c110000450d010c0d0b200128021841ae8c044102200128021c28020c1100000d0c200241013a000f200241086a2002410f6a36020020022001290218370300200241f4b204410510620d0c200241ac8c04410210620d0c0b200128021841b18c044101200128021c28020c11000021000c0b0b20012802184187ae04410d2001411c6a28020028020c11000021000c0a0b200128021841f9ad04410e2001411c6a28020028020c11000021000c090b200128021841eead04410b2001411c6a28020028020c11000021000c080b200128021841d5ad0441192001411c6a28020028020c11000021000c070b200128021841c7ad04410e2001411c6a28020028020c11000021000c060b200128021841b3ad0441142001411c6a28020028020c11000021000c050b200128021841a7ad04410c2001411c6a28020028020c11000021000c040b2001280218419cad04410b2001411c6a28020028020c11000021000c030b20012802184195ad0441072001411c6a28020028020c11000021000c020b20012802184186ad04410f2001411c6a28020028020c11000021000c010b200128021841f4ac0441122001411c6a28020028020c11000021000b200241106a240020000b810201047f230041406a220224002000280200210441002100200241346a4100360200200241ccb00436023020024201370224200241a0af04360220027f4101200141186a28020022052001411c6a2802002201200241206a105f0d001a024003402002410436021c20024104360214200241ccaf043602102002410436020c200241acaf043602082002410336023c200241033602342002410336022c200241033602242002200020046a22033602202002200341036a3602382002200341026a3602302002200341016a3602282002200241206a36021820052001200241086a105f0d01200041046a22004120470d000b41000c010b41010b200241406b24000be70301077f230041106b220224002002200136020c200220003602082002419c8a04360204200241ccb004360200230041406a220324002003200236020c200341346a41013602002003420237022420034190ab043602202003410836023c2003200341386a36023020032003410c6a360238200341106a210641002101230041206b22042400200341206a220528020021072005280204220841037422000440200741046a21020340200228020020016a2101200241086a2102200041086b22000d000b0b024002400240024002400240200541146a280200450440200121000c010b02402008450d0020072802040d004100210220014110490d020b41002102200120016a22002001490d010b200022024100480d010b20042002104d20042802002200450d0120042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a10450d02200441206a24000c030b104c000b000b419887044133200441086a41f4850441b888041044000b2003280210210020032802182101024041b4b3042d000045044041b5b3042d00004101710d010b200020011000410947044041b4b30441013a00000b41b5b30441013a00000b000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101b20042902142105200441003602282004200537032020012002200441206a101c2003200441206a100d20042004290320370214200441086a200441106a2004280228100e200441206a2004280208200428020c101d2000200441206a101e200441406b24000b3300200120034b0440200120034194ac04102b000b20004100360200200041086a200320016b3602002000200120026a3602040b100020012002102420022000200110290bb50101077f230041206b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341186a22074200370300200341106a22084200370300200341086a22094200370300200342003703002001200220031007200420072903003700002005200829030037000020062009290300370000200020032903003700000c010b20002002200120024184830410210b200341206a24000b5f01037f230041206b22022400200241086a20002802042203200041086a28020020002802002204102320024100360218200220022903083703102001200241106a100d200020033602042000200420022802186a360200200241206a24000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101b20042902142105200441003602282004200537032020012002200441206a101c2003200441206a102020042004290320370214200441086a200441106a2004280228100e200441206a2004280208200428020c101d2000200441206a101e200441406b24000b230020002d000041014704402001410010330f0b200141011033200041016a2001100d0b7b0020012003460440200020022001100a1a0f0b230041306b2200240020002003360204200020013602002000411c6a41023602002000412c6a41043602002000420337020c200041ec9104360208200041043602242000200041206a360218200020003602282000200041046a360220200041086a20041019000b5f01037f230041206b22012400200141086a20002802042202200041086a28020020002802002203102320014100360218200120012903083703104103200141106a1024200020023602042000200320012802186a360200200141206a24000b2900200220034904402003200241a48304102b000b2000200220036b3602042000200120036a3602000b7401017f230041106b2202240002402000413f4d04402001200041027410330c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210290c010b200041ffffffff034d044020004102744102722001103b0c010b20014103103320002001103b0b200241106a24000bae0102017f027e230041406a22022400200241186a200110260240024020022d001841014704402002200110272002290300a7450d010b200042013703000c010b200241106a2903002103200229030821042000200229001937000820004200370300200041286a2004370300200041306a2003370300200041206a200241316a290000370000200041186a200241296a290000370000200041106a200241216a2900003700000b200241406b24000bb50202037f017e230041306b22022400200241086a41047221042000027f0240034020022001102f20022d00004101710d01200320046a20022d00013a0000200341016a22034120470d000b200041086a200241136a2f00003b00002000410a6a200241156a2d00003a00002000410f6a2002411a6a2f01003b0000200041116a2002411c6a2d00003a0000200041166a200241216a2f00003b0000200041186a200241236a2d00003a0000200220022f010c3b0104200220022d000e3a0006200241166a28010021012002411d6a2800002103200241246a2902002105200228000f2104200041036a20022d00063a0000200020022f01043b0001200041196a2005370000200041126a20033600002000410b6a2001360000200041046a200436000041000c010b41010b3a0000200241306a24000b6402027f037e230041106b22022400200241086a22034200370300200242003703000240200120024110102d45044020032903002105200229030021060c010b420121040b2000200637030820002004370300200041106a2005370300200241106a24000b2a01017f230041106b2203240020032001370308200320003703002002200341101029200341106a24000b5201027f230041106b22032400200341086a20002802082204200220046a22042000280200200028020441e4ab0410572003280208200328020c2001200241f4ab04102120002004360208200341106a24000b0300010b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341c89004360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a20021019000bc00101037f230041306b220224004183af042103411921040240024002400240024020002d000041016b0e0400010203040b41e7ae042103411c21040c030b41d1ae042103411621040c020b41bdae042103411421040c010b41a4ae0421030b2002411c6a41013602002002200436022c20022003360228200241063602242002420137020c2002419cae04360208200141186a2802002001411c6a2802002002200241286a3602202002200241206a360218200241086a105f200241306a24000b3d01027f2000280204220320024922044504402001200220002802002201200241e4b20410212000200320026b3602042000200120026a3602000b20040b910102027f017e230041106b220124002001420437030841042102027f02400240034020012000102f20012d00004101710d01200141086a20026a20012d00013a0000200241016a22024108470d000b20012903082203a741044f0d0141ccb004411b41e8b0041030000b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b3f01027f230041106b22022400200241003a000f200020012002410f6a4101102d2201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4601017f230041206b22032400200341146a4100360200200341ccb004360210200342013702042003200136021c200320003602182003200341186a360200200320021019000bbe0502047f027e230041a0016b22012400200141086a200041e000100a1a200141106a21030240200129030822064201520440200141f0006a220241808001360200200141b6b30436026c20014100360268200141e8006a102220014198016a220020022802003602002001200129036837039001200141e8006a20014190016a41c483041032200141e8006a41d0830441152003101f20002002280200360200200120012903683703900120014190016a41e583044113200341216a101f0c010b200141f0006a220241808001360200200141b6b30436026c20014100360268200141e8006a102220014198016a220020022802003602002001200129036837039001200141e8006a20014190016a418884041032200141e8006a4194840441162003101a20002002280200360200200120012903683703900120014190016a41aa84044118200141306a101a0b20014188016a2000280200360200200120012903900137038001230041206b22002400200041186a220420014180016a220241086a28020036020020002002290200220537031020004100360210200041086a200041106a2005a7100e20002903082105200141e8006a220241086a2004280200360200200220002903103702002002200537020c200041206a240020014198016a200141f0006a2802003602002001200129036837039001200141f8006a2802002100200128027420012902940121052001410036027020012005370368027f2006500440200141e8006a410010332003200141e8006a1020200341216a200141e8006a1020200141d8006a0c010b200141e8006a410110332003200141e8006a100d200141306a200141e8006a100d200141d0006a0b2203290300200341086a290300200141e8006a10282001200129036837029401200120014190016a2001280270100e2000200128020020012802041002200141a0016a24000bb40102027f017e230041406a22032400200341106a2001280200200141046a280200200141086a2204280200101b20032902142105200341003602282003200537032020022802002002280204200341206a101c200341206a2002280208410f102920032003290320370214200341086a200341106a2003280228100e200341206a2003280208200328020c101d2001200341206a101e200041086a200428020036020020002001290200370200200341406b24000b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b200220034184ac041056000b4601017f230041206b22012400200141186a41808001360200200141b6b30436021420014100360210200141086a200141106a2000101341002001280208200128020c1037000baa0102047f017e230041206b22032400200341186a41808001360200200341b6b30436021420034100360210200341086a230041206b22022400200341106a220429020421062002410036021820022006370310200241106a200141ff0171410247047f200241106a4101103320010541000b103320042002290310370204200241086a20042002280218100e2002290308370300200241206a240020002003280208200328020c1037000b5401017f230041106b220224002002200128020436020c200020012802002002410c6a100421002001200228020c1039410c21012000410b4d0440200041027441fcb2046a28020021010b200241106a240020010b0b002000200120021006000b6001017f230041106b2201240020004200370000200041186a4200370000200041106a4200370000200041086a420037000020014120360204200120003602002001412036020c20002001410c6a10082001200128020c1039200141106a24000b3701017f230041106b22022400200241086a410020012000280200200028020441e4ac04105720002002290308370200200241106a24000b4c01017f230041206b220324002000450440410120021035000b200341186a4200370300200341106a4200370300200341086a420037030020034200370300200120031014410020021035000b2601017f230041106b220224002002200036020c20012002410c6a41041029200241106a24000b2e01017f230041e0006b22012400200141086a200041d800100a1a2001420037030020011031200141e0006a24000b880502027f027e230041e0026b22002400200041808001360224200041b6b304360220200041206a103e200020002903203703a801027f0240027f4101200041a8016a102e4281feffffff1f834280b6baede90b520d001a200041086a200041a8016a1027200041186a29030021022000290310210320002802084100470b450440200041e1016a4200370000200041d9016a4200370000200041d1016a4200370000200041c9016a4200370000200041f8016a420037030020004180026a420037030020004188026a420037030020004198026a4200370300200041a0026a4200370300200041a8026a4200370300200042013703f0012000420237039002200041013a00c801200042023703a801200020023703b802200020033703b002200041c0026a1038200041f0016a200041c0026a200041b0026a101020002903a8014202510d01200042013703a801200041b0016a0c020b200041033a00c002200041bc016a4101360200200042013702ac01200041e884043602a801200041053602242000200041206a3602b8012000200041c0026a360220200041a8016a41a085041019000b200042013703a801200041b0016a0b2201200337030020012002370308200041c0016a220141003a0000200041f0006a2002370300200041da006a200041d8026a290300370100200041d2006a200041d0026a290300370100200041ca006a200041c8026a290300370100200041c2006a20002903c00237010020002003370368200041013a0041200041003a0020200041206a103c200041206a200041a8016a418801100a1a20014200370300200041b8016a4200370300200041b0016a4200370300200042003703a801200041206a200041a8016a1014200041e0026a24000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10052000200128020c1039200141106a24000bb32002077f077e230041e0046b2200240002400240230041206b22012400200141086a220242003703002001420037030020014110360214200120013602102001411036021c20012001411c6a1009200141106a200128021c10392002290300210720012903002108200141206a2400410541042007200884501b41ff017122014105460440200041808001360264200041b6b304360260200041e0006a103e200020002903603703a801200041a8016a102e22074201832208a70d01200742807e8342002008501b22094280feffffff1f832207422088a721032007421888a721022007421088a721044106210102400240024002400240024002402009a741087641ff01712206410b6b0e050509090901000b0240200641e8006b0e03040902000b2006418401460d02200641db0147200441ff017141e3004772200241ff017141f50047720d0841002102200341a801460d050c080b200441ff017141f50047200241ff017141da004772200341d60047720d0720004188026a200041a8016a10264101210220002d0088024101460d06200041c0016a20004192026a290100370300200041c8016a2000419a026a290100370300200041cf016a200041a1026a2900003700002000200029018a023703b80120002d00890221050c040b200441ff0171200241ff017141164772200341de0047720d06200041c0036a200041a8016a102620002d00c0034101460d0520004180046a200041a8016a102620002d0080044101460d05200041aa026a200028008404360000200041d8006a200041a0046a2d00003a000020004190026a200041ca036a29010037030020004198026a200041d2036a2901003703002000419f026a200041d9036a29000037000020002000280081043600a702200020002901c20337038802200020004198046a29030037035020004190046a290300210820004188046a290300210720002d00c1032105200041b8016a20004188026a4126100a1a410221020c030b200441ff017141a10147200241ff017141dd004772200341a10147720d0520004188026a200041a8016a10252000290388024201510d042000419e046a200041a8026a290300220737010020004196046a200041a0026a2903002208370100200041ce036a20004198026a290300220a370100200041d6036a2008370100200041de036a2007370100200041ee016a200a370000200041f6016a2008370000200041fe016a2007370000200020002903900222073701c603200020073700e601200041b8026a2903002108200041b0026a2903002107200041b8016a200041e0016a4126100a1a410321020c020b200441ff0171411247200241ff017141e6004772200341a00147720d0420004188026a200041a8016a10252000290388024201510d032000419e046a200041a8026a290300220737010020004196046a200041a0026a2903002208370100200041ce036a20004198026a290300220a370100200041d6036a2008370100200041de036a2007370100200041ee016a200a370000200041f6016a2008370000200041fe016a2007370000200020002903900222073701c603200020073700e601200041b8026a2903002108200041b0026a2903002107200041b8016a200041e0016a4126100a1a410421020c010b200441ff0171413947200241ff017141ef0047722003411847720d03200041b8016a200041a8016a102620002d00b8014101460d02200041e0016a200041a8016a102620002d00e0014101460d02200041386a200041a8016a10272000290338a70d02200041c8006a290300210a2000290340210b200041a8036a2201200041d1016a290000370300200041a0036a2205200041c9016a29000037030020004198036a2202200041c1016a290000370300200041d8006a200041f9016a2d00003a0000200020002900b901370390032000200041f1016a2900003703502000200041fa016a2801003602b0012000200041fd016a2800003600b301200041e9016a290000210820002900e10121072000419e026a200529030022093701002000418e046a2002290300220c37010020004196046a20093701002000419e046a2001290300220d370100200041de036a200d370000200041d6036a2009370000200041ce036a200c3700002000200029039003220937018604200020093700c603200041b8016a200041c0036a4126100a1a410521020b20004180016a200041b8016a4126100a1a200041f8006a200041d8006a2d00003a000020002000290350370370200020002802b001360268200020002800b30136006b200221010c020b200020013a008802230041206b22012400200141146a4101360200200142013702042001419cae043602002001410536021c200120004188026a3602182001200141186a360210200141a085041019000b410621010b024020014106470440200041b8016a20004180016a4126100a1a200041bc036a200028006b360000200041b8036a2203200041f8006a2d00003a0000200020002802683600b903200041d8006a220220032903003703002000200029037022093703b00320002009370350200041e0016a200041b8016a4126100a1a024002400240024002400240200141016b0e050403020100050b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d00241012101200041013a00a8022000420237038802200042023703f00220004198016a200041fe016a29000037030020004190016a200041f6016a29000037030020004188016a200041ee016a290000370300200020002900e60137038001200020083703c803200020073703c003200041d8036a2002290300370300200020002903503703d00320004180046a1038200041286a20004188026a20004180016a20004180046a1040024020002903282208200b542202200041306a2903002207200a542007200a511b0d0020004188026a20004180016a200041c0036a200b200a104141ff017122014102470d0020002008200b7d3703900320002007200a7d2002ad7d37039803200041f0026a20004180016a20004180046a20004190036a1012410221010b200141024620004188026a2001103a000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f002200041a8036a2201200041fe016a290000370300200041a0036a2202200041f6016a29000037030020004198036a2203200041ee016a290000370300200020002900e60137039003200020083703b803200020073703b00320004180016a1038200041f0026a20004180016a20004190036a200041b0036a1012200041d8036a20004198016a290300370300200041d0036a20004190016a290300370300200041c8036a20004188016a290300370300200041e8036a2003290300370300200041f0036a2002290300370300200041f8036a200129030037030020002000290380013703c00320002000290390033703e00320004188046a200041c0036a41c000100a1a200041d0046a2008370300200041c8046a2007370300200042013703800420004180046a1031410120004188026a4102103a000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f002200041d8036a200041fe016a290000370300200041d0036a200041f6016a290000370300200041c8036a200041ee016a290000370300200020002900e6013703c00320004180046a103820004188026a20004180046a200041c0036a20072008104141ff0171220141024620004188026a2001103a000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f00220004180046a200041b8016a4126100a1a20004189016a200041c0016a29010037000020004191016a200041c8016a29010037000020004198016a200041cf016a290000370000200020053a008001200020002901b80137008101200041cf036a2008370000200041df036a20022d00003a0000200020073700c7032000200041a2046a2800003600c3032000200028009f043602c003200020002903503700d703200041186a20004188026a20004180016a200041c0036a10402000200041206a29030037039803200020002903183703900320004190036a1034000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f002200020053a00800420004189046a200041c0016a29010037000020004191046a200041c8016a29010037000020004198046a200041cf016a290000370000200020002901b80137008104200041086a20004188026a20004180046a10422000200041106a2903003703c803200020002903083703c003200041c0036a1034000b200041d8036a22014200370300200041d0036a22024200370300200041c8036a4200370300200042003703c00320004180800136028404200041b6b304360280040240024002400240200041c0036a20004180046a10360e0401000002000b2000419c026a4100360200200041ccb004360298022000420137028c02200041a8b1043602880220004188026a41f0b1041019000b200041a8026a2001290300370300200041a0026a200229030037030020004198026a200041c8036a290300370300200020002903c00337039002200042013703880220004180046a20004190026a101620002d0080044101460d0320004188046a2903004200520d0141d88104411741f081041043000b41808004411e41d880041043000b20004198046a2903002107200020004190046a29030037038004200020073703880420004180046a1034000b200041033a00c0032000419c026a41013602002000420137028c02200041d48504360288022000410536028404200020004180046a360298022000200041c0036a3602800420004188026a41a085041019000b200020002d0081043a00800141e88004412720004180016a4194830441c881041044000b5d02017f017e230041406a22042400200441206a200141e8006a20022003100b200441086a200441206a1015200429031021052000200441186a2903004200200428020822011b37030820002005420020011b370300200441406b24000bda0202037f037e23004180016b22052400200541186a200020011042200529031822092003542207200541206a290300220820045420042008511b4504402005200920037d3703282005200820047d2007ad7d370330200041c8006a22062001200541286a1010200541086a200020021042200541106a290300210820052005290308220920037c220a37032820052009200a56ad200420087c7c37033020062002200541286a1010200541f8006a2004370300200541c1006a200141186a290000370000200541396a200141106a290000370000200541316a200141086a290000370000200541ca006a2002290000370100200541d2006a200241086a290000370100200541da006a200241106a290000370100200541e2006a200241186a29000037010020052003370370200541013a0049200541013a002820052001290000370029200541286a103c410221060b20054180016a240020060b5b02017f017e230041406a22032400200341206a200141c8006a2002100f200341086a200341206a1015200329031021042000200341186a2903004200200328020822011b37030820002004420020011b370300200341406b24000b6001017f230041106b220324002003200136020c20032000360208230041206b22002400200041146a4101360200200042013702042000419cae043602002000410636021c2000200341086a3602182000200041186a360210200020021019000b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41073602002005420237021c200541fcb004360218200541063602342005200541306a3602282005200541106a3602382005200541086a360230200541186a20041019000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41dc8504200241086a1046200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a105d20032003290310370320200341086a20042000410c6a105d20032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002104841000b2801017f20002002104a2000280208220320002802006a20012002100a1a2000200220036a3602080b960201027f230041106b22022400200028020021000240200141ff004d044020002802082203200028020446044020004101104a200028020821030b2000200341016a360208200028020020036a20013a00000c010b2002410036020c20002002410c6a027f20014180104f044020014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c020b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c010b20022001413f71418001723a000d2002200141067641c001723a000c41020b10480b200241106a240041000ba70301077f230041106b2205240002400240200120002802042207200028020822026b4b0440200120026a22012002490d022000280200410020071b210841002102230041106b220624002005027f20074101742204200120012004491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001104d20062802082103200628020c0c030b200141acb304280200220420016a22022004490d021a41b0b3042802002002490440200141ffff036a220341107640002202417f46200241ffff0371200247720d022002411074220420034180807c716a22022004490d024100210341b0b30420023602002001200120046a22022004490d031a0b41acb304200236020020012004450d021a200420082007100a210320010c020b20062001104d2006280200210320062802040c010b4100210320010b2102200304402005200336020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d00000b104c000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1045200241206a24000b0f0041f586044111418887041030000ba90101027f027f41012001450d001a410041acb304280200220220016a22032002490d001a024041b0b3042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141b0b30420033602004100200120026a22032002490d021a0b41acb304200336020020020c010b41000b210320002001360204200020033602000b0e0020002802001a03400c000b000bc00202047f027e20003502002106230041306b2203240041272100024020064290ce00540440200621070c010b0340200341096a20006a220241046b200620064290ce008022074290ce007e7da7220441ffff037141e4006e220541017441b48d046a2f00003b0000200241026b2004200541e4006c6b41ffff037141017441b48d046a2f00003b0000200041046b2100200642ffc1d72f56200721060d000b0b2007a7220241e3004a0440200041026b2200200341096a6a2007a72202200241ffff037141e4006e220241e4006c6b41ffff037141017441b48d046a2f00003b00000b02402002410a4e0440200041026b2200200341096a6a200241017441b48d046a2f00003b00000c010b200041016b2200200341096a6a200241306a3a00000b200141ccb0044100200341096a20006a412720006b1051200341306a24000b0d00429e9fe3ccf2a3c7c8fb000bb30301077f230041106b2206240020002802002205410171220820046a210702402005410471450440410021010c010b2001200120026a105220076a21070b412b418080c40020081b210802402000280208410147044041012105200020082001200210530d012000280218200320042000411c6a28020028020c11000021050c010b024020072000410c6a280200220949044020002d00004108710d014101210520062000200920076b4101105420062802002207418080c400460d0220062802042109200020082001200210530d022000280218200320042000411c6a28020028020c1100000d02200720092000105521050c020b41012105200020082001200210530d012000280218200320042000411c6a28020028020c11000021050c010b2000280204210a2000413036020420002d0020210b41012105200041013a0020200020082001200210530d00200641086a2000200920076b4101105420062802082201418080c400460d00200628020c21022000280218200320042000411c6a28020028020c1100000d0020012002200010550d002000200b3a00202000200a360204410021050b200641106a240020050b2b01017f200020014704400340200220002c000041bf7f4a6a2102200041016a22002001470d000b0b20020b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000b9b0101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03000100020b41002105200221040c010b20024101762104200241016a41017621050b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b4701027f2002411c6a28020021032002280218210441002102027f0340200120012002460d011a200241016a2102200420002003280210110100450d000b200241016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341808b04360208200341043602242003200341206a360218200320033602282003200341046a360220200341086a20021019000bd2010002400240200120024d0440200220044d0d01230041306b2200240020002004360204200020023602002000411c6a41023602002000412c6a41043602002000420237020c200041e890043602080c020b230041306b2200240020002002360204200020013602002000411c6a41023602002000412c6a41043602002000420237020c2000419c91043602080c010b2000200220016b3602042000200120036a3602000f0b200041043602242000200041206a3602182000200041046a36022820002000360220200041086a20051019000b5301047f200141086a280200210220012802042103200141046a10592204418080c4004704402001200128020420012802002205200220036b6a6a20012802086b3602000b20002004360204200020053602000bb70101047f200028020022012000280204460440418080c4000f0b2000200141016a36020020012d00002203411874411875417f4c047f2000200141026a36020020012d0001413f7121022003411f712104200341df014d044020044106742002720f0b2000200141036a36020020012d0002413f712002410674722102200341f00149044020022004410c74720f0b2000200141046a3602002004411274418080f0007120012d0003413f71200241067472720520030b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b980301057f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a1058200228021c418080c400470d010c020b0b200241106a200241206a10582002280214418080c400460d00200241086a200228021020032004105a200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a105222054b044020022001200020056b410010544101210020022802002205418080c400460d01200228020421062001280218200320042001411c6a28020028020c1100000d01200520062001105521000c010b2001280218200320042001411c6a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044109470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141a48d04102b000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1046200341206a24000b6c01027f230041206b220224004101210302402000200110610d002002411c6a4100360200200241ccb0043602182002420137020c200241cc8804360208200141186a2802002001411c6a280200200241086a105f0d00200041046a2001106121030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d0120002001104f0c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a105e2001419caf0441022002280208200228020c10510c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a105e2001419caf0441022002280200200228020410510b20024190016a24000bc306010c7f230041406a22032400027f024020020440200341386a210d2000280204210b2000280200210c2000280208210a0340200a2d00000440200c41918b044104200b28020c1100000d030b2003410a3602382003428a808080103703302003200236022c4100210020034100360228200320023602242003200136022041012107200341086a2001220420022205027f03400240200020046a2106200320076a41376a2d000021070240024002400240200541084f0440200641036a417c7120066b2200450440410021040c020b200341186a410020052000200020054b1b22042006200541f48f041057200328021c2208450d0120032802182109410021000340200020096a2d00002007460d03200041016a22002008470d000b0c010b2005450d04410021000340200020066a2d00002007460d02200041016a22002005470d000b0c040b02402004200541086b22084b0d00200741818284086c21000340200420066a2209280200200073220e417f73200e41818284086b71200941046a2802002000732209417f73200941818284086b7172418081828478710d01200441086a220420084d0d000b0b200420054b0d0120042005460d03200420056b2105200420066a21064100210003402007200020066a2d00004704402005200041016a22006a0d010c050b0b200020046a21000b2003200020032802286a41016a2200360228200020032802342204490d01200020032802244b0d0120032802202105200341106a41002004200d4104418094041057024020032802142004460440027f2005200020046b22086a210020032802102105034041002004450d011a200441016b210420052d0000210620002d00002107200041016a2100200541016a210520062007460d000b200720066b0b450d010b200328022821000c020b200a41013a0000200841016a0c040b2004200541849004102b000b200328022c22042000490d00200420032802244b0d00200420006b210520032802342107200328022021040c010b0b200a41003a000020020b2200418c8c041063200c2003280208200328020c200b28020c1100000d022003200120022000419c8c04106420032802002101200328020422020d000b0b41000c010b41010b200341406b24000b4e01027f230041106b22052400200541086a200320012002105a20052802082206450440200120024100200320041065000b200528020c21012000200636020020002001360204200541106a24000b4d0002402003450d000240200220034d044020022003470d010c020b200120036a2c000041bf7f4a0d010b200120022003200220041065000b2000200220036b3602042000200120036a3602000b9b0601027f23004180016b220524002005200336021c200520023602182005027f20014181024f0440418002210602400340200020066a2c000041bf7f4a0d01200641016b22060d000b410021060b200541106a20002001200641fc920410632005200529031037032020054190940436022841050c010b2005200136022420052000360220200541ccb00436022841000b36022c024002402005200120024f047f200120034f0d0120030520020b360238200541d4006a4103360200200541ec006a4106360200200541e4006a410636020020054203370244200541b894043602402005410436025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580c010b200541086a20002001027f02400240200220034d04402002450d010240200120024d044020012002470d010c030b200020026a2c000041bf7f4a0d020b20052002360230200221030c020b200541f4006a4106360200200541ec006a4106360200200541e4006a4104360200200541d4006a410436020020054204370244200541f494043602402005410436025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580c030b2005200336023041002003450d011a0b03400240200120034d044020012003470d0120010c030b200020036a2c00004140480d0020030c020b200341016b22030d000b41000b22062004106420052005280208220036025820052000200528020c6a36025c2005200541d8006a1059200410662200360234200520063602382005027f41012000418001490d001a41022000418010490d001a41034104200041808004491b0b20066a36023c200541d4006a4105360200200541fc006a4106360200200541f4006a4106360200200541ec006a410a360200200541e4006a410b36020020054205370244200541c895043602402005410436025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580b200541406b20041019000b1a002000418080c40046044041d88904412b20011030000b20000b8f0802077f017e4101210602402001280218220741272001411c6a28020028021022081101000d0041f4002103410221010240027f02400240027f0240024002402000280200220241096b0e050704010105000b2002412746200241dc0046720d010b2002410b7421044100210141202103412021000240027e02400240027f034002402004200341017620016a220341027441a4a3046a280200410b7422054d044020042005470440200321000c020b41010c030b200341016a21010b200020016b2103200020014b0d000b2001210341000b20036a2204411f4d04402004410274210141c20521032004411f470440200141a8a3046a28020041157641016b21030b410021002004200441016b22054f0440200541204f0d02200541027441a4a3046a28020041ffffff007121000b02402003200141a4a3046a2802004115762201460d00200141c305200141c3054b1b2104200220006b21054100210003400240200120044704402000200141a4a4046a2d00006a220020054d0d01200121030c030b200441c3054184a3041056000b2003200141016a2201470d000b0b20034101710d02024002402002418080044f04402002418080084f0d01200241ab9c04412a41ff9c0441c00141bf9e0441b60310680d070c020b2002418c9704412841dc970441a00241fc990441af021068450d010c060b200241e0ffff007141e0cd0a46200241b9ee0a6b41074972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d050b200241017267410276410773ad4280808080d000840c030b2004412041f4a2041056000b200541204194a3041056000b200241017267410276410773ad4280808080d000840b210941032101200221030c060b41010c010b41020b2101200221030c030b41ee000c010b41f2000b21030b034020012102410021012003210002400240024002400240200241016b0e03040200010b024002400240024002402009422088a741ff017141016b0e050004010203050b200942ffffffff8f6083210941fd002100410321010c070b200942ffffffff8f608342808080802084210941fb002100410321010c060b200942ffffffff8f608342808080803084210941f5002100410321010c050b200942ffffffff8f60834280808080c00084210941dc002100410321010c040b413041d70020032009a7220141027476410f712200410a491b20006a41c88904106621002001450d02200942017d42ffffffff0f83200942808080807083842109410321010c030b20074127200811010021060c040b41dc002100410121010c010b200942ffffffff8f6083428080808010842109410321010b200720002008110100450d000b0b20060be00201087f230041106b2208240041012107024002402002450d00200120024101746a210a20004180fe0371410876210b41002102200041ff0171210d0340200141026a210c200220012d00016a2109200b20012d000022014704402001200b4b0d0220092102200c2201200a470d010c020b200841086a200220092003200441ec9604105720082802082102200828020c2101024003402001450d01200141016b210120022d0000210e200241016a2102200d200e470d000b410021070c030b20092102200c2201200a470d000b0b2006450d00200520066a2103200041ffff0371210203400240200541016a2100027f200020052d00002201411874411875220441004e0d001a20002003460d0120052d0001200441ff0071410874722101200541026a0b2105200220016b22024100480d022007410173210720032005470d010c020b0b41d88904412b41fc96041030000b200841106a240020074101710b7e01037f23004190016b2202240020002d0000210341ff0021000340200241106a20006a413041372003410f712204410a491b20046a3a0000200041016b21002003220441047621032004410f4b0d000b200241086a200241106a200041016a105e2001419caf0441022002280208200228020c105120024190016a24000b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1046200241206a24000b0b0020002802002001105b0b1b00200128021841f4b20441052001411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a280200220441ac8a04410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241bc8a043602282002410c3602142002200241106a36023820022002410c6a36021020042001200241286a105f450d010c020b20032802002200200328020428020c11080042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241bc8a043602282002410d3602142002200241106a36023820022002410c6a36021020042001200241286a105f0d010b200328020c2100200241246a41033602002002413c6a410e360200200241346a410e36020020024203370214200241848a0436021020022000410c6a3602382002200041086a3602302002410636022c200220003602282002200241286a36022020042001200241106a105f21000b200241406b240020000b0ba1330600418080040bc72f656e636f756e746572656420656d7074792073746f726167652063656c6c2f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f6c617a792f6d6f642e72730000001e000100370000009d00000019000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f7472616974732f6d6f642e72738f00010039000000a80000000a00000073746f7261676520656e7472792077617320656d707479008f00010039000000a90000000a0000006661696c656420746f2070756c6c207061636b65642066726f6d20726f6f74206b657920000101002400000078180100020000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f7472616974732f6f7074737065632e7273000000340101003d0000006b0000000d000000b0180100400000009d000000300000000f000000010000000100000001000000a015010041000000b50000003700000045726332303a3a5472616e73666572004c18010000000000b401010045726332303a3a5472616e736665723a3a66726f6d45726332303a3a5472616e736665723a3a746f45726332303a3a417070726f76616c004c18010000000000f801010045726332303a3a417070726f76616c3a3a6f776e657245726332303a3a417070726f76616c3a3a7370656e6465726469737061746368696e6720696e6b2120636f6e7374727563746f72206661696c65643a200042020100250000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6578616d706c65732f65726332302f6c69622e72730000700201002e0000000f000000050000006469737061746368696e6720696e6b21206d657373616765206661696c65643a20000000b002010021000000100000000400000004000000110000001200000013000000140000000000000001000000150000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700000403010071000000fd010000050000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273cb0301006d000000550200001c0000002e2e000048040100020000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e72730000005404010071000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75653a4c18010000000000030501000100000003050100010000001600000000000000010000001700000070616e69636b65642061742027272c2038050100010000003905010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732000004c050100200000006c0501001200000060202020202f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e7273000095050100750000002f00000021000000950501007500000030000000120000002c0a280a28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727300003206010070000000650000001400000030303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e72730000007c07010075000000420000001e0000007c070100750000005b0000000500000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468201408010012000000260801002200000072616e676520656e6420696e6465782058080100100000002608010022000000736c69636520696e64657820737461727473206174202062757420656e6473206174200078080100160000008e0801000d000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028ac08010015000000c10801002b00000031060100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727304090100780000001d010000110000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72738c09010074000000b7010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000150a01000b000000200a0100160000009005010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e6720600000500a01000e0000005e0a010004000000620a0100100000009005010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060150a01000b000000940a010026000000ba0a010008000000c20a01000600000090050100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e72730000f00a01007a0000000a0000001c000000f00a01007a0000001a0000003600000000010305050606020706080709110a1c0b190c1a0d100e0d0f0410031212130916011704180119031a071b011c021f1620032b032d0b2e01300331023201a702a902aa04ab08fa02fb05fd02fe03ff09ad78798b8da23057588b8c901cdd0e0f4b4cfbfc2e2f3f5c5d5fe2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d11293a3b4549575b5c5e5f64658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff806d71dedf0e1f6e6f1c1d5f7d7eaeaf7fbbbc16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f747596262e2fa7afb7bfc7cfd7df9a409798308f1fd2d4ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab051f09811b03190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15054e071b0757070206160d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd03590716091809140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a062f314d0380a4083c030f033c0738082b0582ff1118082f112d03210f210f808c048297190b158894052f053b07020e180980be22740c80d61a0c0580ff0580df0cf29d033709815c1480b80880cb050a183b030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a61081f50701202a064c04808d0480be031b030f0d000601010301040205070702080809020a050b020e041001110212051311140115021702190d1c051d0824016a046b02af03bc02cf02d102d40cd509d602d702da01e005e102e704e802ee20f004f802fa02fb010c273b3e4e4f8f9e9e9f7b8b9396a2b2ba86b1060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5fbfeeef5a62f4fcff9a9b2e2f2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fe7ecefffc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b4e43813709160a08183b45390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a161a261c1417094e042409440d19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d133a060a362c041780b93c64530c48090a46451b4808530d498107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48a4c630d842f8fd18247a1b98239072a045c06260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2e781332d03110408818c89046b050d0309071092604709743c80f60a7308701546809a140c570919808781470385420f1584501f80e12b80d52d031a040281401f113a050184e080f7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d80510030d03740c59070c04010f0c0438080a062808224e81540c1503050307091d030b05060a0a060808070980cb250a84062f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e72730000f51001007d0000004b00000028000000f51001007d0000005700000016000000f51001007d000000520000003e0000000003000083042000910560005d13a0001217201f0c20601fef2ca02b2a30202c6fa6e02c02a8602d1efb602e00fe20369eff6036fd01e136010a2137240de137ab0e61392f18a139301ce147f31e214cf06ae14f4f6f21509dbca15000cf615165d1a15100da215200e0e15330e16155aee2a156d0e8e15620006e57f001ff5700700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b033c082a180120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c01090128010301370101030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d021e021e02400201070801020b09012d030101750222017603040209010603db0202013a010107010101010208060a0201301f310430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c6400001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990b31047b01360f290102020a033104020207013d03240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002002e0217000101030405080802071e0494030037043208010e011605010f00070111020701020105000700013d0400076d07006080f000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72730a15010072000000e6050000090000000a0000004c180100000000008c150100010000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000a0150100410000005800000009000000a0150100410000005800000031000000a0150100410000006300000009000000a015010041000000810000001a0000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000241601003e000000780100001400000045636473615265636f7665724661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e644e6577436f6e74726163744e6f7446756e6465645472616e736665724661696c656442656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f646500004c180100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f72307800009c170100020000005f000000a8170100010000004c180100000000004c180100000000004c18010041d0af040b092000000008000000020041e4af040b15020000000300000001000000200000000800000002004184b0040b150200000003000000020000002000000008000000020041a4b0040b150200000003000000030000002000000008000000020041c4b0040be50202000000030000005765206465636f646520604e6020656c656d656e74733b20716564000019010061000000cd020000170000003a2000004c180100000000007818010002000000656e636f756e746572656420756e6578706563746564206572726f728c1801001c0000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273b01801004000000018010000170000002f686f6d652f6d696368692f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e727300000000190100610000006d0000000e0000004572726f72000000000000000100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" - }, - "contract": { - "name": "erc20", - "version": "3.0.0-rc6", - "authors": ["Parity Technologies "] - }, - "V2": { - "spec": { - "constructors": [ - { - "args": [ - { - "label": "initial_supply", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": ["Creates a new ERC-20 contract with the specified initial supply."], - "label": "new", - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "from", - "type": { - "displayName": ["Option"], - "type": 11 - } - }, - { - "docs": [], - "indexed": true, - "label": "to", - "type": { - "displayName": ["Option"], - "type": 11 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [" Event emitted when a token transfer occurs."], - "label": "Transfer" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "docs": [], - "indexed": true, - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - " Event emitted when an approval occurs that `spender` is allowed to withdraw", - " up to the amount of `value` tokens from `owner`." - ], - "label": "Approval" - } - ], - "messages": [ - { - "args": [], - "docs": [" Returns the total token supply."], - "label": "total_supply", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 0 - }, - "selector": "0xdb6375a8" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - } - ], - "docs": [ - " Returns the account balance for the specified `owner`.", - "", - " Returns `0` if the account is non-existent." - ], - "label": "balance_of", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 0 - }, - "selector": "0x0f755a56" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - } - ], - "docs": [ - " Returns the amount which `spender` is still allowed to withdraw from `owner`.", - "", - " Returns `0` if no allowance has been set." - ], - "label": "allowance", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 0 - }, - "selector": "0x6a00165e" - }, - { - "args": [ - { - "label": "to", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - " Transfers `value` amount of tokens from the caller's account to account `to`.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the caller's account balance." - ], - "label": "transfer", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 8 - }, - "selector": "0x84a15da1" - }, - { - "args": [ - { - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - " Allows `spender` to withdraw from the caller's account multiple times, up to", - " the `value` amount.", - "", - " If this function is called again it overwrites the current allowance with `value`.", - "", - " An `Approval` event is emitted." - ], - "label": "approve", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 8 - }, - "selector": "0x681266a0" - }, - { - "args": [ - { - "label": "from", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "to", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - " Transfers `value` tokens on the behalf of `from` to the account `to`.", - "", - " This can be used to allow a contract to transfer tokens on ones behalf and/or", - " to charge fees in sub-currencies, for example.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " for the caller to withdraw from `from`.", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the account balance of `from`." - ], - "label": "transfer_from", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 8 - }, - "selector": "0x0b396f18" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 0 - } - }, - "name": "total_supply" - }, - { - "layout": { - "cell": { - "key": "0x0100000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "balances" - }, - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 6 - } - }, - "name": "allowances" - } - ] - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 1, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "offset_key", - "type": 5, - "typeName": "Key" - } - ] - } - }, - "params": [ - { - "name": "K", - "type": 2 - }, - { - "name": "V", - "type": 0 - } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 2, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 3, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_env", "types", "AccountId"] - } - }, - { - "id": 3, - "type": { - "def": { - "array": { - "len": 32, - "type": 4 - } - } - } - }, - { - "id": 4, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 5, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 3, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "Key"] - } - }, - { - "id": 6, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "offset_key", - "type": 5, - "typeName": "Key" - } - ] - } - }, - "params": [ - { - "name": "K", - "type": 7 - }, - { - "name": "V", - "type": 0 - } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 7, - "type": { - "def": { - "tuple": [2, 2] - } - } - }, - { - "id": 8, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 9 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 9 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 9, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 10, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "InsufficientBalance" - }, - { - "index": 1, - "name": "InsufficientAllowance" - } - ] - } - }, - "path": ["erc20", "erc20", "Error"] - } - }, - { - "id": 11, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 2 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 2 - } - ], - "path": ["Option"] - } - } - ] - } -} diff --git a/.api-contract/src/test/contracts/ink/v2/flipper.contract.json b/.api-contract/src/test/contracts/ink/v2/flipper.contract.json deleted file mode 100644 index 3ce25230..00000000 --- a/.api-contract/src/test/contracts/ink/v2/flipper.contract.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "source": { - "hash": "0xaeb7dd63156e34f62a81be2f66e16410cf4dd633b591cf27dd40474ff61a352c", - "language": "ink! 3.0.0-rc6", - "compiler": "rustc 1.58.0-nightly", - "wasm": "0x0061736d0100000001620f60037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060057f7f7f7f7f0060017f017f60000060017f017e60017f0060047f7f7f7f0060067f7f7f7f7f7f006000017f60047f7f7f7f017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f02a30107057365616c30107365616c5f7365745f73746f726167650003057365616c30167365616c5f76616c75655f7472616e736665727265640002057365616c30107365616c5f6765745f73746f726167650000057365616c30127365616c5f64656275675f6d6573736167650001057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100343420203080102050207030a0b02020504060806010000030102010602010301070d010c090003020509010103030001010004040401010e01010001010101010501010004050170011e1e0608017f01418080040b071102066465706c6f7900150463616c6c00170923010041010b1d092e232f4521333a4142230846081a1c1e0843082408353c3d083e3f400ac164428d0101017f230041406a22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a2900003703002002420137030820022001290000370310200241386a41808001360200200241f2ae04360234200241003602302002200241306a20001007200241106a200228020020022802041000200241406b24000b920201047f230041106b22042400200141086a220328020021052003410036020020012802042103200141bcad04360204200441086a410041012003200541a4aa04100f0240200428020c22064101460440200428020820023a000020014100360208200141bcad043602042005450d012001200541016b3602082001200341016a3602042000410136020420002003360200200441106a24000f0b230041306b2200240020004101360204200020063602002000411c6a41023602002000412c6a41033602002000420337020c200041ac9004360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a41b4aa04100a000b41a7a804412341bca904100e000b0300010bc00101037f230041306b2202240041a3ad042103411921040240024002400240024020002d000041016b0e0400010203040b4187ad042103411c21040c030b41f1ac042103411621040c020b41ddac042103411421040c010b41c4ac0421030b2002411c6a41013602002002200436022c20022003360228200241023602242002420137020c200241bcac04360208200141186a2802002001411c6a2802002002200241286a3602202002200241206a360218200241086a1032200241306a24000be60301077f230041106b220224002002200136020c20022000360208200241a48804360204200241bcad04360200230041406a220324002003200236020c200341346a410136020020034202370224200341d0a9043602202003410536023c2003200341386a36023020032003410c6a360238200341106a210641002101230041206b22042400200341206a220528020422074103742102200528020022082100034020020440200241086b2102200028020420016a2101200041086a21000c010b0b024002400240024002400240200541146a280200450440200121000c010b02402007450d0020082802040d004100210220014110490d020b41002102200120016a22002001490d010b200022024100480d010b20042002102020042802002200450d0120042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a10180d02200441206a24000c030b101f000b000b41a085044133200441086a41fc830441c086041014000b2003280210210020032802182101024041f0ae042d000045044041f1ae042d00004101710d010b2000200110031013410947044041f0ae0441013a00000b41f1ae0441013a00000b000b4201027f230041106b22012400200141086a2000100c20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000b9c0102027f017e230041106b220124002001420037030841042102027f02400340200241084604402001410436020820012903082203a741044f0d0241a88104411b41c48104100e000b20012000100c20012d0000410171450440200141086a20026a20012d00013a0000200241016a21020c010b0b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b4601017f230041206b22032400200341146a4100360200200341bcad04360210200342013702042003200136021c200320003602182003200341186a36020020032002100a000bd2010002400240200120024d0440200220044d0d01230041306b2200240020002004360204200020023602002000411c6a41023602002000412c6a41033602002000420237020c200041a88f043602080c020b230041306b2200240020002002360204200020013602002000411c6a41023602002000412c6a41033602002000420237020c200041dc8f043602080c010b2000200220016b3602042000200120036a3602000f0b200041033602242000200041206a3602182000200041046a36022820002000360220200041086a2005100a000b6c02027f027e230041206b22002400200041086a220142003703002000420037030020004110360214200020003602102000411036021c20002000411c6a1001200041106a200028021c10112001290300210220002903002103200041206a2400410541042002200384501b0b3701017f230041106b22022400200241086a41002001200028020020002802044184ab04100f20002002290308370200200241106a24000b8f0301027f230041d0006b220224004101210302402000027f20014101714504404104101041ff01714105470d011a0b200241186a4200370300200241206a4200370300200241286a42003703002002420037031020024201370308200241808001360234200241f2ae04360230200241808001360238200241106a41f2ae04200241386a10022101200241306a20022802381011024002400240200110130e0402000001000b200241cc006a4100360200200241bcad043602482002420137023c200241b08204360238200241386a41b88204100a000b230041106b220124002001411736020c200141f08004360208230041206b22002400200041146a410136020020004201370204200041bcac043602002000410236021c2000200141086a3602182000200041186a360210200041888104100a000b20022002290330370338200241386a100b41ff017122014102460d014100210320014100470b3a0001200020033a0000200241d0006a24000f0b200241003a0038418080044127200241386a4198810441e080041014000b2001017f410c21012000410b4d047f200041027441b8ae046a28020005410c0b0b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41043602002005420237021c200541c0ad04360218200541023602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004100a000b850302057f027e230041306b2200240020004180800136022c200041f2ae04360228200041286a10162000200029032837030002402000100d22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721012005421888a721022005421088a72103024002402006a741087641ff0171220441ed014704402004419b0147200341ff017141ae014772200241ff0171419d0147200141de004772720d032000100b41ff017122014102470d010c030b200341ff017141cb0047200241ff0171419d0147722001411b47720d02200041186a4200370300200041106a4200370300200041086a4200370300200042003703004100200010060c010b200041186a4200370300200041106a4200370300200041086a4200370300200042003703002001410171200010060b200041306a24000f0b200041033a0027200041146a410136020020004201370204200041f082043602002000410136022c2000200041286a3602102000200041276a360228200041a88304100a000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10042000200128020c1011200141106a24000bdc0402057f027e230041406a2200240002400240101041ff01712201410546044020004180800136023c200041f2ae04360238200041386a101620002000290338370310027f0240200041106a100d22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721022005421888a721012005421088a721032006a741087641ff01712204412f470440200441e30047200341ff0171413a4772200141ff017141a50147200241d1004772720d014101210141000c020b200341ff017141860147200141ff017141db0047720d00410021014100200241d901460d011a0b4101210141010b0440410321010c030b02400240200104402000418102101220002d0001210120002d00004101710d01200041286a4200370300200041206a4200370300200041186a4200370300200042003703102001417f73410171200041106a10060c020b200041086a4101101220002d0009210120002d0008410171450d030b20014105470d030b200041406b24000f0b200020013a0010230041206b22012400200141146a410136020020014201370204200141bcac043602002001410136021c2001200041106a3602182001200141186a360210200141a88304100a000b230041206b22002400200041186a41808001360200200041f2ae0436021420004100360210200041086a200041106a2001410171100741002000280208200028020c1005000b200020013a0037200041246a410136020020004201370214200041dc83043602102000410136023c2000200041386a3602202000200041376a360238200041106a41a88304100a000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41e48304200241086a1019200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a103020032003290310370320200341086a20042000410c6a103020032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002101b41000b2801017f20002002101d2000280208220320002802006a2001200210471a2000200220036a3602080b960201027f230041106b22022400200028020021000240200141ff004d044020002802082203200028020446044020004101101d200028020821030b2000200341016a360208200028020020036a20013a00000c010b2002410036020c20002002410c6a027f20014180104f044020014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c020b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c010b20022001413f71418001723a000d2002200141067641c001723a000c41020b101b0b200241106a240041000bae0301077f230041106b2205240002400240200120002802042207200028020822026b4b0440200120026a22012002490d022000280200410020071b210841002102230041106b220624002005027f20074101742204200120012004491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001102020062802082103200628020c0c030b200141e8ae04280200220420016a22022004490d021a41ecae042802002002490440200141ffff036a22032001490d02200341107640002202417f46200241ffff0371200247720d022002411074220420034180807c716a22022004490d024100210341ecae0420023602002001200120046a22022004490d031a0b41e8ae04200236020020012004450d021a2004200820071047210320010c020b2006200110202006280200210320062802040c010b4100210320010b2102200304402005200336020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d00000b101f000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1018200241206a24000b0f0041fd8404411141908504100e000ba90101027f027f41012001450d001a410041e8ae04280200220220016a22032002490d001a024041ecae042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141ecae0420033602004100200120026a22032002490d021a0b41e8ae04200336020020020c010b41000b210320002001360204200020033602000b0e0020002802001a03400c000b000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341888f04360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a2002100a000b9a0202037f017e20003502002105230041306b2203240041272100024003402005428fce005804402005a7220241e3004c0d0205200341096a20006a220241026b20054290ce0082a7220441e4007041017441da8b046a2f00003b0000200241046b200441e4006e41017441da8b046a2f00003b0000200041046b210020054290ce008021050c010b0b200020036a41076a2005a741ffff0371220241e4007041017441da8b046a2f00003b0000200041026b2100200241e4006e21020b02402002410a4e0440200041026b2200200341096a6a200241017441da8b046a2f00003b00000c010b200041016b2200200341096a6a200241306a3a00000b200141bcad044100200341096a20006a412720006b1025200341306a24000b0d00429e9fe3ccf2a3c7c8fb000bb30301077f230041106b2206240020002802002205410171220820046a210702402005410471450440410021010c010b2001200120026a102620076a21070b412b418080c40020081b210802402000280208410147044041012105200020082001200210270d012000280218200320042000411c6a28020028020c11000021050c010b024020072000410c6a280200220949044020002d00004108710d014101210520062000200920076b4101102820062802002207418080c400460d0220062802042109200020082001200210270d022000280218200320042000411c6a28020028020c1100000d02200720092000102921050c020b41012105200020082001200210270d012000280218200320042000411c6a28020028020c11000021050c010b2000280204210a2000413036020420002d0020210b41012105200041013a0020200020082001200210270d00200641086a2000200920076b4101102820062802082201418080c400460d00200628020c21022000280218200320042000411c6a28020028020c1100000d0020012002200010290d002000200b3a00202000200a360204410021050b200641106a240020050b2901017f03402000200146450440200220002c000041bf7f4a6a2102200041016a21000c010b0b20020b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000b9b0101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03000100020b41002105200221040c010b20024101762104200241016a41017621050b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b4701027f2002411c6a28020021032002280218210441002102027f0340200120012002460d011a200241016a2102200420002003280210110100450d000b200241016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341888904360208200341033602242003200341206a360218200320033602282003200341046a360220200341086a2002100a000b5301047f200141086a280200210220012802042103200141046a102c2204418080c4004704402001200128020420012802002205200220036b6a6a20012802086b3602000b20002004360204200020053602000bb70101047f200028020022012000280204460440418080c4000f0b2000200141016a36020020012d00002203411874411875417f4c047f2000200141026a36020020012d0001413f7121022003411f712104200341df014d044020044106742002720f0b2000200141036a36020020012d0002413f712002410674722102200341f00149044020022004410c74720f0b2000200141046a3602002004411274418080f0007120012d0003413f71200241067472720520030b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b980301057f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a102b200228021c418080c400470d010c020b0b200241106a200241206a102b2002280214418080c400460d00200241086a200228021020032004102d200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a102622054b044020022001200020056b410010284101210020022802002205418080c400460d01200228020421062001280218200320042001411c6a28020028020c1100000d01200520062001102921000c010b2001280218200320042001411c6a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044106470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141c88b041022000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1019200341206a24000b6c01027f230041206b220224004101210302402000200110340d002002411c6a4100360200200241bcad043602182002420137020c200241d48604360208200141186a2802002001411c6a280200200241086a10320d00200041046a2001103421030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d012000200110230c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a1031200141d88b0441022002280208200228020c10250c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a1031200141d88b0441022002280200200228020410250b20024190016a24000bb906010d7f230041406a22032400200341386a210d2000280204210b2000280200210c2000280208210a024003402002450d010240200a2d00000440200c41b489044104200b28020c1100000d010b2003410a3602382003428a808080103703302003200236022c41002100200341003602282003200236022420032001360220200222042105034002400240200341086a20012002027f02400240200020044b200420054b720d00200328022020006a2106200320032802346a41376a2d0000210702400240200420006b220541084f0440200641036a417c7120066b2204450440410021040c020b41002100200341186a410020052004200420054b1b22042006200541b48e04100f200328021c210820032802182109034020002008460d02200020096a2d00002007460d03200041016a21000c000b000b41002100034020002005460d03200020066a2d00002007460d02200041016a21000c000b000b200541086b2108200741818284086c210003400240200420084b0d00200420066a2209280200200073220e417f73200e41818284086b71200941046a2802002000732209417f73200941818284086b7172418081828478710d00200441086a21040c010b0b200420054b0d04200420056b2108200420066a210541002100034020002008460d02200720052d0000470440200041016b2100200541016a21050c010b0b200420006b21000b2003200020032802286a41016a2200360228200020032802342204490d04200020032802244b0d0420032802202105200341106a41002004200d410441c09204100f20032802142004460440027f2005200020046b22086a210020032802102105034041002004450d011a200441016b210420052d0000210620002d00002107200041016a2100200541016a210520062007460d000b200720066b0b450d020b200328022821000c040b200a41003a000020020c010b200a41013a0000200841016a0b220041b08a041036200c2003280208200328020c200b28020c1100000d03200320012002200041c08a04103720032802042102200328020021010c040b2004200541c48e041022000b200328022c2104200328022421050c000b000b0b4101210f0b200341406b2400200f0b4e01027f230041106b22052400200541086a200320012002102d20052802082206450440200120024100200320041038000b200528020c21012000200636020020002001360204200541106a24000b4d0002402003450d000240200220034d044020022003470d010c020b200120036a2c000041bf7f4a0d010b200120022003200220041038000b2000200220036b3602042000200120036a3602000b980601027f23004180016b220524002005200336021c200520023602182005027f024020014181024f0440418002210603402006450440410021060c030b200020066a2c000041bf7f4a0d02200641016b21060c000b000b2005200136022420052000360220200541bcad0436022841000c010b200541106a20002001200641bc9104103620052005290310370320200541d0920436022841050b36022c024002402005200120024f047f200120034f0d0120030520020b360238200541d4006a4103360200200541ec006a4102360200200541e4006a410236020020054203370244200541f892043602402005410336025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580c010b200220034d0440024002402002450d00200120024d044020012002460d010c020b200020026a2c00004140480d010b200321020b200520023602300340024002402002450440410021020c010b200120024d044020012002470d02200121020c010b200020026a2c00004140480d010b200541086a2000200120022004103720052005280208220036025820052000200528020c6a36025c2005200541d8006a102c200410392201360234200520023602382005027f41012001418001490d001a41022001418010490d001a41034104200141808004491b0b20026a36023c200541d4006a4105360200200541fc006a4102360200200541f4006a4102360200200541ec006a4107360200200541e4006a4108360200200542053702442005418894043602402005410336025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580c030b200241016b21020c000b000b200541f4006a4102360200200541ec006a4102360200200541e4006a4103360200200541d4006a410436020020054204370244200541b493043602402005410336025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580b200541406b2004100a000b1a002000418080c40046044041e08704412b2001100e000b20000b8f0802087f017e4101210702402001280218220841272001411c6a28020028021022091101000d0041f4002103410221010240027f0240027f024002400240024002402000280200220241096b0e050803010104000b2002412746200241dc0046720d010b2002410b7421044100210141202100412021030340200020014d0440200121030c060b02402004200341017620016a220341027441e4a1046a280200410b7422054d044020042005460d07200321000c010b200341016a21010b200020016b21030c000b000b41020c040b41ee000c010b41f2000b21030c020b0240027e024002402003200020014b6a2206411f4d04402006410274210141c20521032006411f470440200141e8a1046a28020041157641016b21030b41002100410021052006200641016b22044f0440200441204f0d02200441027441e4a1046a28020041ffffff007121050b200141e4a1046a280200411576220141c305200141c3054b1b2104200220056b21050240024003400240024002402001200347047f20012004460d012000200141e4a2046a2d00006a220020054d0d0220010520030b4101710d08200241808004490d022002418080084f0d04200241eb9a04412a41bf9b0441c00141ff9c0441b603103b0d0a0c050b200441c30541c4a104102a000b200141016a21010c010b0b200241cc95044128419c960441a00241bc980441af02103b450d010c060b200241e0ffff007141e0cd0a46200241b9ee0a6b41074972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d050b200241017267410276410773ad4280808080d000840c030b2006412041b4a104102a000b2004412041d4a104102a000b200241017267410276410773ad4280808080d000840b210a41032101200221030c020b41010b2101200221030b034020012102410021012003210002400240024002400240200241016b0e03040200010b02400240024002400240200a422088a741ff017141016b0e050004010203050b200a42ffffffff8f6083210a41fd002100410321010c070b200a42ffffffff8f608342808080802084210a41fb002100410321010c060b200a42ffffffff8f608342808080803084210a41f5002100410321010c050b200a42ffffffff8f60834280808080c00084210a41dc002100410321010c040b413041d7002003200aa7220141027476410f712200410a491b20006a41d08704103921002001450d02200a42808080807083200a42017d42ffffffff0f8384210a410321010c030b20084127200911010021070c040b41dc002100410121010c010b200a42ffffffff8f608342808080801084210a410321010b200820002009110100450d000b0b20070bcc0201077f230041106b22072400200120024101746a210c20004180fe0371410876210a41002102200041ff0171210d02400240034002402001200c470440200141026a210b200220012d00016a210820012d00002209200a460d01200b2101200821022009200a4d0d020b200520066a2103200041ffff0371210041012102034020032005460d03200541016a210120052d000022044118744118752206410048044020012003460d0520052d0001200641ff0071410874722104200541026a21010b200020046b22004100480d0320024101732102200121050c000b000b200741086a200220082003200441ac9504100f20072802082102200728020c210103402001450440200b2101200821020c020b200141016b210120022d0000200241016a2102200d470d000b0b410021020b200741106a240020024101710f0b41e08704412b41bc9504100e000be30101017f230041106b220224002002410036020c20002002410c6a027f0240024020014180014f04402001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200220013a000c41010c020b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040b1035200241106a24000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41a48d04200241086a1019200241206a24000b0d0020002802002001200210350b0b0020002802002001103c0b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a103d200241206a24000b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1019200241206a24000b0b0020002802002001102e0b1b00200128021841b1ae0441052001411c6a28020028020c1100000b1b00200028021841b1ae0441052000411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a280200220441b48804410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241c48804360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a1032450d010c020b20032802002200200328020428020c11070042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241c488043602282002410a3602142002200241106a36023820022002410c6a36021020042001200241286a10320d010b200328020c2100200241246a41033602002002413c6a410b360200200241346a410b360200200242033702142002418c880436021020022000410c6a3602382002200041086a3602302002410236022c200220003602282002200241286a36022020042001200241106a103221000b200241406b240020000b9c0501027f230041406a22022400024002400240024002400240024002400240024002400240024020002d000041016b0e0b0102030405060708090a0b000b41012100200128021841b4ac0441062001411c6a28020028020c1100000d0b024020012d0000410471450440200128021841d48a044101200128021c28020c1100000d0d20011044450d010c0d0b200128021841d28a044102200128021c28020c1100000d0c20012802002103200241013a0017200241346a419c8904360200200241106a200241176a3602002002200336021820022001290218370308200220012d00203a00382002200128020436021c20022001290210370328200220012902083703202002200241086a360230200241186a10440d0c200228023041d08a044102200228023428020c1100000d0c0b200128021841d58a044101200128021c28020c11000021000c0b0b200128021841a7ac04410d2001411c6a28020028020c11000021000c0a0b20012802184199ac04410e2001411c6a28020028020c11000021000c090b2001280218418eac04410b2001411c6a28020028020c11000021000c080b200128021841f5ab0441192001411c6a28020028020c11000021000c070b200128021841e7ab04410e2001411c6a28020028020c11000021000c060b200128021841d3ab0441142001411c6a28020028020c11000021000c050b200128021841c7ab04410c2001411c6a28020028020c11000021000c040b200128021841bcab04410b2001411c6a28020028020c11000021000c030b200128021841b5ab0441072001411c6a28020028020c11000021000c020b200128021841a6ab04410f2001411c6a28020028020c11000021000c010b20012802184194ab0441122001411c6a28020028020c11000021000b200241406b240020000bc40201087f2002410f4d047f2000052000410020006b41037122056a210620012104200021030340200320064f450440200320042d00003a0000200441016a2104200341016a21030c010b0b200220056b2202417c7121070240200120056a22054103710440200620076a21082005417c71220341046a2101200541037422044118712109410020046b411871210a20032802002104200621030340200320084f0d022003200420097620012802002204200a7472360200200141046a2101200341046a21030c000b000b200620076a210420052101200621030340200320044f0d0120032001280200360200200141046a2101200341046a21030c000b000b20024103712102200520076a2101200620076a0b2103200220036a21020340200220034d450440200320012d00003a0000200141016a2101200341016a21030c010b0b20000b0bee2e0100418080040be52e636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f7472616974732f6d6f642e72732700010039000000a80000000a00000073746f7261676520656e7472792077617320656d707479002700010039000000a90000000a0000000c00000001000000010000000d0000005765206465636f646520604e6020656c656d656e74733b2071656400d016010061000000cd020000170000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273656e636f756e746572656420756e6578706563746564206572726f72140101001c000000d40001004000000018010000170000006469737061746368696e6720696e6b2120636f6e7374727563746f72206661696c65643a2000000048010100250000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6578616d706c65732f666c69707065722f6c69622e7273780101003000000008000000050000006469737061746368696e6720696e6b21206d657373616765206661696c65643a20000000b8010100210000000e00000004000000040000000f0000001000000011000000120000000000000001000000130000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700000c02010071000000fd010000050000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273d30201006d000000550200001c0000002e2e000050030100020000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e72730000005c03010071000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75653abc160100000000000b040100010000000b040100010000001400000000000000010000001500000070616e69636b65642061742027272c2040040100010000004104010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732000005404010020000000740401001200000060000000160000000c00000004000000170000001800000019000000202020202f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e7273000000b8040100750000002f00000021000000b80401007500000030000000120000002c0a280a28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e72730000560501007000000065000000140000003078303030313032303330343035303630373038303931303131313231333134313531363137313831393230323132323233323432353236323732383239333033313332333333343335333633373338333934303431343234333434343534363437343834393530353135323533353435353536353735383539363036313632363336343635363636373638363937303731373237333734373537363737373837393830383138323833383438353836383738383839393039313932393339343935393639373938393900001a00000004000000040000001b0000001c0000001d0000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273000000bc06010075000000420000001e000000bc060100750000005b0000000500000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468205407010012000000660701002200000072616e676520656e6420696e6465782098070100100000006607010022000000736c69636520696e64657820737461727473206174202062757420656e64732061742000b807010016000000ce0701000d000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028ec07010015000000010801002b00000055050100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727344080100780000001d010000110000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e7273cc08010074000000b7010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000550901000b00000060090100160000009804010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e6720600000900901000e0000009e09010004000000a2090100100000009804010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060550901000b000000d409010026000000fa09010008000000020a01000600000098040100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e72730000300a01007a0000000a0000001c000000300a01007a0000001a0000003600000000010305050606020706080709110a1c0b190c1a0d100e0d0f0410031212130916011704180119031a071b011c021f1620032b032d0b2e01300331023201a702a902aa04ab08fa02fb05fd02fe03ff09ad78798b8da23057588b8c901cdd0e0f4b4cfbfc2e2f3f5c5d5fe2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d11293a3b4549575b5c5e5f64658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff806d71dedf0e1f6e6f1c1d5f7d7eaeaf7fbbbc16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f747596262e2fa7afb7bfc7cfd7df9a409798308f1fd2d4ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab051f09811b03190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15054e071b0757070206160d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd03590716091809140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a062f314d0380a4083c030f033c0738082b0582ff1118082f112d03210f210f808c048297190b158894052f053b07020e180980be22740c80d61a0c0580ff0580df0cf29d033709815c1480b80880cb050a183b030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a61081f50701202a064c04808d0480be031b030f0d000601010301040205070702080809020a050b020e041001110212051311140115021702190d1c051d0824016a046b02af03bc02cf02d102d40cd509d602d702da01e005e102e704e802ee20f004f802fa02fb010c273b3e4e4f8f9e9e9f7b8b9396a2b2ba86b1060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5fbfeeef5a62f4fcff9a9b2e2f2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fe7ecefffc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b4e43813709160a08183b45390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a161a261c1417094e042409440d19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d133a060a362c041780b93c64530c48090a46451b4808530d498107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48a4c630d842f8fd18247a1b98239072a045c06260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2e781332d03110408818c89046b050d0309071092604709743c80f60a7308701546809a140c570919808781470385420f1584501f80e12b80d52d031a040281401f113a050184e080f7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d80510030d03740c59070c04010f0c0438080a062808224e81540c1503050307091d030b05060a0a060808070980cb250a84062f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e72730000351001007d0000004b00000028000000351001007d0000005700000016000000351001007d000000520000003e0000000003000083042000910560005d13a0001217201f0c20601fef2ca02b2a30202c6fa6e02c02a8602d1efb602e00fe20369eff6036fd01e136010a2137240de137ab0e61392f18a139301ce147f31e214cf06ae14f4f6f21509dbca15000cf615165d1a15100da215200e0e15330e16155aee2a156d0e8e15620006e57f001ff5700700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b033c082a180120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c01090128010301370101030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d021e021e02400201070801020b09012d030101750222017603040209010603db0202013a010107010101010208060a0201301f310430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c6400001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990b31047b01360f290102020a033104020207013d03240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002002e0217000101030405080802071e0494030037043208010e011605010f00070111020701020105000700013d0400076d07006080f000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72734a14010072000000e6050000090000000a000000bc16010000000000cc140100010000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000e0140100410000005800000009000000e01401004100000058000000310000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000441501003e000000780100001400000045636473615265636f7665724661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e644e6577436f6e74726163744e6f7446756e6465645472616e736665724661696c656442656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f64650000bc160100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f723a200000bc16010000000000bc160100020000002f686f6d652f6d696368692f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e72734572726f720000000000000100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" - }, - "contract": { - "name": "flipper", - "version": "3.0.0-rc6", - "authors": ["Parity Technologies "] - }, - "V2": { - "spec": { - "constructors": [ - { - "args": [ - { - "label": "init_value", - "type": { - "displayName": ["bool"], - "type": 0 - } - } - ], - "docs": ["Creates a new flipper smart contract initialized with the given value."], - "label": "new", - "selector": "0x9bae9d5e" - }, - { - "args": [], - "docs": ["Creates a new flipper smart contract initialized to `false`."], - "label": "default", - "selector": "0xed4b9d1b" - } - ], - "docs": [], - "events": [], - "messages": [ - { - "args": [], - "docs": [" Flips the current value of the Flipper's boolean."], - "label": "flip", - "mutates": true, - "payable": false, - "returnType": null, - "selector": "0x633aa551" - }, - { - "args": [], - "docs": [" Returns the current value of the Flipper's boolean."], - "label": "get", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 0 - }, - "selector": "0x2f865bd9" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 0 - } - }, - "name": "value" - } - ] - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "bool" - } - } - } - ] - } -} diff --git a/.api-contract/src/test/contracts/ink/v2/index.ts b/.api-contract/src/test/contracts/ink/v2/index.ts deleted file mode 100644 index 45359d54..00000000 --- a/.api-contract/src/test/contracts/ink/v2/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export { default as erc20 } from './erc20.contract.json' assert { type: 'json' }; -export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v3/flipper.contract.json b/.api-contract/src/test/contracts/ink/v3/flipper.contract.json deleted file mode 100644 index 7aa07d9c..00000000 --- a/.api-contract/src/test/contracts/ink/v3/flipper.contract.json +++ /dev/null @@ -1,91 +0,0 @@ -{ - "source": { - "hash": "0xbb381c2fc980121b17c7b2bf2756d5964a12151cb846e0a9eff9cc337806456d", - "language": "ink! 3.0.0-rc7", - "compiler": "rustc 1.60.0-nightly", - "wasm": "0x0061736d0100000001280860027f7f0060000060037f7f7f0060017f006000017f60017f017f60037f7f7f017f60017f017e02880106057365616c30107365616c5f7365745f73746f726167650002057365616c30107365616c5f6765745f73746f726167650006057365616c300a7365616c5f696e7075740000057365616c300b7365616c5f72657475726e0002057365616c30167365616c5f76616c75655f7472616e73666572726564000003656e76066d656d6f727902010210030a090400050103070001000608017f01418080040b071102066465706c6f7900080463616c6c000c0ac40b096102027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a1004200028021c41114f0440000b2001290300210220002903082103200041206a2400410541042002200384501b0bc20101027f230041306b220224004101210302402000027f20014101714504404104100541ff01714105470d011a0b200241106a4200370300200241186a4200370300200241206a42003703002002420037030820024201370300200241808001360228200241086a41808004200241286a100120022802282201418180014f720d012002200136022c200241808004360228200241286a100741ff017122014102460d014100210320014100470b3a0001200020033a0000200241306a24000f0b000b4201027f230041106b22012400200141086a2000100d20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0bd30202057f027e230041306b2200240020004180800136020c200041808004360208200041086a1009200020002903083703100240200041106a100a22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721012005421888a721022005421088a7210302402006a741087641ff0171220441ed014704402004419b0147200341ff017141ae014772200241ff0171419d0147200141de004772720d02200041106a100741ff017122014102460d02100541ff01714105470d02200041286a4200370300200041206a4200370300200041186a4200370300200042003703102001410171200041106a100b0c010b200341ff017141cb0047200241ff0171419d0147722001411b47720d01200041286a4200370300200041206a4200370300200041186a4200370300200042003703104100200041106a100b0b200041306a24000f0b000b4101027f230041106b2201240020012000280204220236020c20002802002001410c6a10022002200128020c2202490440000b20002002360204200141106a24000b850102027f017e230041106b220124002001420437030841042102027f02400240034020012000100d20012d00004101710d01200141086a20026a20012d00013a0000200241016a22024108470d000b20012903082203a741044f0d01000b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b6b01017f230041306b220224004180800420003a0000200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a2900003703002002420137030820022001290000370310200241106a4180800441011000200241306a24000b910302057f027e230041406a22002400024002400240100541ff01714105470d0020004180800136021c200041808004360218200041186a100920002000290318370320027f0240200041206a100a22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721022005421888a721012005421088a721032006a741087641ff01712204412f470440200441e30047200341ff0171413a4772200141ff017141a50147200241d1004772720d014101210141000c020b200341ff017141860147200141ff017141db0047720d00410021014100200241d901460d011a0b4101210141010b0d00024020010440200041086a418002100620002d0009210120002d00084101710d01200041386a4200370300200041306a4200370300200041286a4200370300200042003703202001417f73410171200041206a100b0c040b200041106a4100100620002d0011210120002d0010410171450d020b20014105460d020b000b4180800420014101713a000041004180800441011003000b200041406b24000b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000b" - }, - "contract": { - "name": "flipper", - "version": "3.0.0-rc7", - "authors": ["Parity Technologies "] - }, - "V3": { - "spec": { - "constructors": [ - { - "args": [ - { - "label": "init_value", - "type": { - "displayName": ["bool"], - "type": 0 - } - } - ], - "docs": ["Creates a new flipper smart contract initialized with the given value."], - "label": "new", - "payable": false, - "selector": "0x9bae9d5e" - }, - { - "args": [], - "docs": ["Creates a new flipper smart contract initialized to `false`."], - "label": "default", - "payable": true, - "selector": "0xed4b9d1b" - } - ], - "docs": [], - "events": [], - "messages": [ - { - "args": [], - "docs": [" Flips the current value of the Flipper's boolean."], - "label": "flip", - "mutates": true, - "payable": false, - "returnType": null, - "selector": "0x633aa551" - }, - { - "args": [], - "docs": [" Returns the current value of the Flipper's boolean."], - "label": "get", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 0 - }, - "selector": "0x2f865bd9" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 0 - } - }, - "name": "value" - } - ] - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "bool" - } - } - } - ] - } -} diff --git a/.api-contract/src/test/contracts/ink/v3/index.ts b/.api-contract/src/test/contracts/ink/v3/index.ts deleted file mode 100644 index c0c494cb..00000000 --- a/.api-contract/src/test/contracts/ink/v3/index.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; -// A complex contract example with traits. -export { default as traitErc20 } from './trait_erc20.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json b/.api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json deleted file mode 100644 index a24188fa..00000000 --- a/.api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json +++ /dev/null @@ -1,549 +0,0 @@ -{ - "source": { - "hash": "0x819f50e02feb5b4413261150c77edb5fdf85877ac1da53210f1b1327f342b81a", - "language": "ink! 3.0.0-rc7", - "compiler": "rustc 1.58.0-nightly", - "wasm": "0x0061736d010000000180011360037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060047f7f7f7f0060017f0060057f7f7f7f7f0060000060017f017e60067f7f7f7f7f7f0060047f7f7e7e0060037e7e7f0060057f7f7f7e7e006000017f60017f017f60047f7f7f7f017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f60057f7f7f7e7e017f028a020b057365616c30127365616c5f64656275675f6d6573736167650001057365616c30127365616c5f636c6561725f73746f726167650005057365616c30127365616c5f6465706f7369745f6576656e740004057365616c30107365616c5f7365745f73746f726167650003057365616c30107365616c5f6765745f73746f726167650000057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e0003057365616c30147365616c5f686173685f626c616b65325f3235360003057365616c300b7365616c5f63616c6c65720002057365616c30167365616c5f76616c75655f7472616e73666572726564000203656e76066d656d6f7279020102100372710004030303020203030a0b0c0a02020201010204040302030204060504020202020b0305030501000802050304020502010305020d0302020507050704120306030100000301020107020101040810010f040003090303020e040101030300010100060606060101110101010101090404040501700118180608017f01418080040b071102066465706c6f7900430463616c6c0045091d010041010b171a1b7355306465775469717475552d2d4d4f512d762d570ac8b201712b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b4180800441214188b604100c000b4601017f230041206b22032400200341146a410036020020034184be04360210200342013702042003200136021c200320003602182003200341186a36020020032002101c000b3501017f230041106b22032400200341086a410020012002100b200020032802083602002000200328020c360204200341106a24000be60101037f230041d0006b22032400200320013602082003200236020c200341286a22014200370300200341206a22044200370300200341186a220542003703002003420037031020034100360230200342808001370244200341a6c204360240200341086a200341406b100f2002280200200341406b10102002280204200341406b1010200320032903403702342003200341306a2003280248101120032802002003280204200341106a1007200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290310370000200341d0006a24000b0d00200120002802004120102c0b0a00200120004120102c0b5e01027f200141086a22032802002104200341003602002001280204210320014184be04360204200220044b044041ecb60441234180b804100c000b2001200420026b3602082001200220036a36020420002002360204200020033602000bda0101037f230041d0006b22032400200320013602082003200236020c200341286a22014200370300200341206a22044200370300200341186a220542003703002003420037031020034100360230200342808001370244200341a6c204360240200341086a200341406b100f2002280200200341406b1010200320032903403702342003200341306a2003280248101120032802002003280204200341106a1007200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290310370000200341d0006a24000b3401017f230041306b220424002004200136020c200441106a20002004410c6a101220022003200441106a1014200441306a24000b4e01017f230041206b22032400200341186a41808001360200200341a6c20436021420034100360210200341086a200341106a20002001101620022003280208200328020c1003200341206a24000b3b01017f230041306b220524002005200236020c20052001360208200541106a2000200541086a100e20032004200541106a1014200541306a24000b5802017f017e230041206b2204240020012902042105200441003602182004200537031020022003200441106a102b20012004290310370204200441086a20012004280218101120002004290308370300200441206a24000bd40102027f057e230041306b220224000240200029030022084202510d0020012900182104200129001021052001290008210620012900002107200041186a22012d0000200141013a00004101710d0020084201520440200241286a2004370300200241206a2005370300200241186a20063703002002200737031020024201370308200241106a10010c010b200241286a2004370300200241206a2005370300200241186a200637030020022007370310200242013703082000290308200041106a290300200241106a10140b200241306a24000bc70102017f027e230041e0006b220224002002200136020c200241106a2001101920022d00104101460440200220022d00113a0037200241cc006a4102360200200241dc006a41013602002002420237023c200241ec8204360238200241023602542002200241d0006a3602482002200241376a36025820022002410c6a360250200241386a41d08304101c000b200241186a2903002103200241206a2903002104200041106a200241286a2903003703002000200437030820002003370300200241e0006a24000be40102017f027e230041406a22022400200241808001360224200241a6c20436022002400240024002402001200241206a103a0e0402010100010b200041003a0000200041086a42003703000c020b2002413c6a410036020020024184be043602382002420137022c200241e0be04360228200241286a41bcbf04101c000b20022002290320370328200241086a200241286a102a2002290308a70440200041013b01000c010b200241186a290300210320022903102104200041003a0000200041106a2004370300200041086a4201370300200041186a20033703000b200241406b24000bd90401017f230041106b22022400024002400240024002400240024002400240024002400240024020002d000041016b0e0b0102030405060708090a0b000b41012100200128021841cebb0441062001411c6a28020028020c1100000d0b024020012d0000410471450440200128021841f491044101200128021c28020c1100000d0d200128021841e4c1044105200128021c28020c110000450d010c0d0b200128021841f291044102200128021c28020c1100000d0c200241013a000f200241086a2002410f6a36020020022001290218370300200241e4c1044105106b0d0c200241f091044102106b0d0c0b200128021841f591044101200128021c28020c11000021000c0b0b200128021841c1bb04410d2001411c6a28020028020c11000021000c0a0b200128021841b3bb04410e2001411c6a28020028020c11000021000c090b200128021841a8bb04410b2001411c6a28020028020c11000021000c080b2001280218418ebb04411a2001411c6a28020028020c11000021000c070b20012802184180bb04410e2001411c6a28020028020c11000021000c060b200128021841f0ba0441102001411c6a28020028020c11000021000c050b200128021841e4ba04410c2001411c6a28020028020c11000021000c040b200128021841d9ba04410b2001411c6a28020028020c11000021000c030b200128021841d2ba0441072001411c6a28020028020c11000021000c020b200128021841c3ba04410f2001411c6a28020028020c11000021000c010b200128021841b0ba0441132001411c6a28020028020c11000021000b200241106a240020000b810201047f230041406a220224002000280200210441002100200241346a410036020020024184be0436023020024201370224200241d8bc04360220027f4101200141186a28020022052001411c6a2802002201200241206a10680d001a024003402002410436021c2002410436021420024184bd043602102002410436020c200241e4bc043602082002410336023c200241033602342002410336022c200241033602242002200020046a22033602202002200341036a3602382002200341026a3602302002200341016a3602282002200241206a36021820052001200241086a10680d01200041046a22004120470d000b41000c010b41010b200241406b24000b840401087f230041106b220324002003200136020c20032000360208200341d48f0436020420034184be04360200230041406a220224002002200336020c200241346a41013602002002420237022420024194b8043602202002410836023c2002200241386a36023020022002410c6a360238200241106a21064100210041002101230041206b22042400200241206a22052802002107024002400240024002402005280204220941037422080440200741046a21030340200120032802006a22002001490d02200341086a210320002101200841086b22080d000b0b02400240200541146a280200450440200021030c010b02402009450d0020072802040d004100210120004110490d020b41002101200020006a22032000490d010b200322014100480d020b20042001105320042802002200450d0220042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a104b0d03200441206a24000c040b41808804411c41a4af04100c000b1052000b000b41f889044133200441086a419c880441948b041049000b2002280210210020022802182101024041a4c2042d000045044041a5c2042d00004101710d010b200020011000410947044041a4c20441013a00000b41a5c20441013a00000b000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101e20042902142105200441003602282004200537032020012002200441206a101f2003200441206a102020042004290320370214200441086a200441106a20042802281011200441206a2004280208200428020c10212000200441206a1022200441406b24000b4b02017f017e230041106b22042400200120034b04402001200341bcb904102e000b200441086a2001200320021079200429030821052000410036020020002005370204200441106a24000b1000200120021027200220002001102c0b230020002d000041014704402001410010370f0b200141011037200041016a200110100bb40101017f230041306b2203240020004200370000200041186a4200370000200041106a4200370000200041086a42003700000240200241214f0440200341286a4200370300200341206a4200370300200341186a42003703002003420037031020012002200341106a1007200341202000100d20032802002003280204200341106a412041f0830410240c010b200341086a20022000100d2003280208200328020c2001200241e0830410240b200341306a24000b960101047f230041206b220224002000280204210420004184be04360204200041086a2203280200210520034100360200200241086a2004200520002802002203102620024100360218200220022903083703102001200241106a10102003200320022802186a22014d0440200020053602082000200436020420002001360200200241206a24000f0b41808404411c41bc8404100c000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101e20042902142105200441003602282004200537032020012002200441206a101f2003200441206a101020042004290320370214200441086a200441106a20042802281011200441206a2004280208200428020c10212000200441206a1022200441406b24000b7b0020012003460440200020022001100a1a0f0b230041306b2200240020002003360204200020013602002000411c6a41023602002000412c6a41043602002000420337020c200041d49904360208200041043602242000200041206a360218200020003602282000200041046a360220200041086a2004101c000b950101057f230041206b220124002000280204210320004184be04360204200041086a2202280200210420024100360200200141086a2003200420002802002202102620014100360218200120012903083703104104200141106a10272002200220012802186a22054b044041808404411c41bc8404100c000b200020043602082000200336020420002005360200200141206a24000b4801017f230041106b22042400200220034904402003200241ac8404102e000b200441086a200320022001100b200020042802083602002000200428020c360204200441106a24000b7401017f230041106b2202240002402000413f4d04402001200041027410370c010b200041ffff004d0440200220004102744101723b010e20012002410e6a4102102c0c010b200041ffffffff034d04402000410274410272200110410c010b2001410310372000200110410b200241106a24000bae0102017f027e230041406a22022400200241186a200110290240024020022d0018410147044020022001102a2002290300a7450d010b200042013703000c010b200241106a2903002103200229030821042000200229001937000820004200370300200041286a2004370300200041306a2003370300200041206a200241316a290000370000200041186a200241296a290000370000200041106a200241216a2900003700000b200241406b24000bb50202037f017e230041306b22022400200241086a41047221042000027f0240034020022001103320022d00004101710d01200320046a20022d00013a0000200341016a22034120470d000b200041086a200241136a2f00003b00002000410a6a200241156a2d00003a00002000410f6a2002411a6a2f01003b0000200041116a2002411c6a2d00003a0000200041166a200241216a2f00003b0000200041186a200241236a2d00003a0000200220022f010c3b0104200220022d000e3a0006200241166a28010021012002411d6a2800002103200241246a2902002105200228000f2104200041036a20022d00063a0000200020022f01043b0001200041196a2005370000200041126a20033600002000410b6a2001360000200041046a200436000041000c010b41010b3a0000200241306a24000b6402027f037e230041106b22022400200241086a22034200370300200242003703000240200120024110103145044020032903002105200229030021060c010b420121040b2000200637030820002004370300200041106a2005370300200241106a24000b2a01017f230041106b220324002003200137030820032000370300200220034110102c200341106a24000b6701037f230041106b220324002000280208220420026a2205200449044041d0b604411c41fcb804100c000b200341086a2004200520002802002000280204418cb90410782003280208200328020c20012002419cb904102420002005360208200341106a24000b0300010b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341809804360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a2002101c000b4801017f230041206b22012400200141146a410136020020014201370204200141d4bb043602002001410536021c200120003602182001200141186a360210200141d08604101c000bc00101037f230041306b2202240041bbbc042103411921040240024002400240024020002d000041016b0e0400010203040b419fbc042103411c21040c030b4189bc042103411621040c020b41f5bb042103411421040c010b41dcbb0421030b2002411c6a41013602002002200436022c20022003360228200241063602242002420137020c200241d4bb04360208200141186a2802002001411c6a2802002002200241286a3602202002200241206a360218200241086a1068200241306a24000b6001047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206107a200120022003280208200328020c41d4c10410242003200220042006107a200020032903003702000b200341106a240020050b910102027f017e230041106b220124002001420437030841042102027f02400240034020012000103320012d00004101710d01200141086a20026a20012d00013a0000200241016a22024108470d000b20012903082203a741044f0d014184be04411b41a0be04100c000b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b3f01027f230041106b22022400200241003a000f200020012002410f6a410110312201047f41000520022d000f0b3a0001200020013a0000200241106a24000bfe0502047f027e23004190016b22012400200141086a200041e000100a1a200141106a21030240200129030822064201520440200141f0006a220041808001360200200141a6c20436026c20014100360268200141e8006a102520014188016a220220002802003602002001200129036837038001200141e8006a20014180016a41dc84041035200141e8006a41e8840441152003101d20022000280200360200200120012903683703800120014180016a41fd84044113200341216a101d20002002280200360200200120012903800137036820014180016a200141e8006a41908504200141d8006a10360c010b200141f0006a220041808001360200200141a6c20436026c20014100360268200141e8006a102520014188016a220220002802003602002001200129036837038001200141e8006a20014180016a41b885041035200141e8006a41c4850441162003102320022000280200360200200120012903683703800120014180016a41da85044118200141306a102320002002280200360200200120012903800137036820014180016a200141e8006a41f28504200141d0006a10360b230041206b22002400200041186a220420014180016a220241086a28020036020020002002290200220537031020004100360210200041086a200041106a2005a7101120002903082105200141e8006a220241086a2004280200360200200220002903103702002002200537020c200041206a240020014188016a200141f0006a2802003602002001200129036837038001200141f8006a2802002100200128027420012902840121052001410036027020012005370368027f2006500440200141e8006a410010372003200141e8006a1020200341216a200141e8006a1020200141d8006a0c010b200141e8006a410110372003200141e8006a1010200141306a200141e8006a1010200141d0006a0b2203290300200341086a290300200141e8006a102b2001200129036837028401200120014180016a20012802701011200020012802002001280204100220014190016a24000bb40102027f017e230041406a22032400200341106a2001280200200141046a280200200141086a2204280200101e20032902142105200341003602282003200537032020022802002002280204200341206a101f200341206a2002280208410f102c20032003290320370214200341086a200341106a20032802281011200341206a2003280208200328020c10212001200341206a1022200041086a200428020036020020002001290200370200200341406b24000bb40102027f017e230041406a22042400200441106a2001280200200141046a280200200141086a2205280200101e20042902142106200441003602282004200637032020024116200441206a101f2003290300200341086a290300200441206a102b20042004290320370214200441086a200441106a20042802281011200441206a2004280208200428020c10212001200441206a1022200041086a200528020036020020002001290200370200200441406b24000b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b2002200341acb904105d000b5901027e20002903002101200041086a2903002102230041206b22002400200041186a41808001360200200041a6c20436021420004100360210200041086a200041106a20012002101641002000280208200028020c103b000baa0102047f017e230041206b22032400200341186a41808001360200200341a6c20436021420034100360210200341086a230041206b22022400200341106a220429020421062002410036021820022006370310200241106a200141ff0171410247047f200241106a4101103720010541000b103720042002290310370204200241086a2004200228021810112002290308370300200241206a240020002003280208200328020c103b000b5401017f230041106b220224002002200128020436020c200020012802002002410c6a100421002001200228020c103d410c21012000410b4d0440200041027441ecc1046a28020021010b200241106a240020010b0b002000200120021006000b6001017f230041106b2201240020004200370000200041186a4200370000200041106a4200370000200041086a420037000020014120360204200120003602002001412036020c20002001410c6a10082001200128020c103d200141106a24000b3701017f230041106b22022400200241086a410020012000280200200028020441a0ba04107820002002290308370200200241106a24000b6c02027f027e230041206b22002400200041086a220142003703002000420037030020004110360214200020003602102000411036021c20002000411c6a1009200041106a200028021c103d2001290300210220002903002103200041206a2400410541042002200384501b0b4c01017f230041206b220324002000450440410120021039000b200341186a4200370300200341106a4200370300200341086a420037030020034200370300200120031017410020021039000bc101002000027f024020014101710d00103e41ff01714105460d00200041043a000141010c010b200041c1006a4200370000200041396a4200370000200041316a4200370000200041296a4200370000200041f8006a4200370300200041f0006a420237030020004180016a420037030020004188016a4200370300200041d8006a4200370000200041d0006a4201370000200041e0006a4200370000200041e8006a4200370000200041286a41013a0000200041086a420237030041000b3a00000b2601017f230041106b220224002002200036020c20012002410c6a4104102c200241106a24000b2e01017f230041e0006b22012400200141086a200041d800100a1a2001420037030020011034200141e0006a24000ba90502027f027e230041d0026b220024000240103e41ff01714105460440200041808001360224200041a6c204360220200041206a1044200020002903203703a801027f4101200041a8016a10324281feffffff1f834280b6baede90b520d001a200041086a200041a8016a102a200041186a29030021022000290310210320002802080b0440410321010c020b103e41ff01714105470440410421010c020b200041e1016a4200370000200041d9016a4200370000200041d1016a4200370000200041c9016a4200370000200041f8016a420037030020004180026a420037030020004188026a420037030020004198026a4200370300200041a0026a4200370300200041a8026a4200370300200042013703f0012000420237039002200041013a00c801200042023703a801200041b0026a103c200041f0016a200041b0026a200320021013027f20002903a8014202520440200042013703a801200041b0016a0c010b200042013703a801200041b0016a0b2201200337030020012002370308200041c0016a220141003a0000200041f0006a2002370300200041da006a200041c8026a290300370100200041d2006a200041c0026a290300370100200041ca006a200041b8026a290300370100200041c2006a20002903b00237010020002003370368200041013a0041200041003a0020200041206a1042200041206a200041a8016a418801100a1a20014200370300200041b8016a4200370300200041b0016a4200370300200042003703a801200041206a200041a8016a1017200041d0026a24000f0b200041043a00a801200041a8016a102f000b200020013a00b002200041bc016a4101360200200042013702ac012000418887043602a801200041053602242000200041206a3602b8012000200041b0026a360220200041a8016a41d08604101c000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10052000200128020c103d200141106a24000bb81d02067f077e23004190056b2200240002400240103e41ff01712201410546044020004180800136026c200041a6c204360268200041e8006a1044200020002903683703b001200041b0016a103222064201832207a70d01200642807e8342002007501b22074280feffffff1f832206422088a721032006421888a721022006421088a7210402400240024002400240024002402007a741087641ff017122014182016b0e020105000b024020014192016b0e020402000b200141f400460d02200141fa01470d0741062101200441ff0171419801470d08200241ff01714133470d08200341a301470d08200041a0036a200041b0016a102820002903a0034201510d07200041ae026a200041c0036a2903002206370100200041a6026a200041b8036a2903002207370100200041de046a200041b0036a2903002208370100200041e6046a2007370100200041ee046a2006370100200041f6016a2008370000200041fe016a200737000020004186026a2006370000200020002903a80322063701d604200020063700ee01200041d0036a2903002107200041c8036a2903002106200041c0016a200041e8016a4126100a1a410321020c050b41062101200441ff017141c400470d07200241ff017141a101470d0741002102200341ad01460d040c070b41062101200441ff0171413a470d06200241ff017141e301470d06200341c801470d06200041a0036a200041b0016a10294101210220002d00a0034101460d05200041c8016a200041aa036a290100370300200041d0016a200041b2036a290100370300200041d7016a200041b9036a290000370000200020002901a2033703c00120002d00a10321050c030b41062101200441ff017141a201470d05200241ff017141fa00470d05200341c801470d05200041d0046a200041b0016a102920002d00d0044101460d0420004190026a200041b0016a102920002d0090024101460d04200041c2036a200028009402360000200041d0006a200041b0026a2d00003a0000200041a8036a200041da046a290100370300200041b0036a200041e2046a290100370300200041b7036a200041e9046a29000037000020002000280091023600bf03200020002901d2043703a0032000200041a8026a290300370348200041a0026a290300210720004198026a290300210620002d00d1042105200041c0016a200041a0036a4126100a1a410221020c020b41062101200441ff0171412e470d04200241ff01714129470d042003411f470d04200041a0036a200041b0016a102820002903a0034201510d03200041ae026a200041c0036a2903002206370100200041a6026a200041b8036a2903002207370100200041de046a200041b0036a2903002208370100200041e6046a2007370100200041ee046a2006370100200041f6016a2008370000200041fe016a200737000020004186026a2006370000200020002903a80322063701d604200020063700ee01200041d0036a2903002107200041c8036a2903002106200041c0016a200041e8016a4126100a1a410421020c010b41062101200441ff0171419f01470d03200241ff01714102470d03200341e300470d03200041c0016a200041b0016a102920002d00c0014101460d02200041e8016a200041b0016a102920002d00e8014101460d02200041306a200041b0016a102a2000290330a70d02200041406b29030021082000290338210a200041c8046a2201200041d9016a290000370300200041c0046a2205200041d1016a290000370300200041b8046a2202200041c9016a290000370300200041d0006a20004181026a2d00003a0000200020002900c1013703b0042000200041f9016a290000370348200020004182026a2801003602b801200020004185026a2800003600bb01200041f1016a290000210720002900e9012106200041b6036a200529030022093701002000419e026a2002290300220b370100200041a6026a2009370100200041ae026a2001290300220c370100200041ee046a200c370000200041e6046a2009370000200041de046a200b370000200020002903b004220937019602200020093700d604200041c0016a200041d0046a4126100a1a410521020b20004188016a200041c0016a4126100a1a20004180016a200041d0006a2d00003a000020002000290348370378200020002802b801360270200020002800bb01360073200221010c020b200020013a00a003200041a0036a102f000b410621010b20002001410646047f410305200041c0016a20004188016a4126100a1a200041e4006a2000280073360000200041e0006a220220004180016a2d00003a000020002000280270360061200041d0006a200229030037030020002000290378220937035820002009370348200041e8016a200041c0016a4126100a1a02400240024002400240024002400240024002400240200141016b0e050403020100050b200041a0036a41800210404101210120002d00a0034101460d09200041a0036a20004196026a200041a8036a418801100a418801100a1a200041a0016a20004186026a29000037030020004198016a200041fe016a29000037030020004190016a200041f6016a290000370300200020002900ee0137038801200041e8046a200041d0006a290300370300200020073703d804200020063703d004200020002903483703e00420004190026a103c200041206a200041a0036a20004188016a20004190026a10460240024020002903202207200a542202200041286a290300220620085420062008511b0d00200041a0036a20004188016a200041d0046a200a2008104741ff017122014102470d002007200a7d220a200756200620087d2002ad7d220720065620062007511b0d0120004188046a20004188016a20004190026a200a20071015410221010b2001410246200041a0036a2001103f000b41808004412141bc8704100c000b200041a0036a418002104020002d00a0034101460d08200041a0036a20004196026a200041a8036a418801100a418801100a1a200041c8046a220120004186026a290000370300200041c0046a2202200041fe016a290000370300200041b8046a2203200041f6016a290000370300200020002900ee013703b00420004188016a103c20004188046a20004188016a200041b0046a200620071015200041e8046a200041a0016a290300370300200041e0046a20004198016a290300370300200041d8046a20004190016a290300370300200041f8046a200329030037030020004180056a200229030037030020004188056a200129030037030020002000290388013703d004200020002903b0043703f00420004198026a200041d0046a41c000100a1a200041e0026a2007370300200041d8026a2006370300200042013703900220004190026a10344101200041a0036a4102103f000b200041a0036a418002104020002d00a0034101460d07200041a0036a20004196026a200041a8036a418801100a418801100a1a200041e8046a20004186026a290000370300200041e0046a200041fe016a290000370300200041d8046a200041f6016a290000370300200020002900ee013703d00420004190026a103c200041a0036a20004190026a200041d0046a20062007104741ff01712201410246200041a0036a2001103f000b200041a0036a4100104020002d00a0034101470d020c060b200041a0036a4100104020002d00a0034101460d05200041a0036a20004196026a200041a8036a418801100a418801100a1a20004199026a200041c8016a290100370000200041a1026a200041d0016a290100370000200041a8026a200041d7016a290000370000200020053a009002200020002901c001370091022000200041a0036a20004190026a10482000200041086a2903003703d804200020002903003703d004200041d0046a1038000b200041a0036a4100104020002d00a0034101460d0420004190016a200041d1036a29000037030020004198016a200041d9036a290000370300200041a0016a200041e1036a2900003703002000200041c9036a290000370388010240200041a8036a29030022064202520440200041b8036a2903002107200041b0036a29030021080c010b200041c8036a2d00004101470d04200041e8046a2201200041a0016a290300370300200041e0046a220220004198016a290300370300200041d8046a220320004190016a29030037030020002000290388013703d00420004180800136029402200041a6c20436029002024002400240200041d0046a20004190026a103a0e0402000001000b200041b4036a410036020020004184be043602b003200042013702a403200041e0be043602a003200041a0036a41bcbf04101c000b420021060c010b200041c0036a2001290300370300200041b8036a2002290300370300200041b0036a2003290300370300200020002903d0043703a803200042013703a00320004190026a200041a8036a101920002d0090024101460d0220004198026a290300500d03200041a8026a2903002107200041a0026a2903002108420121060b20064201520d03200020083703a003200020073703a803200041a0036a1038000b200041a0036a20004196026a200041a8036a418801100a418801100a1a20004190026a200041c0016a4126100a1a20004191016a200041c8016a29010037000020004199016a200041d0016a290100370000200041a0016a200041d7016a290000370000200020053a008801200020002901c00137008901200041df046a2007370000200041ef046a200041d0006a2d00003a0000200020063700d7042000200041b2026a2800003600d304200020002800af023602d004200020002903483700e704200041106a200041a0036a20004188016a200041d0046a10462000200041186a2903003703b804200020002903103703b004200041b0046a1038000b200020002d0091023a00b004419c81044127200041b0046a419c8404419082041049000b41a08204411741b88204104a000b41a18004411e418c8104104a000b20002d00a1030b3a00d004200041b4036a4101360200200042013702a403200041b487043602a0032000410536029402200020004190026a3602b0032000200041d0046a36029002200041a0036a41d08604101c000b6902017f017e230041406a220424002004200336021c20042002360218200441206a200141e8006a200441186a100e2004200441206a1018200429030821052000200441106a2903004200200428020022011b37030820002005420020011b370300200441406b24000bde0202037f037e23004180016b22052400200541186a2000200110480240200529031822092003542207200541206a290300220820045420042008511b450440200041c8006a22062001200920037d200820047d2007ad7d1013200541086a2000200210482005290308220820037c220a20085422002000ad200541106a290300220820047c7c220920085420082009511b0d0120062002200a20091013200541f8006a2004370300200541c1006a200141186a290000370000200541396a200141106a290000370000200541316a200141086a290000370000200541ca006a2002290000370100200541d2006a200241086a290000370100200541da006a200241106a290000370100200541e2006a200241186a29000037010020052003370370200541013a0049200541013a002820052001290000370029200541286a1042410221060b20054180016a240020060f0b41808404411c41cc8704100c000b6202017f017e230041406a220324002003200236021c200341206a200141c8006a2003411c6a10122003200341206a1018200329030821042000200341106a2903004200200328020022011b37030820002004420020011b370300200341406b24000b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41073602002005420237021c200541b4be04360218200541063602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101c000b6001017f230041106b220324002003200136020c20032000360208230041206b22002400200041146a410136020020004201370204200041d4bb043602002000410636021c2000200341086a3602182000200041186a36021020002002101c000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41dc8704200241086a104c200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a106620032003290310370320200341086a20042000410c6a106620032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002104e41000b3f01017f2000200210502000280208220320002802006a20012002100a1a2003200220036a22014b044041808804411c41a48c04100c000b200020013602080bb90201027f230041106b22022400024002400240200028020022002002410c6a027f02400240200141ff004d0440200028020822032000280204460d010c040b2002410036020c2001418010490d0120014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c020b200041011050200028020821030c020b20022001413f71418001723a000d2002200141067641c001723a000c41020b104e0c010b200028020020036a20013a0000200341016a22012003490d01200020013602080b200241106a240041000f0b41808804411c41948c04100c000bbe0301077f230041106b22052400024002400240200120002802042207200028020822026b4b0440200120026a22012002490d03200720076a22032007490d022000280200410020071b210841002102230041106b220624002005027f2003200120012003491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001105320062802082104200628020c0c030b2001419cc204280200220320016a22022003490d021a41a0c2042802002002490440200141ffff036a220441107640002202417f46200241ffff0371200247720d022002411074220320044180807c716a22022003490d024100210441a0c20420023602002001200120036a22022003490d031a0b419cc204200236020020012003450d021a200320082007100a210420010c020b2006200110532006280200210420062802040c010b4100210420010b2102200404402005200436020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d01000b41a08904412141c48904100c000b1052000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a104b200241206a24000b0f0041d48904411141e88904100c000ba90101027f027f41012001450d001a4100419cc204280200220220016a22032002490d001a024041a0c2042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141a0c20420033602004100200120026a22032002490d021a0b419cc204200336020020020c010b41000b210320002001360204200020033602000b0e0020002802001a03400c000b000bb20302047f027e027f2000350200210620012104230041306b22032400412721000240024020064290ce00540440200621070c010b412721010240034020064290ce00802107200141046b220020014e0d01200341096a20006a200620074290ce007e7da7220141ffff037141e4006e220241017441f492046a2f00003b00002000200041026a22054c0440200341096a20056a2001200241e4006c6b41ffff037141017441f492046a2f00003b0000200642ffc1d72f562000210120072106450d030c010b0b41f08c04411c41b4af04100c000b0c010b02402007a7220241e3004c0440200021010c010b200041026b220120004e0d01200341096a20016a2007a72200200041ffff037141e4006e220241e4006c6b41ffff037141017441f492046a2f00003b00000b02402002410a4e0440200141026b220020014e0d02200341096a20006a200241017441f492046a2f00003b00000c010b200141016b220020014e0d01200341096a20006a200241306a3a00000b412720006b220141274b04400c010b20044184be044100200341096a20006a20011058200341306a24000c010b41c08c04412141b4af04100c000b0b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41c08c04412141bcc004100c000b0d0042a0e5d6f4fad3e0bc897f0b920401077f230041106b22072400418080c400210920042105024020002802002206410171450d002004200441016a22054d0440412b21090c010b41f08c04411c41a89504100c000b0240024002400240200641047145044041002101200521060c010b2001200120026a105920056a22062005490d010b41012105200028020841014704402000200920012002105a0d032000280218200320042000411c6a28020028020c11000021050c030b024002402000410c6a280200220820064b044020002d00004108710d01200820066b220620084b0d022007200020064101105b20072802002206418080c400460d05200728020421082000200920012002105a0d052000280218200320042000411c6a28020028020c1100000d05200620082000105c21050c050b2000200920012002105a0d042000280218200320042000411c6a28020028020c11000021050c040b2000280204210a2000413036020420002d0020210b200041013a00202000200920012002105a0d03200820066b220120084b0d02200741086a200020014101105b20072802082201418080c400460d03200728020c21022000280218200320042000411c6a28020028020c1100000d03200120022000105c0d032000200b3a00202000200a360204410021050c030b41c08c04412141d89504100c000b41f08c04411c41b89504100c000b41c08c04412141c89504100c000b200741106a240020050b4401017f2000200146044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a22002001470d000b20020f0b41f08c04411c41a4af04100c000b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000bb20101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03010001020b2002200241016a22034d044020034101762105200241017621040c020b41f08c04411c41e89504100c000b41002105200221040b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b4701027f2002411c6a28020021032002280218210441002102027f0340200120012002460d011a200241016a2102200420002003280210110100450d000b200241016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341b89004360208200341043602242003200341206a360218200320033602282003200341046a360220200341086a2002101c000b5901017f230041106b220624000240200120024d0440200220044d0d01200220042005105f000b2001200220051060000b200641086a2001200220031056200020062802083602002000200628020c360204200641106a24000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341a09804360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a2002101c000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341d49804360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a2002101c000b880101047f200141086a28020021022001280204210402400240200141046a10622205418080c400470440200220046b2203200128020420012802086b6a220220034b0d012001280200220320026a22022003490d02200120023602000b20002005360204200020033602000f0b41c08c04412141dc9a04100c000b41f08c04411c41ec9a04100c000bb70101047f200028020022012000280204460440418080c4000f0b2000200141016a36020020012d00002203411874411875417f4c047f2000200141026a36020020012d0001413f7121022003411f712104200341df014d044020044106742002720f0b2000200141036a36020020012d0002413f712002410674722102200341f00149044020022004410c74720f0b2000200141046a3602002004411274418080f0007120012d0003413f71200241067472720520030b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b980301057f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a1061200228021c418080c400470d010c020b0b200241106a200241206a10612002280214418080c400460d00200241086a2002280210200320041063200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a105922054d04402001280218200320042001411c6a28020028020c11000021000c010b20022001200020056b4100105b4101210020022802002205418080c400460d00200228020421062001280218200320042001411c6a28020028020c1100000d00200520062001105c21000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044109470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141e49204102e000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a104c200341206a24000b6c01027f230041206b2202240041012103024020002001106a0d002002411c6a410036020020024184be043602182002420137020c200241e88d04360208200141186a2802002001411c6a280200200241086a10680d00200041046a2001106a21030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d012000200110550c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a1067200141d4bc0441022002280208200228020c10580c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a1067200141d4bc0441022002280200200228020410580b20024190016a24000ba908010c7f230041e0006b22032400027f024020020440200341d8006a210d2000280204210b2000280200210c2000280208210a0340200a2d00000440200c41c990044104200b28020c1100000d030b2003410a3602582003428a808080103703502003200236024c200341003602482003200236024420032001360240200341386a2001200241002002106c0240024020032802382207450d00200328023c210503400240024002400240024002402003280254220041016b220420004d0440200320046a41d8006a2d00002108200541084f0440200741036a417c7120076b2200450440410021040c030b200341306a410020052000200020054b1b22042007200541ec9604105e20032802342206450d0220032802302109410021000340200020096a2d00002008460d04200041016a22002006470d000b0c020b2005450d08410021000340200020076a2d00002008460d03200041016a22002005470d000b0c080b41c08c04412141f09d04100c000b0240024002402005200541086b22004f0440200020044f0d010c020b41c08c04412141fc9604100c000b200841818284086c210902400340200441046a22062004490d01200420076a280200200973220e417f73200e41818284086b71200620076a2802002009732206417f73200641818284086b7172418081828478710d022004200441086a22064d04402000200622044f0d010c040b0b41f08c04411c419c9704100c000b41f08c04411c418c9704100c000b200421060b20052006490d01200341286a2006200520071056200328022c2204450d06200328022821054100210003402008200020056a2d00004704402004200041016a2200470d010c080b0b200020066a220020064f0d0041f08c04411c41bc9704100c000b2000200041016a22044b0d012004200328024822046a22002004490d0220032000360248200020032802542204490d03200341206a20032802402003280244200020046b22052000106c20032802202200450d0320032802242104200341186a41002003280254200d410441a09e04105e2004200328021c470d03027f20032802182106034041002004450d011a200441016b210420062d0000210720002d00002108200041016a2100200641016a210620072008460d000b200820076b0b0d03200a41013a0000200541016a220020054f0d0641f08c04411c41c09104100c000b2006200541ac9704102e000b41f08c04411c41809e04100c000b41f08c04411c41909e04100c000b200341106a200328024020032802442003280248200328024c106c20032802142105200328021022070d000b0b200a41003a0000200221000b200341086a20012002200041d09104106d200c2003280208200328020c200b28020c1100000d02200320002001200241e09104106e20032802002101200328020422020d000b0b41000c010b41010b200341e0006a24000b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011056200528020c2107200528020821060b2000200736020420002006360200200541106a24000b4e01027f230041106b22052400200541086a20032001200210632005280208220645044020012002410020032004106f000b200528020c21012000200636020020002001360204200541106a24000b6400024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b2003200320016b220449044041c08c04412141ec9b04100c000b200020043602042000200120026a3602000f0b20022003200120032004106f000bb20601027f23004180016b220524002005200336021c200520023602182005027f20014181024f0440418002210602400340200020066a2c000041bf7f4a0d01200641016b22060d000b410021060b200541106a20002001200641f09c04106d20052005290310370320200541b09e0436022841050c010b200520013602242005200036022020054184be0436022841000b36022c024002402005200120024f047f200120034f0d0120030520020b360238200541d4006a4103360200200541ec006a4106360200200541e4006a410636020020054203370244200541d89e043602402005410436025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580c010b200541086a027f02400240200220034d04402002450d010240200120024d044020012002470d010c030b200020026a2c000041bf7f4a0d020b20052002360230200221030c020b200541f4006a4106360200200541ec006a4106360200200541e4006a4104360200200541d4006a410436020020054204370244200541949f043602402005410436025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580c030b2005200336023041002003450d011a0b03400240200120034d044020012003470d0120010c030b200020036a2c00004140480d0020030c020b200341016b22030d000b41000b2206200020012004106e20052005280208220036025820052000200528020c6a36025c2005200541d8006a10622004107022003602342006027f41012000418001490d001a41022000418010490d001a41034104200041808004491b0b20066a22004d04402005200036023c20052006360238200541d4006a4105360200200541fc006a4106360200200541f4006a4106360200200541ec006a410a360200200541e4006a410b36020020054205370244200541e89f043602402005410436025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580c010b41f08c04411c2004100c000b200541406b2004101c000b1a002000418080c40046044041908f04412b2001100c000b20000b920a02097f017e4101210602402001280218220741272001411c6a28020028021022081101000d0041f4002103410221010240027f02400240027f0240024002402000280200220241096b0e050704010105000b2002412746200241dc0046720d010b2002410b7421034100210141202100412021040240027e024002400240024002400240024002400240024002400340200120004101766a22002001490d0302402003200041027441c4af046a280200410b7422054d044020032005460d03200021040c010b200041016a22012000490d050b2004200420016b22004f044020012004490d010c030b0b41c08c04412141849904100c000b200041016a21010b2001411f4b0d022001410274220341c4af046a280200411576210002402001411f470440200341c8af046a280200411576220320006b220420034d0d0141c08c04412141ccad04100c000b41c30520006b220441c4054f0d040b4100210320022001200141016b22054f047f200541204f0d05200541027441c4af046a28020041ffffff00710541000b6b220a20024b0d05200441016b220320044b0d06200020046a41016b210402402003450d00200041c305200041c3054b1b210941002101034020002009460d09024020012001200041c4b0046a2d00006a22054d04402005200a4d0d01200021040c030b41f08c04411c418cae04100c000b200041016a210020052101200341016b22030d000b0b20044101710d08024002402002418080044f04402002418080084f0d01200241e7a604412a41bba70441c00141fba80441b60310720d0d0c020b200241c8a10441284198a20441a00241b8a40441af021072450d010c0c0b200241e0ffff007141e0cd0a46200241b9ee0a6b41074972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d0b0b200241017267410276410773ad4280808080d000840c090b41f08c04411c41e49804100c000b41f08c04411c41f49804100c000b2001412041acad04105d000b41c08c04412141bcad04100c000b20054120419cae04105d000b41c08c04412141dcad04100c000b41c08c04412141ecad04100c000b200941c30541fcad04105d000b200241017267410276410773ad4280808080d000840b210b41032101200221030c060b41010c010b41020b2101200221030c030b41ee000c010b41f2000b21030b0240034002402001210241002101200321000240024002400240200241016b0e03030200010b02400240024002400240200b422088a741ff017141016b0e050004010203050b200b42ffffffff8f6083210b41fd002100410321010c060b200b42ffffffff8f608342808080802084210b41fb002100410321010c050b200b42ffffffff8f608342808080803084210b41f5002100410321010c040b200b42ffffffff8f60834280808080c00084210b41dc002100410321010c030b200ba7220141ffffffff03712001470d032001410274220041204f0d0520032000411c7176410f712200413072200041d7006a2000410a491b41808f04107021002001450440200b42ffffffff8f608342808080801084210b410321010c030b200b42017d42ffffffff0f83200b4280808080708384210b410321010c020b20074127200811010021060c050b41dc002100410121010b200720002008110100450d010c030b0b41908d04412141e08e04100c000b41c08d04412441f08e04100c000b20060b970301087f230041106b220a240041012107024002402002450d00200120024101746a210b20004180fe0371410876210c200141026a210820012d00012102200041ff0171210e03402002210d0240200c20012d000022014704402008200b462001200c4b720d030c010b200a41086a2009200d200320044198a104105e200a2802082102200a28020c2101024003402001450d01200141016b210120022d0000200241016a2102200e470d000b410021070c040b2008200b460d020b20082d000121022008220141026a2108200d2209200220096a22024d0d000b41f08c04411c4188a104100c000b2006450d00200520066a2103200041ffff03712102024003400240200541016a2100027f200020052d00002201411874411875220441004e0d001a20002003460d0120052d0001200441ff0071410874722101200541026a0b2105200141004a2002200220016b22024a730d0220024100480d032007410173210720032005470d010c030b0b41908f04412b41a8a104100c000b41c08c04412141b8a104100c000b200a41106a240020074101710b7e01037f23004190016b2202240020002d0000210341ff0021000340200241106a20006a413041372003410f712204410a491b20046a3a0000200041016b21002003220441047621032004410f4b0d000b200241086a200241106a200041016a1067200141d4bc0441022002280208200228020c105820024190016a24000b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a104c200241206a24000b0b002000280200200110640b1b00200128021841e4c10441052001411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a280200220441e48f04410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241f48f043602282002410c3602142002200241106a36023820022002410c6a36021020042001200241286a1068450d010c020b20032802002200200328020428020c11080042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241f48f043602282002410d3602142002200241106a36023820022002410c6a36021020042001200241286a10680d010b200328020c2100200241246a41033602002002413c6a410e360200200241346a410e36020020024203370214200241bc8f0436021020022000410c6a3602382002200041086a3602302002410636022c200220003602282002200241286a36022020042001200241106a106821000b200241406b240020000b5901017f230041106b220624000240200120024d0440200220044d0d01200220042005105f000b2001200220051060000b200641086a2001200220031079200020062802083602002000200628020c360204200641106a24000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41a0b60441214188b604100c000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41d0c004412141bcc004100c000b0be8410c00418080040bf107617474656d707420746f2073756274726163742077697468206f766572666c6f77656e636f756e746572656420656d7074792073746f726167652063656c6c2f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f73746f726167652f7372632f6c617a792f6d6f642e727300003f0001004b0000009d00000019000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f73746f726167652f7372632f7472616974732f6d6f642e7273c30001004d000000a80000000a00000073746f7261676520656e7472792077617320656d70747900c30001004d000000a90000000a0000006661696c656420746f2070756c6c207061636b65642066726f6d20726f6f74206b6579204801010024000000301f0100020000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f73746f726167652f7372632f7472616974732f6f7074737065632e72730000007c010100510000006b0000000d000000681f0100540000009900000030000000681f0100540000009e0000002e000000617474656d707420746f206164642077697468206f766572666c6f770f000000010000000100000001000000241c010055000000b500000037000000241c010055000000b80000000900000045726332303a3a5472616e7366657200041f0100000000004c02010045726332303a3a5472616e736665723a3a66726f6d45726332303a3a5472616e736665723a3a746f45726332303a3a5472616e736665723a3a76616c756545726332303a3a417070726f76616c000000041f010000000000a602010045726332303a3a417070726f76616c3a3a6f776e657245726332303a3a417070726f76616c3a3a7370656e64657245726332303a3a417070726f76616c3a3a76616c75652f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6578616d706c65732f74726169742d65726332302f6c69622e727308030100480000003f000000050000006469737061746368696e6720696e6b2120636f6e7374727563746f72206661696c65643a2000000060030100250000006469737061746368696e6720696e6b21206d657373616765206661696c65643a2000000090030100210000000803010048000000cc0000002c0000000803010048000000020100002700000010000000040000000400000011000000120000001300418088040bb104617474656d707420746f206164642077697468206f766572666c6f77140000000000000001000000150000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300000000000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000002c0401006d000000830100001c0000006361706163697479206f766572666c6f770000002c0401006d000000fd010000050000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72732b05010069000000550200001c0000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273000000a40501006d000000c60600000d000000a40501006d00000002070000090041c08c040b21617474656d707420746f2073756274726163742077697468206f766572666c6f770041f08c040b41617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770041c08d040bd528617474656d707420746f2073686966742072696768742077697468206f766572666c6f772e2e0000e4060100020000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e7273000000f00601006d000000a200000035000000f00601006d000000a200000021000000f00601006d000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75653a041f010000000000bb07010001000000bb070100010000001600000000000000010000001700000070616e69636b65642061742027272c20f007010001000000f107010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732000000408010020000000240801001200000060202020202f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e727300004d0801007100000028000000150000004d080100710000002f000000210000004d0801007100000030000000120000002c0a280a28292f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e72730000f60801006c000000650000001400000030303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e72733c0a01006c0000001e0500000d0000003c0a01006c000000220500000d0000003c0a01006c00000045050000310000003c0a01006c0000004e050000310000003c0a01006c000000b2050000380000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273000000f80a010071000000420000001e000000f80a0100710000004900000015000000f80a0100710000004e0000001f000000f80a0100710000005700000009000000f80a0100710000005b00000005000000f80a0100710000005b0000003d00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820cc0b010012000000de0b01002200000072616e676520656e6420696e64657820100c010010000000de0b010022000000736c69636520696e64657820737461727473206174202062757420656e64732061742000300c010016000000460c01000d0000008f1b01006e000000c6080000170000008f1b01006e000000d1080000180000008f1b01006e000000da08000014000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028940c010015000000a90c01002b000000f5080100010000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e7273000000ec0c01006d0000009200000026000000ec0c01006d00000092000000110000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273007c0d01006f0000005c010000130000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e7273fc0d0100740000001d010000110000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e7273800e010070000000a001000047000000800e010070000000b301000020000000800e010070000000b301000011000000800e010070000000b7010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000350f01000b000000400f0100160000004808010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e6720600000700f01000e0000007e0f010004000000820f0100100000004808010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060350f01000b000000b40f010026000000da0f010008000000e20f01000600000048080100010000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e727300001010010076000000080000001800000010100100760000000a0000001c00000010100100760000001a0000003600000010100100760000001e0000000900000000010305050606020706080709110a1c0b190c1a0d100e0d0f0410031212130916011704180119031a071b011c021f1620032b032d0b2e01300331023201a702a902aa04ab08fa02fb05fd02fe03ff09ad78798b8da23057588b8c901cdd0e0f4b4cfbfc2e2f3f5c5d5fe2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d11293a3b4549575b5c5e5f64658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff806d71dedf0e1f6e6f1c1d5f7d7eaeaf7fbbbc16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f747596262e2fa7afb7bfc7cfd7df9a409798308f1fd2d4ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab051f09811b03190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15054e071b0757070206160d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd03590716091809140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a062f314d0380a4083c030f033c0738082b0582ff1118082f112d03210f210f808c048297190b158894052f053b07020e180980be22740c80d61a0c0580ff0580df0cf29d033709815c1480b80880cb050a183b030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a61081f50701202a064c04808d0480be031b030f0d000601010301040205070702080809020a050b020e041001110212051311140115021702190d1c051d0824016a046b02af03bc02cf02d102d40cd509d602d702da01e005e102e704e802ee20f004f802fa02fb010c273b3e4e4f8f9e9e9f7b8b9396a2b2ba86b1060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5fbfeeef5a62f4fcff9a9b2e2f2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fe7ecefffc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b4e43813709160a08183b45390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a161a261c1417094e042409440d19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d133a060a362c041780b93c64530c48090a46451b4808530d498107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48a4c630d842f8fd18247a1b98239072a045c06260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2e781332d03110408818c89046b050d0309071092604709743c80f60a7308701546809a140c570919808781470385420f1584501f80e12b80d52d031a040281401f113a050184e080f7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d80510030d03740c59070c04010f0c0438080a062808224e81540c1503050307091d030b05060a0a060808070980cb250a84062f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e7273000031160100790000004b0000002800000031160100790000004f0000000900000031160100790000004d00000009000000311601007900000054000000110000003116010079000000560000001100000031160100790000005700000016000000311601007900000058000000090000003116010079000000520000003e0000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e727300002c170100760000008d00000001000000f60801006c000000cd010000050000000003000083042000910560005d13a0001217201f0c20601fef2ca02b2a30202c6fa6e02c02a8602d1efb602e00fe20369eff6036fd01e136010a2137240de137ab0e61392f18a139301ce147f31e214cf06ae14f4f6f21509dbca15000cf615165d1a15100da215200e0e15330e16155aee2a156d0e8e15620006e57f001ff5700700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b033c082a180120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c01090128010301370101030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d021e021e02400201070801020b09012d030101750222017603040209010603db0202013a010107010101010208060a0201301f310430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c6400001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990b31047b01360f290102020a033104020207013d03240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002002e0217000101030405080802071e0494030037043208010e011605010f00070111020701020105000700013d0400076d07006080f00000cc1f010070000000e70000004f0041a0b6040b21617474656d707420746f2073756274726163742077697468206f766572666c6f770041d0b6040baf06617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72730000008f1b01006e000000e6050000090000000a000000041f010000000000101c0100010000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000241c010055000000580000001c000000241c0100550000005800000009000000241c0100550000005800000031000000241c0100550000006300000009000000241c010055000000810000001a0000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000cc1c010052000000530100001400000045636473615265636f766572794661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f6465041f0100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f7230780000541e0100020000005f000000601e010001000000041f010000000000041f010000000000041f01004188bd040b0920000000080000000200419cbd040b150200000003000000010000002000000008000000020041bcbd040b150200000003000000020000002000000008000000020041dcbd040b150200000003000000030000002000000008000000020041fcbd040b9d0402000000030000005765206465636f646520604e6020656c656d656e74733b20716564007120010062000000cd020000170000003a200000041f010000000000301f010002000000656e636f756e746572656420756e6578706563746564206572726f72441f01001c0000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273681f01005400000014010000170000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e7273cc1f010070000000e00000004c00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f677265656e2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e72730071200100620000006d0000000e0000004572726f72000000000000000100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" - }, - "contract": { - "name": "trait_erc20", - "version": "3.0.0-rc7", - "authors": ["Parity Technologies "] - }, - "V3": { - "spec": { - "constructors": [ - { - "args": [ - { - "label": "initial_supply", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": ["Creates a new ERC-20 contract with the specified initial supply."], - "label": "new", - "payable": false, - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "from", - "type": { - "displayName": ["Option"], - "type": 11 - } - }, - { - "docs": [], - "indexed": true, - "label": "to", - "type": { - "displayName": ["Option"], - "type": 11 - } - }, - { - "docs": [], - "indexed": true, - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [" Event emitted when a token transfer occurs."], - "label": "Transfer" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "docs": [], - "indexed": true, - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "docs": [], - "indexed": true, - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - " Event emitted when an approval occurs that `spender` is allowed to withdraw", - " up to the amount of `value` tokens from `owner`." - ], - "label": "Approval" - } - ], - "messages": [ - { - "args": [], - "docs": [" Returns the total token supply."], - "label": "BaseErc20::total_supply", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 0 - }, - "selector": "0x8244a1ad" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - } - ], - "docs": [ - " Returns the account balance for the specified `owner`.", - "", - " Returns `0` if the account is non-existent." - ], - "label": "BaseErc20::balance_of", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 0 - }, - "selector": "0x933ae3c8" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - } - ], - "docs": [ - " Returns the amount which `spender` is still allowed to withdraw from `owner`.", - "", - " Returns `0` if no allowance has been set." - ], - "label": "BaseErc20::allowance", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 0 - }, - "selector": "0x74a27ac8" - }, - { - "args": [ - { - "label": "to", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - " Transfers `value` amount of tokens from the caller's account to account `to`.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the caller's account balance." - ], - "label": "BaseErc20::transfer", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 8 - }, - "selector": "0xfa9833a3" - }, - { - "args": [ - { - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - " Allows `spender` to withdraw from the caller's account multiple times, up to", - " the `value` amount.", - "", - " If this function is called again it overwrites the current allowance with `value`.", - "", - " An `Approval` event is emitted." - ], - "label": "BaseErc20::approve", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 8 - }, - "selector": "0x922e291f" - }, - { - "args": [ - { - "label": "from", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "to", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - " Transfers `value` tokens on the behalf of `from` to the account `to`.", - "", - " This can be used to allow a contract to transfer tokens on ones behalf and/or", - " to charge fees in sub-currencies, for example.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " for the caller to withdraw from `from`.", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the account balance of `from`." - ], - "label": "BaseErc20::transfer_from", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["Result"], - "type": 8 - }, - "selector": "0x839f0263" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 0 - } - }, - "name": "total_supply" - }, - { - "layout": { - "cell": { - "key": "0x0100000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "balances" - }, - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 6 - } - }, - "name": "allowances" - } - ] - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 1, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "offset_key", - "type": 5, - "typeName": "Key" - } - ] - } - }, - "params": [ - { - "name": "K", - "type": 2 - }, - { - "name": "V", - "type": 0 - } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 2, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 3, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_env", "types", "AccountId"] - } - }, - { - "id": 3, - "type": { - "def": { - "array": { - "len": 32, - "type": 4 - } - } - } - }, - { - "id": 4, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 5, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 3, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "Key"] - } - }, - { - "id": 6, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "offset_key", - "type": 5, - "typeName": "Key" - } - ] - } - }, - "params": [ - { - "name": "K", - "type": 7 - }, - { - "name": "V", - "type": 0 - } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 7, - "type": { - "def": { - "tuple": [2, 2] - } - } - }, - { - "id": 8, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 9 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 9 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 9, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 10, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "InsufficientBalance" - }, - { - "index": 1, - "name": "InsufficientAllowance" - } - ] - } - }, - "path": ["trait_erc20", "erc20", "Error"] - } - }, - { - "id": 11, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 2 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 2 - } - ], - "path": ["Option"] - } - } - ] - } -} diff --git a/.api-contract/src/test/contracts/ink/v4/erc20.contract.json b/.api-contract/src/test/contracts/ink/v4/erc20.contract.json deleted file mode 100644 index 555671be..00000000 --- a/.api-contract/src/test/contracts/ink/v4/erc20.contract.json +++ /dev/null @@ -1,377 +0,0 @@ -{ - "source": { - "hash": "0x114f55289bcdfd0d28e0bbd1c63452b4e45901a022b1011d298fa2eb12d1711d", - "language": "ink! 4.3.0", - "compiler": "rustc 1.75.0", - "wasm": "0x0061736d0100000001601060037f7f7f017f60027f7f0060027f7f017f60037f7f7f0060017f0060047f7f7f7f0060047f7f7f7f017f60057f7f7f7f7f0060000060017f017f60027e7e0060047f7f7e7e0060037e7e7f0060037f7e7e006000017f60047f7f7e7e017f02c7010a057365616c310b6765745f73746f726167650006057365616c301176616c75655f7472616e736665727265640001057365616c3005696e7075740001057365616c300663616c6c65720001057365616c300d64656275675f6d6573736167650002057365616c300f686173685f626c616b65325f3235360003057365616c300d6465706f7369745f6576656e740005057365616c320b7365745f73746f726167650006057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100351500007030b0101030c0d0101030305030101070401010001010304070e03010409030201020004030108010a0a0104080f0408030501040801090200000202020204010202070605060105020203050205040501700110100608017f01418080040b0711020463616c6c0037066465706c6f79003a0915010041010b0f54532c2a465748272747274445424a0ad37d502b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b2200200120034d044020002001360204200020023602000f0b200120032004100b000b0e0020002001200241cc960410580bbb0102037f017e230041306b2204240020044100360220200442808001370228200441d0a30436022441b7c380e57e200441246a2205100d20002005100e20012005100e20042004290224370218200441106a200441186a2206200428022c100f2004280214210020042802102101200429021821072004410036022c20042007370224200220032005101020042004290224370218200441086a2006200428022c100f200120002004280208200428020c10071a200441306a24000b2601017f230041106b220224002002200036020c20012002410c6a41041021200241106a24000b0a0020012000412010210b4501017f2002200128020422034b0440419ca00441234194a2041017000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b2a01017f230041106b2203240020032001370308200320003703002002200341101021200341106a24000bb50102047f017e230041306b2203240020034100360220200342808001370228200341d0a30436022441e7b98fb102200341246a2204100d20002004100e20032003290224370218200341106a200341186a2205200328022c100f2003280214210020032802102106200329021821072003410036022c20032007370224200120022004101020032003290224370218200341086a2005200328022c100f200620002003280208200328020c10071a200341306a24000bd10102037f017e230041d0006b22022400200241186a220420001013200229021821052002410036022c2002200537022420012802002001280204200241246a2203101420012802082003100e20022002290224370218200241106a2004200228022c100f2003200228021020022802141015200241086a200028020020002802042000280208220110162002410036024c200220022903083702442003200241c4006a100e20012001200228024c6a22034b044041c08204411c41c886041017000b20002003360208200241d0006a24000b3f01027f2001280204220320012802082202490440200220034184a2041029000b200041003602082000200320026b3602042000200128020020026a3602000b100020012002101c20022000200110210b8f0201077f230041d0006b22032400200341286a22044200370300200341206a22054200370300200341186a22064200370300200342003703100240200241214f0440200341c8006a22074200370300200341406b22084200370300200341386a220942003703002003420037033020012002200341306a1005200420072903003703002005200829030037030020062009290300370300200320032903303703100c010b200341086a2002200341106a412041988204100a2003280208200328020c2001200241a88204101a0b20002003290310370000200041186a200341286a290300370000200041106a200341206a290300370000200041086a200341186a290300370000200341d0006a24000b2900200220034904402003200241b886041029000b2000200220036b3602042000200120036a3602000b4601017f230041206b220324002003410c6a420037020020034101360204200341f49f043602082003200136021c200320003602182003200341186a36020020032002102b000bd10102037f017e230041d0006b22022400200241186a220420001013200229021821052002410036022c2002200537022420012802002001280204200241246a2203101420012802082003101920022002290224370218200241106a2004200228022c100f2003200228021020022802141015200241086a200028020020002802042000280208220110162002410036024c200220022903083702442003200241c4006a100e20012001200228024c6a22034b044041c08204411c41c886041017000b20002003360208200241d0006a24000b210020002d00004504402001410010300f0b200141011030200041016a2001100e0b7b002001200346044020002002200110091a0f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41053602002000410336020c200041a09804360208200041053602242000200041206a360210200020003602282000200041046a360220200041086a2004102b000b6a01037f230041206b22012400200141086a200028020020002802042000280208220210162001410036021c200120012903083702144103200141146a101c20022002200128021c6a22034b044041c08204411c41c886041017000b20002003360208200141206a24000b7401017f230041106b2202240002402000413f4d04402001200041027410300c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210210c010b200041ffffffff034d044020004102744102722001100d0c010b20014103103020002001100d0b200241106a24000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101e45044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b3d01027f200028020422032002492204450440200120022000280200220120024190a304101a2000200320026b3602042000200120026a3602000b20040ba90102017f027e230041406a220224002002411f6a2001101d0240024020022d001f0d002002200110202002290300a70d00200241106a2903002103200229030821042000200229002037000820004200370300200041286a2004370300200041306a2003370300200041206a200241386a290000370000200041186a200241306a290000370000200041106a200241286a2900003700000c010b200042013703000b200241406b24000b5f02017f037e230041106b2202240020024200370308200242003703000240200120024110101e45044020022903082104200229030021050c010b420121030b2000200537030820002003370300200041106a2004370300200241106a24000b5c01037f02402000280208220420026a220320044f04402003200028020422054b0d01200028020020046a200320046b2001200241e4a104101a200020033602080f0b4180a004411c41c4a1041017000b2003200541d4a104100b000bb20101027f230041306b2201240020014180800136020441d0a304200141046a2202100320014180800136022c200141d0a3043602282002200141286a101d20012d00040440200141003a000441a0850441c100200141046a41dc820441e485041023000b2000200141066a290000370001200041096a2001410e6a290000370000200041116a200141166a290000370000200041186a2001411d6a290000370000200020012d00053a0000200141306a24000b7c01017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a42023702002005413c6a41013602002005410236021c200541fc9004360218200541023602342005200541306a3602202005200541106a3602382005200541086a360230200541186a2004102b000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10012000290308210120002903002102200041206a2400410541042001200284501b0b850302047f027e230041d0006b220324002003410036023020034280800137023c200341d0a30436023841b7c380e57e200341386a2204100d20012004100e20022004100e20032003290238370228200341206a200341286a2003280240100f2003280224210220032802202105200328022821012003200328022c2206360238200520022001200410002102200341186a20032802382001200641908504100a027e024002400240024020020e0400010103010b200328021821012003200328021c36023c200320013602382003200341386a10202003290300a70d0120032903082107200341106a2903000c030b200341c4006a42003702002003410136023c200341a08604360238200341f49f04360240200341386a41a88604102b000b200341003a0037200341c4006a42013702002003410136023c2003419081043602382003410336022c2003200341286a3602402003200341376a360228200341386a41988104102b000b42000b21082000200737030020002008370308200341d0006a24000bff0202057f027e230041d0006b220224002002410036023020024280800137023c200241d0a30436023841e7b98fb102200241386a2204100d20012004100e20022002290238370228200241206a200241286a2002280240100f2002280224210320022802202105200228022821012002200228022c2206360238200520032001200410002103200241186a20022802382001200641908504100a027e024002400240024020030e0400010103010b200228021821012002200228021c36023c200220013602382002200241386a10202002290300a70d0120022903082107200241106a2903000c030b200241c4006a42003702002002410136023c200241a08604360238200241f49f04360240200241386a41a88604102b000b200241003a0037200241c4006a42013702002002410136023c2002419081043602382002410336022c2002200241286a3602402002200241376a360228200241386a41988104102b000b42000b21082000200737030020002008370308200241d0006a24000b0300010b1b002000418180014f044020004180800141f48504100b000b20000b0e0020002001200241ac960410580b840101017f230041306b22022400200241146a42013702002002410136020c200241f49e0436020820024102360224200220002d0000410274220041a0a3046a28020036022c2002200041b4a3046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10432100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241989004360210200241f49f0436020c2002410c6a1049000bdd0401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280214220341ec82044106200141186a280200220528020c22041100000d0c024020012d001c410471450440200341929104410120041100000d0e200341e4890441052004110000450d010c0e0b200341939104410220041100000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241e489044105102d0d0d2002419091044102102d0d0d0b200341fc8f044101200411000021000c0c0b200128021441f28204410d200141186a28020028020c11000021000c0b0b200128021441ff8204410e200141186a28020028020c11000021000c0a0b2001280214418d8304410b200141186a28020028020c11000021000c090b200128021441988304411a200141186a28020028020c11000021000c080b200128021441b28304410e200141186a28020028020c11000021000c070b200128021441c083044110200141186a28020028020c11000021000c060b200128021441d08304410c200141186a28020028020c11000021000c050b200128021441dc8304410b200141186a28020028020c11000021000c040b200128021441e783044107200141186a28020028020c11000021000c030b200128021441ee8304410f200141186a28020028020c11000021000c020b200128021441fd83044111200141186a28020028020c11000021000c010b2001280214418e84044113200141186a28020028020c11000021000b200241106a240020000bd40701107f230041d0006b22032400200341003b014c200320023602482003410036024420034281808080a00137023c2003200236023820034100360234200320023602302003200136022c2003410a3602282000280204210c2000280200210d2000280208210e200341406b210f027f0340024020032d004d450440200328022c210a02400240024002402003280238220b200328023022104b0d0020032802342202200b4b0d00200328023c2204450d012004200f6a41016b21110340200a200222076a210020112d0000210602400240024002400240027f02400240200b20026b220541084f0440024002402000200041036a417c712202460440200541086b2108410021020c010b200341206a20062000200220006b2202105620032802204101460d012002200541086b22084b0d030b200641818284086c21090340200020026a220141046a2802002009732212417f73201241818284086b7120012802002009732201417f73200141818284086b7172418081828478710d03200241086a220220084d0d000b0c020b200328022421010c020b200341106a20062000200510562003280214210120032802100c020b200220054b0d02200341186a2006200020026a200520026b1056410020032802184101470d011a2002200328021c6a22012002490d030b41010b22004101460440200141016a2202450d0302402007200220076a22024d04402003200236023420022004490d07200220104d0d010c070b41e08f04411c41b89d041017000b200441054f0d04027f200a200220046b6a2106200f210720042105034041002005450d011a200541016b210520072d0000210820062d00002109200641016a2106200741016a210720082009460d000b200920086b0b0d05200341086a20032802442002200a105220032002360244200328020c2100200328020821020c0a0b2003200b3602340c060b41b08f04412141d895041017000b41e08f04411c41e895041017000b41e08f04411c41a89d041017000b2004410441c89d04100b000b2002200b4d0d000b0b200341013a004d20032d004c044020032802482101200328024421040c020b20032802482201200328024422044f04404100210220012004470d020c030b41b08f04412141909b041017000b41b08f04412141989d041017000b200320042001200a105220032802042100200328020021020b20020d010b41000c020b0240200e2d00000440200d418c91044104200c28020c1100000d010b200e2000047f200020026a41016b2d0000410a460541000b22013a0000200d20022000200c28020c110000450d010b0b41010b2100200341d0006a240020000bd70502047f017e230041b0016b22012400200141086a200041e00010091a20014280800137028001200141d0a30436027c02402001290308500440200141fc006a101b200141f0006a220020014184016a2802003602002001200129027c370368200141a0016a2202200141e8006a220341e88604102f2001200141206a36029c012001411536029801200141f4860436029401200220014194016a10182000200141a8016a280200360200200120012902a0013703682001200141c1006a3602a801200141133602a4012001418987043602a0012003200210180c010b200141fc006a101b200141f0006a220020014184016a2802003602002001200129027c370368200141a0016a2202200141e8006a220341ac8704102f2001200141106a36029c012001411636029801200141b8870436029401200220014194016a10122000200141a8016a280200360200200120012902a0013703682001200141306a3602a801200141183602a401200141ce87043602a0012003200210120b20014190016a20002802003602002001200129036837038801230041206b22002400200041186a22024100360200200020014188016a2204290200370310200041086a200041106a200441086a280200100f20002903082105200341086a2002280200360200200320002903103702002003200537020c200041206a2400200141a8016a200141f0006a2802003602002001200129026822053703a001200141f8006a2802002103200128027421022001410036027020012005370268027f2001290308500440200141e8006a220041001030200141206a20001019200141c1006a20001019200141106a0c010b200141e8006a220041011030200141106a2000100e200141306a2000100e200141d0006a0b2200290300200041086a290300200141e8006a1010200120012902683703a0012001200141a0016a2001280270100f20022003200128020020012802041006200141b0016a24000bef0102037f017e230041d0006b22032400200341186a220520011013200329021821062003410036022c2003200637022420022802002002280204200341246a2204101420042002280208410f102120032003290224370218200341106a2005200328022c100f2004200328021020032802141015200341086a200128020020012802042001280208220210162003410036024c200320032903083702442004200341c4006a100e20022002200328024c6a22044b044041c08204411c41c886041017000b200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41053602002000410236020c200041e89004360208200041053602242000200041206a360210200020003602282000200041046a360220200041086a41f4a104102b000b3c01027f230041106b22002400200042808001370208200041d0a304360204200041046a2201410110302001410110304101200028020c10281035000b5101027f230041106b22022400200242808001370208200241d0a304360204200241046a2203410010302003200141ff0171410247047f20034101103020010541000b10302000200228020c10281035000b3e01027f230041106b22022400200242808001370208200241d0a304360204200241046a22034100103020002001200310104100200228020c10281035000bab0102057f017e230041306b2202240020024100360220200242808001370228200241d0a3043602244100200241246a2203100d20022002290224370218200241106a200241186a2204200228022c100f2002280214210520022802102106200229021821072002410036022c20022007370224200020012003101020022002290224370218200241086a2004200228022c100f200620052002280208200228020c10071a200241306a24000b0d00200041d0a30420011008000b2e01017f230041e0006b22012400200141086a200041d80010091a200142003703002001102e200141e0006a24000be71302077f047e23004190056b2200240002400240102441ff017141054604402000418080013602b00441d0a304200041b0046a22021002200041f0006a20002802b00441d0a3044180800141908504100a200020002903703702d001200041003602b004200041d0016a20024104101e0d0120002d00b304210120002d00b204210320002d00b1042102027f02400240024002400240024020002d00b0042204410b6b0e050508080801000b0240200441e8006b0e03040802000b2004418401460d02200441db0147200241ff017141e3004772200341f50047200141a8014772720d0741000c050b200241ff017141f50047200341da004772200141d60047720d06200041b0046a200041d0016a101d20002d00b0040d06200041e8016a200041ba046a290000370300200041f0016a200041c2046a290000370300200041f7016a200041c9046a2900003700002000200041b2046a2900003703e00120002d00b104210241010c040b200241ff0171200341164772200141de0047720d05200041a0026a200041d0016a101d20002d00a0020d05200041f8006a200041d0016a101d20002d00780d05200041e7046a20004191016a290000370000200041df046a20004189016a290000370000200041d7046a20004181016a290000370000200041b8046a200041aa026a290000370300200041c0046a200041b2026a290000370300200041c7046a200041b9026a290000370000200020002900793700cf042000200041a2026a2900003703b00420002d00a1022102200041e0016a200041b0046a413f10091a41020c030b200241ff017141a10147200341dd004772200141a10147720d04200041b0046a200041d0016a101f20002903b0044200520d04200041ae036a200041a6026a200041fe006a200041b8046a4130100941301009413010091a200041e0016a200041a8036a413610091a41030c020b200241ff0171411247200341e6004772200141a00147720d03200041b0046a200041d0016a101f20002903b0044200520d03200041ae036a200041a6026a200041fe006a200041b8046a4130100941301009413010091a200041e0016a200041a8036a413610091a41040c010b200241ff0171413947200341ef0047722001411847720d02200041ee036a200041d0016a101d20002d00ee030d022000418f046a200041d0016a101d20002d008f040d02200041d8006a200041d0016a10202000290358a70d02200041e8006a290300210720002903602108200041c0036a200041ef036a220241186a290000370300200041b8036a200241106a290000370300200041b0036a200241086a290000370300200041d0036a20004198046a290000370300200041d8036a200041a0046a290000370300200041e0036a200041a8046a29000037030020002000290090043703c803200020022900003703a803200041e8026a2201200041a8036a41c00010091a200041a6026a200041fe006a200041b6046a200141c000100941c000100941c00010091a200041e0016a200041a0026a413f10091a2000200041e2026a2800003600db01200020002800df023602d80141050b2101200041f8006a410272200041e0016a413f10091a200041bc016a20002800db01360000200041c8016a2007370300200020002802d8013600b901200020083703c001200020023a0079200020013a0078200041003602a8022000428080013702b404200041d0a3043602b0044100200041b0046a2203100d200020002902b0043702a002200041d0006a200041a0026a20002802b804100f200028025421042000280250210520002802a0022102200020002802a40222063602b004200520042002200310002103200041c8006a20002802b0042002200641908504100a024002400240024020030e0401000002000b200041bc046a4200370200200041013602b404200041a086043602b004200041f49f043602b804200041b0046a41a88604102b000b200028024821022000200028024c3602b404200020023602b004200041306a200041b0046a10202000290330a7450d01200041bc046a4200370200200041013602b404200041ec88043602b0040c040b200041bc046a4200370200200041013602b404200041bc88043602b0040c030b200041f8006a4101722102200041406b29030021072000200029033822083703e001200020073703e80102400240024002400240024002400240200141016b0e050001040502030b230041406a22012400200141286a200241086a290000370200200141306a200241106a290000370200200141386a200241186a2900003702002001200041e0016a36021c20012002290000370220200141086a200141206a1026200129030821072000200141106a29030037030820002007370300200141406b24002000290300200041086a2903001033000b230041e0006b220124002001200041e0016a36021c200141086a200141206a200241c0001009200141406b102520012903082107200041106a2202200141106a29030037030820022007370300200141e0006a24002000290310200041186a2903001033000b200041b8046a20004180016a41d000100921022000200041e0016a3602b004200041f8046a290300210820004180056a2903002107200041a0026a22011022200041206a20022001102541012103410121012000290320220a2008542204200041286a290300220920075420072009511b0d04410221012002200041d8046a20082007103841ff017122054102460d03200541004721010c040b200820071033000b200041b8046a20004180016a4130100921022000200041e0016a3602b004200041e0046a2903002107200041d8046a2903002108200041a0026a2201102220012002200820071038220241ff0171410247220145044020002903e001200041e8016a29030010340b200120021032000b200041b0036a20004180016a4130100921022000200041e0016a3602a803200041d8036a2903002107200041d0036a2903002108200041e8026a220110222001200220082007100c200041b8026a20004180036a290000370300200041b0026a200041f8026a290000370300200041a8026a200041f0026a290000370300200041c8026a20004188016a290300370300200041d0026a20004190016a290300370300200041d8026a20004198016a290300370300200020002900e8023703a00220002000290380013703c002200041b8046a200041a0026a41c00010091a20004180056a2007370300200041f8046a2008370300200042013703b004200041b0046a102e20002903e001200041e8016a2903001034410041021032000b2002200041a0026a200a20087d200920077d2004ad7d100c20002903e001200041e8016a2903001034410021030b200320011032000b200041043a00b004200041b0046a1039000b1031000b200041f49f043602b804200041b0046a41948804102b000bd10202037f037e23004180016b22042400200441186a200010260240200429031822082002542206200441206a290300220720035420032007511b4504402000200820027d200720037d2006ad7d1011200441086a200110262004290308220720027c220920075422052005ad200441106a290300220720037c7c220820075420072008511b0d012001200920081011200441396a2000290000370000200441c1006a200041086a290000370000200441c9006a200041106a290000370000200441d1006a200041186a290000370000200441da006a2001290000370100200441e2006a200141086a290000370100200441ea006a200141106a290000370100200441f2006a200141186a290000370100200441013a0038200441013a00592004200337033020042002370328200441286a1036410221050b20044180016a240020050f0b41c08204411c41f488041017000b4801017f230041206b220124002001410c6a420137020020014101360204200141f49e043602002001410436021c200120003602182001200141186a360208200141948804102b000bf40402087f037e230041c0016b2200240002401024220141ff0171410546044020004180800136025041d0a304200041d0006a22011002200041286a200028025041d0a3044180800141908504100a200020002903283702502000410036023002402001200041306a4104101e0d0020002d0030419b01470d0020002d003141ae01470d0020002d0032419d01470d0020002d003341de00470d00200041106a200041d0006a10202000290310a7450d020b1031000b200020013a0050200041d0006a1039000b200041206a290300210820002903182109200041306a1022200041ec006a200041c8006a2202290000370200200041e4006a200041406b2203290000370200200041dc006a200041386a220429000037020020002000290030370254200041ec8004360250200041003602b0012000428080013702b801200041d0a3043602b40141e7b98fb102200041b4016a2201100d200041d4006a2001100e200020002902b4013702a801200041086a200041a8016a220520002802bc01100f200028020c21062000280208210720002902a801210a200041003602bc012000200a3702b4012009200820011010200020002902b4013702a8012000200520002802bc01100f200720062000280200200028020410071a2000419a016a200229000037010020004192016a20032900003701002000418a016a200429000037010020004182016a20002900303701002000200837035820002009370350200041013a008101200041003a0060200041d0006a1036200920081034230041106b22002400200042808001370208200041d0a304360204200041046a2201410010302001410010304100200028020c10281035000b7701027f230041106b2204240020022000280204200028020822036b4b0440200441086a200020032002103c2004280208200428020c103d200028020821030b200028020020036a2001200210091a2003200220036a22014b044041908904411c419c8f041017000b20002001360208200441106a24000bc00301057f230041206b220424000240027f4100200220036a22032002490d001a200128020422024100480d01410820024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003104020022802082105200228020c0c020b200528020021080240200310412205450440410021050c010b20052008200710091a0b20030c010b2002200310402002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000f0b41b08904412141f88a041017000b1f00024020004181808080784704402000450d012001103e000b0f0b103f000b860101017f230041306b220124002001200036020c2001411c6a420137020020014102360214200141c88c043602102001410536022c2001200141286a36021820012001410c6a360228230041206b22002400200041003b011c200041d88c043602182000200141106a360214200041989004360210200041f49f0436020c2000410c6a1049000b3c01017f230041206b22002400200041146a42003702002000410136020c2000419c8b04360208200041f49f04360210200041086a41a48b04102b000b2001017f41d2a3052d00001a20011041210220002001360204200020023602000b800101027f0240027f410041c8a304280200220120006a22022001490d001a41cca3042802002002490440200041ffff036a22024110764000220141ffff034b0d022001411074220120024180807c716a22022001490d0241cca30420023602004100200020016a22022001490d011a0b41c8a304200236020020010b0f0b41000b0c00200041ec8904200110430bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110200450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10552003200329031037021c200341086a20062001105520032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110200450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0c00200020012002103b41000bd10201037f230041106b220224000240024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a200020034101103c2004280208200428020c103d200441106a2400200028020821030b200028020020036a20013a0000200341016a2201450d04200020013602080c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b103b0b200241106a240041000f0b41908904411c418c8f041017000bd606020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e034020004104490d09200341196a20006a220241046b200e4290ce0080220d42f0b1037e200e7ca7220441ffff037141e4006e2206410174418592046a2f00003b0000200241026b2006419c7f6c20046a41ffff0371410174418592046a2f00003b0000200041046b2100200e42ffc1d72f562102200d210e20020d000b200da7220241e3004d0d02200041024f0d010c080b41272100200241e3004d0d020b200041026b2200200341196a6a200da7220441ffff037141e4006e2202419c7f6c20046a41ffff0371410174418592046a2f00003b00000b2002410a4f044020004102490d060c040b20000d010c050b2002410a4f0d020b200041016b2200200341196a6a200241306a3a00000c020b000b200041026b2200200341196a6a2002410174418592046a2f00003b00000b02400240200041274d0440412820006b412720006b2206200128021c220541017122071b2102410021042005410471044041f49f042104200241f49f0441f49f04104b20026a22024b0d020b412b418080c40020071b2107200341196a20006a2108200128020045044041012100200128021422022001280218220120072004104e0d03200220082006200128020c11000021000c030b2002200128020422094f044041012100200128021422022001280218220120072004104e0d03200220082006200128020c11000021000c030b200541087104402001280210210b2001413036021020012d0020210c41012100200141013a0020200128021422052001280218220a20072004104e0d03200341106a2001200920026b4101104f20032802102202418080c400460d0320032802142104200520082006200a28020c1100000d03200220042005200a10500d032001200c3a00202001200b360210410021000c030b41012100200341086a2001200920026b4101104f20032802082205418080c400460d02200328020c2109200128021422022001280218220120072004104e0d02200220082006200128020c1100000d022005200920022001105021000c020b0c020b41e08f04411c41c094041017000b200341406b240020000f0b41b08f04412141e49e041017000b1b00200128021441e489044105200141186a28020028020c1100000b0e0020002802001a03400c000b000bc20201047f230041406a220124002001200036020c2001411c6a420137020020014102360214200141c0a0043602102001410636022c2001200141286a36021820012001410c6a360228410021000240024002400240034020002000200241037441c4a0046a2802006a22004b0d014101210220032104410121032004450d000b20004101744100200041104e1b2200044020004100480d0220012000104020012802002202450d030b200141003602382001200036023420012002360230200141306a200141106a10420d032001280230210020012802382103024041d0a3052d000045044041d1a3052d00004101710d010b200020031004410947044041d0a30541013a00000b41d1a30541013a00000b000b41908904411c41d49e041017000b103f000b2000103e000b41e88c0441332001413f6a41d4890441888e041023000b2000200042b1a1a2be8cd0b08931370308200042b2c98bdc9db884a6203703000b8e04010a7f230041106b220224000240200120006b220141104f04402000200041036a417c71220620006b2200104c22042006200120006b2200417c716a2000410371104c6a220320044f0440200041027621050240024003402005450d0520022006200541c0012005200541c0014f1b41d09704104d200228020c21052002280208210620022002280200200228020422002000417c7141bc9904104d200228020c210820022802082107024020022802042200450440410021000c010b2002280200220420004102746a21094100210003402004220a41106a21044100210102400340200020002001200a6a280200220b417f73410776200b410676724181828408716a22004d0440200141046a22014110470d010c020b0b41e08f04411c41fc99041017000b20042009470d000b0b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034b0d012008450d000b200841027421014100210003402000200020072802002204417f734107762004410676724181828408716a22004b0d02200741046a2107200141046b22010d000b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034d0d0441e08f04411c41dc99041017000b41e08f04411c41cc99041017000b41e08f04411c41ec99041017000b41e08f04411c41ac99041017000b20002001104c21030b200241106a240020030b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41e08f04411c41d49e041017000b3d0020022003490440419ca004412320041017000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101102000d011a0b20030d0141000b0f0b200020034100200128020c1100000bb20101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b200241016a2203044020024101762104200341017621020c010b41e08f04411c41d094041017000b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110200450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110200450d000b200441016b0b2001490b900201067f02402000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722107200341f00149044020072006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200741067472722203418080c400460d011a0b20012802082204200520026b6a22022004490d012001200236020820030b360204200020043602000f0b41e08f04411c41809b041017000b2c00200120024d04402000200220016b3602042000200120036a3602000f0b41b08f04412141949c041017000bca0301067f230041306b22022400200028020421042000280200210302400240027f024020012802002205200128020822007204402000450d032001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1051200228021c418080c400470d010c050b0b200241106a200241246a10512002280214418080c400460d03024020022802102200450d00200020044f044020002004460d010c030b200020036a2c00004140480d020b200241086a4100200020031052200228020c210620022802080c020b200128021420032004200141186a28020028020c11000021000c030b41000b21002006200420001b21042000200320001b21030b2005450440200128021420032004200141186a28020028020c11000021000c010b200128020422002003200320046a104b22054b044020022001200020056b4100104f4101210020022802002205418080c400460d01200228020421062001280214220720032004200141186a280200220128020c1100000d012005200620072001105021000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1102000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044107470d0120012802000b2802002104410121030b20002004360204200020033602000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000beb0201057f230041406a22022400200028020021054101210002402001280214220441a89004410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4105360200200241346a41053602002002410336021420024180900436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a36021820042006200241106a10430d00200528020822030440200441b49004410220011100000d01200241386a200341106a290200370300200241306a200341086a2902003703002002200329020037032820042006200241286a104321000c010b200220052802002203200528020428020c11010041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441b49004410220011100000d00200420032802002003280204200111000021000b200241406b240020000b6901017f230041306b220424002004200136020420042000360200200441146a42023702002004412c6a41053602002004410236020c20042003360208200441053602242004200441206a3602102004200441046a36022820042004360220200441086a2002102b000b0bbb230500418080040bb5022f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e727300e7dc23264661696c656420746f206765742076616c756520696e204d617070696e673a207000010020000000000001006b0000009c000000250000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273a8000100700000009d00000020000000a8000100700000009d000000300041c082040bc106617474656d707420746f206164642077697468206f766572666c6f77080000000100000001000000030000004465636f646543616c6c65655472617070656443616c6c656552657665727465644b65794e6f74466f756e645f42656c6f7753756273697374656e63655468726573686f6c645472616e736665724661696c65645f456e646f776d656e74546f6f4c6f77436f64654e6f74466f756e644e6f7443616c6c61626c65556e6b6e6f776e4c6f6767696e6744697361626c656443616c6c52756e74696d654661696c656445636473615265636f766572794661696c65642f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300210201006e000000e40000001700000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000a8000100700000006b0100000e000000a8000100700000002401000032000000656e636f756e746572656420756e6578706563746564206572726f72040301001c000000a800010070000000ed000000170000005010010071000000c10000003d0000005010010071000000c40000000900000045726332303a3a5472616e7366657200f40f0100000000005803010045726332303a3a5472616e736665723a3a66726f6d45726332303a3a5472616e736665723a3a746f45726332303a3a417070726f76616c00f40f0100000000009c03010045726332303a3a417070726f76616c3a3a6f776e657245726332303a3a417070726f76616c3a3a7370656e6465722f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f65726332302f6c69622e7273e60301002e000000070000000500000073746f7261676520656e7472792077617320656d707479002404010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279004404010027000000e60301002e000000cf0000002700419089040bc106617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000900000000000000010000000a0000004572726f720000000b0000000c000000040000000c0000000d0000000e0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72730000000405010071000000980100001c0000006361706163697479206f766572666c6f770000008805010011000000040501007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c65640000002306010015000000380601000d000000b40501006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72739b0601006d00000064020000200000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72730000001807010071000000610700000d0000001807010071000000d00700000900000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f770041e08f040b9410617474656d707420746f206164642077697468206f766572666c6f77293a0000f40f010000000000fd07010001000000fd070100010000000900000000000000010000000f00000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320360801002000000056080100120000003a200000f40f0100000000007808010002000000202020202c0a28280a2f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000cd09010070000000050500000d000000cd0901007000000097050000300000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273000000600a010075000000760000004b000000600a010075000000770000003400000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820f80a0100120000000a0b01002200000072616e676520656e6420696e646578203c0b0100100000000a0b0100220000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273005c0b010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028e00b010015000000f50b01002b000000fc070100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000380c0100720000004700000015000000380c0100720000004f00000032000000380c0100720000005a00000009000000380c010072000000660000000d000000380c0100720000006400000011000000380c01007200000054000000110000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e72730000000c0d01007100000091000000110000000c0d0100710000004f0200002d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e727300a00d010073000000d3000000130000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e7273240e010074000000a101000047000000240e010074000000b401000020000000240e010074000000b401000011000000240e010074000000b8010000370000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e72730000d80e01007a00000095000000010000009508010070000000d201000005000000f40f010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d657373616765004180a0040bc703617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290af40f0100000000003f100100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e727300000050100100710000005a0000001c00000050100100710000005a0000001400000050100100710000005a00000031000000501001007100000065000000090000005010010071000000830000002500000050100100710000008d000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e727300241101006b000000770000000e000000190000001c0000001600000014000000190000007c0f0100950f0100b10f0100c70f0100db0f01", - "build_info": { - "build_mode": "Debug", - "cargo_contract_version": "3.2.0", - "rust_toolchain": "stable-aarch64-apple-darwin", - "wasm_opt_settings": { "keep_debug_symbols": false, "optimization_passes": "Z" } - } - }, - "contract": { - "name": "erc20", - "version": "4.3.0", - "authors": ["Parity Technologies "] - }, - "spec": { - "constructors": [ - { - "args": [{ "label": "total_supply", "type": { "displayName": ["Balance"], "type": 0 } }], - "default": false, - "docs": ["Creates a new ERC-20 contract with the specified initial supply."], - "label": "new", - "payable": false, - "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 1 }, - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "environment": { - "accountId": { "displayName": ["AccountId"], "type": 5 }, - "balance": { "displayName": ["Balance"], "type": 0 }, - "blockNumber": { "displayName": ["BlockNumber"], "type": 14 }, - "chainExtension": { "displayName": ["ChainExtension"], "type": 15 }, - "hash": { "displayName": ["Hash"], "type": 12 }, - "maxEventTopics": 4, - "timestamp": { "displayName": ["Timestamp"], "type": 13 } - }, - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "from", - "type": { "displayName": ["Option"], "type": 11 } - }, - { - "docs": [], - "indexed": true, - "label": "to", - "type": { "displayName": ["Option"], "type": 11 } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { "displayName": ["Balance"], "type": 0 } - } - ], - "docs": ["Event emitted when a token transfer occurs."], - "label": "Transfer" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "owner", - "type": { "displayName": ["AccountId"], "type": 5 } - }, - { - "docs": [], - "indexed": true, - "label": "spender", - "type": { "displayName": ["AccountId"], "type": 5 } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { "displayName": ["Balance"], "type": 0 } - } - ], - "docs": [ - "Event emitted when an approval occurs that `spender` is allowed to withdraw", - "up to the amount of `value` tokens from `owner`." - ], - "label": "Approval" - } - ], - "lang_error": { "displayName": ["ink", "LangError"], "type": 3 }, - "messages": [ - { - "args": [], - "default": false, - "docs": [" Returns the total token supply."], - "label": "total_supply", - "mutates": false, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 4 }, - "selector": "0xdb6375a8" - }, - { - "args": [{ "label": "owner", "type": { "displayName": ["AccountId"], "type": 5 } }], - "default": false, - "docs": [ - " Returns the account balance for the specified `owner`.", - "", - " Returns `0` if the account is non-existent." - ], - "label": "balance_of", - "mutates": false, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 4 }, - "selector": "0x0f755a56" - }, - { - "args": [ - { "label": "owner", "type": { "displayName": ["AccountId"], "type": 5 } }, - { "label": "spender", "type": { "displayName": ["AccountId"], "type": 5 } } - ], - "default": false, - "docs": [ - " Returns the amount which `spender` is still allowed to withdraw from `owner`.", - "", - " Returns `0` if no allowance has been set." - ], - "label": "allowance", - "mutates": false, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 4 }, - "selector": "0x6a00165e" - }, - { - "args": [ - { "label": "to", "type": { "displayName": ["AccountId"], "type": 5 } }, - { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } - ], - "default": false, - "docs": [ - " Transfers `value` amount of tokens from the caller's account to account `to`.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the caller's account balance." - ], - "label": "transfer", - "mutates": true, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 8 }, - "selector": "0x84a15da1" - }, - { - "args": [ - { "label": "spender", "type": { "displayName": ["AccountId"], "type": 5 } }, - { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } - ], - "default": false, - "docs": [ - " Allows `spender` to withdraw from the caller's account multiple times, up to", - " the `value` amount.", - "", - " If this function is called again it overwrites the current allowance with", - " `value`.", - "", - " An `Approval` event is emitted." - ], - "label": "approve", - "mutates": true, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 8 }, - "selector": "0x681266a0" - }, - { - "args": [ - { "label": "from", "type": { "displayName": ["AccountId"], "type": 5 } }, - { "label": "to", "type": { "displayName": ["AccountId"], "type": 5 } }, - { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } - ], - "default": false, - "docs": [ - " Transfers `value` tokens on the behalf of `from` to the account `to`.", - "", - " This can be used to allow a contract to transfer tokens on ones behalf and/or", - " to charge fees in sub-currencies, for example.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " for the caller to withdraw from `from`.", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the account balance of `from`." - ], - "label": "transfer_from", - "mutates": true, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 8 }, - "selector": "0x0b396f18" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [ - { "layout": { "leaf": { "key": "0x00000000", "ty": 0 } }, "name": "total_supply" }, - { - "layout": { - "root": { - "layout": { "leaf": { "key": "0x2623dce7", "ty": 0 } }, - "root_key": "0x2623dce7" - } - }, - "name": "balances" - }, - { - "layout": { - "root": { - "layout": { "leaf": { "key": "0xeca021b7", "ty": 0 } }, - "root_key": "0xeca021b7" - } - }, - "name": "allowances" - } - ], - "name": "Erc20" - } - }, - "root_key": "0x00000000" - } - }, - "types": [ - { "id": 0, "type": { "def": { "primitive": "u128" } } }, - { - "id": 1, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 2 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 3 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 2 }, - { "name": "E", "type": 3 } - ], - "path": ["Result"] - } - }, - { "id": 2, "type": { "def": { "tuple": [] } } }, - { - "id": 3, - "type": { - "def": { "variant": { "variants": [{ "index": 1, "name": "CouldNotReadInput" }] } }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 4, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 0 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 3 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 0 }, - { "name": "E", "type": 3 } - ], - "path": ["Result"] - } - }, - { - "id": 5, - "type": { - "def": { "composite": { "fields": [{ "type": 6, "typeName": "[u8; 32]" }] } }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { "id": 6, "type": { "def": { "array": { "len": 32, "type": 7 } } } }, - { "id": 7, "type": { "def": { "primitive": "u8" } } }, - { - "id": 8, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 9 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 3 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 9 }, - { "name": "E", "type": 3 } - ], - "path": ["Result"] - } - }, - { - "id": 9, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 2 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 10 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 2 }, - { "name": "E", "type": 10 } - ], - "path": ["Result"] - } - }, - { - "id": 10, - "type": { - "def": { - "variant": { - "variants": [ - { "index": 0, "name": "InsufficientBalance" }, - { "index": 1, "name": "InsufficientAllowance" } - ] - } - }, - "path": ["erc20", "erc20", "Error"] - } - }, - { - "id": 11, - "type": { - "def": { - "variant": { - "variants": [ - { "index": 0, "name": "None" }, - { "fields": [{ "type": 5 }], "index": 1, "name": "Some" } - ] - } - }, - "params": [{ "name": "T", "type": 5 }], - "path": ["Option"] - } - }, - { - "id": 12, - "type": { - "def": { "composite": { "fields": [{ "type": 6, "typeName": "[u8; 32]" }] } }, - "path": ["ink_primitives", "types", "Hash"] - } - }, - { "id": 13, "type": { "def": { "primitive": "u64" } } }, - { "id": 14, "type": { "def": { "primitive": "u32" } } }, - { - "id": 15, - "type": { "def": { "variant": {} }, "path": ["ink_env", "types", "NoChainExtension"] } - } - ], - "version": "4" -} diff --git a/.api-contract/src/test/contracts/ink/v4/erc20.json b/.api-contract/src/test/contracts/ink/v4/erc20.json deleted file mode 100644 index f354e533..00000000 --- a/.api-contract/src/test/contracts/ink/v4/erc20.json +++ /dev/null @@ -1,714 +0,0 @@ -{ - "source": { - "hash": "0x114f55289bcdfd0d28e0bbd1c63452b4e45901a022b1011d298fa2eb12d1711d", - "language": "ink! 4.3.0", - "compiler": "rustc 1.75.0", - "build_info": { - "build_mode": "Debug", - "cargo_contract_version": "3.2.0", - "rust_toolchain": "stable-aarch64-apple-darwin", - "wasm_opt_settings": { - "keep_debug_symbols": false, - "optimization_passes": "Z" - } - } - }, - "contract": { - "name": "erc20", - "version": "4.3.0", - "authors": ["Parity Technologies "] - }, - "spec": { - "constructors": [ - { - "args": [ - { - "label": "total_supply", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": ["Creates a new ERC-20 contract with the specified initial supply."], - "label": "new", - "payable": false, - "returnType": { - "displayName": ["ink_primitives", "ConstructorResult"], - "type": 1 - }, - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "environment": { - "accountId": { - "displayName": ["AccountId"], - "type": 5 - }, - "balance": { - "displayName": ["Balance"], - "type": 0 - }, - "blockNumber": { - "displayName": ["BlockNumber"], - "type": 14 - }, - "chainExtension": { - "displayName": ["ChainExtension"], - "type": 15 - }, - "hash": { - "displayName": ["Hash"], - "type": 12 - }, - "maxEventTopics": 4, - "timestamp": { - "displayName": ["Timestamp"], - "type": 13 - } - }, - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "from", - "type": { - "displayName": ["Option"], - "type": 11 - } - }, - { - "docs": [], - "indexed": true, - "label": "to", - "type": { - "displayName": ["Option"], - "type": 11 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": ["Event emitted when a token transfer occurs."], - "label": "Transfer" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "docs": [], - "indexed": true, - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - "Event emitted when an approval occurs that `spender` is allowed to withdraw", - "up to the amount of `value` tokens from `owner`." - ], - "label": "Approval" - } - ], - "lang_error": { - "displayName": ["ink", "LangError"], - "type": 3 - }, - "messages": [ - { - "args": [], - "default": false, - "docs": [" Returns the total token supply."], - "label": "total_supply", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 4 - }, - "selector": "0xdb6375a8" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "default": false, - "docs": [ - " Returns the account balance for the specified `owner`.", - "", - " Returns `0` if the account is non-existent." - ], - "label": "balance_of", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 4 - }, - "selector": "0x0f755a56" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "default": false, - "docs": [ - " Returns the amount which `spender` is still allowed to withdraw from `owner`.", - "", - " Returns `0` if no allowance has been set." - ], - "label": "allowance", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 4 - }, - "selector": "0x6a00165e" - }, - { - "args": [ - { - "label": "to", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Transfers `value` amount of tokens from the caller's account to account `to`.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the caller's account balance." - ], - "label": "transfer", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 8 - }, - "selector": "0x84a15da1" - }, - { - "args": [ - { - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Allows `spender` to withdraw from the caller's account multiple times, up to", - " the `value` amount.", - "", - " If this function is called again it overwrites the current allowance with", - " `value`.", - "", - " An `Approval` event is emitted." - ], - "label": "approve", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 8 - }, - "selector": "0x681266a0" - }, - { - "args": [ - { - "label": "from", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "label": "to", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Transfers `value` tokens on the behalf of `from` to the account `to`.", - "", - " This can be used to allow a contract to transfer tokens on ones behalf and/or", - " to charge fees in sub-currencies, for example.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " for the caller to withdraw from `from`.", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the account balance of `from`." - ], - "label": "transfer_from", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 8 - }, - "selector": "0x0b396f18" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 0 - } - }, - "name": "total_supply" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0x2623dce7", - "ty": 0 - } - }, - "root_key": "0x2623dce7" - } - }, - "name": "balances" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0xeca021b7", - "ty": 0 - } - }, - "root_key": "0xeca021b7" - } - }, - "name": "allowances" - } - ], - "name": "Erc20" - } - }, - "root_key": "0x00000000" - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 1, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 2 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 3 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "E", - "type": 3 - } - ], - "path": ["Result"] - } - }, - { - "id": 2, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 3, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 1, - "name": "CouldNotReadInput" - } - ] - } - }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 4, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 0 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 3 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "E", - "type": 3 - } - ], - "path": ["Result"] - } - }, - { - "id": 5, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 6, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { - "id": 6, - "type": { - "def": { - "array": { - "len": 32, - "type": 7 - } - } - } - }, - { - "id": 7, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 8, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 9 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 3 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 9 - }, - { - "name": "E", - "type": 3 - } - ], - "path": ["Result"] - } - }, - { - "id": 9, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 2 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 10, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "InsufficientBalance" - }, - { - "index": 1, - "name": "InsufficientAllowance" - } - ] - } - }, - "path": ["erc20", "erc20", "Error"] - } - }, - { - "id": 11, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 5 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 5 - } - ], - "path": ["Option"] - } - }, - { - "id": 12, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 6, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "Hash"] - } - }, - { - "id": 13, - "type": { - "def": { - "primitive": "u64" - } - } - }, - { - "id": 14, - "type": { - "def": { - "primitive": "u32" - } - } - }, - { - "id": 15, - "type": { - "def": { - "variant": {} - }, - "path": ["ink_env", "types", "NoChainExtension"] - } - } - ], - "version": "4" -} diff --git a/.api-contract/src/test/contracts/ink/v4/erc20.wasm b/.api-contract/src/test/contracts/ink/v4/erc20.wasm deleted file mode 100644 index 799afda9ce661ab9ce23f4622459a2d2289a93b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21078 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 F|1WbE1VjJ; diff --git a/.api-contract/src/test/contracts/ink/v4/flipper.contract.json b/.api-contract/src/test/contracts/ink/v4/flipper.contract.json deleted file mode 100644 index 49045d25..00000000 --- a/.api-contract/src/test/contracts/ink/v4/flipper.contract.json +++ /dev/null @@ -1,157 +0,0 @@ -{ - "source": { - "hash": "0xa5b19cb655755feba8e34ab5b413ac6593ecc7e24e19af485a4d30036be9d577", - "language": "ink! 4.2.0", - "compiler": "rustc 1.69.0", - "wasm": "0x0061736d0100000001450c60027f7f017f60037f7f7f017f60027f7f0060037f7f7f0060017f0060047f7f7f7f017f60000060047f7f7f7f0060017f017f60017f017e60057f7f7f7f7f006000017f028a0107057365616c310b6765745f73746f726167650005057365616c301176616c75655f7472616e736665727265640002057365616c3005696e7075740002057365616c300d64656275675f6d6573736167650000057365616c320b7365745f73746f726167650005057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100337360102030b0803040002080102020604030202060600010103000300070204060202000400040900000a0507050000030a01000000000704050170010f0f0608017f01418080040b0711020463616c6c0018066465706c6f7900190914010041010b0e0d32273a29333839281c1e20372b0ac744362b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b2601017f230041106b22022400200220003a000f20012002410f6a41011008200241106a24000b5c01037f02402000280208220420026a220320044f04402003200028020422054b0d01200028020020046a200320046b2001200241cc97041035200020033602080f0b41909604411c41ac9704101f000b2003200541bc9704100b000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b1b002000418180014f044020004180800141a88104100b000b20000b7501017f230041306b220324002003200136020420032000360200200341146a41023602002003411c6a41023602002003412c6a4103360200200341988f0436021020034100360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a2002100e000b5201017f230041206b220124002001410c6a4101360200200141146a41013602002001418c9504360208200141003602002001410136021c200120003602182001200141186a360210200141b08204100e000b910101017f230041306b22022400200241146a41013602002002411c6a41013602002002418c95043602102002410036020820024102360224200220002d0000410274220041ac9a046a28020036022c2002200041c09a046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a1036200241306a24000b3c01017f230041206b22022400200241013a00182002200136021420022000360210200241d08a0436020c2002418c9604360208200241086a102a000b4001017f230041106b22012400200141003a000f20002001410f6a41011010047f4102054101410220012d000f22004101461b410020001b0b200141106a24000b6001047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206103b200120022003280208200328020c419c9a0410352003200220042006103b200020032903003702000b200341106a240020050b4701017f230041106b220224002002410036020c024020012002410c6a410410104504402000200228020c360001200041003a00000c010b200041013a00000b200241106a24000b3f01017f230041106b22022400200242808001370204200241dc9a0436020020022001047f20024101101741010541000b101720002002280208100a1016000b3701017f230041106b22002400200042808001370204200041dc9a0436020020004100101720004100101741002000280208100a1016000bae0102057f017e230041306b2201240020014100360218200142808001370224200141dc9a043602202001410036021c200141206a22022001411c6a4104100820012001290320370310200141086a200141106a220320012802281015200128020c2104200128020820012903102106200141003602282001200637032020002002100720012001290320370310200120032001280228101520042001280200200128020410041a200141306a24000b4501017f2002200128020422034b044041ac9604412341ec9704101f000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b0d00200041dc9a0420011005000ba10101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a41023602002000411c6a41023602002000412c6a4103360200200041a48a0436021020004100360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a41dc9704100e000bab0501077f230041406a22002400024002400240024002400240100941ff0171410546044020004180800136022041dc9a04200041206a100220002802202201418180014f0d0120002001360224200041dc9a04360220200041106a200041206a101120002d00100d0520002800112201411876210220014110762104200141087621030240200141ff01712201412f470440200141e30047200341ff0171413a4772200441ff017141a50147720d0741012101200241d100460d010c070b200341ff017141860147200441ff017141db0047720d0641002101200241d901470d060b20004100360218200042808001370224200041dc9a043602202000410036023c200041206a22032000413c6a4104100820002000290320370310200041086a200041106a20002802281015200028020c210520002802082000280210210220002000280214220436022020052002200310002103200420002802202205490d02024002400240410c20032003410c4f1b0e0402000001000b2000412c6a4101360200200041346a4100360200200041d481043602282000418c960436023020004100360220200041206a41dc8104100e000b2000412c6a4101360200200041346a41003602002000418883043602280c070b2000200536022420002002360220200041206a100f41ff017122024102460d042001450d032002451014410041001012000b200041043a0020200041206a100c000b20014180800141cc8004100b000b2005200441cc8004100b000b230041106b22002400200042808001370204200041dc9a0436020020004100101720024100472000100741002000280208100a1016000b2000412c6a4101360200200041346a4100360200200041e882043602280c010b410141011012000b2000418c960436023020004100360220200041206a41b08204100e000b8c0201057f230041106b2200240002400240100941ff01712201410546044020004180800136020041dc9a042000100220002802002201418180014f0d0120002001360204200041dc9a04360200200041086a20001011024020002d00080d002000280009220141187621022001411076210320014108762104200141ff0171220141e1004704402001419b0147200441ff017141ae014772200341ff0171419d0147200241de004772720d012000100f41ff017122004102460d01200010141013000b200441ff017141ef0147200341ff017141fe0047720d002002413e460d030b410141011012000b200020013a00002000100c000b20014180800141cc8004100b000b410010141013000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41908304200241086a101b200241206a24000bee0301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1101000d040b200141086a2101200428020020042802042106200441086a2104200341186a2006110000450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1101000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a103420032003290310370320200341086a2005200141046a103420032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110000450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1101000d010b41000c010b41010b200341406b24000b0f00200028020020012002101d41000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a20002003200210212004280208200428020c1022200028020821030b200028020420036a2001200210061a2003200220036a22014b044041b08304411c41a08904101f000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b101d0c020b230041106b22042400200441086a20002003410110212004280208200428020c1022200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41b08304411c41908904101f000b5001017f230041206b220324002003410c6a4101360200200341146a41003602002003418c9604360210200341003602002003200136021c200320003602182003200341186a36020820032002100e000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a101a200241206a24000bac0401067f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22062002490d0141082006200320032006491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200441106a2107230041106b220624002004027f0240027f0240200504400240200341004e044020072802080d012006200310252006280204210220062802000c040b0c040b20072802042209450440200641086a20031025200628020c210220062802080c030b20032102410041d49a04280200220520036a22082005490d021a2007280200210741d89a042802002008490440200341ffff036a220841107640002202417f46200241ffff0371200247720d022002411074220520084180807c716a22022005490d0241d89a042002360200200321024100200320056a22082005490d031a0b41d49a04200836020041002005450d021a20052007200910060c020b200420033602040c020b2003210241000b2205044020042005360204200441086a200236020041000c020b20042003360204200441086a410136020041010c010b200441086a410036020041010b360200200641106a240020042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41d08304412141f88404101f000b1f00024020014181808080784704402001450d0120001023000b0f0b1024000b900101017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141c88604360218200141003602102001410336022c2001200141286a36022020012001410c6a360228230041206b22002400200041003a0018200041d886043602142000200141106a360210200041d08a0436020c2000418c9604360208200041086a102a000b4601017f230041206b22002400200041146a41013602002000411c6a41003602002000419c85043602102000418c960436021820004100360208200041086a41a48504100e000ba10101027f027f410041d49a04280200220220016a22032002490d001a024041d89a042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141d89a0420033602004100200120026a22032002490d021a0b41d49a04200336020020020c010b41000b210320002001360204200020033602000b5301027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20011025200228020822030d0120011023000b1024000b2000200336020420002001360200200241106a24000bd806020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441878c046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441878c046a2f00003b0000200041046b2100200e42ffc1d72f56200d210e0d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441878c046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441878c046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b21024100210420054104710440418c960421042002418c9604418c9604102c20026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a280200220120072004102f0d01200220082006200128020c11010021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a20072004102f0d02200341106a2001200920026b4101103020032802142202418080c400460d022003280210200520082006200a28020c1101000d0220022005200a10310d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a280200220120072004102f0d01200220082006200128020c11010021000c010b41012100200341086a2001200920026b41011030200328020c2205418080c400460d00200328020820012802002202200141046a280200220120072004102f0d00200220082006200128020c1101000d00200520022001103121000b200341406b240020000f0b41b08904411c41c48e04101f000b41d08904412141f49404101f000b0300010b0e0020002802001a03400c000b000baa05020a7f017e230041406a220124002001200036020c2001412c6a4102360200200141346a4101360200200141d09604360228200141003602202001410436023c2001200141386a36023020012001410c6a360238200141106a210641002100230041306b22022400200141206a220441146a2802002107200428020821050240024002400240200241086a027f024002400240200241106a027f024002402004410c6a28020022080e020001040b20070d02418c9604210341000c010b20070d022005280200210320052802040b22001026200228021021042006200228021422053602042006200436020020052003200010061a200620003602080c040b200428021021090c010b200541046a21032008410374210a2004280210210903402000200020032802006a22004b0d04200341086a2103200a41086b220a0d000b20002007450d011a2000410f4b0d0041002005280204450d011a0b200020006a22034100200020034d1b0b10262002290308210b200641003602082006200b3702002002200736022c200220093602282002200836022420022005360220200220042902003703182006200241186a101a0d020b200241306a24000c020b41b08304411c41e49404101f000b230041406a220024002000413336020c200041e88604360208200041f483043602142000200241186a360210200041246a41023602002000412c6a41023602002000413c6a4106360200200041848b0436022020004100360218200041023602342000200041306a3602282000200041106a3602382000200041086a360230200041186a418c8804100e000b2001280214210020012802182101024041dc9a052d000045044041dd9a052d00004101710d010b410c20002001100322002000410c4f1b410947044041dc9a0541013a00000b41dd9a0541013a00000b000b0c0042f8f3eee1d7afe2bb350ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d0020012000102d2206200020016a22082004417c716a2004410371102d6a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41a09004102e200328020c21052003280208210820032003280200200328020422002000417c7141909204102e200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41b08904411c41a09204101f000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441b08904411c41d09204101f000b41b08904411c41b09204101f000b41b08904411c41c09204101f000b41b08904411c41809204101f000b20012002102d21020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41b08904411c41e49404101f000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41ac960441232004101f000b39000240027f2002418080c40047044041012000200220012802101100000d011a0b20030d0141000b0f0b200020034100200128020c1101000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41b08904411c41d48e04101f000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110000450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110000450d000b200441016b0b2000490bea04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11010021000c020b41b08904411c41d49304101f000b200b450440200128020020032004200128020428020c11010021000c010b2001410c6a2802002200200320046a2003102c22024b0440200941086a2001200020026b4100103041012100200928020c2202418080c400460d0120092802082001280200220520032004200141046a280200220128020c1101000d01200220052001103121000c010b200128020020032004200128020428020c11010021000b200941106a240020000b140020002802002001200028020428020c1100000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044105470d0120012802000b2802002104410121030b20002004360204200020033602000b8501002001200346044020002002200110061a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4103360200200041f0900436021020004100360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a2004100e000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a101b200341206a24000b18002001280200418495044105200128020428020c1101000b5801027f230041206b22022400200128020421032001280200200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a101b200241206a24000b0b002000280200200110320b990301037f230041406a22022400200028020021034101210002402001280200220441e08a04410c200141046a280200220128020c1101000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241f08a0436023020024100360228200241073602142002200241106a36023820022002410c6a36021020042001200241286a1036450d010c020b20032802002200200328020428020c11090042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241f08a0436023020024100360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a10360d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4103360200200241346a4103360200200241b88a043602182002410036021020022000410c6a3602382002200041086a3602302002410236022c200220003602282002200241286a36022020042001200241106a103621000b200241406b240020000b2c00200120024d04402000200220016b3602042000200120036a3602000f0b41909904412141f49804101f000b0bd21a0300418080040ba5032f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000000000010049000000e4000000140000002f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273005c0001004b0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72b80001001c0000005c0001004b000000ed000000170000002f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f696e746567726174696f6e2d74657374732f666c69707065722f6c69622e7273ec000100440000000600000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900400101002700000073746f7261676520656e7472792077617320656d7074790070010100170000000900000004000000040000000a0000000b0000000c0041b083040bd115617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000900000000000000010000000d0000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727304020100740000008f0100001c0000006361706163697479206f766572666c6f77000000880201001100000004020100740000000d020000050000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c656426030100150000003b0301000d000000b4020100720000009f0100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273009b0301007000000064020000200000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72731c04010074000000350700000d0000001c04010074000000a307000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320f20401002000000012050100120000003a0000000c0b010000000000340501000100000034050100010000000900000000000000010000000e00000070616e69636b65642061742027272c206c050100010000006d050100030000003a2000000c0b01000000000080050100020000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e72730000cf06010073000000750500000d000000cf060100730000000506000038000000206f7574206f662072616e676520666f7220736c696365206f66206c656e6774682072616e676520656e6420696e646578200000860701001000000064070100220000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e72730000a807010076000000c005000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820283008010015000000450801002b000000f1040100010000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000008808010075000000470000001500000088080100750000004f000000320000008808010075000000540000001100000088080100750000005a00000009000000880801007500000064000000110000008808010075000000660000000d0000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e7273600901007400000091000000110000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273000000e40901007d00000095000000010000009405010073000000cd010000050000004572726f720000000c0b0100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f7200000000617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290a0c0b0100000000004f0b0100010000002f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273600b01004c0000005a0000001c000000600b01004c0000005a00000009000000600b01004c0000005a00000031000000600b01004c0000006500000009000000600b01004c0000008d000000210000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e727300fc0b010077000000820100004700419099040bc301617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f616e6472656561656674656e652f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e352e302f7372632f636f6465632e727300b10c01006a000000780000000e000000190000001c000000160000001400000019000000f30a0100d70a0100c10a0100ad0a0100940a01", - "build_info": { - "build_mode": "Debug", - "cargo_contract_version": "2.2.1", - "rust_toolchain": "stable-x86_64-apple-darwin", - "wasm_opt_settings": { "keep_debug_symbols": false, "optimization_passes": "Z" } - } - }, - "contract": { - "name": "flipper", - "version": "4.2.0", - "authors": ["Parity Technologies "] - }, - "spec": { - "constructors": [ - { - "args": [{ "label": "init_value", "type": { "displayName": ["bool"], "type": 0 } }], - "default": false, - "docs": ["Creates a new flipper smart contract initialized with the given value."], - "label": "new", - "payable": false, - "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 1 }, - "selector": "0x9bae9d5e" - }, - { - "args": [], - "default": false, - "docs": ["Creates a new flipper smart contract initialized to `false`."], - "label": "new_default", - "payable": false, - "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 1 }, - "selector": "0x61ef7e3e" - } - ], - "docs": [], - "environment": { - "accountId": { "displayName": ["AccountId"], "type": 5 }, - "balance": { "displayName": ["Balance"], "type": 8 }, - "blockNumber": { "displayName": ["BlockNumber"], "type": 11 }, - "chainExtension": { "displayName": ["ChainExtension"], "type": 12 }, - "hash": { "displayName": ["Hash"], "type": 9 }, - "maxEventTopics": 4, - "timestamp": { "displayName": ["Timestamp"], "type": 10 } - }, - "events": [], - "lang_error": { "displayName": ["ink", "LangError"], "type": 3 }, - "messages": [ - { - "args": [], - "default": false, - "docs": [" Flips the current value of the Flipper's boolean."], - "label": "flip", - "mutates": true, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 1 }, - "selector": "0x633aa551" - }, - { - "args": [], - "default": false, - "docs": [" Returns the current value of the Flipper's boolean."], - "label": "get", - "mutates": false, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 4 }, - "selector": "0x2f865bd9" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [{ "layout": { "leaf": { "key": "0x00000000", "ty": 0 } }, "name": "value" }], - "name": "Flipper" - } - }, - "root_key": "0x00000000" - } - }, - "types": [ - { "id": 0, "type": { "def": { "primitive": "bool" } } }, - { - "id": 1, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 2 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 3 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 2 }, - { "name": "E", "type": 3 } - ], - "path": ["Result"] - } - }, - { "id": 2, "type": { "def": { "tuple": [] } } }, - { - "id": 3, - "type": { - "def": { "variant": { "variants": [{ "index": 1, "name": "CouldNotReadInput" }] } }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 4, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 0 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 3 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 0 }, - { "name": "E", "type": 3 } - ], - "path": ["Result"] - } - }, - { - "id": 5, - "type": { - "def": { "composite": { "fields": [{ "type": 6, "typeName": "[u8; 32]" }] } }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { "id": 6, "type": { "def": { "array": { "len": 32, "type": 7 } } } }, - { "id": 7, "type": { "def": { "primitive": "u8" } } }, - { "id": 8, "type": { "def": { "primitive": "u128" } } }, - { - "id": 9, - "type": { - "def": { "composite": { "fields": [{ "type": 6, "typeName": "[u8; 32]" }] } }, - "path": ["ink_primitives", "types", "Hash"] - } - }, - { "id": 10, "type": { "def": { "primitive": "u64" } } }, - { "id": 11, "type": { "def": { "primitive": "u32" } } }, - { - "id": 12, - "type": { "def": { "variant": {} }, "path": ["ink_env", "types", "NoChainExtension"] } - } - ], - "version": "4" -} diff --git a/.api-contract/src/test/contracts/ink/v4/flipper.json b/.api-contract/src/test/contracts/ink/v4/flipper.json deleted file mode 100644 index 0ff5a4d3..00000000 --- a/.api-contract/src/test/contracts/ink/v4/flipper.json +++ /dev/null @@ -1,338 +0,0 @@ -{ - "source": { - "hash": "0xa5b19cb655755feba8e34ab5b413ac6593ecc7e24e19af485a4d30036be9d577", - "language": "ink! 4.2.0", - "compiler": "rustc 1.69.0", - "build_info": { - "build_mode": "Debug", - "cargo_contract_version": "2.2.1", - "rust_toolchain": "stable-x86_64-apple-darwin", - "wasm_opt_settings": { - "keep_debug_symbols": false, - "optimization_passes": "Z" - } - } - }, - "contract": { - "name": "flipper", - "version": "4.2.0", - "authors": ["Parity Technologies "] - }, - "spec": { - "constructors": [ - { - "args": [ - { - "label": "init_value", - "type": { - "displayName": ["bool"], - "type": 0 - } - } - ], - "default": false, - "docs": ["Creates a new flipper smart contract initialized with the given value."], - "label": "new", - "payable": false, - "returnType": { - "displayName": ["ink_primitives", "ConstructorResult"], - "type": 1 - }, - "selector": "0x9bae9d5e" - }, - { - "args": [], - "default": false, - "docs": ["Creates a new flipper smart contract initialized to `false`."], - "label": "new_default", - "payable": false, - "returnType": { - "displayName": ["ink_primitives", "ConstructorResult"], - "type": 1 - }, - "selector": "0x61ef7e3e" - } - ], - "docs": [], - "environment": { - "accountId": { - "displayName": ["AccountId"], - "type": 5 - }, - "balance": { - "displayName": ["Balance"], - "type": 8 - }, - "blockNumber": { - "displayName": ["BlockNumber"], - "type": 11 - }, - "chainExtension": { - "displayName": ["ChainExtension"], - "type": 12 - }, - "hash": { - "displayName": ["Hash"], - "type": 9 - }, - "maxEventTopics": 4, - "timestamp": { - "displayName": ["Timestamp"], - "type": 10 - } - }, - "events": [], - "lang_error": { - "displayName": ["ink", "LangError"], - "type": 3 - }, - "messages": [ - { - "args": [], - "default": false, - "docs": [" Flips the current value of the Flipper's boolean."], - "label": "flip", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 1 - }, - "selector": "0x633aa551" - }, - { - "args": [], - "default": false, - "docs": [" Returns the current value of the Flipper's boolean."], - "label": "get", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 4 - }, - "selector": "0x2f865bd9" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 0 - } - }, - "name": "value" - } - ], - "name": "Flipper" - } - }, - "root_key": "0x00000000" - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "bool" - } - } - }, - { - "id": 1, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 2 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 3 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 2 - }, - { - "name": "E", - "type": 3 - } - ], - "path": ["Result"] - } - }, - { - "id": 2, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 3, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 1, - "name": "CouldNotReadInput" - } - ] - } - }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 4, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 0 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 3 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "E", - "type": 3 - } - ], - "path": ["Result"] - } - }, - { - "id": 5, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 6, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { - "id": 6, - "type": { - "def": { - "array": { - "len": 32, - "type": 7 - } - } - } - }, - { - "id": 7, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 8, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 9, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 6, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "Hash"] - } - }, - { - "id": 10, - "type": { - "def": { - "primitive": "u64" - } - } - }, - { - "id": 11, - "type": { - "def": { - "primitive": "u32" - } - } - }, - { - "id": 12, - "type": { - "def": { - "variant": {} - }, - "path": ["ink_env", "types", "NoChainExtension"] - } - } - ], - "version": "4" -} diff --git a/.api-contract/src/test/contracts/ink/v4/flipper.wasm b/.api-contract/src/test/contracts/ink/v4/flipper.wasm deleted file mode 100644 index 3f77edb2319aa3b738fe331fba6b4273ee519a6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12526 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 diff --git a/.api-contract/src/test/contracts/ink/v4/index.ts b/.api-contract/src/test/contracts/ink/v4/index.ts deleted file mode 100644 index 808eba8c..00000000 --- a/.api-contract/src/test/contracts/ink/v4/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; -export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; -export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; -export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v5/erc20.contract.json b/.api-contract/src/test/contracts/ink/v5/erc20.contract.json deleted file mode 100644 index a236791a..00000000 --- a/.api-contract/src/test/contracts/ink/v5/erc20.contract.json +++ /dev/null @@ -1,480 +0,0 @@ -{ - "source": { - "hash": "0xf6939855fe6abe0b79cd23a154f0816d8205a5751f36b8703e9a60f31d9e48a5", - "language": "ink! 5.0.0-rc.1", - "compiler": "rustc 1.75.0", - "wasm": "0x0061736d0100000001691160037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060017f0060047f7f7f7f0060047f7f7f7f017f60057f7f7f7f7f0060000060017f017f60027e7e0060047f7f7e7e0060037e7e7f0060037f7e7e006000017f60057f7f7f7f7f017f60047f7f7e7e017f02c7010a057365616c310b6765745f73746f726167650006057365616c3005696e7075740002057365616c300d6465706f7369745f6576656e740005057365616c320b7365745f73746f726167650006057365616c300d64656275675f6d6573736167650001057365616c300b7365616c5f72657475726e0003057365616c300663616c6c65720002057365616c301176616c75655f7472616e736665727265640002057365616c300f686173685f626c616b65325f323536000303656e76066d656d6f7279020102100356550000000007030b0202030c0d0402030305040207040202000202020403020204070e01010203040903030102010f0a02080a0208100408030502020901000001010104020101070605060201010300050101010205040501700116160616037f01418080040b7f0041809b050b7f0041fe9a050b0711020463616c6c003c066465706c6f79003f091b010041010b15555435332b2c495b4a2f2f2b2f4748454c2f57595a0afa78552b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b6f01017f0240200020014d04402000210303402002450d02200320012d00003a0000200141016a2101200341016a2103200241016b21020c000b000b200141016b2101200041016b210303402002450d01200220036a200120026a2d00003a0000200241016b21020c000b000b20000b2501017f037f2002200346047f200005200020036a20013a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b2200200120034d044020002001360204200020023602000f0b200120032004100e000b0e0020002001200241f89004105d0bbb0102037f017e230041306b2204240020044100360220200442808001370228200441fe9a0436022441b7c380e57e200441246a2205101020002005101120012005101120042004290224370218200441106a200441186a2206200428022c10122004280214210020042802102101200429021821072004410036022c20042007370224200220032005101320042004290224370218200441086a2006200428022c1012200120002004280208200428020c10031a200441306a24000b2601017f230041106b220224002002200036020c20012002410c6a41041017200241106a24000b0a0020012000412010170b4501017f2002200128020422034b044041a09604412341cc98041032000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b2a01017f230041106b2203240020032001370308200320003703002002200341101017200341106a24000bb50102047f017e230041306b2203240020034100360220200342808001370228200341fe9a0436022441e7b98fb102200341246a2204101020002004101120032003290224370218200341106a200341186a2205200328022c10122003280214210020032802102106200329021821072003410036022c20032007370224200120022004101320032003290224370218200341086a2005200328022c1012200620002003280208200328020c10031a200341306a24000bbd0102047f017e230041d0006b22012400200141186a220220001016200129021821052001410036022c20012005370224200141003a0044200141246a2203200141c4006a22044101101720012001290224370218200141106a2002200128022c10122003200128021020012802141018200141086a200028020020002802042000280208220210192001410036024c2001200129030837024420032004101120022002200128024c6a22024d101a20002002360208200141d0006a24000b3f01027f20012802042203200128020822024904402002200341bc98041031000b200041003602082000200320026b3602042000200128020020026a3602000bd30101057f20002802042105200028020021062000280208220420026a220320044f220741ec9704105c0240200320044f0440200320054b0d01200420066a200320046b20012002418c9804101c2007419c9804105c200020033602080f0b230041306b220024002000200336020420002004360200200041146a42023702002000412c6a41073602002000410236020c200041ac9104360208200041073602242000200041206a3602102000200041046a36022820002000360220200041086a41fc97041034000b2003200541fc9704100e000b8f0201077f230041d0006b22032400200341286a22044200370300200341206a22054200370300200341186a22064200370300200342003703100240200241214f0440200341c8006a22074200370300200341406b22084200370300200341386a220942003703002003420037033020012002200341306a1008200420072903003703002005200829030037030020062009290300370300200320032903303703100c010b200341086a2002200341106a412041a48104100d2003280208200328020c2001200241b48104101c0b20002003290310370000200041186a200341286a290300370000200041106a200341206a290300370000200041086a200341186a290300370000200341d0006a24000b29002002200349044020032002418c84041031000b2000200220036b3602042000200120036a3602000b1500200045044041c39604412b419c84041032000b0bb20102037f017e230041d0006b22022400200241186a220420001016200229021821052002410036022c200220053702242001200241246a2203101120022002290224370218200241106a2004200228022c10122003200228021020022802141018200241086a200028020020002802042000280208220110192002410036024c200220022903083702442003200241c4006a101120012001200228024c6a22014d101a20002001360208200241d0006a24000b7b002001200346044020002002200110091a0f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41073602002000410336020c200041809304360208200041073602242000200041206a360210200020003602282000200041046a360220200041086a20041034000b5c01027f230041206b22012400200141086a200028020020002802042000280208220210192001410036021c20012001290308370214200141146a410c101e20022002200128021c6a22024d101a20002002360208200141206a24000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41073602002000410236020c200041948e04360208200041073602242000200041206a360210200020003602282000200041046a360220200041086a41ac98041034000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120102045044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b3d01027f2000280204220320024922044504402001200220002802002201200241b49a04101c2000200320026b3602042000200120026a3602000b20040b5502027f017e230041206b22022400200241086a20011022200241186a29030021042002280208210320002002290310370308200041106a200437030020002003200128020472410047ad370300200241206a24000b5f02017f037e230041106b2202240020024200370308200242003703000240200120024110102045044020022903082104200229030021050c010b420121030b2000200537030820002003370300200041106a2004370300200241106a24000ba90102017f027e230041406a220224002002411f6a2001101f0240024020022d001f0d002002200110222002290300a70d00200241106a2903002103200229030821042000200229002037000820004200370300200041286a2004370300200041306a2003370300200041206a200241386a290000370000200041186a200241306a290000370000200041106a200241286a2900003700000c010b200042013703000b200241406b24000be80202077f017e230041406a22012400200142808001370228200141fe9a04360224200141246a101d200141186a2001412c6a28020036020020012001290224370310200141306a2202200141106a41b587041025200041316a2105024020002d001004402002200041116a101b0c010b200141306a10150b200041106a2106200141186a200141386a28020036020020012001290230370310024020052d00000440200141106a200041326a101b0c010b200141106a10150b200141386a2202200141186a220328020036020020012001290310370330200141106a2204200141306a2207102620022003280200360200200120012902102208370330200141206a2802002102200128021c210320014100360218200120083702102006200410272005200410272000290300200041086a2903002004101320012001290210370330200141086a200720012802181012200320022001280208200128020c1002200141406b24000bda0102037f017e230041d0006b22032400024020020440200341186a220520011016200329021821062003410036022c200320063702242002200341246a2204101120032003290224370218200341106a2005200328022c10122004200328021020032802141018200341086a200128020020012802042001280208220210192003410036024c200320032903083702442004200341c4006a101120022002200328024c6a22024d101a200120023602080c010b200110150b20002001290200370200200041086a200141086a280200360200200341d0006a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101220022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b210020002d000045044020014100101e0f0b20014101101e200041016a200110110baf0101027f230041306b2201240020014180800136020441fe9a04200141046a2202100620014180800136022c200141fe9a043602282002200141286a101f20012d00040440200141103a000441f7820441c100200241c8820441b883041029000b2000200141066a290000370001200041096a2001410e6a290000370000200041116a200141166a290000370000200041186a2001411d6a290000370000200020012d00053a0000200141306a24000b7c01017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a42023702002005413c6a41013602002005410236021c200541a88e04360218200541023602342005200541306a3602202005200541106a3602382005200541086a360230200541186a20041034000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10072000290308210120002903002102200041206a2400410541042001200284501b0b1b002001280214418889044105200141186a28020028020c1100000b3400200128021420002802002d0000410274220041b888046a280200200041f887046a280200200141186a28020028020c1100000bff0202057f027e230041d0006b220224002002410036023020024280800137023c200241fe9a0436023841e7b98fb102200241386a2204101020012004101120022002290238370228200241206a200241286a200228024010122002280224210320022802202105200228022821012002200228022c2206360238200520032001200410002103200241186a20022802382001200641b88204100d027e024002400240024020030e0400010103010b200228021821012002200228021c36023c200220013602382002200241386a10212002290300a70d0120022903082107200241106a2903000c030b200241c4006a42003702002002410136023c200241f48304360238200241a09604360240200241386a41fc83041034000b200241103a0037200241c4006a42013702002002410136023c2002418c81043602382002410336022c2002200241286a3602402002200241376a360228200241386a419481041034000b42000b21082000200737030020002008370308200241d0006a24000b850302047f027e230041d0006b220324002003410036023020034280800137023c200341fe9a0436023841b7c380e57e200341386a2204101020012004101120022004101120032003290238370228200341206a200341286a200328024010122003280224210220032802202105200328022821012003200328022c2206360238200520022001200410002102200341186a20032802382001200641b88204100d027e024002400240024020020e0400010103010b200328021821012003200328021c36023c200320013602382003200341386a10212003290300a70d0120032903082107200341106a2903000c030b200341c4006a42003702002003410136023c200341f48304360238200341a09604360240200341386a41fc83041034000b200341103a0037200341c4006a42013702002003410136023c2003418c81043602382003410336022c2003200341286a3602402003200341376a360228200341386a419481041034000b42000b21082000200737030020002008370308200341d0006a24000b0300010b1b002000418180014f044020004180800141c88304100e000b20000b0e0020002001200241d89004105d0b4601017f230041206b220324002003410c6a420037020020034101360204200341a096043602082003200136021c200320003602182003200341186a360200200320021034000b840101017f230041306b22022400200241146a42013702002002410136020c200241a0950436020820024102360224200220002d0000410274220041c49a046a28020036022c2002200041d89a046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10462100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241c48d04360210200241a0960436020c2002410c6a104b000b8f0101027f230041106b22022400027f024002400240410220002d000041106b41ff01712203200341024f1b41016b0e020102000b20022000360208200141d882044106200241086a410510360c020b200128021441de8204410e200141186a28020028020c1100000c010b2002200036020c200141ec8204410b2002410c6a410610360b2100200241106a240020000ba20201047f230041406a220524004101210702402000280214220620012002200041186a280200220228020c22011100000d000240200028021c2208410471450440200641d68e04410120011100000d022003200020041101000d0220002802142106200028021828020c21010c010b200641d78e04410220011100000d01200541013a001b200541346a41b88e04360200200520023602102005200636020c20052008360238200520002d00203a003c2005200028021036022c200520002902083702242005200029020037021c20052005411b6a36021420052005410c6a36023020032005411c6a20041101000d01200528023041d48e044102200528023428020c1100000d010b200641a88d044101200111000021070b200541406b240020070b3e01027f230041106b22022400200242808001370208200241fe9a04360204200241046a22034100101e20002001200310134100200228020c1030103b000b5101027f230041106b22022400200242808001370208200241fe9a04360204200241046a22034100101e2003200141ff0171410247047f20034101101e20010541000b101e2000200228020c1030103b000b3c01027f230041106b22002400200042808001370208200041fe9a04360204200041046a22014101101e20014101101e4101200028020c1030103b000bab0102057f017e230041306b2202240020024100360220200242808001370228200241fe9a043602244100200241246a2203101020022002290224370218200241106a200241186a2204200228022c10122002280214210520022802102106200229021821072002410036022c20022007370224200020012003101320022002290224370218200241086a2004200228022c1012200620052002280208200228020c10031a200241306a24000b0d00200041fe9a0420011005000b821602087f047e230041a0056b22002400024002400240102a41ff017141054604402000418080013602c80441fe9a04200041c8046a2201100120004180016a20002802c80441fe9a044180800141b88204100d20002000290380013702bc04200041003602c804200041bc046a2001410410200d0220002d00cb04210220002d00ca04210320002d00c9042101027f02400240024002400240024020002d00c8042204410b6b0e050509090901000b0240200441e8006b0e03040902000b2004418401460d02200441db0147200141ff017141e3004772200341f50047200241a8014772720d0841000c050b200141ff017141f50047200341da004772200241d60047720d07200041c8046a200041bc046a101f20002d00c8040d07200041f0016a200041d2046a290000370300200041f8016a200041da046a290000370300200041ff016a200041e1046a2900003700002000200041ca046a2900003703e80120002d00c904210141010c040b200141ff0171200341164772200241de0047720d06200041a8026a200041bc046a2201101f20002d00a8020d0620004188016a2001101f20002d0088010d06200041ff046a200041a1016a290000370000200041f7046a20004199016a290000370000200041ef046a20004191016a290000370000200041d0046a200041b2026a290000370300200041d8046a200041ba026a290000370300200041df046a200041c1026a29000037000020002000290089013700e7042000200041aa026a2900003703c80420002d00a9022101200041e8016a200041c8046a413f10091a41020c030b200141ff017141a10147200341dd004772200241a10147720d05200041c8046a200041bc046a102320002903c8044200520d05200041b6036a200041ae026a2000418e016a200041d0046a4130100941301009413010091a200041e8016a200041b0036a413610091a41030c020b200141ff0171411247200341e6004772200241a00147720d04200041c8046a200041bc046a102320002903c8044200520d04200041b6036a200041ae026a2000418e016a200041d0046a4130100941301009413010091a200041e8016a200041b0036a413610091a41040c010b200141ff0171413947200341ef0047722002411847720d03200041f0036a200041bc046a2201101f20002d00f0030d0320004198046a2001101f20002d0098040d03200041e8006a200110222000290368a70d03200041f8006a290300210820002903702109200041c8036a200041f1036a220141186a290000370300200041c0036a200141106a290000370300200041b8036a200141086a290000370300200041d8036a200041a1046a290000370300200041e0036a200041a9046a290000370300200041e8036a200041b1046a29000037030020002000290099043703d003200020012900003703b003200041f0026a2202200041b0036a41c00010091a200041ae026a2000418e016a200041ce046a200241c000100941c000100941c00010091a200041e8016a200041a8026a413f10091a2000200041ea026a2800003600e301200020002800e7023602e00141050b210220004188016a410272200041e8016a413f10091a200041cc016a20002800e301360000200041d8016a2008370300200020002802e0013600c901200020093703d001200020013a008901200020023a008801200041003602b0022000428080013702cc04200041fe9a043602c8044100200041c8046a22031010200020002902c8043702a802200041e0006a200041a8026a20002802d0041012200028026421042000280260210520002802a8022101200020002802ac0222063602c804200520042001200310002103200041d8006a20002802c8042001200641b88204100d02400240024020030e0400040401040b200028025821012000200028025c3602cc04200020013602c804200041406b200041c8046a10222000290340a745044020002802cc04450d020b200041d4046a4200370200200041013602cc042000419c87043602c8040c050b200041d4046a4200370200200041013602cc04200041ec86043602c8040c040b20004188016a4101722101200041d0006a290300210820002000290348220937039804200020083703a00402400240024002400240024002400240200241016b0e050001040502030b230041406a22022400200241286a200141086a290000370200200241306a200141106a290000370200200241386a200141186a290000370200200220004198046a36021c20022001290000370220200241086a200241206a102d20022903082108200041086a2201200241106a29030037030820012008370300200241406b24002000290308200041106a2903001037000b230041e0006b22022400200220004198046a36021c200241086a200241206a200141c0001009200241406b102e20022903082108200041186a2201200241106a29030037030820012008370300200241e0006a24002000290318200041206a2903001037000b200041d0046a20004190016a41d00010092101200020004198046a3602c80420004190056a290300210920004198056a2903002108200041a8026a22021028200041306a20012002102e41012103410121022000290330220b2009542204200041386a290300220a2008542008200a511b0d04410221022001200041f0046a20092008103d41ff017122054102460d03200541004721020c040b200920081037000b200041d0046a20004190016a413010092101200020004198046a3602c804200041f8046a2903002108200041f0046a2903002109200041a8026a220210282002200120092008103d220141ff0171410246047f200029039804200041a0046a290300103a41000541010b20011038000b200041b8036a20004190016a413010092101200020004198046a3602b003200041e0036a2903002108200041d8036a2903002109200041f0026a220210282002200120092008100f200041c0026a20004188036a290000370300200041b8026a20004180036a290000370300200041b0026a200041f8026a290000370300200041d0026a20004198016a290300370300200041d8026a200041a0016a290300370300200041e0026a200041a8016a290300370300200020002900f0023703a80220002000290390013703c802200041c8046a2204200041a8026a41c00010091a20004190056a2206200837030020002009370388052000428080013702c004200041fe9a043602bc04200041bc046a101d200041f0016a2202200041c4046a280200360200200020002902bc043703e801200041f0036a2203200041e8016a220141d68704102520032004101b2002200041f8036a2205280200360200200020002902f0033703e8012001200041e8046a2207101b20052002280200360200200020002903e8013703f00320012003102620052002280200360200200020002902e80122083703f003200041f8016a280200210220002802f4012105200041003602f001200020083702e801200420011011200720011011200029038805200629030020011013200020002902e8013703f003200041286a200320002802f0011012200520022000280228200028022c1002200029039804200041a0046a290300103a410041021038000b2001200041a8026a200b20097d200a20087d2004ad7d100f200029039804200041a0046a290300103a410021030b200320021038000b200041043a00c804200041c8046a103e000b200041d4046a4200370200200041013602cc04200041f483043602c804200041a096043602d004200041c8046a41fc83041034000b1039000b200041a096043602d004200041c8046a41c486041034000bd40202037f037e23004180016b22042400200441186a2000102d0240200429031822082002542206200441206a290300220720035420032007511b4504402000200820027d200720037d2006ad7d1014200441086a2001102d2004290308220720027c220920075422052005ad200441106a290300220720037c7c220820075420072008511b4101460d012001200920081014200441396a2000290000370000200441c1006a200041086a290000370000200441c9006a200041106a290000370000200441d1006a200041186a290000370000200441da006a2001290000370100200441e2006a200141086a290000370100200441ea006a200141106a290000370100200441f2006a200141186a290000370100200441013a0038200441013a00592004200337033020042002370328200441286a1024410221050b20044180016a240020050f0b41c39604412b41a487041032000b4801017f230041206b220124002001410c6a420137020020014101360204200141a095043602002001410436021c200120003602182001200141186a360208200141c486041034000bf00402087f037e230041c0016b220024000240102a220141ff0171410546044020004180800136025041fe9a04200041d0006a22011001200041286a200028025041fe9a044180800141b88204100d200020002903283702502000410036023002402001200041306a410410200d0020002d0030419b01470d0020002d003141ae01470d0020002d0032419d01470d0020002d003341de00470d00200041106a200110222000290310a7450d020b1039000b200020013a0050200041d0006a103e000b200041206a290300210820002903182109200041306a1028200041ec006a200041c8006a2202290000370200200041e4006a200041406b2203290000370200200041dc006a200041386a220429000037020020002000290030370254200041808004360250200041003602b0012000428080013702b801200041fe9a043602b40141e7b98fb102200041b4016a22011010200041d4006a20011011200020002902b4013702a801200041086a200041a8016a220520002802bc011012200028020c21062000280208210720002902a801210a200041003602bc012000200a3702b4012009200820011013200020002902b4013702a8012000200520002802bc011012200720062000280200200028020410031a2000419a016a200229000037010020004192016a20032900003701002000418a016a200429000037010020004182016a20002900303701002000200837035820002009370350200041013a008101200041003a0060200041d0006a102420092008103a230041106b22002400200042808001370208200041fe9a04360204200041046a22014100101e20014100101e4100200028020c1030103b000b6001027f230041106b2203240020022000280204200028020822046b4b0440200341086a20002004200210412003280208200328020c1042200028020821040b200028020020046a2001200210091a2000200220046a360208200341106a24000ba80301057f230041206b22042400027f4100200220036a22032002490d001a4108200128020422024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003104320022802082105200228020c0c020b200528020021080240200310442205450440410021050c010b20052008200710091a0b20030c010b2002200310432002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000bd10100024020004181808080784704402000450d01230041306b220024002000200136020c2000411c6a420137020020004102360214200041d88b043602102000410736022c2000200041286a36021820002000410c6a360228230041206b22012400200141003b011c200141e88b043602182001200041106a360214200141c48d04360210200141a0960436020c2001410c6a104b000b0f0b230041206b22002400200041146a42003702002000410136020c200041ac8a04360208200041a09604360210200041086a41b48a041034000b2001017f41ec9a042d00001a20011044210220002001360204200020023602000bb70101027f027f41f09a042d0000044041f49a042802000c010b3f00210141f49a0441809b0536020041f09a0441013a000041f89a04200141107436020041809b050b21010240027f4100200020016a22022001490d001a41f89a042802002002490440200041ffff036a220241107640002201417f460d022001411074220120024180807c716a22022001490d0241f89a0420023602004100200020016a22022001490d011a0b41f49a04200236020020010b0f0b41000b0c00200041908904200110460bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110100450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10562003200329031037021c200341086a20062001105620032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110100450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0c00200020012002104041000bb90201037f230041106b22022400024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a20002003410110412004280208200428020c1042200441106a2400200028020821030b2000200341016a360208200028020020036a20013a00000c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10400b200241106a240041000bdb05020b7f027e230041406a220324004127210202402000350200220d4290ce00540440200d210e0c010b0340200341196a20026a220041046b200d4290ce0080220e42f0b1037e200d7ca7220441ffff037141e4006e220641017441d98e046a2f00003b0000200041026b2006419c7f6c20046a41ffff037141017441d98e046a2f00003b0000200241046b2102200d42ffc1d72f562100200e210d20000d000b0b200ea7220041e3004b0440200241026b2202200341196a6a200ea7220441ffff037141e4006e2200419c7f6c20046a41ffff037141017441d98e046a2f00003b00000b02402000410a4f0440200241026b2202200341196a6a200041017441d98e046a2f00003b00000c010b200241016b2202200341196a6a200041306a3a00000b200128021c22054101712207412720026b22066a2100410021042005410471044041a09604210441a0960441a09604104d20006a21000b412b418080c40020071b2107200341196a20026a2108024020012802004504404101210220012802142200200128021822012007200410500d01200020082006200128020c11000021020c010b2000200128020422094f04404101210220012802142200200128021822012007200410500d01200020082006200128020c11000021020c010b200541087104402001280210210b2001413036021020012d0020210c41012102200141013a0020200128021422052001280218220a2007200410500d01200341106a2001200920006b4101105120032802102200418080c400460d0120032802142104200520082006200a28020c1100000d01200020042005200a10520d012001200c3a00202001200b360210410021020c010b41012102200341086a2001200920006b4101105120032802082205418080c400460d00200328020c210920012802142200200128021822012007200410500d00200020082006200128020c1100000d002005200920002001105221020b200341406b240020020b0e0020002802001a03400c000b000bc40101017f230041406a220124002001200036020c2001411c6a420137020020014102360214200141f096043602102001410836022c2001200141286a36021820012001410c6a3602282001410036023820014201370230200141306a200141106a10454504402001280230210020012802382101024041fc9a042d000045044041fd9a042d00004101710d010b200020011004410947044041fc9a0441013a00000b41fd9a0441013a00000b000b41f88b0441332001413f6a41f8880441988d041029000b210020004283ddaa8bf8ede3ea20370308200042ec80a48aff99c486ab7f3703000ba10301067f230041106b220224000240200120006b220141104f04402000200041036a417c71220520006b2200104e2005200120006b2200417c716a2000410371104e6a21042000410276210303402003450d0220022005200341c0012003200341c0014f1b41b09204104f200228020c21032002280208210520022002280200200228020422002000417c71418c9404104f024020022802042200450440410021010c010b2002280200220620004102746a21074100210103404100210003402001200020066a2802002201417f734107762001410676724181828408716a2101200041046a22004110470d000b200641106a22062007470d000b0b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a2104200228020c2201450d000b2002280208210020014102742103410021010340200120002802002201417f734107762001410676724181828408716a2101200041046a2100200341046b22030d000b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a21040c010b20002001104e21040b200241106a240020040b2c01017f200104400340200220002c000041bf7f4a6a2102200041016a2100200141016b22010d000b0b20020b3d002002200349044041a09604412320041032000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101101000d011a0b20030d0141000b0f0b200020034100200128020c1100000b9c0101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b20024101762104200241016a41017621020b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110100450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110100450d000b200441016b0b2001490bf60101067f2000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722104200341f00149044020042006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200441067472722203418080c400460d011a0b200120012802082207200520026b6a36020820030b360204200020073602000bb90301067f230041306b22022400200028020421042000280200210302400240200128020022062001280208220072044002402000450d002001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1053200228021c418080c400470d010c020b0b200241106a200241246a10532002280214418080c400460d000240024020022802102205450d00200420054d04404100210020042005460d010c020b41002100200320056a2c00004140480d010b200321000b2005200420001b21042000200320001b21030b2006450440200128021420032004200141186a28020028020c11000021000c030b200128020422002003200320046a104d22054d0d01200241086a2001200020056b410010514101210020022802082205418080c400460d02200228020c21062001280214220720032004200141186a280200220128020c1100000d022005200620072001105221000c020b200128021420032004200141186a28020028020c11000021000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044109470d0120012802000b2802002104410121030b20002004360204200020033602000bd30501107f230041406a22032400200341003b013c200320023602382003410036023420034281808080a00137022c2003200236022820034100360224200320023602202003200136021c2003410a3602182000280204210a2000280200210b2000280208210c200341306a210d027f0340027f024020032d003d450440200328021c2108024020032802282205200328022022104b0d002003280224220120054b0d00200328022c2200200d6a41016b21110340200120086a210420112d0000210602400240027f0240200520016b220741084f0440024002402004200441036a417c712202460440200741086b210e410021020c010b200341106a20062004200220046b2202105820032802104101460d012002200741086b220e4b0d030b200641818284086c210f0340200220046a220941046a280200200f732212417f73201241818284086b712009280200200f732209417f73200941818284086b7172418081828478710d03200241086a2202200e4d0d000b0c020b2003280214210241010c020b200320062004200710582003280204210220032802000c010b200341086a2006200220046a200720026b1058200328020c20026a210220032802084101460b41014604402003200120026a41016a2201360224200020014b200120104b720d02200041054f0d012008200120006b6a21022002200d2000100c0d022003280234210020032001360234200120006b0c070b200320053602240c030b2000410441909504100e000b200120054d0d000b0b200341013a003d20032d003c044020032802382102200328023421000c020b2003280238220220032802342200470d010b41000c030b200220006b0b21010240200c2d00000440200b41d08e044104200a28020c1100000d010b200020086a2100200c2001047f200020016a41016b2d0000410a460541000b3a0000200b20002001200a28020c110000450d010b0b41010b2100200341406b240020000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b4e01027f20002802042102200028020021030240200028020822002d0000450d00200341d08e044104200228020c110000450d0041010f0b20002001410a463a00002003200120022802101101000b0c00200041b88e04200110460bea0201067f230041406a22022400200028020021054101210002402001280214220441d48d04410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4107360200200241346a410736020020024103360214200241ac8d0436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a220736021820042006200241106a10460d00200528020822030440200441e08d04410220011100000d01200241386a200341106a290200370300200241306a200341086a29020037030020022003290200370328200420062007104621000c010b200220052802002203200528020428020c11020041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441e08d04410220011100000d00200420032802002003280204200111000021000b200241406b240020000b1300200045044041c39604412b20011032000b0b6901017f230041306b220424002004200136020420042000360200200441146a42023702002004412c6a41073602002004410236020c20042003360208200441073602242004200441206a3602102004200441046a36022820042004360220200441086a20021034000b0bf41a0100418080040beb1ae7dc23262f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f73746f726167652f7372632f6c617a792f6d617070696e672e72734661696c656420746f206765742076616c756520696e204d617070696e673a2000000069000100200000000400010065000000c4000000250000005c0c01006a00000093000000200000005c0c01006a00000093000000300000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f70616c6c65742d636f6e7472616374732d756170692d6e6578742d362e302e312f7372632f686f73742e72730000c4000100720000002d000000170000000a0000000100000001000000030000004465636f6465427566666572546f6f536d616c6c52657475726e4572726f7254686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e5c0c01006a000000820100000e0000005c0c01006a0000001a01000032000000656e636f756e746572656420756e6578706563746564206572726f72d80101001c0000005c0c01006a000000e300000017000000800b01006b000000cf0000003d000000800b01006b000000d20000003b0000005375636365737343616c6c65655472617070656443616c6c656552657665727465644b65794e6f74466f756e645f42656c6f7753756273697374656e63655468726573686f6c645472616e736665724661696c65645f456e646f776d656e74546f6f4c6f77436f64654e6f74466f756e644e6f7443616c6c61626c654c6f6767696e6744697361626c656443616c6c52756e74696d654661696c656445636473615265636f766572794661696c6564537232353531395665726966794661696c656458636d457865637574696f6e4661696c656458636d53656e644661696c6564556e6b6e6f776e2f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f65726332302f6c69622e72730000140301002e000000070000000500000073746f7261676520656e7472792077617320656d707479005403010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279007403010027000000140301002e000000d30000003d00000001b5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb011a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d0000070000000d0000000e0000000b0000001a0000000e000000100000000c0000000b0000000f000000110000001300000013000000120000000d000000070000002c02010033020100400201004e020100590201007302010081020100910201009d020100a8020100b7020100c8020100db020100ee020100000301000d0301000b00000000000000010000000c0000004572726f720000000d0000000c000000040000000e0000000f000000100000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700001905010011000000a80401007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000000b305010015000000c80501000d000000440501006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72732b0601006d0000006402000020000000293a0000200b010000000000a906010001000000a9060100010000000b00000000000000010000001100000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320e20601002000000002070100120000003a200000200b0100000000002407010002000000120000000c00000004000000130000001400000015000000202020202c0a28280a303030313032303330343035303630373038303931303131313231333134313531363137313831393230323132323233323432353236323732383239333033313332333333343335333633373338333934303431343234333434343534363437343834393530353135323533353435353536353735383539363036313632363336343635363636373638363937303731373237333734373537363737373837393830383138323833383438353836383738383839393039313932393339343935393639373938393972616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468200000002108010012000000330801002200000072616e676520656e6420696e6465782068080100100000003308010022000000736c69636520696e64657820737461727473206174202062757420656e6473206174200088080100160000009e0801000d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e727300bc08010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820284009010015000000550901002b000000a8060100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273000098090100720000004f000000320000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72731c0a010074000000b801000037000000200b010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d657373616765617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e282963616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75650a00200b0100000000006e0b0100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e727300800b01006b0000005c0000003b000000800b01006b0000005c00000014000000800b01006b0000005d0000000e000000800b01006b0000005e00000034000000800b01006b0000006800000009000000800b01006b0000008600000025000000800b01006b00000090000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e72732f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e7273000000c60c01006b000000770000000e000000190000001c000000160000001400000019000000a80a0100c10a0100dd0a0100f30a0100070b01", - "build_info": { - "build_mode": "Debug", - "cargo_contract_version": "4.0.0-rc.2", - "rust_toolchain": "stable-aarch64-apple-darwin", - "wasm_opt_settings": { "keep_debug_symbols": false, "optimization_passes": "Z" } - } - }, - "contract": { - "name": "erc20", - "version": "5.0.0-rc.1", - "authors": ["Parity Technologies "] - }, - "image": null, - "spec": { - "constructors": [ - { - "args": [{ "label": "total_supply", "type": { "displayName": ["Balance"], "type": 0 } }], - "default": false, - "docs": ["Creates a new ERC-20 contract with the specified initial supply."], - "label": "new", - "payable": false, - "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 14 }, - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "environment": { - "accountId": { "displayName": ["AccountId"], "type": 2 }, - "balance": { "displayName": ["Balance"], "type": 0 }, - "blockNumber": { "displayName": ["BlockNumber"], "type": 23 }, - "chainExtension": { "displayName": ["ChainExtension"], "type": 24 }, - "hash": { "displayName": ["Hash"], "type": 21 }, - "maxEventTopics": 4, - "staticBufferSize": 16384, - "timestamp": { "displayName": ["Timestamp"], "type": 22 } - }, - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "from", - "type": { "displayName": ["Option"], "type": 20 } - }, - { - "docs": [], - "indexed": true, - "label": "to", - "type": { "displayName": ["Option"], "type": 20 } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { "displayName": ["Balance"], "type": 0 } - } - ], - "docs": ["Event emitted when a token transfer occurs."], - "label": "Transfer", - "module_path": "erc20::erc20", - "signature_topic": "0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "owner", - "type": { "displayName": ["AccountId"], "type": 2 } - }, - { - "docs": [], - "indexed": true, - "label": "spender", - "type": { "displayName": ["AccountId"], "type": 2 } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { "displayName": ["Balance"], "type": 0 } - } - ], - "docs": [ - "Event emitted when an approval occurs that `spender` is allowed to withdraw", - "up to the amount of `value` tokens from `owner`." - ], - "label": "Approval", - "module_path": "erc20::erc20", - "signature_topic": "0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d" - } - ], - "lang_error": { "displayName": ["ink", "LangError"], "type": 15 }, - "messages": [ - { - "args": [], - "default": false, - "docs": [" Returns the total token supply."], - "label": "total_supply", - "mutates": false, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 16 }, - "selector": "0xdb6375a8" - }, - { - "args": [{ "label": "owner", "type": { "displayName": ["AccountId"], "type": 2 } }], - "default": false, - "docs": [ - " Returns the account balance for the specified `owner`.", - "", - " Returns `0` if the account is non-existent." - ], - "label": "balance_of", - "mutates": false, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 16 }, - "selector": "0x0f755a56" - }, - { - "args": [ - { "label": "owner", "type": { "displayName": ["AccountId"], "type": 2 } }, - { "label": "spender", "type": { "displayName": ["AccountId"], "type": 2 } } - ], - "default": false, - "docs": [ - " Returns the amount which `spender` is still allowed to withdraw from `owner`.", - "", - " Returns `0` if no allowance has been set." - ], - "label": "allowance", - "mutates": false, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 16 }, - "selector": "0x6a00165e" - }, - { - "args": [ - { "label": "to", "type": { "displayName": ["AccountId"], "type": 2 } }, - { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } - ], - "default": false, - "docs": [ - " Transfers `value` amount of tokens from the caller's account to account `to`.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the caller's account balance." - ], - "label": "transfer", - "mutates": true, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 17 }, - "selector": "0x84a15da1" - }, - { - "args": [ - { "label": "spender", "type": { "displayName": ["AccountId"], "type": 2 } }, - { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } - ], - "default": false, - "docs": [ - " Allows `spender` to withdraw from the caller's account multiple times, up to", - " the `value` amount.", - "", - " If this function is called again it overwrites the current allowance with", - " `value`.", - "", - " An `Approval` event is emitted." - ], - "label": "approve", - "mutates": true, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 17 }, - "selector": "0x681266a0" - }, - { - "args": [ - { "label": "from", "type": { "displayName": ["AccountId"], "type": 2 } }, - { "label": "to", "type": { "displayName": ["AccountId"], "type": 2 } }, - { "label": "value", "type": { "displayName": ["Balance"], "type": 0 } } - ], - "default": false, - "docs": [ - " Transfers `value` tokens on the behalf of `from` to the account `to`.", - "", - " This can be used to allow a contract to transfer tokens on ones behalf and/or", - " to charge fees in sub-currencies, for example.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " for the caller to withdraw from `from`.", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the account balance of `from`." - ], - "label": "transfer_from", - "mutates": true, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 17 }, - "selector": "0x0b396f18" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [ - { "layout": { "leaf": { "key": "0x00000000", "ty": 0 } }, "name": "total_supply" }, - { - "layout": { - "root": { - "layout": { "leaf": { "key": "0xe7dc2326", "ty": 0 } }, - "root_key": "0xe7dc2326", - "ty": 1 - } - }, - "name": "balances" - }, - { - "layout": { - "root": { - "layout": { "leaf": { "key": "0xb721a0ec", "ty": 0 } }, - "root_key": "0xb721a0ec", - "ty": 9 - } - }, - "name": "allowances" - } - ], - "name": "Erc20" - } - }, - "root_key": "0x00000000", - "ty": 13 - } - }, - "types": [ - { "id": 0, "type": { "def": { "primitive": "u128" } } }, - { - "id": 1, - "type": { - "def": { "composite": {} }, - "params": [ - { "name": "K", "type": 2 }, - { "name": "V", "type": 0 }, - { "name": "KeyType", "type": 5 } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 2, - "type": { - "def": { "composite": { "fields": [{ "type": 3, "typeName": "[u8; 32]" }] } }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { "id": 3, "type": { "def": { "array": { "len": 32, "type": 4 } } } }, - { "id": 4, "type": { "def": { "primitive": "u8" } } }, - { - "id": 5, - "type": { - "def": { "composite": {} }, - "params": [ - { "name": "L", "type": 6 }, - { "name": "R", "type": 7 } - ], - "path": ["ink_storage_traits", "impls", "ResolverKey"] - } - }, - { - "id": 6, - "type": { "def": { "composite": {} }, "path": ["ink_storage_traits", "impls", "AutoKey"] } - }, - { - "id": 7, - "type": { - "def": { "composite": {} }, - "params": [{ "name": "ParentKey", "type": 8 }], - "path": ["ink_storage_traits", "impls", "ManualKey"] - } - }, - { "id": 8, "type": { "def": { "tuple": [] } } }, - { - "id": 9, - "type": { - "def": { "composite": {} }, - "params": [ - { "name": "K", "type": 10 }, - { "name": "V", "type": 0 }, - { "name": "KeyType", "type": 11 } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { "id": 10, "type": { "def": { "tuple": [2, 2] } } }, - { - "id": 11, - "type": { - "def": { "composite": {} }, - "params": [ - { "name": "L", "type": 6 }, - { "name": "R", "type": 12 } - ], - "path": ["ink_storage_traits", "impls", "ResolverKey"] - } - }, - { - "id": 12, - "type": { - "def": { "composite": {} }, - "params": [{ "name": "ParentKey", "type": 8 }], - "path": ["ink_storage_traits", "impls", "ManualKey"] - } - }, - { - "id": 13, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "total_supply", - "type": 0, - "typeName": ",>>::Type" - }, - { - "name": "balances", - "type": 1, - "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type" - }, - { - "name": "allowances", - "type": 9, - "typeName": " as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type" - } - ] - } - }, - "path": ["erc20", "erc20", "Erc20"] - } - }, - { - "id": 14, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 8 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 15 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 8 }, - { "name": "E", "type": 15 } - ], - "path": ["Result"] - } - }, - { - "id": 15, - "type": { - "def": { "variant": { "variants": [{ "index": 1, "name": "CouldNotReadInput" }] } }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 16, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 0 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 15 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 0 }, - { "name": "E", "type": 15 } - ], - "path": ["Result"] - } - }, - { - "id": 17, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 18 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 15 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 18 }, - { "name": "E", "type": 15 } - ], - "path": ["Result"] - } - }, - { - "id": 18, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 8 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 19 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 8 }, - { "name": "E", "type": 19 } - ], - "path": ["Result"] - } - }, - { - "id": 19, - "type": { - "def": { - "variant": { - "variants": [ - { "index": 0, "name": "InsufficientBalance" }, - { "index": 1, "name": "InsufficientAllowance" } - ] - } - }, - "path": ["erc20", "erc20", "Error"] - } - }, - { - "id": 20, - "type": { - "def": { - "variant": { - "variants": [ - { "index": 0, "name": "None" }, - { "fields": [{ "type": 2 }], "index": 1, "name": "Some" } - ] - } - }, - "params": [{ "name": "T", "type": 2 }], - "path": ["Option"] - } - }, - { - "id": 21, - "type": { - "def": { "composite": { "fields": [{ "type": 3, "typeName": "[u8; 32]" }] } }, - "path": ["ink_primitives", "types", "Hash"] - } - }, - { "id": 22, "type": { "def": { "primitive": "u64" } } }, - { "id": 23, "type": { "def": { "primitive": "u32" } } }, - { - "id": 24, - "type": { "def": { "variant": {} }, "path": ["ink_env", "types", "NoChainExtension"] } - } - ], - "version": 5 -} diff --git a/.api-contract/src/test/contracts/ink/v5/erc20.json b/.api-contract/src/test/contracts/ink/v5/erc20.json deleted file mode 100644 index 3123452e..00000000 --- a/.api-contract/src/test/contracts/ink/v5/erc20.json +++ /dev/null @@ -1,881 +0,0 @@ -{ - "source": { - "hash": "0xf6939855fe6abe0b79cd23a154f0816d8205a5751f36b8703e9a60f31d9e48a5", - "language": "ink! 5.0.0-rc.1", - "compiler": "rustc 1.75.0", - "build_info": { - "build_mode": "Debug", - "cargo_contract_version": "4.0.0-rc.2", - "rust_toolchain": "stable-aarch64-apple-darwin", - "wasm_opt_settings": { - "keep_debug_symbols": false, - "optimization_passes": "Z" - } - } - }, - "contract": { - "name": "erc20", - "version": "5.0.0-rc.1", - "authors": ["Parity Technologies "] - }, - "image": null, - "spec": { - "constructors": [ - { - "args": [ - { - "label": "total_supply", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": ["Creates a new ERC-20 contract with the specified initial supply."], - "label": "new", - "payable": false, - "returnType": { - "displayName": ["ink_primitives", "ConstructorResult"], - "type": 14 - }, - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "environment": { - "accountId": { - "displayName": ["AccountId"], - "type": 2 - }, - "balance": { - "displayName": ["Balance"], - "type": 0 - }, - "blockNumber": { - "displayName": ["BlockNumber"], - "type": 23 - }, - "chainExtension": { - "displayName": ["ChainExtension"], - "type": 24 - }, - "hash": { - "displayName": ["Hash"], - "type": 21 - }, - "maxEventTopics": 4, - "staticBufferSize": 16384, - "timestamp": { - "displayName": ["Timestamp"], - "type": 22 - } - }, - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "from", - "type": { - "displayName": ["Option"], - "type": 20 - } - }, - { - "docs": [], - "indexed": true, - "label": "to", - "type": { - "displayName": ["Option"], - "type": 20 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": ["Event emitted when a token transfer occurs."], - "label": "Transfer", - "module_path": "erc20::erc20", - "signature_topic": "0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "docs": [], - "indexed": true, - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - "Event emitted when an approval occurs that `spender` is allowed to withdraw", - "up to the amount of `value` tokens from `owner`." - ], - "label": "Approval", - "module_path": "erc20::erc20", - "signature_topic": "0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d" - } - ], - "lang_error": { - "displayName": ["ink", "LangError"], - "type": 15 - }, - "messages": [ - { - "args": [], - "default": false, - "docs": [" Returns the total token supply."], - "label": "total_supply", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 16 - }, - "selector": "0xdb6375a8" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - } - ], - "default": false, - "docs": [ - " Returns the account balance for the specified `owner`.", - "", - " Returns `0` if the account is non-existent." - ], - "label": "balance_of", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 16 - }, - "selector": "0x0f755a56" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - } - ], - "default": false, - "docs": [ - " Returns the amount which `spender` is still allowed to withdraw from `owner`.", - "", - " Returns `0` if no allowance has been set." - ], - "label": "allowance", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 16 - }, - "selector": "0x6a00165e" - }, - { - "args": [ - { - "label": "to", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Transfers `value` amount of tokens from the caller's account to account `to`.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the caller's account balance." - ], - "label": "transfer", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 17 - }, - "selector": "0x84a15da1" - }, - { - "args": [ - { - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Allows `spender` to withdraw from the caller's account multiple times, up to", - " the `value` amount.", - "", - " If this function is called again it overwrites the current allowance with", - " `value`.", - "", - " An `Approval` event is emitted." - ], - "label": "approve", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 17 - }, - "selector": "0x681266a0" - }, - { - "args": [ - { - "label": "from", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "to", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Transfers `value` tokens on the behalf of `from` to the account `to`.", - "", - " This can be used to allow a contract to transfer tokens on ones behalf and/or", - " to charge fees in sub-currencies, for example.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " for the caller to withdraw from `from`.", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the account balance of `from`." - ], - "label": "transfer_from", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 17 - }, - "selector": "0x0b396f18" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 0 - } - }, - "name": "total_supply" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0xe7dc2326", - "ty": 0 - } - }, - "root_key": "0xe7dc2326", - "ty": 1 - } - }, - "name": "balances" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0xb721a0ec", - "ty": 0 - } - }, - "root_key": "0xb721a0ec", - "ty": 9 - } - }, - "name": "allowances" - } - ], - "name": "Erc20" - } - }, - "root_key": "0x00000000", - "ty": 13 - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 1, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "K", - "type": 2 - }, - { - "name": "V", - "type": 0 - }, - { - "name": "KeyType", - "type": 5 - } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 2, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 3, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { - "id": 3, - "type": { - "def": { - "array": { - "len": 32, - "type": 4 - } - } - } - }, - { - "id": 4, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 5, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "L", - "type": 6 - }, - { - "name": "R", - "type": 7 - } - ], - "path": ["ink_storage_traits", "impls", "ResolverKey"] - } - }, - { - "id": 6, - "type": { - "def": { - "composite": {} - }, - "path": ["ink_storage_traits", "impls", "AutoKey"] - } - }, - { - "id": 7, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "ParentKey", - "type": 8 - } - ], - "path": ["ink_storage_traits", "impls", "ManualKey"] - } - }, - { - "id": 8, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 9, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "K", - "type": 10 - }, - { - "name": "V", - "type": 0 - }, - { - "name": "KeyType", - "type": 11 - } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 10, - "type": { - "def": { - "tuple": [2, 2] - } - } - }, - { - "id": 11, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "L", - "type": 6 - }, - { - "name": "R", - "type": 12 - } - ], - "path": ["ink_storage_traits", "impls", "ResolverKey"] - } - }, - { - "id": 12, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "ParentKey", - "type": 8 - } - ], - "path": ["ink_storage_traits", "impls", "ManualKey"] - } - }, - { - "id": 13, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "total_supply", - "type": 0, - "typeName": ",>>::Type" - }, - { - "name": "balances", - "type": 1, - "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type" - }, - { - "name": "allowances", - "type": 9, - "typeName": " as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type" - } - ] - } - }, - "path": ["erc20", "erc20", "Erc20"] - } - }, - { - "id": 14, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 15 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 8 - }, - { - "name": "E", - "type": 15 - } - ], - "path": ["Result"] - } - }, - { - "id": 15, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 1, - "name": "CouldNotReadInput" - } - ] - } - }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 16, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 0 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 15 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "E", - "type": 15 - } - ], - "path": ["Result"] - } - }, - { - "id": 17, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 18 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 15 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 18 - }, - { - "name": "E", - "type": 15 - } - ], - "path": ["Result"] - } - }, - { - "id": 18, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 19 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 8 - }, - { - "name": "E", - "type": 19 - } - ], - "path": ["Result"] - } - }, - { - "id": 19, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "InsufficientBalance" - }, - { - "index": 1, - "name": "InsufficientAllowance" - } - ] - } - }, - "path": ["erc20", "erc20", "Error"] - } - }, - { - "id": 20, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 2 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 2 - } - ], - "path": ["Option"] - } - }, - { - "id": 21, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 3, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "Hash"] - } - }, - { - "id": 22, - "type": { - "def": { - "primitive": "u64" - } - } - }, - { - "id": 23, - "type": { - "def": { - "primitive": "u32" - } - } - }, - { - "id": 24, - "type": { - "def": { - "variant": {} - }, - "path": ["ink_env", "types", "NoChainExtension"] - } - } - ], - "version": 5 -} diff --git a/.api-contract/src/test/contracts/ink/v5/erc20.wasm b/.api-contract/src/test/contracts/ink/v5/erc20.wasm deleted file mode 100644 index f6800bb8784e46279835e91f4da1d71d2907faca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19416 zcmchf3zS_~dEfVW+{GYX#Z&o^$ru``h3C9{=y#-#K?&W$AF>oC~Jc?TeO|mxJYfVdL9bi`y40 zyL~bD8VC9mbjh{TU5&Z(PV1vXbmyJiiI#QlnteHe#+`Qt%i))THHD>WWp1E&uv*`{ zR9~o74pv=@we=UK=NFIGUFfemr>ct!OVjne)nnE9x+_@gU~%dEarE4O^x)pZ)ukm- z3;cL`R_6BBs`aC_c^CP%mdVQ8T(#DiV%@RI+|laZdaW|Qbf8+RRi_$vE;v+KI<$BH zTxGU8xOZ@5)J0Ks{#eW5>fwdj@h}LJ=*>4HI@cN%!!YXTjKe4@#9?b3hAs@lIO5Z~ zHVDEfZjYiM3@%s`w()-ww?&08Y)9@v5X4~+w6+vlI7F^MLs*Cl!D4Xn#Vr>{%R#oX z5*L?Uw(>g#9e(y;q1d`EjI{=LSqtKsTR85nXx|vPEGWL@<~<`rmu|W0pZ-c;-=%%K z-?;OdzF&RoKUwp?ZoB!?AXtu;(=d&8#mlKHq%MtS(txjC=e9epvS6kZbp*v?ae=I6Af?__Yaa4*@2VsZ(=(Lv{;bLh0qq)ie5voXF+UmZ!bf#Ll#-LCj*gbL@$ zY&nGUFokA^t*v7wi<6hK$VA=NXu&Q^lb05EGJ=jlPZ*b@tC8|U|2)oKnSJ$vI2n{; zVI-WD-~#n=W$6B5@IA33KzUxj!3(aZ|q5+sij< z$Tw=p_XnT<%};AE@{LWtF_MkaD3`40aTm!J(#T7egCxr#DYdAhBpZ3jMqaWq%NWV7 zrh{agBwAP!y4^@XHisvIUS6W!798Y2?5jfGb-Oo9nL zoonFf+GK;*PaB<|a+13IC|9x$P`U~)mvkRT(*tPQiENuzpDUadYI0L|@#{fQ06}1c zb&4tEYaGRNV0rQN<<{)k-;R@8!U-{SJ=8Jbt2;69v;{q-@hmKd*?X97Q`(w+gySum zjY%&kdT(<`)mmg%xENPi*UXM^%+9vVWUamp5ANXBC*MyWI978vBQR)8Q;z7en6n<8 z$#or)%zg@U!>kjo>>SVk%`j+{yGWzn5_?e54zt<_V&y{PT<)8n>yU)VE-Tq0vyt8R|=$R2cyEa!z&t5}Pu9M%7ax2+v-YUz$2(tIw zlUs&nHw+MLL~{S)OPFLQXz?eY#iiLt=m}aBKhwlciPRuSPJ%jdlF&Oz=$$0YorHPh zAKrj-uMkQhp)hx9oh15_SA;L%6#-shWUqnKaC5^eLb)7-0|}`o#4`f#89-JW1H5Pa zhAnCrYu4g}q6&aHX#-Gxj>B)# zGHhvGICa-d){(qItCf>(dcM!6a{1pTsW6wt+0Apyku=LHiIe6y-o4X+nEQfjR-}B9 zHRmq)q4)g)YtBB2&*Oskk^bb%ZkkBs9YvaNc%U@h@W9aDb^hm(^AZU1DJdn z2Hmvwb;!4Q(GI%%i_GCqBuvUNAR-}Mp38{fmxfoBW094c3gQ&&vPT~jUg272Q89e?B zkX<6SF9|209`?FRI%)Ikfbhe*Vx;Ck3VueK0E;oldUDl(Hu#W$d!%HY<4*e z0ZSpbo7adU6inHDft}ky>HtcI*~BcYo(jWOFJV}yW8MY{Ildf=i>YNFvHFMxb5tg=<6w%(Eqqeg0=1V?f)Nq_4c z=q4J<6j)uJUAltCC^lSf_7eN)=a5L#0B7d3BWC!F*hnwTEmx5YmDqQ zxCCx&X$`}202j0<8pcuXV*g6e8nxY%F{N z$&P~5T9!=L7;{Nvan`zp6WeF>h(&xPxkS63*c;q-7iT}YJI=lcGucT_9(!AyY*rRW z-xlvr0TY9LLALg+zX6OvcJbM3^O=`7uQfwK=qS6y{ciVZJ-$}}CP;7<>B#>SJy7px z*u?>5B;-`xd7@UxE}O|LS{5>HZQ|AmMTzyCa6Qb30@Rh4=`7)F+|JrK>!$^tEKFS6 zKq4TPE_>|WSY06X+&lf*xr5GxVZo#5*<1&~^n=qVa4ftG&6onm zGry4$5ZXqDl(>=ZjE|9}%6|9)KM58SvbvtITTt5*rexb3dRQ4wKt5D%@!|pspkjb5 zfpKe`mX_?XyGakjJHrY8UmC5A9VG^UjV|jOWHyb8J*jhCbYUzh$*RG6CXysuX*J02 zAf8wvh4kevQmvNuqqm_`Mr*$~8cuLBPL7QgD#vE*b~na>1Pnl5J?=es<>RoPEjD=% zdS^Vn$2gNXp!6Y9S}5&s#S$Tgt((vd)KeVH6SucVY$Pp=oz34(0r^hyGVmi;fZwS{ z&sRWmKWS=+qy{C;@^qL2BS2HGog6)PM|44fK*4xb?zn2%Bo4i_~CbObuvK zf~3K#L0OE{AQ-gWYf}vdhh7boV5Ekqp@yiT1`%nhfgQ5c;K!L7n&WacM472UlY2Gj z%&WmD{Twwkz%_D#oXcf*tpwT-kqEB@*-0#c9ag%kyz;b_S9Wt7B%>iUj#) zPbwa;!c81dDM5o9>#+{Y!(N6M;^RtE~On&IMFf>^Upwo?c37frVKlz~f zv$sE&J>9s(^yu#QkUEn@QUxe7ZnQ>A+f1?xm{$s;t!nYI=3+b(!Rvxe5P@@gi}Nn} zKKWi4QFyVHiM5WItoHR! zgZeEHV{2PTMms{H4V-4*rFreS_@+o{+)xV2p5?wAl!8!8GFr6NC@W+&9}9h6?%_TQ zO0D=M7}-VX3Rpn12AXA%q@x@FoSn{h*i>%I;v))tE!j8UM~x%3yEp|t8?Or-RYcM8 zHG}mGF9l+%CHqTyBQMdSYLc-N*~npdCVNaFLm|gUmlW7j*iT5_vQEDwR zNJ&!KT712a;LXh3pk7vHNJA#BFdixVvviy|xhTV4Ae{6kuXDv4{{M$7*~0>|a5tq} z{1%EqA#+8ee3s&6O^QxR^sxuXY%ru!NZIEh_Kk8B_B=bkPuaOyi}NOo(WYr0!f*&r zrdx~f`*aMM2;pm+mMm$jLnaGHDq(Tx0xUVG0%u!(g%YR=?5(z$%jFz8q*qN6EvSp} z2vvMi+w|^MWE*0uB9$t*;@uaAZOgGXF%K0iKk)98yw-$Pu>HKxq)z$-%Vj4eiG=lM zD?%M zV=e#Dw>bLH>(BE0r;w9hTNZT0IS0&su}%J6O-=CX>aTRq3k9bmJc~ zS?ss9GN5gm?C<zNDt%}yKt*my&Orz2~B0IB90d?2=#Q%)^qE&tHN*7BUQssM1a zIa(~Wi*uv)-y&fSB@p)YW_wTQNstoCM#E#)z;3nC@U#v5=ql@c##%nHs^yfmeEMt) z^STdHOL>Zgu#Xe1M{G^hr18;A0)N6Gan4t3=+9YOXm`$jomCSyZAM|n^TTka$GK7W zJ&Xp-a6cd*JriVwqCgUH+XPI{;k+#M*VnT3cTZlLgzyR*Qr4+y{C%24- z;!e4a{EGO<7wmcan0VOgb3OFo5h5eAZ^U_`$8OjU%|7x@V*JTi`1XSLpM8hFubEBK zK~1wO{nsw9O^j@g-dIMI4~P|{{7}3ahmHMExl_RfaUqQKoS|9sBGFf^KvqMhp&-*V zQM(@3wYOniGchiqoRoyc2Bi!laD}9dNw42F!4pm8fJRH(wOWz_B{nU265> z=o#01T-ThUK^PWfz|fnRO}3t$gqZunlVA(V12#wNnZ*kJnuT+Zr1xW|PeD+Eq|sJn z`n$hiLX{6c;7`RSu0TMv~5q?mae&B zV<&kXotPy%jkC3>>+k35xqE5wYgF#JY zlYl#xHQ592&1M+cL)Jgpo;gxXU_Kc)i3o#SCW$<6KEn{;r!gPc)R^ydE|A827eL_& z!~T2e)Bv-`tYu|Y%OlqE+^VScl(jrStn<%-a6xN%XjRKI)^g%(ivaI*I2Ot6rGfjY zmY$Sp3K*mZVOIn3P$`*vjy*WZy&!?dl_%8IaK#cGz@G{#nhHE@KAG>2n1V@2hQ^{( zrb%F3SOM4}=5Japl?QvtM)Qv6xLcrNqP*S4ou>TEIE_37d#&`d%&yskyJOL5l`&@g|00pg(V%=V*LuT7gJ)bdyaTaCccd*WsEdB!Spb+ZxQ*W7?dA5gbx)c7)2Fy; zpd})=-wx&0Jq&HTfxYQ2wo=~xL}D8p$P*lUKMIucF^{s=@MUZ8nSeEX%^Ez;TEn+! zFn|q2;BR!56R?IKT7xHG4gcL5JOOJUq>eL^!&|WojIf^rPNP>hsH1j+OoW^`V;2Ba z7A`2}Pcc7^LGu*zjm=Gc!0mvIqpvIk3S3y4uPo>e;Yp9>utk;R6)aS7;7Pw%&*_*g ziap4A0`;&x3n!A-=J>RFgYqW1B2pr*<@*yt6E&)=Q&jD>HaFLU;X6Pg@kw!H~1 z*X#PT-wAeWqtxpLvOj2?4ragGI33DJ-EAkOI=2tj$-|1#-q4hfh(5gJCTlT7!4`Wm z$mRJ6E|Wcr*fDK*4yA25efE88o1nJSZ2Bu}QsuMJBQA71HQ@A}Fn) z7qWYtA?cbihAV2E1&Rhauz}G=rIp7loHHAbE3_ST*@L8XwrI@FWgpIxYld!&&=Zz;mUnwd{v{@PLz1ajnZM<-!}^qbhR1E>OAlqu&`{1pKb)Tj z0w*F~1A#rtcQN+7%IaeLnp?HC z!jvck1udelcT(7-1NAgqgEm~vVH*d89lUm6}6fHv&uD#G@Qjy&%!Js>m zkYrR{U0J!!Bt>WOPvE6rv4jcvjv$hV3G30+*8;}^^KrZ3+3oBM5F-UsGc0xP;Qpo@ z-KdSKQbrc?ZhTUH#=^EhTR~Gg(V1#!Jzo7D8=VTCL3T=Ggn>$IMFtG?RZq}T&j(a_ z^i@xL(E#%?CiFT*4jnl=pS+LWGItv$HmGktdY^x+05E6IJ{b2pw*i;EQVD^Ufr*=p zil0+O6{9?DeNgL<9z;fZ=zoPP1-jA;m69esZa zuGk^r-v2I?o$M<9GzwbeV{BC9#S!IDuUU%qDtbm)D$PW)D?K;hKwVQ;-Ttu2SEFRH zNjdP2&|zNTvZyXZWC>@;lCfs`XeY&ir)Lo!nYLI}D#gnLHQX-C;sJ|(p@d4ZoHt6P zK!zNWt)?8d#47O;oJA44WR|IFYk_L(PF~5BJA~+5M0pBVr++L~uE;rQQ^`;_d8Ywh zWU+L39uuaCbC|H4i;1leOg7o;Hkq8n%zBd%R*BDwspQQvu{zuu?s>DzpjH9{O{~8OjxVy2v$Eq=l>B`ZC`W#G z7?>&GNMSO8U3@+aBAG(|hyalwzmAz)zdR|nCoZ9MFArNuu0moQSK{k2N}1&qN9a`B z?$+8>$Fb}gUGWftdo9PBw>v3GAx2niQ-%+x6j1%d;JoRWx!L#;H&8(S-sui*_-6+) zAB|TRix;+H_E&N;dxW@(m(IrQPZ%%M-XytI9WH2eIFI{AgC}v}v8?q7yB4h|i;KyG z%u5U*x^EZ4V)G>z{3v@(DGU+d2I_L1Ea2AaJ$nqSK(sw(z15X5aO&X$S zzWA4YZ^oq7mO4`&ofM1d+J~9&drs!UV=9UO#>b4>SIy{NoOn?y%GT(y+c^XXJ*$~C z`BDaHPN1X_#jq9TKo*k3EI%Qw4LFy zOHwd)*LZe~eYLGgZj_&;9Y#JSh9}5Oi?MkPR?a2ehLAmJTtwl$-LvI9TMhYOPOIfZ zo?Z}#Ak>W|urmjV&|X~m8%_CzI4p}L$(qxG}cg7Pa_ufv4Nv$rq4&hk`Mema zkJ+yjBK^F97f})H6R6w{JZpXA195V_puB@5%OWG$p9LnvcZ^yTv-f<6ZXuorT9(c1 zoqw!JgCqN8n)*zs70U>s3BFx~1QAY)#Xk~DDWnWnSl^NgwNXmbsfyQh-VexWD zC%u$v0P{*9LO(fx37^whI;*5py?Fmv-l0f|SjiEK+niE0rj}#L*jOMv1qVdrPV%fY z>cpN&u|zXtu=nHQM}k!k>n|0swmNX0G6v1kGA>hD$Qe zvLE*T2v?bc(1;{N_z{E?$U&revD6TQ!l!3XS~A9c*d$9-7OVY1aS##Ok6r>+%THMX z{kp?uQNAmj$`cNwjH0e8{x~3IOtl{~TxN2o+*M(mT^VG=aaoyfh+cY~EAu)>xjXI#)bVV}voL=S$8ggMzMx@E9kVHh*= zmI-#VSRg@`C9{-`T91HBdH{$K2#anxZogROOEtRfP4#1JN3~OvN%+#tS zX-?2Z>2C-3`e#a=a$PG=M7{2E=?jnDRI+LVwPu17*J(Mq8f)OJo7{+B$=LZ8G}j5R z%$C+g69~rkRqOE9Qj5&UhypOP_s zi=l_F*YYw3eamaF?v!0w0GcaZz`UyXl-vETE4^T;d?A4cQzCVjG_<&hGy$|H>K)5%-D%C z?Lc)5EM`yfhEbe0vq*&_bn8;~Z2DOyr2&*q=WNX`z2T!5aMdSh3?X(DS-)P^it?w3 z#b3=sSQ;t+0`JT@6uC;|^R|~)))MQ-ml7N=t7xIPwuBd3O2IHo*H*>b;&sq9mt?JG z-TQtSABN4!Mh@3ROqg{{ zA;=&Ke}mVqw3YR5nzb-R{-&7%r{!a+SVjJcEiW1?3}AG;F_xdP7QJ-$$^4}|1g6B6 z7gafHx32$AVPb& zL5OCw8`qQ`>vqQ%fAT+1ef5K%`C9gN$lELY zJHG$jFTMT#r{4bEJKlcJn@q&?J%a6~kb}>Jq@X}<}+DI^uYI3m}ySY+@QQHWe`QO=bCXBSlN1&FJ-0kJ=z)Q;slmbh`zr$@{rv+6 z`WE#Q^m^~)!aTn_pR6zS9<3}+_s&;utM`s>?cX|JR1PgH)me;q3tWx4aXa@?K5O^{ z`6uFdWp#34s=DLo0e-)}XJO%{!%)A`e)GPwR$Hj;IaE!nw^b*P){#kL%JlHjrFwd( za;%zGQvZwi^w#P6A+C_u^i*1zoLo3MUr(o}wl-vPHQd99``i0ulLEtv68uLBQwT6{q;AT1gdp?)1y8a8!siwG_j!sVUTmCmlP}My( zG*_MS7dP^^0BX>`x_bP&h59a-oZ7piI=67^O-J`Hp#!+7?m1MeE*)B!n_{H>tlwM2 z-ktMP3%4HTPYEEVYZh*O17d5?;3)c){d3i877iZ7kgl9w(v?knBchl-T=isjPEIXV zZbaxXa@;rFR2v)_8QAvbYHj*J-t?Bq!#hpt(+l&y6D>DY=coL|&GWPK3%AanXHRkj znSb@R%HhR1?7Ui=9PIC#o8E7>&=m!4EAnaOQ{a<(LCTtH$J1LYOKJ7+V*R+=LqEwG z&CE@u^9%KKv9_>St<4=zr_5Z^b4I#4{a-`>2K}#dF1-Yw{o@UiZ>3V3JTyAoi+yr6RjJ)NJuhALX@rhKC!MRYRskQd zv4u(BT)B1cvFaphovbWYCa3GiQ(4pjOxd}Y6#|pTi8yda;HeaPegBepGcMuG|FMhI zE-Q5`IbArAru&Zr!07=)S$O*+czp@SlN=?}D>*K3{1^h)btOHpP&-_y*Kw*8z?%kD zWZQB?Pt^Z~4ltuK?_uMYw9EsCg|L^l1nw|=P9fuz<7UgdWG&8pf_pk^99P?t>~*m+ zKRr1s&g<#+H3s}CAxvW0FKAlYp4P$Nx$1m6y@cerrEA}jmcN013Z1YuaI$#?rxa|| zzi!%K$=VxsD*x!>BYCI%+p?yoXH7prrGK!0sDHSBq<^%3tbe?J+d%)oz`)?Z(7^D( z$iV2p*ueO}w!!|vfx*GSp~2z7k-^cyvBB}dZA1M-14DyDLqo$uBSWJ@V?*OZ+lKpx z2ZjfShlYoTM}|j-$A-s;w~h3V42%qp42=wrjEszqjE#(sY#Z$#9T*)P9U2`T9T^=R z9UC1V-8R-gHZV3gHZ(RoHZnFkHa0dswr#wBd|-TVd}w@ld}Mrdd~AGteA_ly+{X0V zAia%Y+h_u;4^{!DN(~E93{4xd^mj0$bZKsSvMTW+(u2e+%fn zXqR6%?t2n`0-J0}+B4lS$S&NyjJcRG|AM1z_#f3ECl_i}g9PKOZ@ONs3G5$dZo+-(FX3q3ug>i{(eC~9W{#Ia??i6fzofO* zYkig{Xld>Nc&Nd{^?U~T{PK8M1c<7&dAQiLCUAA;ehhaTtP9zwO(P&fiLI)U$bC3N%;Jeb+6_SNHjhcTICW^WcdP z<$M|cLvwHb4wBg`E;v13?OT}NYhkf(zvZA(@JgQF-NL-e=T=_}zZ%!S#<^l|x$s3fuPxcON9o@Rk s#A?^(Chkw!kIb?@QUa6H%Qz~Z7B)$ax;}v&f0563`1}t(t;OK~0>#KB#Q*>R diff --git a/.api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json b/.api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json deleted file mode 100644 index 8bba35bb..00000000 --- a/.api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json +++ /dev/null @@ -1,881 +0,0 @@ -{ - "source": { - "hash": "0x3f4668bee7d86719c3219962213b5d5bcb70a6e8611f166e1dae06019dd481d2", - "language": "ink! 5.0.0-rc.1", - "compiler": "rustc 1.75.0", - "build_info": { - "build_mode": "Debug", - "cargo_contract_version": "4.0.0-rc.2", - "rust_toolchain": "stable-aarch64-apple-darwin", - "wasm_opt_settings": { - "keep_debug_symbols": false, - "optimization_passes": "Z" - } - } - }, - "contract": { - "name": "erc20", - "version": "5.0.0-rc.1", - "authors": ["Parity Technologies "] - }, - "image": null, - "spec": { - "constructors": [ - { - "args": [ - { - "label": "total_supply", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": ["Creates a new ERC-20 contract with the specified initial supply."], - "label": "new", - "payable": false, - "returnType": { - "displayName": ["ink_primitives", "ConstructorResult"], - "type": 14 - }, - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "environment": { - "accountId": { - "displayName": ["AccountId"], - "type": 2 - }, - "balance": { - "displayName": ["Balance"], - "type": 0 - }, - "blockNumber": { - "displayName": ["BlockNumber"], - "type": 23 - }, - "chainExtension": { - "displayName": ["ChainExtension"], - "type": 24 - }, - "hash": { - "displayName": ["Hash"], - "type": 21 - }, - "maxEventTopics": 4, - "staticBufferSize": 16384, - "timestamp": { - "displayName": ["Timestamp"], - "type": 22 - } - }, - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "from", - "type": { - "displayName": ["Option"], - "type": 20 - } - }, - { - "docs": [], - "indexed": true, - "label": "to", - "type": { - "displayName": ["Option"], - "type": 20 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": ["Event emitted when a token transfer occurs."], - "label": "Transfer", - "module_path": "erc20::erc20", - "signature_topic": null - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "docs": [], - "indexed": true, - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "docs": [ - "Event emitted when an approval occurs that `spender` is allowed to withdraw", - "up to the amount of `value` tokens from `owner`." - ], - "label": "Approval", - "module_path": "erc20::erc20", - "signature_topic": "0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d" - } - ], - "lang_error": { - "displayName": ["ink", "LangError"], - "type": 15 - }, - "messages": [ - { - "args": [], - "default": false, - "docs": [" Returns the total token supply."], - "label": "total_supply", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 16 - }, - "selector": "0xdb6375a8" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - } - ], - "default": false, - "docs": [ - " Returns the account balance for the specified `owner`.", - "", - " Returns `0` if the account is non-existent." - ], - "label": "balance_of", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 16 - }, - "selector": "0x0f755a56" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - } - ], - "default": false, - "docs": [ - " Returns the amount which `spender` is still allowed to withdraw from `owner`.", - "", - " Returns `0` if no allowance has been set." - ], - "label": "allowance", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 16 - }, - "selector": "0x6a00165e" - }, - { - "args": [ - { - "label": "to", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Transfers `value` amount of tokens from the caller's account to account `to`.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the caller's account balance." - ], - "label": "transfer", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 17 - }, - "selector": "0x84a15da1" - }, - { - "args": [ - { - "label": "spender", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Allows `spender` to withdraw from the caller's account multiple times, up to", - " the `value` amount.", - "", - " If this function is called again it overwrites the current allowance with", - " `value`.", - "", - " An `Approval` event is emitted." - ], - "label": "approve", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 17 - }, - "selector": "0x681266a0" - }, - { - "args": [ - { - "label": "from", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "to", - "type": { - "displayName": ["AccountId"], - "type": 2 - } - }, - { - "label": "value", - "type": { - "displayName": ["Balance"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Transfers `value` tokens on the behalf of `from` to the account `to`.", - "", - " This can be used to allow a contract to transfer tokens on ones behalf and/or", - " to charge fees in sub-currencies, for example.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " for the caller to withdraw from `from`.", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the account balance of `from`." - ], - "label": "transfer_from", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 17 - }, - "selector": "0x0b396f18" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 0 - } - }, - "name": "total_supply" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0xe7dc2326", - "ty": 0 - } - }, - "root_key": "0xe7dc2326", - "ty": 1 - } - }, - "name": "balances" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0xb721a0ec", - "ty": 0 - } - }, - "root_key": "0xb721a0ec", - "ty": 9 - } - }, - "name": "allowances" - } - ], - "name": "Erc20" - } - }, - "root_key": "0x00000000", - "ty": 13 - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 1, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "K", - "type": 2 - }, - { - "name": "V", - "type": 0 - }, - { - "name": "KeyType", - "type": 5 - } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 2, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 3, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { - "id": 3, - "type": { - "def": { - "array": { - "len": 32, - "type": 4 - } - } - } - }, - { - "id": 4, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 5, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "L", - "type": 6 - }, - { - "name": "R", - "type": 7 - } - ], - "path": ["ink_storage_traits", "impls", "ResolverKey"] - } - }, - { - "id": 6, - "type": { - "def": { - "composite": {} - }, - "path": ["ink_storage_traits", "impls", "AutoKey"] - } - }, - { - "id": 7, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "ParentKey", - "type": 8 - } - ], - "path": ["ink_storage_traits", "impls", "ManualKey"] - } - }, - { - "id": 8, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 9, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "K", - "type": 10 - }, - { - "name": "V", - "type": 0 - }, - { - "name": "KeyType", - "type": 11 - } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 10, - "type": { - "def": { - "tuple": [2, 2] - } - } - }, - { - "id": 11, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "L", - "type": 6 - }, - { - "name": "R", - "type": 12 - } - ], - "path": ["ink_storage_traits", "impls", "ResolverKey"] - } - }, - { - "id": 12, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "ParentKey", - "type": 8 - } - ], - "path": ["ink_storage_traits", "impls", "ManualKey"] - } - }, - { - "id": 13, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "total_supply", - "type": 0, - "typeName": ",>>::Type" - }, - { - "name": "balances", - "type": 1, - "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type" - }, - { - "name": "allowances", - "type": 9, - "typeName": " as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type" - } - ] - } - }, - "path": ["erc20", "erc20", "Erc20"] - } - }, - { - "id": 14, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 15 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 8 - }, - { - "name": "E", - "type": 15 - } - ], - "path": ["Result"] - } - }, - { - "id": 15, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 1, - "name": "CouldNotReadInput" - } - ] - } - }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 16, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 0 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 15 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "E", - "type": 15 - } - ], - "path": ["Result"] - } - }, - { - "id": 17, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 18 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 15 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 18 - }, - { - "name": "E", - "type": 15 - } - ], - "path": ["Result"] - } - }, - { - "id": 18, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 19 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 8 - }, - { - "name": "E", - "type": 19 - } - ], - "path": ["Result"] - } - }, - { - "id": 19, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "InsufficientBalance" - }, - { - "index": 1, - "name": "InsufficientAllowance" - } - ] - } - }, - "path": ["erc20", "erc20", "Error"] - } - }, - { - "id": 20, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 2 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 2 - } - ], - "path": ["Option"] - } - }, - { - "id": 21, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 3, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "Hash"] - } - }, - { - "id": 22, - "type": { - "def": { - "primitive": "u64" - } - } - }, - { - "id": 23, - "type": { - "def": { - "primitive": "u32" - } - } - }, - { - "id": 24, - "type": { - "def": { - "variant": {} - }, - "path": ["ink_env", "types", "NoChainExtension"] - } - } - ], - "version": 5 -} diff --git a/.api-contract/src/test/contracts/ink/v5/flipper.contract.json b/.api-contract/src/test/contracts/ink/v5/flipper.contract.json deleted file mode 100644 index 2855f338..00000000 --- a/.api-contract/src/test/contracts/ink/v5/flipper.contract.json +++ /dev/null @@ -1,177 +0,0 @@ -{ - "source": { - "hash": "0xaf1c6d2ea289d7d4f8753db2d658782f4d066544f3ee34b3d54272075ad0de99", - "language": "ink! 5.0.0-rc.1", - "compiler": "rustc 1.75.0", - "wasm": "0x0061736d0100000001400b60037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060047f7f7f7f017f60017f0060017f017f60000060047f7f7f7f0060057f7f7f7f7f006000017f028a0107057365616c310b6765745f73746f726167650004057365616c3005696e7075740002057365616c320b7365745f73746f726167650004057365616c300d64656275675f6d6573736167650001057365616c300b7365616c5f72657475726e0003057365616c301176616c75655f7472616e73666572726564000203656e76066d656d6f7279020102100334330000000002030a060301020600070205030202070507030802020601000500010101010502010109040804030902010103010204050170010e0e0616037f01418080040b7f00419093050b7f00418693050b0711020463616c6c0019066465706c6f79001b0913010041010b0d0f34263728352327232425212a0afc3b332b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b6f01017f0240200020014d04402000210303402002450d02200320012d00003a0000200141016a2101200341016a2103200241016b21020c000b000b200141016b2101200041016b210303402002450d01200220036a200120026a2d00003a0000200241016b21020c000b000b20000b2501017f037f2002200346047f200005200020036a20013a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b2601017f230041106b22022400200220003a000f20012002410f6a4101100b200241106a24000bd30101057f20002802042105200028020021062000280208220420026a220320044f220741f0900410380240200320044f0440200320054b0d01200420066a200320046b20012002419091041032200741a091041038200020033602080f0b230041306b220024002000200336020420002004360200200041146a42023702002000412c6a41033602002000410236020c200041b48b04360208200041033602242000200041206a3602102000200041046a36022820002000360220200041086a418091041010000b2003200541809104100e000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10052000290308210120002903002102200041206a2400410541042001200284501b0b1b002000418180014f044020004180800141f08104100e000b20000b6b01017f230041306b220324002003200136020420032000360200200341146a42023702002003412c6a41033602002003410236020c200341808b04360208200341033602242003200341206a3602102003200341046a36022820032003360220200341086a20021010000b840101017f230041306b22022400200241146a42013702002002410136020c200241a48e0436020820024102360224200220002d0000410274220041cc92046a28020036022c2002200041e092046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10222100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241908804360210200241a48f0436020c2002410c6a1029000b4701027f230041106b22012400200141003a000f20002001410f6a41011012220045044020012d000f21020b200141106a240041024101410220024101461b410020021b20001b0b3d01027f2000280204220320024922044504402001200220002802002201200241bc920410322000200320026b3602042000200120026a3602000b20040b3c01027f230041106b22002400200042808001370208200041869304360204200041046a2201410010182001410010184100200028020c100d1017000b4401027f230041106b22022400200242808001370208200241869304360204200241046a22032001047f20034101101841010541000b10182000200228020c100d1017000bb20102057f017e230041306b220124002001410036021c20014280800137022820014186930436022420014100360220200141246a2202200141206a4104100b20012001290224370214200141086a200141146a2203200128022c1016200128020c210420012802082105200129021421062001410036022c2001200637022420002002100a2001200129022437021420012003200128022c1016200520042001280200200128020410021a200141306a24000b4501017f2002200128020422034b044041a48f04412341c091041031000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b0d0020004186930420011004000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41033602002000410236020c200041e08804360208200041033602242000200041206a360210200020003602282000200041046a360220200041086a41b091041010000b880501077f230041306b22002400024002400240024002400240100c41ff0171410546044020004180800136021441869304200041146a2202100120002802142201418180014f0d0120002001360218200041869304360214200041003602082002200041086a410410120d0520002d000b210120002d000a210220002d00092103024020002d00082204412f470440200441e300470d07410121042003413a47200241a5014772200141d1004772450d010c070b41002104200341860147200241db004772200141d90147720d060b200041003602102000428080013702182000418693043602142000410036022c200041146a22032000412c6a4104100b200020002902143702082000200041086a200028021c10162000280204210520002802002106200028020821012000200028020c2202360214200620052001200310002105200220002802142203490d0202400240024020050e0400060601060b2000200336021820002001360214200041146a1011220141ff017141024704402000280218450d020b200041206a420037020020004101360218200041bc83043602140c080b200041206a4200370200200041013602182000418c83043602140c070b20040d04230041106b22002400200042808001370208200041869304360204200041046a22024100101820012002100a4100200028020c100d1017000b200041043a0014200041146a101a000b20014180800141f48004100e000b2003200241f48004100e000b200041206a4200370200200041013602182000419c8204360214200041a48f0436021c200041146a41a482041010000b200141ff0171451015410041001014000b410141011014000b200041a48f0436021c200041146a41e482041010000b4801017f230041206b220124002001410c6a420137020020014101360204200141a48e043602002001410136021c200120003602182001200141186a360208200141e482041010000b820201057f230041106b2200240002400240100c220141ff0171410546044020004180800136020441869304200041046a2202100120002802042201418180014f0d01200020013602082000418693043602042000410036020c024020022000410c6a410410120d0020002d000f210120002d000e210320002d000d210420002d000c220041e1004704402000419b0147200441ae0147722003419d0147200141de004772720d0120021011220041ff01714102460d01200010151013000b200441ef0147200341fe0047720d002001413e460d030b410141011014000b200020013a0004200041046a101a000b20014180800141f48004100e000b410010151013000b6001027f230041106b2203240020022000280204200028020822046b4b0440200341086a200020042002101d2003280208200328020c101e200028020821040b200028020020046a2001200210061a2000200220046a360208200341106a24000ba80301057f230041206b22042400027f4100200220036a22032002490d001a4108200128020422024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003101f20022802082105200228020c0c020b200528020021080240200310202205450440410021050c010b20052008200710061a0b20030c010b20022003101f2002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000bd10100024020004181808080784704402000450d01230041306b220024002000200136020c2000411c6a420137020020004102360214200041a486043602102000410336022c2000200041286a36021820002000410c6a360228230041206b22012400200141003b011c200141b486043602182001200041106a360214200141908804360210200141a48f0436020c2001410c6a1029000b0f0b230041206b22002400200041146a42003702002000410136020c200041f88404360208200041a48f04360210200041086a418085041010000b2001017f41f492042d00001a20011020210220002001360204200020023602000bb70101027f027f41f892042d0000044041fc92042802000c010b3f00210141fc92044190930536020041f8920441013a0000418093042001411074360200419093050b21010240027f4100200020016a22022001490d001a418093042802002002490440200041ffff036a220241107640002201417f460d022001411074220120024180807c716a22022001490d024180930420023602004100200020016a22022001490d011a0b41fc9204200236020020010b0f0b41000b0c00200041dc8304200110220bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110100450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10362003200329031037021c200341086a20062001103620032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110100450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0300010b0c00200020012002101c41000bb90201037f230041106b22022400024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a200020034101101d2004280208200428020c101e200441106a2400200028020821030b2000200341016a360208200028020020036a20013a00000c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b101c0b200241106a240041000bdb05020b7f027e230041406a220324004127210202402000350200220d4290ce00540440200d210e0c010b0340200341196a20026a220041046b200d4290ce0080220e42f0b1037e200d7ca7220441ffff037141e4006e2206410174418489046a2f00003b0000200041026b2006419c7f6c20046a41ffff0371410174418489046a2f00003b0000200241046b2102200d42ffc1d72f562100200e210d20000d000b0b200ea7220041e3004b0440200241026b2202200341196a6a200ea7220441ffff037141e4006e2200419c7f6c20046a41ffff0371410174418489046a2f00003b00000b02402000410a4f0440200241026b2202200341196a6a2000410174418489046a2f00003b00000c010b200241016b2202200341196a6a200041306a3a00000b200128021c22054101712207412720026b22066a2100410021042005410471044041a48f04210441a48f0441a48f04102b20006a21000b412b418080c40020071b2107200341196a20026a21080240200128020045044041012102200128021422002001280218220120072004102e0d01200020082006200128020c11000021020c010b2000200128020422094f044041012102200128021422002001280218220120072004102e0d01200020082006200128020c11000021020c010b200541087104402001280210210b2001413036021020012d0020210c41012102200141013a0020200128021422052001280218220a20072004102e0d01200341106a2001200920006b4101102f20032802102200418080c400460d0120032802142104200520082006200a28020c1100000d01200020042005200a10300d012001200c3a00202001200b360210410021020c010b41012102200341086a2001200920006b4101102f20032802082205418080c400460d00200328020c2109200128021422002001280218220120072004102e0d00200020082006200128020c1100000d002005200920002001103021020b200341406b240020020b1b00200128021441d483044105200141186a28020028020c1100000b0e0020002802001a03400c000b000baf0201017f230041406a220124002001200036020c2001411c6a420137020020014102360214200141f48f043602102001410436022c2001200141286a36021820012001410c6a3602282001410036023820014201370230200141306a200141106a102145044020012802302100200128023821010240418493042d0000450440418593042d00004101710d010b20002001100341094704404184930441013a00000b4185930441013a00000b000b230041406a220024002000413336020c200041c48604360208200041c4830436021420002001413f6a360210200041246a42023702002000413c6a41063602002000410236021c200041f48804360218200041023602342000200041306a3602202000200041106a3602382000200041086a360230200041186a41e487041010000b210020004283ddaa8bf8ede3ea20370308200042ec80a48aff99c486ab7f3703000ba10301067f230041106b220224000240200120006b220141104f04402000200041036a417c71220520006b2200102c2005200120006b2200417c716a2000410371102c6a21042000410276210303402003450d0220022005200341c0012003200341c0014f1b41b88c04102d200228020c21032002280208210520022002280200200228020422002000417c7141948e04102d024020022802042200450440410021010c010b2002280200220620004102746a21074100210103404100210003402001200020066a2802002201417f734107762001410676724181828408716a2101200041046a22004110470d000b200641106a22062007470d000b0b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a2104200228020c2201450d000b2002280208210020014102742103410021010340200120002802002201417f734107762001410676724181828408716a2101200041046a2100200341046b22030d000b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a21040c010b20002001102c21040b200241106a240020040b2c01017f200104400340200220002c000041bf7f4a6a2102200041016a2100200141016b22010d000b0b20020b3d002002200349044041a48f04412320041031000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101101000d011a0b20030d0141000b0f0b200020034100200128020c1100000b9c0101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b20024101762104200241016a41017621020b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110100450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110100450d000b200441016b0b2001490b4601017f230041206b220324002003410c6a420037020020034101360204200341a48f043602082003200136021c200320003602182003200341186a360200200320021010000b7b002001200346044020002002200110061a0f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41033602002000410336020c200041888d04360208200041033602242000200041206a360210200020003602282000200041046a360220200041086a20041010000bf60101067f2000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722104200341f00149044020042006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200441067472722203418080c400460d011a0b200120012802082207200520026b6a36020820030b360204200020073602000bb90301067f230041306b22022400200028020421042000280200210302400240200128020022062001280208220072044002402000450d002001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1033200228021c418080c400470d010c020b0b200241106a200241246a10332002280214418080c400460d000240024020022802102205450d00200420054d04404100210020042005460d010c020b41002100200320056a2c00004140480d010b200321000b2005200420001b21042000200320001b21030b2006450440200128021420032004200141186a28020028020c11000021000c030b200128020422002003200320046a102b22054d0d01200241086a2001200020056b4100102f4101210020022802082205418080c400460d02200228020c21062001280214220720032004200141186a280200220128020c1100000d022005200620072001103021000c020b200128021420032004200141186a28020028020c11000021000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044105470d0120012802000b2802002104410121030b20002004360204200020033602000bea0201067f230041406a22022400200028020021054101210002402001280214220441a08804410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4103360200200241346a410336020020024103360214200241f8870436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a220736021820042006200241106a10220d00200528020822030440200441ac8804410220011100000d01200241386a200341106a290200370300200241306a200341086a29020037030020022003290200370328200420062007102221000c010b200220052802002203200528020428020c11020041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441ac8804410220011100000d00200420032802002003280204200111000021000b200241406b240020000b1300200045044041c78f04412b20011031000b0b0bfc120100418080040bf3122f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f70616c6c65742d636f6e7472616374732d756170692d6e6578742d362e302e312f7372632f686f73742e7273000000000100720000002d000000170000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e72730000840001006a0000001a01000032000000656e636f756e746572656420756e6578706563746564206572726f72000101001c000000840001006a000000e3000000170000002f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f666c69707065722f6c69622e72733401010030000000060000000500000073746f7261676520656e7472792077617320656d707479007401010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279009401010027000000070000000000000001000000080000004572726f72000000090000000c000000040000000a0000000b0000000c0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700006502010011000000f40101007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000000ff02010015000000140301000d000000900201006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273770301006d0000006402000020000000293a0000a407010000000000f503010001000000f5030100010000000700000000000000010000000d00000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e646578206973202e040100200000004e040100120000003a200000a40701000000000070040100020000003030303130323033303430353036303730383039313031313132313331343135313631373138313932303231323232333234323532363237323832393330333133323333333433353336333733383339343034313432343334343435343634373438343935303531353235333534353535363537353835393630363136323633363436353636363736383639373037313732373337343735373637373738373938303831383238333834383538363837383838393930393139323933393439353936393739383939206f7574206f662072616e676520666f7220736c696365206f66206c656e6774682072616e676520656e6420696e6465782000006e050100100000004c05010022000000736c69636520696e64657820737461727473206174202062757420656e647320617420009005010016000000a60501000d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e727300c405010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e677468202848060100150000005d0601002b000000f4030100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000a0060100720000004f00000032000000a407010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d657373616765617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e282963616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75650a00a407010000000000f2070100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e727300040801006b0000005c0000003b000000040801006b0000005c00000014000000040801006b0000005d0000000e000000040801006b0000005e00000034000000040801006b0000006800000009000000040801006b00000090000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e727300d00801006b000000770000000e000000190000001c0000001600000014000000190000002c0701004507010061070100770701008b0701", - "build_info": { - "build_mode": "Debug", - "cargo_contract_version": "4.0.0-rc.2", - "rust_toolchain": "stable-aarch64-apple-darwin", - "wasm_opt_settings": { "keep_debug_symbols": false, "optimization_passes": "Z" } - } - }, - "contract": { - "name": "flipper", - "version": "5.0.0-rc.1", - "authors": ["Parity Technologies "] - }, - "image": null, - "spec": { - "constructors": [ - { - "args": [{ "label": "init_value", "type": { "displayName": ["bool"], "type": 0 } }], - "default": false, - "docs": ["Creates a new flipper smart contract initialized with the given value."], - "label": "new", - "payable": false, - "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 2 }, - "selector": "0x9bae9d5e" - }, - { - "args": [], - "default": false, - "docs": ["Creates a new flipper smart contract initialized to `false`."], - "label": "new_default", - "payable": false, - "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 2 }, - "selector": "0x61ef7e3e" - } - ], - "docs": [], - "environment": { - "accountId": { "displayName": ["AccountId"], "type": 6 }, - "balance": { "displayName": ["Balance"], "type": 9 }, - "blockNumber": { "displayName": ["BlockNumber"], "type": 12 }, - "chainExtension": { "displayName": ["ChainExtension"], "type": 13 }, - "hash": { "displayName": ["Hash"], "type": 10 }, - "maxEventTopics": 4, - "staticBufferSize": 16384, - "timestamp": { "displayName": ["Timestamp"], "type": 11 } - }, - "events": [], - "lang_error": { "displayName": ["ink", "LangError"], "type": 4 }, - "messages": [ - { - "args": [], - "default": false, - "docs": [" Flips the current value of the Flipper's boolean."], - "label": "flip", - "mutates": true, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 2 }, - "selector": "0x633aa551" - }, - { - "args": [], - "default": false, - "docs": [" Returns the current value of the Flipper's boolean."], - "label": "get", - "mutates": false, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 5 }, - "selector": "0x2f865bd9" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [{ "layout": { "leaf": { "key": "0x00000000", "ty": 0 } }, "name": "value" }], - "name": "Flipper" - } - }, - "root_key": "0x00000000", - "ty": 1 - } - }, - "types": [ - { "id": 0, "type": { "def": { "primitive": "bool" } } }, - { - "id": 1, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 0, - "typeName": ",>>::Type" - } - ] - } - }, - "path": ["flipper", "flipper", "Flipper"] - } - }, - { - "id": 2, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 3 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 4 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 3 }, - { "name": "E", "type": 4 } - ], - "path": ["Result"] - } - }, - { "id": 3, "type": { "def": { "tuple": [] } } }, - { - "id": 4, - "type": { - "def": { "variant": { "variants": [{ "index": 1, "name": "CouldNotReadInput" }] } }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 5, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 0 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 4 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 0 }, - { "name": "E", "type": 4 } - ], - "path": ["Result"] - } - }, - { - "id": 6, - "type": { - "def": { "composite": { "fields": [{ "type": 7, "typeName": "[u8; 32]" }] } }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { "id": 7, "type": { "def": { "array": { "len": 32, "type": 8 } } } }, - { "id": 8, "type": { "def": { "primitive": "u8" } } }, - { "id": 9, "type": { "def": { "primitive": "u128" } } }, - { - "id": 10, - "type": { - "def": { "composite": { "fields": [{ "type": 7, "typeName": "[u8; 32]" }] } }, - "path": ["ink_primitives", "types", "Hash"] - } - }, - { "id": 11, "type": { "def": { "primitive": "u64" } } }, - { "id": 12, "type": { "def": { "primitive": "u32" } } }, - { - "id": 13, - "type": { "def": { "variant": {} }, "path": ["ink_env", "types", "NoChainExtension"] } - } - ], - "version": 5 -} diff --git a/.api-contract/src/test/contracts/ink/v5/flipper.json b/.api-contract/src/test/contracts/ink/v5/flipper.json deleted file mode 100644 index 291e9a93..00000000 --- a/.api-contract/src/test/contracts/ink/v5/flipper.json +++ /dev/null @@ -1,358 +0,0 @@ -{ - "source": { - "hash": "0xaf1c6d2ea289d7d4f8753db2d658782f4d066544f3ee34b3d54272075ad0de99", - "language": "ink! 5.0.0-rc.1", - "compiler": "rustc 1.75.0", - "build_info": { - "build_mode": "Debug", - "cargo_contract_version": "4.0.0-rc.2", - "rust_toolchain": "stable-aarch64-apple-darwin", - "wasm_opt_settings": { - "keep_debug_symbols": false, - "optimization_passes": "Z" - } - } - }, - "contract": { - "name": "flipper", - "version": "5.0.0-rc.1", - "authors": ["Parity Technologies "] - }, - "image": null, - "spec": { - "constructors": [ - { - "args": [ - { - "label": "init_value", - "type": { - "displayName": ["bool"], - "type": 0 - } - } - ], - "default": false, - "docs": ["Creates a new flipper smart contract initialized with the given value."], - "label": "new", - "payable": false, - "returnType": { - "displayName": ["ink_primitives", "ConstructorResult"], - "type": 2 - }, - "selector": "0x9bae9d5e" - }, - { - "args": [], - "default": false, - "docs": ["Creates a new flipper smart contract initialized to `false`."], - "label": "new_default", - "payable": false, - "returnType": { - "displayName": ["ink_primitives", "ConstructorResult"], - "type": 2 - }, - "selector": "0x61ef7e3e" - } - ], - "docs": [], - "environment": { - "accountId": { - "displayName": ["AccountId"], - "type": 6 - }, - "balance": { - "displayName": ["Balance"], - "type": 9 - }, - "blockNumber": { - "displayName": ["BlockNumber"], - "type": 12 - }, - "chainExtension": { - "displayName": ["ChainExtension"], - "type": 13 - }, - "hash": { - "displayName": ["Hash"], - "type": 10 - }, - "maxEventTopics": 4, - "staticBufferSize": 16384, - "timestamp": { - "displayName": ["Timestamp"], - "type": 11 - } - }, - "events": [], - "lang_error": { - "displayName": ["ink", "LangError"], - "type": 4 - }, - "messages": [ - { - "args": [], - "default": false, - "docs": [" Flips the current value of the Flipper's boolean."], - "label": "flip", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 2 - }, - "selector": "0x633aa551" - }, - { - "args": [], - "default": false, - "docs": [" Returns the current value of the Flipper's boolean."], - "label": "get", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 5 - }, - "selector": "0x2f865bd9" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 0 - } - }, - "name": "value" - } - ], - "name": "Flipper" - } - }, - "root_key": "0x00000000", - "ty": 1 - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "bool" - } - } - }, - { - "id": 1, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 0, - "typeName": ",>>::Type" - } - ] - } - }, - "path": ["flipper", "flipper", "Flipper"] - } - }, - { - "id": 2, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 3 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 4 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 3 - }, - { - "name": "E", - "type": 4 - } - ], - "path": ["Result"] - } - }, - { - "id": 3, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 4, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 1, - "name": "CouldNotReadInput" - } - ] - } - }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 5, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 0 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 4 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "E", - "type": 4 - } - ], - "path": ["Result"] - } - }, - { - "id": 6, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 7, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { - "id": 7, - "type": { - "def": { - "array": { - "len": 32, - "type": 8 - } - } - } - }, - { - "id": 8, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 9, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 10, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 7, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "Hash"] - } - }, - { - "id": 11, - "type": { - "def": { - "primitive": "u64" - } - } - }, - { - "id": 12, - "type": { - "def": { - "primitive": "u32" - } - } - }, - { - "id": 13, - "type": { - "def": { - "variant": {} - }, - "path": ["ink_env", "types", "NoChainExtension"] - } - } - ], - "version": 5 -} diff --git a/.api-contract/src/test/contracts/ink/v5/flipper.wasm b/.api-contract/src/test/contracts/ink/v5/flipper.wasm deleted file mode 100644 index c359b6db59b8732092edc076026daf73f1e3bf77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10450 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 diff --git a/.api-contract/src/test/contracts/ink/v5/index.ts b/.api-contract/src/test/contracts/ink/v5/index.ts deleted file mode 100644 index 8e9497fa..00000000 --- a/.api-contract/src/test/contracts/ink/v5/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; -export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; -export { default as erc20AnonymousTransferMetadata } from './erc20_anonymous_transfer.json' assert { type: 'json' }; -export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; -export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/ink/v6/erc20.contract.json b/.api-contract/src/test/contracts/ink/v6/erc20.contract.json deleted file mode 100644 index 08d10043..00000000 --- a/.api-contract/src/test/contracts/ink/v6/erc20.contract.json +++ /dev/null @@ -1,491 +0,0 @@ -{ - "source": { - "hash": "0x15fa048bd28a4649ced787f88707e271f48ff04a966f525b28877c08c60ea014", - "language": "ink! 6.0.0-alpha", - "compiler": "rustc 1.86.0", - "contract_binary": "0x50564d0000e52400000000000001078098d01440a000028098c8000000f2000000e8000000ec000000ca000000f6000000b721a0ec63616c6ce7dc2326011ecb48b1e08876a3b5a17f9ce1350cbc5e4f264b3162dbc757be9de4b15f1e8301e4c2a1aef088c9f187a0e3f8016deaf4bdeb7954fb410c32bf8a6a033ecc3b5b00000d0000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b00000004808308000000000e00000014000000210000002c0000003b000000460000005100000063616c6c5f646174615f636f707963616c6c65726465706f7369745f6576656e746765745f73746f72616765686173685f626c616b65325f3235367365616c5f72657475726e7365745f73746f7261676576616c75655f7472616e736665727265640511028da40463616c6c975d066465706c6f7906a397809b029e8ad000f50006014e0173018401cb01e20119021e0232024b02800285029802b10221032d0365038b0319042c0464049304d60403050d053b05810592059c05ac05b605e805f205220653065e066906bd066007690777072f085c081b093909620987099809e909fd09160a2e0a880adc0afc0a470b650b9a0bf60b160c4c0c980ca30cb90cc60cd20c470d590d6d0d8d0dbb0dde0d710e890e9b0eaa0ebb0ecc0ef70e0f0f210f300f410f520f840fa611f9110a121c122b123c124c12661276129012b812e61248136f138713f6130714181429144e145a14681493149f14d1140c151a1528153515611564157415d015dc150a1611162916bd16cb16e116fb160b1755177317b717d117e117ef17cc18e418ee18121949196b198d19a819121a221a2c1af31a1c1b3d1b561bd31bec1b8b1cb31c9f1d9511e87b10107b15087b16531910688d7a84a207c8270b648c6475aeb7107cca785a95550195cc01acb5f6c82804c929028423f8844807c83b0a51085c9748038480388446f882658d88848c38956808aeab1b8286d00505cfc609d459097bb995bb089588086465acabebc834088429072805647a01c8a909ae9a107c8b78ab95aa01958801ac9af6821010821508821695111832006448aeabd382897bb995bb08958808acabf628c39511c87b10307b15287b16207b1833081400137b180849111000404911189518085010025504821518821710ac5740821608c85608c957077b18087b171049111895180882175010047e1a821718821810ac781b821a08501206441d0a068210308215288216209511383200009511b07b10487b15407b16387b1933091800017b19087b17107b181833071400137b17204911280040491130951708951820501008a103821530821728ac5740821620c85608c957077b18207b1728491130951820821750100a001a821730821828ac781b821a2050120cc61c0a068210488215408216389511503200009511a07b10587b15507b16486478827708828610ac6755aa67528285c967077b1708c8650546059517103309017b18645850100e06017b15308217087b17384911409517109518305010103207821740c86707ac671682187b87108210588215508216489511603200009511a07b10587b15507b1648827908827610ac6954501212431c5010140b19821920821718ac97418218109517105010169f0082177b17308217087b1738491140951710951830501018c906821740c86707ac67147b57108210588215508216489511603200009511a07b10587b15507b1648827908827610ac695350121adc1b50101ca418821920821718ac974082181095171050101e3882177b17308217087b17384911409517109518305010206306821740c86707ac67147b57108210588215508216489511603200009511b07b10487b15406475491118491110491108490153192138491138491130491128491120979920989a20951920648764a80a04821720821828821930821a387b177b18087b19107b1a1828096417501022e4fc64183309206457501024d8fc82104882154095115032009511f07b10087b15828a086475330920330701ac9a1d828995aae09597207b877b8a0895570864985010265c193307017b57821008821595111032009511a07b10587b15507b164864866475951720501028b1821720510708330701283c8217407b1718821738821830821928826a087b17107b18087b19330701520a1d3307821818821910821a08821b7b58207b59187b5a107b5b08017b578210588215508216489511603200951170ff7b1088007b1580007b1678828908330a146476aca9a20082879599ec957a147b8a7b89087c79117c7a107c7b127c7c1350122a621a7a19487c79017c7a7c7b027c7c0350122c4f1a7c7a057c7b047c7c067c750797aa08d4ba0a97cc10975518d45c0cd4ca0a97aa20d4a9097b19387c79097c7a087c7b0a7c7c0b50122e171a7c7a0d7c7b0c7c7c0e7c770f97aa08d4ba0a97cc10977718d4c707d4a707977720d497077b1740951750501030aafe82175051070a3307017b67283b8217708218688219607b17307b18287b1920821758821838821940811a487b17187b187b19087a1a1095670864183309385010322ffb49060182108800821580008216789511900032009511e87b10107b15087b16647582776486330034817728041682570864685010361c16825710646882101082150882169511182807169511e87b10107b15087b16648564763300383307e7dc232628cc1564676458821010821508821695111828da15951170ff7b1088007b1580007b1678647595763533071400137b17604911680040491170330925000195174895186050103a2d047c572051071095582195174850103cd9fc280a95174850103efefb7c67510710955836951748501040bffc280a951748501042e4fb7b16308217508216587b1728ac67d7008218487b18387b15209557207b1718c868077b170898650595176064585010445a0295176064585010468c028215708218687b16108467e09a767b15409755057b18c88505018218385106249587207b17383309206457501048e3f98217409577017b174095662095552028db821728821810c987078218087b18607b176849117095186082171850104a8f0495186082173050104c840495186082172050104e0a15821770821868ac782a821960821840978820988820977720987a2082170a028210880082158000821678951190003200009511c87b10307b15287b1620330514001333071400130a076417641664585010500416330705019577ff51071082689566085108f53307042806330705018210308215288216209511383200958a20957918330ce00164c3510c1b829b82a7f895a2f89599f8953c08642aaa7bebd87b092805648201d382078e77db390784770132009511d8827848018279087b1808827810827a187b19109517087b18187b1a209511d8827818827910827a0882777b18207b19187b1a107b17084801641733005c28f00264576468501054bc0382103082152882162095113832007c67257c68247c69267c6a27977708d4870797991097aa18d4a909d497077a17407c671d7c681c7c691e7c6a1f977708d4870797991097aa18d4a909d497077c68217c69207c6a227c6b23978808d4980897aa1097bb18d4ba0ad4a808978820d487077b17387c67157c68147c69167c6a17977708d4870797991097aa18d4a909d497077c68197c69187c6a1a7c6b1b978808d4980897aa1097bb18d4ba0ad4a808978820d487077b173095193064579518085010589a0382105882155082164895116032009511e87b10107b15087b166486978805570812647551060e648750105af11152070800330701017b567b570849151082101082150882169511183200827910827ac99a0aac8a053200648b330a20649864b9281a119511f87b158293829b08829a108284828c08ae3417d8bc0585b2ffc8c202d3cb0b88bc01c85c0c2809c9bc02d8bc0c01828510829b18c9a509d8a50a510c0dd8c905c9c909c85a0a01828518c93408c9b50c510a11d8b50bd8ac05c9ac0cd45b0a2806d8b50a017b787b72087b79107b7c18520a0a8215951108320000330920647a648764a828b4110033005e9511f87b101f03140013010133081400133307013309020a0500009511c87b10307b15287b16207b1733071400137b170849111000404911189518083307501060a711821518821710ac5740821608c85608c957077b18087b17104911189518088217501062ec11821718821810ac781b821a08501264b2140a068210308215288216209511383200009511987b10607b15587b16506486647551096e7b1510826708826510ac5787008268c95707c858087b187b18187b17087b172049112895181864975010662bff821928821720ac975d821818951718501068d4f882177b17388217087b174049114895171895183850106afefe821748c85707ac57307b67108215102809646750106c6cf782671082680882697b57107b58087b598210608215588216509511683200009511d87b10207b1518817833091400137b19330500407b150851080f1f031400130101330902281f9577081e0314001349111001641850106eeb10821910835501ac590400330814001333070a0500848bff003309021e03140013ab9b0a330833090128091e031500130101330a140013c89a0a78a89598013300709511f87b1097882098892033081400130a0500009511e87b10107b15087b167c7964855109229576013308016457501072bc0f64676458821010821508821695111828191064573308821010821508821695111828960f9511a87b10507b15486489647533071400137b171049111800404911209518106497501074def9821820821918ac8976821710c8870ac989097b1a7b19086419501076a41097772098772051170d19330803ab875133074915184915104915084905283682178218087b17387b1840951710951838501078dff7821710520726821730821828821920821a187b57187b58107b59087b5a018210508215489511583200009511907b10687b1560647533071800017b177b18087b191033071400137b17284911300040491138641795182850107af9f8821838821930ac8979821728c8870ac989097b1a187b192095191850107cf30f97772098772051170d19330803ab87523307491518491510491508490528378217188218207b17507b185895172895185050107e2df7821728520726821748821840821938821a307b57187b58107b59087b5a01821068821560951170320000951148ff7b10b0007b15a8007b16a00064957b180864769517106468502080008efe95171064585020820049fa510708330728e900951750951810645950208400dffb9518507b16646750208600eaf39517308218085020880054fe8219308257821a38825808c87906c8a808d8a80bae960d958801888901c89b0b01821a40825910c8a909d8a90a821708510b0fc89b0bd89b09c89a0a64b901821c48825b18c8cb0bd8cb0c510a10520c8300c8ba0ad8ba0c64ab01520c767b16507b18587b19607b1b68951850647650208a0069f346117001951771330914821850208c00adf2462185000195178600330914646850208e0099f28257825808825910825a187b17507b18587b19607b1a6895175050209000c6f7330702018210b0008215a8008216a0009511b8003200009511d0fd951700027b70287b75207b761850209200e5f88477ff0052170575073306d43f33051400133308004033071400133309330094000a01646c955504380a1400137b1500029567287b17080297a93098993897a82898883898a71884aaff00330b0b3305140013aaba0a03511a0f1d0295ab98510b3595ab96510b380195ab7cff510baa0095aa25ff520aecfa95999d5209e5fa95888b5208defa957758ff5207d6fa3306280404521912cdfa95889a5208c5fa957760ff5207bdfa95177801951800025020960075f5821778015207a7fa95188001951736330938502098007df195168600330938646795183650209a006bf19517d600330938646850209c005cf1951718019518d00033092750209e004bf19518a700951778013309175020a0003af133060428810395995fff520946fa9588a352083ffa95775fff520737fa95177801951800025020a200eff482177801520721fa951880019517363309385020a400f7f09516860033093864679518365020a600e5f09517d60033093864685020a800d6f0951718019518d0003309275020aa00c5f09518a700951778013309175020ac00b4f033060328fb025209c4f9521816c0f99577a25207b8f9340618001395c7147b17080295172b019558183309145020ae0082f07c57177c58167c591578172a01978808d49808791828017c57067c58057c59077c5a08977708d4870797991097aa18d4a909d497077c580a7c59097c5a0b7c5b0c978808d4980897aa1097bb18d4ba0ad4a808978820d487077b1718017c570e7c580d7c590f7c5a10977708d4870797991097aa18d4a909d497077c58127c59117c5a137c5b14978808d49808646997aa1097bb18d4ba0ad4a808978820d487077b17200133060228240295998b5209eaf89588a65208e3f89577aa5207dcf834072b001334082a0013340929001378172a01978808d498087918280134071a0013340819001334091b0013340a1c0013977708d4870797991097aa18d4a909d4970734081e001334091d0013340a1f0013340b200013978808d4980897aa1097bb18d4ba0ad4a808978820d487077b171801340722001334082100133409230013340a240013977708d4870797991097aa183408260013d4a909d497073409250013978808340a270013340b280013d49808340918001397aa1097bb18d4ba0ad4a808978820d487077b172001330601283b019599c7520901f89588915208faf7521718f6f7390728001338082400137a175001380720001397882038091c0013380a180013d487077b174801979920d4a9097b19400195572c380830001338092c00137b1700027b1c0802978820d49808380738001338093400137b18e00139083c0013977720d497077b17e8017a18f00195171801951800025020b00098f182171801510706286ff78217380182183001821928017b1710017b1808017b190001821720018218400182194801811a50017b17f8007b18d0007b19d8007a1ae0009517e4009518e0013309145020b2000dee95177e019518d0003309485020b400fced951636330948646795187e015020b600eaed9517860033094864685020b800dbed95171801951880003309275020ba00caed951857951778013309275020bc00baed33060501781630781931951732951818013309275020be00a0ed951759951878013309275020c00090ed7b157801492180010040492188019518780133075020c2007a088218880182198001ac899c0282177801c8870ac989097b1ae0017b19e8019519e0015020c4005209977720987720511703760252170d71028217e0018218e8017b17d0007b18d800951778019518d0005020c60058f08217780152074a02821798018218900182198801821a8001821bd8007b1798007b1890007b1988007b1a8000520b2202821798007b17580182179000821888009766023309000001c86909821a8000819b7b1750017b1848019519317b1a4001320b821758018218500182194801821a40017b1790017b1888017b1980017b1a78019517780128b1f3951838951740017b17d0009517d8003309385020cc007fec8217688218608219587b1798007b1890008217507b198800330514001333061400137b17800033071400130a0139072400133808180013951b00027ab71038071400139788203809200013380a1c0013d487077bb7979920d4a9097bb908951950951700029518d8005020ce0027ed9517a000951800023309145020d000ffeb9517b4003309149518d8005020d200eeeb95177801951880003309485020d400ddeb951598017b16e0014921e80100404921f0013309460001951760019518e0015020d60061f59517600164585020d800abed951760019518ac015020da009ded8217680182167001ac67c4007b1718821760017b1720c867077b17089865059517e00164585020dc00b0f39517e00164585020de00e0f38218208215f0018217e8017b15289755057b17c875057b16108467e09a765106299587207b172033092064575020e00035eb8217289577017b17289555209566208218205206dd821718821810c987078218087b18e0017b17e8014921f0019518e001951798015020e2001e069518e0019517ac015020e4001006951778019518e0015020e6004c068217f0018218e801ae78e3010095177801951840013300ea009511a07b10587b15507b1648649664757b18951708330928646833005628a2ea28a900951838951780013309385020ee0092ea95174001330514001333061400137b17780133071400130a01390724001338081800137a17900038071400139788203809200013380a1c0013d487077b178000979920d4a9097b1988009519980195178000951880015020f000acf68478ff00511802570128340195177801951840013300f4009511c87b10307b15287b1620649a64757b18951608330914646764a833005228f9e995177801280ff1951838951740017b177801951780013309485020f800dde981175c8018587a17d801801754978820801950801a4cd487077b17d001979920d4a9098217608218687b19c8018219707b17e0017b18e8018217787b19f00133061400137b17f80133071400130a0139072400133808180013951b00027ab7103807140013951580019788203809200013380a1c0013d487077bb7979920d4a9097bb9089517d0009519000264585020fa000df59517d0009518e0015020fc0021f033080152073f9518c8019519e00164575020fe009bf58478ff0052180228951780009518d0009519e001502000019df1951800029519800064575020020112ea2820330701288cf38219e001821828978820988820977720987a2082170a0201821758018218500182194801821a40017b1790017b1888017b1980017b1a78019517780150200401ebf133080233072842f3951130ff7b10c8007b15c0007b16b800502006012def8477ff00521705a4013306140013330514001333080040330714001333090a0139071400139555047b1550491158fc3f52479bae9d5e79f19517689518505020080187eb821768510706285ff195187095152e330920645750200a0135e89516063309206467645850200c0125e895176e330920646850200e0117e87e1788007e1886007e198a007e1a8c00977710d4870797992097aa30d4a909d497077b17407e1780007e187e7e1982007e1a8400977710d4870797992097aa30d4a909d497077b17387e17787e18767e197a7e1a7c977710d4870797992097aa30d4a909d497077b17307e17707e186e7e19727e1a74977710d4870797992097aa30d4a909d4970733051400137b172833071400130a01390724001338081800137a176038071400139788203809200013380a1c0013d487077b1750979920d4a9097b195833072000017b176895167033091464676458502010013ae77b1549110800404911103307e7dc2326641850201201260264186467502014013c02821610821708ac67278215c86508c967077b187b17084911109517286418502016016202821710821808ae780400821a976920989920977720987b20330764580a064621880046219d000195179e0095185033091450201801bde6821728821830821938821a407b17687b18707b19787b1a800095176850201a01e8eb821740821838821930821a287b1780007b18787b19707b1a6895176850201c01b3ef33001e019511f87b101f03140013330814001333090233070a0500009511c07b10387b15307b1628c88909ac898f006475827897870195abff330c04330608dbbc06e46909e47909d69a0752076fca9a075707697b1910510812caa808825a08491120019519182806951920017b988218205108288218185108227b187b1a0850202001455107356476821808821950202201e4e5821710280f502024012164768217105106167b56087b57821038821530821628951140320000510705280733070132003309000003340a0000036478510a0a3a07080003281f3307120003330a013b0a0000033e0708000333091000033b0a10000301c87808ac78233409100003330a120013939aac8a1b33090800033e08080003d8780894873200d878089487320000827910827a08aea912827ac89a0a78a89599017b79103200009511e87b10107b15087b166475827710c89706ac7624825a08ac6a1e825ac8a7075020260113e57b561082101082150882169511183200009511f07b1008648a7a170495180433090464a750202801b582100895111032009511d07b10287b15207b16186485647633071450202a0111ff5107304901147b17084911103308146419646750202c010f0182180882191064578210288215208216189511302862ff009511b07b10487b15407b163864854911184911104911084901641833090401827a788a98ab38788b0798ab30788b0698ab28788b0598ab20788b0498ab18788b0398ab10788b0298aa08788a019588089577089599ff5209c933072033062050202e017bfe5107307b16207b17284911306417330820c881095020300178821828821930645782104882154082163895115028ccfe009511e07b10187b15107b16086495829608647c829a7a1604978820988920951b04330764c80a0301801904ac962f837a33080c7b5908ae8a1484770f9777023308680001c8870781780164878210188215108216089511203200009511d87b10207b15187b161064958296108299c9690a64896478ac9a297b1908825708c86707502032017be3821708c876067b56108210208215188216109511283200330a0164577b186468649650203401fcfc8218646982561028c29511c07c89197c8a187c8b1a7c8c1b979908d4a90997bb1097cc18d4cb0bd49b027c8a1d7c8b1c7c8c1e7c891f97aa08d4ba0a97cc10979918d4c909d4a909979920d429097b19187c89117c8a107c8b127c8c13979908d4a90997bb1097cc18d4cb0bd49b027c8a157c8b147c8c167c891797aa08d4ba0a97cc10979918d4c909d4a909979920d429097b19107c89097c8a087c8b0a7c8c0b979908d4a90997bb1097cc18d4cb0bd49b027c8a0d7c8b0c7c8c0e7c890f97aa08d4ba0a97cc10979918d4c909d4a909979920d429097b19087c89017c8a7c8b027c8c0350223601dd007c8a057c8b047c8c067c880797aa08d4ba0a97cc10978818d4c808d4a808978820d498087b184911204911284911304911386418951220330304017c8b017c8c7c89027c8a0397bb08d4cb0b97991097aa18d4a909d4b9047c8a057c8b047c8c067c890797aa08d4ba0a97cc10979918d4c909d4a909979920d449097b299588089522089533ff5203b4821838821930821a28821b207b78187b79107b7a087b7b9511403200975920989920977720987b20330764683202647564878258c96909c868087b187b18107b19087b19184911209518103202979908d4a90997bb1097cc18d4cb0bd4b9093202498a924a254992244925294949496a52499252a92425492121094992244921494249d224292409094942922449524892509234494a92929454489224242949d2244912429224942449489224699224092149122549129224499aa424459224a992a424154a21494929494949a1a5942495485292244949494a9225491191a4282949129292902449922449929024499224494852499224494a5242231225a94a4921252549aa04a9a4242252424242129224945092504292449224490a2924494999242924494a9224494842129224495211892649085521939294495292a52429a9292995244992242549251592a4244992244992244992244992244992244992244992a48424294925a5905992945252a9a4929224494a2649924c9224294b92d25499140849274921212924499224852409254993a492244a4a92149224a124494292a4425252923449a1480229210a49861a092905434a52123a4995a45049492525492a24248524494a2189a424559224244992a4499aa45012125242922449421249492a4992902449922669444429052948490a524112a42449924c92244993249134499282480a42a4a02449922023221a91248810214271099148924442842411119148449490888808222209222588144424884890442422228288488248092205110922122411122111499024924892244992244992249224499224494a922492442211428824420821499210424892248910424892908484909024492489440821424248249110229210222411114124111111111111111109221224451029884890489049224122410411051111494404490811111141444444444444444442a288441111111191444482241189102214422424849424114144824804110922820811411444041191489228888244242529490a922449924444441011440411312292a44a4a924810214428840809219144440411121149522595441211099248924492442212214221444224849424a2202248220a2222228828288924498d8888888820252222881042840e4908488224490a920a9282888824491289489224499224499224499290500809092149129254504850504192929214245992541122099224492448924892205208a993245149922449922452962425a414a4509292a4298550422121843009a184904a4d524a9aa492242548529a94a490942495204952415292649294a4b292244992244992244892929094249924a592a49a9424096949d22429a59224489224a52aa89424499224499224499224499224499224499224499224499224494a822449922429494aa62449922449922429499224492949aa2a29495292240100", - "build_info": { - "build_mode": "Release", - "cargo_contract_version": "6.0.0-alpha.1", - "rust_toolchain": "stable-aarch64-apple-darwin" - } - }, - "contract": { "name": "erc20", "version": "6.0.0-alpha", "authors": ["Use Ink "] }, - "image": null, - "spec": { - "constructors": [ - { - "args": [{ "label": "total_supply", "type": { "displayName": ["U256"], "type": 0 } }], - "default": false, - "docs": ["Creates a new ERC-20 contract with the specified initial supply."], - "label": "new", - "payable": false, - "returnType": { "displayName": ["ink_primitives", "ConstructorResult"], "type": 16 }, - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "environment": { - "accountId": { "displayName": ["AccountId"], "type": 23 }, - "balance": { "displayName": ["Balance"], "type": 25 }, - "blockNumber": { "displayName": ["BlockNumber"], "type": 27 }, - "chainExtension": { "displayName": ["ChainExtension"], "type": 28 }, - "hash": { "displayName": ["Hash"], "type": 26 }, - "maxEventTopics": 4, - "staticBufferSize": 16384, - "timestamp": { "displayName": ["Timestamp"], "type": 2 } - }, - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "from", - "type": { "displayName": ["Option"], "type": 22 } - }, - { - "docs": [], - "indexed": true, - "label": "to", - "type": { "displayName": ["Option"], "type": 22 } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { "displayName": ["U256"], "type": 0 } - } - ], - "docs": ["Event emitted when a token transfer occurs."], - "label": "Transfer", - "module_path": "erc20::erc20", - "signature_topic": "0x1ecb48b1e08876a3b5a17f9ce1350cbc5e4f264b3162dbc757be9de4b15f1e83" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "owner", - "type": { "displayName": ["H160"], "type": 4 } - }, - { - "docs": [], - "indexed": true, - "label": "spender", - "type": { "displayName": ["H160"], "type": 4 } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { "displayName": ["U256"], "type": 0 } - } - ], - "docs": [ - "Event emitted when an approval occurs that `spender` is allowed to withdraw", - "up to the amount of `value` tokens from `owner`." - ], - "label": "Approval", - "module_path": "erc20::erc20", - "signature_topic": "0xe4c2a1aef088c9f187a0e3f8016deaf4bdeb7954fb410c32bf8a6a033ecc3b5b" - } - ], - "lang_error": { "displayName": ["ink", "LangError"], "type": 17 }, - "messages": [ - { - "args": [], - "default": false, - "docs": [" Returns the total token supply."], - "label": "total_supply", - "mutates": false, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 18 }, - "selector": "0xdb6375a8" - }, - { - "args": [{ "label": "owner", "type": { "displayName": ["H160"], "type": 4 } }], - "default": false, - "docs": [ - " Returns the account balance for the specified `owner`.", - "", - " Returns `0` if the account is non-existent." - ], - "label": "balance_of", - "mutates": false, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 18 }, - "selector": "0x0f755a56" - }, - { - "args": [ - { "label": "owner", "type": { "displayName": ["H160"], "type": 4 } }, - { "label": "spender", "type": { "displayName": ["H160"], "type": 4 } } - ], - "default": false, - "docs": [ - " Returns the amount which `spender` is still allowed to withdraw from `owner`.", - "", - " Returns `0` if no allowance has been set." - ], - "label": "allowance", - "mutates": false, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 18 }, - "selector": "0x6a00165e" - }, - { - "args": [ - { "label": "to", "type": { "displayName": ["H160"], "type": 4 } }, - { "label": "value", "type": { "displayName": ["U256"], "type": 0 } } - ], - "default": false, - "docs": [ - " Transfers `value` amount of tokens from the caller's account to account `to`.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the caller's account balance." - ], - "label": "transfer", - "mutates": true, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 19 }, - "selector": "0x84a15da1" - }, - { - "args": [ - { "label": "spender", "type": { "displayName": ["H160"], "type": 4 } }, - { "label": "value", "type": { "displayName": ["U256"], "type": 0 } } - ], - "default": false, - "docs": [ - " Allows `spender` to withdraw from the caller's account multiple times, up to", - " the `value` amount.", - "", - " If this function is called again it overwrites the current allowance with", - " `value`.", - "", - " An `Approval` event is emitted." - ], - "label": "approve", - "mutates": true, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 19 }, - "selector": "0x681266a0" - }, - { - "args": [ - { "label": "from", "type": { "displayName": ["H160"], "type": 4 } }, - { "label": "to", "type": { "displayName": ["H160"], "type": 4 } }, - { "label": "value", "type": { "displayName": ["U256"], "type": 0 } } - ], - "default": false, - "docs": [ - " Transfers `value` tokens on the behalf of `from` to the account `to`.", - "", - " This can be used to allow a contract to transfer tokens on ones behalf and/or", - " to charge fees in sub-currencies, for example.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " for the caller to withdraw from `from`.", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the account balance of `from`." - ], - "label": "transfer_from", - "mutates": true, - "payable": false, - "returnType": { "displayName": ["ink", "MessageResult"], "type": 19 }, - "selector": "0x0b396f18" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [ - { "layout": { "leaf": { "key": "0x00000000", "ty": 0 } }, "name": "total_supply" }, - { - "layout": { - "root": { - "layout": { "leaf": { "key": "0xe7dc2326", "ty": 0 } }, - "root_key": "0xe7dc2326", - "ty": 3 - } - }, - "name": "balances" - }, - { - "layout": { - "root": { - "layout": { "leaf": { "key": "0xb721a0ec", "ty": 0 } }, - "root_key": "0xb721a0ec", - "ty": 11 - } - }, - "name": "allowances" - } - ], - "name": "Erc20" - } - }, - "root_key": "0x00000000", - "ty": 15 - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { "composite": { "fields": [{ "type": 1, "typeName": "[u64; 4]" }] } }, - "path": ["primitive_types", "U256"] - } - }, - { "id": 1, "type": { "def": { "array": { "len": 4, "type": 2 } } } }, - { "id": 2, "type": { "def": { "primitive": "u64" } } }, - { - "id": 3, - "type": { - "def": { "composite": {} }, - "params": [ - { "name": "K", "type": 4 }, - { "name": "V", "type": 0 }, - { "name": "KeyType", "type": 7 } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 4, - "type": { - "def": { "composite": { "fields": [{ "type": 5, "typeName": "[u8; 20]" }] } }, - "path": ["primitive_types", "H160"] - } - }, - { "id": 5, "type": { "def": { "array": { "len": 20, "type": 6 } } } }, - { "id": 6, "type": { "def": { "primitive": "u8" } } }, - { - "id": 7, - "type": { - "def": { "composite": {} }, - "params": [ - { "name": "L", "type": 8 }, - { "name": "R", "type": 9 } - ], - "path": ["ink_storage_traits", "impls", "ResolverKey"] - } - }, - { - "id": 8, - "type": { "def": { "composite": {} }, "path": ["ink_storage_traits", "impls", "AutoKey"] } - }, - { - "id": 9, - "type": { - "def": { "composite": {} }, - "params": [{ "name": "ParentKey", "type": 10 }], - "path": ["ink_storage_traits", "impls", "ManualKey"] - } - }, - { "id": 10, "type": { "def": { "tuple": [] } } }, - { - "id": 11, - "type": { - "def": { "composite": {} }, - "params": [ - { "name": "K", "type": 12 }, - { "name": "V", "type": 0 }, - { "name": "KeyType", "type": 13 } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { "id": 12, "type": { "def": { "tuple": [4, 4] } } }, - { - "id": 13, - "type": { - "def": { "composite": {} }, - "params": [ - { "name": "L", "type": 8 }, - { "name": "R", "type": 14 } - ], - "path": ["ink_storage_traits", "impls", "ResolverKey"] - } - }, - { - "id": 14, - "type": { - "def": { "composite": {} }, - "params": [{ "name": "ParentKey", "type": 10 }], - "path": ["ink_storage_traits", "impls", "ManualKey"] - } - }, - { - "id": 15, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "total_supply", - "type": 0, - "typeName": ",>>::Type" - }, - { - "name": "balances", - "type": 3, - "typeName": " as::ink::storage::traits::AutoStorableHint<\n::ink::storage::traits::ManualKey<639884519u32, ()>,>>::Type" - }, - { - "name": "allowances", - "type": 11, - "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<3969917367u32,\n()>,>>::Type" - } - ] - } - }, - "path": ["erc20", "erc20", "Erc20"] - } - }, - { - "id": 16, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 10 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 17 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 10 }, - { "name": "E", "type": 17 } - ], - "path": ["Result"] - } - }, - { - "id": 17, - "type": { - "def": { "variant": { "variants": [{ "index": 1, "name": "CouldNotReadInput" }] } }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 18, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 0 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 17 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 0 }, - { "name": "E", "type": 17 } - ], - "path": ["Result"] - } - }, - { - "id": 19, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 20 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 17 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 20 }, - { "name": "E", "type": 17 } - ], - "path": ["Result"] - } - }, - { - "id": 20, - "type": { - "def": { - "variant": { - "variants": [ - { "fields": [{ "type": 10 }], "index": 0, "name": "Ok" }, - { "fields": [{ "type": 21 }], "index": 1, "name": "Err" } - ] - } - }, - "params": [ - { "name": "T", "type": 10 }, - { "name": "E", "type": 21 } - ], - "path": ["Result"] - } - }, - { - "id": 21, - "type": { - "def": { - "variant": { - "variants": [ - { "index": 0, "name": "InsufficientBalance" }, - { "index": 1, "name": "InsufficientAllowance" } - ] - } - }, - "path": ["erc20", "erc20", "Error"] - } - }, - { - "id": 22, - "type": { - "def": { - "variant": { - "variants": [ - { "index": 0, "name": "None" }, - { "fields": [{ "type": 4 }], "index": 1, "name": "Some" } - ] - } - }, - "params": [{ "name": "T", "type": 4 }], - "path": ["Option"] - } - }, - { - "id": 23, - "type": { - "def": { "composite": { "fields": [{ "type": 24, "typeName": "[u8; 32]" }] } }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { "id": 24, "type": { "def": { "array": { "len": 32, "type": 6 } } } }, - { "id": 25, "type": { "def": { "primitive": "u128" } } }, - { - "id": 26, - "type": { - "def": { "composite": { "fields": [{ "type": 24, "typeName": "[u8; 32]" }] } }, - "path": ["ink_primitives", "types", "Hash"] - } - }, - { "id": 27, "type": { "def": { "primitive": "u32" } } }, - { - "id": 28, - "type": { "def": { "variant": {} }, "path": ["ink_primitives", "types", "NoChainExtension"] } - } - ], - "version": 6 -} diff --git a/.api-contract/src/test/contracts/ink/v6/erc20.json b/.api-contract/src/test/contracts/ink/v6/erc20.json deleted file mode 100644 index 3b07ad0a..00000000 --- a/.api-contract/src/test/contracts/ink/v6/erc20.json +++ /dev/null @@ -1,931 +0,0 @@ -{ - "source": { - "hash": "0x15fa048bd28a4649ced787f88707e271f48ff04a966f525b28877c08c60ea014", - "language": "ink! 6.0.0-alpha", - "compiler": "rustc 1.86.0", - "build_info": { - "build_mode": "Release", - "cargo_contract_version": "6.0.0-alpha.1", - "rust_toolchain": "stable-aarch64-apple-darwin" - } - }, - "contract": { - "name": "erc20", - "version": "6.0.0-alpha", - "authors": ["Use Ink "] - }, - "image": null, - "spec": { - "constructors": [ - { - "args": [ - { - "label": "total_supply", - "type": { - "displayName": ["U256"], - "type": 0 - } - } - ], - "default": false, - "docs": ["Creates a new ERC-20 contract with the specified initial supply."], - "label": "new", - "payable": false, - "returnType": { - "displayName": ["ink_primitives", "ConstructorResult"], - "type": 16 - }, - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "environment": { - "accountId": { - "displayName": ["AccountId"], - "type": 23 - }, - "balance": { - "displayName": ["Balance"], - "type": 25 - }, - "blockNumber": { - "displayName": ["BlockNumber"], - "type": 27 - }, - "chainExtension": { - "displayName": ["ChainExtension"], - "type": 28 - }, - "hash": { - "displayName": ["Hash"], - "type": 26 - }, - "maxEventTopics": 4, - "staticBufferSize": 16384, - "timestamp": { - "displayName": ["Timestamp"], - "type": 2 - } - }, - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "from", - "type": { - "displayName": ["Option"], - "type": 22 - } - }, - { - "docs": [], - "indexed": true, - "label": "to", - "type": { - "displayName": ["Option"], - "type": 22 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": ["U256"], - "type": 0 - } - } - ], - "docs": ["Event emitted when a token transfer occurs."], - "label": "Transfer", - "module_path": "erc20::erc20", - "signature_topic": "0x1ecb48b1e08876a3b5a17f9ce1350cbc5e4f264b3162dbc757be9de4b15f1e83" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "owner", - "type": { - "displayName": ["H160"], - "type": 4 - } - }, - { - "docs": [], - "indexed": true, - "label": "spender", - "type": { - "displayName": ["H160"], - "type": 4 - } - }, - { - "docs": [], - "indexed": false, - "label": "value", - "type": { - "displayName": ["U256"], - "type": 0 - } - } - ], - "docs": [ - "Event emitted when an approval occurs that `spender` is allowed to withdraw", - "up to the amount of `value` tokens from `owner`." - ], - "label": "Approval", - "module_path": "erc20::erc20", - "signature_topic": "0xe4c2a1aef088c9f187a0e3f8016deaf4bdeb7954fb410c32bf8a6a033ecc3b5b" - } - ], - "lang_error": { - "displayName": ["ink", "LangError"], - "type": 17 - }, - "messages": [ - { - "args": [], - "default": false, - "docs": [" Returns the total token supply."], - "label": "total_supply", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 18 - }, - "selector": "0xdb6375a8" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["H160"], - "type": 4 - } - } - ], - "default": false, - "docs": [ - " Returns the account balance for the specified `owner`.", - "", - " Returns `0` if the account is non-existent." - ], - "label": "balance_of", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 18 - }, - "selector": "0x0f755a56" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["H160"], - "type": 4 - } - }, - { - "label": "spender", - "type": { - "displayName": ["H160"], - "type": 4 - } - } - ], - "default": false, - "docs": [ - " Returns the amount which `spender` is still allowed to withdraw from `owner`.", - "", - " Returns `0` if no allowance has been set." - ], - "label": "allowance", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 18 - }, - "selector": "0x6a00165e" - }, - { - "args": [ - { - "label": "to", - "type": { - "displayName": ["H160"], - "type": 4 - } - }, - { - "label": "value", - "type": { - "displayName": ["U256"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Transfers `value` amount of tokens from the caller's account to account `to`.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the caller's account balance." - ], - "label": "transfer", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 19 - }, - "selector": "0x84a15da1" - }, - { - "args": [ - { - "label": "spender", - "type": { - "displayName": ["H160"], - "type": 4 - } - }, - { - "label": "value", - "type": { - "displayName": ["U256"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Allows `spender` to withdraw from the caller's account multiple times, up to", - " the `value` amount.", - "", - " If this function is called again it overwrites the current allowance with", - " `value`.", - "", - " An `Approval` event is emitted." - ], - "label": "approve", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 19 - }, - "selector": "0x681266a0" - }, - { - "args": [ - { - "label": "from", - "type": { - "displayName": ["H160"], - "type": 4 - } - }, - { - "label": "to", - "type": { - "displayName": ["H160"], - "type": 4 - } - }, - { - "label": "value", - "type": { - "displayName": ["U256"], - "type": 0 - } - } - ], - "default": false, - "docs": [ - " Transfers `value` tokens on the behalf of `from` to the account `to`.", - "", - " This can be used to allow a contract to transfer tokens on ones behalf and/or", - " to charge fees in sub-currencies, for example.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `InsufficientAllowance` error if there are not enough tokens allowed", - " for the caller to withdraw from `from`.", - "", - " Returns `InsufficientBalance` error if there are not enough tokens on", - " the account balance of `from`." - ], - "label": "transfer_from", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 19 - }, - "selector": "0x0b396f18" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 0 - } - }, - "name": "total_supply" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0xe7dc2326", - "ty": 0 - } - }, - "root_key": "0xe7dc2326", - "ty": 3 - } - }, - "name": "balances" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0xb721a0ec", - "ty": 0 - } - }, - "root_key": "0xb721a0ec", - "ty": 11 - } - }, - "name": "allowances" - } - ], - "name": "Erc20" - } - }, - "root_key": "0x00000000", - "ty": 15 - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 1, - "typeName": "[u64; 4]" - } - ] - } - }, - "path": ["primitive_types", "U256"] - } - }, - { - "id": 1, - "type": { - "def": { - "array": { - "len": 4, - "type": 2 - } - } - } - }, - { - "id": 2, - "type": { - "def": { - "primitive": "u64" - } - } - }, - { - "id": 3, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "K", - "type": 4 - }, - { - "name": "V", - "type": 0 - }, - { - "name": "KeyType", - "type": 7 - } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 4, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 5, - "typeName": "[u8; 20]" - } - ] - } - }, - "path": ["primitive_types", "H160"] - } - }, - { - "id": 5, - "type": { - "def": { - "array": { - "len": 20, - "type": 6 - } - } - } - }, - { - "id": 6, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 7, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "L", - "type": 8 - }, - { - "name": "R", - "type": 9 - } - ], - "path": ["ink_storage_traits", "impls", "ResolverKey"] - } - }, - { - "id": 8, - "type": { - "def": { - "composite": {} - }, - "path": ["ink_storage_traits", "impls", "AutoKey"] - } - }, - { - "id": 9, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "ParentKey", - "type": 10 - } - ], - "path": ["ink_storage_traits", "impls", "ManualKey"] - } - }, - { - "id": 10, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 11, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "K", - "type": 12 - }, - { - "name": "V", - "type": 0 - }, - { - "name": "KeyType", - "type": 13 - } - ], - "path": ["ink_storage", "lazy", "mapping", "Mapping"] - } - }, - { - "id": 12, - "type": { - "def": { - "tuple": [4, 4] - } - } - }, - { - "id": 13, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "L", - "type": 8 - }, - { - "name": "R", - "type": 14 - } - ], - "path": ["ink_storage_traits", "impls", "ResolverKey"] - } - }, - { - "id": 14, - "type": { - "def": { - "composite": {} - }, - "params": [ - { - "name": "ParentKey", - "type": 10 - } - ], - "path": ["ink_storage_traits", "impls", "ManualKey"] - } - }, - { - "id": 15, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "total_supply", - "type": 0, - "typeName": ",>>::Type" - }, - { - "name": "balances", - "type": 3, - "typeName": " as::ink::storage::traits::AutoStorableHint<\n::ink::storage::traits::ManualKey<639884519u32, ()>,>>::Type" - }, - { - "name": "allowances", - "type": 11, - "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<3969917367u32,\n()>,>>::Type" - } - ] - } - }, - "path": ["erc20", "erc20", "Erc20"] - } - }, - { - "id": 16, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 10 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 17 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 10 - }, - { - "name": "E", - "type": 17 - } - ], - "path": ["Result"] - } - }, - { - "id": 17, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 1, - "name": "CouldNotReadInput" - } - ] - } - }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 18, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 0 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 17 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 0 - }, - { - "name": "E", - "type": 17 - } - ], - "path": ["Result"] - } - }, - { - "id": 19, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 20 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 17 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 20 - }, - { - "name": "E", - "type": 17 - } - ], - "path": ["Result"] - } - }, - { - "id": 20, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 10 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 21 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 10 - }, - { - "name": "E", - "type": 21 - } - ], - "path": ["Result"] - } - }, - { - "id": 21, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "InsufficientBalance" - }, - { - "index": 1, - "name": "InsufficientAllowance" - } - ] - } - }, - "path": ["erc20", "erc20", "Error"] - } - }, - { - "id": 22, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 4 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 4 - } - ], - "path": ["Option"] - } - }, - { - "id": 23, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 24, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { - "id": 24, - "type": { - "def": { - "array": { - "len": 32, - "type": 6 - } - } - } - }, - { - "id": 25, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 26, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 24, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "Hash"] - } - }, - { - "id": 27, - "type": { - "def": { - "primitive": "u32" - } - } - }, - { - "id": 28, - "type": { - "def": { - "variant": {} - }, - "path": ["ink_primitives", "types", "NoChainExtension"] - } - } - ], - "version": 6 -} diff --git a/.api-contract/src/test/contracts/ink/v6/erc20.polkavm b/.api-contract/src/test/contracts/ink/v6/erc20.polkavm deleted file mode 100644 index 64886b65146198d57f144142ffad192cda8f7509..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9445 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 AxBvhE diff --git a/.api-contract/src/test/contracts/ink/v6/index.ts b/.api-contract/src/test/contracts/ink/v6/index.ts deleted file mode 100644 index 75063f5c..00000000 --- a/.api-contract/src/test/contracts/ink/v6/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; -export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/solang/index.ts b/.api-contract/src/test/contracts/solang/index.ts deleted file mode 100644 index e5ef0340..00000000 --- a/.api-contract/src/test/contracts/solang/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { createVersionedExport } from '../util.js'; -import * as v0 from './v0/index.js'; - -export default createVersionedExport({ v0 }); diff --git a/.api-contract/src/test/contracts/solang/v0/index.ts b/.api-contract/src/test/contracts/solang/v0/index.ts deleted file mode 100644 index 6c73b8f6..00000000 --- a/.api-contract/src/test/contracts/solang/v0/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export { default as ints256 } from './ints256.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/solang/v0/ints256.json b/.api-contract/src/test/contracts/solang/v0/ints256.json deleted file mode 100644 index a8384707..00000000 --- a/.api-contract/src/test/contracts/solang/v0/ints256.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "contract": { - "authors": ["Sean Young "], - "description": "Test 256 bits types", - "name": "ints256", - "version": "0.0.1" - }, - "metadataVersion": "0.1.0", - "source": { - "compiler": "solang 0.1.4", - "hash": "0xa85fb5c61a09d71dce84c15a8bd87e6f4eafac498a1aec3869e8cf7ea4389697", - "language": "Solidity 0.1.4" - }, - "spec": { - "constructors": [ - { - "args": [], - "docs": [""], - "name": "new", - "selector": "0x861731d5" - } - ], - "events": [], - "messages": [ - { - "args": [ - { - "name": "a", - "type": { - "display_name": ["u256"], - "type": 1 - } - }, - { - "name": "b", - "type": { - "display_name": ["u256"], - "type": 1 - } - } - ], - "docs": ["Multiply two 256 bit values\n\n"], - "mutates": false, - "name": "multiply", - "payable": false, - "return_type": { - "display_name": ["u256"], - "type": 1 - }, - "selector": "0x165c4a16" - }, - { - "args": [ - { - "name": "a", - "type": { - "display_name": ["u256"], - "type": 1 - } - }, - { - "name": "b", - "type": { - "display_name": ["u256"], - "type": 1 - } - } - ], - "docs": ["Add two 256 bit values\n\n"], - "mutates": false, - "name": "add", - "payable": false, - "return_type": { - "display_name": ["u256"], - "type": 1 - }, - "selector": "0x771602f7" - } - ] - }, - "storage": { - "struct": { - "fields": [] - } - }, - "types": [ - { - "def": { - "primitive": "u256" - } - } - ] -} diff --git a/.api-contract/src/test/contracts/solang/v0/ints256.sol b/.api-contract/src/test/contracts/solang/v0/ints256.sol deleted file mode 100644 index 1225a6b9..00000000 --- a/.api-contract/src/test/contracts/solang/v0/ints256.sol +++ /dev/null @@ -1,13 +0,0 @@ -/// @title Test 256 bits types -/// @author Sean Young -contract ints256 { - /// Multiply two 256 bit values - function multiply(uint256 a, uint256 b) public pure returns (uint256) { - return a * b; - } - - /// Add two 256 bit values - function add(uint256 a, uint256 b) public pure returns (uint256) { - return a + b; - } -} diff --git a/.api-contract/src/test/contracts/solang/v0/ints256.wasm b/.api-contract/src/test/contracts/solang/v0/ints256.wasm deleted file mode 100644 index 1973316be540b38ba3e463b1d11c950650335872..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1782 zcmbtUOK%)S5UzgA!!tW}N3xKmaHwv4u%!s)ka#bMxUGa39Ky@u8n4JAF@D5e+Yu4V zt`C;A2hRKiq)1puoO1Mm13!Qtz>y;-IKo#mcCa8mF{AC8s;>IFzN+e_-u|{CA{EjN zq75}x;|)8;LlC18gqCk37X7JB_WQl9n}w{8zS!A4JfL$^*_a0XgTuiNC9T_QjqPb~ z>#+amV9?vy|GYmK^dFNo{hg=jc7OZH;F(s=nLHzEr(H){|$H z+s}GiTQpVt+{xagh<8cDrTsX*`1nRX?of0G@%O*Js+aTxDBme%$AagTUN*~mnbm^s zR3st~n(2c|m!eQm6_t^^ii9n%OZZ|xW_A2>FPP1s`PGqNV8jW@3E&j!P^^%bdUWth@KZ>l z;QXPl^fKHNy!mR#>M#vn1*Z?|pw=ov)C`y2b(GYh!&MD7LSza7sHG@L<23CvK+dcj z;c-Jo6eqV)9*bo(435k7>%g+nN_Zl9CG3338F++@)q4$RIl_0)szR{Yy$uMr!V{i3 zhVL|Dim2*Pu(>b(OsOhdje_3@6U4@A_!JK#nOf8uD9P>oZ1Low|E5O?c<_%z%G5bo5oxzMB9che9 zbTM}rr)D~X%vsY0ist?5-0Z|mn7NZ5etP~j*hacnVaO!NDGc{NUrmJA{z$YP=c6|$ z{z{tx%$eq8(_I{?<(SKFq($RonLA#gk1M(|M`Ue582L5lE@&5ws;xGQtJ zXx{RLh+F7B#SL84d70`nT&TI4E!qW*8zpZPPP*np^ds$>Rfw#MsZ>1GH8&xOu33O6 zyM|kkCKyZZ62Q+PQ7Ciuq9FkjY}YDIluPEkHRCQ;$)!%5)5X_$uJCEbSn zY|HvV%kyqa{#A74uc#Pu%H0&DN`I>}-%Su|BVe!YMBcCCWv4kP(_E#f(x+z7qWZ GLH-TS;|;|C diff --git a/.api-contract/src/test/contracts/user/index.ts b/.api-contract/src/test/contracts/user/index.ts deleted file mode 100644 index 69e91c72..00000000 --- a/.api-contract/src/test/contracts/user/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import { createVersionedExport } from '../util.js'; -import * as v0 from './v0/index.js'; -import * as v3 from './v3/index.js'; -import * as v4 from './v4/index.js'; - -export default createVersionedExport({ v0, v3, v4 }); diff --git a/.api-contract/src/test/contracts/user/v0/assetTransfer.json b/.api-contract/src/test/contracts/user/v0/assetTransfer.json deleted file mode 100644 index f1d8030a..00000000 --- a/.api-contract/src/test/contracts/user/v0/assetTransfer.json +++ /dev/null @@ -1,245 +0,0 @@ -{ - "contract": { - "authors": ["unknown"], - "name": "AssetTransfer", - "version": "0.0.1" - }, - "metadataVersion": "0.1.0", - "source": { - "compiler": "solang 0.1.4", - "hash": "0x7d163f445bec3d33e90d0f60bda40acd42f2760dbc1b731616af70a6001e05c7", - "language": "Solidity 0.1.4" - }, - "spec": { - "constructors": [ - { - "args": [], - "docs": [""], - "name": "new", - "selector": "0x861731d5" - } - ], - "events": [ - { - "args": [ - { - "indexed": false, - "name": "_newUser", - "type": { - "display_name": ["AccountId"], - "type": 4 - } - } - ], - "docs": [""], - "name": "successfulRegistration" - }, - { - "args": [ - { - "indexed": false, - "name": "sender", - "type": { - "display_name": ["AccountId"], - "type": 4 - } - }, - { - "indexed": false, - "name": "_hexAsset", - "type": { - "display_name": ["String"], - "type": 5 - } - } - ], - "docs": [""], - "name": "addedAsset" - }, - { - "args": [ - { - "indexed": false, - "name": "sender", - "type": { - "display_name": ["AccountId"], - "type": 4 - } - }, - { - "indexed": false, - "name": "receiver", - "type": { - "display_name": ["AccountId"], - "type": 4 - } - }, - { - "indexed": false, - "name": "hexOfAsset", - "type": { - "display_name": ["String"], - "type": 5 - } - } - ], - "docs": [""], - "name": "assetSent" - } - ], - "messages": [ - { - "args": [ - { - "name": "_user", - "type": { - "display_name": ["AccountId"], - "type": 4 - } - } - ], - "docs": [""], - "mutates": false, - "name": "viewBalance", - "payable": false, - "return_type": { - "display_name": ["u256"], - "type": 1 - }, - "selector": "0xc1a13d1a" - }, - { - "args": [ - { - "name": "_assetHex", - "type": { - "display_name": ["String"], - "type": 5 - } - } - ], - "docs": [""], - "mutates": false, - "name": "findOwner", - "payable": false, - "return_type": { - "display_name": ["AccountId"], - "type": 4 - }, - "selector": "0x63560a8e" - }, - { - "args": [ - { - "name": "_hexAsset", - "type": { - "display_name": ["String"], - "type": 5 - } - } - ], - "docs": [""], - "mutates": true, - "name": "addAsset", - "payable": false, - "return_type": null, - "selector": "0xa7c6b52e" - }, - { - "args": [], - "docs": [""], - "mutates": true, - "name": "receiveAsset", - "payable": false, - "return_type": { - "display_name": ["String"], - "type": 5 - }, - "selector": "0xb2f3b5bc" - }, - { - "args": [ - { - "name": "_assetHex", - "type": { - "display_name": ["String"], - "type": 5 - } - }, - { - "name": "_receiver", - "type": { - "display_name": ["AccountId"], - "type": 4 - } - } - ], - "docs": [""], - "mutates": true, - "name": "sendAsset", - "payable": false, - "return_type": null, - "selector": "0xd6e5288f" - }, - { - "args": [ - { - "name": "_newUser", - "type": { - "display_name": ["AccountId"], - "type": 4 - } - } - ], - "docs": [""], - "mutates": true, - "name": "register", - "payable": false, - "return_type": null, - "selector": "0x4420e486" - } - ] - }, - "storage": { - "struct": { - "fields": [] - } - }, - "types": [ - { - "def": { - "primitive": "u256" - } - }, - { - "def": { - "primitive": "u8" - } - }, - { - "def": { - "array": { - "len": 32, - "type": 2 - } - } - }, - { - "def": { - "composite": { - "fields": [ - { - "type": 3 - } - ] - } - }, - "path": ["AccountId"] - }, - { - "def": { - "primitive": "str" - } - } - ] -} diff --git a/.api-contract/src/test/contracts/user/v0/assetTransfer.wasm b/.api-contract/src/test/contracts/user/v0/assetTransfer.wasm deleted file mode 100644 index 516f769852f09caee63d135d1cb7aec437f9c351..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11151 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 L;hP%mXRZGN@&7$3 diff --git a/.api-contract/src/test/contracts/user/v0/enumExample.json b/.api-contract/src/test/contracts/user/v0/enumExample.json deleted file mode 100644 index 02d7dcfb..00000000 --- a/.api-contract/src/test/contracts/user/v0/enumExample.json +++ /dev/null @@ -1,496 +0,0 @@ -{ - "metadataVersion": "0.1.0", - "source": { - "hash": "0x1a37c380fe02fe3b670480dff1393b0401788955315d092e39fcc06047f1413c", - "language": "ink! 3.0.0-rc2", - "compiler": "rustc 1.49.0-nightly" - }, - "contract": { - "name": "enum_example", - "version": "0.1.0", - "authors": ["[your_name] <[your_email]>"] - }, - "spec": { - "constructors": [ - { - "args": [], - "docs": [], - "name": ["new"], - "selector": "0xd183512b" - } - ], - "docs": [], - "events": [], - "messages": [ - { - "args": [ - { - "name": "variant", - "type": { - "displayName": ["Variant"], - "type": 4 - } - } - ], - "docs": [], - "mutates": true, - "name": ["set_variant"], - "payable": false, - "returnType": null, - "selector": "0x4fa6b9cf" - }, - { - "args": [], - "docs": [], - "mutates": false, - "name": ["get_variant"], - "payable": false, - "returnType": { - "displayName": ["Variant"], - "type": 4 - }, - "selector": "0x1d5962d1" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "enum": { - "dispatchKey": "0x0000000000000000000000000000000000000000000000000000000000000000", - "variants": { - "0": { - "fields": [] - }, - "1": { - "fields": [ - { - "layout": { - "enum": { - "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", - "variants": { - "0": { - "fields": [] - }, - "1": { - "fields": [] - }, - "2": { - "fields": [] - }, - "3": { - "fields": [] - }, - "4": { - "fields": [] - }, - "5": { - "fields": [] - }, - "6": { - "fields": [] - } - } - } - }, - "name": null - } - ] - }, - "2": { - "fields": [ - { - "layout": { - "enum": { - "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", - "variants": { - "0": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": null - } - ] - }, - "1": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": null - } - ] - } - } - } - }, - "name": null - } - ] - }, - "3": { - "fields": [ - { - "layout": { - "enum": { - "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", - "variants": { - "0": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "value" - } - ] - }, - "1": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "value" - } - ] - } - } - } - }, - "name": null - } - ] - }, - "4": { - "fields": [ - { - "layout": { - "enum": { - "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", - "variants": { - "0": { - "fields": [] - }, - "1": { - "fields": [] - }, - "2": { - "fields": [] - }, - "3": { - "fields": [] - }, - "4": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "name": "r" - }, - { - "layout": { - "cell": { - "key": "0x0300000000000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "name": "g" - }, - { - "layout": { - "cell": { - "key": "0x0400000000000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "name": "b" - } - ] - }, - "5": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "name": "r" - }, - { - "layout": { - "cell": { - "key": "0x0300000000000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "name": "g" - }, - { - "layout": { - "cell": { - "key": "0x0400000000000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "name": "b" - }, - { - "layout": { - "cell": { - "key": "0x0500000000000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "name": "a" - } - ] - } - } - } - }, - "name": null - } - ] - } - } - } - }, - "name": "last" - } - ] - } - }, - "types": [ - { - "def": { - "primitive": "i32" - } - }, - { - "def": { - "primitive": "u32" - } - }, - { - "def": { - "primitive": "u8" - } - }, - { - "def": { - "variant": { - "variants": [ - { - "name": "None" - }, - { - "fields": [ - { - "type": 5 - } - ], - "name": "Weekday" - }, - { - "fields": [ - { - "type": 6 - } - ], - "name": "TupleMaybeSigned" - }, - { - "fields": [ - { - "type": 7 - } - ], - "name": "NamedMaybeSigned" - }, - { - "fields": [ - { - "type": 8 - } - ], - "name": "Color" - } - ] - } - }, - "path": ["enum_example", "enum_example", "Variant"] - }, - { - "def": { - "variant": { - "variants": [ - { - "discriminant": 0, - "name": "Monday" - }, - { - "discriminant": 1, - "name": "Tuesday" - }, - { - "discriminant": 2, - "name": "Wednesday" - }, - { - "discriminant": 3, - "name": "Thursday" - }, - { - "discriminant": 4, - "name": "Friday" - }, - { - "discriminant": 5, - "name": "Saturday" - }, - { - "discriminant": 6, - "name": "Sunday" - } - ] - } - }, - "path": ["enum_example", "enum_example", "Weekday"] - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 1 - } - ], - "name": "Signed" - }, - { - "fields": [ - { - "type": 2 - } - ], - "name": "Unsigned" - } - ] - } - }, - "path": ["enum_example", "enum_example", "TupleMaybeSigned"] - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "name": "value", - "type": 1 - } - ], - "name": "Signed" - }, - { - "fields": [ - { - "name": "value", - "type": 2 - } - ], - "name": "Unsigned" - } - ] - } - }, - "path": ["enum_example", "enum_example", "NamedMaybeSigned"] - }, - { - "def": { - "variant": { - "variants": [ - { - "name": "Red" - }, - { - "name": "Blue" - }, - { - "name": "Green" - }, - { - "name": "Yellow" - }, - { - "fields": [ - { - "name": "r", - "type": 3 - }, - { - "name": "g", - "type": 3 - }, - { - "name": "b", - "type": 3 - } - ], - "name": "Rgb" - }, - { - "fields": [ - { - "name": "r", - "type": 3 - }, - { - "name": "g", - "type": 3 - }, - { - "name": "b", - "type": 3 - }, - { - "name": "a", - "type": 3 - } - ], - "name": "Rgba" - } - ] - } - }, - "path": ["enum_example", "enum_example", "Color"] - } - ] -} diff --git a/.api-contract/src/test/contracts/user/v0/enumExample.wasm b/.api-contract/src/test/contracts/user/v0/enumExample.wasm deleted file mode 100644 index 5cbe4bf9bc714e8f8711ffb62a84ee708f537653..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5473 zcmcIoON?7r8UD|?4`0u?Ar63ltN=9@j_2e~= zL_|VyP)AXaD$xZCgg}ZQA`3K979hcnWp|xc1(jWZ4a+WB5x(y~*B(2K+M$9O+4tOY z{`dP>7S}Er5iv*V7wm8-7m^{r&Cm?-B^LxwZsC#P!83sAp}A@Am^@osTD&;#_! z-SNE`zxM&w@zxtfD1x+%?LGbvGR45<;gMOH%?dF#Ny}=lZMYk1=b8zr9FzHATBcDe z?T}O^F)g&K&}t1+_D!o6k85Si5P7rjZ~NNDf*c7JH1a3Y7_t6D8VP8O80PInrOy-m z87rlfA#FiqRjiec7TIW#L&A`KEW`-ZKq&}+T)u>7ve|!R-tc*tTi^7VzVzMg4WGtk zaeHIqgq;U(U9hxG$*HE1(i?i$EhKa5d3?DXe-uwxq|hW|(-$NA;|Nfb}Uub0Cj!7R_Fh+2VDD__?i2Qmc80F)7` z3WPeWXa}GWoz2%|`Zb+?%_d$O^)ieQ8$}rq=j;z(N+wjn!7_=DF z>7Zlbf>UX4Oc*h#wwNKth%>{ZT9-_}5w{&u0>+alvEShr)T^ohWC)K8lo2VKJ$NC}VFU^$dfQPNR$YijI z-fIk;ZILOA)^Phn{Yf3g_Pos2wUcCdtw5s8pjtCWw0TtZKO|bhSuGjj86F6>91lcI z4G*}yU?q)i@uoaFEgkEraRN#8Cv0Jd2}~4HlmqPtEgJ;>B&*n!P%2hvMvf^EmYqraBzOk{*^fyBj;GTxc_sKl6Z$feU5Ciz3qQSpUk4Yu>O{WbI&5Ku`ur0Z7{9~ zYG!Lyg3OG7>lH9E1y~m7H7*h?axPLVlyWwroMV9)RA5>?mSTAd?D3bdYI zheqeXI9zXA*o)?YPKECqsHKs;#nqM>xaS}~M!+qU{|DgPVz55I{+@Pzzip9j&6>~q zkNEfe8|}RB@7%}aoA>AN%b%oLwd&XxCRrz7ty+J$?Vl0vtK^+3@1B+< zsJ+roXLE}`F{nT$ygf$K`@~CXDSGA%JZNx%sRY#1-uN_7`*3t5o}M0!r+Q5b#k#kv zr1O>F)>m5@CV({R^v`LI-zQc^$k&zQ!|CG-El=8@uWyG z!XXn`egl_03YWF$KA&kArDe;~57DJN%Sg5n&By+a{;fIKzxAu1y!rd=o6Xuj9HG5w zD!*+8ysjg0J%$H=mG6IO^iJ73GG>jNH7$PQC$dlpAQ1^zH!RmhsxjL#7i! z_!L?~57ak#7xnEfR^ao28FWOta^GwhNfa zqemyI{WVWW;4W&oLf{Dq8k5X_jf;eqUd$)hrje$$6K@83r?l`{V1;0FiIvbvI`?-ieDB)yo(8lDaHxE7>JTeS`<+w$>;M`M9L7)Qz zNeo2SN`jPVjQBle5i2vEIn0d3HP`^CvJ!z+ZOIF0?tv_C1ywEo=~A zdrZs;=47zIU1-7L8Qb@f@jXBXSEZ&t0v%Wfmm84Q@(wNIs9ApGQh>XI?SV&idx)2U z!?J7oQV{PUh>J1vu0*t#(OWU%bGkB)6HZ}qn diff --git a/.api-contract/src/test/contracts/user/v0/index.ts b/.api-contract/src/test/contracts/user/v0/index.ts deleted file mode 100644 index 0837c3e2..00000000 --- a/.api-contract/src/test/contracts/user/v0/index.ts +++ /dev/null @@ -1,7 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export { default as assetTransfer } from './assetTransfer.json' assert { type: 'json' }; -export { default as enumExample } from './enumExample.json' assert { type: 'json' }; -export { default as recursive } from './recursive.contract.json' assert { type: 'json' }; -export { default as withString } from './withString.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/user/v0/recursive.contract.json b/.api-contract/src/test/contracts/user/v0/recursive.contract.json deleted file mode 100644 index a8e64a5b..00000000 --- a/.api-contract/src/test/contracts/user/v0/recursive.contract.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "metadataVersion": "0.1.0", - "source": { - "hash": "0xdb5366415b71e5d52af252f2be5f955f1272b7f1ec0ce3493b7a9404b3b9119c", - "language": "ink! 3.0.0-rc5", - "compiler": "rustc 1.57.0-nightly", - "wasm": "0x0061736d0100000001620f60037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060017f017f60057f7f7f7f7f0060047f7f7f7f0060000060017f017e60017f0060047f7f7f7f017f60067f7f7f7f7f7f006000017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f02a30107057365616c30107365616c5f6765745f73746f726167650000057365616c30107365616c5f7365745f73746f726167650003057365616c30167365616c5f76616c75655f7472616e736665727265640002057365616c30127365616c5f64656275675f6d6573736167650001057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e000303656e76066d656d6f727902010210034e4d020204030205020309030c0802020407040700090100000301020107020103010206080d010a060a030b0302040601010303000101000505050501010e01010001010401010101040101010600040501700121210608017f01418080040b071102066465706c6f7900150463616c6c00170926010041010b203534254e233941494a250e4f0e500e1c1e200e4b0e280e3b43440e4546470e4c0a9c744db50301027f230041d0006b22022400200241286a200141186a290300370300200241206a200141106a290300370300200241186a200141086a2903003703002002420137033020022001290300370310200241808001360244200241fabf04360240200241808001360248200241106a41fabf04200241c8006a10002101200241406b2002280248100702400240200110082201410b47044020014103460d0141d48304411c41f083041009000b20022002290340370348200241086a200241c8006a100a2002280208450d01200241003a0048418080044127200241c8006a41c0810441888104100b000b230041306b220024002000411736020c200041988104360208200041246a410136020020004201370214200041e88e043602102000410236022c2000200041286a3602202000200041086a360228200041106a41b081041026000b2002200228020c220336023c2002413c6a21010340200128020022010d000b200020022903103703082000200336022820004201370300200041206a200241286a290300370300200041186a200241206a290300370300200041106a200241186a290300370300200241d0006a24000b2301017f2001200028020422024b04402001200241c0bb041030000b200020013602040b2001017f410a2101200041094d047f200041027441c8bf046a28020005410a0b0b4601017f230041206b22032400200341146a410036020020034188be04360210200342013702042003200136021c200320003602182003200341186a360200200320021026000b850101037f230041106b22022400200241086a20011012410121030240024020022d00084101710d00410021030240024020022d00090e020201000b410121030c010b20022001100a4101210320022802000d002002280204210110102204450d0120042001360200410021030b2000200436020420002003360200200241106a24000f0b000b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41013602002005420237021c2005418cbe04360218200541023602342005200541306a3602282005200541106a3602382005200541086a360230200541186a20041026000ba20101017f230041406a22022400200241206a200141186a290300370300200241186a200141106a290300370300200241106a200141086a2903003703002002420137032820022001290300370308200041286a220021010340200128020022010d000b200241386a41808001360200200241fabf04360234200241003602302002200241306a2000100d200241086a200228020020022802041001200241406b24000ba30102037f017e230041106b22032400200129020421062003410036020820032006370300034020022802000440200341011013200228020021020c010b0b2003410010132001410036020820014188be04360204200328020422052003280208220249044041a8b804412341b8b9041009000b200328020021042001200520026b3602082001200220046a3602042000200236020420002004360200200341106a24000b0300010b3c01017f230041106b22032400200041ff01714108460440200341106a24000f0b200320003a000f200120022003410f6a41d08104419c8604100b000b6e01037f024041f0bf04280200220041046a22012000490d0041f0bf0441f4bf04280200200149047f410140002200417f46200041ffff0371200047720d0120004110742200418080046a22012000490d0141f4bf04200136020020004104720520010b360200200021020b20020b9c0102027f017e230041106b220124002001420037030841042102027f02400340200241084604402001410436020820012903082203a741044f0d0241e08104411b41dc82041009000b20012000101220012d0000410171450440200141086a20026a20012d00013a0000200241016a21020c010b0b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b3f01027f230041106b22022400200241003a000f200020012002410f6a410110182201047f41000520022d000f0b3a0001200020013a0000200241106a24000b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b2002200341c8ba04102e000b2601017f2000280200220145044041000f0b10102200044020002001101436020020000f0b000b12004100101641ff017141a485044122100f0b8d0502057f017e230041e0006b220124000240027f2000450440200141808001360244200141fabf04360240200141406b1019200120012903403703104106200141106a10114281feffffff1f834280b6baede90b520d011a2001410036023820014200370310200141d8006a4200370300200141d0006a4200370300200141c8006a420037030020014200370340200141106a200141406b100c41080c010b200141808001360244200141fabf04360240200141406b101920012001290340370310410121000240200141106a10112206a722044101710d00200642ffffffffff1f832206422088a721052006421888a721032006421088a72102200441087641ff01712204412f470440200441e80147200241ff017141c4014772200341ff017141de0047200541b6014772720d012001200141106a100a20012802000d012001280204210341002102410021000c010b200241ff017141860147200341ff017141db004772200541d90147720d0041002100410121020b410620000d001a20024101710d01200141d8006a4200370300200141d0006a4200370300200141c8006a420037030020014200370340200141106a200141406b1006200141386a21000340200028020022000d000b20012003360238200141106a200141406b100c41080b200141e0006a24000f0b200141d8006a4200370300200141d0006a4200370300200141c8006a420037030020014200370340200141106a200141406b10062001200141386a101436020c230041106b2200240020002001410c6a36020c2000410c6a2802002101230041206b22002400200041186a41808001360200200041fabf0436021420004100360210200041086a200041106a2001100d41002000280208200028020c1005000bca0102037f027e230041206b22002400200041808001360204200041fabf0436020020004180800136021041fabf04200041106a100220002000280210100720002000290300370308200041186a2201420037030020004200370310200041086a200041106a41101018220245044020002903102104200129030021030b20020440200041003a0010418084044134200041106a41c0810441948504100b000b410841072003200484501b41ac860441c300100f4101101641ff017141ef8604411b100f200041206a24000bd10101057f230041106b220324000240200028020422042002492205450440200341086a41002002200028020022061051200328020c22072002470d0120012003280208200210521a20032002200420061051200020032903003702000b200341106a240020050f0b230041306b2200240020002007360204200020023602002000411c6a41023602002000412c6a41033602002000420337020c200041c89904360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a41f898041026000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10042000200128020c1007200141106a24000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a418c8704200241086a101b200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a103620032003290310370320200341086a20042000410c6a103620032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002101d41000b3f01017f20002002101f2000280208220320002802006a2001200210521a2003200220036a22014b044041b08704411c41d48b041009000b200020013602080bb90201027f230041106b22022400024002400240200028020022002002410c6a027f02400240200141ff004d0440200028020822032000280204460d010c040b2002410036020c2001418010490d0120014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c020b20004101101f200028020821030c020b20022001413f71418001723a000d2002200141067641c001723a000c41020b101d0c010b200028020020036a20013a0000200341016a22012003490d01200020013602080b200241106a240041000f0b41b08704411c41c48b041009000bc50301077f230041106b22052400024002400240200120002802042207200028020822026b4b0440200120026a22012002490d03200720076a22032007490d022000280200410020071b210841002102230041106b220624002005027f2003200120012003491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001102220062802082104200628020c0c030b200141f0bf04280200220320016a22022003490d021a41f4bf042802002002490440200141ffff036a22042001490d02200441107640002202417f46200241ffff0371200247720d022002411074220320044180807c716a22022003490d024100210441f4bf0420023602002001200120036a22022003490d031a0b41f0bf04200236020020012003450d021a2003200820071052210420010c020b2006200110222006280200210420062802040c010b4100210420010b2102200404402005200436020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d01000b41808a04412141a48a041009000b1021000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a101a200241206a24000b0f0041b48a04411141c88a041009000bb90101037f2001047f230041106b22042400027f410041f0bf04280200220220016a22032002490d001a024041f4bf042802002003490440200141ffff036a22022001490d012002411076220340002202417f46200241ffff0371200247720d012002411074220220034110746a22032002490d0141f4bf0420033602004100200120026a22032002490d021a0b41f0bf04200336020020020c010b41000b200441106a24000541010b210220002001360204200020023602000b0e0020002802001a03400c000b000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341e49704360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a20021026000bf30202037f027e027f20003502002105230041306b220324004127210002400240024003402005428fce005804402005a7220241e3004a0d020c030b2000200041046b22004c0d0320054290ce00802106200341096a20006a20054290ce0082a7220241e4006e41017441c292046a2f00003b00002000200041026a22044c0440200341096a20046a200241e4007041017441c292046a2f00003b0000200621050c010b0b41a08c04411c41f4ae041009000b2000200041026b22004c0d01200341096a20006a2005a741ffff0371220241e4007041017441c292046a2f00003b0000200241e4006e21020b02402002410a4e04402000200041026b22004c0d02200341096a20006a200241017441c292046a2f00003b00000c010b2000200041016b22004c0d01200341096a20006a200241306a3a00000b412720006b220241274b04400c010b20014188be044100200341096a20006a20021029200341306a24000c010b41f08b04412141f4ae041009000b0bfb0301077f230041106b220224002002200136020c200220003602082002418c8f0436020420024188be04360200230041406a220324002003200236020c200341346a410136020020034202370224200341ccb9043602202003410436023c2003200341386a36023020032003410c6a360238200341106a210641002101230041206b22042400200341206a220528020422074103742102200528020022082100024002400240024002400340200204402001200120002802046a22014b0d02200241086b2102200041086a21000c010b0b02400240200541146a280200450440200121000c010b02402007450d0020082802040d004100210220014110490d020b41002102200120016a22002001490d010b200022024100480d020b20042002102220042802002200450d0220042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a101a0d03200441206a24000c040b41b08704411c41e4ae041009000b1021000b000b41dc87044133200441086a41cc870441f88804100b000b2003280210210020032802182101024041f8bf042d000045044041f9bf042d00004101710d010b2000200110031008410947044041f8bf0441013a00000b41f9bf0441013a00000b000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41f08b044121418cbf041009000b0c0042fbe3b7f3e291cedb280b9b0401077f230041106b22072400418080c40021092004210502402000280200220a410171450d002004200441016a22054d0440412b21090c010b41a08c04411c419095041009000b0240024002400240200a41047145044041002101200521060c010b2001200120026a102a20056a22062005490d010b41012105200028020841014704402000200920012002102b0d032000280218200320042000411c6a28020028020c11000021050c030b024002402000410c6a280200220820064b0440200a4108710d01200820066b220620084b0d022007200020064101102c20072802002206418080c400460d05200728020421082000200920012002102b0d0520002802182201200320042000411c6a280200220028020c1100000d052006200820012000102d21050c050b2000200920012002102b0d042000280218200320042000411c6a28020028020c11000021050c040b2000280204210a2000413036020420002d0020210b200041013a00202000200920012002102b0d03200820066b220120084b0d02200741086a200020014101102c20072802082201418080c400460d03200728020c210220002802182206200320042000411c6a280200220328020c1100000d032001200220062003102d0d032000200b3a00202000200a360204410021050c030b41f08b04412141c095041009000b41a08c04411c41a095041009000b41f08b04412141b095041009000b200741106a240020050b4201017f02400340200020014704402002200220002d000041c00171418001476a22024b0d02200041016a21000c010b0b20020f0b41a08c04411c41e4ae041009000b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000bb20101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03010001020b2002200241016a22034d044020034101762105200241017621040c020b41a08c04411c41d095041009000b41002105200221040b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110100450d000b200441016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341f08f04360208200341033602242003200341206a360218200320033602282003200341046a360220200341086a20021026000bb70101017f230041106b220624000240200120024d0440200220044d0d012002200420051030000b230041306b2200240020002002360204200020013602002000411c6a41023602002000412c6a41033602002000420237020c200041b89804360208200041033602242000200041206a3602182000200041046a36022820002000360220200041086a20051026000b200641086a2001200220031027200020062802083602002000200628020c360204200641106a24000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341849804360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a20021026000b880101047f200141086a28020021022001280204210402400240200141046a10322205418080c400470440200220046b2203200128020420012802086b6a220220034b0d012001280200220320026a22022003490d02200120023602000b20002005360204200020033602000f0b41f08b04412141cc9a041009000b41a08c04411c41dc9a041009000bf00101057f2000280200220120002802042203460440418080c4000f0b2000200141016a220236020020012d00002204411874411875417f4c047f027f200220034604402003210241000c010b2000200141026a220236020020012d0001413f710b21012004411f712105200441df014d044020012005410674720f0b2001410674027f200220034604402003210141000c010b2000200241016a220136020020022d0000413f710b722102200441f00149044020022005410c74720f0b2001200346047f4100052000200141016a36020020012d0000413f710b2005411274418080f00071200241067472720520040b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b9e0301067f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a1031200228021c418080c400470d010c020b0b200241106a200241206a10312002280214418080c400460d00200241086a2002280210200320041033200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a102a22054d04402001280218200320042001411c6a28020028020c11000021000c010b20022001200020056b4100102c4101210020022802002205418080c400460d002002280204210620012802182207200320042001411c6a280200220128020c1100000d002005200620072001102d21000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044105470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141b092041024000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a101b200341206a24000b6c01027f230041206b2202240041012103024020002001103a0d002002411c6a410036020020024188be043602182002420137020c200241988d04360208200141186a2802002001411c6a280200200241086a10380d00200041046a2001103a21030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d012000200110250c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a1037200141c0920441022002280208200228020c10290c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a1037200141c0920441022002280200200228020410290b20024190016a24000bca08010d7f230041e0006b22032400200341d8006a210e2000280204210c2000280200210d2000280208210a024003402002450d010240200a2d00000440200d419c90044104200c28020c1100000d010b2003410a3602582003428a808080103703502003200236024c41002100200341003602482003200236024420032001360240200222052106200121040340200341386a2004200620002005103c024002400240024002400240024020032802382207450d00024002402003280254220041016b220420004d0440200320046a41d8006a2d00002108200328023c220641084f0440200741036a417c7120076b2204450440410021050c030b41002100200341306a410020062004200420064b1b22052007200641d09604102f200328023421092003280230210b034020002009460d032000200b6a2d00002008460d042000200041016a22044d0440200421000c010b0b41a08c04411c41f0af041009000b41002100034020002006460d04200020076a2d00002008460d03200041016a21000c000b000b41f08b04412141dc9d041009000b02402006200641086b22044f0440200841818284086c21000c010b41f08b04412141e096041009000b02400340024020042005490d00200541046a22092005490d06200520076a280200200073220b417f73200b41818284086b71200720096a2802002000732209417f73200941818284086b7172418081828478710d002005200541086a22054d0d010c020b0b200520064b0d05200341286a200520062007102741002100200328022c2106200328022821070240034020002006460d04200020076a2d00002008460d012000200041016a22044d0440200421000c010b0b41a08c04411c41f0af041009000b200020056a220020054f0d0141a08c04411c41a097041009000b41a08c04411c418097041009000b2000200041016a22044b0d042004200328024822046a22002004490d0520032000360248200020032802542204490d06200341206a20032802402003280244200020046b22062000103c20032802202200450d0620032802242104200341186a41002003280254200e4104418c9e04102f2004200328021c470d06027f20032802182105034041002004450d011a200441016b210420052d0000210720002d00002108200041016a2100200541016a210520072008460d000b200820076b0b0d06200a41013a0000200641016a220020064f0d0141a08c04411c419091041009000b200a41003a0000200221000b200341106a20002001200241a09104103d200d20032802102003280214200c28020c1100000d06200341086a20002001200241b09104103e200328020c2102200328020821010c070b41a08c04411c41f096041009000b20052006419097041024000b41a08c04411c41ec9d041009000b41a08c04411c41fc9d041009000b200328024c21052003280248210020032802442106200328024021040c000b000b0b4101210f0b200341e0006a2400200f0b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011027200528020c2107200528020821060b2000200736020420002006360200200541106a24000b4e01027f230041106b22052400200541086a20012002200310332005280208220645044020022003410020012004103f000b200528020c21012000200636020020002001360204200541106a24000b6400024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b2003200320016b220449044041f08b04412141d89b041009000b200020043602042000200120026a3602000f0b20022003200120032004103f000baf0601027f23004180016b220524002005200336021c200520023602182005027f024020014181024f0440418002210603402006450440410021060c030b200020066a2c000041bf7f4a0d02200641016b21060c000b000b200520013602242005200036022020054188be0436022841000c010b200541106a20062000200141dc9c04103d200520052903103703202005419c9e0436022841050b36022c024020012002492206200120034972450440200220034d0440024002402002450d00200120024d044020012002460d010c020b200020026a2c00004140480d010b200321020b2005200236023003400240024002402002450440410021020c010b200120024d044020012002470d02200121020c010b200020026a2c00004140480d010b200541086a2002200020012004103e20052005280208220036025820052000200528020c6a36025c2005200541d8006a1032200410402201360234027f41012001418001490d001a41022001418010490d001a41034104200141808004491b0b20026a220020024f0d0141a08c04411c20041009000b200241016b21020c010b0b2005200036023c20052002360238200541d4006a4105360200200541fc006a4102360200200541f4006a4102360200200541ec006a4106360200200541e4006a410736020020054205370244200541d49f043602402005410336025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580c020b200541f4006a4102360200200541ec006a4102360200200541e4006a4103360200200541d4006a410436020020054204370244200541809f043602402005410336025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580c010b20052002200320061b360238200541d4006a4103360200200541ec006a4102360200200541e4006a410236020020054203370244200541c49e043602402005410336025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580b200541406b20041026000b1a002000418080c40046044041bc8e04412b20011009000b20000b860a02087f017e4101210602402001280218220741272001411c6a28020028021022081101000d0041f4002103410221010240027f02400240027f0240024002402000280200220241096b0e050704010105000b2002412746200241dc0046720d010b2002410b74210541002101411f2100411f21040240027e024002400240024002400240024002400240024002400340200020014d0d02200120044101766a22032001490d030240200520034102744180b0046a280200410b7422044d044020042005460d03200321000c010b200341016a22012003490d050b200020016b220420004d0d000b41f08b04412141e898041009000b200341016a21010b2001411e4b0d02200141027422034180b0046a280200411576210002402001411e47044020034184b0046a280200411576220320006b220420034d0d0141f08b0441214190ad041009000b41b10520006b220441b2054f0d040b4100210320022001200141016b22054f047f2005411f4f0d0520054102744180b0046a28020041ffffff00710541000b6b220920024b0d05200441016b220120044b0d06200041b105200041b1054b1b2105200020046a41016b2103410021040240024003400240024002402001047f20002005460d0e20042004200041fcb0046a2d00006a22044b0d01200420094d0d0220000520030b4101710d0e200241808004490d022002418080084f0d04200241d9a604412641a5a70441af0141d4a80441a30310420d100c050b41a08c04411c41d0ad041009000b200141016b2101200041016a21000c010b0b200241b0a10441294182a20441a20241a4a40441b5021042450d010c0c0b200241decd0a6b412249200241b5ee0a6b410b4972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d0b0b200241017267410276410773ad4280808080d000840c090b41a08c04411c41c898041009000b41a08c04411c41d898041009000b2001411f41f0ac04102e000b41f08b0441214180ad041009000b2005411f41e0ad04102e000b41f08b04412141a0ad041009000b41f08b04412141b0ad041009000b200541b10541c0ad04102e000b200241017267410276410773ad4280808080d000840b210a41032101200221030c060b41010c010b41020b2101200221030c030b41ee000c010b41f2000b21030b0240034002402001210241002101200321000240024002400240200241016b0e03030200010b02400240024002400240200a422088a741ff017141016b0e050004010203050b200a42ffffffff8f6083210a41fd002100410321010c060b200a42ffffffff8f608342808080802084210a41fb002100410321010c050b200a42ffffffff8f608342808080803084210a41f5002100410321010c040b200a42ffffffff8f60834280808080c00084210a41dc002100410321010c030b200aa7220141ffffffff03712001470d032001410274220041204f0d0520032000411c7176410f712200413072200041d7006a2000410a491b41ac8e04104021002001450440200a42ffffffff8f608342808080801084210a410321010c030b200a42808080807083200a42017d42ffffffff0f8384210a410321010c020b20074127200811010021060c050b41dc002100410121010b200720002008110100450d010c030b0b41c08c044121418c8e041009000b41f08c044124419c8e041009000b20060bfa0201067f230041106b22072400200120024101746a210c20004180fe0371410876210a410021020240024002400240034002402001200c470440200220012d00016a22082002490d04200141026a210b20012d00002209200a460d01200b2101200821022009200a4d0d020b200520066a2104200041ffff0371210241012103034020042005460d03200541016a210020052d000022014118744118752206410048044020002004460d0620052d0001200641ff0071410874722101200541026a21000b200141004a2002200220016b22024a730d0620024100480d0320034101732103200021050c000b000b200741086a20022008200320044180a104102f20072802082102200728020c210103402001450440200b2101200821020c020b200141016b210120022d0000200241016a2102200041ff0171470d000b0b410021030b200741106a240020034101710f0b41a08c04411c41f0a0041009000b41bc8e04412b4190a1041009000b41f08b04412141a0a1041009000be30101017f230041106b220224002002410036020c20002002410c6a027f0240024020014180014f04402001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200220013a000c41010c020b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040b103b200241106a24000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a418c9404200241086a101b200241206a24000b0d00200028020020012002103b0b0b002000280200200110430b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1044200241206a24000b940101027f20002d00082101200028020422020440200141ff017121012000027f410120010d001a024020024101470d0020002d0009450d00200028020022022d00004104710d004101200228021841c5910441012002411c6a28020028020c1100000d011a0b2000280200220128021841c6910441012001411c6a28020028020c1100000b22013a00080b200141ff01714100470b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a101b200241206a24000b0b002000280200200110340b4900230041106b220024002000200128021841c1bf0441052001411c6a28020028020c1100003a000820002001360200200041003a00092000410036020420001048200041106a24000b4900230041106b220024002000200128021841adb604410b2001411c6a28020028020c1100003a000820002001360200200041003a00092000410036020420001048200041106a24000b1b00200028021841c1bf0441052000411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a2802002204419c8f04410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241ac8f04360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a1038450d010c020b20032802002200200328020428020c11080042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241ac8f04360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a10380d010b200328020c2100200241246a41033602002002413c6a410a360200200241346a410a36020020024203370214200241f48e0436021020022000410c6a3602382002200041086a3602302002410236022c200220003602282002200241286a36022020042001200241106a103821000b200241406b240020000bc60701017f230041d0006b22022400027f0240024002400240024002400240024002400240024020002d000041016b0e0a0102030405060708090a000b200128021841debc0441062001411c6a28020028020c1100002100200241003a001120022001360208027f410120000d001a20012d00004104714504404101200128021841c491044101200128021c28020c1100000d011a2001104d0c010b4101200128021841c291044102200128021c28020c1100000d001a20012802002100200241013a0027200241c4006a41849004360200200241206a200241276a3602002002200036022820022001290218370318200220012d00203a00482002200128020436022c20022001290210370338200220012902083703302002200241186a3602404101200241286a104d0d001a200228024041c091044102200228024428020c1100000b21002002410136020c200220003a0010200241086a10480c0a0b2002200128021841d1bc04410d2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c090b2002200128021841c3bc04410e2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c080b2002200128021841b8bc04410b2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c070b20022001280218419fbc0441192001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c060b200220012802184191bc04410e2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c050b2002200128021841fdbb0441142001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c040b2002200128021841f1bb04410c2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c030b2002200128021841e6bb04410b2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c020b2002200128021841dfbb0441072001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c010b2002200128021841d0bb04410f2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480b200241d0006a24000bd80201017f230041106b2202240002400240024002400240024002400240024020002d000041016b0e0701020304050607000b2002200128021841f8bd04410f2001411c6a28020028020c1100003a00080c070b2002200128021841debd04411a2001411c6a28020028020c1100003a00080c060b2002200128021841cbbd0441132001411c6a28020028020c1100003a00080c050b2002200128021841babd0441112001411c6a28020028020c1100003a00080c040b20022001280218419ebd04411c2001411c6a28020028020c1100003a00080c030b200220012802184189bd0441152001411c6a28020028020c1100003a00080c020b2002200128021841f8bc0441112001411c6a28020028020c1100003a00080c010b2002200128021841e4bc0441142001411c6a28020028020c1100003a00080b20022001360200200241003a00092002410036020420021048200241106a24000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41a0bf044121418cbf041009000b2b01017f03402002200346450440200020036a200120036a2d00003a0000200341016a21030c010b0b20000b0bcf3f0700418080040ba107636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d332e302e302d7263352f7372632f7472616974732f6d6f642e727327000100610000008f0000000a00000073746f7261676520656e7472792077617320656d707479002700010061000000900000000a0000000b00000001000000010000000c0000000d00000001000000010000000e0000005765206465636f646520604e6020656c656d656e74733b207165642f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e72730000fb0001005f000000cd020000170000002f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d332e302e302d7263352f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273656e636f756e746572656420756e6578706563746564206572726f726c01010068000000e900000017000000656e636f756e7465726564206572726f72207768696c65207175657279696e67207472616e736665727265642062616c616e63652f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f6c616e672d332e302e302d7263352f7372632f646973706174636865722e72730000340201005e000000910000000a0000006661696c656420746f2064697370617463682074686520636f6e7374727563746f722f55736572732f746d2f6768712f6769746875622e636f6d2f746173682d32732f32303231303933305f706f6c6b61646f745f6170692d636f6e74726163745f6572726f722f7265637572736976652f6c69622e7273c6020100560000001c0000000100000063616c6c6572207472616e736665727265642076616c7565206576656e2074686f75676820616c6c20696e6b21206d6573736167652064656e79207061796d656e74736661696c656420746f206469737061746368207468652063616c6c00000f00000004000000040000001000000011000000120041b087040bc202617474656d707420746f206164642077697468206f766572666c6f77130000000000000001000000140000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000000f04010066000000470200001c0000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72730041808a040be101617474656d707420746f206d756c7469706c792077697468206f766572666c6f77000000880401006a000000b50100001c0000006361706163697479206f766572666c6f77000000880401006a0000002f020000050000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72730000580501006a0000008e0600000d000000580501006a000000ca060000090041f08b040b21617474656d707420746f2073756274726163742077697468206f766572666c6f770041a08c040b41617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770041f08c040bc52a617474656d707420746f2073686966742072696768742077697468206f766572666c6f772e2e000094060100020000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e72730000a00601006a000000a200000035000000a00601006a000000a200000021000000a00601006a000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c756500081f0100000000003a000000081f010000000000700701000100000070070100010000001500000000000000010000001600000070616e69636b65642061742027272c20a807010001000000a907010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e646578206973200000bc07010020000000dc0701001200000060000000170000000c0000000400000018000000190000001a000000202020202f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e72730000200801006e0000002800000015000000200801006e0000002f00000021000000200801006e00000030000000120000002c0a280a282c292f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e7273c70801006900000065000000140000003078303030313032303330343035303630373038303931303131313231333134313531363137313831393230323132323233323432353236323732383239333033313332333333343335333633373338333934303431343234333434343534363437343834393530353135323533353435353536353735383539363036313632363336343635363636373638363937303731373237333734373537363737373837393830383138323833383438353836383738383839393039313932393339343935393639373938393900001b00000004000000040000001c0000001d0000001e0000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000240a0100690000001f0500000d000000240a010069000000230500000d000000240a0100690000004605000031000000240a0100690000004f05000031000000240a010069000000b3050000380000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e72730000e00a01006e000000410000001e000000e00a01006e0000004800000015000000e00a01006e0000004d0000001f000000e00a01006e0000005600000009000000e00a01006e0000005a00000005000000e00a01006e0000005a0000003d00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820b00b010012000000c20b01002200000072616e676520656e6420696e64657820f40b010010000000c20b010022000000736c69636520696e64657820737461727473206174202062757420656e64732061742000140c0100160000002a0c01000d0000004b1c01006b00000095080000170000004b1c01006b000000a0080000180000004b1c01006b000000a9080000140000004b1c01006b000000f00b00000d000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028880c0100150000009d0c01002b000000c6080100010000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e72730000e00c01006a0000009100000026000000e00c01006a00000091000000110000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e72736c0d01006c0000005d010000130000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e7273000000e80d01007100000011010000110000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72730000006c0e01006d00000099010000470000006c0e01006d000000ac010000200000006c0e01006d000000ac010000110000006c0e01006d000000b0010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000210f01000b0000002c0f0100160000000008010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e67206000005c0f01000e0000006a0f0100040000006e0f0100100000000008010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060210f01000b000000a00f010026000000c60f010008000000ce0f01000600000000080100010000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e727300fc0f0100730000000800000018000000fc0f0100730000000a0000001c000000fc0f0100730000001a00000036000000fc0f0100730000001e0000000900000000010305050606030706080809110a1c0b190c140d100e0d0f0410031212130916011705180219031a071c021d011f1620032b032c022d0b2e01300331023201a702a902aa04ab08fa02fb05fd04fe03ff09ad78798b8da23057588b8c901c1ddd0e0f4b4cfbfc2e2f3f5c5d5fb5e2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d112945495764658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff800d6d71dedf0e0f1f6e6f1c1d5f7d7eaeafbbbcfa16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f7475962f5f262e2fa7afb7bfc7cfd7df9a409798308f1fc0c1ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091feff536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab35280b80e003190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15053a0311070605100757070207150d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd035907150b1709140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a06213f4c042d0374083c030f033c0738082b0582ff1118082f112d032010210f808c048297190b158894052f053b07020e180980b32d740c80d61a0c0580ff0580df0cee0d03848d033709815c1480b80880cb2a38030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a511816d1078282a064c04808d0480be031b030f0d0006010103010402080809020a050b020e041001110212051311140115021702190d1c051d0824016a036b02bc02d102d40cd509d602d702da01e005e102e802ee20f004f802f902fa02fb010c273b3e4e4f8f9e9e9f060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5feeef5a629a9b2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf79cc6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b018090813709160a088098390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a561c1417094e041e0f430e19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d1339070a362c041080c03c64530c48090a46451b4808531d398107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48abc842f8fd18247a1b98239072a040260260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2f7811f3103110408818c89046b050d03090710936080f60a73086e1746809a140c570919808781470385420f1585502b80d52d031a040281703a0501850080d7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d8080d030d03740c59070c140c0438080a062808224e81540c15030305070919070709030d072980cb250a84062f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e7273000000f7150100760000004b00000028000000f7150100760000004f00000009000000f7150100760000004d00000009000000f7150100760000005400000011000000f7150100760000005600000011000000f7150100760000005700000016000000f7150100760000005800000009000000f715010076000000520000003e0000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e727300f0160100730000008d00000001000000c708010069000000ce010000050000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273841701006c00000085000000010000000003000083042000910560005d13a0001217a01e0c20e01eef2c202b2a30a02b6fa6602c02a8e02c1efbe02d00fea0359effe035fd016136010aa136240d6137ab0ee1382f182139301c6146f31ea14af06a614e4f6fa14e9dbc214f65d1e14f00da215000e0e15130e16153ece2a154d0e8e15420002e55f001bf5500700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b03770f0120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c0109012801030139030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d031d021e02400201070801020b09012d03770222017603040209010603db0202013a010107010101010208060a020130113f0430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c63a01050001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990bb001360f3803310402024503240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002000101030405080802071e0494030037043208010e011605010f000701110207010201050007000400076d07006080f0004c61796f75744572726f722f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e72730000381b01006e0000000e010000180041c0b7040bad08617474656d707420746f206164642077697468206f766572666c6f77381b01006e000000100100003900000063616c6c65642060526573756c743a3a756e77726170282960206f6e20616e2060457272602076616c7565001f000000000000000100000020000000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e727300004b1c01006b000000ff050000090000000a000000081f010000000000c81c0100010000002f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d332e302e302d7263352f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000dc1c01006900000063000000090000002f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d332e302e302d7263352f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000581d0100660000006f010000140000004c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e644e6577436f6e74726163744e6f7446756e6465645472616e736665724661696c656442656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f646550616964556e70617961626c654d657373616765436f756c644e6f7452656164496e707574496e76616c696443616c6c506172616d6574657273496e76616c6964496e7374616e7469617465506172616d6574657273496e76616c6964506172616d6574657273556e6b6e6f776e43616c6c53656c6563746f72556e6b6e6f776e496e7374616e746961746553656c6563746f72556e6b6e6f776e53656c6563746f72003a200000081f010000000000081f0100020000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e72730000001c1f01006d000000e00000004c00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f774572726f7200000b000000010000000200000003000000040000000500000006000000070000000800000009" - }, - "contract": { - "name": "recursive", - "version": "0.1.0", - "authors": ["[your_name] <[your_email]>"] - }, - "spec": { - "constructors": [{ "args": [], "docs": [], "name": ["new"], "selector": "0x9bae9d5e" }], - "docs": [], - "events": [], - "messages": [ - { - "args": [], - "docs": [], - "mutates": false, - "name": ["get"], - "payable": false, - "returnType": { "displayName": ["MyEnum"], "type": 1 }, - "selector": "0x2f865bd9" - }, - { - "args": [{ "name": "new", "type": { "displayName": ["MyEnum"], "type": 1 } }], - "docs": [], - "mutates": true, - "name": ["set"], - "payable": false, - "returnType": null, - "selector": "0xe8c45eb6" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "value" - } - ] - } - }, - "types": [ - { - "def": { - "variant": { - "variants": [ - { "name": "A" }, - { - "fields": [{ "type": 1, "typeName": "ink_prelude::boxed::Box" }], - "name": "B" - } - ] - } - }, - "path": ["recursive", "MyEnum"] - } - ] -} diff --git a/.api-contract/src/test/contracts/user/v0/withString.json b/.api-contract/src/test/contracts/user/v0/withString.json deleted file mode 100644 index 2c42e438..00000000 --- a/.api-contract/src/test/contracts/user/v0/withString.json +++ /dev/null @@ -1,661 +0,0 @@ -{ - "metadataVersion": "0.1.0", - "source": { - "hash": "0xafcd0acf1a747cca1febe5bad81a6c0244a381ceb02635ab1069a1a396adda3f", - "language": "ink! 3.0.0-rc1", - "compiler": "rustc 1.49.0-nightly" - }, - "contract": { - "name": "erc20", - "version": "0.1.0", - "authors": ["[your_name] <[your_email]>"] - }, - "spec": { - "constructors": [ - { - "args": [ - { - "name": "initial_supply", - "type": { - "displayName": ["Balance"], - "type": 1 - } - }, - { - "name": "_name", - "type": { - "displayName": ["String"], - "type": 12 - } - }, - { - "name": "_symbol", - "type": { - "displayName": ["String"], - "type": 12 - } - } - ], - "docs": [], - "name": ["new"], - "selector": "0xd183512b" - } - ], - "docs": [], - "events": [ - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "from", - "type": { - "displayName": ["Option"], - "type": 14 - } - }, - { - "docs": [], - "indexed": true, - "name": "to", - "type": { - "displayName": ["Option"], - "type": 14 - } - }, - { - "docs": [], - "indexed": true, - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 1 - } - } - ], - "docs": [], - "name": "Transfer" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "docs": [], - "indexed": true, - "name": "spender", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "docs": [], - "indexed": true, - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 1 - } - } - ], - "docs": [], - "name": "Approval" - } - ], - "messages": [ - { - "args": [], - "docs": [], - "mutates": false, - "name": ["total_supply"], - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 1 - }, - "selector": "0xdcb736b5" - }, - { - "args": [], - "docs": [], - "mutates": false, - "name": ["name"], - "payable": false, - "returnType": { - "displayName": ["String"], - "type": 12 - }, - "selector": "0xa0a95494" - }, - { - "args": [], - "docs": [], - "mutates": false, - "name": ["symbol"], - "payable": false, - "returnType": { - "displayName": ["String"], - "type": 12 - }, - "selector": "0x57178a4a" - }, - { - "args": [ - { - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "docs": [], - "mutates": false, - "name": ["balance_of"], - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 1 - }, - "selector": "0x56e929b2" - }, - { - "args": [ - { - "name": "owner", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "name": "spender", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - } - ], - "docs": [], - "mutates": false, - "name": ["allowance"], - "payable": false, - "returnType": { - "displayName": ["Balance"], - "type": 1 - }, - "selector": "0xf3cfff66" - }, - { - "args": [ - { - "name": "to", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 1 - } - } - ], - "docs": [], - "mutates": true, - "name": ["transfer"], - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 13 - }, - "selector": "0xfae3a09d" - }, - { - "args": [ - { - "name": "spender", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 1 - } - } - ], - "docs": [], - "mutates": true, - "name": ["approve"], - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 13 - }, - "selector": "0x03d0e114" - }, - { - "args": [ - { - "name": "from", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "name": "to", - "type": { - "displayName": ["AccountId"], - "type": 5 - } - }, - { - "name": "value", - "type": { - "displayName": ["Balance"], - "type": 1 - } - } - ], - "docs": [], - "mutates": true, - "name": ["transfer_from"], - "payable": false, - "returnType": { - "displayName": ["bool"], - "type": 13 - }, - "selector": "0xfcfb2ccd" - } - ] - }, - "storage": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0000000000000000000000000000000000000000000000000000000000000000", - "ty": 1 - } - }, - "name": "total_supply" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0100000000000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0200000000000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0200000001000000000000000000000000000000000000000000000000000000", - "ty": 4 - } - }, - "len": 4294967295, - "offset": "0x0300000000000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0300000001000000000000000000000000000000000000000000000000000000", - "ty": 9 - } - }, - "offset": "0x0200000001000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "balances" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0300000001000000000000000000000000000000000000000000000000000000", - "ty": 2 - } - }, - "name": "header" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "cell": { - "key": "0x0400000001000000000000000000000000000000000000000000000000000000", - "ty": 3 - } - }, - "name": "len" - }, - { - "layout": { - "array": { - "cellsPerElem": 1, - "layout": { - "cell": { - "key": "0x0400000002000000000000000000000000000000000000000000000000000000", - "ty": 10 - } - }, - "len": 4294967295, - "offset": "0x0500000001000000000000000000000000000000000000000000000000000000" - } - }, - "name": "elems" - } - ] - } - }, - "name": "entries" - } - ] - } - }, - "name": "keys" - }, - { - "layout": { - "hash": { - "layout": { - "cell": { - "key": "0x0500000002000000000000000000000000000000000000000000000000000000", - "ty": 9 - } - }, - "offset": "0x0400000002000000000000000000000000000000000000000000000000000000", - "strategy": { - "hasher": "Blake2x256", - "postfix": "", - "prefix": "0x696e6b20686173686d6170" - } - } - }, - "name": "values" - } - ] - } - }, - "name": "allowances" - }, - { - "layout": { - "cell": { - "key": "0x0500000002000000000000000000000000000000000000000000000000000000", - "ty": 12 - } - }, - "name": "name" - }, - { - "layout": { - "cell": { - "key": "0x0600000002000000000000000000000000000000000000000000000000000000", - "ty": 12 - } - }, - "name": "symbol" - } - ] - } - }, - "types": [ - { - "def": { - "primitive": "u128" - } - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "last_vacant", - "type": 3 - }, - { - "name": "len", - "type": 3 - }, - { - "name": "len_entries", - "type": 3 - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "Header"] - }, - { - "def": { - "primitive": "u32" - } - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 5 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [5], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "type": 6 - } - ] - } - }, - "path": ["ink_env", "types", "AccountId"] - }, - { - "def": { - "array": { - "len": 32, - "type": 7 - } - } - }, - { - "def": { - "primitive": "u8" - } - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "next", - "type": 3 - }, - { - "name": "prev", - "type": 3 - } - ] - } - }, - "path": ["ink_storage", "collections", "stash", "VacantEntry"] - }, - { - "def": { - "composite": { - "fields": [ - { - "name": "value", - "type": 1 - }, - { - "name": "key_index", - "type": 3 - } - ] - } - }, - "params": [1], - "path": ["ink_storage", "collections", "hashmap", "ValueEntry"] - }, - { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8 - } - ], - "name": "Vacant" - }, - { - "fields": [ - { - "type": 11 - } - ], - "name": "Occupied" - } - ] - } - }, - "params": [11], - "path": ["ink_storage", "collections", "stash", "Entry"] - }, - { - "def": { - "tuple": [5, 5] - } - }, - { - "def": { - "primitive": "str" - } - }, - { - "def": { - "primitive": "bool" - } - }, - { - "def": { - "variant": { - "variants": [ - { - "name": "None" - }, - { - "fields": [ - { - "type": 5 - } - ], - "name": "Some" - } - ] - } - }, - "params": [5], - "path": ["Option"] - } - ] -} diff --git a/.api-contract/src/test/contracts/user/v3/ask.json b/.api-contract/src/test/contracts/user/v3/ask.json deleted file mode 100644 index a254f602..00000000 --- a/.api-contract/src/test/contracts/user/v3/ask.json +++ /dev/null @@ -1,458 +0,0 @@ -{ - "source": { - "hash": "", - "language": "Ask! 0.4.0", - "compiler": "asc 0.19.23" - }, - "contract": { - "name": "", - "version": "", - "authors": [] - }, - "V3": { - "spec": { - "constructors": [ - { - "args": [ - { - "type": { - "type": 1, - "displayName": ["string"] - }, - "label": "name" - }, - { - "type": { - "type": 1, - "displayName": ["string"] - }, - "label": "symbol" - } - ], - "docs": [], - "label": "default", - "payable": false, - "selector": "0xed4b9d1b" - } - ], - "messages": [ - { - "mutates": true, - "payable": true, - "args": [ - { - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "label": "to" - }, - { - "type": { - "type": 4, - "displayName": ["u128"] - }, - "label": "amount" - } - ], - "docs": [], - "label": "mint", - "selector": "0xcfdd9aa2" - }, - { - "mutates": true, - "payable": true, - "args": [ - { - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "label": "from" - }, - { - "type": { - "type": 4, - "displayName": ["u128"] - }, - "label": "amount" - } - ], - "docs": [], - "label": "burn", - "selector": "0xb1efc17b" - }, - { - "mutates": false, - "payable": false, - "args": [], - "returnType": { - "type": 1, - "displayName": ["string"] - }, - "docs": [], - "label": "name", - "selector": "0x3adaf70d" - }, - { - "mutates": false, - "payable": false, - "args": [], - "returnType": { - "type": 1, - "displayName": ["string"] - }, - "docs": [], - "label": "symbol", - "selector": "0x9bd1933e" - }, - { - "mutates": false, - "payable": false, - "args": [], - "returnType": { - "type": 0, - "displayName": ["u8"] - }, - "docs": [], - "label": "decimal", - "selector": "0xcc3fec6d" - }, - { - "mutates": false, - "payable": false, - "args": [], - "returnType": { - "type": 4, - "displayName": ["u128"] - }, - "docs": [], - "label": "totalSupply", - "selector": "0xcae60595" - }, - { - "mutates": false, - "payable": false, - "args": [ - { - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "label": "account" - } - ], - "returnType": { - "type": 4, - "displayName": ["u128"] - }, - "docs": [], - "label": "balanceOf", - "selector": "0xf48def67" - }, - { - "mutates": true, - "payable": true, - "args": [ - { - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "label": "recipient" - }, - { - "type": { - "type": 4, - "displayName": ["u128"] - }, - "label": "amount" - } - ], - "returnType": { - "type": 5, - "displayName": ["bool"] - }, - "docs": [], - "label": "transfer", - "selector": "0x84a15da1" - }, - { - "mutates": false, - "payable": false, - "args": [ - { - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "label": "owner" - }, - { - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "label": "spender" - } - ], - "returnType": { - "type": 4, - "displayName": ["u128"] - }, - "docs": [], - "label": "allowance", - "selector": "0x6a00165e" - }, - { - "mutates": true, - "payable": true, - "args": [ - { - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "label": "spender" - }, - { - "type": { - "type": 4, - "displayName": ["u128"] - }, - "label": "amount" - } - ], - "returnType": { - "type": 5, - "displayName": ["bool"] - }, - "docs": [], - "label": "approve", - "selector": "0x681266a0" - }, - { - "mutates": true, - "payable": true, - "args": [ - { - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "label": "sender" - }, - { - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "label": "recipient" - }, - { - "type": { - "type": 4, - "displayName": ["u128"] - }, - "label": "amount" - } - ], - "returnType": { - "type": 5, - "displayName": ["bool"] - }, - "docs": [], - "label": "transferFrom", - "selector": "0x02a6e0d5" - }, - { - "mutates": true, - "payable": true, - "args": [ - { - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "label": "spender" - }, - { - "type": { - "type": 4, - "displayName": ["u128"] - }, - "label": "addedValue" - } - ], - "returnType": { - "type": 5, - "displayName": ["bool"] - }, - "docs": [], - "label": "increaseAllowance", - "selector": "0xcb005356" - }, - { - "mutates": true, - "payable": true, - "args": [ - { - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "label": "spender" - }, - { - "type": { - "type": 4, - "displayName": ["u128"] - }, - "label": "subtractedValue" - } - ], - "returnType": { - "type": 5, - "displayName": ["bool"] - }, - "docs": [], - "label": "decreaseAllowance", - "selector": "0xe19fabb4" - } - ], - "events": [ - { - "id": 1, - "label": "Transfer", - "args": [ - { - "label": "from", - "indexed": false, - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "docs": [""] - }, - { - "label": "to", - "indexed": false, - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "docs": [""] - }, - { - "label": "value", - "indexed": false, - "type": { - "type": 4, - "displayName": ["u128"] - }, - "docs": [""] - } - ], - "docs": [""] - }, - { - "id": 2, - "label": "Approval", - "args": [ - { - "label": "owner", - "indexed": false, - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "docs": [""] - }, - { - "label": "spender", - "indexed": false, - "type": { - "type": 3, - "displayName": ["AccountId"] - }, - "docs": [""] - }, - { - "label": "value", - "indexed": false, - "type": { - "type": 4, - "displayName": ["u128"] - }, - "docs": [""] - } - ], - "docs": [""] - } - ], - "docs": [""] - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 1, - "type": { - "def": { - "primitive": "str" - } - } - }, - { - "id": 2, - "type": { - "def": { - "array": { - "len": 32, - "type": 0 - } - } - } - }, - { - "id": 3, - "type": { - "def": { - "composite": { - "fields": [ - { - "name": "inner", - "type": 2, - "typeName": "FixedArray32" - } - ] - }, - "path": [] - } - } - }, - { - "id": 4, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 5, - "type": { - "def": { - "primitive": "bool" - } - } - } - ] - } -} diff --git a/.api-contract/src/test/contracts/user/v3/index.ts b/.api-contract/src/test/contracts/user/v3/index.ts deleted file mode 100644 index 388ac3d8..00000000 --- a/.api-contract/src/test/contracts/user/v3/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export { default as ask } from './ask.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/user/v4/events.contract.json b/.api-contract/src/test/contracts/user/v4/events.contract.json deleted file mode 100644 index e6f06859..00000000 --- a/.api-contract/src/test/contracts/user/v4/events.contract.json +++ /dev/null @@ -1,2696 +0,0 @@ -{ - "source": { - "hash": "0x4165bede6b0abd9016f77561a6ae14ff335af5437ec70efbb653776b18751515", - "language": "ink! 4.1.0", - "compiler": "rustc 1.70.0-nightly", - "wasm": "0x0061736d01000000014f0e60027f7f0060037f7f7f0060017f0060027f7f017f60037f7f7f017f60017f017f60047f7f7f7f017f60037e7e7f0060000060037f7e7e0060047f7f7f7f0060037f7f7e006000017f60027e7f0002f0010c057365616c310b6765745f73746f726167650006057365616c3005696e7075740000057365616c3007616464726573730000057365616c300d6465706f7369745f6576656e74000a057365616c320b7365745f73746f726167650006057365616c310d636c6561725f73746f726167650003057365616c3110636f6e7461696e735f73746f726167650003057365616c300b7365616c5f72657475726e0001057365616c300f686173685f626c616b65325f3235360001057365616c300663616c6c65720000057365616c301176616c75655f7472616e73666572726564000003656e76066d656d6f7279020102100354530400000000010101000000000102030b010100000000050002020000000000050c03030004010101050000000200000000000202020d07070002000000080008000100000100090000090100000001000004000608017f01418080040b071102066465706c6f7900480463616c6c004a0afdb201532b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b6401017f024002400240024041012000280200220241066b200241054d1b41016b0e03010203000b20014100100d200120002d0004100d0f0b20014101100d20002001100e0f0b20014102100d200120002d0004100d0f0b20014103100d20014100100d0b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000b7500024002400240024002400240200028020041016b0e050102030405000b20014100100d200041086a2802002000410c6a280200200110100f0b20014101100d0f0b20014102100d0f0b20014103100d0f0b20014104100d0f0b20014105100d200041086a2802002000410c6a280200200110100bb70101047f230041306b2202240002402000280204220420002802082203490d0020002802002105200241003602082002200420036b22043602042002200320056a2205360200200128020020012802042002101020022001280208410d10112002280208220120022802044b0d0020022002280200200110122002410036022820022004360224200220053602202002200241206a1013200320022802286a22012003490d0020002001360208200241306a24000f0b000b2c01017f230041106b220324002003200136020c2003410c6a200210162002200020011011200341106a24000b4801027f024002402000280208220320026a22042003490d00200420002802044b0d00200420036b2002470d01200028020020036a20012002100b1a200020043602080f0b000b000bb00101077f230041206b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341186a22074200370300200341106a22084200370300200341086a22094200370300200342003703002001200220031008200420072903003700002005200829030037000020062009290300370000200020032903003700000c010b200020012002100b1a0b200341206a24000b0a0020012000412010110bb50101047f230041306b2202240002402000280204220420002802082203490d0020002802002105200241003602082002200420036b22043602042002200320056a220536020020012802002001280204200210102001280208200210132002280208220120022802044b0d0020022002280200200110122002410036022820022004360224200220053602202002200241206a1013200320022802286a22012003490d0020002001360208200241306a24000f0b000b7501037f230041206b220224002002200136020c02402000280204220320002802082201490d0020002802002104200241003602182002200320016b3602142002200120046a3602102002410c6a200241106a10162001200120022802186a22014b0d0020002001360208200241206a24000f0b000b550020002802002200413f4d044020012000410274100d0f0b200041ffff004d044020004102744101722001104d0f0b200041ffffffff034d044020004102744102722001101f0f0b20014103100d20002001101f0bc30101027f230041206b2203240020031018024041012003101945044020004108360204200041063a0000200041086a41013a00000c010b200320014201101a20032802002204410a460440200341186a200241186a290000370300200341106a200241106a290000370300200341086a200241086a29000037030020032002290000370300200020012003101b0c010b200041086a2003290204370200200041106a2003410c6a280200360200200041063a0000200020043602040b200341206a24000b6d01017f230041106b2201240020014180800136020c419083042001410c6a1009200041918304290000370001200041096a41998304290000370000200041116a41a18304290000370000200041186a41a883042900003700002000419083042d00003a0000200141106a24000b5d01017f230041206b220224002002200136020c20022000360208200242808001370214200241908304360210200241086a200241106a10472002280218220020022802144b0440000b200228021020001006200241206a2400417f470b5e02027f017e024002402002500440410d21030c010b411121032002200129032022027c22052002540d00410a21042001290310500d012005200141186a290300220258200250720d010b200020033a0004410621040b200020043602000be00202047f017e230041a0016b2203240002400240200129032042017c220750450440200341033a000020032007370308200341306a2204200241186a290000370300200341286a2205200241106a290000370300200341206a2206200241086a29000037030020032002290000370318200341e0006a2003101e20032d00600d01200341186a2202200341011031200320021022200341003a0038200341f9006a2004290300370000200341f1006a2005290300370000200341e9006a200629030037000020032003290318370061200341013a006020034198016a200341106a29030037030020034190016a200341086a2903003703002003200329030037038801200341386a200341e0006a20034188016a103220002007370308200041033a0000200120073703200c020b20004106360204200041063a0000200041086a41113a00000c010b200041063a0000200041033602040b200341a0016a24000b7d01017f230041306b220324002003200236020420032001360200200341fc8204360224200341f8820436022020032003360228200341086a200341206a101d20032d00084107460440000b20002003290308370300200041106a200341186a290300370300200041086a200341106a290300370300200341306a24000b870201047f230041206b220224002002428080013702042002419083043602002001280200200141046a2802002002105520012802082002105802402002280204220420022802082201490d00200228020021032002200420016b220436020020032001200120036a2203200210002101200420022802002205490d00024002400240410c20012001410c4f1b0e0401030300030b200041063a00000c010b2002200536021c200220033602182002200241186a102820022d00002201410647044020002002290001370001200041106a200241106a290000370000200041096a200241096a290000370000200020013a00000c010b200041073b01000b200241206a24000f0b000bae0201047f230041206b2202240020024280800137020420024190830436020041b48ca0e6012002101f20012002102002402002280204220420022802082201490d00200228020021032002200420016b220436020020032001200120036a2201200210002103200420022802002205490d002000027f02400240410c20032003410c4f1b0e0400030301030b20054120490d02200241086a200141096a290000370300200241106a200141116a290000370300200241176a200141186a290000370000200220012900013703004101210320012d00000c010b4100210341000b3a0001200020033a0000200020022903003700022000410a6a200241086a290300370000200041126a200241106a290300370000200041196a200241176a290000370000200241206a24000f0b000b2601017f230041106b220224002002200036020c20012002410c6a41041011200241106a24000b96010002400240024002400240024020002d000041016b0e050102030405000b20014100100d20002d00012001103a0f0b20014101100d20002f01022001104d0f0b20014102100d20002802042001101f0f0b20014103100d2000290308200110400f0b20014104100d2000290308200041106a290300200110420f0b20014105100d200041086a2802002000410c6a280200200110100b8e0201037f230041106b2201240020014280800137020420014190830436020041ebdcfef1072001101f2000280200200110132000280204200110130240027f2000280208220228020045044020012802082200200128020422024f0d022001280200220320006a41003a0000200041016a0c010b2001280208220020012802044f0d01200128020020006a41013a00002001200041016a360208200228020020011020200128020421022001280200210320012802080b220020024b0d002001200220006b220236020020032000200020036a20011000210020022001280200490d004101210202400240410c20002000410c4f1b0e0401020200020b410021020b200141106a240020020f0b000b910101037f230041106b2202240020024280800137020420024190830436020041b48ca0e6012002101f20002002102002402002280204220420022802082200490d0020022802002103200241003602082002200420006b3602042002200020036a3602002001200210132002280208220120022802044b0d00200320002002280200200110041a200241106a24000f0b000b5101017f230041106b2201240020014280800137020420014190830436020041b48ca0e6012001101f2000200110202001280208220020012802044b0440000b2001280200200010051a200141106a24000bcf0101037f230041106b2201240020014280800137020420014190830436020041ebdcfef1072001101f2000280200200110132000280204200110130240027f2000280208220228020045044020012802082200200128020422024f0d022001280200220320006a41003a0000200041016a0c010b2001280208220020012802044f0d01200128020020006a41013a00002001200041016a360208200228020020011020200128020421022001280200210320012802080b220020024b0d002003200010051a200141106a24000f0b000ba20101037f230041106b22022400200241086a2001102641012103024020022802080d00200128020422044120490d002000200228020c3602042001200441206b36020420012001280200220141206a360200200041086a2001290000370000200041106a200141086a290000370000200041186a200141106a290000370000200041206a200141186a290000370000410021030b20002003360200200241106a24000b4601017f20012802042202410449047f4101052001200241046b36020420012001280200220141046a3602002001280000210241000b210120002002360204200020013602000b9e0101017f230041d0006b22022400200241286a20011028024020022d00284106470440200241406b2001102920022802440440200241206a200241c8006a280200360200200241086a200241306a290300370300200241106a200241386a2903003703002002200229034037031820022002290328370300200020024128100b1a0c020b200041063a00000c010b200041063a00000b200241d0006a24000b8c0502047f037e230041f0006b22022400200241386a200110340240024002400240024002400240024020022d003841017145044020022d00390e06010203040507060b200041063a00000c070b20022001104b20022d000041017145044020022d00012101200041003a0000200020013a00010c070b200041063a00000c060b2001280204220341024f0440200041013a0000200128020022042f000021052001200341026b3602042001200441026a360200200020053b01020c060b200041063a00000c050b200241086a200110262002280208450440200228020c2101200041023a0000200020013602040c050b200041063a00000c040b200241106a210320012802042204410849047e4201052001200441086b36020420012001280200220141086a3602002001290000210642000b210720032006370308200320073703002002290310a745044020022903182106200041033a0000200020063703080c040b200041063a00000c030b200241206a210320012802042204411049047e4201052001200441106b36020420012001280200220141106a360200200141086a29000021062001290000210742000b21082003200737030820032008370300200341106a20063703002002290320a7450440200241306a290300210620022903282107200041043a000020002007370308200041106a20063703000c030b200041063a00000c020b200041063a00000c010b200241d0006a2001102920022802540440200241e8006a200241d8006a2802002201360200200241cc006a2001360000200220022903502206370360200041053a00002002200637004420002002290041370001200041086a200241c8006a2900003700000c010b200041063a00000b200241f0006a24000bfa0201067f230041306b22022400200241186a200110340240024020022d00184101710d00024020022d0019220341037122044103470440024002400240200441016b0e020102000b200341fc017141027621030c030b200220033a0025200241013a002420022001360220200241003b012c200241206a2002412c6a4102105c0d0320022f012c220341ff014d0d03200341027621030c020b200220033a0025200241013a0024200220013602202002410036022c200241206a2002412c6a4104105c0d02200228022c220341808004490d02200341027621030c010b200341044f0d01200241106a2001102620022802100d0120022802142203418080808004490d010b2003200128020422044d0440200241086a20034101103020022802082105200228020c200128020022062003100b21072001200420036b3602042001200320066a3602002000200336020820002007360204200020053602000c020b200041003602040c010b200041003602040b200241306a24000ba70101047f230041106b2201240020014280800137020420014190830436020041b4a5b3d1062001101f20002001101f02402001280204220020012802082202490d00200128020021032001200020026b220436020020032002200220036a2203200110002102200420012802002200490d004100210402400240410c20022002410c4f1b0e0400020201020b20004104490d01200328000021040b200141106a240020040f0b000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a100a2001290300210220002903082103200041206a2400410541042002200384501b0b0b0020002001102d4101730b4601037f027f41202102034041002002450d011a200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b450bd70102047f027e230041206b2202240020022001360208200241848304360204200241f882043602002002428080013702142002419083043602102002200241106a105702402002280214220420022802182201490d00200228021021032002200420016b220436021020032001200120036a2201200241106a10002103200420022802102205490d00027e02400240410c20032003410c4f1b0e0400030301030b20054110490d0220012900002106200141086a2900000c010b42000b21072000200637030020002007370308200241206a24000f0b000b5b01017f230041106b220324002003418483043602082003200136020420032000360200027f4101200310210d001a41002002280200450d001a200320023602082003200136020420032000360200200310210b200341106a24000b900201047f230041106b2205240002402001450440410121020c010b200141004e0440200541086a2106027f2001417f73411f7622032001450d001a41888304280200210202402001200120036a41016b410020036b7122044d04404100200220046a22032002490d021a418c83042802002003490440200441ffff036a22032004490d02200341107640002202417f46200241ffff0371200247720d022002411074220220034180807c716a22032002490d02418c830420033602004100200220046a22032002490d031a0b41888304200336020020020c020b000b41000b21032006200136020420062003360200200528020822020d010b000b2000200236020420002001360200200541106a24000b3101017f230041106b220324002003200036020c2003410c6a2001105d20020440418483042001105d0b200341106a24000b7901017f230041d0016b22032400200341206a20004121100b1a200341c1006a20014121100b1a200341186a200241106a290300370300200341106a200241086a29030037030020032002290300370308200341f0006a200341086a41e000100b1a20034200370368200341e8006a1037200341d0016a24000b4201027f230041106b22012400200141086a2000103420012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000b0f002001200041ff0171410047100d0b7501017f230041306b22022400200241086a2001101e2000027f20022d00084504402000410436020441010c010b20002002290009370001200041196a200241216a290000370000200041116a200241196a290000370000200041096a200241116a29000037000041000b3a0000200241306a24000bdf05020a7f017e230041d0016b22012400200141086a200041e800100b1a20014190830436027020014280800137027402400240024002402001290308500440200141f0006a41011015200141a8016a2200200141f8006a280200360200200120012903703703a001200141a0016a41948004100f20012802a401220220002802002200490d0420012802a00121032001200220006b22023602a4012001200020036a22043602a0010c010b200141f0006a41041015200141a8016a2200200141f8006a280200360200200120012903703703a001200141a0016a220241b08004100f200141c8016a22032000280200360200200120012903a0013703c0012001200141106a2206360288012001411336028401200141bc800436028001200141c0016a20014180016a101420002003280200360200200120012903c0013703a0012001200141306a2207360298012001411136029401200141cf800436029001200220014190016a101420012802a401220220002802002200490d0320012802a0012103200141003602a8012001200220006b22043602a4012001200020036a22083602a00141e080044111200141a0016a22051010200141d0006a22092005103820012802a801220520012802a4014b0d03200141a0016a220a20012802a00120051012200141003602c801200120043602c401200120083602c001200a200141c0016a10132000200020012802c8016a22004b200020024b720d0320012903082001200220006b22023602a4012001200020036a22043602a0014200520d010b2002450d02200441003a0000200141013602a801200141286a200141a0016a22021039200141c9006a20021039200141106a200210200c010b2002450d01200441013a0000200141013602a8012006200141a0016a22021013200720021013200920021038200141e8006a2d00002002103a0b20012802a801220220012802a4014b0d002003200020012802a00120021003200141d0016a24000f0b000b200020002d0000410646044020014100100d0f0b20014101100d2000200110200b210020002d000045044020014100100d0f0b20014101100d200041016a200110130b2601017f230041106b22022400200220003a000f20012002410f6a41011011200241106a24000b9b0101027f230041106b22022400200241808001360204200241908304360200024002402001280200220341074704404190830441003a00002003410646044041022101200241023602084191830441003a00000c030b4191830441013a00002002410236020820012002100e0c010b4190830441013a000020024101360208200210440b2002280208220141818001490d00000b200020011043000b4801017f4190830441003a0000410321020240200141ff017141034604404191830441003a0000410221020c010b4192830420013a00004191830441013a00000b200020021043000b4701017f230041106b220124002001419083043602004190830441003a0000200142808081801037020420002001101f20012802082200418180014f0440000b410020001043000b4701017f230041106b220124002001419083043602004190830441003a0000200142808081801037020420002001103a20012802082200418180014f0440000b410020001043000bf70101047f230041106b2201240020014280800137020420014190830436020041002001101f02402001280204220420012802082202490d0020012802002103200141003602082001200420026b3602042001200220036a36020020002d002820011035200041296a2d00002001103520002d002a2001103a2000412b6a2d00002001103520002d002c200110352000412d6a2d00002001103520002d002e20011035200029032020011040200041106a290300200041186a290300200110412000290300200041086a290300200110422001280208220020012802044b0d00200320022001280200200010041a200141106a24000f0b000b2601017f230041106b22022400200220003703082001200241086a41081011200241106a24000b1b00200050044020024100100d0f0b20024101100d2001200210400b2a01017f230041106b2203240020032001370308200320003703002002200341101011200341106a24000b0d0020004190830420011007000b080020004101100d0b8b0101027f230041206b2202240020022001103441072103024020022d00004101710d00410621030240024020022d00010e020200010b200241086a2001102820022d000822034106460d0020002002290009370001200041106a200241186a290000370000200041096a200241116a2900003700000c010b410721030b200020033a0000200241206a24000b6201017f230041306b220224002002200136022c2002200036022820024280800137020c200241908304360208200241286a200241086a104720022802102200200228020c4b0440000b2002280208200010051a200241086a1018200241306a24000b1c0041f482042001105a20002802002001101f2000280204200110130baf0101027f230041e0006b2200240002400240102b41ff01714105470d0020004180800136023041908304200041306a100120002802302201418180014f0d00200141044f044041908304280200419bddf6f405460d020b410141011049000b000b200041106a4200370300200041086a4200370300200041276a42003700002000420037030020004200370320200041306a220120004130100b1a2001103f4190830441003b0100410041021043000b29002000027f20014504404190830441003a000041010c010b419083044181023b010041020b1043000bc25f02147f0b7e230041e0036b220024000240024002400240024002400240024002400240024002400240027f02400240027f02400240027f024002400240024002400240102b41ff01714105470d002000418080013602c00141908304200041c0016a100120002802c0012207418180014f0d000240024020074104490d002000419483043602c0032000200741046b22023602c403419083042802002208411876210320084110762105200841087621060240024002400240024002400240024002400240024002400240200841ff0171220841ea016b0e0a010d0d0d060d0d020d07000b02400240024002400240024002400240024002400240200841e2006b0e07010e171717170f000b02402008410f6b0e03121705000b0240200841c7006b0e0402171708000b0240200841ee006b0e040a171713000b0240200841cd016b0e03041714000b20084119460d0220084131460d052008413b460d0c2008418301460d06200841c101460d08200841ff0147200641ff017141a2014772200541ff017141fa0047200341df004772720d16410421070c170b200641ff017141840147200541ff017141134772200341fe0147720d15410021070c160b200641ff017141900147200541ff017141f5014772200341da004720024120497272200741246b412049720d14419a830433010021184196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041d483043602c0032000200741c4006b3602c403200041cd8304280000360238200041d0830428000036003b41bc8304290200211441b48304290200211b41cc83042d0000210441c48304290200211a200041c0016a200041c0036a104520002d00c001220d4107460d142018422086842115200041f7006a200041d0016a290000370000200041f0006a200041c9016a290000370300200020002900c101370368200020002802383602e0022000200028003b3600e302201b4208882118201ba72102410121070c150b200641ff0171413247200541ff017141a8014772200341b00147200241204972720d13200041b483043602c0032000200741246b3602c403419a830433010021144196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041c0016a200041c0036a104520002d00c0014107460d1320002802c403450d13200020002802c003220241016a3602c0034102210720022d0000220441024f0d13201442208684211520002903c001221b4208882118200041c8016a290300211420002903d001211a201ba721020c140b200641ff017122064103460d11200641e70147200541ff017141e5014772200341df0047200241204972720d12419b8304290000221442108821152014420888a7210341b38304310000211941a38304290000211641ab83042900002117419783042800002101419583042f00002109419483042d0000210b2014a72105410321070c130b200641ff017141e80047200541ff017141e2004772200341cd0047720d11200041c0016a200041c0036a102820002d00c00122054106460d1120003501c20120003301c60142208684211520002903d001211720002903c801211620002d00c1012103410521070c120b200641ff0171412847200541ff017141d60147722003411b47200241204972720d10200041b483043602c0032000200741246b3602c403419a830433010021184196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041c0016a200041c0036a102820002d00c00122024106460d1020003100c701211b20003300c501211c20003500c101211d20002903d001211a20002903c8012114200041386a200041c0036a1029200028023c450d102018422086842115201d201c201b42108684422086842118200041ea006a200041c3006a2d00003a0000200020002800393602e0022000200028003c3600e302200020002f00413b016820002d0038210420002d0040210d410621070c110b200641ff017141da0147200541ff0171413b4772200341b20147200241044972720d0f2000419883043602c0032000200741086b3602c403419483042802002101410721070c100b200641ff017141c00147200541ff017141e2004772200341fd0147720d0e200041c0016a200041c0036a102520002802c0010d0e41082107200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a721050c0f0b200641ff017141d90147200541ff017141ac0147722003411847720d0d200041c0016a200041c0036a102520002802c0010d0d200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a72105410921070c0e0b200641ff017141cf0047200541ff017141094772200341910147720d0c200041c0016a200041c0036a102520002802c0010d0c200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a72105410a21070c0d0b200641ff017141f10147200541ff0171412447722003418a0147720d0b200041c0016a200041c0036a102520002802c0010d0b200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a72105410b21070c0c0b200641ff0171419d0147200541ff017141c8004772200341d10147720d0a200041c0016a200041c0036a102720002d00c00122054106460d0a20002903e0012214420888211820003501c20120003301c60142208684211520002903d801211920002903d001211720002903c801211620002d00c10121032014a72102410c21070c0b0b200641ff017141cf0147200541ff017141b5014772200341114720024120497272200741246b411049720d09419c8304290200211641948304290200211441ac8304290200211941a483042902002117200041c483043602c0032000200741346b3602c4032014421088211541b48304290200221a42088821182014420888a721032014a7210541bc83042902002114201aa72102410e21070c0a0b200641ff017141c90147200541ff01714187014772200341fa0047200241204972720d08200041b483043602c0032000200741246b3602c403419a830433010021144196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041c0016a200041c0036a102820002d00c00122024106460d08201442208684211520003500c10120003300c50120003100c7014210868442208684211820002903d001211a20002903c8012114410f21070c090b200641ff017141930147200541ff017141d90147720d072003411b460d050c070b200641ff017141e40147200541ff017141c8004772200341dc014720024120497272200741246b410849720d06419c8304290200211641948304290200211441ac8304290200211941a483042902002117200041bc83043602c00320002007412c6b3602c4032014421088211541b48304290200221a42088821182014420888a721032014a72105201aa72102411121070c070b200641ff0171418e0147200541ff017141354772200341bf0147720d05411221070c060b200641ff0171418c0147200541ff017141d0004772200341890147200241204972720d04200041b483043602c0032000200741246b3602c403419b8304290000221442108821152014420888a7210341b38304310000211941a38304290000211641ab83042900002117419783042800002101419583042f00002109419483042d0000210b2014a72105411321070c050b200641ff0171413647200541ff0171411447722003410d47200241084972720d032000419c83043602c00320002007410c6b3602c40341948304290200221642108821152016420888a721032016a72105411421070c040b200641ff017141dd0147200541ff0171419a014772200341a20147720d02411521070c030b200041c0016a200041c0036a102720002d00c00122054106460d0120002903e0012214420888211820003501c20120003301c60142208684211520002903d801211920002903d001211720002903c801211620002d00c10121032014a72102411021070c020b200541ff017141c00047200341d00147722002411049720d00200041a483043602c00341948304290200221742108821152017420888a72103419c830429020021162017a72105410d21070c010b410141011049000b200041206a200041f0006a290300370300200041276a200041f7006a290000370000200020002800e302360033200020002802e002360230200020002903683703182000428080013702c4012000419083043602c0014100200041c0016a101f20002802c401220a20002802c8012206490d0020002802c00121082000200a20066b220a3602c00120082006200620086a2208200041c0016a10002106200a20002802c001220c49410c20062006410c4f1b720d002000200c3602c401200020083602c001200041c0016a103341ff0171220f4102460d00200041c0016a103341ff017122064102460d00200041106a200041c0016a104b20002d00104101710d0020002d0011210c200041c0016a103341ff017122104102460d00200041c0016a103341ff017122114102460d00200041c0016a103341ff017122124102460d00200041c0016a103341ff017122134102460d0020002802c40122084108490d00200020002802c001220a41086a3602c00120084108460d00200a290000211d200020002802c001220e41016a3602c001200841096b210a4200211b02400240200e2d00000e020100020b200a4108490d01200020002802c001220e41086a3602c001200841116b210a200e290000211c4201211b0b200a4110490d002002ad42ff018320184208868421182005ad42ff01832003ad42ff01834208862015421086848421154108210320002802c0012205290000211e2000200541086a2900003703402000201e370338200020133a0066200020124101713a0065200020113a00642000201041017122053a00632000200c3a0062200020064101713a00612000200f3a00602000201d3703582000201c3703502000201b370348024002400240024002400240024002400240024002400240024002400240024002400240200741016b0e1500010214030405060708090a0b0c0d0e0f1f201021130b200041e8016a2014370300200041fc016a200028003336000020004189026a200041206a29030037000020004190026a200041276a290000370000200020183703e001200020163703c801200020153703c001200020043a00f8012000201a3703f001200020193703d801200020173703d001200020002802303600f9012000200d3a0080022000200029031837008102230041c0016b22012400200141086a200041c0016a220241d800100b1a200141f0006a200141d8006a290300370300200141e8006a200141d0006a2903003703002001200129034837036020014190016a200241186a29000037030020014188016a200241106a29000037030020014180016a200241086a29000037030020012002290000370378200141b0016a200141406b290300370300200141a8016a200141386a290300370300200141a0016a200141306a29030037030020012001290328370398012001200141e0006a410020012d00604106471b3602bc01200141f8006a20014198016a200141bc016a102f200141c0016a2400103e000b200020143703c802200020183703c0022000201a3703d002200020163703e802200020153703e002200020193703f802200020173703f002200041c0036a1018027f027f0240200241ff01714106470440200041c0016a200041c0026a101e20002d00c001450d0120004186036a220320002d00c30122013a0000200041a0036a2205200041d0016a2802002206360200200041a6036a20013a000020004190036a2006360200200020002f00c10122013b0184032000200041c8016a2903002214370398032000200041d4016a2902003703a8022000200041d9016a2900003700ad02200020013b01a403200020143703880320002802c4012101200020002900ad023700ad03200020002903a8023703a803200020032d00003a006a200020002f0184033b01682000200136006b200041f7006a2005280200360000200020002903980337006f20004180016a20002900ad02370000200020002903a80237007b200404404101200041e8006a200041e0026a102d0d031a0b200041e8006a200041c0036a102c04404102200041e8006a200041c0036a41848304102f450d031a0b200041d8036a20002900ad03370000200041cf036a20004190036a280200360000200020002f01a4033b01c003200020013600c30320002000290388033700c703200020002903a8033700d3032000200041a6036a2d00003a00c2030b024020044504402000200041c0026a4100200241ff01714106471b3602682000200041e8006a3602c8012000200041e0026a3602c4012000200041c0036a3602c001200041c0016a10240c010b2000428080013702c4012000419083043602c00141ebdcfef107200041c0016a2201101f200041c0036a20011013200041e0026a20011013027f200241ff01712202410646044020002802c801220120002802c40122064f0d1620002802c001220320016a41003a0000200141016a0c010b20002802c801220120002802c4014f0d1520002802c00120016a41013a00002000200141016a3602c801200041c0026a410020024106471b200041c0016a102020002802c401210620002802c001210320002802c8010b220120064b0d1420032001200120036a410010041a0b20004180016a200041d8036a290300370300200041f8006a200041d0036a290300370300200041f0006a200041c8036a29030037030020004190016a200041e8026a29030037030020004198016a200041f0026a290300370300200041a0016a200041f8026a290300370300200041b0016a200041c8026a290300370300200041b8016a200041d0026a290300370300200020002903c003370368200020002903e00237038801200020002903c0023703a801200041c8016a200041e8006a41d800100b1a200041a0026a20043a0000200042013703c001200041c0016a220110372001200041386a4130100b1a2001103f4106210241000c020b41040b210241010b2106200041cc016a200041f0006a280200360200200020002902683702c4010c250b200041cf016a2016370000200020153700c701200020193c00df01200020173700d701200020013600c301200020093b00c1012000200b3a00c001230041406a22012400200141306a200041c0016a220241186a290000370300200141286a200241106a290000370300200141206a200241086a290000370300200120022900003703182001200141186a36023c200141086a2001413c6a102e2001280208200141406b2400103d000b200020163703c801200020153703c001200020173703d001230041206b22022400200241106a200041c0016a220141086a290300370300200241186a200141106a2903003703002002200041386a36020020022001290300370308200041e8006a2204200241086a101e200241206a2400200141017220044121100b1a200041003a00c001230041106b22022400200241808001360204200241908304360200024020012d00004504404190830441003a000020024101360208200141016a200210390c010b4190830441013a000020024101360208200210440b20022802082201418180014f0440000b0c260b200020143703b002200020183703a8022000201a3703b802200020163703c802200020153703c002200020193703d802200020173703d002200041c0016a200041a8026a103620002d00c0010d1120004186036a220120002d00c30122023a0000200041c8036a2204200041d0016a2802002203360200200041a6036a220520023a0000200041a0036a22062003360200200020002f00c10122023b0184032000200041c8016a29030022143703c0032000200041d4016a2902003703682000200041d9016a220329000037006d200020023b01a403200020143703980320002802c40121022000200029006d37008d032000200029036837038803200020012d00003a00e202200020002f0184033b01e002200020023600e302200041ef026a2004280200360000200020002903c0033700e702200041f8026a200029006d370000200020002903683700f302200041c0036a22011018200041e0026a2001102c450d102000200041a8026a3602c001200041e0026a200041c0036a200041c0016a102f0d104102210241010c130b2001102a103d000b20002016370370200020153703682000201937038001200020173703782001102a2102200041c0016a2204101841012103027f4101200220041019450d001a41022001200041e8006a10190d001a200020013602c0032000200041e8006a3602c4032000428080013702c4012000419083043602c001200041c0036a200041c0016a104720002802c801220120002802c4014b0d0c4100210320002802c00122022001200120026a410010041a200041c0016a220110182001200041386a4130100b1a2001103f41030b210120032001103c000b200041cc016a2016370200200020153702c401200020193702dc01200020173702d401200020013602c001230041206b22012400200041c0016a2202280200200141186a2002411c6a290000370300200141106a200241146a290000370300200141086a2002410c6a2900003703002001200229000437030020011019200141206a2400103e000b2001102a200041c0016a22031018410121024101210620031019450d1d200020163703c801200020153703c001200020193703d801200020173703d0012001200041c0016a10190d100c1d0b2000201637037020002015370368200020193703800120002017370378200041c0016a22041018410021022004200041e8006a102c450440200041d8016a220420004180016a2203290300370300200041d0016a2205200041f8006a2206290300370300200041c8016a2207200041f0006a2208290300370300200020002903683703c001410121022001200041c0016a10190d110b41010c110b200020163703c801200020153703c001200020183703e001200020193703d801200020173703d001200041e8006a210341002106230041306b22042400200041c0016a22012802202105200128021c200441106a200141106a290300370300200441086a200141086a290300370300200420012903003703002004428080013702242004419083043602204182c7b4d979200441206a2202101f200420021020200520021010024002402004280224220220042802282205490d00200428022021072004200220056b220236022020072005200520076a2208200441206a10002105200220042802202209490d004100210702400240410c20052005410c4f1b0e0400020201020b2004200936021c20042008360218200441206a200441186a102920042802242207450d0120042802282102200428022021060b200320023602082003200736020420032006360200200441306a24000c010b000b200041cc016a200041f0006a280200360200200020002903683702c401200041003602c001230041106b22022400200241808001360204200241908304360200024041918304027f20012802004504404190830441003a00004100200141086a2802002204450d011a4191830441013a00002002410236020802402001410c6a2802002201413f4d04404192830420014102743a0000200241033602080c010b200141ffff004d0440200220014102744101723b010e20022002410e6a410210110c010b200141ffffffff034d044020014102744102722002101f0c010b4192830441033a00002002410336020820012002101f0b20022004200110112002280208220141818001490d02000b4190830441013a000041010b3a000041022101200241023602080b0c1f0b2000201637037020002015370368200041c0016a41848304200041e8006a101c20002d00c00122024106462201047f410405200041e2026a20002d00c3013a0000200041c8036a200041d0016a280200360200200020002f00c1013b01e002200020002903c8013703c00320002802d401210520002802c4010b2104200041d0016a200041c8036a280200360200200020002f01e0023b00c1012000200041e2026a2d00003a00c301200020043602c401200020002903c0033703c8010c1c0b200020163703c801200020153703c001200020193703d801200020173703d001200020143703c803200020183703c0032000200041c0016a3602c002200041e8006a200041c0026a200041c0036a101c20002d006822024106462201047f410405200041aa036a20002d006b3a0000200041e8026a200041f8006a280200360200200020002f00693b01a803200020002903703703e002200028027c2105200028026c0b2104200041d0016a200041e8026a280200360200200020002f01a8033b00c1012000200041aa036a2d00003a00c301200020043602c401200020002903e0023703c8010c1b0b200020143703c802200020183703c0022000201a3703d002200020163703c803200020153703c003200020193703d803200020173703d003200041c0016a200041c0026a103620002d00c0010d0e200041c0026a22011023200041c0036a20014101104c20004181016a200041d8036a290300370000200041f9006a200041d0036a290300370000200041f1006a200041c8036a290300370000200020002903c003370069200041013a0068200041003a00c001200041f0026a200041d0026a290300370300200041e8026a200041c8026a290300370300200020002903c0023703e002200041e8006a200041c0016a200041e0026a10320c0f0b200041c0016a2201101820004101200110192204047f200041d0016a2016370300200041d8016a2017370300200020153703c8012000418080043602c00120004280800137026c200041908304360268419cefe1ea05200041e8006a2201101f200041c8016a20011020200028026c220320002802702201490d0420002802682102200041003602702000200320016b36026c2000200120026a3602682019422088a72018a7200041e8006a101020002802702203200028026c4b0d04200220012000280268200310041a200041c0016a2201200041386a4130100b1a2001103f410a0541080b3602c001200041013a00c4012004410173230041106b2201240020014180800136020420014190830436020002400240200041c0016a22022802002203410b4704404190830441003a00002003410a46044041022102200141023602084191830441003a00000c030b4191830441013a00002001410236020820022001100c0c010b4190830441013a000020014101360208200110440b2001280208220241818001490d00000b20021043000b200041c0016a22011018410121024200211a4201211441062106410120011019450d15200c4101460440410921030c160b200041013a00622000428080013702c4012000419083043602c0014100200041c0016a101f20002802c401220420002802c8012201490d0220002802c0012102200041003602c8012000200420016b3602c4012000200120026a3602c0014101200041c0016a2204103a20052004103520002802c801220420002802c4014b0d022002200120002802c001200410041a200041c0016a200041386a2018101a20002802c0012203410a460440201d42017c2214500d03201420187c221c2014540d032014201c5404400340200020163703c801200020153703c001200020193703d801200020173703d001200041e8006a200041386a200041c0016a101b20002d00684106460d04201842017d221850450d000b0b201c500d0341002102200041003a0062200041c0016a2201200041386a4130100b1a201442807e83211a201c42017d21162001103f410321060c160b20002802cc01210220002902c40121140c140b200041033a006820002015370370200041c0016a200041e8006a101e4101210420002d00c001450440410421070c130b200041d0016a2015370300200041033a00c8012000418080043602c00120004280800137026c200041908304360268419cefe1ea05200041e8006a2201101f200041c8016a20011020200028026c220320002802702201490d01200028026821022000200320016b220636026820022001200120026a2205200041e8006a10002101200620002802682202490d010240410c20012001410c4f1b0e0400020212020b200020023602c403200020053602c003200041e8006a200041c0036a1029200028026c2206450d01410021042000280268024020002802702205450440410021050c010b200541076b22014100200120054d1b210a200641036a417c7120066b220d417f46210c41002102034002400240200220066a2d00002208411874411875220b41004e0440200c200d20026b410371720d0102402002200a4f0d000340200220066a220141046a280200200128020072418081828478710d012002200241086a22024b0d082002200a490d000b0b41002104200220054f0d0420022005200220054b1b21010340200220066a2c00004100480d032001200241016a2202470d000b0c040b4106210741012104411021010240024002400240200841f180046a2d000041026b0e030002011a0b200241016a220220054f0d19200220066a2c000041bf7f4c0d020c190b200241016a220920054f0d18200620096a2c000021090240024002400240200841f0016b0e050100000002000b200b410f6a41ff017141024b0d1b20094140480d020c1b0b200941f0006a41ff01714130490d010c1a0b2009418f7f4a0d190b200241026a220820054f0d18200620086a2c000041bf7f4a0d18200241036a220220054f0d18200220066a2c000041bf7f4c0d010c180b200241016a220920054f0d17200620096a2c00002109024002400240200841e001470440200841ed01460d01200b411f6a41ff0171410c490d02200b417e71416e470d1b20094140480d030c1b0b200941607141a07f460d020c1a0b200941a07f480d010c190b200941bf7f4a0d180b200241026a220220054f0d17200220066a2c000041bf7f4a0d170b200241016a21020c010b200241016a21020b20022005490d000b410021040b2101410a21070c120b2000280278210220002903702114200028026c21030c120b000b230041106b22012400200141848304102e200129030021142000200141086a29030037030820002014370300200141106a24002000290300200041086a290300230041106b220124002001419083043602004190830441003a00002001428080818010370204200110420c150b230041306b2201240020014180800136022c419083042001412c6a1002200141106a220441998304290000370300200141186a220341a183042900003703002001411f6a220541a88304290000370000200141918304290000370308419083042d000021062001412041001030200128020021072001280204220220063a000020022001290308370001200241096a2004290300370000200241116a2003290300370000200241186a2005290000370000200041e8006a2204410c6a4120360200200441086a200236020020042007360204200441053a0000200141306a2400200041d0016a200041f8006a290300370300200041c8016a200041f0006a290300370300200020002903683703c001230041106b220124002001418080013602042001419083043602000240200041c0016a22022d00004106470440200141013602084190830441003a00002002200110200c010b4190830441013a000020014101360208200110440b0c140b2000200041e8006a22043602c8012000200041c0036a3602c4012000200041e0026a22073602c0012000200041a8026a2201360268200041c0016a22081024200720014100104c20011023200041c0026a2207200141001031200120071022200041f0006a200029039803370300200041f8006a2006280200360200200041fc006a20002903880337020020004181016a200029008d03370000200020052d00003a006b200020002f01a4033b00692000200236026c200041013a00682003200041d8026a290300370000200041d1016a200041d0026a290300370000200041c9016a200041c8026a290300370000200020002903c0023700c101200041013a00c001200041b8036a200041b8026a290300370300200041b0036a200041b0026a290300370300200020002903a8023703a80320042008200041a8036a10320c010b200041b0036a200041d0016a2802003602002000200041c8016a2903003703a803410120002802c40122024106470d011a0b200041c0016a2201200041386a4130100b1a2001103f4106210241000b2106200041cc016a200041b0036a280200360200200020002903a8033702c4010c0e0b200020153703c001200020193703d801200020173703d001200020163703c8012001200041c0016a220110462001200041386a4130100b1a2001103f41032106410021020c0c0b200420032903003703002005200629030037030020072008290300370300200020002903683703c0012001200041c0016a220110462001200041386a4130100b1a2001103f4103210241000b2002103c000b200041f0006a200041d0016a2802003602002000200041c8016a290300370368410120002802c40122064106470d011a0b200041c0016a2201200041386a4130100b1a2001103f4106210641000b200041cc016a200041f0006a280200360200200020002903683702c401200020063602c001200041c0016a103b000b230041106b220124002001419083043602004190830441003a00002001428080818010370204201b201c200110410c090b200041cf016a2016370000200020153700c701200020193c00df01200020173700d701200020013600c301200020093b00c1012000200b3a00c001200041e8006a200041386a200041c0016a101720002d00684106462201450440200041c0016a2202200041386a4130100b1a2002103f0b200041d0016a200041f8006a290300370300200041c8016a200041f0006a290300370300200020002903683703c001230041106b220224002002418080013602042002419083043602000240200041c0016a22042d0000220341074704404190830441003a000020034106470440200241023602084191830441003a00002004200210200c020b4191830441013a000020024102360208200441046a2002100c0c010b4190830441013a000020024101360208200210440b0c0a0b230041406a22012400200141206a22021018200141086a200041386a22042002101720012d00084106460440000b200141406b2400200041c0016a220120044130100b1a2001103f410041001049000b41062107411021010b200020053602cc01200020063602c801200020013602c401200020073602c001230041106b220124002001418080013602042001419083043602000240200041c0016a22022802002203410b4704404190830441003a00002003410a460440200141023602084191830441003a0000200241086a2802002002410c6a280200200110100c020b4191830441013a00002001410236020820022001100c0c010b4190830441013a000020014101360208200110440b20012802082201418180014f0440000b200420011043000b200041003a0062201442807e83211a2002ad2117410121020b200020163703e001200041033a00d801200020173703d001200020033602c401200020063a00c0012000201a201442ff0183843703c801230041106b220124002001418080013602042001419083043602000240200041c0016a22042d0000220341074704404190830441003a000020034106470440200141023602084191830441003a0000200420011020200441186a200110200c020b4191830441013a000020014102360208200441046a2001100c0c010b4190830441013a000020014101360208200110440b20012802082201418180014f0440000b200220011043000b20022006103c000b200020023602c0012006200041c0016a103b000b200020053602d401200020023a00c001230041106b220224002002418080013602042002419083043602000240200041c0016a22042d0000220341074704404190830441003a000020034106470440200241023602084191830441003a00002004200210200c020b4191830441013a000020024102360208200441046a2002100e0c010b4190830441013a000020024101360208200210440b0c020b20012802082201418180014f0440000b0b410020011043000b20022802082202418180014f0440000b200120021043000b3801017f230041106b22022400200241086a2001103420022d00092101200020022d00084101713a0000200020013a0001200241106a24000b3101017f230041106b220324002003200036020c2003410c6a2001104e20020440418483042001104e0b200341106a24000b2601017f230041106b22022400200220003b010e20012002410e6a41021011200241106a24000bc30502067f057e23004190016b22022400200241106a20002001104f02402002290310a74101460440200241206a290300210920022002290318220b3703282002200937033020022000102e20022903002208200241086a290300220c84500d012002200842017d220a3703382002200c2008200a56ad7c42017d2208370340200a200b8520082009858450450440200220003602602002200241386a360264200241fc820436028401200241f88204360280012002200241e0006a36028801200241e8006a20024180016a101d20022d006822034107460d02200241d7006a2204200241f8006a2205290000370000200241d0006a2206200241f1006a22072900003703002002200229006937034820034106460d02200520042900003700002007200629030037000020022002290348370069200220033a006820022000360280012002200241286a36028401200241fc820436024c200241f88204360248200220024180016a2203360250200241c8006a2204200241e8006a220510502002200036028001200220053602840120024180830436024c200241f882043602482002200336025020042002290328200241306a29030010510b20022000360280012002200241386a36028401200241fc820436024c200241f88204360248200220024180016a36025020024280800137026c200241908304360268200241c8006a200241e8006a105220022802702203200228026c4b0d012002280268200310051a2002200136028401200220003602800120024180830436024c200241f88204360248200220024180016a36025020024280800137026c200241908304360268200241c8006a200241e8006a105320022802702201200228026c4b0d012002280268200110051a2002200036027020024184830436026c200241f88204360268200241e8006a2002290338200241406b29030010540b20024190016a24000f0b000be40102037f037e230041206b220324002003200236020c2003200136020820034280800137021420034190830436021041f8820441808304200341106a22011055200341086a2001105602402003280214220420032802182201490d00200328021021022003200420016b220436021020022001200120026a2201200341106a10002102200420032802102205490d0002400240410c20022002410c4f1b0e0400020201020b20054110490d01200141086a290000210720012900002108420121060b2000200837030820002006370300200041106a2007370300200341206a24000f0b000b870101037f230041106b2202240020024280800137020420024190830436020020002002105202402002280204220420022802082200490d0020022802002103200241003602082002200420006b3602042002200020036a3602002001200210202002280208220120022802044b0d00200320002002280200200110041a200241106a24000f0b000b890101037f230041106b2203240020034280800137020420034190830436020020002003105302402003280204220420032802082200490d0020032802002105200341003602082003200420006b3602042003200020056a36020020012002200310422003280208220420032802044b0d00200520002003280200200410041a200341106a24000f0b000b1c002000280200200041046a280200200110592000280208200110580b1c002000280200200041046a280200200110592000280208200110560b890101037f230041106b2203240020034280800137020420034190830436020020002003105702402003280204220420032802082200490d0020032802002105200341003602082003200420006b3602042003200020056a36020020012002200310422003280208220420032802044b0d00200520002003280200200410041a200341106a24000f0b000b2f01017f230041106b2203240020002002105a2003200128020036020c20022003410c6a41041011200341106a24000b140020002802002001105b2000280204200110200b1c002000280200200041046a2802002001105920002802082001105b0b210020002802002001105b20002802042200290300200041086a290300200110420b0e0020002002105a20012002105a0b0b0020002802002001101f0b2100200028020045044020014100100d0f0b20014101100d2000280200200110130b8f0101017f20002d00042103200041003a0004027f0240200345044041012000280200220028020422032002490d021a2001200028020022012002100b1a0c010b2001200041056a2d00003a00004101200028020022002802042203200241016b2202490d011a200141016a200028020022012002100b1a0b2000200320026b3602042000200120026a36020041000b0b950202037f047e230041d0006b22022400200241106a20002001104f024002402002290310a745044020022000102e2002290300220542017c22072005542203200241086a29030022062003ad7c220820065420052007581b0d022002200036023020024184830436022c200241f88204360228200241286a2007200810540c010b200241206a2903002106200229031821050b20022005370328200220063703302002200136023c20022000360238200241808304360244200241f882043602402002200241386a2203360248200241406b2204200520061051200220003602382002200241286a36023c200241fc8204360244200241f8820436024020022003360248200420011050200241d0006a24000f0b000b0bc8020300418080040bf1019c77585d4b65793a3a5472616e736665720000008801010000000000040001004b65793a3a417070726f76616c0000008801010000000000200001004b65793a3a417070726f76616c3a3a66726f6d4b65793a3a417070726f76616c3a3a746f4b65793a3a417070726f76616c3a3a696401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041b382040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041f482040b0d75b15d5d40a232ca0200000001", - "build_info": { - "build_mode": "Release", - "cargo_contract_version": "2.1.0", - "rust_toolchain": "nightly-x86_64-unknown-linux-gnu", - "wasm_opt_settings": { - "keep_debug_symbols": false, - "optimization_passes": "Z" - } - } - }, - "contract": { - "name": "collection_demo", - "version": "0.1.0", - "authors": ["[your_name] <[your_email]>"] - }, - "spec": { - "constructors": [ - { - "args": [], - "docs": ["Instantiate new RMRK contract"], - "label": "new", - "payable": false, - "returnType": { - "displayName": ["ink_primitives", "ConstructorResult"], - "type": 9 - }, - "selector": "0x9bae9d5e" - } - ], - "docs": [], - "events": [ - { - "args": [ - { - "docs": [], - "indexed": false, - "label": "from", - "type": { - "displayName": ["Option"], - "type": 15 - } - }, - { - "docs": [], - "indexed": false, - "label": "to", - "type": { - "displayName": ["Option"], - "type": 15 - } - }, - { - "docs": [], - "indexed": false, - "label": "id", - "type": { - "displayName": ["Id"], - "type": 13 - } - } - ], - "docs": [], - "label": "Transfer" - }, - { - "args": [ - { - "docs": [], - "indexed": true, - "label": "from", - "type": { - "displayName": ["AccountId"], - "type": 0 - } - }, - { - "docs": [], - "indexed": true, - "label": "to", - "type": { - "displayName": ["AccountId"], - "type": 0 - } - }, - { - "docs": [], - "indexed": true, - "label": "id", - "type": { - "displayName": ["Option"], - "type": 17 - } - }, - { - "docs": [], - "indexed": false, - "label": "approved", - "type": { - "displayName": ["bool"], - "type": 19 - } - } - ], - "docs": [" Event emitted when a token approve occurs."], - "label": "Approval" - } - ], - "lang_error": { - "displayName": ["ink", "LangError"], - "type": 10 - }, - "messages": [ - { - "args": [], - "docs": [], - "label": "mint", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 9 - }, - "selector": "0xcfdd9aa2" - }, - { - "args": [], - "docs": [" Returns current NFT total supply."], - "label": "PSP34::total_supply", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 11 - }, - "selector": "0x628413fe" - }, - { - "args": [], - "docs": [ - " Returns the collection `Id` of the NFT token.", - "", - " This can represents the relationship between tokens/contracts/pallets." - ], - "label": "PSP34::collection_id", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 12 - }, - "selector": "0xffa27a5f" - }, - { - "args": [ - { - "label": "id", - "type": { - "displayName": ["psp34_external", "OwnerOfInput1"], - "type": 13 - } - } - ], - "docs": [" Returns the owner of the token if any."], - "label": "PSP34::owner_of", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 14 - }, - "selector": "0x1168624d" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["psp34_external", "BalanceOfInput1"], - "type": 0 - } - } - ], - "docs": [ - " Returns the balance of the owner.", - "", - " This represents the amount of unique tokens the owner has." - ], - "label": "PSP34::balance_of", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 16 - }, - "selector": "0xcde7e55f" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["psp34_external", "AllowanceInput1"], - "type": 0 - } - }, - { - "label": "operator", - "type": { - "displayName": ["psp34_external", "AllowanceInput2"], - "type": 0 - } - }, - { - "label": "id", - "type": { - "displayName": ["psp34_external", "AllowanceInput3"], - "type": 17 - } - } - ], - "docs": [ - " Returns `true` if the operator is approved by the owner to withdraw `id` token.", - " If `id` is `None`, returns `true` if the operator is approved to withdraw all owner's tokens." - ], - "label": "PSP34::allowance", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 18 - }, - "selector": "0x4790f55a" - }, - { - "args": [ - { - "label": "operator", - "type": { - "displayName": ["psp34_external", "ApproveInput1"], - "type": 0 - } - }, - { - "label": "id", - "type": { - "displayName": ["psp34_external", "ApproveInput2"], - "type": 17 - } - }, - { - "label": "approved", - "type": { - "displayName": ["psp34_external", "ApproveInput3"], - "type": 19 - } - } - ], - "docs": [ - " Approves `operator` to withdraw the `id` token from the caller's account.", - " If `id` is `None` approves or disapproves the operator for all tokens of the caller.", - "", - " On success a `Approval` event is emitted.", - "", - " # Errors", - "", - " Returns `SelfApprove` error if it is self approve.", - "", - " Returns `NotApproved` error if caller is not owner of `id`." - ], - "label": "PSP34::approve", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 20 - }, - "selector": "0x1932a8b0" - }, - { - "args": [ - { - "label": "to", - "type": { - "displayName": ["psp34_external", "TransferInput1"], - "type": 0 - } - }, - { - "label": "id", - "type": { - "displayName": ["psp34_external", "TransferInput2"], - "type": 13 - } - }, - { - "label": "data", - "type": { - "displayName": ["psp34_external", "TransferInput3"], - "type": 8 - } - } - ], - "docs": [ - " Transfer approved or owned token from caller.", - "", - " On success a `Transfer` event is emitted.", - "", - " # Errors", - "", - " Returns `TokenNotExists` error if `id` does not exist.", - "", - " Returns `NotApproved` error if `from` doesn't have allowance for transferring.", - "", - " Returns `SafeTransferCheckFailed` error if `to` doesn't accept transfer." - ], - "label": "PSP34::transfer", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 20 - }, - "selector": "0x3128d61b" - }, - { - "args": [ - { - "label": "role", - "type": { - "displayName": ["accesscontrol_external", "GetRoleAdminInput1"], - "type": 5 - } - } - ], - "docs": [ - " Returns the admin role that controls `role`. See `grant_role` and `revoke_role`." - ], - "label": "AccessControl::get_role_admin", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 16 - }, - "selector": "0x83da3bb2" - }, - { - "args": [ - { - "label": "role", - "type": { - "displayName": ["accesscontrol_external", "RevokeRoleInput1"], - "type": 5 - } - }, - { - "label": "account", - "type": { - "displayName": ["accesscontrol_external", "RevokeRoleInput2"], - "type": 0 - } - } - ], - "docs": [ - " Revokes `role` from `account`.", - "", - " On success a `RoleRevoked` event is emitted.", - "", - " # Errors", - "", - " Returns with `MissingRole` error if caller can't grant the `role` or if `account` doesn't have `role`." - ], - "label": "AccessControl::revoke_role", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 23 - }, - "selector": "0x6e4f0991" - }, - { - "args": [ - { - "label": "role", - "type": { - "displayName": ["accesscontrol_external", "GrantRoleInput1"], - "type": 5 - } - }, - { - "label": "account", - "type": { - "displayName": ["accesscontrol_external", "GrantRoleInput2"], - "type": 0 - } - } - ], - "docs": [ - " Grants `role` to `account`.", - "", - " On success a `RoleGranted` event is emitted.", - "", - " # Errors", - "", - " Returns with `MissingRole` error if caller can't grant the role.", - " Returns with `RoleRedundant` error `account` has `role`." - ], - "label": "AccessControl::grant_role", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 23 - }, - "selector": "0x4ac062fd" - }, - { - "args": [ - { - "label": "role", - "type": { - "displayName": ["accesscontrol_external", "HasRoleInput1"], - "type": 5 - } - }, - { - "label": "address", - "type": { - "displayName": ["accesscontrol_external", "HasRoleInput2"], - "type": 0 - } - } - ], - "docs": [" Returns `true` if `account` has been granted `role`."], - "label": "AccessControl::has_role", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 18 - }, - "selector": "0xc1d9ac18" - }, - { - "args": [ - { - "label": "role", - "type": { - "displayName": ["accesscontrol_external", "RenounceRoleInput1"], - "type": 5 - } - }, - { - "label": "account", - "type": { - "displayName": ["accesscontrol_external", "RenounceRoleInput2"], - "type": 0 - } - } - ], - "docs": [ - " Revokes `role` from the calling account.", - " Roles are often managed via `grant_role` and `revoke_role`: this function's", - " purpose is to provide a mechanism for accounts to lose their privileges", - " if they are compromised (such as when a trusted device is misplaced).", - "", - " On success a `RoleRevoked` event is emitted.", - "", - " # Errors", - "", - " Returns with `InvalidCaller` error if caller is not `account`.", - " Returns with `MissingRole` error if `account` doesn't have `role`." - ], - "label": "AccessControl::renounce_role", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 23 - }, - "selector": "0xeaf1248a" - }, - { - "args": [ - { - "label": "id", - "type": { - "displayName": ["psp34metadata_external", "GetAttributeInput1"], - "type": 13 - } - }, - { - "label": "key", - "type": { - "displayName": ["psp34metadata_external", "GetAttributeInput2"], - "type": 8 - } - } - ], - "docs": [ - " Returns the attribute of `id` for the given `key`.", - "", - " If `id` is a collection id of the token, it returns attributes for collection." - ], - "label": "PSP34Metadata::get_attribute", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 26 - }, - "selector": "0xf19d48d1" - }, - { - "args": [ - { - "label": "owner", - "type": { - "displayName": ["psp34enumerable_external", "OwnersTokenByIndexInput1"], - "type": 0 - } - }, - { - "label": "index", - "type": { - "displayName": ["psp34enumerable_external", "OwnersTokenByIndexInput2"], - "type": 7 - } - } - ], - "docs": [ - " Returns a token `Id` owned by `owner` at a given `index` of its token list.", - " Use along with `balance_of` to enumerate all of ``owner``'s tokens.", - "", - " The start index is zero." - ], - "label": "PSP34Enumerable::owners_token_by_index", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 28 - }, - "selector": "0x3bcfb511" - }, - { - "args": [ - { - "label": "index", - "type": { - "displayName": ["psp34enumerable_external", "TokenByIndexInput1"], - "type": 7 - } - } - ], - "docs": [ - " Returns a token `Id` at a given `index` of all the tokens stored by the contract.", - " Use along with `total_supply` to enumerate all tokens.", - "", - " The start index is zero." - ], - "label": "PSP34Enumerable::token_by_index", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 28 - }, - "selector": "0xcd0340d0" - }, - { - "args": [ - { - "label": "account", - "type": { - "displayName": ["psp34burnable_external", "BurnInput1"], - "type": 0 - } - }, - { - "label": "id", - "type": { - "displayName": ["psp34burnable_external", "BurnInput2"], - "type": 13 - } - } - ], - "docs": [ - " Destroys token with id equal to `id` from `account`", - "", - " Caller must be approved to transfer tokens from `account`", - " or to transfer token with `id`" - ], - "label": "PSP34Burnable::burn", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 20 - }, - "selector": "0x63c9877a" - }, - { - "args": [ - { - "label": "token_id", - "type": { - "displayName": ["minting_external", "TokenUriInput1"], - "type": 6 - } - } - ], - "docs": [" Get URI for the token Id."], - "label": "Minting::token_uri", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 30 - }, - "selector": "0x7136140d" - }, - { - "args": [], - "docs": [" Get max supply of tokens."], - "label": "Minting::max_supply", - "mutates": false, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 36 - }, - "selector": "0xf38e35bf" - }, - { - "args": [ - { - "label": "token_id", - "type": { - "displayName": ["minting_external", "AssignMetadataInput1"], - "type": 13 - } - }, - { - "label": "metadata", - "type": { - "displayName": ["minting_external", "AssignMetadataInput2"], - "type": 8 - } - } - ], - "docs": [" Assign metadata to specified token."], - "label": "Minting::assign_metadata", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 38 - }, - "selector": "0x6893d91b" - }, - { - "args": [ - { - "label": "to", - "type": { - "displayName": ["minting_external", "MintInput1"], - "type": 0 - } - } - ], - "docs": [" Mint one or more tokens."], - "label": "Minting::mint", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 40 - }, - "selector": "0x0f8c5089" - }, - { - "args": [ - { - "label": "to", - "type": { - "displayName": ["minting_external", "MintManyInput1"], - "type": 0 - } - }, - { - "label": "mint_amount", - "type": { - "displayName": ["minting_external", "MintManyInput2"], - "type": 6 - } - } - ], - "docs": [" Mint many to specified account."], - "label": "Minting::mint_many", - "mutates": true, - "payable": false, - "returnType": { - "displayName": ["ink", "MessageResult"], - "type": 42 - }, - "selector": "0xeee448dc" - } - ] - }, - "storage": { - "root": { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0x1cc80634", - "ty": 0 - } - }, - "root_key": "0x1cc80634" - } - }, - "name": "token_owner" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0x7e3fae6b", - "ty": 3 - } - }, - "root_key": "0x7e3fae6b" - } - }, - "name": "operator_approvals" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "root": { - "layout": { - "enum": { - "dispatchKey": "0xca32a240", - "name": "Id", - "variants": { - "0": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0xca32a240", - "ty": 2 - } - }, - "name": "0" - } - ], - "name": "U8" - }, - "1": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0xca32a240", - "ty": 4 - } - }, - "name": "0" - } - ], - "name": "U16" - }, - "2": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0xca32a240", - "ty": 5 - } - }, - "name": "0" - } - ], - "name": "U32" - }, - "3": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0xca32a240", - "ty": 6 - } - }, - "name": "0" - } - ], - "name": "U64" - }, - "4": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0xca32a240", - "ty": 7 - } - }, - "name": "0" - } - ], - "name": "U128" - }, - "5": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0xca32a240", - "ty": 8 - } - }, - "name": "0" - } - ], - "name": "Bytes" - } - } - } - }, - "root_key": "0xca32a240" - } - }, - "name": "enumerable" - }, - { - "layout": { - "enum": { - "dispatchKey": "0x00000000", - "name": "Option", - "variants": { - "0": { - "fields": [], - "name": "None" - }, - "1": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 3 - } - }, - "name": "0" - } - ], - "name": "Some" - } - } - } - }, - "name": "_reserved" - } - ], - "name": "Balances" - } - }, - "name": "balances" - }, - { - "layout": { - "enum": { - "dispatchKey": "0x00000000", - "name": "Option", - "variants": { - "0": { - "fields": [], - "name": "None" - }, - "1": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 3 - } - }, - "name": "0" - } - ], - "name": "Some" - } - } - } - }, - "name": "_reserved" - } - ], - "name": "Data" - } - }, - "name": "psp34" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 2 - } - }, - "name": "status" - }, - { - "layout": { - "enum": { - "dispatchKey": "0x00000000", - "name": "Option", - "variants": { - "0": { - "fields": [], - "name": "None" - }, - "1": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 3 - } - }, - "name": "0" - } - ], - "name": "Some" - } - } - } - }, - "name": "_reserved" - } - ], - "name": "Data" - } - }, - "name": "guard" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0x6a2cd2b4", - "ty": 5 - } - }, - "root_key": "0x6a2cd2b4" - } - }, - "name": "admin_roles" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0x5d5db175", - "ty": 3 - } - }, - "root_key": "0x5d5db175" - } - }, - "name": "members" - }, - { - "layout": { - "enum": { - "dispatchKey": "0x00000000", - "name": "Option", - "variants": { - "0": { - "fields": [], - "name": "None" - }, - "1": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 3 - } - }, - "name": "0" - } - ], - "name": "Some" - } - } - } - }, - "name": "_reserved" - } - ], - "name": "Members" - } - }, - "name": "members" - }, - { - "layout": { - "enum": { - "dispatchKey": "0x00000000", - "name": "Option", - "variants": { - "0": { - "fields": [], - "name": "None" - }, - "1": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 3 - } - }, - "name": "0" - } - ], - "name": "Some" - } - } - } - }, - "name": "_reserved" - } - ], - "name": "Data" - } - }, - "name": "access" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0x9b2d2382", - "ty": 8 - } - }, - "root_key": "0x9b2d2382" - } - }, - "name": "attributes" - }, - { - "layout": { - "enum": { - "dispatchKey": "0x00000000", - "name": "Option", - "variants": { - "0": { - "fields": [], - "name": "None" - }, - "1": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 3 - } - }, - "name": "0" - } - ], - "name": "Some" - } - } - } - }, - "name": "_reserved" - } - ], - "name": "Data" - } - }, - "name": "metadata" - }, - { - "layout": { - "struct": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 6 - } - }, - "name": "last_token_id" - }, - { - "layout": { - "enum": { - "dispatchKey": "0x00000000", - "name": "Option", - "variants": { - "0": { - "fields": [], - "name": "None" - }, - "1": { - "fields": [ - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 6 - } - }, - "name": "0" - } - ], - "name": "Some" - } - } - } - }, - "name": "max_supply" - }, - { - "layout": { - "leaf": { - "key": "0x00000000", - "ty": 7 - } - }, - "name": "price_per_mint" - }, - { - "layout": { - "root": { - "layout": { - "leaf": { - "key": "0x5d58779c", - "ty": 8 - } - }, - "root_key": "0x5d58779c" - } - }, - "name": "nft_metadata" - } - ], - "name": "MintingData" - } - }, - "name": "minting" - } - ], - "name": "Key" - } - }, - "root_key": "0x00000000" - } - }, - "types": [ - { - "id": 0, - "type": { - "def": { - "composite": { - "fields": [ - { - "type": 1, - "typeName": "[u8; 32]" - } - ] - } - }, - "path": ["ink_primitives", "types", "AccountId"] - } - }, - { - "id": 1, - "type": { - "def": { - "array": { - "len": 32, - "type": 2 - } - } - } - }, - { - "id": 2, - "type": { - "def": { - "primitive": "u8" - } - } - }, - { - "id": 3, - "type": { - "def": { - "tuple": [] - } - } - }, - { - "id": 4, - "type": { - "def": { - "primitive": "u16" - } - } - }, - { - "id": 5, - "type": { - "def": { - "primitive": "u32" - } - } - }, - { - "id": 6, - "type": { - "def": { - "primitive": "u64" - } - } - }, - { - "id": 7, - "type": { - "def": { - "primitive": "u128" - } - } - }, - { - "id": 8, - "type": { - "def": { - "sequence": { - "type": 2 - } - } - } - }, - { - "id": 9, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 3 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 3 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 10, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 1, - "name": "CouldNotReadInput" - } - ] - } - }, - "path": ["ink_primitives", "LangError"] - } - }, - { - "id": 11, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 7 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 7 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 12, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 13 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 13 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 13, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 2, - "typeName": "u8" - } - ], - "index": 0, - "name": "U8" - }, - { - "fields": [ - { - "type": 4, - "typeName": "u16" - } - ], - "index": 1, - "name": "U16" - }, - { - "fields": [ - { - "type": 5, - "typeName": "u32" - } - ], - "index": 2, - "name": "U32" - }, - { - "fields": [ - { - "type": 6, - "typeName": "u64" - } - ], - "index": 3, - "name": "U64" - }, - { - "fields": [ - { - "type": 7, - "typeName": "u128" - } - ], - "index": 4, - "name": "U128" - }, - { - "fields": [ - { - "type": 8, - "typeName": "Vec" - } - ], - "index": 5, - "name": "Bytes" - } - ] - } - }, - "path": ["openbrush_contracts", "traits", "types", "Id"] - } - }, - { - "id": 14, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 15 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 15 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 15, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 0 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 0 - } - ], - "path": ["Option"] - } - }, - { - "id": 16, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 5 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 5 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 17, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 13 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 13 - } - ], - "path": ["Option"] - } - }, - { - "id": 18, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 19 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 19 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 19, - "type": { - "def": { - "primitive": "bool" - } - } - }, - { - "id": 20, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 21 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 21 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 21, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 3 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 22 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 3 - }, - { - "name": "E", - "type": 22 - } - ], - "path": ["Result"] - } - }, - { - "id": 22, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 8, - "typeName": "String" - } - ], - "index": 0, - "name": "Custom" - }, - { - "index": 1, - "name": "SelfApprove" - }, - { - "index": 2, - "name": "NotApproved" - }, - { - "index": 3, - "name": "TokenExists" - }, - { - "index": 4, - "name": "TokenNotExists" - }, - { - "fields": [ - { - "type": 8, - "typeName": "String" - } - ], - "index": 5, - "name": "SafeTransferCheckFailed" - } - ] - } - }, - "path": ["openbrush_contracts", "traits", "errors", "psp34", "PSP34Error"] - } - }, - { - "id": 23, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 24 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 24 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 24, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 3 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 25 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 3 - }, - { - "name": "E", - "type": 25 - } - ], - "path": ["Result"] - } - }, - { - "id": 25, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "InvalidCaller" - }, - { - "index": 1, - "name": "MissingRole" - }, - { - "index": 2, - "name": "RoleRedundant" - } - ] - } - }, - "path": ["openbrush_contracts", "traits", "errors", "access_control", "AccessControlError"] - } - }, - { - "id": 26, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 27 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 27 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 27, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 8 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 8 - } - ], - "path": ["Option"] - } - }, - { - "id": 28, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 29 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 29 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 29, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 13 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 22 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 13 - }, - { - "name": "E", - "type": 22 - } - ], - "path": ["Result"] - } - }, - { - "id": 30, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 31 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 31 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 31, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 32 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 33 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 32 - }, - { - "name": "E", - "type": 33 - } - ], - "path": ["Result"] - } - }, - { - "id": 32, - "type": { - "def": { - "primitive": "str" - } - } - }, - { - "id": 33, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 34, - "typeName": "RmrkError" - } - ], - "index": 0, - "name": "Rmrk" - }, - { - "fields": [ - { - "type": 22, - "typeName": "PSP34Error" - } - ], - "index": 1, - "name": "PSP34" - }, - { - "fields": [ - { - "type": 25, - "typeName": "AccessControlError" - } - ], - "index": 2, - "name": "AccessControl" - }, - { - "fields": [ - { - "type": 35, - "typeName": "ReentrancyGuardError" - } - ], - "index": 3, - "name": "Reentrancy" - } - ] - } - }, - "path": ["rmrk_common", "errors", "Error"] - } - }, - { - "id": 34, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "AcceptedAssetsMissing" - }, - { - "index": 1, - "name": "AddingPendingAsset" - }, - { - "index": 2, - "name": "AddingPendingChild" - }, - { - "index": 3, - "name": "AddressNotEquippable" - }, - { - "index": 4, - "name": "AlreadyAddedAsset" - }, - { - "index": 5, - "name": "AlreadyAddedChild" - }, - { - "index": 6, - "name": "AssetHasNoParts" - }, - { - "index": 7, - "name": "AssetIdAlreadyExists" - }, - { - "index": 8, - "name": "AssetIdNotFound" - }, - { - "index": 9, - "name": "AssetIdNotEquippable" - }, - { - "index": 10, - "name": "BadConfig" - }, - { - "index": 11, - "name": "BadMintValue" - }, - { - "index": 12, - "name": "BadPriorityLength" - }, - { - "index": 13, - "name": "CannotMintZeroTokens" - }, - { - "index": 14, - "name": "CatalogNotFoundForAsset" - }, - { - "index": 15, - "name": "ChildNotFound" - }, - { - "index": 16, - "name": "UriNotFound" - }, - { - "index": 17, - "name": "CollectionIsFull" - }, - { - "index": 18, - "name": "InvalidAssetId" - }, - { - "index": 19, - "name": "InvalidParentId" - }, - { - "index": 20, - "name": "InvalidTokenId" - }, - { - "index": 21, - "name": "NotEquipped" - }, - { - "index": 22, - "name": "NotTokenOwner" - }, - { - "index": 23, - "name": "PartIsNotSlot" - }, - { - "index": 24, - "name": "SlotAlreayUsed" - }, - { - "index": 25, - "name": "TargetAssetCannotReceiveSlot" - }, - { - "index": 26, - "name": "UnknownEquippableAsset" - }, - { - "index": 27, - "name": "UnknownPart" - }, - { - "index": 28, - "name": "UnknownPartId" - }, - { - "index": 29, - "name": "WithdrawalFailed" - } - ] - } - }, - "path": ["rmrk_common", "errors", "RmrkError"] - } - }, - { - "id": 35, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "ReentrantCall" - } - ] - } - }, - "path": [ - "openbrush_contracts", - "traits", - "errors", - "reentrancy_guard", - "ReentrancyGuardError" - ] - } - }, - { - "id": 36, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 37 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 37 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 37, - "type": { - "def": { - "variant": { - "variants": [ - { - "index": 0, - "name": "None" - }, - { - "fields": [ - { - "type": 6 - } - ], - "index": 1, - "name": "Some" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 6 - } - ], - "path": ["Option"] - } - }, - { - "id": 38, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 39 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 39 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 39, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 3 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 33 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 3 - }, - { - "name": "E", - "type": 33 - } - ], - "path": ["Result"] - } - }, - { - "id": 40, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 41 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 41 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 41, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 13 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 33 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 13 - }, - { - "name": "E", - "type": 33 - } - ], - "path": ["Result"] - } - }, - { - "id": 42, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 43 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 10 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 43 - }, - { - "name": "E", - "type": 10 - } - ], - "path": ["Result"] - } - }, - { - "id": 43, - "type": { - "def": { - "variant": { - "variants": [ - { - "fields": [ - { - "type": 44 - } - ], - "index": 0, - "name": "Ok" - }, - { - "fields": [ - { - "type": 33 - } - ], - "index": 1, - "name": "Err" - } - ] - } - }, - "params": [ - { - "name": "T", - "type": 44 - }, - { - "name": "E", - "type": 33 - } - ], - "path": ["Result"] - } - }, - { - "id": 44, - "type": { - "def": { - "tuple": [13, 13] - } - } - } - ], - "version": "4" -} diff --git a/.api-contract/src/test/contracts/user/v4/index.ts b/.api-contract/src/test/contracts/user/v4/index.ts deleted file mode 100644 index 46af49a4..00000000 --- a/.api-contract/src/test/contracts/user/v4/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export { default as events } from './events.contract.json' assert { type: 'json' }; diff --git a/.api-contract/src/test/contracts/util.ts b/.api-contract/src/test/contracts/util.ts deleted file mode 100644 index d305fb5b..00000000 --- a/.api-contract/src/test/contracts/util.ts +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -export function createVersionedExport( - versioned: Record>, -): Record> { - const result: Record> = {}; - - Object.entries(versioned).forEach(([version, contracts]) => - Object.entries(contracts).forEach(([name, contract]): void => { - result[`${version}_${name}`] = contract as Record; - }), - ); - - return result; -} diff --git a/.api-contract/src/types.ts b/.api-contract/src/types.ts deleted file mode 100644 index 3f92f537..00000000 --- a/.api-contract/src/types.ts +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { ApiBase } from '@polkadot/api/base'; -import type { ApiTypes } from '@polkadot/api/types'; -import type { Text } from '@polkadot/types'; -import type { - ContractExecResultResult, - ContractSelector, - StorageDeposit, - Weight, - WeightV2, -} from '@polkadot/types/interfaces'; -import type { Codec, TypeDef } from '@polkadot/types/types'; -import type { BN } from '@polkadot/util'; -import type { HexString } from '@polkadot/util/types'; -import type { Abi } from './index.js'; - -export interface ContractBase { - readonly abi: Abi; - readonly api: ApiBase; - - getMessage: (name: string) => AbiMessage; - messages: AbiMessage[]; -} - -export interface AbiParam { - name: string; - type: TypeDef; -} - -export type AbiMessageParam = AbiParam; - -export interface AbiEventParam extends AbiParam { - indexed: boolean; -} - -export interface AbiEvent { - args: AbiEventParam[]; - docs: string[]; - fromU8a: (data: Uint8Array) => DecodedEvent; - identifier: string; - index: number; - signatureTopic?: HexString | null; -} - -export interface AbiMessage { - args: AbiMessageParam[]; - docs: string[]; - fromU8a: (data: Uint8Array) => DecodedMessage; - identifier: string; - index: number; - isConstructor?: boolean; - isDefault?: boolean; - isMutating?: boolean; - isPayable?: boolean; - method: string; - path: string[]; - returnType?: TypeDef | null; - selector: ContractSelector; - toU8a: (params: unknown[]) => Uint8Array; -} - -export type AbiConstructor = AbiMessage; - -// eslint-disable-next-line @typescript-eslint/ban-types -export type InterfaceContractCalls = Record; - -export interface ContractCallOutcome { - debugMessage: Text; - gasConsumed: Weight; - gasRequired: Weight; - output: Codec | null; - result: ContractExecResultResult; - storageDeposit: StorageDeposit; -} - -export interface DecodedEvent { - args: Codec[]; - event: AbiEvent; -} - -export interface DecodedMessage { - args: Codec[]; - message: AbiMessage; -} - -export interface ContractOptions { - gasLimit?: bigint | string | number | BN | WeightV2; - storageDepositLimit?: bigint | string | number | BN | null; - value?: bigint | BN | string | number; -} - -export interface BlueprintOptions extends ContractOptions { - salt?: Uint8Array | string | null; -} - -export interface WeightAll { - v1Weight: BN; - v2Weight: { - refTime: BN; - proofSize?: BN | undefined; - }; -} diff --git a/.api-contract/src/util.ts b/.api-contract/src/util.ts deleted file mode 100644 index 21e5018a..00000000 --- a/.api-contract/src/util.ts +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2017-2025 @polkadot/api-contract authors & contributors -// SPDX-License-Identifier: Apache-2.0 - -import type { SubmittableResult } from '@polkadot/api'; -import type { EventRecord } from '@polkadot/types/interfaces'; - -type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; - -export function applyOnEvent( - result: SubmittableResult, - types: ContractEvents[], - fn: (records: EventRecord[]) => T, -): T | undefined { - if (result.isInBlock || result.isFinalized) { - const records = result.filterRecords('contracts', types); - - if (records.length) { - return fn(records); - } - } - - return undefined; -} diff --git a/.api-contract/tsconfig.build.json b/.api-contract/tsconfig.build.json deleted file mode 100644 index c371165c..00000000 --- a/.api-contract/tsconfig.build.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "baseUrl": "..", - "outDir": "./build", - "rootDir": "./src" - }, - "exclude": ["**/test/**/*", "**/*.spec.ts", "**/checkTypes.manual.ts", "**/mod.ts", "mock.ts"], - "references": [ - { "path": "../api/tsconfig.build.json" }, - { "path": "../api-augment/tsconfig.build.json" }, - { "path": "../types/tsconfig.build.json" }, - { "path": "../types-codec/tsconfig.build.json" }, - { "path": "../types-create/tsconfig.build.json" } - ] -} diff --git a/.api-contract/tsconfig.spec.json b/.api-contract/tsconfig.spec.json deleted file mode 100644 index 38b05b54..00000000 --- a/.api-contract/tsconfig.spec.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "extends": "../../tsconfig.base.json", - "compilerOptions": { - "baseUrl": "..", - "outDir": "./build", - "rootDir": "./src", - "emitDeclarationOnly": false, - "resolveJsonModule": true, - "noEmit": true - }, - "include": [ - "**/test/**/*.json", - "**/test/**/*.ts", - "**/test/**/*.wasm", - "**/checkTypes.manual.ts", - "**/*.spec.ts", - "mock.ts" - ], - "references": [ - { "path": "../api-augment/tsconfig.build.json" }, - { "path": "../api-contract/tsconfig.build.json" }, - { "path": "../api/tsconfig.build.json" }, - { "path": "../types-support/tsconfig.build.json" }, - { "path": "../types/tsconfig.build.json" } - ] -} diff --git a/package.json b/package.json index d14dfd6d..ba48ad17 100644 --- a/package.json +++ b/package.json @@ -33,10 +33,10 @@ "dependencies": { "@headlessui/react": "^1.7.18", "@heroicons/react": "^1.0.6", - "@polkadot/api": "15.8.1", - "@polkadot/api-contract": "file:./.api-contract/build", + "@polkadot/api": "file:../polkadot-js-api/packages/api/build", + "@polkadot/api-contract": "file:../polkadot-js-api/packages/api-contract/build", "@polkadot/extension-dapp": "^0.58.6", - "@polkadot/types": "15.8.1", + "@polkadot/types": "file:../polkadot-js-api/packages/types/build", "@polkadot/ui-keyring": "^3.12.2", "@polkadot/ui-shared": "^3.12.2", "big.js": "^6.2.1", diff --git a/src/services/chain/contract.ts b/src/services/chain/contract.ts index 8874e32e..ddd81d05 100644 --- a/src/services/chain/contract.ts +++ b/src/services/chain/contract.ts @@ -11,7 +11,6 @@ import { InstantiateData, SubmittableExtrinsic, } from 'types'; -//import { u8aToU8a } from '@polkadot/util'; import { useVersion } from 'ui/contexts'; export function createInstantiateTx( @@ -27,11 +26,7 @@ export function createInstantiateTx( storageDepositLimit, }: Omit, ): SubmittableExtrinsic<'promise'> { - //@ts-ignore TODO: need to update type in @polkadot/api-contracts - const { version } = useVersion(); - const binaryKey = version === 'v6' ? 'contract_binary' : 'wasm'; const wasm = metadata?.info.source.wasm; - //const wasm = u8aToU8a(metadata?.json.source.contract_binary); const isValid = codeHash || !!wasm; if (isValid && metadata && isNumber(constructorIndex) && metadata && argValues) { @@ -46,7 +41,7 @@ export function createInstantiateTx( const codeOrBlueprint = codeHash ? new BlueprintPromise(api, metadata, codeHash) - : new CodePromise(api, metadata, wasm && wasm); + : new CodePromise(api, metadata, wasm && wasm.toU8a()); const transformed = transformUserInput(api.registry, constructor.args, argValues); diff --git a/yarn.lock b/yarn.lock index 86dc1e1f..cfc9ec33 100644 --- a/yarn.lock +++ b/yarn.lock @@ -934,7 +934,7 @@ __metadata: languageName: node linkType: hard -"@napi-rs/wasm-runtime@npm:^0.2.9": +"@napi-rs/wasm-runtime@npm:^0.2.10": version: 0.2.10 resolution: "@napi-rs/wasm-runtime@npm:0.2.10" dependencies: @@ -1163,20 +1163,20 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-contract@file:./.api-contract/build::locator=contracts-ui%40workspace%3A.": +"@polkadot/api-contract@file:../polkadot-js-api/packages/api-contract/build::locator=contracts-ui%40workspace%3A.": version: 15.8.1 - resolution: "@polkadot/api-contract@file:./.api-contract/build#./.api-contract/build::hash=6ef915&locator=contracts-ui%40workspace%3A." + resolution: "@polkadot/api-contract@file:../polkadot-js-api/packages/api-contract/build#../polkadot-js-api/packages/api-contract/build::hash=415492&locator=contracts-ui%40workspace%3A." dependencies: "@polkadot/api": "npm:15.8.1" "@polkadot/api-augment": "npm:15.8.1" - "@polkadot/types": "npm:15.8.1" + "@polkadot/types": ../../types/build "@polkadot/types-codec": "npm:15.8.1" "@polkadot/types-create": "npm:15.8.1" "@polkadot/util": "npm:^13.4.3" "@polkadot/util-crypto": "npm:^13.4.3" rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/66676ea96baabe7c50e95ea107d16016ae472be791c1d4a01cf3e369a91764eba70ecfbe4380bb4acdfde51c2723f927143eed12079c0bb34e4a7abd4577f5ec + checksum: 10/68d71841d62310f5f1047dcad1f8edcc96d053cb0d22d87574cde5773ddadd8e0cebcc99d048aac5840820776ef859d68170d18aeb7c9df0d188a9662f1af0a6 languageName: node linkType: hard @@ -1216,6 +1216,31 @@ __metadata: languageName: node linkType: hard +"@polkadot/api@file:../polkadot-js-api/packages/api/build::locator=contracts-ui%40workspace%3A.": + version: 15.8.1 + resolution: "@polkadot/api@file:../polkadot-js-api/packages/api/build#../polkadot-js-api/packages/api/build::hash=9c7f03&locator=contracts-ui%40workspace%3A." + dependencies: + "@polkadot/api-augment": "npm:15.8.1" + "@polkadot/api-base": "npm:15.8.1" + "@polkadot/api-derive": "npm:15.8.1" + "@polkadot/keyring": "npm:^13.4.3" + "@polkadot/rpc-augment": "npm:15.8.1" + "@polkadot/rpc-core": "npm:15.8.1" + "@polkadot/rpc-provider": "npm:15.8.1" + "@polkadot/types": "npm:15.8.1" + "@polkadot/types-augment": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/types-create": "npm:15.8.1" + "@polkadot/types-known": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + "@polkadot/util-crypto": "npm:^13.4.3" + eventemitter3: "npm:^5.0.1" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/b7c7e8414c457e6d6fe5b94810c379377d9994ae1911913f285f21bd669c5195e51961577b7cf0c660bed424fe99d8cee0765e99b65634297a4d6c78a8d4dc16 + languageName: node + linkType: hard + "@polkadot/api@npm:15.10.2, @polkadot/api@npm:^15.10.2": version: 15.10.2 resolution: "@polkadot/api@npm:15.10.2" @@ -1543,6 +1568,38 @@ __metadata: languageName: node linkType: hard +"@polkadot/types@file:../../types/build::locator=%40polkadot%2Fapi-contract%40file%3A..%2Fpolkadot-js-api%2Fpackages%2Fapi-contract%2Fbuild%23..%2Fpolkadot-js-api%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3D415492%26locator%3Dcontracts-ui%2540workspace%253A.": + version: 15.8.1 + resolution: "@polkadot/types@file:../../types/build#../../types/build::hash=f20336&locator=%40polkadot%2Fapi-contract%40file%3A..%2Fpolkadot-js-api%2Fpackages%2Fapi-contract%2Fbuild%23..%2Fpolkadot-js-api%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3D415492%26locator%3Dcontracts-ui%2540workspace%253A." + dependencies: + "@polkadot/keyring": "npm:^13.4.3" + "@polkadot/types-augment": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/types-create": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + "@polkadot/util-crypto": "npm:^13.4.3" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/ce0072dd7eb3e1d4e644df96417e57ef5c873cb46b9aaa32b429f8742ffdbdaf9bad7e9ec18532683b67be331addcc8f00b57180e05e84ce322b60971973044b + languageName: node + linkType: hard + +"@polkadot/types@file:../polkadot-js-api/packages/types/build::locator=contracts-ui%40workspace%3A.": + version: 15.8.1 + resolution: "@polkadot/types@file:../polkadot-js-api/packages/types/build#../polkadot-js-api/packages/types/build::hash=f20336&locator=contracts-ui%40workspace%3A." + dependencies: + "@polkadot/keyring": "npm:^13.4.3" + "@polkadot/types-augment": "npm:15.8.1" + "@polkadot/types-codec": "npm:15.8.1" + "@polkadot/types-create": "npm:15.8.1" + "@polkadot/util": "npm:^13.4.3" + "@polkadot/util-crypto": "npm:^13.4.3" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + checksum: 10/ce0072dd7eb3e1d4e644df96417e57ef5c873cb46b9aaa32b429f8742ffdbdaf9bad7e9ec18532683b67be331addcc8f00b57180e05e84ce322b60971973044b + languageName: node + linkType: hard + "@polkadot/types@npm:15.10.2, @polkadot/types@npm:^15.10.2": version: 15.10.2 resolution: "@polkadot/types@npm:15.10.2" @@ -2359,11 +2416,11 @@ __metadata: linkType: hard "@types/node@npm:*, @types/node@npm:^22.5.0": - version: 22.15.21 - resolution: "@types/node@npm:22.15.21" + version: 22.15.23 + resolution: "@types/node@npm:22.15.23" dependencies: undici-types: "npm:~6.21.0" - checksum: 10/cb4189587cca445bfb8166c0ed39f9344d743f37f3da892f2999a99bbabda45dc773237e61ecb7d1dc83dd95718cb1b5715b0be5dd7953565b19019e36a7cf39 + checksum: 10/1e121e0232cb61fdf34a86589aa4d43248dafd293be4858ab37acc2fa62cfbb7462bc0c3c8104515ec25ae4d6bf8b7e4a5217f05574ac53fd41e2a19bdca09f6 languageName: node linkType: hard @@ -2448,80 +2505,102 @@ __metadata: linkType: hard "@typescript-eslint/eslint-plugin@npm:^8.2.0": - version: 8.32.1 - resolution: "@typescript-eslint/eslint-plugin@npm:8.32.1" + version: 8.33.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.33.0" dependencies: "@eslint-community/regexpp": "npm:^4.10.0" - "@typescript-eslint/scope-manager": "npm:8.32.1" - "@typescript-eslint/type-utils": "npm:8.32.1" - "@typescript-eslint/utils": "npm:8.32.1" - "@typescript-eslint/visitor-keys": "npm:8.32.1" + "@typescript-eslint/scope-manager": "npm:8.33.0" + "@typescript-eslint/type-utils": "npm:8.33.0" + "@typescript-eslint/utils": "npm:8.33.0" + "@typescript-eslint/visitor-keys": "npm:8.33.0" graphemer: "npm:^1.4.0" ignore: "npm:^7.0.0" natural-compare: "npm:^1.4.0" ts-api-utils: "npm:^2.1.0" peerDependencies: - "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + "@typescript-eslint/parser": ^8.33.0 eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10/442205dd4e9fe016cf4f3edf292f5dba696c9e7d6c32c785a8bff0833974149513feab6c30d21e2f3c509bd2b2833edfb3175c0ee220661a02da59fd79100bb4 + checksum: 10/b728001208b28c05d024f352d61d6b707c5f9a9d1d9ada8239d3171897ac1545a54401ca340732af9f615af88dae954f7264d73ced1950e02d38225d33492f8d languageName: node linkType: hard "@typescript-eslint/parser@npm:^8.2.0": - version: 8.32.1 - resolution: "@typescript-eslint/parser@npm:8.32.1" + version: 8.33.0 + resolution: "@typescript-eslint/parser@npm:8.33.0" dependencies: - "@typescript-eslint/scope-manager": "npm:8.32.1" - "@typescript-eslint/types": "npm:8.32.1" - "@typescript-eslint/typescript-estree": "npm:8.32.1" - "@typescript-eslint/visitor-keys": "npm:8.32.1" + "@typescript-eslint/scope-manager": "npm:8.33.0" + "@typescript-eslint/types": "npm:8.33.0" + "@typescript-eslint/typescript-estree": "npm:8.33.0" + "@typescript-eslint/visitor-keys": "npm:8.33.0" debug: "npm:^4.3.4" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10/3c2ab90fec0aaaa57f883bf3963030e74402de82a73b8e47a19109accf18ee1441878bcba73bb9584890eedb56215000d6652196d9bfde05272c043d1c9c529d + checksum: 10/1a875fdb0e9d0a49cbe0f5a33da16ee95c5a1ddf08bd1a3f9481de5c6b3981aee8ef2be24570a14fbed1b53ee348ee8dac39bcc436e6479ea1ecb39b69ce7f2a languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.32.1": - version: 8.32.1 - resolution: "@typescript-eslint/scope-manager@npm:8.32.1" +"@typescript-eslint/project-service@npm:8.33.0": + version: 8.33.0 + resolution: "@typescript-eslint/project-service@npm:8.33.0" dependencies: - "@typescript-eslint/types": "npm:8.32.1" - "@typescript-eslint/visitor-keys": "npm:8.32.1" - checksum: 10/f81f71bd88e6bed90c9a42ed3cd26a360f8f7ca53186cea33b872194bf724a4635dd3aead5002b18de6cc5d1df9840445af1f7fc4d117f452705ccebdb6c0b0f + "@typescript-eslint/tsconfig-utils": "npm:^8.33.0" + "@typescript-eslint/types": "npm:^8.33.0" + debug: "npm:^4.3.4" + checksum: 10/5fdc829a67092c2b764598facaf515ec114af2fcfdaf68af321aa667e4c4962fa6c19120efbde7ca234488b2bd7299015fb6b221b22253fe4ea3eae0bb72e494 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:8.32.1": - version: 8.32.1 - resolution: "@typescript-eslint/type-utils@npm:8.32.1" +"@typescript-eslint/scope-manager@npm:8.33.0": + version: 8.33.0 + resolution: "@typescript-eslint/scope-manager@npm:8.33.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:8.32.1" - "@typescript-eslint/utils": "npm:8.32.1" + "@typescript-eslint/types": "npm:8.33.0" + "@typescript-eslint/visitor-keys": "npm:8.33.0" + checksum: 10/f52075c9ab3bdc69435f3b36583d2d5eb7bc66cfc8462184c9dc6dba5d0825e4d1d0f2e473ffaab5469fcfc4dc770908c26c1623b882d283739eb8e1869ab759 + languageName: node + linkType: hard + +"@typescript-eslint/tsconfig-utils@npm:8.33.0, @typescript-eslint/tsconfig-utils@npm:^8.33.0": + version: 8.33.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.33.0" + peerDependencies: + typescript: ">=4.8.4 <5.9.0" + checksum: 10/5bb139be996a16f65c012c083e4c0dc2ddafd1295940203e6c2a1ac9fa0718b1a91f74354f162d3d9614b013e062863414d4478c57ffbf78dfd7cb4f5701abde + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:8.33.0": + version: 8.33.0 + resolution: "@typescript-eslint/type-utils@npm:8.33.0" + dependencies: + "@typescript-eslint/typescript-estree": "npm:8.33.0" + "@typescript-eslint/utils": "npm:8.33.0" debug: "npm:^4.3.4" ts-api-utils: "npm:^2.1.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10/e50a6f2a16ccd916ed32a4d0b6c1011b8c177d1f789dfa629942efbd6cd3b1f5b9dc42c67b64e8c377338b34906e0191b9165caa4302d92979f13cd06d1b4234 + checksum: 10/993e7b8f2c8b6e34e175fd57077cb3ffbe9c83da66917b8bd0049e82c39f1ef18ab718a2ca1774db48311c58e4baf5b8e749e6aff5ff50c01b714e9471a673a5 languageName: node linkType: hard -"@typescript-eslint/types@npm:8.32.1": - version: 8.32.1 - resolution: "@typescript-eslint/types@npm:8.32.1" - checksum: 10/3a310e4bafa8dd6ddc83cd8627048ebe54660982348531bbbeee3d0fb06ffdacce6ac14200159166774bd8797664686f5d0bf19d3dd33216daccbc0e48cd3e51 +"@typescript-eslint/types@npm:8.33.0, @typescript-eslint/types@npm:^8.33.0": + version: 8.33.0 + resolution: "@typescript-eslint/types@npm:8.33.0" + checksum: 10/778e812e2c3543e79168fe1072559d8bfef314a96b90da81805f9359f3b5cdfd202153c161723ccb1a4f8edb2593625aa5003f6235039bf189b39c93ff2605c2 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.32.1": - version: 8.32.1 - resolution: "@typescript-eslint/typescript-estree@npm:8.32.1" +"@typescript-eslint/typescript-estree@npm:8.33.0": + version: 8.33.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.33.0" dependencies: - "@typescript-eslint/types": "npm:8.32.1" - "@typescript-eslint/visitor-keys": "npm:8.32.1" + "@typescript-eslint/project-service": "npm:8.33.0" + "@typescript-eslint/tsconfig-utils": "npm:8.33.0" + "@typescript-eslint/types": "npm:8.33.0" + "@typescript-eslint/visitor-keys": "npm:8.33.0" debug: "npm:^4.3.4" fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" @@ -2530,32 +2609,32 @@ __metadata: ts-api-utils: "npm:^2.1.0" peerDependencies: typescript: ">=4.8.4 <5.9.0" - checksum: 10/8b956ce05bf64d412e33b7d564db9d5620a7c2600ab04f2c6bb7561bcf46593f14b77ca9c895a4480869a323565a140985a4f4760f9df58f71114c4f502b3c78 + checksum: 10/7cad508e5cc70a1e0bc72ee0448b0cc55e195c93124a25a8330c58fc3fee4e2762cbc8039ad13d40cb0ef2953239af9dbb4d3653636f605ed3f9414995af080c languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.32.1": - version: 8.32.1 - resolution: "@typescript-eslint/utils@npm:8.32.1" +"@typescript-eslint/utils@npm:8.33.0": + version: 8.33.0 + resolution: "@typescript-eslint/utils@npm:8.33.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.7.0" - "@typescript-eslint/scope-manager": "npm:8.32.1" - "@typescript-eslint/types": "npm:8.32.1" - "@typescript-eslint/typescript-estree": "npm:8.32.1" + "@typescript-eslint/scope-manager": "npm:8.33.0" + "@typescript-eslint/types": "npm:8.33.0" + "@typescript-eslint/typescript-estree": "npm:8.33.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: ">=4.8.4 <5.9.0" - checksum: 10/9383cea185f3b54124a639f806d627f686637460e2eea431ccb9eeb6452dcd5a893856e051eb5925510f8aeb9317f8b7d23d9f39ca8fa80c46f2b797dae77d9c + checksum: 10/096011772d1ba6236413b1a49b8ad4f8999c0dcad1192ab81a13a753a95bfaf18cb138db94302cb00c312d410c7f48bb35ac1521908a55967e1fbba641aebcc5 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.32.1": - version: 8.32.1 - resolution: "@typescript-eslint/visitor-keys@npm:8.32.1" +"@typescript-eslint/visitor-keys@npm:8.33.0": + version: 8.33.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.33.0" dependencies: - "@typescript-eslint/types": "npm:8.32.1" + "@typescript-eslint/types": "npm:8.33.0" eslint-visitor-keys: "npm:^4.2.0" - checksum: 10/a1cbfbdac89d443dfc2718673e2cc1e884fc942678b3d1c3149cdab8123c71685473e362d794fcee1e975ceb45d16f44025a3f0bebe9b09a6bf8679f060d6817 + checksum: 10/f7f030c296dd83feb144f74aa382a67e4bb521d250507ede839f762bb215036d99d191b2203ac7af9867e434e569e4071ee0737cbde41d0ec38c0197f0a8549d languageName: node linkType: hard @@ -2566,123 +2645,123 @@ __metadata: languageName: node linkType: hard -"@unrs/resolver-binding-darwin-arm64@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.7.2" +"@unrs/resolver-binding-darwin-arm64@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.7.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-darwin-x64@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-darwin-x64@npm:1.7.2" +"@unrs/resolver-binding-darwin-x64@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-darwin-x64@npm:1.7.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-freebsd-x64@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.7.2" +"@unrs/resolver-binding-freebsd-x64@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.7.3" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.2" +"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.7.3" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.2" +"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.7.3" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.2" +"@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.7.3" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-arm64-musl@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.7.2" +"@unrs/resolver-binding-linux-arm64-musl@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.7.3" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.2" +"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.7.3" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.2" +"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.7.3" conditions: os=linux & cpu=riscv64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.2" +"@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.7.3" conditions: os=linux & cpu=riscv64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.2" +"@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.7.3" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-gnu@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.7.2" +"@unrs/resolver-binding-linux-x64-gnu@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.7.3" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-musl@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.7.2" +"@unrs/resolver-binding-linux-x64-musl@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.7.3" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@unrs/resolver-binding-wasm32-wasi@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.7.2" +"@unrs/resolver-binding-wasm32-wasi@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.7.3" dependencies: - "@napi-rs/wasm-runtime": "npm:^0.2.9" + "@napi-rs/wasm-runtime": "npm:^0.2.10" conditions: cpu=wasm32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.2" +"@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.7.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.2" +"@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.7.3" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@unrs/resolver-binding-win32-x64-msvc@npm:1.7.2": - version: 1.7.2 - resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.7.2" +"@unrs/resolver-binding-win32-x64-msvc@npm:1.7.3": + version: 1.7.3 + resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.7.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3846,10 +3925,10 @@ __metadata: "@headlessui/react": "npm:^1.7.18" "@heroicons/react": "npm:^1.0.6" "@istanbuljs/nyc-config-typescript": "npm:^1.0.2" - "@polkadot/api": "npm:15.8.1" - "@polkadot/api-contract": "file:./.api-contract/build" + "@polkadot/api": "file:../polkadot-js-api/packages/api/build" + "@polkadot/api-contract": "file:../polkadot-js-api/packages/api-contract/build" "@polkadot/extension-dapp": "npm:^0.58.6" - "@polkadot/types": "npm:15.8.1" + "@polkadot/types": "file:../polkadot-js-api/packages/types/build" "@polkadot/ui-keyring": "npm:^3.12.2" "@polkadot/ui-shared": "npm:^3.12.2" "@tailwindcss/forms": "npm:^0.5.7" @@ -4390,9 +4469,9 @@ __metadata: linkType: hard "electron-to-chromium@npm:^1.5.149": - version: 1.5.158 - resolution: "electron-to-chromium@npm:1.5.158" - checksum: 10/d8de199f8506ee1d51277ccab0557a1bf3f6737d42979365ec71ab5ce7ef10b7e1ecfa6ea2fa509f64afd52c6a57c765b2d2a215e67b5c6a3593f79a87438e2b + version: 1.5.159 + resolution: "electron-to-chromium@npm:1.5.159" + checksum: 10/ca2ce6cbbde3cfeb7f2f584ff91bbebce17900bf6c1c7a2220e71431da359f0284fbd92b13e74e08a2f31f087073a7dc3e7d7de014c8a642a182b61c6c240760 languageName: node linkType: hard @@ -5188,14 +5267,14 @@ __metadata: linkType: hard "fdir@npm:^6.4.4": - version: 6.4.4 - resolution: "fdir@npm:6.4.4" + version: 6.4.5 + resolution: "fdir@npm:6.4.5" peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: picomatch: optional: true - checksum: 10/d0000d6b790059b35f4ed19acc8847a66452e0bc68b28766c929ffd523e5ec2083811fc8a545e4a1d4945ce70e887b3a610c145c681073b506143ae3076342ed + checksum: 10/8f5a2107fe0486f61af9a0666f2b7c62a229c738330e22ff8795bfbaabcf2294fb79460b73830b8824fc6eef91e21f676bac66ca982d5ee7e92ee9b68c07775f languageName: node linkType: hard @@ -10517,26 +10596,26 @@ __metadata: linkType: hard "unrs-resolver@npm:^1.6.2": - version: 1.7.2 - resolution: "unrs-resolver@npm:1.7.2" - dependencies: - "@unrs/resolver-binding-darwin-arm64": "npm:1.7.2" - "@unrs/resolver-binding-darwin-x64": "npm:1.7.2" - "@unrs/resolver-binding-freebsd-x64": "npm:1.7.2" - "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.7.2" - "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.7.2" - "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.7.2" - "@unrs/resolver-binding-linux-arm64-musl": "npm:1.7.2" - "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.7.2" - "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.7.2" - "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.7.2" - "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.7.2" - "@unrs/resolver-binding-linux-x64-gnu": "npm:1.7.2" - "@unrs/resolver-binding-linux-x64-musl": "npm:1.7.2" - "@unrs/resolver-binding-wasm32-wasi": "npm:1.7.2" - "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.7.2" - "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.7.2" - "@unrs/resolver-binding-win32-x64-msvc": "npm:1.7.2" + version: 1.7.3 + resolution: "unrs-resolver@npm:1.7.3" + dependencies: + "@unrs/resolver-binding-darwin-arm64": "npm:1.7.3" + "@unrs/resolver-binding-darwin-x64": "npm:1.7.3" + "@unrs/resolver-binding-freebsd-x64": "npm:1.7.3" + "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.7.3" + "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.7.3" + "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.7.3" + "@unrs/resolver-binding-linux-arm64-musl": "npm:1.7.3" + "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.7.3" + "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.7.3" + "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.7.3" + "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.7.3" + "@unrs/resolver-binding-linux-x64-gnu": "npm:1.7.3" + "@unrs/resolver-binding-linux-x64-musl": "npm:1.7.3" + "@unrs/resolver-binding-wasm32-wasi": "npm:1.7.3" + "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.7.3" + "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.7.3" + "@unrs/resolver-binding-win32-x64-msvc": "npm:1.7.3" napi-postinstall: "npm:^0.2.2" dependenciesMeta: "@unrs/resolver-binding-darwin-arm64": @@ -10573,7 +10652,7 @@ __metadata: optional: true "@unrs/resolver-binding-win32-x64-msvc": optional: true - checksum: 10/58daa4c659dec7d4ae7b9731d541b9faf1b702dec3d612f260b546dfd78de81c87ad3cd0eb362e364f9e86ccb3a6a42d05dc07936c39e82af58f5536c9b7de1c + checksum: 10/a798855dad20341edef72cd6a44fe7ea49649d72260e19a9fcffec014718b4163d6e814e0cdfc26f67219f31e9b395b793dbdeafefc3d6c026f27a8218403f52 languageName: node linkType: hard From 5a71edf12322f6b9246d7a383e3ab032bbd4df5b Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Sun, 1 Jun 2025 18:26:01 +0200 Subject: [PATCH 21/32] refactor: remove dotAddress --- src/services/db/index.ts | 1 - src/types/ui/hooks.ts | 1 - src/ui/components/contract/ContractRow.tsx | 8 ++-- src/ui/components/contract/Interact.tsx | 45 ++++++++++++++-------- src/ui/hooks/useNewContract.ts | 2 - src/ui/hooks/useStoredContract.ts | 1 - src/ui/pages/AddressLookup.tsx | 3 -- src/ui/pages/ContractHeader.tsx | 11 +++--- 8 files changed, 40 insertions(+), 32 deletions(-) diff --git a/src/services/db/index.ts b/src/services/db/index.ts index a38e17a0..9056bc48 100644 --- a/src/services/db/index.ts +++ b/src/services/db/index.ts @@ -14,7 +14,6 @@ export interface CodeBundleDocument { export interface ContractDocument extends CodeBundleDocument { abi: Record; address: string; - dotAddress: string; external?: boolean; } diff --git a/src/types/ui/hooks.ts b/src/types/ui/hooks.ts index 3224917d..8a4b3643 100644 --- a/src/types/ui/hooks.ts +++ b/src/types/ui/hooks.ts @@ -49,5 +49,4 @@ export interface UIContract extends Pick { type: 'added' | 'instantiated'; codeHash: string; address: string; - dotAddress: string; } diff --git a/src/ui/components/contract/ContractRow.tsx b/src/ui/components/contract/ContractRow.tsx index a6635e55..abf5be8a 100644 --- a/src/ui/components/contract/ContractRow.tsx +++ b/src/ui/components/contract/ContractRow.tsx @@ -6,16 +6,18 @@ import { Link } from 'react-router-dom'; import { Identicon } from '../account/Identicon'; import { ObservedBalance } from '../common/ObservedBalance'; import { ContractDocument } from 'types'; -import { useApi } from 'ui/contexts'; +import { useApi, useVersion } from 'ui/contexts'; import { displayDate, truncate } from 'lib/util'; import { getContractInfo } from 'services/chain'; +import { fromEthAddress } from 'ui/hooks/useNewContract'; interface Props { contract: ContractDocument; } -export function ContractRow({ contract: { address, dotAddress, name, date } }: Props) { +export function ContractRow({ contract: { address, name, date } }: Props) { const { api } = useApi(); + const { version } = useVersion(); const [isOnChain, setIsOnChain] = useState(true); useEffect(() => { @@ -46,7 +48,7 @@ export function ContractRow({ contract: { address, dotAddress, name, date } }: P

- +
); diff --git a/src/ui/components/contract/Interact.tsx b/src/ui/components/contract/Interact.tsx index 18959f44..2ed1a8e0 100644 --- a/src/ui/components/contract/Interact.tsx +++ b/src/ui/components/contract/Interact.tsx @@ -21,10 +21,11 @@ import { SubmittableResult, UIContract, } from 'types'; +import { Text } from '@polkadot/types'; import { AccountSelect } from 'ui/components/account'; import { Button, Buttons, Dropdown } from 'ui/components/common'; import { ArgumentForm, Form, FormField, OptionsForm } from 'ui/components/form'; -import { useApi, useTransactions } from 'ui/contexts'; +import { useApi, useTransactions, useVersion } from 'ui/contexts'; import { useArgValues, useBalance, useWeight } from 'ui/hooks'; import { useAccountAvailable } from 'ui/hooks/useAccountAvailable'; import { useStorageDepositLimit } from 'ui/hooks/useStorageDepositLimit'; @@ -40,10 +41,10 @@ export const InteractTab = ({ abi: { registry }, tx, address, - dotAddress, }, }: Props) => { const { accounts, api } = useApi(); + const { version } = useVersion(); const { queue, process, txs } = useTransactions(); const [message, setMessage] = useState(); const [argValues, setArgValues, inputData] = useArgValues(message, registry); @@ -87,7 +88,6 @@ export const InteractTab = ({ }, [ accountId, address, - dotAddress, api.registry, inputData, isCustom, @@ -102,7 +102,10 @@ export const InteractTab = ({ useEffect((): void => { async function dryRun() { if (!message) return; - const newOutcome = await api.call.reviveApi.call(...params); + + const newOutcome = await (version === 'v6' + ? api.call.reviveApi.call(...params) + : api.call.contractsApi.call(...params)); // auto-generated @polkadot/type-augment data uses a different flag representation: `{"ok":{"flags":{"bits":0},"data":"0x00"}}` let convertedFlags = api.registry.createType('ContractReturnFlags', 0); @@ -112,17 +115,27 @@ export const InteractTab = ({ convertedFlags = api.registry.createType('ContractReturnFlags', isRevert); } - const convertedOutcome: ContractExecResult = api.registry.createType('ContractExecResult', { - registry: api.registry, - gasConsumed: newOutcome.gasConsumed, - gasRequired: newOutcome.gasRequired, - storageDeposit: newOutcome.storageDeposit, - // debugMessage is Bytes, must convert to Text - // debugMessage: new Text(api.registry, newOutcome.debugMessage.toUtf8()), - result: newOutcome.result.isOk - ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } - : { Err: newOutcome.result.asErr }, - }); + const convertedOutcome: ContractExecResult = await (version === 'v6' + ? api.registry.createType('ContractExecResult', { + registry: api.registry, + gasConsumed: newOutcome.gasConsumed, + gasRequired: newOutcome.gasRequired, + storageDeposit: newOutcome.storageDeposit, + result: newOutcome.result.isOk + ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } + : { Err: newOutcome.result.asErr }, + }) + : api.registry.createType('ContractExecResult', { + registry: api.registry, + gasConsumed: newOutcome.gasConsumed, + gasRequired: newOutcome.gasRequired, + storageDeposit: newOutcome.storageDeposit, + // debugMessage is Bytes, must convert to Text + debugMessage: new Text(api.registry, newOutcome.debugMessage.toUtf8()), + result: newOutcome.result.isOk + ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } + : { Err: newOutcome.result.asErr }, + })); // Update the state with the adapted outcome setOutcome(convertedOutcome); @@ -137,7 +150,7 @@ export const InteractTab = ({ } debouncedDryRun(); - }, [api.call.reviveApi, message, params, nextResultId]); + }, [api.call.reviveApi, api.call.contractsApi, message, params, nextResultId]); useEffect(() => { async function processTx() { diff --git a/src/ui/hooks/useNewContract.ts b/src/ui/hooks/useNewContract.ts index e7e77ff2..a66e0683 100644 --- a/src/ui/hooks/useNewContract.ts +++ b/src/ui/hooks/useNewContract.ts @@ -179,11 +179,9 @@ export function useNewContract() { } const codeHash = contract.abi.info.source.wasmHash.toHex(); - const document = { abi: contract.abi.json, address: calculatedAddress!, - dotAddress: fromEthAddress(calculatedAddress!), codeHash, date: new Date().toISOString(), name, diff --git a/src/ui/hooks/useStoredContract.ts b/src/ui/hooks/useStoredContract.ts index 2b90a187..67d4286c 100644 --- a/src/ui/hooks/useStoredContract.ts +++ b/src/ui/hooks/useStoredContract.ts @@ -38,7 +38,6 @@ export function useStoredContract(address: string): UIContract | undefined { tx: contract.tx, codeHash: document.codeHash, address: contract.address.toString(), - dotAddress: document.dotAddress, date: document.date, id: document.id, type: document.external ? 'added' : 'instantiated', diff --git a/src/ui/pages/AddressLookup.tsx b/src/ui/pages/AddressLookup.tsx index be88d76a..07624d6e 100644 --- a/src/ui/pages/AddressLookup.tsx +++ b/src/ui/pages/AddressLookup.tsx @@ -21,7 +21,6 @@ import { useApi, useDatabase, useVersion } from 'ui/contexts'; import { useNonEmptyString } from 'ui/hooks/useNonEmptyString'; import { useStoredMetadata } from 'ui/hooks/useStoredMetadata'; import { RootLayout } from 'ui/layout'; -import { fromEthAddress } from 'ui/hooks'; export function AddressLookup() { const [searchString, setSearchString] = useState(''); @@ -64,7 +63,6 @@ export function AddressLookup() { const isOnChain = await getContractInfo(api, searchString); if (isOnChain) { const contract = await db.contracts.get({ address: searchString }); - // Contract is already instantiated in current UI if (contract) { navigate(`/contract/${searchString}`); @@ -198,7 +196,6 @@ export function AddressLookup() { const document = { abi: metadata.json, address, - dotAddress: fromEthAddress(address), codeHash: metadata.info.source.wasmHash.toHex(), date: new Date().toISOString(), name, diff --git a/src/ui/pages/ContractHeader.tsx b/src/ui/pages/ContractHeader.tsx index 3ea5a8f8..0fdfcffd 100644 --- a/src/ui/pages/ContractHeader.tsx +++ b/src/ui/pages/ContractHeader.tsx @@ -6,14 +6,15 @@ import { CopyButton } from '../components/common/CopyButton'; import { ObservedBalance } from '../components/common/ObservedBalance'; import { displayDate, truncate } from 'lib/util'; import { UIContract } from 'types'; +import { useVersion } from 'ui/contexts'; +import { fromEthAddress } from 'ui/hooks/useNewContract'; interface Props { document: UIContract; } -export function ContractHeader({ - document: { name, type, address, dotAddress, date, codeHash }, -}: Props) { +export function ContractHeader({ document: { name, type, address, date, codeHash } }: Props) { + const { version } = useVersion(); switch (type) { case 'added': return ( @@ -27,7 +28,7 @@ export function ContractHeader({
{' '} on {displayDate(date)} and holds a value of{' '} - +
); @@ -54,7 +55,7 @@ export function ContractHeader({ {' '} on {displayDate(date)} and holds a value of{' '} - +
); From 24c0b770cc1efb1bec9587cc35eebe33114c76f9 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Sun, 1 Jun 2025 18:28:16 +0200 Subject: [PATCH 22/32] chore: alpha version only for v6 --- src/ui/layout/RootLayout.tsx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/ui/layout/RootLayout.tsx b/src/ui/layout/RootLayout.tsx index 0f3dc6dc..cd7e18c2 100644 --- a/src/ui/layout/RootLayout.tsx +++ b/src/ui/layout/RootLayout.tsx @@ -3,8 +3,10 @@ import { HTMLAttributes } from 'react'; import { classes } from 'lib/util'; +import { useVersion } from 'ui/contexts'; export function RootLayout({ accessory, heading, help, children, aside }: PageProps) { + const { version } = useVersion(); return (
- + {version === 'v6' && ( +
+ NOTE: This is an ALPHA version for the ink! v6 Alpha release. If you run into issues, + please open an issue at{' '} + + https://github.com/use-ink/contracts-ui + +
+ )}
{accessory &&
{accessory}
} From 7e171db6ddb4cfe4b24815032db3bfcb9a001a62 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Sun, 1 Jun 2025 22:57:48 +0200 Subject: [PATCH 23/32] chore: interact and steps --- src/ui/components/contract/Interact.tsx | 45 +++++++++++++------------ src/ui/components/instantiate/Step2.tsx | 40 +++++++++++++--------- src/ui/components/instantiate/Step3.tsx | 21 +++++++----- 3 files changed, 60 insertions(+), 46 deletions(-) diff --git a/src/ui/components/contract/Interact.tsx b/src/ui/components/contract/Interact.tsx index 2ed1a8e0..a08b2804 100644 --- a/src/ui/components/contract/Interact.tsx +++ b/src/ui/components/contract/Interact.tsx @@ -74,7 +74,7 @@ export const InteractTab = ({ setCallResults([]); }, [abi.messages, setArgValues, address]); - const params: Parameters = useMemo(() => { + const params: Parameters = useMemo(() => { return [ accountId, address, @@ -115,27 +115,28 @@ export const InteractTab = ({ convertedFlags = api.registry.createType('ContractReturnFlags', isRevert); } - const convertedOutcome: ContractExecResult = await (version === 'v6' - ? api.registry.createType('ContractExecResult', { - registry: api.registry, - gasConsumed: newOutcome.gasConsumed, - gasRequired: newOutcome.gasRequired, - storageDeposit: newOutcome.storageDeposit, - result: newOutcome.result.isOk - ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } - : { Err: newOutcome.result.asErr }, - }) - : api.registry.createType('ContractExecResult', { - registry: api.registry, - gasConsumed: newOutcome.gasConsumed, - gasRequired: newOutcome.gasRequired, - storageDeposit: newOutcome.storageDeposit, - // debugMessage is Bytes, must convert to Text - debugMessage: new Text(api.registry, newOutcome.debugMessage.toUtf8()), - result: newOutcome.result.isOk - ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } - : { Err: newOutcome.result.asErr }, - })); + const convertedOutcome: ContractExecResult = + version === 'v6' + ? api.registry.createType('ContractExecResult', { + registry: api.registry, + gasConsumed: newOutcome.gasConsumed, + gasRequired: newOutcome.gasRequired, + storageDeposit: newOutcome.storageDeposit, + result: newOutcome.result.isOk + ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } + : { Err: newOutcome.result.asErr }, + }) + : api.registry.createType('ContractExecResult', { + registry: api.registry, + gasConsumed: newOutcome.gasConsumed, + gasRequired: newOutcome.gasRequired, + storageDeposit: newOutcome.storageDeposit, + // debugMessage is Bytes, must convert to Text + debugMessage: new Text(api.registry, newOutcome.debugMessage.toUtf8()), + result: newOutcome.result.isOk + ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } + : { Err: newOutcome.result.asErr }, + }); // Update the state with the adapted outcome setOutcome(convertedOutcome); diff --git a/src/ui/components/instantiate/Step2.tsx b/src/ui/components/instantiate/Step2.tsx index 69761e15..1c6b2938 100644 --- a/src/ui/components/instantiate/Step2.tsx +++ b/src/ui/components/instantiate/Step2.tsx @@ -14,7 +14,7 @@ import { ArgumentForm, } from 'ui/components/form'; import { createConstructorOptions } from 'ui/util/dropdown'; -import { useApi, useInstantiate } from 'ui/contexts'; +import { useApi, useInstantiate, useVersion } from 'ui/contexts'; import { useArgValues, useFormField, @@ -39,6 +39,7 @@ function validateSalt(value: OrFalsy) { export function Step2() { const { api } = useApi(); const { data, setStep, step, setData, dryRunResult, setDryRunResult } = useInstantiate(); + const { version } = useVersion(); const { accountId, metadata } = data; const [constructorIndex, setConstructorIndex] = useState(0); const [deployConstructor, setDeployConstructor] = useState(); @@ -63,10 +64,8 @@ export function Step2() { }, [metadata, setConstructorIndex]); const [isUsingSalt, toggleIsUsingSalt] = useToggle(true); - //@ts-ignore TODO: need to update type in @polkadot/api-contracts - const code = metadata?.json.source.contract_binary; - const params: Parameters = useMemo(() => { + const params: Parameters = useMemo(() => { return [ accountId, deployConstructor?.isPayable @@ -74,7 +73,7 @@ export function Step2() { : api.registry.createType('Balance', BN_ZERO), getGasLimit(isCustom, refTime.limit, proofSize.limit, api.registry), getStorageDepositLimit(storageDepositLimit.isActive, storageDepositLimit.value, api.registry), - codeHashUrlParam ? { Existing: codeHashUrlParam } : { Upload: code }, // TODO: update type + codeHashUrlParam ? { Existing: codeHashUrlParam } : { Upload: metadata?.info.source.wasm }, inputData ?? '', isUsingSalt ? salt.value : '', ]; @@ -89,8 +88,7 @@ export function Step2() { storageDepositLimit.isActive, storageDepositLimit.value, codeHashUrlParam, - //@ts-ignore TODO: need to update type in @polkadot/api-contracts - metadata?.json.source.contract_binary, + metadata?.info.source.wasm, inputData, isUsingSalt, salt.value, @@ -99,7 +97,9 @@ export function Step2() { useEffect((): void => { async function dryRun() { try { - const result = await api.call.reviveApi.instantiate(...params); + const result = await (version === 'v6' + ? api.call.reviveApi.instantiate(...params) + : api.call.contractsApi.instantiate(...params)); // default is no revert let convertedFlags = api.registry.createType('ContractReturnFlags', 0); @@ -120,14 +120,22 @@ export function Step2() { instantiateResult = { Err: result.result.asErr }; } - const convertedOutcome = api.registry.createType('ContractInstantiateResult', { - gasConsumed: result.gasConsumed, - gasRequired: result.gasRequired, - storageDeposit: result.storageDeposit, - // debugMessage is Bytes, must convert to Text - // debugMessage: api.registry.createType('Text', result.debugMessage.toU8a()), - result: instantiateResult, - }); + const convertedOutcome = + version === 'v6' + ? api.registry.createType('ContractInstantiateResult', { + gasConsumed: result.gasConsumed, + gasRequired: result.gasRequired, + storageDeposit: result.storageDeposit, + result: instantiateResult, + }) + : api.registry.createType('ContractInstantiateResult', { + gasConsumed: result.gasConsumed, + gasRequired: result.gasRequired, + storageDeposit: result.storageDeposit, + // debugMessage is Bytes, must convert to Text + debugMessage: api.registry.createType('Text', result.debugMessage.toU8a()), + result: instantiateResult, + }); const resultJson = JSON.stringify(convertedOutcome.toJSON()); const dryRunResultJson = JSON.stringify(dryRunResult?.toJSON()); diff --git a/src/ui/components/instantiate/Step3.tsx b/src/ui/components/instantiate/Step3.tsx index ff8479e8..2e26aa13 100644 --- a/src/ui/components/instantiate/Step3.tsx +++ b/src/ui/components/instantiate/Step3.tsx @@ -8,7 +8,7 @@ import { Button, Buttons } from '../common/Button'; import { printBN } from 'lib/bn'; import { createInstantiateTx } from 'services/chain'; import { SubmittableResult } from 'types'; -import { useApi, useInstantiate, useTransactions } from 'ui/contexts'; +import { useApi, useInstantiate, useTransactions, useVersion } from 'ui/contexts'; import { useNewContract } from 'ui/hooks'; import { transformUserInput } from 'lib/callOptions'; @@ -16,9 +16,8 @@ export function Step3() { const { codeHash: codeHashUrlParam } = useParams<{ codeHash: string }>(); const { data, step, setStep } = useInstantiate(); const { api } = useApi(); + const { version } = useVersion(); const { accountId, value, metadata, gasLimit, name, constructorIndex, salt } = data; - - // const transformed = transformUserInput(api.registry, data.constructor.args, argValues); const { queue, process, txs, dismiss } = useTransactions(); const [txId, setTxId] = useState(0); const onSuccess = useNewContract(); @@ -29,10 +28,6 @@ export function Step3() { const isValid = (result: SubmittableResult) => !result.isError && !result.dispatchError; if (data.accountId) { - const constructor = metadata?.findConstructor(constructorIndex); - const transformed = transformUserInput(api.registry, constructor?.args || [], data.argValues); - const inputData = constructor?.toU8a(transformed).slice(1); // exclude the first byte (the length byte) - const tx = createInstantiateTx(api, data); if (!txId) { @@ -40,6 +35,16 @@ export function Step3() { extrinsic: tx, accountId: data.accountId, onSuccess: result => { + if (version !== 'v6') { + return onSuccess(result); + } + const constructor = metadata?.findConstructor(constructorIndex); + const transformed = transformUserInput( + api.registry, + constructor?.args || [], + data.argValues, + ); + const inputData = constructor?.toU8a(transformed).slice(1); // exclude the first byte (the length byte) // Pass the contract data and extrinsic to onSuccess // @ts-ignore: TODO: solve type issue return onSuccess({ @@ -48,7 +53,7 @@ export function Step3() { salt: salt?.toString() || '', // Using codeHash as salt for demonstration data: inputData || new Uint8Array(), // @ts-ignore TODO - code: metadata?.json.source.contract_binary, + code: metadata?.json.source.wasm, }, }); }, From 208340fddf48f6294f36e109ef80aa971b9028de Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Mon, 2 Jun 2025 09:38:39 +0200 Subject: [PATCH 24/32] refactor: useNewContract --- src/lib/address.ts | 115 +++++++++++++++++++ src/services/chain/contract.ts | 7 +- src/ui/components/common/HeaderButtons.tsx | 6 +- src/ui/components/contract/ContractRow.tsx | 4 +- src/ui/hooks/useNewContract.ts | 126 +-------------------- src/ui/pages/AddressLookup.tsx | 2 +- src/ui/pages/ContractHeader.tsx | 2 +- 7 files changed, 132 insertions(+), 130 deletions(-) create mode 100644 src/lib/address.ts diff --git a/src/lib/address.ts b/src/lib/address.ts new file mode 100644 index 00000000..a4e80970 --- /dev/null +++ b/src/lib/address.ts @@ -0,0 +1,115 @@ +import { BigNumberish, ethers } from 'ethers'; +import { hexToU8a, stringToU8a, u8aToHex } from '@polkadot/util'; +import { keccak256 } from 'ethers'; + +/** + * TypeScript equivalent of H160 (20-byte Ethereum address) + */ +type Address = string; + +/** + * Determine the address of a contract using CREATE semantics. + * @param deployer The address of the deployer + * @param nonce The nonce value + * @returns The contract address + */ +export function create1(deployer: string, nonce: number): Address { + // Convert deployer to bytes (remove 0x prefix if present) + const deployerBytes = ethers.hexlify(deployer); + ethers.toBeHex(nonce as BigNumberish); + // Convert nonce to hex (minimal encoding) + const nonceBytes = ethers.toBeHex(nonce as BigNumberish); + + // RLP encode [deployer, nonce] + const encodedData = ethers.encodeRlp([deployerBytes, nonceBytes]); + + // Calculate keccak256 hash of the RLP encoded data + const hash = ethers.keccak256(encodedData); + + // Take the last 20 bytes (40 hex chars + 0x prefix) + return ethers.getAddress('0x' + hash.substring(26)); +} + +export function create2( + deployer: string, + code: Uint8Array, + inputData: Uint8Array, + salt: string, +): string { + const initCode = new Uint8Array([...code, ...inputData]); + const initCodeHash = hexToU8a(keccak256(initCode)); + + const parts = new Uint8Array(1 + 20 + 32 + 32); // 0xff + deployer + salt + initCodeHash + parts[0] = 0xff; + parts.set(hexToU8a(deployer), 1); + parts.set(hexToU8a(salt), 21); + parts.set(initCodeHash, 53); + + const hash = keccak256(parts); + + // Return last 20 bytes as 0x-prefixed hex string + return ethers.getAddress('0x' + hash.substring(26)); +} + +/** + * Converts an account ID to an Ethereum address (H160) + * @param accountId The account ID bytes + * @returns The Ethereum address + */ +export function toEthAddress(accountId: Uint8Array | string): string { + // Convert string input to Uint8Array if needed + const accountBytes = typeof accountId === 'string' ? stringToU8a(accountId) : accountId; + + // Create a 32-byte buffer and copy account bytes into it + const accountBuffer = new Uint8Array(32); + accountBuffer.set(accountBytes.slice(0, 32)); + + if (isEthDerived(accountBytes)) { + // This was originally an eth address + // We just strip the 0xEE suffix to get the original address + return '0x' + Buffer.from(accountBuffer.slice(0, 20)).toString('hex'); + } else { + // This is an (ed|sr)25519 derived address + // Avoid truncating the public key by hashing it first + const accountHash = ethers.keccak256(accountBuffer); + return ethers.getAddress('0x' + accountHash.slice(2 + 24, 2 + 24 + 40)); // Skip '0x' prefix, then skip 12 bytes, take 20 bytes + } +} + +export function fromEthAddress(ethAddress: string): string { + // Remove '0x' prefix if it exists + const cleanAddress = ethAddress.startsWith('0x') ? ethAddress.slice(2) : ethAddress; + + // Convert the hex string to bytes + const addressBytes = Buffer.from(cleanAddress, 'hex'); + + // Check if the address is the expected length (20 bytes) + if (addressBytes.length !== 20) { + throw new Error('Invalid Ethereum address: must be 20 bytes'); + } + + // Create a 32-byte buffer + const result = new Uint8Array(32); + + // Set the first 20 bytes to the Ethereum address + result.set(addressBytes, 0); + + // Fill the remaining 12 bytes with 0xEE + for (let i = 20; i < 32; i++) { + result[i] = 0xee; + } + + return u8aToHex(result); +} + +/** + * Determines if an account ID is derived from an Ethereum address + * @param accountId The account ID bytes + * @returns True if the account is derived from an Ethereum address + */ +export function isEthDerived(accountId: Uint8Array): boolean { + if (accountId.length >= 32) { + return accountId[20] === 0xee && accountId[21] === 0xee; + } + return false; +} diff --git a/src/services/chain/contract.ts b/src/services/chain/contract.ts index ddd81d05..301c2361 100644 --- a/src/services/chain/contract.ts +++ b/src/services/chain/contract.ts @@ -11,7 +11,7 @@ import { InstantiateData, SubmittableExtrinsic, } from 'types'; -import { useVersion } from 'ui/contexts'; +import { InkVersion } from 'ui/contexts'; export function createInstantiateTx( api: ApiPromise, @@ -53,13 +53,12 @@ export function createInstantiateTx( } } -export async function getContractInfo(api: ApiPromise, address: string) { - const { version } = useVersion(); +export async function getContractInfo(api: ApiPromise, address: string, version: InkVersion) { if (isValidAddress(address, version)) { if (version === 'v6') { return (await api.query.revive.contractInfoOf(address)).unwrapOr(null); } else { - return (await api.query.revive.contractInfoOf(address)).unwrapOr(null); + return (await api.query.contracts.contractInfoOf(address)).unwrapOr(null); } } } diff --git a/src/ui/components/common/HeaderButtons.tsx b/src/ui/components/common/HeaderButtons.tsx index 0699b838..1d4d4bce 100644 --- a/src/ui/components/common/HeaderButtons.tsx +++ b/src/ui/components/common/HeaderButtons.tsx @@ -6,9 +6,10 @@ import { ArrowCircleRightIcon, TrashIcon } from '@heroicons/react/outline'; import { Link, useNavigate } from 'react-router-dom'; import { getContractInfo } from 'services/chain'; import { ForgetContractModal } from 'ui/components/modal'; -import { useApi, useDatabase } from 'ui/contexts'; +import { useApi, useDatabase, useVersion } from 'ui/contexts'; import { truncate } from 'lib/util'; import type { UIContract } from 'types'; +import { a } from 'vitest/dist/chunks/suite.B2jumIFP.js'; interface Props { contract: UIContract; @@ -17,6 +18,7 @@ interface Props { export function HeaderButtons({ contract: { address, codeHash } }: Props) { const { api } = useApi(); const { db } = useDatabase(); + const { version } = useVersion(); const [isOnChain, setIsOnChain] = useState(true); const [isOpen, setIsOpen] = useState(false); const navigate = useNavigate(); @@ -28,7 +30,7 @@ export function HeaderButtons({ contract: { address, codeHash } }: Props) { }; useEffect(() => { - getContractInfo(api, address) + getContractInfo(api, address, version) .then(info => { setIsOnChain(info ? true : false); }) diff --git a/src/ui/components/contract/ContractRow.tsx b/src/ui/components/contract/ContractRow.tsx index abf5be8a..c728c564 100644 --- a/src/ui/components/contract/ContractRow.tsx +++ b/src/ui/components/contract/ContractRow.tsx @@ -9,7 +9,7 @@ import { ContractDocument } from 'types'; import { useApi, useVersion } from 'ui/contexts'; import { displayDate, truncate } from 'lib/util'; import { getContractInfo } from 'services/chain'; -import { fromEthAddress } from 'ui/hooks/useNewContract'; +import { fromEthAddress } from 'lib/address'; interface Props { contract: ContractDocument; @@ -21,7 +21,7 @@ export function ContractRow({ contract: { address, name, date } }: Props) { const [isOnChain, setIsOnChain] = useState(true); useEffect(() => { - getContractInfo(api, address) + getContractInfo(api, address, version) .then(info => { setIsOnChain(info ? true : false); }) diff --git a/src/ui/hooks/useNewContract.ts b/src/ui/hooks/useNewContract.ts index a66e0683..74e456cf 100644 --- a/src/ui/hooks/useNewContract.ts +++ b/src/ui/hooks/useNewContract.ts @@ -3,12 +3,11 @@ import { useNavigate } from 'react-router'; import type { BlueprintSubmittableResult } from 'types'; -import { useApi, useDatabase, useInstantiate } from 'ui/contexts'; -import { BigNumberish, ethers } from 'ethers'; +import { useApi, useDatabase, useInstantiate, useVersion } from 'ui/contexts'; import { ApiTypes } from '@polkadot/api/types'; -import { hexToU8a, stringToU8a, u8aToHex } from '@polkadot/util'; -import { keccak256 } from 'ethers'; +import { hexToU8a } from '@polkadot/util'; import { decodeAddress } from '@polkadot/keyring'; +import { create1, create2, toEthAddress } from 'lib/address'; interface ExtendedBlueprintSubmittableResult extends BlueprintSubmittableResult { @@ -20,123 +19,12 @@ interface ExtendedBlueprintSubmittableResult }; } -/** - * TypeScript equivalent of H160 (20-byte Ethereum address) - */ -type Address = string; - -/** - * Determine the address of a contract using CREATE semantics. - * @param deployer The address of the deployer - * @param nonce The nonce value - * @returns The contract address - */ -export function create1(deployer: string, nonce: number): Address { - // Convert deployer to bytes (remove 0x prefix if present) - const deployerBytes = ethers.hexlify(deployer); - ethers.toBeHex(nonce as BigNumberish); - // Convert nonce to hex (minimal encoding) - const nonceBytes = ethers.toBeHex(nonce as BigNumberish); - - // RLP encode [deployer, nonce] - const encodedData = ethers.encodeRlp([deployerBytes, nonceBytes]); - - // Calculate keccak256 hash of the RLP encoded data - const hash = ethers.keccak256(encodedData); - - // Take the last 20 bytes (40 hex chars + 0x prefix) - return ethers.getAddress('0x' + hash.substring(26)); -} - -export function create2( - deployer: string, - code: Uint8Array, - inputData: Uint8Array, - salt: string, -): string { - const initCode = new Uint8Array([...code, ...inputData]); - const initCodeHash = hexToU8a(keccak256(initCode)); - - const parts = new Uint8Array(1 + 20 + 32 + 32); // 0xff + deployer + salt + initCodeHash - parts[0] = 0xff; - parts.set(hexToU8a(deployer), 1); - parts.set(hexToU8a(salt), 21); - parts.set(initCodeHash, 53); - - const hash = keccak256(parts); - - // Return last 20 bytes as 0x-prefixed hex string - return ethers.getAddress('0x' + hash.substring(26)); -} - -/** - * Converts an account ID to an Ethereum address (H160) - * @param accountId The account ID bytes - * @returns The Ethereum address - */ -export function toEthAddress(accountId: Uint8Array | string): string { - // Convert string input to Uint8Array if needed - const accountBytes = typeof accountId === 'string' ? stringToU8a(accountId) : accountId; - - // Create a 32-byte buffer and copy account bytes into it - const accountBuffer = new Uint8Array(32); - accountBuffer.set(accountBytes.slice(0, 32)); - - if (isEthDerived(accountBytes)) { - // This was originally an eth address - // We just strip the 0xEE suffix to get the original address - return '0x' + Buffer.from(accountBuffer.slice(0, 20)).toString('hex'); - } else { - // This is an (ed|sr)25519 derived address - // Avoid truncating the public key by hashing it first - const accountHash = ethers.keccak256(accountBuffer); - return ethers.getAddress('0x' + accountHash.slice(2 + 24, 2 + 24 + 40)); // Skip '0x' prefix, then skip 12 bytes, take 20 bytes - } -} - -export function fromEthAddress(ethAddress: string): string { - // Remove '0x' prefix if it exists - const cleanAddress = ethAddress.startsWith('0x') ? ethAddress.slice(2) : ethAddress; - - // Convert the hex string to bytes - const addressBytes = Buffer.from(cleanAddress, 'hex'); - - // Check if the address is the expected length (20 bytes) - if (addressBytes.length !== 20) { - throw new Error('Invalid Ethereum address: must be 20 bytes'); - } - - // Create a 32-byte buffer - const result = new Uint8Array(32); - - // Set the first 20 bytes to the Ethereum address - result.set(addressBytes, 0); - - // Fill the remaining 12 bytes with 0xEE - for (let i = 20; i < 32; i++) { - result[i] = 0xee; - } - - return u8aToHex(result); -} - -/** - * Determines if an account ID is derived from an Ethereum address - * @param accountId The account ID bytes - * @returns True if the account is derived from an Ethereum address - */ -export function isEthDerived(accountId: Uint8Array): boolean { - if (accountId.length >= 32) { - return accountId[20] === 0xee && accountId[21] === 0xee; - } - return false; -} - export function useNewContract() { const { db } = useDatabase(); const navigate = useNavigate(); const instantiate = useInstantiate(); const { api } = useApi(); + const { version } = useVersion(); const { data: { accountId, name }, @@ -157,10 +45,9 @@ export function useNewContract() { contractData, }: ExtendedBlueprintSubmittableResult<'promise'>): Promise { if (accountId && contract?.abi.json) { + let calculatedAddress = contract.address.toString(); // Calculate the expected contract address based on the Rust logic - let calculatedAddress; - - if (contractData) { + if (version === 'v6' && contractData) { const { salt, code, data, originIsCaller = false } = contractData; const mappedAccount = toEthAddress(decodeAddress(accountId)); @@ -177,7 +64,6 @@ export function useNewContract() { } } } - const codeHash = contract.abi.info.source.wasmHash.toHex(); const document = { abi: contract.abi.json, diff --git a/src/ui/pages/AddressLookup.tsx b/src/ui/pages/AddressLookup.tsx index 07624d6e..c3ef7b0b 100644 --- a/src/ui/pages/AddressLookup.tsx +++ b/src/ui/pages/AddressLookup.tsx @@ -60,7 +60,7 @@ export function AddressLookup() { async function validate() { if (address !== searchString) { if (isValidAddress(searchString, version)) { - const isOnChain = await getContractInfo(api, searchString); + const isOnChain = await getContractInfo(api, searchString, version); if (isOnChain) { const contract = await db.contracts.get({ address: searchString }); // Contract is already instantiated in current UI diff --git a/src/ui/pages/ContractHeader.tsx b/src/ui/pages/ContractHeader.tsx index 0fdfcffd..820dcfc1 100644 --- a/src/ui/pages/ContractHeader.tsx +++ b/src/ui/pages/ContractHeader.tsx @@ -7,7 +7,7 @@ import { ObservedBalance } from '../components/common/ObservedBalance'; import { displayDate, truncate } from 'lib/util'; import { UIContract } from 'types'; import { useVersion } from 'ui/contexts'; -import { fromEthAddress } from 'ui/hooks/useNewContract'; +import { fromEthAddress } from 'lib/address'; interface Props { document: UIContract; From dce7d7b2b1218c4d3c283be80da5de372bd0d75f Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Mon, 2 Jun 2025 16:08:49 +0200 Subject: [PATCH 25/32] test: address tests --- src/lib/address.test.ts | 42 ++++++++++++++++++++++ src/lib/address.ts | 15 ++++---- src/ui/components/contract/ContractRow.tsx | 9 +++-- src/ui/pages/ContractHeader.tsx | 12 ++++++- 4 files changed, 69 insertions(+), 9 deletions(-) create mode 100644 src/lib/address.test.ts diff --git a/src/lib/address.test.ts b/src/lib/address.test.ts new file mode 100644 index 00000000..fee2e8fc --- /dev/null +++ b/src/lib/address.test.ts @@ -0,0 +1,42 @@ +// Copyright 2022-2024 use-ink/contracts-ui authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + +import { hexToU8a } from '@polkadot/util'; +import { beforeAll, describe, expect, it } from 'vitest'; +import { getAddress } from 'ethers'; +import { decodeAddress } from '@polkadot/keyring'; +import { create1, create2, toEthAddress, isEthAddress } from './address'; + +// https://github.com/paritytech/polkadot-sdk/blob/65ade498b63bf2216d1c444f28c1b48085417f13/substrate/frame/revive/src/address.rs#L257 +describe('address utilities', () => { + const deployer = '0x' + '01'.repeat(20); + const code = Uint8Array.from([0x60, 0x00, 0x60, 0x00, 0x55, 0x60, 0x01, 0x60, 0x00]); + const inputData = Uint8Array.from([0x55]); + const salt = '0x1234567890123456789012345678901234567890123456789012345678901234'; + + it('should compute correct address with create1', () => { + const address = create1(deployer, 1); + expect(getAddress(address)).toBe(getAddress('0xc851da37e4e8d3a20d8d56be2963934b4ad71c3b')); + }); + + it('should compute correct address with create2', () => { + const address = create2(deployer, code, inputData, salt); + expect(getAddress(address)).toBe(getAddress('0x7f31e795e5836a19a8f919ab5a9de9a197ecd2b6')); + }); + + it('should convert Substrate account ID to Ethereum address', () => { + const accountId = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'; + const ethAddress = toEthAddress(decodeAddress(accountId)); + + expect(ethAddress.startsWith('0x')).toBe(true); + expect(getAddress(ethAddress)).toBe(getAddress('0x9621dde636de098b43efb0fa9b61facfe328f99d')); + }); + + it('should detect if is Ethereum address', () => { + const ethAddress = '0x9621dde636de098b43efb0fa9b61facfe328f99d'; + expect(isEthAddress(ethAddress), true); + + const accountId = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'; + expect(isEthAddress(ethAddress), false); + }); +}); diff --git a/src/lib/address.ts b/src/lib/address.ts index a4e80970..b3e4beac 100644 --- a/src/lib/address.ts +++ b/src/lib/address.ts @@ -1,3 +1,6 @@ +// Copyright 2022-2024 use-ink/contracts-ui authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + import { BigNumberish, ethers } from 'ethers'; import { hexToU8a, stringToU8a, u8aToHex } from '@polkadot/util'; import { keccak256 } from 'ethers'; @@ -76,6 +79,11 @@ export function toEthAddress(accountId: Uint8Array | string): string { } } +export function isEthAddress(addr: string): boolean { + const hex = addr.startsWith('0x') ? addr.slice(2) : addr; + return hex.length === 40; +} + export function fromEthAddress(ethAddress: string): string { // Remove '0x' prefix if it exists const cleanAddress = ethAddress.startsWith('0x') ? ethAddress.slice(2) : ethAddress; @@ -89,16 +97,11 @@ export function fromEthAddress(ethAddress: string): string { } // Create a 32-byte buffer - const result = new Uint8Array(32); + const result = new Uint8Array(32).fill(0xee); // Set the first 20 bytes to the Ethereum address result.set(addressBytes, 0); - // Fill the remaining 12 bytes with 0xEE - for (let i = 20; i < 32; i++) { - result[i] = 0xee; - } - return u8aToHex(result); } diff --git a/src/ui/components/contract/ContractRow.tsx b/src/ui/components/contract/ContractRow.tsx index c728c564..864a287a 100644 --- a/src/ui/components/contract/ContractRow.tsx +++ b/src/ui/components/contract/ContractRow.tsx @@ -9,7 +9,7 @@ import { ContractDocument } from 'types'; import { useApi, useVersion } from 'ui/contexts'; import { displayDate, truncate } from 'lib/util'; import { getContractInfo } from 'services/chain'; -import { fromEthAddress } from 'lib/address'; +import { fromEthAddress, isEthAddress } from 'lib/address'; interface Props { contract: ContractDocument; @@ -19,6 +19,7 @@ export function ContractRow({ contract: { address, name, date } }: Props) { const { api } = useApi(); const { version } = useVersion(); const [isOnChain, setIsOnChain] = useState(true); + const isMismatch = version === 'v6' && !isEthAddress(address); useEffect(() => { getContractInfo(api, address, version) @@ -48,7 +49,11 @@ export function ContractRow({ contract: { address, name, date } }: Props) {
{displayDate(date)}
- + {isMismatch ? ( + Not compatible with ink! v6 + ) : ( + + )}
); diff --git a/src/ui/pages/ContractHeader.tsx b/src/ui/pages/ContractHeader.tsx index 820dcfc1..277e8b97 100644 --- a/src/ui/pages/ContractHeader.tsx +++ b/src/ui/pages/ContractHeader.tsx @@ -7,7 +7,7 @@ import { ObservedBalance } from '../components/common/ObservedBalance'; import { displayDate, truncate } from 'lib/util'; import { UIContract } from 'types'; import { useVersion } from 'ui/contexts'; -import { fromEthAddress } from 'lib/address'; +import { fromEthAddress, isEthAddress } from 'lib/address'; interface Props { document: UIContract; @@ -15,6 +15,16 @@ interface Props { export function ContractHeader({ document: { name, type, address, date, codeHash } }: Props) { const { version } = useVersion(); + const isMismatch = version === 'v6' && !isEthAddress(address); + if (isMismatch) { + return ( +
+ ⚠️ This contract is not compatible with the selected ink! v6 mode. +
+ Please remove the contract or switch to a compatible version using the dropdown. +
+ ); + } switch (type) { case 'added': return ( From f1f0fa95182858006d5a670bf3a98e24a4ce17a9 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Mon, 2 Jun 2025 16:34:09 +0200 Subject: [PATCH 26/32] fix: checkOnChainCode for v6 --- src/lib/address.test.ts | 2 +- src/lib/address.ts | 10 +++++++- src/services/chain/contract.ts | 24 ++++++++++++++----- .../instantiate/AvailableCodeBundles.tsx | 5 ++-- src/ui/components/instantiate/CodeHash.tsx | 5 ++-- .../components/instantiate/LookUpCodeHash.tsx | 7 +++--- 6 files changed, 38 insertions(+), 15 deletions(-) diff --git a/src/lib/address.test.ts b/src/lib/address.test.ts index fee2e8fc..2cb5c146 100644 --- a/src/lib/address.test.ts +++ b/src/lib/address.test.ts @@ -7,7 +7,7 @@ import { getAddress } from 'ethers'; import { decodeAddress } from '@polkadot/keyring'; import { create1, create2, toEthAddress, isEthAddress } from './address'; -// https://github.com/paritytech/polkadot-sdk/blob/65ade498b63bf2216d1c444f28c1b48085417f13/substrate/frame/revive/src/address.rs#L257 +// Similar to pallet_revive tests: https://github.com/paritytech/polkadot-sdk/blob/65ade498b63bf2216d1c444f28c1b48085417f13/substrate/frame/revive/src/address.rs#L257 describe('address utilities', () => { const deployer = '0x' + '01'.repeat(20); const code = Uint8Array.from([0x60, 0x00, 0x60, 0x00, 0x55, 0x60, 0x01, 0x60, 0x00]); diff --git a/src/lib/address.ts b/src/lib/address.ts index b3e4beac..9d45f0ab 100644 --- a/src/lib/address.ts +++ b/src/lib/address.ts @@ -33,12 +33,20 @@ export function create1(deployer: string, nonce: number): Address { return ethers.getAddress('0x' + hash.substring(26)); } +/** + * Determine the address of a contract using CREATE2 semantics. + * @param deployer The address of the deployer + * @param code The contract code (WASM or EVM bytecode) + * @param inputData The constructor arguments or init input + * @param salt A 32-byte salt value (as hex string) + * @returns The deterministic contract address + */ export function create2( deployer: string, code: Uint8Array, inputData: Uint8Array, salt: string, -): string { +): Address { const initCode = new Uint8Array([...code, ...inputData]); const initCodeHash = hexToU8a(keccak256(initCode)); diff --git a/src/services/chain/contract.ts b/src/services/chain/contract.ts index 301c2361..e81331e7 100644 --- a/src/services/chain/contract.ts +++ b/src/services/chain/contract.ts @@ -63,16 +63,28 @@ export async function getContractInfo(api: ApiPromise, address: string, version: } } -export async function checkOnChainCode(api: ApiPromise, codeHash: string): Promise { - return isValidCodeHash(codeHash) - ? (await api.query.contracts.pristineCode(codeHash)).isSome - : false; +export async function checkOnChainCode( + api: ApiPromise, + codeHash: string, + version: InkVersion, +): Promise { + if (!isValidCodeHash(codeHash)) return false; + + if (version === 'v6') { + return (await api.query.revive.pristineCode(codeHash)).isSome; + } else { + return (await api.query.contracts.pristineCode(codeHash)).isSome; + } } -export async function filterOnChainCode(api: ApiPromise, items: CodeBundleDocument[]) { +export async function filterOnChainCode( + api: ApiPromise, + items: CodeBundleDocument[], + version: InkVersion, +) { const codes: CodeBundleDocument[] = []; for (const item of items) { - const isOnChain = await checkOnChainCode(api, item.codeHash); + const isOnChain = await checkOnChainCode(api, item.codeHash, version); isOnChain && codes.push(item); } return codes; diff --git a/src/ui/components/instantiate/AvailableCodeBundles.tsx b/src/ui/components/instantiate/AvailableCodeBundles.tsx index 800e360f..2d384127 100644 --- a/src/ui/components/instantiate/AvailableCodeBundles.tsx +++ b/src/ui/components/instantiate/AvailableCodeBundles.tsx @@ -6,7 +6,7 @@ import { useNavigate } from 'react-router'; import { FormField } from '../form/FormField'; import { CodeHash } from './CodeHash'; import { CodeBundleDocument } from 'types'; -import { useApi, useDatabase } from 'ui/contexts'; +import { useApi, useDatabase, useVersion } from 'ui/contexts'; import { useDbQuery } from 'ui/hooks'; import { filterOnChainCode } from 'services/chain'; @@ -55,6 +55,7 @@ function List({ items, label }: ListProps) { export function AvailableCodeBundles() { const { api } = useApi(); const { db } = useDatabase(); + const { version } = useVersion(); const [data, isLoading] = useDbQuery( () => db.codeBundles.orderBy('date').reverse().toArray(), [db], @@ -63,7 +64,7 @@ export function AvailableCodeBundles() { useEffect(() => { data && - filterOnChainCode(api, data) + filterOnChainCode(api, data, version) .then(codes => setCodes(codes)) .catch(console.error); }, [api, data]); diff --git a/src/ui/components/instantiate/CodeHash.tsx b/src/ui/components/instantiate/CodeHash.tsx index fcf7cd51..e83c1cbb 100644 --- a/src/ui/components/instantiate/CodeHash.tsx +++ b/src/ui/components/instantiate/CodeHash.tsx @@ -5,7 +5,7 @@ import { ChevronRightIcon, TrashIcon } from '@heroicons/react/outline'; import { useEffect, useMemo, useState } from 'react'; import { checkOnChainCode } from 'services/chain'; import { SimpleSpread, VoidFn } from 'types'; -import { useApi, useDatabase } from 'ui/contexts'; +import { useApi, useDatabase, useVersion } from 'ui/contexts'; import { classes, truncate } from 'lib/util'; import { CopyButton } from 'ui/components/common/CopyButton'; @@ -35,11 +35,12 @@ export function CodeHash({ }: Props) { const { api } = useApi(); const { db } = useDatabase(); + const { version } = useVersion(); const [isOnChain, setIsOnChain] = useState(true); const parsedDate = useMemo(() => (date ? new Date(date) : undefined), [date]); useEffect(() => { - checkOnChainCode(api, codeHash) + checkOnChainCode(api, codeHash, version) .then(codeStorageExists => { setIsOnChain(codeStorageExists ? true : false); }) diff --git a/src/ui/components/instantiate/LookUpCodeHash.tsx b/src/ui/components/instantiate/LookUpCodeHash.tsx index 5937a402..4b02babe 100644 --- a/src/ui/components/instantiate/LookUpCodeHash.tsx +++ b/src/ui/components/instantiate/LookUpCodeHash.tsx @@ -10,13 +10,14 @@ import { SearchResults } from '../common/SearchResults'; import { CodeHash } from './CodeHash'; import { checkOnChainCode, filterOnChainCode } from 'services/chain'; import { classes, isValidCodeHash } from 'lib/util'; -import { useApi, useDatabase } from 'ui/contexts'; +import { useApi, useDatabase, useVersion } from 'ui/contexts'; import { useDbQuery } from 'ui/hooks'; export function LookUpCodeHash() { const navigate = useNavigate(); const { api } = useApi(); const { db } = useDatabase(); + const { version } = useVersion(); const [searchString, setSearchString] = useState(''); const [codeHash, setCodeHash] = useState(''); @@ -30,14 +31,14 @@ export function LookUpCodeHash() { .limit(10) .toArray(); - return filterOnChainCode(api, matches); + return filterOnChainCode(api, matches, version); }, [api, db, searchString]); const [codeBundle] = useDbQuery(() => db.codeBundles.get({ codeHash }), [codeHash, db]); useEffect((): void => { if (codeHash !== searchString) { if (isValidCodeHash(searchString)) { - checkOnChainCode(api, searchString) + checkOnChainCode(api, searchString, version) .then(isOnChain => { isOnChain ? setCodeHash(searchString) : setCodeHash(''); }) From 980abeff45b4ff0a250261aeb375ab057f05c926 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Mon, 2 Jun 2025 17:02:12 +0200 Subject: [PATCH 27/32] fix: calculate account when salt is provided --- src/ui/components/instantiate/Step3.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/ui/components/instantiate/Step3.tsx b/src/ui/components/instantiate/Step3.tsx index 2e26aa13..a46715de 100644 --- a/src/ui/components/instantiate/Step3.tsx +++ b/src/ui/components/instantiate/Step3.tsx @@ -46,14 +46,14 @@ export function Step3() { ); const inputData = constructor?.toU8a(transformed).slice(1); // exclude the first byte (the length byte) // Pass the contract data and extrinsic to onSuccess - // @ts-ignore: TODO: solve type issue + // @ts-ignore return onSuccess({ ...result, contractData: { - salt: salt?.toString() || '', // Using codeHash as salt for demonstration + salt: salt?.toString() || '', data: inputData || new Uint8Array(), - // @ts-ignore TODO - code: metadata?.json.source.wasm, + // @ts-ignore + code: metadata?.json.source.contract_binary, }, }); }, From 0cb7d757fcdd945144689615e67274e34489124a Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Mon, 2 Jun 2025 17:28:23 +0200 Subject: [PATCH 28/32] refactor: clean up --- .gitignore | 1 - snapshots.js | 3 +++ src/lib/address.test.ts | 13 ++----------- src/lib/address.ts | 5 ----- src/ui/components/common/HeaderButtons.tsx | 1 - src/ui/components/contract/ContractRow.tsx | 3 ++- src/ui/hooks/useMetadata.ts | 2 ++ src/ui/pages/ContractHeader.tsx | 3 ++- 8 files changed, 11 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index 92f33b3b..ec70f75c 100644 --- a/.gitignore +++ b/.gitignore @@ -41,7 +41,6 @@ build/Release # Dependency directories node_modules/ jspm_packages/ -.polkadot-js-api # Snowpack dependency directory (https://snowpack.dev/) web_modules/ diff --git a/snapshots.js b/snapshots.js index fdb8a84f..f31fefea 100644 --- a/snapshots.js +++ b/snapshots.js @@ -1,3 +1,6 @@ +// Copyright 2022-2024 use-ink/contracts-ui authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + module.exports = { __version: '13.13.3', 'Storage Types Contract': { diff --git a/src/lib/address.test.ts b/src/lib/address.test.ts index 2cb5c146..ae245eb6 100644 --- a/src/lib/address.test.ts +++ b/src/lib/address.test.ts @@ -1,11 +1,10 @@ // Copyright 2022-2024 use-ink/contracts-ui authors & contributors // SPDX-License-Identifier: GPL-3.0-only -import { hexToU8a } from '@polkadot/util'; -import { beforeAll, describe, expect, it } from 'vitest'; +import { describe, expect, it } from 'vitest'; import { getAddress } from 'ethers'; import { decodeAddress } from '@polkadot/keyring'; -import { create1, create2, toEthAddress, isEthAddress } from './address'; +import { create1, create2, toEthAddress } from './address'; // Similar to pallet_revive tests: https://github.com/paritytech/polkadot-sdk/blob/65ade498b63bf2216d1c444f28c1b48085417f13/substrate/frame/revive/src/address.rs#L257 describe('address utilities', () => { @@ -31,12 +30,4 @@ describe('address utilities', () => { expect(ethAddress.startsWith('0x')).toBe(true); expect(getAddress(ethAddress)).toBe(getAddress('0x9621dde636de098b43efb0fa9b61facfe328f99d')); }); - - it('should detect if is Ethereum address', () => { - const ethAddress = '0x9621dde636de098b43efb0fa9b61facfe328f99d'; - expect(isEthAddress(ethAddress), true); - - const accountId = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'; - expect(isEthAddress(ethAddress), false); - }); }); diff --git a/src/lib/address.ts b/src/lib/address.ts index 9d45f0ab..755f4c01 100644 --- a/src/lib/address.ts +++ b/src/lib/address.ts @@ -87,11 +87,6 @@ export function toEthAddress(accountId: Uint8Array | string): string { } } -export function isEthAddress(addr: string): boolean { - const hex = addr.startsWith('0x') ? addr.slice(2) : addr; - return hex.length === 40; -} - export function fromEthAddress(ethAddress: string): string { // Remove '0x' prefix if it exists const cleanAddress = ethAddress.startsWith('0x') ? ethAddress.slice(2) : ethAddress; diff --git a/src/ui/components/common/HeaderButtons.tsx b/src/ui/components/common/HeaderButtons.tsx index 1d4d4bce..5d265cdf 100644 --- a/src/ui/components/common/HeaderButtons.tsx +++ b/src/ui/components/common/HeaderButtons.tsx @@ -9,7 +9,6 @@ import { ForgetContractModal } from 'ui/components/modal'; import { useApi, useDatabase, useVersion } from 'ui/contexts'; import { truncate } from 'lib/util'; import type { UIContract } from 'types'; -import { a } from 'vitest/dist/chunks/suite.B2jumIFP.js'; interface Props { contract: UIContract; diff --git a/src/ui/components/contract/ContractRow.tsx b/src/ui/components/contract/ContractRow.tsx index 864a287a..8cb69407 100644 --- a/src/ui/components/contract/ContractRow.tsx +++ b/src/ui/components/contract/ContractRow.tsx @@ -9,7 +9,8 @@ import { ContractDocument } from 'types'; import { useApi, useVersion } from 'ui/contexts'; import { displayDate, truncate } from 'lib/util'; import { getContractInfo } from 'services/chain'; -import { fromEthAddress, isEthAddress } from 'lib/address'; +import { fromEthAddress } from 'lib/address'; +import { isAddress as isEthAddress } from 'ethers'; interface Props { contract: ContractDocument; diff --git a/src/ui/hooks/useMetadata.ts b/src/ui/hooks/useMetadata.ts index c91f9686..07ccdbb9 100644 --- a/src/ui/hooks/useMetadata.ts +++ b/src/ui/hooks/useMetadata.ts @@ -35,6 +35,7 @@ function deriveFromJson( try { value = new Abi(source, api?.registry.getChainProperties()); + const name = options.name || value.info.contract.name.toString(); return { @@ -90,6 +91,7 @@ export function useMetadata( options: Options & Callbacks = {}, ): UseMetadata { const { api } = useApi(); + const { isWasmRequired = false, revertOnFileRemove = false, ...callbacks } = options; const [state, setState] = useState(() => deriveFromJson({ isWasmRequired }, initialValue, api), diff --git a/src/ui/pages/ContractHeader.tsx b/src/ui/pages/ContractHeader.tsx index 277e8b97..f69ab093 100644 --- a/src/ui/pages/ContractHeader.tsx +++ b/src/ui/pages/ContractHeader.tsx @@ -7,7 +7,8 @@ import { ObservedBalance } from '../components/common/ObservedBalance'; import { displayDate, truncate } from 'lib/util'; import { UIContract } from 'types'; import { useVersion } from 'ui/contexts'; -import { fromEthAddress, isEthAddress } from 'lib/address'; +import { fromEthAddress } from 'lib/address'; +import { isAddress as isEthAddress } from 'ethers'; interface Props { document: UIContract; From 8ac11095ecf5f352695c4cb719483f1f5a6c281e Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Tue, 10 Jun 2025 17:22:11 +0200 Subject: [PATCH 29/32] chore: update dependencies --- package.json | 6 +- yarn.lock | 359 ++++++++++++++++++++++----------------------------- 2 files changed, 154 insertions(+), 211 deletions(-) diff --git a/package.json b/package.json index c3e7968e..1e9aaef7 100644 --- a/package.json +++ b/package.json @@ -33,10 +33,10 @@ "dependencies": { "@headlessui/react": "^1.7.18", "@heroicons/react": "^1.0.6", - "@polkadot/api": "file:../polkadot-js-api/packages/api/build", - "@polkadot/api-contract": "file:../polkadot-js-api/packages/api-contract/build", + "@polkadot/api": "^16.2.1", + "@polkadot/api-contract": "^16.2.1", "@polkadot/extension-dapp": "^0.58.6", - "@polkadot/types": "file:../polkadot-js-api/packages/types/build", + "@polkadot/types": "^16.2.1", "@polkadot/ui-keyring": "^3.12.2", "@polkadot/ui-shared": "^3.12.2", "big.js": "^6.2.1", diff --git a/yarn.lock b/yarn.lock index cfc9ec33..560c7b9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -249,9 +249,9 @@ __metadata: languageName: node linkType: hard -"@cypress/code-coverage@npm:^3.12.20": - version: 3.14.3 - resolution: "@cypress/code-coverage@npm:3.14.3" +"@cypress/code-coverage@npm:^3.14.4": + version: 3.14.4 + resolution: "@cypress/code-coverage@npm:3.14.4" dependencies: "@cypress/webpack-preprocessor": "npm:^6.0.0" chalk: "npm:4.1.2" @@ -268,7 +268,7 @@ __metadata: babel-loader: ^8.3 || ^9 || ^10 cypress: "*" webpack: ^4 || ^5 - checksum: 10/8dc34febf93f32ad314a8b58eeaaead28c146a4948135c34cd3cb0dc5f5e702feff1b94e006be26d759430731a878e420ad8b776397d6ec8b83b5512a528bd97 + checksum: 10/de8a629958f7839e8aa6ccd2d0c9fe6fba90f9ba05387042b4d4af4b06c2aa5ed92ac822b9b980e0a1d31438d4ba5fe797dd7bac1ffadfe884798a5bd6c71e2f languageName: node linkType: hard @@ -1122,18 +1122,18 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-augment@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/api-augment@npm:15.8.1" - dependencies: - "@polkadot/api-base": "npm:15.8.1" - "@polkadot/rpc-augment": "npm:15.8.1" - "@polkadot/types": "npm:15.8.1" - "@polkadot/types-augment": "npm:15.8.1" - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" +"@polkadot/api-augment@npm:16.2.1": + version: 16.2.1 + resolution: "@polkadot/api-augment@npm:16.2.1" + dependencies: + "@polkadot/api-base": "npm:16.2.1" + "@polkadot/rpc-augment": "npm:16.2.1" + "@polkadot/types": "npm:16.2.1" + "@polkadot/types-augment": "npm:16.2.1" + "@polkadot/types-codec": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" tslib: "npm:^2.8.1" - checksum: 10/2cd9f0270029da95594676e1775acd9cfa211a311a398945302187bfab92c0b650abc4152a77d96ad8950145088ed0f546b7255e51421f9ed7153cb019f09f9f + checksum: 10/ce9e8c823c7d4b71dfbe3489891ffb8081b96163aa0735a9344f303c2431ffda5f96aea58e7a37558a3993b5f0fc742f6c2af0b9505a41a3b30e0c6c393dc35c languageName: node linkType: hard @@ -1150,33 +1150,33 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-base@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/api-base@npm:15.8.1" +"@polkadot/api-base@npm:16.2.1": + version: 16.2.1 + resolution: "@polkadot/api-base@npm:16.2.1" dependencies: - "@polkadot/rpc-core": "npm:15.8.1" - "@polkadot/types": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" + "@polkadot/rpc-core": "npm:16.2.1" + "@polkadot/types": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/b293962b4729e33deac75d1a775b3f50aa96c1b84fcbd091088678bdb079b4d53dcb386c38c844d6d5a01e8945caf055c6e6d686559daa884fa6f30d11f13787 + checksum: 10/076916dcf37fba558521254332471e51bb7ea2b5e1715832e5d703af9ccf94a89ff61aef748915eed8d6f9edfbae2ee2288c1fbb6969dd5e73ddffceb8a6c6cc languageName: node linkType: hard -"@polkadot/api-contract@file:../polkadot-js-api/packages/api-contract/build::locator=contracts-ui%40workspace%3A.": - version: 15.8.1 - resolution: "@polkadot/api-contract@file:../polkadot-js-api/packages/api-contract/build#../polkadot-js-api/packages/api-contract/build::hash=415492&locator=contracts-ui%40workspace%3A." - dependencies: - "@polkadot/api": "npm:15.8.1" - "@polkadot/api-augment": "npm:15.8.1" - "@polkadot/types": ../../types/build - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/types-create": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" - "@polkadot/util-crypto": "npm:^13.4.3" +"@polkadot/api-contract@npm:^16.2.1": + version: 16.2.1 + resolution: "@polkadot/api-contract@npm:16.2.1" + dependencies: + "@polkadot/api": "npm:16.2.1" + "@polkadot/api-augment": "npm:16.2.1" + "@polkadot/types": "npm:16.2.1" + "@polkadot/types-codec": "npm:16.2.1" + "@polkadot/types-create": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" + "@polkadot/util-crypto": "npm:^13.5.1" rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/68d71841d62310f5f1047dcad1f8edcc96d053cb0d22d87574cde5773ddadd8e0cebcc99d048aac5840820776ef859d68170d18aeb7c9df0d188a9662f1af0a6 + checksum: 10/364333efdc6be8e0eda5218f33ace41107b1e983418b3ba742d2b32d0b8298d8c98f92778884a2ce2348cc47b922bf76b3e9fa417ddc35a9c511daf3ac23cb74 languageName: node linkType: hard @@ -1198,46 +1198,21 @@ __metadata: languageName: node linkType: hard -"@polkadot/api-derive@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/api-derive@npm:15.8.1" - dependencies: - "@polkadot/api": "npm:15.8.1" - "@polkadot/api-augment": "npm:15.8.1" - "@polkadot/api-base": "npm:15.8.1" - "@polkadot/rpc-core": "npm:15.8.1" - "@polkadot/types": "npm:15.8.1" - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" - "@polkadot/util-crypto": "npm:^13.4.3" - rxjs: "npm:^7.8.1" - tslib: "npm:^2.8.1" - checksum: 10/26a0334e1c09d1cf5cb57fd7e302f25ff73f146966fa350fc11bda7ca8d32aa96db7e87aa921ecea925679f0e4c9b49244c3b5ccd9c68f22c2127901ca5fc689 - languageName: node - linkType: hard - -"@polkadot/api@file:../polkadot-js-api/packages/api/build::locator=contracts-ui%40workspace%3A.": - version: 15.8.1 - resolution: "@polkadot/api@file:../polkadot-js-api/packages/api/build#../polkadot-js-api/packages/api/build::hash=9c7f03&locator=contracts-ui%40workspace%3A." - dependencies: - "@polkadot/api-augment": "npm:15.8.1" - "@polkadot/api-base": "npm:15.8.1" - "@polkadot/api-derive": "npm:15.8.1" - "@polkadot/keyring": "npm:^13.4.3" - "@polkadot/rpc-augment": "npm:15.8.1" - "@polkadot/rpc-core": "npm:15.8.1" - "@polkadot/rpc-provider": "npm:15.8.1" - "@polkadot/types": "npm:15.8.1" - "@polkadot/types-augment": "npm:15.8.1" - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/types-create": "npm:15.8.1" - "@polkadot/types-known": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" - "@polkadot/util-crypto": "npm:^13.4.3" - eventemitter3: "npm:^5.0.1" +"@polkadot/api-derive@npm:16.2.1": + version: 16.2.1 + resolution: "@polkadot/api-derive@npm:16.2.1" + dependencies: + "@polkadot/api": "npm:16.2.1" + "@polkadot/api-augment": "npm:16.2.1" + "@polkadot/api-base": "npm:16.2.1" + "@polkadot/rpc-core": "npm:16.2.1" + "@polkadot/types": "npm:16.2.1" + "@polkadot/types-codec": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" + "@polkadot/util-crypto": "npm:^13.5.1" rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/b7c7e8414c457e6d6fe5b94810c379377d9994ae1911913f285f21bd669c5195e51961577b7cf0c660bed424fe99d8cee0765e99b65634297a4d6c78a8d4dc16 + checksum: 10/95fdb96c04aa894bb120ff299a4f4238d4d77faaa03589b01f54b75dd41b4afa2278538f3af2743a032a42abfe37ace734fadee042ccf67aa10392db735bdded languageName: node linkType: hard @@ -1266,28 +1241,28 @@ __metadata: languageName: node linkType: hard -"@polkadot/api@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/api@npm:15.8.1" - dependencies: - "@polkadot/api-augment": "npm:15.8.1" - "@polkadot/api-base": "npm:15.8.1" - "@polkadot/api-derive": "npm:15.8.1" - "@polkadot/keyring": "npm:^13.4.3" - "@polkadot/rpc-augment": "npm:15.8.1" - "@polkadot/rpc-core": "npm:15.8.1" - "@polkadot/rpc-provider": "npm:15.8.1" - "@polkadot/types": "npm:15.8.1" - "@polkadot/types-augment": "npm:15.8.1" - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/types-create": "npm:15.8.1" - "@polkadot/types-known": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" - "@polkadot/util-crypto": "npm:^13.4.3" +"@polkadot/api@npm:16.2.1, @polkadot/api@npm:^16.2.1": + version: 16.2.1 + resolution: "@polkadot/api@npm:16.2.1" + dependencies: + "@polkadot/api-augment": "npm:16.2.1" + "@polkadot/api-base": "npm:16.2.1" + "@polkadot/api-derive": "npm:16.2.1" + "@polkadot/keyring": "npm:^13.5.1" + "@polkadot/rpc-augment": "npm:16.2.1" + "@polkadot/rpc-core": "npm:16.2.1" + "@polkadot/rpc-provider": "npm:16.2.1" + "@polkadot/types": "npm:16.2.1" + "@polkadot/types-augment": "npm:16.2.1" + "@polkadot/types-codec": "npm:16.2.1" + "@polkadot/types-create": "npm:16.2.1" + "@polkadot/types-known": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" + "@polkadot/util-crypto": "npm:^13.5.1" eventemitter3: "npm:^5.0.1" rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/a99af92b4825df247f12fdded7468af66b6eaa548503b9abbc4617d7550701fd82e2136eef76c7d3f4992bbdc96c3c2031d2cc1900b3ac0ede654d526ef62442 + checksum: 10/68a4034bfc18a416aa5dd46387c5a9d70c76d5c34549cde477bb67be560ded45bbad64947e55007c702ca5cf705c1c013ed7f295d197cdd033fbd88577084830 languageName: node linkType: hard @@ -1325,7 +1300,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/keyring@npm:^13.4.3, @polkadot/keyring@npm:^13.4.4, @polkadot/keyring@npm:^13.5.1": +"@polkadot/keyring@npm:^13.4.4, @polkadot/keyring@npm:^13.5.1": version: 13.5.1 resolution: "@polkadot/keyring@npm:13.5.1" dependencies: @@ -1339,7 +1314,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/networks@npm:13.5.1, @polkadot/networks@npm:^13.4.3, @polkadot/networks@npm:^13.4.4, @polkadot/networks@npm:^13.5.1": +"@polkadot/networks@npm:13.5.1, @polkadot/networks@npm:^13.4.4, @polkadot/networks@npm:^13.5.1": version: 13.5.1 resolution: "@polkadot/networks@npm:13.5.1" dependencies: @@ -1363,16 +1338,16 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-augment@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/rpc-augment@npm:15.8.1" +"@polkadot/rpc-augment@npm:16.2.1": + version: 16.2.1 + resolution: "@polkadot/rpc-augment@npm:16.2.1" dependencies: - "@polkadot/rpc-core": "npm:15.8.1" - "@polkadot/types": "npm:15.8.1" - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" + "@polkadot/rpc-core": "npm:16.2.1" + "@polkadot/types": "npm:16.2.1" + "@polkadot/types-codec": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" tslib: "npm:^2.8.1" - checksum: 10/f82c2f794c8fa36b0d60f816f23d7ce1692c8d1297245bc68d5f0ea3dc07493fc4d59b64b024ae90825eead27bb273f0f15fee6e07a0999d23691a6e3e4da111 + checksum: 10/bbc724cf9d71ecaf4873eb5207cf36c418bef994c8806eae0764a482d3fa9d1e2b34d7909aa467e329a5f47873a28cd05ac3324a10bf1bd9f46e3ada531fc09d languageName: node linkType: hard @@ -1390,17 +1365,17 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-core@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/rpc-core@npm:15.8.1" +"@polkadot/rpc-core@npm:16.2.1": + version: 16.2.1 + resolution: "@polkadot/rpc-core@npm:16.2.1" dependencies: - "@polkadot/rpc-augment": "npm:15.8.1" - "@polkadot/rpc-provider": "npm:15.8.1" - "@polkadot/types": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" + "@polkadot/rpc-augment": "npm:16.2.1" + "@polkadot/rpc-provider": "npm:16.2.1" + "@polkadot/types": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/12fa65816946a7faafa73d43008894010b87568f32e2cd11c0ee83982ab10c6e8b1fcad6908bc68083b1951d638de38d56de703ae95f769df3e3ad7724943397 + checksum: 10/c8aa9823c1198a83c2b12c7e7fb4e1d3739bbaec4797956bf1f0bea2ef52d840d0ba9b52996c3eb4d6604131b5c050e8ddad26b25c8cac3d8ea8ecf23e14593e languageName: node linkType: hard @@ -1428,18 +1403,18 @@ __metadata: languageName: node linkType: hard -"@polkadot/rpc-provider@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/rpc-provider@npm:15.8.1" - dependencies: - "@polkadot/keyring": "npm:^13.4.3" - "@polkadot/types": "npm:15.8.1" - "@polkadot/types-support": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" - "@polkadot/util-crypto": "npm:^13.4.3" - "@polkadot/x-fetch": "npm:^13.4.3" - "@polkadot/x-global": "npm:^13.4.3" - "@polkadot/x-ws": "npm:^13.4.3" +"@polkadot/rpc-provider@npm:16.2.1": + version: 16.2.1 + resolution: "@polkadot/rpc-provider@npm:16.2.1" + dependencies: + "@polkadot/keyring": "npm:^13.5.1" + "@polkadot/types": "npm:16.2.1" + "@polkadot/types-support": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" + "@polkadot/util-crypto": "npm:^13.5.1" + "@polkadot/x-fetch": "npm:^13.5.1" + "@polkadot/x-global": "npm:^13.5.1" + "@polkadot/x-ws": "npm:^13.5.1" "@substrate/connect": "npm:0.8.11" eventemitter3: "npm:^5.0.1" mock-socket: "npm:^9.3.1" @@ -1448,7 +1423,7 @@ __metadata: dependenciesMeta: "@substrate/connect": optional: true - checksum: 10/4ee1479289d5099d7bc4da3e8d254d6d22f6c262e5f5f64f1cefcf8bb1e111b0f6ac993ccaaaf1178758dab4be832661abe159537482721aeef693791ea481f9 + checksum: 10/76ab7a3b1c565ae7b90085b72190be449aa590559c1a35dcd40e27b71982ead449596a51793e7870286d5969ff2902be03ab61fad9a5c5e69c73c9d439f1ec5e languageName: node linkType: hard @@ -1464,15 +1439,15 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-augment@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/types-augment@npm:15.8.1" +"@polkadot/types-augment@npm:16.2.1": + version: 16.2.1 + resolution: "@polkadot/types-augment@npm:16.2.1" dependencies: - "@polkadot/types": "npm:15.8.1" - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" + "@polkadot/types": "npm:16.2.1" + "@polkadot/types-codec": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" tslib: "npm:^2.8.1" - checksum: 10/bf100a2e084c72b79ae93fb0354be8e6780c4c1c46bb03d90d123fdd1b54c2648d9badb983dd2944d06aecdbc6fbf27d2e626208ca6f123fa7da48cdb78d40ab + checksum: 10/467b35191ab9d82711ebf8f541a2173e5370ff948200252240b835c8a4bfc607abb9525c59db03c5632a6c592467e5916237b250993a23b6d5fc6325265be687 languageName: node linkType: hard @@ -1487,14 +1462,14 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-codec@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/types-codec@npm:15.8.1" +"@polkadot/types-codec@npm:16.2.1": + version: 16.2.1 + resolution: "@polkadot/types-codec@npm:16.2.1" dependencies: - "@polkadot/util": "npm:^13.4.3" - "@polkadot/x-bigint": "npm:^13.4.3" + "@polkadot/util": "npm:^13.5.1" + "@polkadot/x-bigint": "npm:^13.5.1" tslib: "npm:^2.8.1" - checksum: 10/7440e7e763712fbbbb113a20897a4255154d2fe6f2ca82973b9e230ab0af7b25c2554b36e1f2fa8c62f8a88c206f35c3397d74600a14909f8658cec6f4f40b13 + checksum: 10/abc3d334a05bc9cc0c42828a5067d3861bc68646cbe6eb5f0244845e962b393fc2310fe6fb6bba8cdef01e710050c311beb6301a95d2e85a5c8851269fbb72dd languageName: node linkType: hard @@ -1509,14 +1484,14 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-create@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/types-create@npm:15.8.1" +"@polkadot/types-create@npm:16.2.1": + version: 16.2.1 + resolution: "@polkadot/types-create@npm:16.2.1" dependencies: - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" + "@polkadot/types-codec": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" tslib: "npm:^2.8.1" - checksum: 10/b51c9f6c2f582bb084dc29aec68403e7547bea080939917cc39970db6ad24e837f25ee3068885451abffd9b7405b56d0658b69439d3c36180183495e8c9e9509 + checksum: 10/e65244d3c602661b7275b2d3a2ff247168fa9d241a943c99af0be55b9e200623194c23d8d01e36baf07504aa809712fd677d60247ec732442e717b05b6f78424 languageName: node linkType: hard @@ -1534,17 +1509,17 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-known@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/types-known@npm:15.8.1" +"@polkadot/types-known@npm:16.2.1": + version: 16.2.1 + resolution: "@polkadot/types-known@npm:16.2.1" dependencies: - "@polkadot/networks": "npm:^13.4.3" - "@polkadot/types": "npm:15.8.1" - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/types-create": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" + "@polkadot/networks": "npm:^13.5.1" + "@polkadot/types": "npm:16.2.1" + "@polkadot/types-codec": "npm:16.2.1" + "@polkadot/types-create": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" tslib: "npm:^2.8.1" - checksum: 10/1e6fc7e83007b6d1e66f26ca38e6ddd5e4f39460b262b0a33533aadf1aec21dd37531b18e7a4cd479fed2a1d03fcc8b83ac36201eef641290d1b36b2d126b19d + checksum: 10/062d0cbe7419f5e5e98287eae4d5c55318bed3a865dee63bb97c35a21d0190c633cd1b8be70a5f7e7ce1e12f33fec5d4ed4b253d8dc74a9ac2e1de8c5c754c64 languageName: node linkType: hard @@ -1558,45 +1533,13 @@ __metadata: languageName: node linkType: hard -"@polkadot/types-support@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/types-support@npm:15.8.1" +"@polkadot/types-support@npm:16.2.1": + version: 16.2.1 + resolution: "@polkadot/types-support@npm:16.2.1" dependencies: - "@polkadot/util": "npm:^13.4.3" - tslib: "npm:^2.8.1" - checksum: 10/5570cf7f855d0ab490a94803f769f48a55f40af7ff8c9b603f60f55b75a8435836dbc4acda68011ec9d3b75d89a6a51fa117221d0790fd2d2b8d8517a260598c - languageName: node - linkType: hard - -"@polkadot/types@file:../../types/build::locator=%40polkadot%2Fapi-contract%40file%3A..%2Fpolkadot-js-api%2Fpackages%2Fapi-contract%2Fbuild%23..%2Fpolkadot-js-api%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3D415492%26locator%3Dcontracts-ui%2540workspace%253A.": - version: 15.8.1 - resolution: "@polkadot/types@file:../../types/build#../../types/build::hash=f20336&locator=%40polkadot%2Fapi-contract%40file%3A..%2Fpolkadot-js-api%2Fpackages%2Fapi-contract%2Fbuild%23..%2Fpolkadot-js-api%2Fpackages%2Fapi-contract%2Fbuild%3A%3Ahash%3D415492%26locator%3Dcontracts-ui%2540workspace%253A." - dependencies: - "@polkadot/keyring": "npm:^13.4.3" - "@polkadot/types-augment": "npm:15.8.1" - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/types-create": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" - "@polkadot/util-crypto": "npm:^13.4.3" - rxjs: "npm:^7.8.1" - tslib: "npm:^2.8.1" - checksum: 10/ce0072dd7eb3e1d4e644df96417e57ef5c873cb46b9aaa32b429f8742ffdbdaf9bad7e9ec18532683b67be331addcc8f00b57180e05e84ce322b60971973044b - languageName: node - linkType: hard - -"@polkadot/types@file:../polkadot-js-api/packages/types/build::locator=contracts-ui%40workspace%3A.": - version: 15.8.1 - resolution: "@polkadot/types@file:../polkadot-js-api/packages/types/build#../polkadot-js-api/packages/types/build::hash=f20336&locator=contracts-ui%40workspace%3A." - dependencies: - "@polkadot/keyring": "npm:^13.4.3" - "@polkadot/types-augment": "npm:15.8.1" - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/types-create": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" - "@polkadot/util-crypto": "npm:^13.4.3" - rxjs: "npm:^7.8.1" + "@polkadot/util": "npm:^13.5.1" tslib: "npm:^2.8.1" - checksum: 10/ce0072dd7eb3e1d4e644df96417e57ef5c873cb46b9aaa32b429f8742ffdbdaf9bad7e9ec18532683b67be331addcc8f00b57180e05e84ce322b60971973044b + checksum: 10/1f9df5b059e8ac7e6e8c7ff5385d1bad6e14c9fdf218c4137fb59901cc50ddf5d8b713813c0f57ab48d11fbb30d3fbaea2b5be87862da416d80aaef4b7060855 languageName: node linkType: hard @@ -1616,19 +1559,19 @@ __metadata: languageName: node linkType: hard -"@polkadot/types@npm:15.8.1": - version: 15.8.1 - resolution: "@polkadot/types@npm:15.8.1" - dependencies: - "@polkadot/keyring": "npm:^13.4.3" - "@polkadot/types-augment": "npm:15.8.1" - "@polkadot/types-codec": "npm:15.8.1" - "@polkadot/types-create": "npm:15.8.1" - "@polkadot/util": "npm:^13.4.3" - "@polkadot/util-crypto": "npm:^13.4.3" +"@polkadot/types@npm:16.2.1, @polkadot/types@npm:^16.2.1": + version: 16.2.1 + resolution: "@polkadot/types@npm:16.2.1" + dependencies: + "@polkadot/keyring": "npm:^13.5.1" + "@polkadot/types-augment": "npm:16.2.1" + "@polkadot/types-codec": "npm:16.2.1" + "@polkadot/types-create": "npm:16.2.1" + "@polkadot/util": "npm:^13.5.1" + "@polkadot/util-crypto": "npm:^13.5.1" rxjs: "npm:^7.8.1" tslib: "npm:^2.8.1" - checksum: 10/a93249891e636030fc9723bea0be22af3c5442d91271f5f50ed8ce657a7a300ea65dc494c84fce96aa25a2c980bcf9420fb2a917cf786d3b64d5a0f54f0edcdc + checksum: 10/29be20ede6a323ac7ec387060db4517f50e0af51d8e43343c1f021e589bb770e2ae79287d2455c9a859a83518cad6df5150e15b2d84ea95745257e28e408afbd languageName: node linkType: hard @@ -1681,7 +1624,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/util-crypto@npm:13.5.1, @polkadot/util-crypto@npm:^13.4.3, @polkadot/util-crypto@npm:^13.4.4, @polkadot/util-crypto@npm:^13.5.1": +"@polkadot/util-crypto@npm:13.5.1, @polkadot/util-crypto@npm:^13.4.4, @polkadot/util-crypto@npm:^13.5.1": version: 13.5.1 resolution: "@polkadot/util-crypto@npm:13.5.1" dependencies: @@ -1701,7 +1644,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/util@npm:13.5.1, @polkadot/util@npm:^13.4.3, @polkadot/util@npm:^13.4.4, @polkadot/util@npm:^13.5.1": +"@polkadot/util@npm:13.5.1, @polkadot/util@npm:^13.4.4, @polkadot/util@npm:^13.5.1": version: 13.5.1 resolution: "@polkadot/util@npm:13.5.1" dependencies: @@ -1796,7 +1739,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/x-bigint@npm:13.5.1, @polkadot/x-bigint@npm:^13.4.3, @polkadot/x-bigint@npm:^13.4.4": +"@polkadot/x-bigint@npm:13.5.1, @polkadot/x-bigint@npm:^13.4.4, @polkadot/x-bigint@npm:^13.5.1": version: 13.5.1 resolution: "@polkadot/x-bigint@npm:13.5.1" dependencies: @@ -1806,7 +1749,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/x-fetch@npm:^13.4.3, @polkadot/x-fetch@npm:^13.4.4": +"@polkadot/x-fetch@npm:^13.4.4, @polkadot/x-fetch@npm:^13.5.1": version: 13.5.1 resolution: "@polkadot/x-fetch@npm:13.5.1" dependencies: @@ -1817,7 +1760,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/x-global@npm:13.5.1, @polkadot/x-global@npm:^13.4.3, @polkadot/x-global@npm:^13.4.4": +"@polkadot/x-global@npm:13.5.1, @polkadot/x-global@npm:^13.4.4, @polkadot/x-global@npm:^13.5.1": version: 13.5.1 resolution: "@polkadot/x-global@npm:13.5.1" dependencies: @@ -1859,7 +1802,7 @@ __metadata: languageName: node linkType: hard -"@polkadot/x-ws@npm:^13.4.3, @polkadot/x-ws@npm:^13.4.4": +"@polkadot/x-ws@npm:^13.4.4, @polkadot/x-ws@npm:^13.5.1": version: 13.5.1 resolution: "@polkadot/x-ws@npm:13.5.1" dependencies: @@ -3919,16 +3862,16 @@ __metadata: version: 0.0.0-use.local resolution: "contracts-ui@workspace:." dependencies: - "@cypress/code-coverage": "npm:^3.12.20" + "@cypress/code-coverage": "npm:^3.14.4" "@cypress/snapshot": "npm:^2.1.7" "@esbuild-plugins/node-globals-polyfill": "npm:^0.2.3" "@headlessui/react": "npm:^1.7.18" "@heroicons/react": "npm:^1.0.6" "@istanbuljs/nyc-config-typescript": "npm:^1.0.2" - "@polkadot/api": "file:../polkadot-js-api/packages/api/build" - "@polkadot/api-contract": "file:../polkadot-js-api/packages/api-contract/build" + "@polkadot/api": "npm:^16.2.1" + "@polkadot/api-contract": "npm:^16.2.1" "@polkadot/extension-dapp": "npm:^0.58.6" - "@polkadot/types": "file:../polkadot-js-api/packages/types/build" + "@polkadot/types": "npm:^16.2.1" "@polkadot/ui-keyring": "npm:^3.12.2" "@polkadot/ui-shared": "npm:^3.12.2" "@tailwindcss/forms": "npm:^0.5.7" From 775558db279d03b16734584becf9e33499903f42 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Wed, 11 Jun 2025 12:06:20 +0200 Subject: [PATCH 30/32] fix: build --- src/ui/components/contract/Interact.tsx | 71 ++++++++-------- src/ui/components/instantiate/Step2.tsx | 103 +++++++++++++++--------- 2 files changed, 102 insertions(+), 72 deletions(-) diff --git a/src/ui/components/contract/Interact.tsx b/src/ui/components/contract/Interact.tsx index a08b2804..9c45e8fc 100644 --- a/src/ui/components/contract/Interact.tsx +++ b/src/ui/components/contract/Interact.tsx @@ -103,43 +103,48 @@ export const InteractTab = ({ async function dryRun() { if (!message) return; - const newOutcome = await (version === 'v6' - ? api.call.reviveApi.call(...params) - : api.call.contractsApi.call(...params)); - // auto-generated @polkadot/type-augment data uses a different flag representation: `{"ok":{"flags":{"bits":0},"data":"0x00"}}` let convertedFlags = api.registry.createType('ContractReturnFlags', 0); - if (newOutcome.result.isOk) { - const flags = newOutcome.result.asOk.flags; - const isRevert = flags.bits.toNumber(); - convertedFlags = api.registry.createType('ContractReturnFlags', isRevert); - } - const convertedOutcome: ContractExecResult = - version === 'v6' - ? api.registry.createType('ContractExecResult', { - registry: api.registry, - gasConsumed: newOutcome.gasConsumed, - gasRequired: newOutcome.gasRequired, - storageDeposit: newOutcome.storageDeposit, - result: newOutcome.result.isOk - ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } - : { Err: newOutcome.result.asErr }, - }) - : api.registry.createType('ContractExecResult', { - registry: api.registry, - gasConsumed: newOutcome.gasConsumed, - gasRequired: newOutcome.gasRequired, - storageDeposit: newOutcome.storageDeposit, - // debugMessage is Bytes, must convert to Text - debugMessage: new Text(api.registry, newOutcome.debugMessage.toUtf8()), - result: newOutcome.result.isOk - ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } - : { Err: newOutcome.result.asErr }, - }); + if (version === 'v6') { + const newOutcome = await api.call.reviveApi.call(...params); + if (newOutcome.result.isOk) { + const flags = newOutcome.result.asOk.flags; + const isRevert = flags.bits.toNumber(); + convertedFlags = api.registry.createType('ContractReturnFlags', isRevert); + } - // Update the state with the adapted outcome - setOutcome(convertedOutcome); + const convertedOutcome = api.registry.createType('ContractExecResult', { + gasConsumed: newOutcome.gasConsumed, + gasRequired: newOutcome.gasRequired, + storageDeposit: newOutcome.storageDeposit, + result: newOutcome.result.isOk + ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } + : { Err: newOutcome.result.asErr }, + }); + // Update the state with the adapted outcome + setOutcome(convertedOutcome); + } else { + const newOutcome = await api.call.contractsApi.call(...params); + if (newOutcome.result.isOk) { + const flags = newOutcome.result.asOk.flags; + const isRevert = flags.bits.toNumber(); + convertedFlags = api.registry.createType('ContractReturnFlags', isRevert); + } + + const convertedOutcome = api.registry.createType('ContractExecResult', { + gasConsumed: newOutcome.gasConsumed, + gasRequired: newOutcome.gasRequired, + storageDeposit: newOutcome.storageDeposit, + // debugMessage is Bytes, must convert to Text + debugMessage: new Text(api.registry, newOutcome.debugMessage.toUtf8()), + result: newOutcome.result.isOk + ? { Ok: { flags: convertedFlags, data: newOutcome.result.asOk.data } } + : { Err: newOutcome.result.asErr }, + }); + // Update the state with the adapted outcome + setOutcome(convertedOutcome); + } } function debouncedDryRun() { diff --git a/src/ui/components/instantiate/Step2.tsx b/src/ui/components/instantiate/Step2.tsx index 1c6b2938..52951bc4 100644 --- a/src/ui/components/instantiate/Step2.tsx +++ b/src/ui/components/instantiate/Step2.tsx @@ -97,57 +97,82 @@ export function Step2() { useEffect((): void => { async function dryRun() { try { - const result = await (version === 'v6' - ? api.call.reviveApi.instantiate(...params) - : api.call.contractsApi.instantiate(...params)); - // default is no revert let convertedFlags = api.registry.createType('ContractReturnFlags', 0); - let instantiateResult; - // auto-generated @polkadot/type-augment data uses slightly different types - if (result.result.isOk) { - const okResult = result.result.asOk; - const flags = okResult.result.flags; - const isRevert = flags.bits.toNumber(); - convertedFlags = api.registry.createType('ContractReturnFlags', isRevert); - instantiateResult = { - Ok: { - result: { flags: convertedFlags, data: okResult.result.data }, - }, - }; + if (version === 'v6') { + const result = await api.call.reviveApi.instantiate(...params); + let instantiateResult; + + // auto-generated @polkadot/type-augment data uses slightly different types + if (result.result.isOk) { + const okResult = result.result.asOk; + const flags = okResult.result.flags; + const isRevert = flags.bits.toNumber(); + convertedFlags = api.registry.createType('ContractReturnFlags', isRevert); + instantiateResult = { + Ok: { + result: { flags: convertedFlags, data: okResult.result.data }, + }, + }; + } else { + instantiateResult = { Err: result.result.asErr }; + } + + const convertedOutcome = api.registry.createType('ContractInstantiateResult', { + gasConsumed: result.gasConsumed, + gasRequired: result.gasRequired, + storageDeposit: result.storageDeposit, + result: instantiateResult, + }); + + const resultJson = JSON.stringify(convertedOutcome.toJSON()); + const dryRunResultJson = JSON.stringify(dryRunResult?.toJSON()); + if (dryRunResultJson !== resultJson) { + setDryRunResult(convertedOutcome); + } } else { - instantiateResult = { Err: result.result.asErr }; - } + console.log('Using v5 contractsApi'); + const result = await api.call.contractsApi.instantiate(...params); + console.log(result); + let instantiateResult; - const convertedOutcome = - version === 'v6' - ? api.registry.createType('ContractInstantiateResult', { - gasConsumed: result.gasConsumed, - gasRequired: result.gasRequired, - storageDeposit: result.storageDeposit, - result: instantiateResult, - }) - : api.registry.createType('ContractInstantiateResult', { - gasConsumed: result.gasConsumed, - gasRequired: result.gasRequired, - storageDeposit: result.storageDeposit, - // debugMessage is Bytes, must convert to Text - debugMessage: api.registry.createType('Text', result.debugMessage.toU8a()), - result: instantiateResult, - }); + // auto-generated @polkadot/type-augment data uses slightly different types + if (result.result.isOk) { + const okResult = result.result.asOk; + const flags = okResult.result.flags; + const isRevert = flags.bits.toNumber(); + convertedFlags = api.registry.createType('ContractReturnFlags', isRevert); + instantiateResult = { + Ok: { + result: { flags: convertedFlags, data: okResult.result.data }, + }, + }; + } else { + instantiateResult = { Err: result.result.asErr }; + } + const convertedOutcome = api.registry.createType('ContractInstantiateResult', { + gasConsumed: result.gasConsumed, + gasRequired: result.gasRequired, + storageDeposit: result.storageDeposit, + // debugMessage is Bytes, must convert to Text + debugMessage: api.registry.createType('Text', result.debugMessage.toU8a()), + result: instantiateResult, + }); - const resultJson = JSON.stringify(convertedOutcome.toJSON()); - const dryRunResultJson = JSON.stringify(dryRunResult?.toJSON()); - if (dryRunResultJson !== resultJson) { - setDryRunResult(convertedOutcome); + const resultJson = JSON.stringify(convertedOutcome.toJSON()); + const dryRunResultJson = JSON.stringify(dryRunResult?.toJSON()); + + if (dryRunResultJson !== resultJson) { + setDryRunResult(convertedOutcome); + } } } catch (e) { console.error(e); } } dryRun().catch(e => console.error(e)); - }, [api.call.contractsApi, dryRunResult, params, setDryRunResult]); + }, [api, dryRunResult, params, setDryRunResult]); const onSubmit = () => { if (!dryRunResult) return; From 6218c46190172e7a8a76d0b6a2e800072f07bf14 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Wed, 11 Jun 2025 12:46:05 +0200 Subject: [PATCH 31/32] chore: v5 default --- snapshots.js | 3 --- src/ui/contexts/VersionContext.tsx | 4 ++-- src/ui/layout/sidebar/VersionSelect.tsx | 8 ++++---- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/snapshots.js b/snapshots.js index f31fefea..fdb8a84f 100644 --- a/snapshots.js +++ b/snapshots.js @@ -1,6 +1,3 @@ -// Copyright 2022-2024 use-ink/contracts-ui authors & contributors -// SPDX-License-Identifier: GPL-3.0-only - module.exports = { __version: '13.13.3', 'Storage Types Contract': { diff --git a/src/ui/contexts/VersionContext.tsx b/src/ui/contexts/VersionContext.tsx index 6ca24e08..5028c2fe 100644 --- a/src/ui/contexts/VersionContext.tsx +++ b/src/ui/contexts/VersionContext.tsx @@ -15,7 +15,7 @@ export interface VersionSupported { const VersionContext = createContext(undefined); export const VersionContextProvider = ({ children }: React.PropsWithChildren) => { - const [version, setVersion] = useLocalStorage(LOCAL_STORAGE_KEY.VERSION, 'v6'); + const [version, setVersion] = useLocalStorage(LOCAL_STORAGE_KEY.VERSION, 'v5'); useEffect(() => setVersion(version), [version]); @@ -33,4 +33,4 @@ export const useVersion = () => { }; export const getVersion = () => - (localStorage.getItem(LOCAL_STORAGE_KEY.VERSION) as InkVersion | null) || 'v6'; + (localStorage.getItem(LOCAL_STORAGE_KEY.VERSION) as InkVersion | null) || 'v5'; diff --git a/src/ui/layout/sidebar/VersionSelect.tsx b/src/ui/layout/sidebar/VersionSelect.tsx index a6135128..4bcf376c 100644 --- a/src/ui/layout/sidebar/VersionSelect.tsx +++ b/src/ui/layout/sidebar/VersionSelect.tsx @@ -5,12 +5,12 @@ export function VersionSelect() { const { version, setVersion } = useVersion(); const dropdownOptions = [ { - label: 'ink! v6 (default)', - value: 'v6', + label: 'ink! v5 (default)', + value: 'v5', }, { - label: 'ink! v5', - value: 'v5', + label: 'ink! v6', + value: 'v6', }, ]; return ( From 44dae500e1f6a377270ab108f6d0f3087691db50 Mon Sep 17 00:00:00 2001 From: AlexD10S Date: Wed, 11 Jun 2025 14:41:35 +0200 Subject: [PATCH 32/32] chore: cleanup --- snapshots.js | 3 +++ src/ui/components/instantiate/Step2.tsx | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/snapshots.js b/snapshots.js index fdb8a84f..f31fefea 100644 --- a/snapshots.js +++ b/snapshots.js @@ -1,3 +1,6 @@ +// Copyright 2022-2024 use-ink/contracts-ui authors & contributors +// SPDX-License-Identifier: GPL-3.0-only + module.exports = { __version: '13.13.3', 'Storage Types Contract': { diff --git a/src/ui/components/instantiate/Step2.tsx b/src/ui/components/instantiate/Step2.tsx index 52951bc4..d68e5ead 100644 --- a/src/ui/components/instantiate/Step2.tsx +++ b/src/ui/components/instantiate/Step2.tsx @@ -132,9 +132,8 @@ export function Step2() { setDryRunResult(convertedOutcome); } } else { - console.log('Using v5 contractsApi'); const result = await api.call.contractsApi.instantiate(...params); - console.log(result); + let instantiateResult; // auto-generated @polkadot/type-augment data uses slightly different types